43 Commits

Author SHA1 Message Date
Tomohisa Takaoka
17232f9940
feat: add GitHub Copilot CLI as a new provider (#425)
* feat: add GitHub Copilot CLI as a new provider

Add support for GitHub Copilot CLI (@github/copilot) as a takt provider,
enabling the 'copilot' command to be used for AI-driven task execution.

New files:
- src/infra/copilot/client.ts: CLI client with streaming, session ID
  extraction via --share, and permission mode mapping
- src/infra/copilot/types.ts: CopilotCallOptions type definitions
- src/infra/copilot/index.ts: barrel exports
- src/infra/providers/copilot.ts: CopilotProvider implementing Provider
- src/__tests__/copilot-client.test.ts: 20 unit tests for client
- src/__tests__/copilot-provider.test.ts: 8 unit tests for provider

Key features:
- Spawns 'copilot -p' in non-interactive mode with --silent --no-color
- Permission modes: full (--yolo), edit (--allow-all-tools --no-ask-user),
  readonly (no permission flags)
- Session ID extraction from --share transcript files
- Real-time stdout streaming via onStream callbacks
- Configurable via COPILOT_CLI_PATH and COPILOT_GITHUB_TOKEN env vars

* fix: remove unused COPILOT_DEFAULT_MAX_AUTOPILOT_CONTINUES constant

* fix: address review feedback for copilot provider

- Remove excess maxAutopilotContinues property from test (#1 High)
- Extract cleanupTmpDir() helper to eliminate DRY violation (#2 Medium)
- Deduplicate chunk string conversion in stdout handler (#3 Medium)
- Remove 5 what/how comments that restate code (#4 Medium)
- Log readFile failure instead of silently swallowing (#5 Medium)
- Add credential scrubbing (ghp_/ghs_/gho_/github_pat_) for stderr (#6 Medium)
- Add buffer overflow tests for stdout and stderr (#7 Medium)
- Add pre-aborted AbortSignal test (#8 Low)
- Add mkdtemp failure fallback test (#9 Low)
- Add rm cleanup verification to fallback test (#10 Low)
- Log mkdtemp failure with debug level (#11 Persist)
- Add createLogger('copilot-client') for structured logging
2026-02-28 20:28:56 +09:00
Junichi Kato
204843f498
Merge pull request #403 from j5ik2o/feature/cursor-agent-cli-provider-spec
feat: cursor-agent対応
2026-02-27 01:12:17 +09:00
nrslib
644c318295 fix: unify agent provider/model resolution and remove custom agent overrides 2026-02-27 00:27:52 +09:00
nrslib
f6d8c353d3 refactor: provider のデフォルト値 'claude' を廃止し明示設定を必須化
暗黙の claude フォールバックを削除し、未設定時は明確なエラーを返すように変更。
permission は未設定時 readonly にフォールバック。テスト・E2E を新挙動に適合。
2026-02-26 02:11:49 +09:00
nrslib
f2ca01ffe0 refactor: provider/model resolution precedenceを一元化 2026-02-23 15:28:38 +09:00
nrslib
69f13283a2 fix: movement provider override precedence in AgentRunner 2026-02-23 15:18:32 +09:00
nrslib
cbde7ac654 refactor: 設定参照をresolveConfigValueへ統一 2026-02-19 10:55:03 +09:00
nrslib
5dc79946f2 refactor: 設定解決をloadConfigへ統一し不要設定を削除 2026-02-19 10:32:59 +09:00
nrs
e52e1da6bf
takt-list (#271)
* refactor: provider/modelの解決ロジックをAgentRunnerに集約

OptionsBuilderでCLIレベルとstepレベルを事前マージしていたのをやめ、
stepProvider/stepModelとして分離して渡す形に変更。
AgentRunnerが全レイヤーの優先度を一括で解決する。

* takt: takt-list
2026-02-14 11:44:01 +09:00
nrslib
54e9f80a57 opencodeがパラレル実行時にセッションIDを引き継げないことがある 2026-02-13 23:11:32 +09:00
nrslib
c85f23cb6e claude code がsandboxで実行されるため、テストが実行できない問題を対処できるオプションを追加 2026-02-13 21:46:11 +09:00
nrslib
479ee7ec25 providerごとに通信を許可する 2026-02-13 16:37:07 +09:00
nrslib
7d20c016c7 無用なexportを排除 2026-02-12 17:33:39 +09:00
nrslib
bf4196d3b3 takt: github-issue-257 2026-02-12 13:32:28 +09:00
nrs
b80f6d0aa0
takt: opencode (#222) 2026-02-11 06:35:50 +09:00
nrslib
9546806649 暴走抑止 2026-02-10 21:26:38 +09:00
nrslib
b25e9a78ab fix: callAiJudgeをプロバイダーシステム経由に変更(Codex対応)
callAiJudgeがinfra/claude/にハードコードされており、Codexプロバイダー使用時に
judge評価が動作しなかった。agents/ai-judge.tsに移動し、runAgent経由で
プロバイダーを正しく解決するように修正。
2026-02-10 19:32:42 +09:00
nrslib
55559cc41c Codex プロセスのハングによる worker pool スロット占有を防止
Codex CLI プロセスが API 応答待ちで無応答になった場合、for await ループが
永久にブロックし worker pool のスロットを占有し続ける問題に対処。
AbortSignal の伝播経路を整備し、2層のタイムアウトを導入した。

- Codex ストリームのアイドルタイムアウト(10分無応答で中断)
- タスクレベルのタイムアウト(並列実行時、1時間で中断)
- AbortSignal を worker pool → PieceEngine → AgentRunner → Codex SDK まで伝播
2026-02-09 10:00:05 +09:00
nrs
ffc151cd8d
takt: github-issue-125-claude-agent (#133) 2026-02-08 08:11:05 +09:00
nrslib
e23cfa9a3b agent 周りの抽象化 2026-02-07 10:15:41 +09:00
nrslib
6f94681359 change agent to persona 2026-02-07 08:52:37 +09:00
nrslib
792f61df55 TAKTのメタ情報をエージェントに引き渡す。またTAKTの前回セッションの情報をscoreフェーズに追加 resolved #89 2026-02-05 09:20:18 +09:00
nrslib
38d43f2168 pieceに完全移行 2026-02-04 11:07:41 +09:00
nrslib
887365c4eb 無用な後方互換削除 2026-02-04 04:04:56 +09:00
nrslib
6378ee6174 プロンプトを見通しやすく変更 2026-02-04 03:33:48 +09:00
nrslib
7377c5f9d9 feat: プロバイダー非依存の permission_mode 値を導入し sandboxMode を設定可能にする (#87)
- permission_mode を readonly/edit/full に統一(プロバイダー非依存)
- Claude SDK: readonly→default, edit→acceptEdits, full→bypassPermissions とマッピング
- Codex SDK: readonly→read-only, edit→workspace-write, full→danger-full-access とマッピング
- Legacy値(default/acceptEdits/bypassPermissions)のサポートを削除
- 全ビルトインワークフローを新しい permission_mode 値に更新
- AgentRunner の ProviderCallOptions 生成ロジックをリファクタリング(DRY化)
2026-02-03 00:59:16 +09:00
nrslib
18894e2587 feat: workflowにてagent未指定でも起動可能にする (#71)
- agent フィールドを optional に変更
- agent未指定時は instruction_template のみで実行(システムプロンプトなし)
- agentSpec文字列をインラインシステムプロンプトとして扱う機能を追加
- セッションキーを agent ?? step.name に変更してagent未指定に対応
- README/README.ja.mdにエージェントレスステップの説明を追加
2026-02-03 00:21:17 +09:00
nrslib
b944349d8f refacotr 2026-02-02 21:52:40 +09:00
nrslib
7d8ba10abb refactor 2026-02-02 17:11:42 +09:00
nrslib
710d108f53 structuring 2026-02-02 10:14:12 +09:00
nrslib
9c597a9b0d レポート出力をフェーズ2に分離し、本体実行からWriteを除外
ステップ実行を2フェーズに分離:
- フェーズ1(本体): allowed_toolsからWriteを除外、レポート情報を注入しない
- フェーズ2(レポート出力): 同一セッションresume、Writeのみ付与、ステータス検出なし

buildInstruction()からレポート関連コードを削除し、
buildReportInstruction()を新設してレポート出力の責務を完全分離。
2026-01-30 15:26:56 +09:00
nrslib
6fe6491948 report 系のformatを利用するように変更、gitdiff廃止 2026-01-30 09:13:32 +09:00
nrslib
e67d2648d8 rule機能追加 2026-01-30 00:05:11 +09:00
nrslib
d900ee8bc4 feat: answer status, autoCommit, permission_mode, verbose logging
- answer: planner が質問と判断したら COMPLETE で終了する仕組み
- autoCommit: worktree タスク完了時に自動 git commit
- permission_mode: workflow YAML でステップごとの権限指定
- verbose: verbose 時のファイル+stderr 二重出力修正
2026-01-28 10:02:04 +09:00
nrslib
ccc19e83ff mock実行をできるように修正 2026-01-27 11:50:07 +09:00
nrslib
7beb604f1e 遷移用プロンプトをすべてworkflowに 2026-01-27 00:26:43 +09:00
nrslib
d8133bbc8c プロンプトをピュアにする 2026-01-26 23:03:23 +09:00
nrslib
dad627ef03 モデルを選択可能に変更 2026-01-26 19:08:22 +09:00
nrslib
90cac7e25e 権限を設定できるように 2026-01-26 16:39:57 +09:00
nrslib
c1fccaaf37 support for codex 2026-01-26 16:24:50 +09:00
nrslib
e204c9b65e ワークフローを変更 2026-01-26 09:10:43 +09:00
nrslib
334b9bb399 Remove interactive mode and simplify CLI 2026-01-25 21:58:56 +09:00
nrslib
ffe8776437 first commit: 2026-01-25 15:16:27 +09:00