aiwcli 0.15.5 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -1124
- package/bin/run.js +0 -4
- package/dist/capabilities/branch/adapters.d.ts +2 -0
- package/dist/capabilities/branch/adapters.js +21 -0
- package/dist/capabilities/branch/contracts.d.ts +57 -0
- package/dist/capabilities/branch/contracts.js +1 -0
- package/dist/capabilities/branch/control-plane.d.ts +2 -0
- package/dist/capabilities/branch/control-plane.js +343 -0
- package/dist/capabilities/branch/runtime-core.d.ts +5 -0
- package/dist/capabilities/branch/runtime-core.js +36 -0
- package/dist/capabilities/installation/control-plane/clean-command.d.ts +41 -0
- package/dist/capabilities/installation/control-plane/clean-command.js +196 -0
- package/dist/capabilities/installation/control-plane/clear-command.d.ts +162 -0
- package/dist/capabilities/installation/control-plane/clear-command.js +1249 -0
- package/dist/capabilities/installation/control-plane/init-command.d.ts +81 -0
- package/dist/capabilities/installation/control-plane/init-command.js +449 -0
- package/dist/capabilities/launch/contracts.d.ts +86 -0
- package/dist/capabilities/launch/contracts.js +1 -0
- package/dist/capabilities/launch/control-plane/execute-launch.d.ts +2 -0
- package/dist/capabilities/launch/control-plane/execute-launch.js +261 -0
- package/dist/capabilities/launch/runtime-core/launch-decisions.d.ts +82 -0
- package/dist/capabilities/launch/runtime-core/launch-decisions.js +202 -0
- package/dist/capabilities/launch/runtime-core/launch-options.d.ts +14 -0
- package/dist/capabilities/launch/runtime-core/launch-options.js +69 -0
- package/dist/cli/base-command.d.ts +18 -0
- package/dist/cli/base-command.js +55 -0
- package/dist/commands/branch.d.ts +1 -21
- package/dist/commands/branch.js +25 -417
- package/dist/commands/clean.d.ts +1 -41
- package/dist/commands/clean.js +1 -196
- package/dist/commands/clear.d.ts +1 -161
- package/dist/commands/clear.js +1 -1121
- package/dist/commands/init/index.d.ts +1 -98
- package/dist/commands/init/index.js +4 -478
- package/dist/commands/launch.d.ts +32 -12
- package/dist/commands/launch.js +107 -166
- package/dist/lib/claude-settings-types.d.ts +31 -19
- package/dist/lib/config.js +1 -2
- package/dist/lib/context/context-formatter.d.ts +74 -0
- package/dist/lib/context/context-formatter.js +493 -0
- package/dist/lib/context/context-selector.d.ts +42 -0
- package/dist/lib/context/context-selector.js +451 -0
- package/dist/lib/context/context-store.d.ts +100 -0
- package/dist/lib/context/context-store.js +644 -0
- package/dist/lib/context/plan-manager.d.ts +54 -0
- package/dist/lib/context/plan-manager.js +282 -0
- package/dist/lib/context/task-tracker.d.ts +44 -0
- package/dist/lib/context/task-tracker.js +146 -0
- package/dist/lib/core-ide-base.d.ts +4 -0
- package/dist/lib/core-ide-base.js +77 -0
- package/dist/lib/core-installer.d.ts +5 -0
- package/dist/lib/core-installer.js +33 -0
- package/dist/lib/debug.d.ts +0 -10
- package/dist/lib/debug.js +0 -10
- package/dist/lib/env-sanitizer.d.ts +25 -0
- package/dist/lib/env-sanitizer.js +46 -0
- package/dist/lib/errors.d.ts +0 -13
- package/dist/lib/errors.js +0 -15
- package/dist/lib/git-exclude-manager.d.ts +2 -2
- package/dist/lib/git-exclude-manager.js +3 -3
- package/dist/lib/hooks/context-monitor-logic.d.ts +6 -0
- package/dist/lib/hooks/context-monitor-logic.js +25 -0
- package/dist/lib/hooks/hook-utils.d.ts +143 -0
- package/dist/lib/hooks/hook-utils.js +620 -0
- package/dist/lib/hooks/prompt-binding-logic.d.ts +7 -0
- package/dist/lib/hooks/prompt-binding-logic.js +50 -0
- package/dist/lib/hooks/session-end-logic.d.ts +5 -0
- package/dist/lib/hooks/session-end-logic.js +51 -0
- package/dist/lib/hooks-merger.js +25 -19
- package/dist/lib/ide-path-resolver.d.ts +19 -7
- package/dist/lib/ide-path-resolver.js +25 -9
- package/dist/lib/install-state.d.ts +34 -0
- package/dist/lib/install-state.js +154 -0
- package/dist/lib/json-io.d.ts +12 -0
- package/dist/lib/json-io.js +30 -0
- package/dist/lib/lsp-patch.d.ts +12 -0
- package/dist/lib/lsp-patch.js +156 -0
- package/dist/lib/multiplexer.d.ts +65 -0
- package/dist/lib/multiplexer.js +38 -0
- package/dist/lib/multiplexers/psmux.d.ts +55 -0
- package/dist/lib/multiplexers/psmux.js +324 -0
- package/dist/lib/multiplexers/tmux.d.ts +36 -0
- package/dist/lib/multiplexers/tmux.js +221 -0
- package/dist/lib/multiplexers/wezterm.d.ts +38 -0
- package/dist/lib/multiplexers/wezterm.js +225 -0
- package/dist/lib/mux-utils.d.ts +6 -0
- package/dist/lib/mux-utils.js +36 -0
- package/dist/lib/paths.d.ts +2 -2
- package/dist/lib/paths.js +2 -2
- package/dist/lib/platform-commands.d.ts +27 -0
- package/dist/lib/platform-commands.js +49 -0
- package/dist/lib/prompt-file-manager.d.ts +23 -0
- package/dist/lib/prompt-file-manager.js +41 -0
- package/dist/lib/runtime/agent-launcher.d.ts +67 -0
- package/dist/lib/runtime/agent-launcher.js +262 -0
- package/dist/lib/runtime/aiw-cli.d.ts +39 -0
- package/dist/lib/runtime/aiw-cli.js +76 -0
- package/dist/lib/runtime/atomic-write.d.ts +19 -0
- package/dist/lib/runtime/atomic-write.js +121 -0
- package/dist/lib/runtime/cli-args.d.ts +58 -0
- package/dist/lib/runtime/cli-args.js +200 -0
- package/dist/lib/runtime/constants.d.ts +56 -0
- package/dist/lib/runtime/constants.js +230 -0
- package/dist/lib/runtime/executable-policy.d.ts +16 -0
- package/dist/lib/runtime/executable-policy.js +57 -0
- package/dist/lib/runtime/git-state.d.ts +9 -0
- package/dist/lib/runtime/git-state.js +59 -0
- package/dist/lib/runtime/inference.d.ts +37 -0
- package/dist/lib/runtime/inference.js +251 -0
- package/dist/lib/runtime/lint-dispatch.d.ts +40 -0
- package/dist/lib/runtime/lint-dispatch.js +285 -0
- package/dist/lib/runtime/logger.d.ts +66 -0
- package/dist/lib/runtime/logger.js +201 -0
- package/dist/lib/runtime/models.d.ts +20 -0
- package/dist/lib/runtime/models.js +20 -0
- package/dist/lib/runtime/platform-adapter.d.ts +7 -0
- package/dist/lib/runtime/platform-adapter.js +21 -0
- package/dist/lib/runtime/preflight.d.ts +24 -0
- package/dist/lib/runtime/preflight.js +65 -0
- package/dist/lib/runtime/sentinel-ipc.d.ts +14 -0
- package/dist/lib/runtime/sentinel-ipc.js +67 -0
- package/dist/lib/runtime/state-io.d.ts +31 -0
- package/dist/lib/runtime/state-io.js +179 -0
- package/dist/lib/runtime/stop-words.d.ts +20 -0
- package/dist/lib/runtime/stop-words.js +150 -0
- package/dist/lib/runtime/subprocess-utils.d.ts +29 -0
- package/dist/lib/runtime/subprocess-utils.js +96 -0
- package/dist/lib/runtime/tmux-preflight.d.ts +13 -0
- package/dist/lib/runtime/tmux-preflight.js +78 -0
- package/dist/lib/runtime/utils.d.ts +62 -0
- package/dist/lib/runtime/utils.js +192 -0
- package/dist/lib/schemas.d.ts +250 -0
- package/dist/lib/schemas.js +216 -0
- package/dist/lib/sentinel-manager.d.ts +32 -0
- package/dist/lib/sentinel-manager.js +62 -0
- package/dist/lib/sentinel-wrapper.d.ts +10 -0
- package/dist/lib/sentinel-wrapper.js +29 -0
- package/dist/lib/settings-hierarchy.js +3 -20
- package/dist/lib/shell-adapters/bash-adapter.d.ts +18 -0
- package/dist/lib/shell-adapters/bash-adapter.js +69 -0
- package/dist/lib/shell-adapters/index.d.ts +5 -0
- package/dist/lib/shell-adapters/index.js +7 -0
- package/dist/lib/shell-adapters/powershell-adapter.d.ts +18 -0
- package/dist/lib/shell-adapters/powershell-adapter.js +62 -0
- package/dist/lib/shell-adapters/shell-adapter.d.ts +45 -0
- package/dist/lib/shell-adapters/shell-adapter.js +5 -0
- package/dist/lib/shell-quoting.d.ts +5 -0
- package/dist/lib/shell-quoting.js +17 -0
- package/dist/lib/spawn-errors.d.ts +9 -0
- package/dist/lib/spawn-errors.js +29 -0
- package/dist/lib/spawn.js +5 -11
- package/dist/lib/spinner.d.ts +0 -5
- package/dist/lib/spinner.js +0 -16
- package/dist/lib/template-installer.d.ts +14 -5
- package/dist/lib/template-installer.js +40 -38
- package/dist/lib/template-resolver.d.ts +6 -7
- package/dist/lib/template-resolver.js +26 -21
- package/dist/lib/template-settings-reconstructor.d.ts +7 -2
- package/dist/lib/template-settings-reconstructor.js +76 -45
- package/dist/lib/terminal-strategy.d.ts +12 -0
- package/dist/lib/terminal-strategy.js +55 -0
- package/dist/lib/terminal.d.ts +34 -4
- package/dist/lib/terminal.js +192 -119
- package/dist/lib/tmux-pane-placement.d.ts +17 -0
- package/dist/lib/tmux-pane-placement.js +58 -0
- package/dist/lib/tmux-primitives.d.ts +3 -0
- package/dist/lib/tmux-primitives.js +11 -0
- package/dist/lib/tmux-session.d.ts +32 -0
- package/dist/lib/tmux-session.js +87 -0
- package/dist/lib/tty-detection.js +1 -1
- package/dist/lib/types.d.ts +168 -0
- package/dist/lib/types.js +6 -0
- package/dist/lib/version.d.ts +1 -1
- package/dist/lib/version.js +1 -1
- package/dist/lib/windsurf-hooks-hierarchy.js +6 -23
- package/dist/platform/launch.d.ts +11 -0
- package/dist/platform/launch.js +11 -0
- package/dist/templates/CLAUDE.md +30 -40
- package/dist/templates/cc-native/.claude/settings.json +26 -36
- package/dist/templates/cc-native/CC-NATIVE-README.md +1 -1
- package/dist/templates/cc-native/TEMPLATE-SCHEMA.md +20 -12
- package/dist/templates/cc-native/_cc-native/cc-native.config.json +2 -6
- package/dist/templates/cc-native/_cc-native/hooks/CLAUDE.md +39 -59
- package/dist/templates/cc-native/_cc-native/hooks/cc-native-plan-review.ts +9 -11
- package/dist/templates/cc-native/_cc-native/hooks/enhance_plan_post_subagent.ts +2 -2
- package/dist/templates/cc-native/_cc-native/hooks/enhance_plan_post_write.ts +4 -5
- package/dist/templates/cc-native/_cc-native/hooks/mark_questions_asked.ts +4 -4
- package/dist/templates/cc-native/_cc-native/hooks/plan_questions_early.ts +2 -27
- package/dist/templates/cc-native/_cc-native/hooks/validate_task_prompt.ts +7 -7
- package/dist/templates/cc-native/_cc-native/lib-ts/.mocharc.json +9 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/aggregate-agents.test.ts +118 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/artifacts.test.ts +234 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/cc-native-state.test.ts +170 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/cli-output-parser.test.ts +73 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/config.test.ts +64 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/constants.test.ts +40 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/debug.test.ts +42 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/exports.test.ts +58 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/helpers.ts +107 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/hooks/add-plan-context.hook.test.ts +97 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/hooks/plan-questions.hook.test.ts +81 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/hooks/plan-review.hook.test.ts +71 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/json-parser.test.ts +99 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/orchestrator-agent.test.ts +288 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/orchestrator.test.ts +48 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/reviewers.test.ts +32 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/state.test.ts +124 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/__tests__/verdict.test.ts +93 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/agent-selection.ts +163 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/aggregate-agents.ts +6 -14
- package/dist/templates/cc-native/_cc-native/{artifacts/lib → lib-ts/artifacts}/format.ts +597 -599
- package/dist/templates/cc-native/_cc-native/{artifacts/lib → lib-ts/artifacts}/index.ts +26 -26
- package/dist/templates/cc-native/_cc-native/{artifacts/lib → lib-ts/artifacts}/tracker.ts +106 -107
- package/dist/templates/cc-native/_cc-native/{artifacts/lib → lib-ts/artifacts}/write.ts +118 -119
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts.ts +21 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/cc-native-state.ts +17 -16
- package/dist/templates/cc-native/_cc-native/lib-ts/cli-output-parser.ts +132 -10
- package/dist/templates/cc-native/_cc-native/lib-ts/config.ts +1 -1
- package/dist/templates/cc-native/_cc-native/lib-ts/constants.ts +6 -6
- package/dist/templates/cc-native/_cc-native/lib-ts/corroboration.ts +119 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/debug.ts +2 -3
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/graduation.ts +132 -132
- package/dist/templates/cc-native/_cc-native/lib-ts/index.ts +88 -86
- package/dist/templates/cc-native/_cc-native/lib-ts/json-parser.ts +5 -6
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/orchestrator.ts +70 -70
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/output-builder.ts +130 -121
- package/dist/templates/cc-native/_cc-native/lib-ts/package-lock.json +1679 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/package.json +24 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/plan-discovery.ts +5 -5
- package/dist/templates/cc-native/_cc-native/lib-ts/plan-enhancement.ts +1 -6
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/plan-questions.ts +101 -101
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/review-pipeline.ts +511 -543
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/__tests__/agent-providers.test.ts +262 -0
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/reviewers/agent.ts +71 -85
- package/dist/templates/{_shared/lib-ts/agent-exec → cc-native/_cc-native/lib-ts/reviewers/base}/base-agent.ts +138 -150
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/reviewers/index.ts +12 -12
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/reviewers/providers/claude-agent.ts +66 -57
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/reviewers/providers/codex-agent.ts +185 -200
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/reviewers/providers/gemini-agent.ts +39 -40
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/reviewers/providers/orchestrator-claude-agent.ts +196 -225
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/reviewers/schemas.ts +201 -201
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/reviewers/types.ts +21 -23
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/__tests__/hyde.test.ts +365 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/__tests__/ollama-client.test.ts +223 -0
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/embedding-indexer.ts +12 -16
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/hyde.ts +3 -2
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/index.ts +31 -31
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/logger.ts +7 -8
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/ollama-client.ts +7 -9
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/retrieval-pipeline.ts +16 -19
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/transcript-indexer.ts +37 -41
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/transcript-loader.ts +33 -43
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/transcript-searcher.ts +20 -20
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/types.ts +9 -10
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/vector-store.ts +3 -4
- package/dist/templates/cc-native/_cc-native/lib-ts/settings.ts +50 -126
- package/dist/templates/cc-native/_cc-native/lib-ts/state.ts +20 -22
- package/dist/templates/cc-native/_cc-native/lib-ts/tsconfig.json +2 -2
- package/dist/templates/cc-native/_cc-native/lib-ts/types.ts +14 -89
- package/dist/templates/cc-native/_cc-native/{plan-review/lib → lib-ts}/verdict.ts +72 -72
- package/dist/templates/cc-native/_cc-native/plan-review/CLAUDE.md +38 -1
- package/dist/templates/cc-native/_cc-native/plan-review/lib/__tests__/agent-selection.test.ts +345 -0
- package/dist/templates/cc-native/_cc-native/plan-review/lib/__tests__/preflight.test.ts +344 -0
- package/dist/templates/cc-native/_cc-native/plan-review/lib/agent-selection.ts +38 -16
- package/dist/templates/cc-native/_cc-native/plan-review/lib/preflight.ts +56 -26
- package/dist/templates/cc-native/_cc-native/scripts/council_debate.ts +242 -0
- package/dist/templates/cc-native/_cc-native/scripts/council_debate_simple.ts +294 -0
- package/dist/templates/cc-native/_cc-native/{plan-review/workflows → workflows}/specdev.md +9 -9
- package/dist/templates/core/.claude/skills/codex/SKILL.md +25 -0
- package/dist/templates/core/.claude/skills/devin/SKILL.md +25 -0
- package/dist/templates/core/.claude/skills/handoff/SKILL.md +11 -0
- package/dist/templates/core/.claude/skills/handoff-resume/SKILL.md +11 -0
- package/dist/templates/core/.claude/skills/meta-plan/SKILL.md +13 -0
- package/dist/templates/core/.codex/skills/codex/SKILL.md +13 -0
- package/dist/templates/core/.codex/skills/devin/SKILL.md +19 -0
- package/dist/templates/core/.codex/skills/handoff/SKILL.md +11 -0
- package/dist/templates/core/.codex/skills/handoff-resume/SKILL.md +11 -0
- package/dist/templates/core/.codex/skills/meta-plan/SKILL.md +13 -0
- package/dist/templates/core/.devin/AGENTS.md +5 -0
- package/dist/templates/core/.devin/config.json +12 -0
- package/dist/templates/core/.devin/skills/codex/SKILL.md +19 -0
- package/dist/templates/core/.devin/skills/devin/SKILL.md +13 -0
- package/dist/templates/core/.devin/skills/handoff/SKILL.md +11 -0
- package/dist/templates/core/.devin/skills/handoff-resume/SKILL.md +11 -0
- package/dist/templates/core/.devin/skills/meta-plan/SKILL.md +13 -0
- package/dist/templates/core/.windsurf/workflows/handoff-resume.md +9 -0
- package/dist/templates/{_shared → core}/.windsurf/workflows/handoff.md +1 -1
- package/dist/templates/{_shared → core}/.windsurf/workflows/meta-plan.md +1 -1
- package/dist/templates/core/hooks-ts/_utils/git-state.ts +2 -0
- package/dist/templates/{_shared → core}/hooks-ts/archive_plan.ts +15 -44
- package/dist/templates/core/hooks-ts/codex_explorer.ts +160 -0
- package/dist/templates/{_shared → core}/hooks-ts/context_monitor.ts +23 -55
- package/dist/templates/{_shared → core}/hooks-ts/file-suggestion.ts +5 -22
- package/dist/templates/{_shared → core}/hooks-ts/lint_after_edit.ts +7 -9
- package/dist/templates/core/hooks-ts/pre_compact.ts +36 -0
- package/dist/templates/{_shared → core}/hooks-ts/session_end.ts +38 -78
- package/dist/templates/{_shared → core}/hooks-ts/session_start.ts +5 -5
- package/dist/templates/core/hooks-ts/task_create_capture.ts +32 -0
- package/dist/templates/{_shared → core}/hooks-ts/task_update_capture.ts +9 -24
- package/dist/templates/core/hooks-ts/user_prompt_submit.ts +46 -0
- package/dist/templates/{_shared → core}/lib-ts/CLAUDE.md +27 -16
- package/dist/templates/{_shared → core}/lib-ts/context/CLAUDE.md +9 -6
- package/dist/templates/{_shared → core}/lib-ts/context/context-formatter.ts +16 -21
- package/dist/templates/{_shared → core}/lib-ts/context/context-selector.ts +8 -6
- package/dist/templates/{_shared → core}/lib-ts/context/context-store.ts +59 -20
- package/dist/templates/{_shared → core}/lib-ts/context/plan-manager.ts +19 -15
- package/dist/templates/{_shared → core}/lib-ts/context/task-tracker.ts +3 -3
- package/dist/templates/core/lib-ts/hooks/context-monitor-logic.ts +32 -0
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/hooks}/hook-utils.ts +179 -41
- package/dist/templates/core/lib-ts/hooks/prompt-binding-logic.ts +80 -0
- package/dist/templates/core/lib-ts/hooks/session-end-logic.ts +82 -0
- package/dist/templates/core/lib-ts/package.json +19 -0
- package/dist/templates/core/lib-ts/runtime/agent-launcher.ts +369 -0
- package/dist/templates/core/lib-ts/runtime/aiw-cli.ts +108 -0
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/atomic-write.ts +12 -7
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/cli-args.ts +24 -8
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/constants.ts +326 -324
- package/dist/templates/core/lib-ts/runtime/executable-policy.ts +89 -0
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/git-state.ts +6 -4
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/inference.ts +60 -23
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/lint-dispatch.ts +25 -23
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/logger.ts +32 -29
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/models.ts +9 -2
- package/dist/templates/core/lib-ts/runtime/platform-adapter.ts +33 -0
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/preflight.ts +4 -3
- package/dist/templates/core/lib-ts/runtime/sentinel-ipc.ts +91 -0
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/state-io.ts +20 -11
- package/dist/templates/core/lib-ts/runtime/stop-words.ts +185 -0
- package/dist/templates/core/lib-ts/runtime/subprocess-utils.ts +147 -0
- package/dist/templates/core/lib-ts/runtime/tmux-preflight.ts +93 -0
- package/dist/templates/{_shared/lib-ts/base → core/lib-ts/runtime}/utils.ts +34 -4
- package/dist/templates/core/lib-ts/schemas.ts +233 -0
- package/dist/templates/{_shared → core}/lib-ts/templates/formatters.ts +7 -5
- package/dist/templates/{_shared → core}/lib-ts/templates/plan-context.ts +2 -1
- package/dist/templates/{_shared → core}/lib-ts/tsconfig.json +3 -1
- package/dist/templates/{_shared → core}/lib-ts/types.ts +78 -77
- package/dist/templates/core/scripts/resolve-run.ts +93 -0
- package/dist/templates/{_shared → core}/scripts/resolve_context.ts +3 -3
- package/dist/templates/{_shared → core}/scripts/status_line.ts +26 -21
- package/dist/templates/core/skills/codex/CLAUDE.md +83 -0
- package/dist/templates/{_shared → core}/skills/codex/SKILL.md +27 -18
- package/dist/templates/{_shared → core}/skills/codex/lib/codex-watcher.ts +79 -113
- package/dist/templates/{_shared → core}/skills/codex/scripts/launch-codex.ts +134 -148
- package/dist/templates/{_shared → core}/skills/codex/scripts/watch-codex.ts +6 -4
- package/dist/templates/core/skills/devin/CLAUDE.md +122 -0
- package/dist/templates/core/skills/devin/SKILL.md +73 -0
- package/dist/templates/core/skills/devin/lib/devin-watcher.ts +300 -0
- package/dist/templates/core/skills/devin/scripts/launch-devin.ts +258 -0
- package/dist/templates/{_shared → core}/skills/handoff-system/CLAUDE.md +436 -433
- package/dist/templates/{_shared → core}/skills/handoff-system/lib/document-generator.ts +9 -7
- package/dist/templates/{_shared → core}/skills/handoff-system/lib/handoff-reader.ts +6 -4
- package/dist/templates/{_shared → core}/skills/handoff-system/scripts/resume_handoff.ts +10 -8
- package/dist/templates/{_shared → core}/skills/handoff-system/scripts/save_handoff.ts +12 -10
- package/dist/templates/{_shared → core}/skills/handoff-system/workflows/handoff-resume.md +2 -2
- package/dist/templates/{_shared → core}/skills/handoff-system/workflows/handoff.md +6 -5
- package/dist/templates/{_shared → core}/skills/meta-plan/CLAUDE.md +2 -1
- package/dist/templates/{_shared → core}/skills/meta-plan/workflows/meta-plan.md +8 -7
- package/oclif.manifest.json +89 -13
- package/package.json +13 -12
- package/dist/lib/base-command.d.ts +0 -114
- package/dist/lib/base-command.js +0 -153
- package/dist/lib/env-compat.d.ts +0 -18
- package/dist/lib/env-compat.js +0 -23
- package/dist/lib/stdin.d.ts +0 -48
- package/dist/lib/stdin.js +0 -60
- package/dist/templates/_shared/.claude/settings.json +0 -120
- package/dist/templates/_shared/.claude/skills/codex/SKILL.md +0 -35
- package/dist/templates/_shared/.claude/skills/handoff/SKILL.md +0 -13
- package/dist/templates/_shared/.claude/skills/handoff-resume/SKILL.md +0 -13
- package/dist/templates/_shared/.claude/skills/meta-plan/SKILL.md +0 -43
- package/dist/templates/_shared/.codex/workflows/codex.md +0 -11
- package/dist/templates/_shared/.codex/workflows/handoff.md +0 -226
- package/dist/templates/_shared/.codex/workflows/meta-plan.md +0 -347
- package/dist/templates/_shared/hooks-ts/_utils/git-state.ts +0 -2
- package/dist/templates/_shared/hooks-ts/pre_compact.ts +0 -49
- package/dist/templates/_shared/hooks-ts/task_create_capture.ts +0 -48
- package/dist/templates/_shared/hooks-ts/user_prompt_submit.ts +0 -93
- package/dist/templates/_shared/lib-ts/agent-exec/backends/headless.ts +0 -33
- package/dist/templates/_shared/lib-ts/agent-exec/backends/index.ts +0 -6
- package/dist/templates/_shared/lib-ts/agent-exec/backends/tmux.ts +0 -119
- package/dist/templates/_shared/lib-ts/agent-exec/execution-backend.ts +0 -50
- package/dist/templates/_shared/lib-ts/agent-exec/index.ts +0 -6
- package/dist/templates/_shared/lib-ts/agent-exec/structured-output.ts +0 -166
- package/dist/templates/_shared/lib-ts/base/launchers/tmux-launcher.ts +0 -173
- package/dist/templates/_shared/lib-ts/base/launchers/window-launcher.ts +0 -93
- package/dist/templates/_shared/lib-ts/base/launchers/wt-launcher.ts +0 -64
- package/dist/templates/_shared/lib-ts/base/pane-launcher.ts +0 -55
- package/dist/templates/_shared/lib-ts/base/sentinel-ipc.ts +0 -87
- package/dist/templates/_shared/lib-ts/base/stop-words.ts +0 -184
- package/dist/templates/_shared/lib-ts/base/subprocess-utils.ts +0 -249
- package/dist/templates/_shared/lib-ts/base/tmux-driver.ts +0 -341
- package/dist/templates/_shared/lib-ts/base/tmux-pane-placement.ts +0 -78
- package/dist/templates/_shared/lib-ts/package.json +0 -20
- package/dist/templates/_shared/scripts/resolve-run.ts +0 -62
- package/dist/templates/_shared/skills/codex/CLAUDE.md +0 -70
- package/dist/templates/cc-native/_cc-native/CLAUDE.md +0 -73
- package/dist/templates/cc-native/_cc-native/artifacts/CLAUDE.md +0 -64
- package/dist/templates/cc-native/_cc-native/lib-ts/CLAUDE.md +0 -70
- package/dist/templates/cc-native/_cc-native/plan-review/CODING-STANDARDS-CHECKLIST.md +0 -75
- package/dist/templates/cc-native/_cc-native/plan-review/agents/CLAUDE.md +0 -143
- package/dist/templates/cc-native/_cc-native/plan-review/agents/PLAN-ORCHESTRATOR.md +0 -213
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-questions/PLAN-QUESTIONER.md +0 -70
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/ARCH-EVOLUTION.md +0 -62
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/ARCH-PATTERNS.md +0 -61
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/ARCH-STRUCTURE.md +0 -62
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/ASSUMPTION-TRACER.md +0 -56
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/CLARITY-AUDITOR.md +0 -53
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/COMPLETENESS-FEASIBILITY.md +0 -66
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/COMPLETENESS-GAPS.md +0 -70
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/COMPLETENESS-ORDERING.md +0 -62
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/CONSTRAINT-VALIDATOR.md +0 -72
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/DESIGN-ADR-VALIDATOR.md +0 -61
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/DESIGN-SCALE-MATCHER.md +0 -64
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/DEVILS-ADVOCATE.md +0 -56
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/DOCUMENTATION-PHILOSOPHY.md +0 -86
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/HANDOFF-READINESS.md +0 -59
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/HIDDEN-COMPLEXITY.md +0 -58
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/INCREMENTAL-DELIVERY.md +0 -66
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/RISK-DEPENDENCY.md +0 -62
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/RISK-FMEA.md +0 -66
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/RISK-PREMORTEM.md +0 -71
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/RISK-REVERSIBILITY.md +0 -74
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/SCOPE-BOUNDARY.md +0 -77
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/SIMPLICITY-GUARDIAN.md +0 -62
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/SKEPTIC.md +0 -68
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/TESTDRIVEN-BEHAVIOR-AUDITOR.md +0 -61
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/TESTDRIVEN-CHARACTERIZATION.md +0 -71
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/TESTDRIVEN-FIRST-VALIDATOR.md +0 -61
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/TESTDRIVEN-PYRAMID-ANALYZER.md +0 -61
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/TRADEOFF-COSTS.md +0 -67
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/TRADEOFF-STAKEHOLDERS.md +0 -65
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/VERIFY-COVERAGE.md +0 -74
- package/dist/templates/cc-native/_cc-native/plan-review/agents/plan-review/VERIFY-STRENGTH.md +0 -69
- package/dist/templates/cc-native/_cc-native/plan-review/lib/corroboration.ts +0 -172
- package/dist/templates/cc-native/_cc-native/plan-review/lib/reviewers/base/base-agent.ts +0 -7
|
@@ -5,10 +5,9 @@
|
|
|
5
5
|
* Claude Code session transcripts across all projects.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { homedir } from "
|
|
9
|
-
import { join } from "
|
|
10
|
-
|
|
11
|
-
import { getProjectRoot } from "../../../_shared/lib-ts/base/constants.js";
|
|
8
|
+
import { homedir } from "os";
|
|
9
|
+
import { join } from "path";
|
|
10
|
+
import { getProjectRoot } from "../../../_core/lib-ts/runtime/constants.js";
|
|
12
11
|
import { loadConfig } from "../config.js";
|
|
13
12
|
|
|
14
13
|
// ---------------------------------------------------------------------------
|
|
@@ -35,12 +34,12 @@ export const TOP_N_HEAP = 50;
|
|
|
35
34
|
// ---------------------------------------------------------------------------
|
|
36
35
|
|
|
37
36
|
export const WEIGHT = {
|
|
38
|
-
summary: 3,
|
|
39
|
-
segmentTopic: 3,
|
|
40
|
-
keywords: 2,
|
|
41
|
-
filesTouched: 2,
|
|
37
|
+
summary: 3.0,
|
|
38
|
+
segmentTopic: 3.0,
|
|
39
|
+
keywords: 2.0,
|
|
40
|
+
filesTouched: 2.0,
|
|
42
41
|
commandsRun: 1.5,
|
|
43
|
-
toolCalls: 1,
|
|
42
|
+
toolCalls: 1.0,
|
|
44
43
|
} as const;
|
|
45
44
|
|
|
46
45
|
// ---------------------------------------------------------------------------
|
|
@@ -142,7 +141,7 @@ export const HYDE_NUM_RESPONSES = _ccNativeConfig.numResponses ?? 5;
|
|
|
142
141
|
export const HYDE_MAX_TOKENS = _ccNativeConfig.maxTokens ?? 200;
|
|
143
142
|
|
|
144
143
|
/** Per-response generation timeout in milliseconds. Local models usually respond in 500-1500ms. */
|
|
145
|
-
export const HYDE_TIMEOUT_MS = _ccNativeConfig.timeoutMs ??
|
|
144
|
+
export const HYDE_TIMEOUT_MS = _ccNativeConfig.timeoutMs ?? 10000;
|
|
146
145
|
|
|
147
146
|
/** Fallback to direct query embedding if HyDE fails? true = graceful degradation (recommended). */
|
|
148
147
|
export const HYDE_FALLBACK_TO_QUERY = _ccNativeConfig.fallbackToQuery ?? true;
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
import { Database } from "bun:sqlite";
|
|
9
9
|
import * as sqliteVec from "sqlite-vec";
|
|
10
|
-
|
|
11
|
-
import { logDebug } from "./logger.js";
|
|
12
10
|
import { RLM_VECTOR_DB_PATH, EMBED_DIMENSIONS, type VectorSearchResult } from "./types.js";
|
|
11
|
+
import { logDebug, logInfo } from "./logger.js";
|
|
13
12
|
|
|
14
13
|
const HOOK_NAME = "rlm_vector";
|
|
15
14
|
|
|
@@ -155,7 +154,7 @@ export function deleteSessionChunks(
|
|
|
155
154
|
`SELECT rowid FROM chunks WHERE session_id = ? AND project = ?`,
|
|
156
155
|
).all(sessionId, project);
|
|
157
156
|
|
|
158
|
-
const rows = (Array.isArray(rawRows) ? rawRows : []).filter(
|
|
157
|
+
const rows = (Array.isArray(rawRows) ? rawRows : []).filter(isRowidResult);
|
|
159
158
|
|
|
160
159
|
if (rows.length > 0) {
|
|
161
160
|
const tx = db.transaction(() => {
|
|
@@ -238,7 +237,7 @@ export function searchKnn(
|
|
|
238
237
|
}
|
|
239
238
|
|
|
240
239
|
const rawRows = db.query(sql).all(...params);
|
|
241
|
-
const rows = (Array.isArray(rawRows) ? rawRows : []).filter(
|
|
240
|
+
const rows = (Array.isArray(rawRows) ? rawRows : []).filter(isSearchResultRow);
|
|
242
241
|
|
|
243
242
|
return rows.map((r) => ({
|
|
244
243
|
chunk_id: r.rowid,
|
|
@@ -5,22 +5,18 @@
|
|
|
5
5
|
|
|
6
6
|
import * as path from "node:path";
|
|
7
7
|
|
|
8
|
+
import { logInfo } from "../../_core/lib-ts/runtime/logger.js";
|
|
8
9
|
|
|
9
|
-
import { aggregateAgents } from "./aggregate-agents.js";
|
|
10
|
-
import { loadConfig, getDisplaySettings } from "./config.js";
|
|
11
|
-
import { DEFAULT_REVIEW_ITERATIONS } from "./state.js";
|
|
12
10
|
import type {
|
|
13
11
|
AgentConfig,
|
|
14
|
-
|
|
15
|
-
AgentSelectionConfig,
|
|
16
|
-
LoadedSettings,
|
|
17
|
-
ModelsConfig,
|
|
18
|
-
PlanReviewSettings,
|
|
12
|
+
OrchestratorConfig,
|
|
19
13
|
ProviderConfig,
|
|
14
|
+
ModelsConfig,
|
|
20
15
|
} from "./types.js";
|
|
21
16
|
import { DEFAULT_DISPLAY, DEFAULT_SANITIZATION } from "./types.js";
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
17
|
+
import { loadConfig, getDisplaySettings } from "./config.js";
|
|
18
|
+
import { aggregateAgents } from "./aggregate-agents.js";
|
|
19
|
+
import { DEFAULT_REVIEW_ITERATIONS } from "./state.js";
|
|
24
20
|
|
|
25
21
|
const HOOK = "settings";
|
|
26
22
|
|
|
@@ -61,10 +57,10 @@ export const DEFAULT_AGENTS: Array<{ name: string; model: string; provider: stri
|
|
|
61
57
|
{ ...AGENT_DEFAULTS, name: "constraint-validator", focus: "constraint identification and satisfaction", categories: ALL_CATEGORIES },
|
|
62
58
|
];
|
|
63
59
|
|
|
64
|
-
export const DEFAULT_ORCHESTRATOR = { enabled: true, model:
|
|
60
|
+
export const DEFAULT_ORCHESTRATOR: { enabled: boolean; model: string; timeout: number } = { enabled: true, model: "opus", timeout: 60 };
|
|
65
61
|
export const DEFAULT_AGENT_MODEL = "sonnet";
|
|
66
62
|
|
|
67
|
-
export const DEFAULT_AGENT_SELECTION:
|
|
63
|
+
export const DEFAULT_AGENT_SELECTION: Record<string, unknown> = {
|
|
68
64
|
simple: { min: 3, max: 3 },
|
|
69
65
|
medium: { min: 5, max: 5 },
|
|
70
66
|
high: { min: 7, max: 7 },
|
|
@@ -75,8 +71,8 @@ export const DEFAULT_COMPLEXITY_CATEGORIES = ["code", "infrastructure", "documen
|
|
|
75
71
|
|
|
76
72
|
export const DEFAULT_MODELS_CONFIG: ModelsConfig = {
|
|
77
73
|
providers: {
|
|
78
|
-
claude: { enabled:
|
|
79
|
-
codex: { enabled: true, models: [
|
|
74
|
+
claude: { enabled: true, models: ["sonnet"] },
|
|
75
|
+
codex: { enabled: true, models: ["gpt-5.4"], reasoning_effort: "low" },
|
|
80
76
|
},
|
|
81
77
|
};
|
|
82
78
|
|
|
@@ -84,131 +80,58 @@ export const DEFAULT_MODELS_CONFIG: ModelsConfig = {
|
|
|
84
80
|
// Settings Loading
|
|
85
81
|
// ---------------------------------------------------------------------------
|
|
86
82
|
|
|
87
|
-
function
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
83
|
+
export function loadSettings(projDir: string): Record<string, unknown> {
|
|
84
|
+
const defaults: Record<string, unknown> = {
|
|
85
|
+
planReview: {
|
|
86
|
+
enabled: true,
|
|
87
|
+
reviewers: {
|
|
88
|
+
codex: { enabled: true, model: "", timeout: 120 },
|
|
89
|
+
gemini: { enabled: false, model: "", timeout: 120 },
|
|
90
|
+
},
|
|
91
|
+
display: { ...DEFAULT_DISPLAY },
|
|
92
|
+
},
|
|
93
|
+
agentReview: {
|
|
94
|
+
enabled: true,
|
|
95
|
+
orchestrator: { ...DEFAULT_ORCHESTRATOR },
|
|
96
|
+
timeout: 180,
|
|
97
|
+
highIssueThreshold: 3,
|
|
98
|
+
legacyMode: false,
|
|
99
|
+
display: { ...DEFAULT_DISPLAY },
|
|
100
|
+
agentSelection: { ...DEFAULT_AGENT_SELECTION },
|
|
101
|
+
agentDefaults: { model: DEFAULT_AGENT_MODEL },
|
|
102
|
+
complexityCategories: [...DEFAULT_COMPLEXITY_CATEGORIES],
|
|
103
|
+
sanitization: { ...DEFAULT_SANITIZATION },
|
|
105
104
|
},
|
|
106
|
-
display: { ...DEFAULT_DISPLAY },
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
const defaultAgent: AgentReviewSettings = {
|
|
110
|
-
enabled: true,
|
|
111
|
-
orchestrator: { ...DEFAULT_ORCHESTRATOR },
|
|
112
|
-
timeout: 180,
|
|
113
|
-
highIssueThreshold: 3,
|
|
114
|
-
legacyMode: false,
|
|
115
|
-
display: { ...DEFAULT_DISPLAY },
|
|
116
|
-
agentSelection: { ...DEFAULT_AGENT_SELECTION },
|
|
117
|
-
agentDefaults: { model: DEFAULT_AGENT_MODEL },
|
|
118
|
-
complexityCategories: [...DEFAULT_COMPLEXITY_CATEGORIES],
|
|
119
|
-
sanitization: { ...DEFAULT_SANITIZATION },
|
|
120
105
|
};
|
|
121
106
|
|
|
122
107
|
const config = loadConfig(projDir);
|
|
123
|
-
if (!config || Object.keys(config).length === 0) {
|
|
124
|
-
return { planReview: defaultPlan, agentReview: defaultAgent, models: {} };
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Cast raw config to access arbitrary keys from JSON
|
|
128
|
-
const raw = config as Record<string, unknown>;
|
|
108
|
+
if (!config || Object.keys(config).length === 0) return { ...defaults, models: {} };
|
|
129
109
|
|
|
130
110
|
// Merge planReview
|
|
131
|
-
const
|
|
132
|
-
const mergedPlan
|
|
133
|
-
if (
|
|
134
|
-
mergedPlan.reviewers = { ...
|
|
111
|
+
const planReview = config.planReview ?? {};
|
|
112
|
+
const mergedPlan = { ...defaults.planReview, ...planReview };
|
|
113
|
+
if (planReview.reviewers) {
|
|
114
|
+
mergedPlan.reviewers = { ...defaults.planReview.reviewers, ...planReview.reviewers };
|
|
135
115
|
}
|
|
136
116
|
mergedPlan.display = getDisplaySettings(config, "planReview");
|
|
137
117
|
|
|
138
118
|
// Merge agentReview
|
|
139
|
-
const
|
|
140
|
-
const
|
|
141
|
-
const mergedAgent: AgentReviewSettings = { ...defaultAgent, ...agentReviewRaw };
|
|
119
|
+
const agentReview = (config as Record<string, unknown>).agentReview ?? {};
|
|
120
|
+
const mergedAgent = { ...defaults.agentReview, ...agentReview };
|
|
142
121
|
if (!mergedAgent.orchestrator || typeof mergedAgent.orchestrator !== "object") {
|
|
143
122
|
mergedAgent.orchestrator = { ...DEFAULT_ORCHESTRATOR };
|
|
144
123
|
} else {
|
|
145
124
|
mergedAgent.orchestrator = { ...DEFAULT_ORCHESTRATOR, ...mergedAgent.orchestrator };
|
|
146
125
|
}
|
|
147
126
|
mergedAgent.display = getDisplaySettings(config, "agentReview");
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
mergedAgent.
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
const nestedAgentDefaults = asRecord(agentReviewRawRecord?.agentDefaults) as { model?: string } | undefined;
|
|
158
|
-
const topLevelAgentDefaults = asRecord(raw.agentDefaults) as { model?: string } | undefined;
|
|
159
|
-
mergedAgent.agentDefaults = {
|
|
160
|
-
model: DEFAULT_AGENT_MODEL,
|
|
161
|
-
...nestedAgentDefaults,
|
|
162
|
-
...topLevelAgentDefaults,
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
const nestedComplexityCategories = asStringArray(agentReviewRawRecord?.complexityCategories);
|
|
166
|
-
const topLevelComplexityCategories = asStringArray(raw.complexityCategories);
|
|
167
|
-
mergedAgent.complexityCategories = topLevelComplexityCategories
|
|
168
|
-
?? nestedComplexityCategories
|
|
169
|
-
?? [...DEFAULT_COMPLEXITY_CATEGORIES];
|
|
170
|
-
|
|
171
|
-
const nestedSanitization = asRecord(agentReviewRawRecord?.sanitization);
|
|
172
|
-
const topLevelSanitization = asRecord(raw.sanitization);
|
|
173
|
-
mergedAgent.sanitization = {
|
|
174
|
-
...DEFAULT_SANITIZATION,
|
|
175
|
-
...nestedSanitization,
|
|
176
|
-
...topLevelSanitization,
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
const nestedFallbackByComplexity = asRecord(agentReviewRawRecord?.fallbackByComplexity) as Record<string, number> | undefined;
|
|
180
|
-
const topLevelFallbackByComplexity = asRecord(raw.fallbackByComplexity) as Record<string, number> | undefined;
|
|
181
|
-
if (nestedFallbackByComplexity || topLevelFallbackByComplexity) {
|
|
182
|
-
mergedAgent.fallbackByComplexity = {
|
|
183
|
-
...(nestedFallbackByComplexity ?? {}),
|
|
184
|
-
...(topLevelFallbackByComplexity ?? {}),
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
const nestedMandatoryAgents = agentReviewRawRecord?.mandatoryAgents as AgentReviewSettings["mandatoryAgents"] | undefined;
|
|
189
|
-
const topLevelMandatoryAgents = raw.mandatoryAgents as AgentReviewSettings["mandatoryAgents"] | undefined;
|
|
190
|
-
if (nestedMandatoryAgents !== undefined || topLevelMandatoryAgents !== undefined) {
|
|
191
|
-
mergedAgent.mandatoryAgents = topLevelMandatoryAgents ?? nestedMandatoryAgents;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
const nestedPreflight = asRecord(agentReviewRawRecord?.preflight);
|
|
195
|
-
const topLevelPreflight = asRecord(raw.preflight);
|
|
196
|
-
if (nestedPreflight || topLevelPreflight) {
|
|
197
|
-
mergedAgent.preflight = {
|
|
198
|
-
...(nestedPreflight ?? {}),
|
|
199
|
-
...(topLevelPreflight ?? {}),
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
const nestedReviewIterations = asRecord(agentReviewRawRecord?.reviewIterations) as Record<string, number> | undefined;
|
|
204
|
-
const topLevelReviewIterations = asRecord(raw.reviewIterations) as Record<string, number> | undefined;
|
|
205
|
-
mergedAgent.reviewIterations = {
|
|
206
|
-
...DEFAULT_REVIEW_ITERATIONS,
|
|
207
|
-
...(nestedReviewIterations ?? {}),
|
|
208
|
-
...(topLevelReviewIterations ?? {}),
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
const modelsRaw = (raw.models ?? {}) as Record<string, unknown>;
|
|
127
|
+
const configRecord = config as Record<string, unknown>;
|
|
128
|
+
mergedAgent.agentSelection = { ...DEFAULT_AGENT_SELECTION, ...((configRecord.agentSelection as Record<string, unknown>) ?? {}) };
|
|
129
|
+
mergedAgent.agentDefaults = { model: DEFAULT_AGENT_MODEL, ...((configRecord.agentDefaults as Record<string, unknown>) ?? {}) };
|
|
130
|
+
mergedAgent.complexityCategories = (configRecord.complexityCategories as string[]) ?? [...DEFAULT_COMPLEXITY_CATEGORIES];
|
|
131
|
+
mergedAgent.sanitization = { ...DEFAULT_SANITIZATION, ...((configRecord.sanitization as Record<string, unknown>) ?? {}) };
|
|
132
|
+
mergedAgent.reviewIterations = { ...DEFAULT_REVIEW_ITERATIONS, ...agentReview.reviewIterations ?? {} };
|
|
133
|
+
|
|
134
|
+
const modelsRaw = (config as Record<string, unknown>).models ?? {};
|
|
212
135
|
return { planReview: mergedPlan, agentReview: mergedAgent, models: modelsRaw };
|
|
213
136
|
}
|
|
214
137
|
|
|
@@ -216,7 +139,7 @@ export function loadSettings(projDir: string): LoadedSettings {
|
|
|
216
139
|
// Models Config
|
|
217
140
|
// ---------------------------------------------------------------------------
|
|
218
141
|
|
|
219
|
-
export function loadModelsConfig(settings:
|
|
142
|
+
export function loadModelsConfig(settings: Record<string, unknown>): ModelsConfig {
|
|
220
143
|
const raw = settings.models as Record<string, unknown> | undefined;
|
|
221
144
|
if (!raw?.providers || typeof raw.providers !== "object") {
|
|
222
145
|
return DEFAULT_MODELS_CONFIG;
|
|
@@ -227,6 +150,7 @@ export function loadModelsConfig(settings: LoadedSettings): ModelsConfig {
|
|
|
227
150
|
providers[name] = {
|
|
228
151
|
enabled: c.enabled !== false,
|
|
229
152
|
models: Array.isArray(c.models) ? (c.models as string[]).filter(Boolean) : [],
|
|
153
|
+
...(typeof c.reasoning_effort === "string" ? { reasoning_effort: c.reasoning_effort } : {}),
|
|
230
154
|
};
|
|
231
155
|
}
|
|
232
156
|
return { providers };
|
|
@@ -238,9 +162,9 @@ export function loadModelsConfig(settings: LoadedSettings): ModelsConfig {
|
|
|
238
162
|
|
|
239
163
|
export function loadAgentLibrary(
|
|
240
164
|
projDir: string,
|
|
241
|
-
settings?:
|
|
165
|
+
settings?: Record<string, unknown>,
|
|
242
166
|
): AgentConfig[] {
|
|
243
|
-
const agentsData = aggregateAgents(path.join(projDir, "_cc-native", "
|
|
167
|
+
const agentsData = aggregateAgents(path.join(projDir, "_cc-native", "agents", "plan-review"));
|
|
244
168
|
const defaultModel = settings?.agentDefaults?.model ?? DEFAULT_AGENT_MODEL;
|
|
245
169
|
|
|
246
170
|
if (!agentsData || agentsData.length === 0) {
|
|
@@ -6,12 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
import * as fs from "node:fs";
|
|
8
8
|
import * as path from "node:path";
|
|
9
|
-
|
|
9
|
+
import { atomicWrite } from "../../_core/lib-ts/runtime/atomic-write.js";
|
|
10
|
+
import { logInfo, logWarn, logError } from "../../_core/lib-ts/runtime/logger.js";
|
|
11
|
+
import { nowIso } from "../../_core/lib-ts/runtime/utils.js";
|
|
10
12
|
import { validatePlanPath } from "./constants.js";
|
|
11
13
|
import type { IterationState, IterationEntry } from "./types.js";
|
|
12
|
-
import { atomicWrite } from "../../_shared/lib-ts/base/atomic-write.js";
|
|
13
|
-
import { logInfo, logWarn, logError } from "../../_shared/lib-ts/base/logger.js";
|
|
14
|
-
import { nowIso } from "../../_shared/lib-ts/base/utils.js";
|
|
15
14
|
|
|
16
15
|
// ---------------------------------------------------------------------------
|
|
17
16
|
// Constants
|
|
@@ -73,11 +72,11 @@ export function loadState(planPath: string): Record<string, unknown> | null {
|
|
|
73
72
|
}
|
|
74
73
|
|
|
75
74
|
return state;
|
|
76
|
-
} catch (
|
|
77
|
-
if (
|
|
78
|
-
logError("state", `SECURITY: Invalid plan path: ${
|
|
75
|
+
} catch (e: unknown) {
|
|
76
|
+
if (e instanceof Error && e.message.includes("Invalid plan path")) {
|
|
77
|
+
logError("state", `SECURITY: Invalid plan path: ${e}`);
|
|
79
78
|
} else {
|
|
80
|
-
logError("state", `Failed to load state: ${
|
|
79
|
+
logError("state", `Failed to load state: ${e}`);
|
|
81
80
|
}
|
|
82
81
|
return null;
|
|
83
82
|
}
|
|
@@ -110,11 +109,11 @@ export function saveStateToPlan(
|
|
|
110
109
|
}
|
|
111
110
|
|
|
112
111
|
return true;
|
|
113
|
-
} catch (
|
|
114
|
-
if (
|
|
115
|
-
logError("state", `SECURITY: Invalid plan path: ${
|
|
112
|
+
} catch (e: unknown) {
|
|
113
|
+
if (e instanceof Error && e.message.includes("Invalid plan path")) {
|
|
114
|
+
logError("state", `SECURITY: Invalid plan path: ${e}`);
|
|
116
115
|
} else {
|
|
117
|
-
logError("state", String(
|
|
116
|
+
logError("state", String(e));
|
|
118
117
|
}
|
|
119
118
|
return false;
|
|
120
119
|
}
|
|
@@ -132,12 +131,12 @@ export function deleteState(planPath: string): boolean {
|
|
|
132
131
|
logInfo("state", `Deleted state file: ${stateFile}`);
|
|
133
132
|
}
|
|
134
133
|
return true;
|
|
135
|
-
} catch (
|
|
136
|
-
if (
|
|
137
|
-
logError("state", `SECURITY: Invalid plan path in delete: ${
|
|
134
|
+
} catch (e: unknown) {
|
|
135
|
+
if (e instanceof Error && e.message.includes("Invalid plan path")) {
|
|
136
|
+
logError("state", `SECURITY: Invalid plan path in delete: ${e}`);
|
|
138
137
|
return false;
|
|
139
138
|
}
|
|
140
|
-
logWarn("state", `Failed to delete state file: ${
|
|
139
|
+
logWarn("state", `Failed to delete state file: ${e}`);
|
|
141
140
|
return false;
|
|
142
141
|
}
|
|
143
142
|
}
|
|
@@ -178,7 +177,6 @@ export function getIterationState(
|
|
|
178
177
|
passStreaks: {},
|
|
179
178
|
lastPlanHash: "",
|
|
180
179
|
lastPlanPath: "",
|
|
181
|
-
sessionId: "",
|
|
182
180
|
};
|
|
183
181
|
}
|
|
184
182
|
|
|
@@ -210,7 +208,7 @@ export function shouldContinueIterating(
|
|
|
210
208
|
verdict: string,
|
|
211
209
|
config?: Record<string, unknown>,
|
|
212
210
|
): boolean {
|
|
213
|
-
const
|
|
211
|
+
const current = iteration.current;
|
|
214
212
|
const maxIter = iteration.max;
|
|
215
213
|
|
|
216
214
|
// At or past max iterations
|
|
@@ -254,8 +252,8 @@ export function loadIterationState(reviewsDir: string): IterationState | null {
|
|
|
254
252
|
if (!fs.existsSync(iterationFile)) return null;
|
|
255
253
|
try {
|
|
256
254
|
return JSON.parse(fs.readFileSync(iterationFile, "utf-8")) as IterationState;
|
|
257
|
-
} catch (
|
|
258
|
-
logError("state", `Failed to load iteration state: ${
|
|
255
|
+
} catch (e) {
|
|
256
|
+
logError("state", `Failed to load iteration state: ${e}`);
|
|
259
257
|
return null;
|
|
260
258
|
}
|
|
261
259
|
}
|
|
@@ -270,8 +268,8 @@ export function saveIterationState(reviewsDir: string, state: IterationState): b
|
|
|
270
268
|
const toWrite = { ...state, schema_version: "1.0.0" };
|
|
271
269
|
fs.writeFileSync(iterationFile, JSON.stringify(toWrite, null, 2), "utf-8");
|
|
272
270
|
return true;
|
|
273
|
-
} catch (
|
|
274
|
-
logError("state", `Failed to save iteration state: ${
|
|
271
|
+
} catch (e) {
|
|
272
|
+
logError("state", `Failed to save iteration state: ${e}`);
|
|
275
273
|
return false;
|
|
276
274
|
}
|
|
277
275
|
}
|
|
@@ -13,6 +13,6 @@
|
|
|
13
13
|
"types": ["bun-types"],
|
|
14
14
|
"skipLibCheck": true
|
|
15
15
|
},
|
|
16
|
-
"include": ["./**/*.ts", "../../
|
|
17
|
-
"exclude": ["../../
|
|
16
|
+
"include": ["./**/*.ts", "../../_core/lib-ts/**/*.ts"],
|
|
17
|
+
"exclude": ["../../_core/lib-ts/__tests__/**"]
|
|
18
18
|
}
|
|
@@ -5,11 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
// Re-export shared types used by cc-native consumers
|
|
8
|
-
export type { ContextState, HookInput, HookOutput } from "../../
|
|
9
|
-
|
|
10
|
-
// Import AgentConfig for local use and re-export
|
|
11
|
-
import type { AgentConfig as _AgentConfig } from "../../_shared/lib-ts/types.js";
|
|
12
|
-
export type AgentConfig = _AgentConfig;
|
|
8
|
+
export type { ContextState, HookInput, HookOutput } from "../../_core/lib-ts/types.js";
|
|
13
9
|
|
|
14
10
|
// ---------------------------------------------------------------------------
|
|
15
11
|
// Verdict & Decision Types
|
|
@@ -122,13 +118,22 @@ export interface ReviewDecisionResult {
|
|
|
122
118
|
// Agent & Orchestrator Configuration
|
|
123
119
|
// ---------------------------------------------------------------------------
|
|
124
120
|
|
|
125
|
-
|
|
121
|
+
/** Configuration for a Claude Code review agent */
|
|
122
|
+
export interface AgentConfig {
|
|
123
|
+
name: string;
|
|
124
|
+
model: string;
|
|
125
|
+
provider: string; // e.g. "claude" | "codex" — assigned at runtime by assignModelsToAgents()
|
|
126
|
+
focus: string;
|
|
127
|
+
categories: string[];
|
|
128
|
+
description: string;
|
|
129
|
+
system_prompt: string; // Markdown body content for --system-prompt
|
|
130
|
+
reasoning_effort?: string; // e.g. "low" | "medium" | "high" — passed from ProviderConfig
|
|
131
|
+
}
|
|
126
132
|
|
|
127
133
|
/** Configuration for the plan orchestrator */
|
|
128
134
|
export interface OrchestratorConfig {
|
|
129
135
|
enabled: boolean;
|
|
130
136
|
model: string;
|
|
131
|
-
provider?: string;
|
|
132
137
|
timeout: number;
|
|
133
138
|
}
|
|
134
139
|
|
|
@@ -136,6 +141,7 @@ export interface OrchestratorConfig {
|
|
|
136
141
|
export interface ProviderConfig {
|
|
137
142
|
enabled: boolean;
|
|
138
143
|
models: string[];
|
|
144
|
+
reasoning_effort?: string; // e.g. "low" | "medium" | "high" — applied to all models in this provider
|
|
139
145
|
}
|
|
140
146
|
|
|
141
147
|
/** Model provider pool configuration */
|
|
@@ -143,66 +149,6 @@ export interface ModelsConfig {
|
|
|
143
149
|
providers: Record<string, ProviderConfig>;
|
|
144
150
|
}
|
|
145
151
|
|
|
146
|
-
// ---------------------------------------------------------------------------
|
|
147
|
-
// Settings Interfaces (typed output of loadSettings())
|
|
148
|
-
// ---------------------------------------------------------------------------
|
|
149
|
-
|
|
150
|
-
/** Agent selection count range for a single complexity tier */
|
|
151
|
-
export interface AgentSelectionRange {
|
|
152
|
-
min: number;
|
|
153
|
-
max: number;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/** Agent selection configuration (per-tier ranges + fallback) */
|
|
157
|
-
export interface AgentSelectionConfig {
|
|
158
|
-
simple?: AgentSelectionRange;
|
|
159
|
-
medium?: AgentSelectionRange;
|
|
160
|
-
high?: AgentSelectionRange;
|
|
161
|
-
fallbackCount?: number;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/** Preflight health-check configuration */
|
|
165
|
-
export interface PreflightSettings {
|
|
166
|
-
enabled?: boolean;
|
|
167
|
-
timeoutMs?: number;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/** Plan review section of merged settings (the "planReview" key) */
|
|
171
|
-
export interface PlanReviewSettings {
|
|
172
|
-
enabled?: boolean;
|
|
173
|
-
reviewers?: {
|
|
174
|
-
codex?: { enabled?: boolean; model?: string; timeout?: number };
|
|
175
|
-
gemini?: { enabled?: boolean; model?: string; timeout?: number };
|
|
176
|
-
};
|
|
177
|
-
display?: Partial<DisplaySettings>;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/** Agent review section of merged settings (the "agentReview" key) */
|
|
181
|
-
export interface AgentReviewSettings {
|
|
182
|
-
enabled?: boolean;
|
|
183
|
-
timeout?: number;
|
|
184
|
-
orchestrator?: OrchestratorConfig;
|
|
185
|
-
legacyMode?: boolean;
|
|
186
|
-
highIssueThreshold?: number;
|
|
187
|
-
maxIssuesPerAgent?: number;
|
|
188
|
-
mandatoryAgents?: string[] | Record<string, string[]>;
|
|
189
|
-
agentSelection?: AgentSelectionConfig;
|
|
190
|
-
agentDefaults?: { model?: string };
|
|
191
|
-
complexityCategories?: string[];
|
|
192
|
-
sanitization?: { maxSessionIdLength?: number; maxTitleLength?: number };
|
|
193
|
-
reviewIterations?: Record<string, number>;
|
|
194
|
-
display?: Partial<DisplaySettings>;
|
|
195
|
-
preflight?: PreflightSettings;
|
|
196
|
-
fallbackByComplexity?: Record<string, number>;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/** Top-level settings object returned by loadSettings() */
|
|
200
|
-
export interface LoadedSettings {
|
|
201
|
-
planReview: PlanReviewSettings;
|
|
202
|
-
agentReview: AgentReviewSettings;
|
|
203
|
-
models: Record<string, unknown>;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
152
|
// ---------------------------------------------------------------------------
|
|
207
153
|
// State Interfaces
|
|
208
154
|
// ---------------------------------------------------------------------------
|
|
@@ -329,7 +275,7 @@ export interface Reviewer {
|
|
|
329
275
|
// JSON Schemas (moved to reviewers/schemas.ts)
|
|
330
276
|
// ---------------------------------------------------------------------------
|
|
331
277
|
// Re-export for backwards compatibility
|
|
332
|
-
export {
|
|
278
|
+
export { REVIEW_SCHEMA, ORCHESTRATOR_SCHEMA, REVIEW_PROMPT_PREFIX, AGENT_REVIEW_PROMPT_PREFIX } from "./reviewers/schemas.js";
|
|
333
279
|
|
|
334
280
|
// ---------------------------------------------------------------------------
|
|
335
281
|
// Display Defaults
|
|
@@ -383,24 +329,3 @@ export interface IterationAdvancement {
|
|
|
383
329
|
updatedState: IterationState;
|
|
384
330
|
newGraduates: string[];
|
|
385
331
|
}
|
|
386
|
-
|
|
387
|
-
// ---------------------------------------------------------------------------
|
|
388
|
-
// Preflight Types
|
|
389
|
-
// ---------------------------------------------------------------------------
|
|
390
|
-
|
|
391
|
-
/** Result from a single provider+model preflight check */
|
|
392
|
-
export interface PreflightCheckResult {
|
|
393
|
-
provider: string;
|
|
394
|
-
model: string;
|
|
395
|
-
available: boolean;
|
|
396
|
-
latencyMs: number;
|
|
397
|
-
error?: string;
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
/** Aggregated preflight report across all provider+model combos */
|
|
401
|
-
export interface PreflightReport {
|
|
402
|
-
checks: PreflightCheckResult[];
|
|
403
|
-
available: Map<string, Set<string>>; // provider → set of working models
|
|
404
|
-
allFailed: boolean;
|
|
405
|
-
totalMs: number;
|
|
406
|
-
}
|