71 Commits

Author SHA1 Message Date
nrs
8403a7c892
takt: add-trace-report-generation (#467) 2026-03-04 23:07:36 +09:00
nrslib
4e89fe1c23 feat: reviewers↔fix ループ収束を支援するレポート履歴・ループ監視・参照方針の整備
- phase-runner: レポートを上書きせずタイムスタンプ付きで同ディレクトリに保存し、fix が過去指摘の傾向を追跡できるよう改善
- output-contracts: persists/reopened/family_tag フィールドを追加してレビュー指摘の継続性を明示
- pieces: 全ビルトインピースに reviewers↔fix の loop_monitors を追加し、発散ループを自動検知
- fix.md: 過去レポートの参照方法を「Glob で {レポート名}.* を検索、最大2件読む」と具体化
- loop-monitor-reviewers-fix.md: ループモニタ判定用の共通インストラクションを新規追加
2026-03-04 11:32:19 +09:00
nrs
8430948475
takt: unify-provider-config (#457) 2026-03-04 00:34:07 +09:00
nrslib
d2b48fdd92 fix: resolve provider-first permission mode and add codex EPERM e2e 2026-03-03 17:15:54 +09:00
nrs
4a92ba2012
[#366] implement-exceeded-requeue (#374)
* takt: implement-exceeded-requeue

* takt: implement-exceeded-requeue

* takt: implement-exceeded-requeue

* ci: trigger CI

* fix: 未使用インポート削除と --create-worktree e2e テスト修正

InteractiveModeAction の不要な import を削除して lint エラーを解消する。
--create-worktree オプション削除に合わせ e2e の期待メッセージを更新する。

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-02 23:30:53 +09:00
nrslib
47612d9dcc refactor: agent-usecases / schema-loader の移動と pieceExecution の責務分割
- agent-usecases.ts を core/piece/ → agents/ へ移動
- schema-loader.ts を core/piece/ → infra/resources/ へ移動
- interactive-summary-types.ts を分離、shared/types/ ディレクトリを追加
- pieceExecution.ts を abortHandler / analyticsEmitter / iterationLimitHandler / outputFns / runMeta / sessionLogger に分割
- buildMergeFn を async → sync に変更(custom merge の file 戦略を削除)
- cleanupOrphanedClone にパストラバーサル保護を追加
- review-fix / frontend-review-fix ピースの IT テストを追加
2026-03-02 21:20:50 +09:00
nrslib
769bd98724 fix: avoid leading-boundary flush before complete boundary 2026-03-02 15:14:01 +09:00
nrslib
872ff5fa36 feat: decomposeTask / requestMoreParts / judgeStatus にプロバイダーイベントロギングを追加
onStream を各オプション型に追加し、runAgent 呼び出しに伝播させる。
これにより team_leader の分解フェーズや Phase 3 判定のイベントが
provider-events.jsonl に記録されるようになる。

変更ファイル:
- agent-usecases.ts: JudgeStatusOptions / DecomposeTaskOptions に onStream 追加
- phase-runner.ts: PhaseRunnerContext に onStream 追加
- status-judgment-phase.ts: judgeStatus に ctx.onStream を渡す
- OptionsBuilder.ts: buildPhaseRunnerContext の戻り値に onStream を含める
- TeamLeaderRunner.ts: decomposeTask / requestMoreParts に engineOptions.onStream を渡す
2026-03-02 14:24:57 +09:00
nrslib
b999ae4a4b fix: decomposeTask / requestMoreParts の maxTurns を 2 → 4 に増加
structured output の再試行余裕を確保するため。
maxTurns: 2 だと長いタスク分解で詰まる可能性があった。
2026-03-02 14:20:06 +09:00
nrslib
bddb66f85d fix: avoid leading-boundary timed flush fragmentation 2026-03-02 14:18:28 +09:00
nrslib
52968ac873 fix: team leader エラーメッセージが空になるバグを修正
error と content が共に空の場合、status をフォールバックとして使用する。
?? 演算子は空文字をフォールバックしないため || に変更。
2026-03-02 14:18:28 +09:00
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
nrs
551299dbf8
takt: github-issue-390-to-no-provide (#393) 2026-02-26 23:45:03 +09:00
nrslib
798e89605d feat: TeamLeader に refill threshold と動的パート追加を導入
TeamLeaderRunner を4モジュールに分割(execution, aggregation, common, streaming)し、
パート完了時にキュー残数が refill_threshold 以下になると追加タスクを動的に生成する
worker pool 型の実行モデルを実装。ParallelLogger に LineTimeSliceBuffer を追加し
ストリーミング出力を改善。deep-research ピースに team_leader 設定を追加。
2026-02-26 22:33:22 +09:00
nrslib
f6d8c353d3 refactor: provider のデフォルト値 'claude' を廃止し明示設定を必須化
暗黙の claude フォールバックを削除し、未設定時は明確なエラーを返すように変更。
permission は未設定時 readonly にフォールバック。テスト・E2E を新挙動に適合。
2026-02-26 02:11:49 +09:00
nrs
dfc9263ef0
Merge pull request #369 from KentarouTakeda/support-ask-user-question
feat: AskUserQuestion 対応 (#161)
2026-02-23 22:01:13 +09:00
nrslib
f2ca01ffe0 refactor: provider/model resolution precedenceを一元化 2026-02-23 15:28:38 +09:00
武田 憲太郎
61959f66a9 feat: AskUserQuestion 対応 (#161) 2026-02-23 15:24:10 +09:00
nrs
dec77e069e
add-model-to-persona-providers (#324)
* takt: add-model-to-persona-providers

* refactor: loadConfigを廃止しresolveConfigValueにキー単位解決を一元化

loadConfig()による一括マージを廃止し、resolveConfigValue()でキーごとに
global/project/piece/envの優先順位を宣言的に解決する方式に移行。
providerOptionsの優先順位をglobal < piece < project < envに修正し、
sourceトラッキングでOptionsBuilderのマージ方向を制御する。
2026-02-20 11:12:46 +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
0d1da61d14
[draft] takt/284/implement-using-only-the-files (#296)
* feat: track project-level .takt/pieces in version control

* feat: track project-level takt facets for customizable resources

* chore: include project .takt/config.yaml in git-tracked subset

* takt: github-issue-284-faceted-prompting
2026-02-18 23:21:09 +09:00
nrslib
d04bc24591 feat: add expert-mini/expert-cqrs-mini pieces and fix permission fallback
- Add expert-mini and expert-cqrs-mini pieces (ja/en)
- Add new pieces to Mini and Expert categories
- Fall back to readonly when permission mode is unresolved instead of throwing
2026-02-15 12:45:34 +09:00
nrslib
2460dbdf61 refactor(output-contracts): unify OutputContractEntry to item format with use_judge and move runtime dir under .takt
- Remove OutputContractLabelPath (label:path format), unify to OutputContractItem only
- Add required format field and use_judge flag to output contracts
- Add getJudgmentReportFiles() to filter reports eligible for Phase 3 status judgment
- Add supervisor-validation output contract, remove review-summary
- Enhance output contracts with finding_id tracking (new/persists/resolved sections)
- Move runtime environment directory from .runtime to .takt/.runtime
- Update all builtin pieces, e2e fixtures, and tests
2026-02-15 11:17:55 +09:00
nrslib
f065ee510f feat: resolve movement permissions via provider profiles with required floor 2026-02-15 07:00:03 +09:00
nrslib
6e14cd3c38 feat(runtime): add configurable prepare presets and provider e2e 2026-02-15 05:28:39 +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
6fe8fece91 interactive の選択肢が非同期実行時に出てしまうバグのfix 2026-02-13 23:28:20 +09:00
nrslib
479ee7ec25 providerごとに通信を許可する 2026-02-13 16:37:07 +09:00
nrslib
608f4ba73e Merge branch 'takt/257/add-agent-usecase-structured-o' into develop 2026-02-13 07:24:25 +09:00
nrslib
4919bc759f 判定処理の修正 2026-02-13 06:11:06 +09:00
nrslib
bcf38a5530 takt: 257/add-agent-usecase-structured-o 2026-02-12 15:03:28 +09:00
nrslib
bf4196d3b3 takt: github-issue-257 2026-02-12 13:32:28 +09:00
nrs
c7f2670562
takt: github-issue-246-opencode-report-permission-deprecated-tools (#252) 2026-02-12 11:55:47 +09:00
nrs
39c587d67b
github-issue-245-report (#251)
* dist-tag 検証をリトライ付きに変更(npm レジストリの結果整合性対策)

* takt run 実行時に蓋閉じスリープを抑制

* takt: github-issue-245-report
2026-02-12 11:51:55 +09:00
nrs
a82d6d9d8a
github-issue-244 (#250)
* dist-tag 検証をリトライ付きに変更(npm レジストリの結果整合性対策)

* takt run 実行時に蓋閉じスリープを抑制

* takt: github-issue-244

* takt: #244/implement-parallel-subtasks
2026-02-12 11:51:34 +09:00
nrslib
15fc6875e2 fix: lint errors in merge/resolveTask/confirm 2026-02-11 11:03:00 +09:00
nrslib
69bd77ab62 Provider およびモデル名を出力 2026-02-11 10:38:03 +09:00
nrs
36e77ae0fa
takt: issue (#220) 2026-02-11 06:37:06 +09:00
nrs
b80f6d0aa0
takt: opencode (#222) 2026-02-11 06:35:50 +09:00
nrs
11045d1c57
takt: github-issue-163-report-phase-blocked (#218) 2026-02-10 23:44:41 +09:00
nrs
de6b5b5c2c
takt: github-issue-212-max-iteration-max-movement-ostinato (#217) 2026-02-10 23:43:29 +09:00
nrslib
9546806649 暴走抑止 2026-02-10 21:26:38 +09:00
nrs
194610018a
takt/#209/update review history logs (#213)
* fix: callAiJudgeをプロバイダーシステム経由に変更(Codex対応)

callAiJudgeがinfra/claude/にハードコードされており、Codexプロバイダー使用時に
judge評価が動作しなかった。agents/ai-judge.tsに移動し、runAgent経由で
プロバイダーを正しく解決するように修正。

* takt: github-issue-209
2026-02-10 19:58:38 +09:00
nrs
9c4408909d
takt: github-issue-207-previous-response-source-path (#210) 2026-02-10 16:33:38 +09:00
nrs
8cb3c87801
takt: github-issue-204-takt-tasks (#205) 2026-02-10 14:26:37 +09:00
nrs
7e15691ba2
github-issue-200-arpeggio (#203)
* fix: stable release時にnext dist-tagを自動同期

* takt: github-issue-200-arpeggio
2026-02-10 13:37:15 +09:00
nrslib
222560a96a プロバイダーエラーを blocked から error ステータスに分離し、Codex にリトライ機構を追加
blocked はユーザー入力で解決可能な状態、error はプロバイダー障害として意味を明確化。
PieceEngine で error ステータスを検知して即座に abort する。
Codex クライアントにトランジェントエラー(stream disconnected, transport error 等)の
指数バックオフリトライ(最大3回)を追加。
2026-02-09 22:04:52 +09:00