@hiai-gg/hiai-opencode 0.1.1 → 0.1.3
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/.env.example +68 -57
- package/AGENTS.md +383 -281
- package/ARCHITECTURE.md +280 -281
- package/LICENSE.md +59 -59
- package/README.md +421 -301
- package/assets/mcp/mempalace.mjs +196 -153
- package/assets/mcp/playwright.mjs +76 -0
- package/assets/mcp/rag.mjs +236 -236
- package/assets/runtime/npm-package-runner.mjs +54 -54
- package/config/hiai-opencode.schema.json +82 -82
- package/config/opencode.json +4 -4
- package/dist/config/defaults.d.ts +3 -0
- package/dist/config/platform-schema.d.ts +2 -0
- package/dist/index.js +462 -417
- package/dist/mcp/registry.d.ts +14 -0
- package/dist/mcp/types.d.ts +6 -0
- package/hiai-opencode.json +58 -58
- package/package.json +86 -91
- package/skills/api-and-interface-design/SKILL.md +294 -294
- package/skills/brainstorming/SKILL.md +164 -164
- package/skills/brainstorming/scripts/frame-template.html +214 -214
- package/skills/brainstorming/scripts/helper.js +88 -88
- package/skills/brainstorming/scripts/server.cjs +354 -354
- package/skills/brainstorming/scripts/start-server.sh +148 -148
- package/skills/brainstorming/scripts/stop-server.sh +56 -56
- package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
- package/skills/brainstorming/visual-companion.md +287 -287
- package/skills/browser-testing-with-devtools/SKILL.md +302 -302
- package/skills/ci-cd-and-automation/SKILL.md +390 -390
- package/skills/code-review-and-quality/SKILL.md +347 -347
- package/skills/code-simplification/SKILL.md +331 -331
- package/skills/context-engineering/SKILL.md +289 -289
- package/skills/deprecation-and-migration/SKILL.md +206 -206
- package/skills/dispatching-parallel-agents/SKILL.md +182 -182
- package/skills/documentation-and-adrs/SKILL.md +278 -278
- package/skills/executing-plans/SKILL.md +70 -70
- package/skills/finishing-a-development-branch/SKILL.md +200 -200
- package/skills/frontend-ui-engineering/SKILL.md +322 -322
- package/skills/git-workflow-and-versioning/SKILL.md +300 -300
- package/skills/incremental-implementation/SKILL.md +241 -241
- package/skills/performance-optimization/SKILL.md +350 -350
- package/skills/receiving-code-review/SKILL.md +213 -213
- package/skills/requesting-code-review/SKILL.md +105 -105
- package/skills/requesting-code-review/code-reviewer.md +146 -146
- package/skills/security-and-hardening/SKILL.md +349 -349
- package/skills/shipping-and-launch/SKILL.md +309 -309
- package/skills/source-driven-development/SKILL.md +194 -194
- package/skills/spec-driven-development/SKILL.md +200 -200
- package/skills/subagent-driven-development/SKILL.md +277 -277
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -26
- package/skills/subagent-driven-development/implementer-prompt.md +113 -113
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -61
- package/skills/systematic-debugging/CREATION-LOG.md +119 -119
- package/skills/systematic-debugging/SKILL.md +596 -596
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
- package/skills/systematic-debugging/condition-based-waiting.md +115 -115
- package/skills/systematic-debugging/defense-in-depth.md +122 -122
- package/skills/systematic-debugging/find-polluter.sh +63 -63
- package/skills/systematic-debugging/root-cause-tracing.md +169 -169
- package/skills/systematic-debugging/test-academic.md +14 -14
- package/skills/systematic-debugging/test-pressure-1.md +58 -58
- package/skills/systematic-debugging/test-pressure-2.md +68 -68
- package/skills/systematic-debugging/test-pressure-3.md +69 -69
- package/skills/test-driven-development/SKILL.md +379 -379
- package/skills/using-agent-skills/SKILL.md +174 -174
- package/skills/using-git-worktrees/SKILL.md +218 -218
- package/skills/using-superpowers/SKILL.md +117 -117
- package/skills/using-superpowers/references/codex-tools.md +100 -100
- package/skills/using-superpowers/references/copilot-tools.md +52 -52
- package/skills/using-superpowers/references/gemini-tools.md +33 -33
- package/skills/verification-before-completion/SKILL.md +139 -139
- package/skills/writing-plans/SKILL.md +152 -152
- package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
- package/skills/writing-skills/SKILL.md +655 -655
- package/skills/writing-skills/anthropic-best-practices.md +1150 -1150
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
- package/skills/writing-skills/graphviz-conventions.dot +171 -171
- package/skills/writing-skills/persuasion-principles.md +187 -187
- package/skills/writing-skills/render-graphs.js +168 -168
- package/skills/writing-skills/testing-skills-with-subagents.md +384 -384
- package/src/AGENTS.md +41 -41
- package/src/agents/AGENTS.md +74 -74
- package/src/agents/agent-builder.ts +50 -50
- package/src/agents/bob/AGENTS.md +29 -29
- package/src/agents/bob/default.ts +128 -128
- package/src/agents/bob/gemini.ts +237 -237
- package/src/agents/bob/gpt-pro.ts +430 -430
- package/src/agents/bob/index.ts +19 -19
- package/src/agents/bob.ts +528 -528
- package/src/agents/builtin-agents/agent-overrides.ts +75 -75
- package/src/agents/builtin-agents/available-skills.ts +35 -35
- package/src/agents/builtin-agents/bob-agent.ts +96 -96
- package/src/agents/builtin-agents/coder-agent.ts +98 -98
- package/src/agents/builtin-agents/environment-context.ts +16 -16
- package/src/agents/builtin-agents/general-agents.ts +122 -122
- package/src/agents/builtin-agents/guard-agent.ts +66 -66
- package/src/agents/builtin-agents/model-resolution.ts +31 -31
- package/src/agents/builtin-agents/resolve-file-uri.ts +42 -42
- package/src/agents/builtin-agents.ts +194 -194
- package/src/agents/coder/AGENTS.md +34 -34
- package/src/agents/coder/agent.ts +162 -162
- package/src/agents/coder/gpt-codex.ts +404 -404
- package/src/agents/coder/gpt-pro.ts +319 -319
- package/src/agents/coder/gpt.ts +253 -253
- package/src/agents/coder/index.ts +8 -8
- package/src/agents/critic/agent.ts +105 -105
- package/src/agents/custom-agent-summaries.ts +61 -61
- package/src/agents/dynamic-agent-category-skills-guide.ts +138 -138
- package/src/agents/dynamic-agent-core-sections.ts +237 -237
- package/src/agents/dynamic-agent-policy-sections.ts +182 -182
- package/src/agents/dynamic-agent-prompt-builder.ts +31 -31
- package/src/agents/dynamic-agent-prompt-types.ts +24 -24
- package/src/agents/dynamic-agent-tool-categorization.ts +45 -45
- package/src/agents/env-context.ts +16 -16
- package/src/agents/gpt-apply-patch-guard.ts +7 -7
- package/src/agents/guard/agent.ts +146 -146
- package/src/agents/guard/default-prompt-sections.ts +305 -305
- package/src/agents/guard/default.ts +22 -22
- package/src/agents/guard/gemini-prompt-sections.ts +293 -293
- package/src/agents/guard/gemini.ts +22 -22
- package/src/agents/guard/gpt-prompt-sections.ts +296 -296
- package/src/agents/guard/gpt.ts +22 -22
- package/src/agents/guard/index.ts +2 -2
- package/src/agents/guard/prompt-section-builder.ts +104 -104
- package/src/agents/guard/shared-prompt.ts +172 -172
- package/src/agents/index.ts +5 -5
- package/src/agents/platform-adapter.ts +236 -236
- package/src/agents/platform-manager.ts +57 -57
- package/src/agents/prompt-library/identity.ts +14 -14
- package/src/agents/prompt-library/index.ts +7 -7
- package/src/agents/prompt-library/intent-gate.ts +149 -149
- package/src/agents/prompt-library/orchestration.ts +60 -60
- package/src/agents/prompt-library/platform.ts +36 -36
- package/src/agents/prompt-library/specialized.ts +39 -39
- package/src/agents/prompt-library/strategy.ts +80 -80
- package/src/agents/prompt-library/todo-discipline.ts +22 -22
- package/src/agents/quality-guardian.ts +76 -76
- package/src/agents/researcher.ts +73 -73
- package/src/agents/strategist/AGENTS.md +37 -37
- package/src/agents/strategist/behavioral-summary.ts +79 -79
- package/src/agents/strategist/gemini.ts +333 -333
- package/src/agents/strategist/gpt.ts +460 -460
- package/src/agents/strategist/high-accuracy-mode.ts +78 -78
- package/src/agents/strategist/identity-constraints.ts +336 -336
- package/src/agents/strategist/index.ts +6 -6
- package/src/agents/strategist/interview-mode.ts +335 -335
- package/src/agents/strategist/plan-generation.ts +213 -213
- package/src/agents/strategist/plan-template.ts +325 -325
- package/src/agents/strategist/system-prompt.ts +68 -68
- package/src/agents/sub/agent.ts +141 -141
- package/src/agents/sub/default.ts +52 -52
- package/src/agents/sub/gemini.ts +194 -194
- package/src/agents/sub/gpt-codex.ts +156 -156
- package/src/agents/sub/gpt-pro.ts +161 -161
- package/src/agents/sub/gpt.ts +157 -157
- package/src/agents/sub/index.ts +13 -13
- package/src/agents/types.ts +144 -144
- package/src/agents/ui.ts +58 -58
- package/src/config/data/model-capabilities.json +40690 -40690
- package/src/config/defaults.ts +89 -146
- package/src/config/hiai-opencode.schema.json +12 -12
- package/src/config/index.ts +67 -67
- package/src/config/loader.test.ts +65 -65
- package/src/config/loader.ts +186 -183
- package/src/config/models.ts +32 -32
- package/src/config/platform-schema.ts +193 -192
- package/src/config/schema/agent-definitions.ts +5 -5
- package/src/config/schema/agent-names.ts +66 -66
- package/src/config/schema/agent-overrides.ts +95 -95
- package/src/config/schema/babysitting.ts +7 -7
- package/src/config/schema/background-task.ts +29 -29
- package/src/config/schema/bob-agent.ts +11 -11
- package/src/config/schema/bob.ts +17 -17
- package/src/config/schema/browser-automation.ts +24 -24
- package/src/config/schema/categories.ts +45 -45
- package/src/config/schema/claude-code.ts +13 -13
- package/src/config/schema/commands.ts +14 -14
- package/src/config/schema/comment-checker.ts +8 -8
- package/src/config/schema/dynamic-context-pruning.ts +53 -53
- package/src/config/schema/experimental.ts +27 -27
- package/src/config/schema/fallback-models.ts +31 -31
- package/src/config/schema/fast-apply.ts +14 -14
- package/src/config/schema/git-env-prefix.ts +28 -28
- package/src/config/schema/git-master.ts +14 -14
- package/src/config/schema/hooks.ts +61 -61
- package/src/config/schema/index.ts +52 -52
- package/src/config/schema/internal/permission.ts +20 -20
- package/src/config/schema/model-capabilities.ts +10 -10
- package/src/config/schema/notification.ts +8 -8
- package/src/config/schema/oh-my-opencode-config.ts +90 -90
- package/src/config/schema/openclaw.ts +50 -50
- package/src/config/schema/ralph-loop.ts +11 -11
- package/src/config/schema/runtime-fallback.ts +18 -18
- package/src/config/schema/skills.ts +39 -39
- package/src/config/schema/start-work.ts +7 -7
- package/src/config/schema/tmux.ts +28 -28
- package/src/config/schema/websearch.ts +15 -15
- package/src/config/types.ts +174 -174
- package/src/create-hooks.ts +93 -93
- package/src/create-managers.ts +116 -116
- package/src/create-runtime-tmux-config.ts +18 -18
- package/src/create-tools.ts +53 -53
- package/src/features/background-agent/AGENTS.md +56 -56
- package/src/features/background-agent/abort-with-timeout.ts +35 -35
- package/src/features/background-agent/background-task-notification-template.ts +74 -74
- package/src/features/background-agent/compaction-aware-message-resolver.ts +164 -164
- package/src/features/background-agent/concurrency.ts +137 -137
- package/src/features/background-agent/constants.ts +58 -58
- package/src/features/background-agent/duration-formatter.ts +14 -14
- package/src/features/background-agent/error-classifier.ts +83 -83
- package/src/features/background-agent/fallback-retry-handler.ts +134 -134
- package/src/features/background-agent/index.ts +2 -2
- package/src/features/background-agent/loop-detector.ts +102 -102
- package/src/features/background-agent/manager.ts +2220 -2220
- package/src/features/background-agent/opencode-client.ts +3 -3
- package/src/features/background-agent/process-cleanup.ts +98 -98
- package/src/features/background-agent/remove-task-toast-tracking.ts +8 -8
- package/src/features/background-agent/session-existence.ts +57 -57
- package/src/features/background-agent/session-idle-event-handler.ts +93 -93
- package/src/features/background-agent/session-status-classifier.ts +20 -20
- package/src/features/background-agent/spawner/parent-directory-resolver.ts +24 -24
- package/src/features/background-agent/spawner.ts +327 -327
- package/src/features/background-agent/state.ts +199 -199
- package/src/features/background-agent/subagent-spawn-limits.ts +97 -97
- package/src/features/background-agent/task-history.ts +79 -79
- package/src/features/background-agent/task-poller.ts +225 -225
- package/src/features/background-agent/types.ts +100 -100
- package/src/features/boulder-state/constants.ts +13 -13
- package/src/features/boulder-state/index.ts +4 -4
- package/src/features/boulder-state/storage.ts +336 -336
- package/src/features/boulder-state/top-level-task.ts +78 -78
- package/src/features/boulder-state/types.ts +61 -61
- package/src/features/builtin-commands/commands.ts +143 -143
- package/src/features/builtin-commands/index.ts +2 -2
- package/src/features/builtin-commands/templates/handoff.ts +177 -177
- package/src/features/builtin-commands/templates/init-deep.ts +305 -305
- package/src/features/builtin-commands/templates/ralph-loop.ts +66 -66
- package/src/features/builtin-commands/templates/refactor.ts +619 -619
- package/src/features/builtin-commands/templates/remove-ai-slops.ts +96 -96
- package/src/features/builtin-commands/templates/start-work.ts +128 -128
- package/src/features/builtin-commands/templates/stop-continuation.ts +13 -13
- package/src/features/builtin-commands/types.ts +9 -9
- package/src/features/builtin-skills/index.ts +2 -2
- package/src/features/builtin-skills/materialize.ts +338 -338
- package/src/features/builtin-skills/skills/ai-slop-remover.ts +145 -145
- package/src/features/builtin-skills/skills/dev-browser.ts +221 -221
- package/src/features/builtin-skills/skills/frontend-ui-ux.ts +79 -79
- package/src/features/builtin-skills/skills/git-master-sections/commit-workflow.ts +509 -509
- package/src/features/builtin-skills/skills/git-master-sections/history-search-workflow.ts +229 -229
- package/src/features/builtin-skills/skills/git-master-sections/overview.ts +64 -64
- package/src/features/builtin-skills/skills/git-master-sections/quick-reference.ts +86 -86
- package/src/features/builtin-skills/skills/git-master-sections/rebase-workflow.ts +181 -181
- package/src/features/builtin-skills/skills/git-master-skill-metadata.ts +4 -4
- package/src/features/builtin-skills/skills/git-master.ts +28 -28
- package/src/features/builtin-skills/skills/index.ts +7 -7
- package/src/features/builtin-skills/skills/playwright-cli.ts +268 -268
- package/src/features/builtin-skills/skills/playwright.ts +466 -466
- package/src/features/builtin-skills/skills/review-work.ts +536 -536
- package/src/features/builtin-skills/skills.ts +39 -39
- package/src/features/builtin-skills/types.ts +16 -16
- package/src/features/claude-code-agent-loader/agent-definitions-loader.ts +87 -87
- package/src/features/claude-code-agent-loader/claude-model-mapper.ts +53 -53
- package/src/features/claude-code-agent-loader/index.ts +5 -5
- package/src/features/claude-code-agent-loader/json-agent-loader.ts +53 -53
- package/src/features/claude-code-agent-loader/loader.ts +86 -86
- package/src/features/claude-code-agent-loader/opencode-config-agents-reader.ts +125 -125
- package/src/features/claude-code-agent-loader/types.ts +31 -31
- package/src/features/claude-code-command-loader/index.ts +2 -2
- package/src/features/claude-code-command-loader/loader.ts +169 -169
- package/src/features/claude-code-command-loader/types.ts +46 -46
- package/src/features/claude-code-mcp-loader/configure-allowed-env-vars.ts +48 -48
- package/src/features/claude-code-mcp-loader/env-expander.ts +51 -51
- package/src/features/claude-code-mcp-loader/index.ts +12 -12
- package/src/features/claude-code-mcp-loader/loader.ts +156 -156
- package/src/features/claude-code-mcp-loader/scope-filter.ts +17 -17
- package/src/features/claude-code-mcp-loader/transformer.ts +57 -57
- package/src/features/claude-code-mcp-loader/types.ts +51 -51
- package/src/features/claude-code-plugin-loader/agent-loader.ts +59 -59
- package/src/features/claude-code-plugin-loader/command-loader.ts +53 -53
- package/src/features/claude-code-plugin-loader/discovery.ts +251 -251
- package/src/features/claude-code-plugin-loader/hook-loader.ts +26 -26
- package/src/features/claude-code-plugin-loader/index.ts +10 -10
- package/src/features/claude-code-plugin-loader/loader.ts +134 -134
- package/src/features/claude-code-plugin-loader/mcp-server-loader.ts +59 -59
- package/src/features/claude-code-plugin-loader/plugin-path-resolver.ts +23 -23
- package/src/features/claude-code-plugin-loader/scope-filter.ts +29 -29
- package/src/features/claude-code-plugin-loader/skill-loader.ts +62 -62
- package/src/features/claude-code-plugin-loader/types.ts +255 -255
- package/src/features/claude-code-session-state/index.ts +1 -1
- package/src/features/claude-code-session-state/state.ts +154 -154
- package/src/features/claude-tasks/session-storage.ts +52 -52
- package/src/features/claude-tasks/storage.ts +169 -169
- package/src/features/claude-tasks/types.ts +20 -20
- package/src/features/context-injector/collector.ts +91 -91
- package/src/features/context-injector/index.ts +14 -14
- package/src/features/context-injector/injector.ts +167 -167
- package/src/features/context-injector/types.ts +91 -91
- package/src/features/hook-message-injector/constants.ts +1 -1
- package/src/features/hook-message-injector/index.ts +11 -11
- package/src/features/hook-message-injector/injector.ts +437 -437
- package/src/features/hook-message-injector/types.ts +49 -49
- package/src/features/mcp-oauth/AGENTS.md +54 -54
- package/src/features/mcp-oauth/callback-server.ts +106 -106
- package/src/features/mcp-oauth/dcr.ts +98 -98
- package/src/features/mcp-oauth/discovery.ts +134 -134
- package/src/features/mcp-oauth/oauth-authorization-flow.ts +150 -150
- package/src/features/mcp-oauth/provider.ts +215 -215
- package/src/features/mcp-oauth/refresh-mutex.ts +58 -58
- package/src/features/mcp-oauth/resource-indicator.ts +16 -16
- package/src/features/mcp-oauth/schema.ts +8 -8
- package/src/features/mcp-oauth/step-up.ts +79 -79
- package/src/features/mcp-oauth/storage.ts +155 -155
- package/src/features/opencode-skill-loader/AGENTS.md +59 -59
- package/src/features/opencode-skill-loader/allowed-tools-parser.ts +9 -9
- package/src/features/opencode-skill-loader/async-loader.ts +213 -213
- package/src/features/opencode-skill-loader/blocking.ts +62 -62
- package/src/features/opencode-skill-loader/config-source-discovery.ts +114 -114
- package/src/features/opencode-skill-loader/discover-worker.ts +56 -56
- package/src/features/opencode-skill-loader/git-master-template-injection.ts +150 -150
- package/src/features/opencode-skill-loader/index.ts +17 -17
- package/src/features/opencode-skill-loader/loaded-skill-from-path.ts +73 -73
- package/src/features/opencode-skill-loader/loaded-skill-template-extractor.ts +16 -16
- package/src/features/opencode-skill-loader/loader.ts +172 -172
- package/src/features/opencode-skill-loader/merger/builtin-skill-converter.ts +26 -26
- package/src/features/opencode-skill-loader/merger/config-skill-entry-loader.ts +117 -117
- package/src/features/opencode-skill-loader/merger/scope-priority.ts +10 -10
- package/src/features/opencode-skill-loader/merger/skill-definition-merger.ts +31 -31
- package/src/features/opencode-skill-loader/merger/skills-config-normalizer.ts +19 -19
- package/src/features/opencode-skill-loader/merger.ts +96 -96
- package/src/features/opencode-skill-loader/skill-content.ts +11 -11
- package/src/features/opencode-skill-loader/skill-deduplication.ts +13 -13
- package/src/features/opencode-skill-loader/skill-definition-record.ts +11 -11
- package/src/features/opencode-skill-loader/skill-directory-loader.ts +112 -112
- package/src/features/opencode-skill-loader/skill-discovery.ts +76 -76
- package/src/features/opencode-skill-loader/skill-mcp-config.ts +45 -45
- package/src/features/opencode-skill-loader/skill-resolution-options.ts +9 -9
- package/src/features/opencode-skill-loader/skill-template-resolver.ts +97 -97
- package/src/features/opencode-skill-loader/types.ts +38 -38
- package/src/features/run-continuation-state/constants.ts +1 -1
- package/src/features/run-continuation-state/index.ts +3 -3
- package/src/features/run-continuation-state/storage.ts +80 -80
- package/src/features/run-continuation-state/types.ts +15 -15
- package/src/features/skill-mcp-manager/AGENTS.md +111 -111
- package/src/features/skill-mcp-manager/cleanup.ts +153 -153
- package/src/features/skill-mcp-manager/connection-type.ts +26 -26
- package/src/features/skill-mcp-manager/connection.ts +146 -146
- package/src/features/skill-mcp-manager/env-cleaner.ts +59 -59
- package/src/features/skill-mcp-manager/error-redaction.ts +47 -47
- package/src/features/skill-mcp-manager/http-client.ts +126 -126
- package/src/features/skill-mcp-manager/index.ts +2 -2
- package/src/features/skill-mcp-manager/manager.ts +178 -178
- package/src/features/skill-mcp-manager/oauth-handler.ts +160 -160
- package/src/features/skill-mcp-manager/stdio-client.ts +112 -112
- package/src/features/skill-mcp-manager/types.ts +96 -96
- package/src/features/task-toast-manager/index.ts +2 -2
- package/src/features/task-toast-manager/manager.ts +251 -251
- package/src/features/task-toast-manager/types.ts +29 -29
- package/src/features/tmux-subagent/action-executor-core.ts +82 -82
- package/src/features/tmux-subagent/action-executor.ts +137 -137
- package/src/features/tmux-subagent/cleanup.ts +42 -42
- package/src/features/tmux-subagent/decision-engine.ts +22 -22
- package/src/features/tmux-subagent/event-handlers.ts +6 -6
- package/src/features/tmux-subagent/grid-planning.ts +137 -137
- package/src/features/tmux-subagent/index.ts +16 -16
- package/src/features/tmux-subagent/manager.ts +969 -969
- package/src/features/tmux-subagent/oldest-agent-pane.ts +37 -37
- package/src/features/tmux-subagent/pane-split-availability.ts +77 -77
- package/src/features/tmux-subagent/pane-state-parser.ts +135 -135
- package/src/features/tmux-subagent/pane-state-querier.ts +76 -76
- package/src/features/tmux-subagent/polling-constants.ts +6 -6
- package/src/features/tmux-subagent/polling-manager.ts +167 -167
- package/src/features/tmux-subagent/polling.ts +183 -183
- package/src/features/tmux-subagent/session-created-event.ts +44 -44
- package/src/features/tmux-subagent/session-created-handler.ts +175 -175
- package/src/features/tmux-subagent/session-deleted-handler.ts +50 -50
- package/src/features/tmux-subagent/session-message-count.ts +3 -3
- package/src/features/tmux-subagent/session-ready-waiter.ts +44 -44
- package/src/features/tmux-subagent/session-status-parser.ts +17 -17
- package/src/features/tmux-subagent/spawn-action-decider.ts +147 -147
- package/src/features/tmux-subagent/spawn-target-finder.ts +146 -146
- package/src/features/tmux-subagent/tmux-grid-constants.ts +57 -57
- package/src/features/tmux-subagent/tracked-session-state.ts +29 -29
- package/src/features/tmux-subagent/types.ts +54 -54
- package/src/features/tool-metadata-store/index.ts +7 -7
- package/src/features/tool-metadata-store/store.ts +84 -84
- package/src/hooks/agent-usage-reminder/constants.ts +52 -52
- package/src/hooks/agent-usage-reminder/hook.ts +134 -134
- package/src/hooks/agent-usage-reminder/index.ts +1 -1
- package/src/hooks/agent-usage-reminder/storage.ts +42 -42
- package/src/hooks/agent-usage-reminder/types.ts +6 -6
- package/src/hooks/anthropic-context-window-limit-recovery/AGENTS.md +49 -49
- package/src/hooks/anthropic-context-window-limit-recovery/aggressive-truncation-strategy.ts +87 -87
- package/src/hooks/anthropic-context-window-limit-recovery/client.ts +21 -21
- package/src/hooks/anthropic-context-window-limit-recovery/deduplication-recovery.ts +77 -77
- package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.ts +199 -199
- package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery.ts +149 -149
- package/src/hooks/anthropic-context-window-limit-recovery/executor.ts +83 -83
- package/src/hooks/anthropic-context-window-limit-recovery/index.ts +8 -8
- package/src/hooks/anthropic-context-window-limit-recovery/message-builder.ts +190 -190
- package/src/hooks/anthropic-context-window-limit-recovery/message-storage-directory.ts +40 -40
- package/src/hooks/anthropic-context-window-limit-recovery/parser.ts +209 -209
- package/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts +189 -189
- package/src/hooks/anthropic-context-window-limit-recovery/pruning-tool-output-truncation.ts +142 -142
- package/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts +44 -44
- package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.ts +119 -119
- package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.ts +193 -193
- package/src/hooks/anthropic-context-window-limit-recovery/recovery-strategy.ts +2 -2
- package/src/hooks/anthropic-context-window-limit-recovery/session-timeout-map.ts +20 -20
- package/src/hooks/anthropic-context-window-limit-recovery/state.ts +78 -78
- package/src/hooks/anthropic-context-window-limit-recovery/storage-paths.ts +6 -6
- package/src/hooks/anthropic-context-window-limit-recovery/storage.ts +18 -18
- package/src/hooks/anthropic-context-window-limit-recovery/summarize-retry-strategy.ts +218 -218
- package/src/hooks/anthropic-context-window-limit-recovery/target-token-truncation.ts +196 -196
- package/src/hooks/anthropic-context-window-limit-recovery/tool-part-types.ts +38 -38
- package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage-sdk.ts +123 -123
- package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage.ts +119 -119
- package/src/hooks/anthropic-context-window-limit-recovery/types.ts +44 -44
- package/src/hooks/anthropic-effort/hook.ts +93 -93
- package/src/hooks/anthropic-effort/index.ts +1 -1
- package/src/hooks/auto-slash-command/constants.ts +12 -12
- package/src/hooks/auto-slash-command/detector.ts +88 -88
- package/src/hooks/auto-slash-command/executor.ts +165 -165
- package/src/hooks/auto-slash-command/hook.ts +238 -238
- package/src/hooks/auto-slash-command/index.ts +7 -7
- package/src/hooks/auto-slash-command/processed-command-store.ts +74 -74
- package/src/hooks/auto-slash-command/types.ts +42 -42
- package/src/hooks/background-notification/hook.ts +54 -54
- package/src/hooks/background-notification/index.ts +2 -2
- package/src/hooks/background-notification/types.ts +5 -5
- package/src/hooks/bash-file-read-guard.ts +44 -44
- package/src/hooks/category-skill-reminder/formatter.ts +37 -37
- package/src/hooks/category-skill-reminder/hook.ts +142 -142
- package/src/hooks/category-skill-reminder/index.ts +1 -1
- package/src/hooks/claude-code-hooks/AGENTS.md +41 -41
- package/src/hooks/claude-code-hooks/claude-code-hooks-hook.ts +28 -28
- package/src/hooks/claude-code-hooks/config-loader.ts +151 -151
- package/src/hooks/claude-code-hooks/config.ts +147 -147
- package/src/hooks/claude-code-hooks/dispatch-hook.ts +27 -27
- package/src/hooks/claude-code-hooks/execute-http-hook.ts +116 -116
- package/src/hooks/claude-code-hooks/handlers/chat-message-handler.ts +140 -140
- package/src/hooks/claude-code-hooks/handlers/pre-compact-handler.ts +41 -41
- package/src/hooks/claude-code-hooks/handlers/session-event-handler.ts +137 -137
- package/src/hooks/claude-code-hooks/handlers/tool-execute-after-handler.ts +160 -160
- package/src/hooks/claude-code-hooks/handlers/tool-execute-before-handler.ts +93 -93
- package/src/hooks/claude-code-hooks/index.ts +1 -1
- package/src/hooks/claude-code-hooks/plugin-config.ts +12 -12
- package/src/hooks/claude-code-hooks/post-tool-use.ts +195 -195
- package/src/hooks/claude-code-hooks/pre-compact.ts +105 -105
- package/src/hooks/claude-code-hooks/pre-tool-use.ts +168 -168
- package/src/hooks/claude-code-hooks/session-hook-state.ts +17 -17
- package/src/hooks/claude-code-hooks/stop.ts +118 -118
- package/src/hooks/claude-code-hooks/todo.ts +76 -76
- package/src/hooks/claude-code-hooks/tool-input-cache.ts +82 -82
- package/src/hooks/claude-code-hooks/transcript.ts +248 -248
- package/src/hooks/claude-code-hooks/types.ts +214 -214
- package/src/hooks/claude-code-hooks/user-prompt-submit.ts +121 -121
- package/src/hooks/comment-checker/cli-runner.ts +127 -127
- package/src/hooks/comment-checker/cli.ts +269 -269
- package/src/hooks/comment-checker/downloader.ts +170 -170
- package/src/hooks/comment-checker/hook.ts +192 -192
- package/src/hooks/comment-checker/index.ts +1 -1
- package/src/hooks/comment-checker/pending-calls.ts +45 -45
- package/src/hooks/comment-checker/types.ts +33 -33
- package/src/hooks/compaction-context-injector/compaction-context-prompt.ts +56 -56
- package/src/hooks/compaction-context-injector/constants.ts +5 -5
- package/src/hooks/compaction-context-injector/hook.ts +164 -164
- package/src/hooks/compaction-context-injector/index.ts +1 -1
- package/src/hooks/compaction-context-injector/recovery-prompt-config.ts +77 -77
- package/src/hooks/compaction-context-injector/recovery.ts +163 -163
- package/src/hooks/compaction-context-injector/session-id.ts +8 -8
- package/src/hooks/compaction-context-injector/session-prompt-config-resolver.ts +120 -120
- package/src/hooks/compaction-context-injector/tail-monitor.ts +52 -52
- package/src/hooks/compaction-context-injector/types.ts +25 -25
- package/src/hooks/compaction-context-injector/validated-model.ts +47 -47
- package/src/hooks/compaction-todo-preserver/hook.ts +127 -127
- package/src/hooks/compaction-todo-preserver/index.ts +2 -2
- package/src/hooks/context-window-monitor.ts +113 -113
- package/src/hooks/delegate-task-retry/guidance.ts +45 -45
- package/src/hooks/delegate-task-retry/hook.ts +22 -22
- package/src/hooks/delegate-task-retry/index.ts +4 -4
- package/src/hooks/delegate-task-retry/patterns.ts +77 -77
- package/src/hooks/directory-agents-injector/constants.ts +7 -7
- package/src/hooks/directory-agents-injector/finder.ts +38 -38
- package/src/hooks/directory-agents-injector/hook.ts +80 -80
- package/src/hooks/directory-agents-injector/index.ts +1 -1
- package/src/hooks/directory-agents-injector/injector.ts +59 -59
- package/src/hooks/directory-agents-injector/storage.ts +8 -8
- package/src/hooks/directory-readme-injector/constants.ts +7 -7
- package/src/hooks/directory-readme-injector/finder.ts +33 -33
- package/src/hooks/directory-readme-injector/hook.ts +80 -80
- package/src/hooks/directory-readme-injector/index.ts +1 -1
- package/src/hooks/directory-readme-injector/injector.ts +59 -59
- package/src/hooks/directory-readme-injector/storage.ts +8 -8
- package/src/hooks/edit-error-recovery/hook.ts +58 -58
- package/src/hooks/edit-error-recovery/index.ts +5 -5
- package/src/hooks/empty-task-response-detector.ts +27 -27
- package/src/hooks/fast-apply/hook.ts +11 -11
- package/src/hooks/fast-apply/index.ts +1 -1
- package/src/hooks/fast-apply/ollama-client.ts +53 -53
- package/src/hooks/fast-apply/tool-execute-before-handler.ts +86 -86
- package/src/hooks/guard/AGENTS.md +64 -64
- package/src/hooks/guard/background-launch-session-tracking.ts +97 -97
- package/src/hooks/guard/bob-path.ts +8 -8
- package/src/hooks/guard/boulder-continuation-injector.ts +109 -109
- package/src/hooks/guard/boulder-session-lineage.ts +44 -44
- package/src/hooks/guard/event-handler.ts +104 -104
- package/src/hooks/guard/final-wave-approval-gate.ts +47 -47
- package/src/hooks/guard/final-wave-plan-state.ts +60 -60
- package/src/hooks/guard/guard-hook.ts +27 -27
- package/src/hooks/guard/hook-name.ts +1 -1
- package/src/hooks/guard/idle-event.ts +341 -341
- package/src/hooks/guard/index.ts +3 -3
- package/src/hooks/guard/is-abort-error.ts +20 -20
- package/src/hooks/guard/recent-model-resolver.ts +89 -89
- package/src/hooks/guard/resolve-active-boulder-session.ts +29 -29
- package/src/hooks/guard/session-last-agent.ts +153 -153
- package/src/hooks/guard/subagent-session-id.ts +54 -54
- package/src/hooks/guard/system-reminder-templates.ts +249 -249
- package/src/hooks/guard/task-context.ts +45 -45
- package/src/hooks/guard/tool-execute-after.ts +209 -209
- package/src/hooks/guard/tool-execute-before.ts +102 -102
- package/src/hooks/guard/tsconfig.json +9 -9
- package/src/hooks/guard/types.ts +45 -45
- package/src/hooks/guard/verification-reminders.ts +197 -197
- package/src/hooks/guard/write-edit-tool-policy.ts +5 -5
- package/src/hooks/hashline-edit-diff-enhancer/hook.ts +106 -106
- package/src/hooks/hashline-read-enhancer/hook.ts +193 -193
- package/src/hooks/hashline-read-enhancer/index.ts +1 -1
- package/src/hooks/index.ts +58 -58
- package/src/hooks/interactive-bash-session/constants.ts +13 -13
- package/src/hooks/interactive-bash-session/hook.ts +125 -125
- package/src/hooks/interactive-bash-session/index.ts +3 -3
- package/src/hooks/interactive-bash-session/interactive-bash-session-tracker.ts +119 -119
- package/src/hooks/interactive-bash-session/parser.ts +118 -118
- package/src/hooks/interactive-bash-session/state-manager.ts +35 -35
- package/src/hooks/interactive-bash-session/storage.ts +59 -59
- package/src/hooks/interactive-bash-session/tmux-command-parser.ts +125 -125
- package/src/hooks/interactive-bash-session/types.ts +11 -11
- package/src/hooks/json-error-recovery/hook.ts +58 -58
- package/src/hooks/json-error-recovery/index.ts +6 -6
- package/src/hooks/keyword-detector/AGENTS.md +57 -57
- package/src/hooks/keyword-detector/analyze/default.ts +28 -28
- package/src/hooks/keyword-detector/analyze/index.ts +1 -1
- package/src/hooks/keyword-detector/constants.ts +45 -45
- package/src/hooks/keyword-detector/detector.ts +53 -53
- package/src/hooks/keyword-detector/hook.ts +143 -143
- package/src/hooks/keyword-detector/index.ts +5 -5
- package/src/hooks/keyword-detector/search/default.ts +20 -20
- package/src/hooks/keyword-detector/search/index.ts +1 -1
- package/src/hooks/keyword-detector/types.ts +4 -4
- package/src/hooks/keyword-detector/ultrawork/default.ts +302 -302
- package/src/hooks/keyword-detector/ultrawork/gemini.ts +290 -290
- package/src/hooks/keyword-detector/ultrawork/gpt.ts +173 -173
- package/src/hooks/keyword-detector/ultrawork/index.ts +56 -56
- package/src/hooks/keyword-detector/ultrawork/planner.ts +140 -140
- package/src/hooks/keyword-detector/ultrawork/source-detector.ts +65 -65
- package/src/hooks/legacy-plugin-toast/auto-migrate-runner.ts +2 -2
- package/src/hooks/legacy-plugin-toast/auto-migrate.ts +64 -64
- package/src/hooks/legacy-plugin-toast/hook.ts +68 -68
- package/src/hooks/legacy-plugin-toast/index.ts +1 -1
- package/src/hooks/legacy-plugin-toast/plugin-entry-migrator.ts +1 -1
- package/src/hooks/model-fallback/chat-message-fallback-handler.ts +74 -74
- package/src/hooks/model-fallback/hook.ts +201 -201
- package/src/hooks/model-fallback/next-fallback.ts +84 -84
- package/src/hooks/no-bob-gpt/hook.ts +56 -56
- package/src/hooks/no-bob-gpt/index.ts +1 -1
- package/src/hooks/no-coder-non-gpt/hook.ts +67 -67
- package/src/hooks/no-coder-non-gpt/index.ts +1 -1
- package/src/hooks/non-interactive-env/constants.ts +70 -70
- package/src/hooks/non-interactive-env/detector.ts +19 -19
- package/src/hooks/non-interactive-env/index.ts +5 -5
- package/src/hooks/non-interactive-env/non-interactive-env-hook.ts +73 -73
- package/src/hooks/non-interactive-env/types.ts +3 -3
- package/src/hooks/preemptive-compaction-degradation-monitor.ts +212 -212
- package/src/hooks/preemptive-compaction-no-text-tail.ts +70 -70
- package/src/hooks/preemptive-compaction.ts +218 -218
- package/src/hooks/question-label-truncator/hook.ts +62 -62
- package/src/hooks/question-label-truncator/index.ts +1 -1
- package/src/hooks/ralph-loop/AGENTS.md +62 -62
- package/src/hooks/ralph-loop/command-arguments.ts +30 -30
- package/src/hooks/ralph-loop/completion-handler.ts +65 -65
- package/src/hooks/ralph-loop/completion-promise-detector-test-input.ts +23 -23
- package/src/hooks/ralph-loop/completion-promise-detector.ts +165 -165
- package/src/hooks/ralph-loop/constants.ts +7 -7
- package/src/hooks/ralph-loop/continuation-prompt-builder.ts +77 -77
- package/src/hooks/ralph-loop/continuation-prompt-injector.ts +91 -91
- package/src/hooks/ralph-loop/index.ts +6 -6
- package/src/hooks/ralph-loop/iteration-continuation.ts +64 -64
- package/src/hooks/ralph-loop/logician-verification-detector.ts +88 -88
- package/src/hooks/ralph-loop/loop-session-recovery.ts +33 -33
- package/src/hooks/ralph-loop/loop-state-controller.ts +178 -178
- package/src/hooks/ralph-loop/message-storage-directory.ts +1 -1
- package/src/hooks/ralph-loop/pending-verification-handler.ts +152 -152
- package/src/hooks/ralph-loop/ralph-loop-event-handler.ts +231 -231
- package/src/hooks/ralph-loop/ralph-loop-hook.ts +90 -90
- package/src/hooks/ralph-loop/session-event-handler.ts +56 -56
- package/src/hooks/ralph-loop/session-reset-strategy.ts +69 -69
- package/src/hooks/ralph-loop/storage.ts +164 -164
- package/src/hooks/ralph-loop/types.ts +25 -25
- package/src/hooks/ralph-loop/verification-failure-handler.ts +103 -103
- package/src/hooks/ralph-loop/with-timeout.ts +20 -20
- package/src/hooks/read-image-resizer/hook.ts +209 -209
- package/src/hooks/read-image-resizer/image-dimensions.ts +191 -191
- package/src/hooks/read-image-resizer/image-resizer.ts +191 -191
- package/src/hooks/read-image-resizer/index.ts +1 -1
- package/src/hooks/read-image-resizer/png-fallback-resizer.ts +359 -359
- package/src/hooks/read-image-resizer/types.ts +16 -16
- package/src/hooks/rules-injector/AGENTS.md +53 -53
- package/src/hooks/rules-injector/cache.ts +27 -27
- package/src/hooks/rules-injector/constants.ts +31 -31
- package/src/hooks/rules-injector/finder.ts +3 -3
- package/src/hooks/rules-injector/hook.ts +94 -94
- package/src/hooks/rules-injector/index.ts +2 -2
- package/src/hooks/rules-injector/injector.ts +189 -189
- package/src/hooks/rules-injector/matcher.ts +63 -63
- package/src/hooks/rules-injector/output-path.ts +22 -22
- package/src/hooks/rules-injector/parser.ts +211 -211
- package/src/hooks/rules-injector/project-root-finder.ts +36 -36
- package/src/hooks/rules-injector/rule-distance.ts +53 -53
- package/src/hooks/rules-injector/rule-file-finder.ts +139 -139
- package/src/hooks/rules-injector/rule-file-scanner.ts +55 -55
- package/src/hooks/rules-injector/storage.ts +59 -59
- package/src/hooks/rules-injector/types.ts +57 -57
- package/src/hooks/runtime-fallback/AGENTS.md +102 -102
- package/src/hooks/runtime-fallback/agent-resolver.ts +50 -50
- package/src/hooks/runtime-fallback/auto-retry-signal.ts +32 -32
- package/src/hooks/runtime-fallback/auto-retry.ts +228 -228
- package/src/hooks/runtime-fallback/chat-message-handler.ts +62 -62
- package/src/hooks/runtime-fallback/constants.ts +47 -47
- package/src/hooks/runtime-fallback/error-classifier.ts +183 -183
- package/src/hooks/runtime-fallback/event-handler.ts +213 -213
- package/src/hooks/runtime-fallback/fallback-bootstrap-model.ts +63 -63
- package/src/hooks/runtime-fallback/fallback-models.ts +86 -86
- package/src/hooks/runtime-fallback/fallback-retry-dispatcher.ts +55 -55
- package/src/hooks/runtime-fallback/fallback-state.ts +74 -74
- package/src/hooks/runtime-fallback/hook.ts +87 -87
- package/src/hooks/runtime-fallback/index.ts +2 -2
- package/src/hooks/runtime-fallback/last-user-retry-parts.ts +20 -20
- package/src/hooks/runtime-fallback/message-update-handler.ts +168 -168
- package/src/hooks/runtime-fallback/retry-model-payload.ts +30 -30
- package/src/hooks/runtime-fallback/session-messages.ts +38 -38
- package/src/hooks/runtime-fallback/session-status-handler.ts +126 -126
- package/src/hooks/runtime-fallback/types.ts +77 -77
- package/src/hooks/runtime-fallback/visible-assistant-response.ts +80 -80
- package/src/hooks/session-notification-content.ts +145 -145
- package/src/hooks/session-notification-formatting.ts +25 -25
- package/src/hooks/session-notification-scheduler.ts +188 -188
- package/src/hooks/session-notification-sender.ts +117 -117
- package/src/hooks/session-notification-utils.ts +80 -80
- package/src/hooks/session-notification.ts +219 -219
- package/src/hooks/session-recovery/AGENTS.md +59 -59
- package/src/hooks/session-recovery/constants.ts +5 -5
- package/src/hooks/session-recovery/detect-error-type.ts +102 -102
- package/src/hooks/session-recovery/hook.ts +166 -166
- package/src/hooks/session-recovery/index.ts +7 -7
- package/src/hooks/session-recovery/recover-empty-content-message-sdk.ts +201 -201
- package/src/hooks/session-recovery/recover-thinking-block-order.ts +137 -137
- package/src/hooks/session-recovery/recover-thinking-disabled-violation.ts +75 -75
- package/src/hooks/session-recovery/recover-tool-result-missing.ts +108 -108
- package/src/hooks/session-recovery/recover-unavailable-tool.ts +108 -108
- package/src/hooks/session-recovery/resume.ts +49 -49
- package/src/hooks/session-recovery/storage/empty-messages.ts +47 -47
- package/src/hooks/session-recovery/storage/empty-text.ts +118 -118
- package/src/hooks/session-recovery/storage/message-dir.ts +1 -1
- package/src/hooks/session-recovery/storage/messages-reader.ts +83 -83
- package/src/hooks/session-recovery/storage/orphan-thinking-search.ts +43 -43
- package/src/hooks/session-recovery/storage/part-content.ts +28 -28
- package/src/hooks/session-recovery/storage/part-id.ts +5 -5
- package/src/hooks/session-recovery/storage/parts-reader.ts +56 -56
- package/src/hooks/session-recovery/storage/text-part-injector.ts +63 -63
- package/src/hooks/session-recovery/storage/thinking-block-search.ts +42 -42
- package/src/hooks/session-recovery/storage/thinking-prepend.ts +223 -223
- package/src/hooks/session-recovery/storage/thinking-strip.ts +67 -67
- package/src/hooks/session-recovery/storage.ts +34 -34
- package/src/hooks/session-recovery/types.ts +101 -101
- package/src/hooks/session-todo-status.ts +20 -20
- package/src/hooks/shared/compaction-model-resolver.ts +34 -34
- package/src/hooks/shared/shared/compaction-model-resolver.ts +34 -34
- package/src/hooks/start-work/context-info-builder.ts +319 -319
- package/src/hooks/start-work/index.ts +4 -4
- package/src/hooks/start-work/parse-user-request.ts +32 -32
- package/src/hooks/start-work/start-work-hook.ts +135 -135
- package/src/hooks/start-work/worktree-block.ts +11 -11
- package/src/hooks/start-work/worktree-detector.ts +77 -77
- package/src/hooks/stop-continuation-guard/hook.ts +122 -122
- package/src/hooks/stop-continuation-guard/index.ts +2 -2
- package/src/hooks/strategist-md-only/agent-matcher.ts +5 -5
- package/src/hooks/strategist-md-only/agent-resolution.ts +70 -70
- package/src/hooks/strategist-md-only/constants.ts +78 -78
- package/src/hooks/strategist-md-only/hook.ts +82 -82
- package/src/hooks/strategist-md-only/index.ts +2 -2
- package/src/hooks/strategist-md-only/path-policy.ts +41 -41
- package/src/hooks/sub-notepad/constants.ts +29 -29
- package/src/hooks/sub-notepad/hook.ts +44 -44
- package/src/hooks/sub-notepad/index.ts +3 -3
- package/src/hooks/task-reminder/hook.ts +59 -59
- package/src/hooks/task-reminder/index.ts +1 -1
- package/src/hooks/task-resume-info/hook.ts +39 -39
- package/src/hooks/task-resume-info/index.ts +1 -1
- package/src/hooks/tasks-todowrite-disabler/constants.ts +30 -30
- package/src/hooks/tasks-todowrite-disabler/hook.ts +34 -34
- package/src/hooks/tasks-todowrite-disabler/index.ts +2 -2
- package/src/hooks/think-mode/detector.ts +59 -59
- package/src/hooks/think-mode/hook.ts +76 -76
- package/src/hooks/think-mode/index.ts +5 -5
- package/src/hooks/think-mode/switcher.ts +100 -100
- package/src/hooks/think-mode/types.ts +16 -16
- package/src/hooks/thinking-block-validator/hook.ts +181 -181
- package/src/hooks/thinking-block-validator/index.ts +1 -1
- package/src/hooks/todo-continuation-enforcer/AGENTS.md +65 -65
- package/src/hooks/todo-continuation-enforcer/abort-detection.ts +17 -17
- package/src/hooks/todo-continuation-enforcer/compaction-guard.ts +39 -39
- package/src/hooks/todo-continuation-enforcer/constants.ts +25 -25
- package/src/hooks/todo-continuation-enforcer/continuation-injection.ts +222 -222
- package/src/hooks/todo-continuation-enforcer/countdown.ts +86 -86
- package/src/hooks/todo-continuation-enforcer/handler.ts +99 -99
- package/src/hooks/todo-continuation-enforcer/idle-event.ts +225 -225
- package/src/hooks/todo-continuation-enforcer/index.ts +59 -59
- package/src/hooks/todo-continuation-enforcer/message-directory.ts +1 -1
- package/src/hooks/todo-continuation-enforcer/non-idle-events.ts +107 -107
- package/src/hooks/todo-continuation-enforcer/pending-question-detection.ts +40 -40
- package/src/hooks/todo-continuation-enforcer/resolve-message-info.ts +48 -48
- package/src/hooks/todo-continuation-enforcer/session-state.ts +283 -283
- package/src/hooks/todo-continuation-enforcer/stagnation-detection.ts +36 -36
- package/src/hooks/todo-continuation-enforcer/todo.ts +11 -11
- package/src/hooks/todo-continuation-enforcer/token-limit-detection.ts +38 -38
- package/src/hooks/todo-continuation-enforcer/types.ts +74 -74
- package/src/hooks/todo-description-override/description.ts +28 -28
- package/src/hooks/todo-description-override/hook.ts +14 -14
- package/src/hooks/todo-description-override/index.ts +1 -1
- package/src/hooks/tool-output-truncator.ts +66 -66
- package/src/hooks/tool-pair-validator/hook.ts +184 -184
- package/src/hooks/tool-pair-validator/index.ts +1 -1
- package/src/hooks/unstable-agent-babysitter/index.ts +9 -9
- package/src/hooks/unstable-agent-babysitter/task-message-analyzer.ts +110 -110
- package/src/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.ts +238 -238
- package/src/hooks/webfetch-redirect-guard/constants.ts +11 -11
- package/src/hooks/webfetch-redirect-guard/hook.ts +123 -123
- package/src/hooks/webfetch-redirect-guard/index.ts +1 -1
- package/src/hooks/webfetch-redirect-guard/redirect-resolution.ts +89 -89
- package/src/hooks/write-existing-file-guard/hook.ts +108 -108
- package/src/hooks/write-existing-file-guard/index.ts +1 -1
- package/src/hooks/write-existing-file-guard/session-read-permissions.ts +36 -36
- package/src/hooks/write-existing-file-guard/tool-execute-before-handler.ts +176 -176
- package/src/index.ts +285 -284
- package/src/internals/plugins/pty/LICENSE +21 -21
- package/src/internals/plugins/pty/constants.ts +7 -7
- package/src/internals/plugins/pty/plugin.ts +28 -28
- package/src/internals/plugins/pty/pty/buffer.ts +75 -75
- package/src/internals/plugins/pty/pty/formatters.ts +22 -22
- package/src/internals/plugins/pty/pty/manager.ts +175 -175
- package/src/internals/plugins/pty/pty/notification-manager.ts +75 -75
- package/src/internals/plugins/pty/pty/output-manager.ts +29 -29
- package/src/internals/plugins/pty/pty/permissions.ts +115 -115
- package/src/internals/plugins/pty/pty/session-lifecycle.ts +161 -161
- package/src/internals/plugins/pty/pty/tools/kill.ts +41 -41
- package/src/internals/plugins/pty/pty/tools/kill.txt +25 -25
- package/src/internals/plugins/pty/pty/tools/list.ts +25 -25
- package/src/internals/plugins/pty/pty/tools/list.txt +22 -22
- package/src/internals/plugins/pty/pty/tools/read.ts +234 -234
- package/src/internals/plugins/pty/pty/tools/read.txt +39 -39
- package/src/internals/plugins/pty/pty/tools/spawn.ts +71 -71
- package/src/internals/plugins/pty/pty/tools/spawn.txt +47 -47
- package/src/internals/plugins/pty/pty/tools/write.ts +96 -96
- package/src/internals/plugins/pty/pty/tools/write.txt +28 -28
- package/src/internals/plugins/pty/pty/types.ts +67 -67
- package/src/internals/plugins/pty/pty/utils.ts +21 -21
- package/src/internals/plugins/pty/pty/wildcard.ts +62 -62
- package/src/internals/plugins/pty/shared/constants.ts +7 -7
- package/src/internals/plugins/pty/types.ts +7 -7
- package/src/internals/plugins/subtask2/LICENSE +128 -128
- package/src/internals/plugins/subtask2/commands/index.ts +7 -7
- package/src/internals/plugins/subtask2/commands/loader.ts +39 -39
- package/src/internals/plugins/subtask2/commands/manifest.ts +64 -64
- package/src/internals/plugins/subtask2/commands/resolver.ts +28 -28
- package/src/internals/plugins/subtask2/core/plugin.ts +52 -52
- package/src/internals/plugins/subtask2/core/state.ts +764 -764
- package/src/internals/plugins/subtask2/features/auto.ts +57 -57
- package/src/internals/plugins/subtask2/features/index.ts +9 -9
- package/src/internals/plugins/subtask2/features/inline-subtasks.ts +205 -205
- package/src/internals/plugins/subtask2/features/parallel.ts +148 -148
- package/src/internals/plugins/subtask2/features/results.ts +48 -48
- package/src/internals/plugins/subtask2/features/returns.ts +273 -273
- package/src/internals/plugins/subtask2/features/turns.ts +190 -190
- package/src/internals/plugins/subtask2/hooks/command-hooks.ts +283 -283
- package/src/internals/plugins/subtask2/hooks/message-hooks.ts +603 -603
- package/src/internals/plugins/subtask2/hooks/session-idle-hook.ts +358 -358
- package/src/internals/plugins/subtask2/hooks/tool-hooks.ts +309 -309
- package/src/internals/plugins/subtask2/loop.ts +122 -122
- package/src/internals/plugins/subtask2/parsing/auto.ts +33 -33
- package/src/internals/plugins/subtask2/parsing/commands.ts +154 -154
- package/src/internals/plugins/subtask2/parsing/frontmatter.ts +20 -20
- package/src/internals/plugins/subtask2/parsing/index.ts +10 -10
- package/src/internals/plugins/subtask2/parsing/overrides.ts +68 -68
- package/src/internals/plugins/subtask2/parsing/parallel.ts +88 -88
- package/src/internals/plugins/subtask2/parsing/turns.ts +78 -78
- package/src/internals/plugins/subtask2/types.ts +41 -41
- package/src/internals/plugins/subtask2/utils/config.ts +100 -100
- package/src/internals/plugins/subtask2/utils/index.ts +7 -7
- package/src/internals/plugins/subtask2/utils/logger.ts +67 -67
- package/src/internals/plugins/subtask2/utils/prompts.ts +117 -117
- package/src/internals/plugins/websearch-cited/LICENSE +214 -214
- package/src/internals/plugins/websearch-cited/codex_prompt.txt +79 -79
- package/src/internals/plugins/websearch-cited/google.ts +749 -749
- package/src/internals/plugins/websearch-cited/index.ts +301 -301
- package/src/internals/plugins/websearch-cited/openai.ts +407 -407
- package/src/internals/plugins/websearch-cited/openrouter.ts +190 -190
- package/src/internals/plugins/websearch-cited/types.ts +7 -7
- package/src/lsp/index.ts +15 -15
- package/src/mcp/context7.ts +9 -9
- package/src/mcp/grep-app.ts +6 -6
- package/src/mcp/index.ts +54 -87
- package/src/mcp/omo-mcp-index.ts +30 -35
- package/src/mcp/registry.ts +132 -0
- package/src/mcp/types.ts +19 -9
- package/src/mcp/websearch.ts +44 -44
- package/src/permissions/index.ts +25 -25
- package/src/plugin/AGENTS.md +54 -54
- package/src/plugin/available-categories.ts +24 -24
- package/src/plugin/chat-headers.ts +141 -141
- package/src/plugin/chat-message.ts +309 -309
- package/src/plugin/chat-params.ts +182 -182
- package/src/plugin/command-execute-before.ts +80 -80
- package/src/plugin/event.ts +639 -639
- package/src/plugin/hooks/create-continuation-hooks.ts +128 -128
- package/src/plugin/hooks/create-core-hooks.ts +47 -47
- package/src/plugin/hooks/create-session-hooks.ts +286 -286
- package/src/plugin/hooks/create-skill-hooks.ts +50 -50
- package/src/plugin/hooks/create-tool-guard-hooks.ts +159 -159
- package/src/plugin/hooks/create-transform-hooks.ts +85 -85
- package/src/plugin/messages-transform.ts +28 -28
- package/src/plugin/normalize-tool-arg-schemas.ts +75 -75
- package/src/plugin/recent-synthetic-idles.ts +20 -20
- package/src/plugin/session-agent-resolver.ts +37 -37
- package/src/plugin/session-status-normalizer.ts +22 -22
- package/src/plugin/skill-context.ts +132 -132
- package/src/plugin/system-transform.ts +6 -6
- package/src/plugin/tool-execute-after.ts +178 -178
- package/src/plugin/tool-execute-before.ts +222 -222
- package/src/plugin/tool-registry.ts +282 -282
- package/src/plugin/types.ts +26 -26
- package/src/plugin/ultrawork-db-model-override.ts +142 -142
- package/src/plugin/ultrawork-model-override.ts +196 -196
- package/src/plugin/ultrawork-variant-availability.ts +51 -51
- package/src/plugin/unstable-agent-babysitter.ts +41 -41
- package/src/plugin-config.ts +314 -314
- package/src/plugin-dispose.ts +51 -51
- package/src/plugin-handlers/AGENTS.md +92 -92
- package/src/plugin-handlers/agent-config-handler.ts +502 -502
- package/src/plugin-handlers/agent-key-remapper.ts +39 -39
- package/src/plugin-handlers/agent-override-protection.ts +38 -38
- package/src/plugin-handlers/agent-priority-order.ts +63 -63
- package/src/plugin-handlers/category-config-resolver.ts +9 -9
- package/src/plugin-handlers/command-config-handler.ts +105 -105
- package/src/plugin-handlers/config-handler.ts +61 -61
- package/src/plugin-handlers/index.ts +10 -10
- package/src/plugin-handlers/mcp-config-handler.ts +205 -205
- package/src/plugin-handlers/plan-model-inheritance.ts +27 -27
- package/src/plugin-handlers/plugin-components-loader.ts +70 -70
- package/src/plugin-handlers/provider-config-handler.ts +73 -73
- package/src/plugin-handlers/strategist-agent-config-builder.ts +128 -128
- package/src/plugin-handlers/tool-config-handler.ts +193 -193
- package/src/plugin-interface.ts +83 -83
- package/src/plugin-state.ts +18 -18
- package/src/shared/AGENTS.md +54 -54
- package/src/shared/agent-display-names.ts +182 -182
- package/src/shared/agent-tool-restrictions.ts +80 -80
- package/src/shared/agent-variant.ts +101 -101
- package/src/shared/agents-config-dir.ts +23 -23
- package/src/shared/archive-entry-validator.ts +83 -83
- package/src/shared/background-output-consumption.ts +69 -69
- package/src/shared/binary-downloader.ts +127 -127
- package/src/shared/claude-config-dir.ts +16 -16
- package/src/shared/closure-protocol.ts +53 -53
- package/src/shared/command-executor/embedded-commands.ts +26 -26
- package/src/shared/command-executor/execute-command.ts +28 -28
- package/src/shared/command-executor/execute-hook-command.ts +129 -129
- package/src/shared/command-executor/home-directory.ts +5 -5
- package/src/shared/command-executor/resolve-commands-in-text.ts +49 -49
- package/src/shared/command-executor/shell-path.ts +27 -27
- package/src/shared/command-executor.ts +5 -5
- package/src/shared/compaction-agent-config-checkpoint.ts +42 -42
- package/src/shared/compaction-marker.ts +61 -61
- package/src/shared/config-errors.ts +18 -18
- package/src/shared/connected-providers-cache.ts +215 -215
- package/src/shared/contains-path.ts +50 -50
- package/src/shared/context-limit-resolver.ts +42 -42
- package/src/shared/data-path.ts +64 -64
- package/src/shared/deep-merge.ts +53 -53
- package/src/shared/disabled-tools.ts +19 -19
- package/src/shared/dynamic-truncator.ts +222 -222
- package/src/shared/external-plugin-detector.ts +139 -139
- package/src/shared/fallback-chain-from-models.ts +124 -124
- package/src/shared/fallback-model-availability.ts +102 -102
- package/src/shared/file-reference-resolver.ts +99 -99
- package/src/shared/file-utils.ts +34 -34
- package/src/shared/first-message-variant.ts +28 -28
- package/src/shared/frontmatter.ts +31 -31
- package/src/shared/git-worktree/collect-git-diff-stats.ts +56 -56
- package/src/shared/git-worktree/format-file-changes.ts +46 -46
- package/src/shared/git-worktree/index.ts +7 -7
- package/src/shared/git-worktree/parse-diff-numstat.ts +27 -27
- package/src/shared/git-worktree/parse-status-porcelain-line.ts +27 -27
- package/src/shared/git-worktree/parse-status-porcelain.ts +15 -15
- package/src/shared/git-worktree/types.ts +8 -8
- package/src/shared/hook-disabled.ts +22 -22
- package/src/shared/index.ts +80 -80
- package/src/shared/internal-initiator-marker.ts +18 -18
- package/src/shared/is-abort-error.ts +20 -20
- package/src/shared/json-file-cache-store.ts +98 -98
- package/src/shared/jsonc-parser.ts +98 -98
- package/src/shared/known-variants.ts +16 -16
- package/src/shared/legacy-plugin-warning.ts +68 -68
- package/src/shared/load-opencode-plugins.ts +60 -60
- package/src/shared/log-legacy-plugin-startup-warning.ts +46 -46
- package/src/shared/logger.ts +48 -48
- package/src/shared/merge-categories.ts +18 -18
- package/src/shared/migrate-legacy-config-file.ts +66 -66
- package/src/shared/migrate-legacy-plugin-entry.ts +75 -75
- package/src/shared/migration/agent-category.ts +60 -60
- package/src/shared/migration/agent-names.ts +100 -100
- package/src/shared/migration/config-migration.ts +210 -210
- package/src/shared/migration/hook-names.ts +40 -40
- package/src/shared/migration/migrations-sidecar.ts +92 -92
- package/src/shared/migration/model-versions.ts +50 -50
- package/src/shared/migration.ts +5 -5
- package/src/shared/model-availability.ts +294 -294
- package/src/shared/model-capabilities/bundled-snapshot.ts +15 -15
- package/src/shared/model-capabilities/get-model-capabilities.ts +140 -140
- package/src/shared/model-capabilities/index.ts +9 -9
- package/src/shared/model-capabilities/runtime-model-readers.ts +190 -190
- package/src/shared/model-capabilities/types.ts +80 -80
- package/src/shared/model-capabilities-cache.ts +213 -213
- package/src/shared/model-capability-aliases.ts +108 -108
- package/src/shared/model-capability-guardrails.ts +149 -149
- package/src/shared/model-capability-heuristics.ts +32 -32
- package/src/shared/model-error-classifier.ts +214 -214
- package/src/shared/model-format-normalizer.ts +20 -20
- package/src/shared/model-normalization.ts +8 -8
- package/src/shared/model-requirements.ts +26 -26
- package/src/shared/model-resolution-pipeline.ts +216 -216
- package/src/shared/model-resolution-types.ts +41 -41
- package/src/shared/model-resolver.ts +106 -106
- package/src/shared/model-sanitizer.ts +12 -12
- package/src/shared/model-settings-compatibility.ts +200 -200
- package/src/shared/model-suggestion-retry.ts +182 -182
- package/src/shared/normalize-sdk-response.ts +36 -36
- package/src/shared/opencode-command-dirs.ts +36 -36
- package/src/shared/opencode-config-dir-types.ts +15 -15
- package/src/shared/opencode-config-dir.ts +135 -135
- package/src/shared/opencode-http-api.ts +139 -139
- package/src/shared/opencode-message-dir.ts +29 -29
- package/src/shared/opencode-server-auth.ts +190 -190
- package/src/shared/opencode-storage-detection.ts +33 -33
- package/src/shared/opencode-storage-paths.ts +6 -6
- package/src/shared/opencode-version.ts +80 -80
- package/src/shared/parse-tools-config.ts +25 -25
- package/src/shared/pattern-matcher.ts +46 -46
- package/src/shared/permission-compat.ts +86 -86
- package/src/shared/plugin-command-discovery.ts +28 -28
- package/src/shared/plugin-entry-migrator.ts +21 -21
- package/src/shared/plugin-identity.ts +8 -8
- package/src/shared/port-utils.ts +48 -48
- package/src/shared/project-discovery-dirs.ts +101 -101
- package/src/shared/prompt-timeout-context.ts +49 -49
- package/src/shared/prompt-tools.ts +35 -35
- package/src/shared/provider-model-id-transform.ts +58 -58
- package/src/shared/question-denied-session-permission.ts +9 -9
- package/src/shared/record-type-guard.ts +3 -3
- package/src/shared/resolve-agent-definition-paths.ts +22 -22
- package/src/shared/retry-status-utils.ts +19 -19
- package/src/shared/runtime-plugin-config.ts +98 -98
- package/src/shared/safe-create-hook.ts +24 -24
- package/src/shared/session-category-registry.ts +27 -27
- package/src/shared/session-cursor.ts +108 -108
- package/src/shared/session-directory-resolver.ts +41 -41
- package/src/shared/session-injected-paths.ts +59 -59
- package/src/shared/session-model-state.ts +15 -15
- package/src/shared/session-prompt-params-helpers.ts +31 -31
- package/src/shared/session-prompt-params-state.ts +37 -37
- package/src/shared/session-tools-store.ts +18 -18
- package/src/shared/session-utils.ts +25 -25
- package/src/shared/shell-env.ts +175 -175
- package/src/shared/skill-path-resolver.ts +26 -26
- package/src/shared/snake-case.ts +44 -44
- package/src/shared/spawn-with-windows-hide.ts +84 -84
- package/src/shared/system-directive.ts +67 -67
- package/src/shared/task-system-enabled.ts +9 -9
- package/src/shared/tmux/constants.ts +12 -12
- package/src/shared/tmux/index.ts +3 -3
- package/src/shared/tmux/tmux-utils/environment.ts +13 -13
- package/src/shared/tmux/tmux-utils/layout.ts +96 -96
- package/src/shared/tmux/tmux-utils/pane-close.ts +48 -48
- package/src/shared/tmux/tmux-utils/pane-dimensions.ts +28 -28
- package/src/shared/tmux/tmux-utils/pane-replace.ts +73 -73
- package/src/shared/tmux/tmux-utils/pane-spawn.ts +94 -94
- package/src/shared/tmux/tmux-utils/server-health.ts +62 -62
- package/src/shared/tmux/tmux-utils/session-spawn.ts +145 -145
- package/src/shared/tmux/tmux-utils/window-spawn.ts +93 -93
- package/src/shared/tmux/tmux-utils.ts +15 -15
- package/src/shared/tmux/types.ts +4 -4
- package/src/shared/tool-name.ts +27 -27
- package/src/shared/truncate-description.ts +11 -11
- package/src/shared/vision-capable-models-cache.ts +17 -17
- package/src/shared/write-file-atomically.ts +31 -31
- package/src/shared/zip-entry-listing/powershell-zip-entry-listing.ts +99 -99
- package/src/shared/zip-entry-listing/python-zip-entry-listing.ts +55 -55
- package/src/shared/zip-entry-listing/read-zip-symlink-target.ts +23 -23
- package/src/shared/zip-entry-listing/tar-zip-entry-listing.ts +93 -93
- package/src/shared/zip-entry-listing/zipinfo-zip-entry-listing.ts +72 -72
- package/src/shared/zip-entry-listing.ts +13 -13
- package/src/shared/zip-extractor.ts +118 -118
- package/src/skills/index.ts +56 -56
- package/src/testing/module-mock-lifecycle.ts +143 -143
- package/src/tools/AGENTS.md +108 -108
- package/src/tools/ast-grep/cli-binary-path-resolution.ts +60 -60
- package/src/tools/ast-grep/cli.ts +177 -177
- package/src/tools/ast-grep/constants.ts +5 -5
- package/src/tools/ast-grep/downloader.ts +119 -119
- package/src/tools/ast-grep/environment-check.ts +89 -89
- package/src/tools/ast-grep/index.ts +5 -5
- package/src/tools/ast-grep/language-support.ts +63 -63
- package/src/tools/ast-grep/process-output-timeout.ts +28 -28
- package/src/tools/ast-grep/result-formatter.ts +102 -102
- package/src/tools/ast-grep/sg-cli-path.ts +102 -102
- package/src/tools/ast-grep/sg-compact-json-output.ts +54 -54
- package/src/tools/ast-grep/tools.ts +117 -117
- package/src/tools/ast-grep/types.ts +61 -61
- package/src/tools/background-task/AGENTS.md +53 -53
- package/src/tools/background-task/clients.ts +32 -32
- package/src/tools/background-task/constants.ts +9 -9
- package/src/tools/background-task/create-background-cancel.ts +115 -115
- package/src/tools/background-task/create-background-output.ts +159 -159
- package/src/tools/background-task/create-background-task.ts +126 -126
- package/src/tools/background-task/delay.ts +3 -3
- package/src/tools/background-task/full-session-format.ts +148 -148
- package/src/tools/background-task/index.ts +8 -8
- package/src/tools/background-task/message-dir.ts +1 -1
- package/src/tools/background-task/session-messages.ts +22 -22
- package/src/tools/background-task/task-result-format.ts +113 -113
- package/src/tools/background-task/task-status-format.ts +72 -72
- package/src/tools/background-task/time-format.ts +30 -30
- package/src/tools/background-task/tools.ts +11 -11
- package/src/tools/background-task/truncate-text.ts +4 -4
- package/src/tools/background-task/types.ts +72 -72
- package/src/tools/call-omo-agent/AGENTS.md +51 -51
- package/src/tools/call-omo-agent/agent-resolver.ts +64 -64
- package/src/tools/call-omo-agent/background-agent-executor.ts +91 -91
- package/src/tools/call-omo-agent/background-executor.ts +98 -98
- package/src/tools/call-omo-agent/completion-poller.ts +65 -65
- package/src/tools/call-omo-agent/constants.ts +23 -23
- package/src/tools/call-omo-agent/index.ts +3 -3
- package/src/tools/call-omo-agent/message-dir.ts +1 -1
- package/src/tools/call-omo-agent/message-processor.ts +86 -86
- package/src/tools/call-omo-agent/message-storage-directory.ts +1 -1
- package/src/tools/call-omo-agent/session-creator.ts +70 -70
- package/src/tools/call-omo-agent/subagent-session-creator.ts +74 -74
- package/src/tools/call-omo-agent/sync-executor.ts +148 -148
- package/src/tools/call-omo-agent/tool-context-with-metadata.ts +10 -10
- package/src/tools/call-omo-agent/tools.ts +192 -192
- package/src/tools/call-omo-agent/types.ts +34 -34
- package/src/tools/delegate-task/AGENTS.md +58 -58
- package/src/tools/delegate-task/anthropic-categories.ts +62 -62
- package/src/tools/delegate-task/available-models.ts +64 -64
- package/src/tools/delegate-task/background-continuation.ts +68 -68
- package/src/tools/delegate-task/background-task.ts +165 -165
- package/src/tools/delegate-task/builtin-categories.ts +33 -33
- package/src/tools/delegate-task/builtin-category-definition.ts +8 -8
- package/src/tools/delegate-task/cancel-unstable-agent-task.ts +19 -19
- package/src/tools/delegate-task/categories.ts +77 -77
- package/src/tools/delegate-task/category-resolver.ts +310 -310
- package/src/tools/delegate-task/constants.ts +351 -351
- package/src/tools/delegate-task/delegated-model-config.ts +20 -20
- package/src/tools/delegate-task/error-formatting.ts +51 -51
- package/src/tools/delegate-task/executor-types.ts +39 -39
- package/src/tools/delegate-task/executor.ts +16 -16
- package/src/tools/delegate-task/fallback-entry-resolution.ts +27 -27
- package/src/tools/delegate-task/fallback-entry-settings.ts +20 -20
- package/src/tools/delegate-task/google-categories.ts +130 -130
- package/src/tools/delegate-task/index.ts +4 -4
- package/src/tools/delegate-task/kimi-categories.ts +40 -40
- package/src/tools/delegate-task/model-selection.ts +201 -201
- package/src/tools/delegate-task/model-string-parser.ts +63 -63
- package/src/tools/delegate-task/openai-categories.ts +128 -128
- package/src/tools/delegate-task/parent-context-resolver.ts +47 -47
- package/src/tools/delegate-task/prompt-builder.ts +107 -107
- package/src/tools/delegate-task/resolve-call-id.ts +5 -5
- package/src/tools/delegate-task/skill-resolver.ts +22 -22
- package/src/tools/delegate-task/sub-agent.ts +70 -70
- package/src/tools/delegate-task/subagent-discovery.ts +152 -152
- package/src/tools/delegate-task/subagent-resolver.ts +225 -225
- package/src/tools/delegate-task/sync-continuation-deps.ts +9 -9
- package/src/tools/delegate-task/sync-continuation.ts +149 -149
- package/src/tools/delegate-task/sync-prompt-sender.ts +137 -137
- package/src/tools/delegate-task/sync-result-fetcher.ts +60 -60
- package/src/tools/delegate-task/sync-session-creator.ts +29 -29
- package/src/tools/delegate-task/sync-session-poller.ts +188 -188
- package/src/tools/delegate-task/sync-task-deps.ts +13 -13
- package/src/tools/delegate-task/sync-task-fallback.ts +68 -68
- package/src/tools/delegate-task/sync-task.ts +243 -243
- package/src/tools/delegate-task/time-formatter.ts +13 -13
- package/src/tools/delegate-task/timing.ts +46 -46
- package/src/tools/delegate-task/token-limiter.ts +123 -123
- package/src/tools/delegate-task/tools.ts +259 -259
- package/src/tools/delegate-task/types.ts +89 -89
- package/src/tools/delegate-task/unstable-agent-task.ts +243 -243
- package/src/tools/glob/cli.ts +206 -206
- package/src/tools/glob/constants.ts +12 -12
- package/src/tools/glob/index.ts +1 -1
- package/src/tools/glob/result-formatter.ts +26 -26
- package/src/tools/glob/tools.ts +49 -49
- package/src/tools/glob/types.ts +23 -23
- package/src/tools/grep/cli.ts +279 -279
- package/src/tools/grep/constants.ts +141 -141
- package/src/tools/grep/downloader.ts +128 -128
- package/src/tools/grep/index.ts +1 -1
- package/src/tools/grep/result-formatter.ts +60 -60
- package/src/tools/grep/tools.ts +75 -75
- package/src/tools/grep/types.ts +42 -42
- package/src/tools/hashline-edit/AGENTS.md +92 -92
- package/src/tools/hashline-edit/autocorrect-replacement-lines.ts +179 -179
- package/src/tools/hashline-edit/constants.ts +10 -10
- package/src/tools/hashline-edit/diff-utils.ts +53 -53
- package/src/tools/hashline-edit/edit-deduplication.ts +43 -43
- package/src/tools/hashline-edit/edit-operation-primitives.ts +126 -126
- package/src/tools/hashline-edit/edit-operations.ts +103 -103
- package/src/tools/hashline-edit/edit-ordering.ts +56 -56
- package/src/tools/hashline-edit/edit-text-normalization.ts +111 -111
- package/src/tools/hashline-edit/file-text-canonicalization.ts +44 -44
- package/src/tools/hashline-edit/formatter-trigger.ts +132 -132
- package/src/tools/hashline-edit/hash-computation.ts +154 -154
- package/src/tools/hashline-edit/hashline-chunk-formatter.ts +52 -52
- package/src/tools/hashline-edit/hashline-edit-diff.ts +31 -31
- package/src/tools/hashline-edit/hashline-edit-executor.ts +197 -197
- package/src/tools/hashline-edit/index.ts +20 -20
- package/src/tools/hashline-edit/normalize-edits.ts +95 -95
- package/src/tools/hashline-edit/tool-description.ts +95 -95
- package/src/tools/hashline-edit/tools.ts +42 -42
- package/src/tools/hashline-edit/types.ts +20 -20
- package/src/tools/hashline-edit/validation.ts +181 -181
- package/src/tools/index.ts +64 -64
- package/src/tools/interactive-bash/constants.ts +18 -18
- package/src/tools/interactive-bash/index.ts +4 -4
- package/src/tools/interactive-bash/tmux-path-resolver.ts +71 -71
- package/src/tools/interactive-bash/tools.ts +136 -136
- package/src/tools/look-at/assistant-message-extractor.ts +67 -67
- package/src/tools/look-at/constants.ts +3 -3
- package/src/tools/look-at/image-converter.ts +164 -164
- package/src/tools/look-at/index.ts +3 -3
- package/src/tools/look-at/look-at-arguments.ts +34 -34
- package/src/tools/look-at/mime-type-inference.ts +94 -94
- package/src/tools/look-at/multimodal-agent-metadata.ts +166 -166
- package/src/tools/look-at/multimodal-fallback-chain.ts +66 -66
- package/src/tools/look-at/session-poller.ts +42 -42
- package/src/tools/look-at/tools.ts +245 -245
- package/src/tools/look-at/types.ts +5 -5
- package/src/tools/lsp/AGENTS.md +70 -70
- package/src/tools/lsp/client.ts +3 -3
- package/src/tools/lsp/config.ts +3 -3
- package/src/tools/lsp/constants.ts +7 -7
- package/src/tools/lsp/diagnostics-tool.ts +75 -75
- package/src/tools/lsp/directory-diagnostics.ts +163 -163
- package/src/tools/lsp/find-references-tool.ts +43 -43
- package/src/tools/lsp/goto-definition-tool.ts +42 -42
- package/src/tools/lsp/index.ts +9 -9
- package/src/tools/lsp/infer-extension.ts +65 -65
- package/src/tools/lsp/language-config.ts +5 -5
- package/src/tools/lsp/language-mappings.ts +171 -171
- package/src/tools/lsp/lsp-client-connection.ts +66 -66
- package/src/tools/lsp/lsp-client-transport.ts +210 -210
- package/src/tools/lsp/lsp-client-wrapper.ts +116 -116
- package/src/tools/lsp/lsp-client.ts +129 -129
- package/src/tools/lsp/lsp-formatters.ts +193 -193
- package/src/tools/lsp/lsp-manager-process-cleanup.ts +83 -83
- package/src/tools/lsp/lsp-manager-temp-directory-cleanup.ts +29 -29
- package/src/tools/lsp/lsp-process.ts +158 -158
- package/src/tools/lsp/lsp-server.ts +217 -217
- package/src/tools/lsp/rename-tools.ts +53 -53
- package/src/tools/lsp/server-config-loader.ts +116 -116
- package/src/tools/lsp/server-definitions.ts +91 -91
- package/src/tools/lsp/server-installation.ts +58 -58
- package/src/tools/lsp/server-path-bases.ts +16 -16
- package/src/tools/lsp/server-resolution.ts +109 -109
- package/src/tools/lsp/symbols-tool.ts +76 -76
- package/src/tools/lsp/tools.ts +5 -5
- package/src/tools/lsp/types.ts +124 -124
- package/src/tools/lsp/workspace-edit.ts +121 -121
- package/src/tools/session-manager/constants.ts +93 -93
- package/src/tools/session-manager/file-storage.ts +203 -203
- package/src/tools/session-manager/index.ts +3 -3
- package/src/tools/session-manager/sdk-storage.ts +135 -135
- package/src/tools/session-manager/sdk-unavailable.ts +43 -43
- package/src/tools/session-manager/session-formatter.ts +199 -199
- package/src/tools/session-manager/storage.ts +161 -161
- package/src/tools/session-manager/tools.ts +197 -197
- package/src/tools/session-manager/types.ts +99 -99
- package/src/tools/shared/semaphore.ts +32 -32
- package/src/tools/skill/constants.ts +14 -14
- package/src/tools/skill/description-formatter.ts +61 -61
- package/src/tools/skill/index.ts +3 -3
- package/src/tools/skill/mcp-capability-formatter.ts +97 -97
- package/src/tools/skill/native-skills.ts +62 -62
- package/src/tools/skill/scope-priority.ts +17 -17
- package/src/tools/skill/skill-body.ts +26 -26
- package/src/tools/skill/skill-matcher.ts +40 -40
- package/src/tools/skill/tools.ts +196 -196
- package/src/tools/skill/types.ts +48 -48
- package/src/tools/skill-mcp/constants.ts +9 -9
- package/src/tools/skill-mcp/index.ts +3 -3
- package/src/tools/skill-mcp/tools.ts +204 -204
- package/src/tools/skill-mcp/types.ts +8 -8
- package/src/tools/slashcommand/command-discovery.ts +161 -161
- package/src/tools/slashcommand/command-output-formatter.ts +75 -75
- package/src/tools/slashcommand/index.ts +2 -2
- package/src/tools/slashcommand/types.ts +21 -21
- package/src/tools/task/index.ts +7 -7
- package/src/tools/task/task-create.ts +113 -113
- package/src/tools/task/task-get.ts +47 -47
- package/src/tools/task/task-list.ts +79 -79
- package/src/tools/task/task-update.ts +152 -152
- package/src/tools/task/todo-sync.ts +205 -205
- package/src/tools/task/types.ts +77 -77
- package/scripts/check_docs.ts +0 -129
- package/scripts/doctor.ts +0 -522
- package/scripts/measure_prompts.ts +0 -193
- package/scripts/test_routing.ts +0 -294
|
@@ -1,351 +1,351 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
AvailableCategory,
|
|
3
|
-
AvailableSkill,
|
|
4
|
-
} from "../../agents/dynamic-agent-prompt-builder"
|
|
5
|
-
import { getAgentConfigKey } from "../../shared/agent-display-names"
|
|
6
|
-
import { truncateDescription } from "../../shared/truncate-description"
|
|
7
|
-
export {
|
|
8
|
-
CATEGORY_DESCRIPTIONS,
|
|
9
|
-
CATEGORY_PROMPT_APPENDS,
|
|
10
|
-
DEFAULT_CATEGORIES,
|
|
11
|
-
} from "./builtin-categories"
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* System prompt prepended to plan agent invocations.
|
|
15
|
-
* Instructs the plan agent to first gather context via researcher agents,
|
|
16
|
-
* then summarize user requirements and clarify uncertainties before proceeding.
|
|
17
|
-
* Also MANDATES dependency graphs, parallel execution analysis, and category+skill recommendations.
|
|
18
|
-
*/
|
|
19
|
-
export const PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS = `<system>
|
|
20
|
-
BEFORE you begin planning, you MUST first understand the user's request deeply.
|
|
21
|
-
|
|
22
|
-
MANDATORY CONTEXT GATHERING PROTOCOL:
|
|
23
|
-
1. Launch background agents to gather context:
|
|
24
|
-
- call_omo_agent(description="Explore codebase patterns", subagent_type="researcher", run_in_background=true, prompt="<search for relevant patterns, files, and implementations in the codebase related to user's request>")
|
|
25
|
-
- call_omo_agent(description="Research documentation", subagent_type="researcher", run_in_background=true, prompt="<search for external documentation, examples, and best practices related to user's request>")
|
|
26
|
-
|
|
27
|
-
2. After gathering context, ALWAYS present:
|
|
28
|
-
- **User Request Summary**: Concise restatement of what the user is asking for
|
|
29
|
-
- **Uncertainties**: List of unclear points, ambiguities, or assumptions you're making
|
|
30
|
-
- **Clarifying Questions**: Specific questions to resolve the uncertainties
|
|
31
|
-
|
|
32
|
-
3. ITERATE until ALL requirements are crystal clear:
|
|
33
|
-
- Do NOT proceed to planning until you have 100% clarity
|
|
34
|
-
- Ask the user to confirm your understanding
|
|
35
|
-
- Resolve every ambiguity before generating the work plan
|
|
36
|
-
|
|
37
|
-
REMEMBER: Vague requirements lead to failed implementations. Take the time to understand thoroughly.
|
|
38
|
-
</system>
|
|
39
|
-
|
|
40
|
-
<CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>
|
|
41
|
-
#####################################################################
|
|
42
|
-
# #
|
|
43
|
-
# ██████╗ ███████╗ ██████╗ ██╗ ██╗██╗██████╗ ███████╗██████╗ #
|
|
44
|
-
# ██╔══██╗██╔════╝██╔═══██╗██║ ██║██║██╔══██╗██╔════╝██╔══██╗ #
|
|
45
|
-
# ██████╔╝█████╗ ██║ ██║██║ ██║██║██████╔╝█████╗ ██║ ██║ #
|
|
46
|
-
# ██╔══██╗██╔══╝ ██║▄▄ ██║██║ ██║██║██╔══██╗██╔══╝ ██║ ██║ #
|
|
47
|
-
# ██�� ██║███████╗╚██████╔╝╚██████╔╝██║██║ ██║███████╗██████╔╝ #
|
|
48
|
-
# ╚═╝ ╚═╝╚══════╝ ╚══▀▀═╝ ╚═════╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═════╝ #
|
|
49
|
-
# #
|
|
50
|
-
#####################################################################
|
|
51
|
-
|
|
52
|
-
YOU MUST INCLUDE THE FOLLOWING SECTIONS IN YOUR PLAN OUTPUT.
|
|
53
|
-
THIS IS NON-NEGOTIABLE. FAILURE TO INCLUDE THESE SECTIONS = INCOMPLETE PLAN.
|
|
54
|
-
|
|
55
|
-
═══════════════════════════════════════════════════════════════════
|
|
56
|
-
█ SECTION 1: TASK DEPENDENCY GRAPH (MANDATORY) █
|
|
57
|
-
═══════════════════════════════════════════════════════════════════
|
|
58
|
-
|
|
59
|
-
YOU MUST ANALYZE AND DOCUMENT TASK DEPENDENCIES.
|
|
60
|
-
|
|
61
|
-
For EVERY task in your plan, you MUST specify:
|
|
62
|
-
- Which tasks it DEPENDS ON (blockers)
|
|
63
|
-
- Which tasks DEPEND ON IT (dependents)
|
|
64
|
-
- The REASON for each dependency
|
|
65
|
-
|
|
66
|
-
Example format:
|
|
67
|
-
\`\`\`
|
|
68
|
-
## Task Dependency Graph
|
|
69
|
-
|
|
70
|
-
| Task | Depends On | Reason |
|
|
71
|
-
|------|------------|--------|
|
|
72
|
-
| Task 1 | None | Starting point, no prerequisites |
|
|
73
|
-
| Task 2 | Task 1 | Requires output/artifact from Task 1 |
|
|
74
|
-
| Task 3 | Task 1 | Uses same foundation established in Task 1 |
|
|
75
|
-
| Task 4 | Task 2, Task 3 | Integrates results from both tasks |
|
|
76
|
-
\`\`\`
|
|
77
|
-
|
|
78
|
-
WHY THIS MATTERS:
|
|
79
|
-
- Executors need to know execution ORDER
|
|
80
|
-
- Prevents blocked work from starting prematurely
|
|
81
|
-
- Identifies critical path for project timeline
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
═══════════════════════════════════════════════════════════════════
|
|
85
|
-
█ SECTION 2: PARALLEL EXECUTION GRAPH (MANDATORY) █
|
|
86
|
-
═══════════════════════════════════════════════════════════════════
|
|
87
|
-
|
|
88
|
-
YOU MUST IDENTIFY WHICH TASKS CAN RUN IN PARALLEL.
|
|
89
|
-
|
|
90
|
-
Analyze your dependency graph and group tasks into PARALLEL EXECUTION WAVES:
|
|
91
|
-
|
|
92
|
-
Example format:
|
|
93
|
-
\`\`\`
|
|
94
|
-
## Parallel Execution Graph
|
|
95
|
-
|
|
96
|
-
Wave 1 (Start immediately):
|
|
97
|
-
├── Task 1: [description] (no dependencies)
|
|
98
|
-
└── Task 5: [description] (no dependencies)
|
|
99
|
-
|
|
100
|
-
Wave 2 (After Wave 1 completes):
|
|
101
|
-
├── Task 2: [description] (depends: Task 1)
|
|
102
|
-
├── Task 3: [description] (depends: Task 1)
|
|
103
|
-
└── Task 6: [description] (depends: Task 5)
|
|
104
|
-
|
|
105
|
-
Wave 3 (After Wave 2 completes):
|
|
106
|
-
└── Task 4: [description] (depends: Task 2, Task 3)
|
|
107
|
-
|
|
108
|
-
Critical Path: Task 1 → Task 2 → Task 4
|
|
109
|
-
Estimated Parallel Speedup: 40% faster than sequential
|
|
110
|
-
\`\`\`
|
|
111
|
-
|
|
112
|
-
WHY THIS MATTERS:
|
|
113
|
-
- MASSIVE time savings through parallelization
|
|
114
|
-
- Executors can dispatch multiple agents simultaneously
|
|
115
|
-
- Identifies bottlenecks in the execution plan
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
═══════════════════════════════════════════════════════════════════
|
|
119
|
-
█ SECTION 3: CATEGORY + SKILLS RECOMMENDATIONS (MANDATORY) █
|
|
120
|
-
═══════════════════════════════════════════════════════════════════
|
|
121
|
-
|
|
122
|
-
FOR EVERY TASK, YOU MUST RECOMMEND:
|
|
123
|
-
1. Which CATEGORY to use for delegation
|
|
124
|
-
2. Which SKILLS to load for the delegated agent
|
|
125
|
-
3. Which EXECUTOR contour is expected from that category:
|
|
126
|
-
- quick/writing/unspecified-low -> coder (fast bounded execution)
|
|
127
|
-
- deep/ultrabrain/visual-engineering/artistry/unspecified-high -> coder (deep execution)
|
|
128
|
-
- use subagent_type="critic" explicitly for review-gate passes
|
|
129
|
-
`
|
|
130
|
-
|
|
131
|
-
export const PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS = `### REQUIRED OUTPUT FORMAT
|
|
132
|
-
|
|
133
|
-
For EACH task, include a recommendation block:
|
|
134
|
-
|
|
135
|
-
\`\`\`
|
|
136
|
-
### Task N: [Task Title]
|
|
137
|
-
|
|
138
|
-
**Delegation Recommendation:**
|
|
139
|
-
- Category: \`[category-name]\` - [reason for choice]
|
|
140
|
-
- Skills: [\`skill-1\`, \`skill-2\`] - [reason each skill is needed]
|
|
141
|
-
|
|
142
|
-
**Skills Evaluation:**
|
|
143
|
-
- INCLUDED \`skill-name\`: [reason]
|
|
144
|
-
- OMITTED \`other-skill\`: [reason domain doesn't overlap]
|
|
145
|
-
\`\`\`
|
|
146
|
-
|
|
147
|
-
WHY THIS MATTERS:
|
|
148
|
-
- Category determines the MODEL used for execution
|
|
149
|
-
- Skills inject SPECIALIZED KNOWLEDGE into the executor
|
|
150
|
-
- Missing a relevant skill = suboptimal execution
|
|
151
|
-
- Wrong category = wrong model = poor results
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
═══════════════════════════════════════════════════════════════════
|
|
155
|
-
█ RESPONSE FORMAT SPECIFICATION (MANDATORY) █
|
|
156
|
-
═══════════════════════════════════════════════════════════════════
|
|
157
|
-
|
|
158
|
-
YOUR PLAN OUTPUT MUST FOLLOW THIS EXACT STRUCTURE:
|
|
159
|
-
|
|
160
|
-
\`\`\`markdown
|
|
161
|
-
# [Plan Title]
|
|
162
|
-
|
|
163
|
-
## Context
|
|
164
|
-
[User request summary, interview findings, research results]
|
|
165
|
-
|
|
166
|
-
## Task Dependency Graph
|
|
167
|
-
[Dependency table - see Section 1]
|
|
168
|
-
|
|
169
|
-
## Parallel Execution Graph
|
|
170
|
-
[Wave structure - see Section 2]
|
|
171
|
-
|
|
172
|
-
## Tasks
|
|
173
|
-
|
|
174
|
-
### Task 1: [Title]
|
|
175
|
-
**Description**: [What to do]
|
|
176
|
-
**Delegation Recommendation**:
|
|
177
|
-
- Category: \`[category]\` - [reason]
|
|
178
|
-
- Skills: [\`skill-1\`] - [reason]
|
|
179
|
-
**Skills Evaluation**: [✅ included / ❌ omitted with reasons]
|
|
180
|
-
**Depends On**: [Task IDs or "None"]
|
|
181
|
-
**Acceptance Criteria**: [Verifiable conditions]
|
|
182
|
-
|
|
183
|
-
### Task 2: [Title]
|
|
184
|
-
[Same structure...]
|
|
185
|
-
|
|
186
|
-
## Commit Strategy
|
|
187
|
-
[How to commit changes atomically]
|
|
188
|
-
|
|
189
|
-
## Success Criteria
|
|
190
|
-
[Final verification steps]
|
|
191
|
-
\`\`\`
|
|
192
|
-
|
|
193
|
-
#####################################################################
|
|
194
|
-
# #
|
|
195
|
-
# FAILURE TO INCLUDE THESE SECTIONS = PLAN WILL BE REJECTED #
|
|
196
|
-
# BY MOMUS REVIEW. DO NOT SKIP. DO NOT ABBREVIATE. #
|
|
197
|
-
# #
|
|
198
|
-
#####################################################################
|
|
199
|
-
</CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>
|
|
200
|
-
|
|
201
|
-
<FINAL_OUTPUT_FOR_CALLER>
|
|
202
|
-
═══════════════════════════════════════════════════════════════════
|
|
203
|
-
█ SECTION 4: ACTIONABLE TODO LIST FOR CALLER (MANDATORY) █
|
|
204
|
-
═══════════════════════════════════════════════════════════════════
|
|
205
|
-
|
|
206
|
-
YOU MUST END YOUR RESPONSE WITH THIS SECTION.
|
|
207
|
-
|
|
208
|
-
\`\`\`markdown
|
|
209
|
-
## TODO List (ADD THESE)
|
|
210
|
-
|
|
211
|
-
> CALLER: Add these TODOs using TodoWrite/TaskCreate and execute by wave.
|
|
212
|
-
|
|
213
|
-
### Wave 1 (Start Immediately - No Dependencies)
|
|
214
|
-
|
|
215
|
-
- [ ] **1. [Task Title]**
|
|
216
|
-
- What: [Clear implementation steps]
|
|
217
|
-
- Depends: None
|
|
218
|
-
- Blocks: [Tasks that depend on this]
|
|
219
|
-
- Category: \`category-name\`
|
|
220
|
-
- Skills: [\`skill-1\`, \`skill-2\`]
|
|
221
|
-
- QA: [How to verify completion - specific command or check]
|
|
222
|
-
|
|
223
|
-
- [ ] **N. [Task Title]**
|
|
224
|
-
- What: [Steps]
|
|
225
|
-
- Depends: None
|
|
226
|
-
- Blocks: [...]
|
|
227
|
-
- Category: \`category-name\`
|
|
228
|
-
- Skills: [\`skill-1\`]
|
|
229
|
-
- QA: [Verification]
|
|
230
|
-
|
|
231
|
-
### Wave 2 (After Wave 1 Completes)
|
|
232
|
-
|
|
233
|
-
- [ ] **2. [Task Title]**
|
|
234
|
-
- What: [Steps]
|
|
235
|
-
- Depends: 1
|
|
236
|
-
- Blocks: [4]
|
|
237
|
-
- Category: \`category-name\`
|
|
238
|
-
- Skills: [\`skill-1\`]
|
|
239
|
-
- QA: [Verification]
|
|
240
|
-
|
|
241
|
-
[Continue for all waves...]
|
|
242
|
-
|
|
243
|
-
## Execution Instructions
|
|
244
|
-
|
|
245
|
-
1. **Wave 1**: Fire these tasks IN PARALLEL (no dependencies)
|
|
246
|
-
\`\`\`
|
|
247
|
-
task(category="...", load_skills=[...], run_in_background=false, prompt="Task 1: ...")
|
|
248
|
-
task(category="...", load_skills=[...], run_in_background=false, prompt="Task N: ...")
|
|
249
|
-
\`\`\`
|
|
250
|
-
|
|
251
|
-
2. **Wave 2**: After Wave 1 completes, fire next wave IN PARALLEL
|
|
252
|
-
\`\`\`
|
|
253
|
-
task(category="...", load_skills=[...], run_in_background=false, prompt="Task 2: ...")
|
|
254
|
-
\`\`\`
|
|
255
|
-
|
|
256
|
-
3. Continue until all waves complete
|
|
257
|
-
|
|
258
|
-
4. Final QA: Verify all tasks pass their QA criteria
|
|
259
|
-
\`\`\`
|
|
260
|
-
|
|
261
|
-
WHY THIS FORMAT IS MANDATORY:
|
|
262
|
-
- Caller can directly copy TODO items
|
|
263
|
-
- Wave grouping enables parallel execution
|
|
264
|
-
- Each task has clear task parameters
|
|
265
|
-
- QA criteria ensure verifiable completion
|
|
266
|
-
</FINAL_OUTPUT_FOR_CALLER>
|
|
267
|
-
|
|
268
|
-
`
|
|
269
|
-
|
|
270
|
-
function renderPlanAgentCategoryRows(categories: AvailableCategory[]): string[] {
|
|
271
|
-
const sorted = [...categories].sort((a, b) => a.name.localeCompare(b.name))
|
|
272
|
-
return sorted.map((category) => {
|
|
273
|
-
const bestFor = category.description || category.name
|
|
274
|
-
const model = category.model || ""
|
|
275
|
-
return `| \`${category.name}\` | ${bestFor} | ${model} |`
|
|
276
|
-
})
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
function renderPlanAgentSkillRows(skills: AvailableSkill[]): string[] {
|
|
280
|
-
const sorted = [...skills].sort((a, b) => a.name.localeCompare(b.name))
|
|
281
|
-
return sorted.map((skill) => {
|
|
282
|
-
const domain = truncateDescription(skill.description).trim() || skill.name
|
|
283
|
-
return `| \`${skill.name}\` | ${domain} |`
|
|
284
|
-
})
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
export function buildPlanAgentSkillsSection(
|
|
288
|
-
categories: AvailableCategory[] = [],
|
|
289
|
-
skills: AvailableSkill[] = []
|
|
290
|
-
): string {
|
|
291
|
-
const categoryRows = renderPlanAgentCategoryRows(categories)
|
|
292
|
-
const skillRows = renderPlanAgentSkillRows(skills)
|
|
293
|
-
|
|
294
|
-
return `### AVAILABLE CATEGORIES
|
|
295
|
-
|
|
296
|
-
| Category | Best For | Model |
|
|
297
|
-
|----------|----------|-------|
|
|
298
|
-
${categoryRows.join("\n")}
|
|
299
|
-
|
|
300
|
-
### AVAILABLE SKILLS (ALWAYS EVALUATE ALL)
|
|
301
|
-
|
|
302
|
-
Skills inject specialized expertise into the delegated agent.
|
|
303
|
-
YOU MUST evaluate EVERY skill and justify inclusions/omissions.
|
|
304
|
-
|
|
305
|
-
| Skill | Domain |
|
|
306
|
-
|-------|--------|
|
|
307
|
-
${skillRows.join("\n")}`
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
export function buildPlanAgentSystemPrepend(
|
|
311
|
-
categories: AvailableCategory[] = [],
|
|
312
|
-
skills: AvailableSkill[] = []
|
|
313
|
-
): string {
|
|
314
|
-
return [
|
|
315
|
-
PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS,
|
|
316
|
-
buildPlanAgentSkillsSection(categories, skills),
|
|
317
|
-
PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS,
|
|
318
|
-
].join("\n\n")
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* List of agent names that should be treated as plan agents (receive plan system prompt).
|
|
323
|
-
* Case-insensitive matching is used.
|
|
324
|
-
*/
|
|
325
|
-
export const PLAN_AGENT_NAMES = ["plan"]
|
|
326
|
-
|
|
327
|
-
/**
|
|
328
|
-
* Check if the given agent name is a plan agent (receives plan system prompt).
|
|
329
|
-
*/
|
|
330
|
-
export function isPlanAgent(agentName: string | undefined): boolean {
|
|
331
|
-
if (!agentName) return false
|
|
332
|
-
const lowerName = agentName.toLowerCase().trim()
|
|
333
|
-
return PLAN_AGENT_NAMES.some(name => lowerName === name)
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Plan family: plan + strategist. Shares mutual delegation blocking and task tool permission.
|
|
338
|
-
* Does NOT share system prompt (only isPlanAgent controls that).
|
|
339
|
-
*/
|
|
340
|
-
export const PLAN_FAMILY_NAMES = ["plan", "strategist"]
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
* Check if the given agent belongs to the plan family (blocking + task permission).
|
|
344
|
-
*/
|
|
345
|
-
export function isPlanFamily(category: string): boolean
|
|
346
|
-
export function isPlanFamily(category: string | undefined): boolean
|
|
347
|
-
export function isPlanFamily(category: string | undefined): boolean {
|
|
348
|
-
if (!category) return false
|
|
349
|
-
const lowerCategory = getAgentConfigKey(category).toLowerCase().trim()
|
|
350
|
-
return PLAN_FAMILY_NAMES.some((name) => lowerCategory === name)
|
|
351
|
-
}
|
|
1
|
+
import type {
|
|
2
|
+
AvailableCategory,
|
|
3
|
+
AvailableSkill,
|
|
4
|
+
} from "../../agents/dynamic-agent-prompt-builder"
|
|
5
|
+
import { getAgentConfigKey } from "../../shared/agent-display-names"
|
|
6
|
+
import { truncateDescription } from "../../shared/truncate-description"
|
|
7
|
+
export {
|
|
8
|
+
CATEGORY_DESCRIPTIONS,
|
|
9
|
+
CATEGORY_PROMPT_APPENDS,
|
|
10
|
+
DEFAULT_CATEGORIES,
|
|
11
|
+
} from "./builtin-categories"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* System prompt prepended to plan agent invocations.
|
|
15
|
+
* Instructs the plan agent to first gather context via researcher agents,
|
|
16
|
+
* then summarize user requirements and clarify uncertainties before proceeding.
|
|
17
|
+
* Also MANDATES dependency graphs, parallel execution analysis, and category+skill recommendations.
|
|
18
|
+
*/
|
|
19
|
+
export const PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS = `<system>
|
|
20
|
+
BEFORE you begin planning, you MUST first understand the user's request deeply.
|
|
21
|
+
|
|
22
|
+
MANDATORY CONTEXT GATHERING PROTOCOL:
|
|
23
|
+
1. Launch background agents to gather context:
|
|
24
|
+
- call_omo_agent(description="Explore codebase patterns", subagent_type="researcher", run_in_background=true, prompt="<search for relevant patterns, files, and implementations in the codebase related to user's request>")
|
|
25
|
+
- call_omo_agent(description="Research documentation", subagent_type="researcher", run_in_background=true, prompt="<search for external documentation, examples, and best practices related to user's request>")
|
|
26
|
+
|
|
27
|
+
2. After gathering context, ALWAYS present:
|
|
28
|
+
- **User Request Summary**: Concise restatement of what the user is asking for
|
|
29
|
+
- **Uncertainties**: List of unclear points, ambiguities, or assumptions you're making
|
|
30
|
+
- **Clarifying Questions**: Specific questions to resolve the uncertainties
|
|
31
|
+
|
|
32
|
+
3. ITERATE until ALL requirements are crystal clear:
|
|
33
|
+
- Do NOT proceed to planning until you have 100% clarity
|
|
34
|
+
- Ask the user to confirm your understanding
|
|
35
|
+
- Resolve every ambiguity before generating the work plan
|
|
36
|
+
|
|
37
|
+
REMEMBER: Vague requirements lead to failed implementations. Take the time to understand thoroughly.
|
|
38
|
+
</system>
|
|
39
|
+
|
|
40
|
+
<CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>
|
|
41
|
+
#####################################################################
|
|
42
|
+
# #
|
|
43
|
+
# ██████╗ ███████╗ ██████╗ ██╗ ██╗██╗██████╗ ███████╗██████╗ #
|
|
44
|
+
# ██╔══██╗██╔════╝██╔═══██╗██║ ██║██║██╔══██╗██╔════╝██╔══██╗ #
|
|
45
|
+
# ██████╔╝█████╗ ██║ ██║██║ ██║██║██████╔╝█████╗ ██║ ██║ #
|
|
46
|
+
# ██╔══██╗██╔══╝ ██║▄▄ ██║██║ ██║██║██╔══██╗██╔══╝ ██║ ██║ #
|
|
47
|
+
# ██�� ██║███████╗╚██████╔╝╚██████╔╝██║██║ ██║███████╗██████╔╝ #
|
|
48
|
+
# ╚═╝ ╚═╝╚══════╝ ╚══▀▀═╝ ╚═════╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═════╝ #
|
|
49
|
+
# #
|
|
50
|
+
#####################################################################
|
|
51
|
+
|
|
52
|
+
YOU MUST INCLUDE THE FOLLOWING SECTIONS IN YOUR PLAN OUTPUT.
|
|
53
|
+
THIS IS NON-NEGOTIABLE. FAILURE TO INCLUDE THESE SECTIONS = INCOMPLETE PLAN.
|
|
54
|
+
|
|
55
|
+
═══════════════════════════════════════════════════════════════════
|
|
56
|
+
█ SECTION 1: TASK DEPENDENCY GRAPH (MANDATORY) █
|
|
57
|
+
═══════════════════════════════════════════════════════════════════
|
|
58
|
+
|
|
59
|
+
YOU MUST ANALYZE AND DOCUMENT TASK DEPENDENCIES.
|
|
60
|
+
|
|
61
|
+
For EVERY task in your plan, you MUST specify:
|
|
62
|
+
- Which tasks it DEPENDS ON (blockers)
|
|
63
|
+
- Which tasks DEPEND ON IT (dependents)
|
|
64
|
+
- The REASON for each dependency
|
|
65
|
+
|
|
66
|
+
Example format:
|
|
67
|
+
\`\`\`
|
|
68
|
+
## Task Dependency Graph
|
|
69
|
+
|
|
70
|
+
| Task | Depends On | Reason |
|
|
71
|
+
|------|------------|--------|
|
|
72
|
+
| Task 1 | None | Starting point, no prerequisites |
|
|
73
|
+
| Task 2 | Task 1 | Requires output/artifact from Task 1 |
|
|
74
|
+
| Task 3 | Task 1 | Uses same foundation established in Task 1 |
|
|
75
|
+
| Task 4 | Task 2, Task 3 | Integrates results from both tasks |
|
|
76
|
+
\`\`\`
|
|
77
|
+
|
|
78
|
+
WHY THIS MATTERS:
|
|
79
|
+
- Executors need to know execution ORDER
|
|
80
|
+
- Prevents blocked work from starting prematurely
|
|
81
|
+
- Identifies critical path for project timeline
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
═══════════════════════════════════════════════════════════════════
|
|
85
|
+
█ SECTION 2: PARALLEL EXECUTION GRAPH (MANDATORY) █
|
|
86
|
+
═══════════════════════════════════════════════════════════════════
|
|
87
|
+
|
|
88
|
+
YOU MUST IDENTIFY WHICH TASKS CAN RUN IN PARALLEL.
|
|
89
|
+
|
|
90
|
+
Analyze your dependency graph and group tasks into PARALLEL EXECUTION WAVES:
|
|
91
|
+
|
|
92
|
+
Example format:
|
|
93
|
+
\`\`\`
|
|
94
|
+
## Parallel Execution Graph
|
|
95
|
+
|
|
96
|
+
Wave 1 (Start immediately):
|
|
97
|
+
├── Task 1: [description] (no dependencies)
|
|
98
|
+
└── Task 5: [description] (no dependencies)
|
|
99
|
+
|
|
100
|
+
Wave 2 (After Wave 1 completes):
|
|
101
|
+
├── Task 2: [description] (depends: Task 1)
|
|
102
|
+
├── Task 3: [description] (depends: Task 1)
|
|
103
|
+
└── Task 6: [description] (depends: Task 5)
|
|
104
|
+
|
|
105
|
+
Wave 3 (After Wave 2 completes):
|
|
106
|
+
└── Task 4: [description] (depends: Task 2, Task 3)
|
|
107
|
+
|
|
108
|
+
Critical Path: Task 1 → Task 2 → Task 4
|
|
109
|
+
Estimated Parallel Speedup: 40% faster than sequential
|
|
110
|
+
\`\`\`
|
|
111
|
+
|
|
112
|
+
WHY THIS MATTERS:
|
|
113
|
+
- MASSIVE time savings through parallelization
|
|
114
|
+
- Executors can dispatch multiple agents simultaneously
|
|
115
|
+
- Identifies bottlenecks in the execution plan
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
═══════════════════════════════════════════════════════════════════
|
|
119
|
+
█ SECTION 3: CATEGORY + SKILLS RECOMMENDATIONS (MANDATORY) █
|
|
120
|
+
═══════════════════════════════════════════════════════════════════
|
|
121
|
+
|
|
122
|
+
FOR EVERY TASK, YOU MUST RECOMMEND:
|
|
123
|
+
1. Which CATEGORY to use for delegation
|
|
124
|
+
2. Which SKILLS to load for the delegated agent
|
|
125
|
+
3. Which EXECUTOR contour is expected from that category:
|
|
126
|
+
- quick/writing/unspecified-low -> coder (fast bounded execution)
|
|
127
|
+
- deep/ultrabrain/visual-engineering/artistry/unspecified-high -> coder (deep execution)
|
|
128
|
+
- use subagent_type="critic" explicitly for review-gate passes
|
|
129
|
+
`
|
|
130
|
+
|
|
131
|
+
export const PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS = `### REQUIRED OUTPUT FORMAT
|
|
132
|
+
|
|
133
|
+
For EACH task, include a recommendation block:
|
|
134
|
+
|
|
135
|
+
\`\`\`
|
|
136
|
+
### Task N: [Task Title]
|
|
137
|
+
|
|
138
|
+
**Delegation Recommendation:**
|
|
139
|
+
- Category: \`[category-name]\` - [reason for choice]
|
|
140
|
+
- Skills: [\`skill-1\`, \`skill-2\`] - [reason each skill is needed]
|
|
141
|
+
|
|
142
|
+
**Skills Evaluation:**
|
|
143
|
+
- INCLUDED \`skill-name\`: [reason]
|
|
144
|
+
- OMITTED \`other-skill\`: [reason domain doesn't overlap]
|
|
145
|
+
\`\`\`
|
|
146
|
+
|
|
147
|
+
WHY THIS MATTERS:
|
|
148
|
+
- Category determines the MODEL used for execution
|
|
149
|
+
- Skills inject SPECIALIZED KNOWLEDGE into the executor
|
|
150
|
+
- Missing a relevant skill = suboptimal execution
|
|
151
|
+
- Wrong category = wrong model = poor results
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
═══════════════════════════════════════════════════════════════════
|
|
155
|
+
█ RESPONSE FORMAT SPECIFICATION (MANDATORY) █
|
|
156
|
+
═══════════════════════════════════════════════════════════════════
|
|
157
|
+
|
|
158
|
+
YOUR PLAN OUTPUT MUST FOLLOW THIS EXACT STRUCTURE:
|
|
159
|
+
|
|
160
|
+
\`\`\`markdown
|
|
161
|
+
# [Plan Title]
|
|
162
|
+
|
|
163
|
+
## Context
|
|
164
|
+
[User request summary, interview findings, research results]
|
|
165
|
+
|
|
166
|
+
## Task Dependency Graph
|
|
167
|
+
[Dependency table - see Section 1]
|
|
168
|
+
|
|
169
|
+
## Parallel Execution Graph
|
|
170
|
+
[Wave structure - see Section 2]
|
|
171
|
+
|
|
172
|
+
## Tasks
|
|
173
|
+
|
|
174
|
+
### Task 1: [Title]
|
|
175
|
+
**Description**: [What to do]
|
|
176
|
+
**Delegation Recommendation**:
|
|
177
|
+
- Category: \`[category]\` - [reason]
|
|
178
|
+
- Skills: [\`skill-1\`] - [reason]
|
|
179
|
+
**Skills Evaluation**: [✅ included / ❌ omitted with reasons]
|
|
180
|
+
**Depends On**: [Task IDs or "None"]
|
|
181
|
+
**Acceptance Criteria**: [Verifiable conditions]
|
|
182
|
+
|
|
183
|
+
### Task 2: [Title]
|
|
184
|
+
[Same structure...]
|
|
185
|
+
|
|
186
|
+
## Commit Strategy
|
|
187
|
+
[How to commit changes atomically]
|
|
188
|
+
|
|
189
|
+
## Success Criteria
|
|
190
|
+
[Final verification steps]
|
|
191
|
+
\`\`\`
|
|
192
|
+
|
|
193
|
+
#####################################################################
|
|
194
|
+
# #
|
|
195
|
+
# FAILURE TO INCLUDE THESE SECTIONS = PLAN WILL BE REJECTED #
|
|
196
|
+
# BY MOMUS REVIEW. DO NOT SKIP. DO NOT ABBREVIATE. #
|
|
197
|
+
# #
|
|
198
|
+
#####################################################################
|
|
199
|
+
</CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>
|
|
200
|
+
|
|
201
|
+
<FINAL_OUTPUT_FOR_CALLER>
|
|
202
|
+
═══════════════════════════════════════════════════════════════════
|
|
203
|
+
█ SECTION 4: ACTIONABLE TODO LIST FOR CALLER (MANDATORY) █
|
|
204
|
+
═══════════════════════════════════════════════════════════════════
|
|
205
|
+
|
|
206
|
+
YOU MUST END YOUR RESPONSE WITH THIS SECTION.
|
|
207
|
+
|
|
208
|
+
\`\`\`markdown
|
|
209
|
+
## TODO List (ADD THESE)
|
|
210
|
+
|
|
211
|
+
> CALLER: Add these TODOs using TodoWrite/TaskCreate and execute by wave.
|
|
212
|
+
|
|
213
|
+
### Wave 1 (Start Immediately - No Dependencies)
|
|
214
|
+
|
|
215
|
+
- [ ] **1. [Task Title]**
|
|
216
|
+
- What: [Clear implementation steps]
|
|
217
|
+
- Depends: None
|
|
218
|
+
- Blocks: [Tasks that depend on this]
|
|
219
|
+
- Category: \`category-name\`
|
|
220
|
+
- Skills: [\`skill-1\`, \`skill-2\`]
|
|
221
|
+
- QA: [How to verify completion - specific command or check]
|
|
222
|
+
|
|
223
|
+
- [ ] **N. [Task Title]**
|
|
224
|
+
- What: [Steps]
|
|
225
|
+
- Depends: None
|
|
226
|
+
- Blocks: [...]
|
|
227
|
+
- Category: \`category-name\`
|
|
228
|
+
- Skills: [\`skill-1\`]
|
|
229
|
+
- QA: [Verification]
|
|
230
|
+
|
|
231
|
+
### Wave 2 (After Wave 1 Completes)
|
|
232
|
+
|
|
233
|
+
- [ ] **2. [Task Title]**
|
|
234
|
+
- What: [Steps]
|
|
235
|
+
- Depends: 1
|
|
236
|
+
- Blocks: [4]
|
|
237
|
+
- Category: \`category-name\`
|
|
238
|
+
- Skills: [\`skill-1\`]
|
|
239
|
+
- QA: [Verification]
|
|
240
|
+
|
|
241
|
+
[Continue for all waves...]
|
|
242
|
+
|
|
243
|
+
## Execution Instructions
|
|
244
|
+
|
|
245
|
+
1. **Wave 1**: Fire these tasks IN PARALLEL (no dependencies)
|
|
246
|
+
\`\`\`
|
|
247
|
+
task(category="...", load_skills=[...], run_in_background=false, prompt="Task 1: ...")
|
|
248
|
+
task(category="...", load_skills=[...], run_in_background=false, prompt="Task N: ...")
|
|
249
|
+
\`\`\`
|
|
250
|
+
|
|
251
|
+
2. **Wave 2**: After Wave 1 completes, fire next wave IN PARALLEL
|
|
252
|
+
\`\`\`
|
|
253
|
+
task(category="...", load_skills=[...], run_in_background=false, prompt="Task 2: ...")
|
|
254
|
+
\`\`\`
|
|
255
|
+
|
|
256
|
+
3. Continue until all waves complete
|
|
257
|
+
|
|
258
|
+
4. Final QA: Verify all tasks pass their QA criteria
|
|
259
|
+
\`\`\`
|
|
260
|
+
|
|
261
|
+
WHY THIS FORMAT IS MANDATORY:
|
|
262
|
+
- Caller can directly copy TODO items
|
|
263
|
+
- Wave grouping enables parallel execution
|
|
264
|
+
- Each task has clear task parameters
|
|
265
|
+
- QA criteria ensure verifiable completion
|
|
266
|
+
</FINAL_OUTPUT_FOR_CALLER>
|
|
267
|
+
|
|
268
|
+
`
|
|
269
|
+
|
|
270
|
+
function renderPlanAgentCategoryRows(categories: AvailableCategory[]): string[] {
|
|
271
|
+
const sorted = [...categories].sort((a, b) => a.name.localeCompare(b.name))
|
|
272
|
+
return sorted.map((category) => {
|
|
273
|
+
const bestFor = category.description || category.name
|
|
274
|
+
const model = category.model || ""
|
|
275
|
+
return `| \`${category.name}\` | ${bestFor} | ${model} |`
|
|
276
|
+
})
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function renderPlanAgentSkillRows(skills: AvailableSkill[]): string[] {
|
|
280
|
+
const sorted = [...skills].sort((a, b) => a.name.localeCompare(b.name))
|
|
281
|
+
return sorted.map((skill) => {
|
|
282
|
+
const domain = truncateDescription(skill.description).trim() || skill.name
|
|
283
|
+
return `| \`${skill.name}\` | ${domain} |`
|
|
284
|
+
})
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
export function buildPlanAgentSkillsSection(
|
|
288
|
+
categories: AvailableCategory[] = [],
|
|
289
|
+
skills: AvailableSkill[] = []
|
|
290
|
+
): string {
|
|
291
|
+
const categoryRows = renderPlanAgentCategoryRows(categories)
|
|
292
|
+
const skillRows = renderPlanAgentSkillRows(skills)
|
|
293
|
+
|
|
294
|
+
return `### AVAILABLE CATEGORIES
|
|
295
|
+
|
|
296
|
+
| Category | Best For | Model |
|
|
297
|
+
|----------|----------|-------|
|
|
298
|
+
${categoryRows.join("\n")}
|
|
299
|
+
|
|
300
|
+
### AVAILABLE SKILLS (ALWAYS EVALUATE ALL)
|
|
301
|
+
|
|
302
|
+
Skills inject specialized expertise into the delegated agent.
|
|
303
|
+
YOU MUST evaluate EVERY skill and justify inclusions/omissions.
|
|
304
|
+
|
|
305
|
+
| Skill | Domain |
|
|
306
|
+
|-------|--------|
|
|
307
|
+
${skillRows.join("\n")}`
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export function buildPlanAgentSystemPrepend(
|
|
311
|
+
categories: AvailableCategory[] = [],
|
|
312
|
+
skills: AvailableSkill[] = []
|
|
313
|
+
): string {
|
|
314
|
+
return [
|
|
315
|
+
PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS,
|
|
316
|
+
buildPlanAgentSkillsSection(categories, skills),
|
|
317
|
+
PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS,
|
|
318
|
+
].join("\n\n")
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* List of agent names that should be treated as plan agents (receive plan system prompt).
|
|
323
|
+
* Case-insensitive matching is used.
|
|
324
|
+
*/
|
|
325
|
+
export const PLAN_AGENT_NAMES = ["plan"]
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Check if the given agent name is a plan agent (receives plan system prompt).
|
|
329
|
+
*/
|
|
330
|
+
export function isPlanAgent(agentName: string | undefined): boolean {
|
|
331
|
+
if (!agentName) return false
|
|
332
|
+
const lowerName = agentName.toLowerCase().trim()
|
|
333
|
+
return PLAN_AGENT_NAMES.some(name => lowerName === name)
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Plan family: plan + strategist. Shares mutual delegation blocking and task tool permission.
|
|
338
|
+
* Does NOT share system prompt (only isPlanAgent controls that).
|
|
339
|
+
*/
|
|
340
|
+
export const PLAN_FAMILY_NAMES = ["plan", "strategist"]
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Check if the given agent belongs to the plan family (blocking + task permission).
|
|
344
|
+
*/
|
|
345
|
+
export function isPlanFamily(category: string): boolean
|
|
346
|
+
export function isPlanFamily(category: string | undefined): boolean
|
|
347
|
+
export function isPlanFamily(category: string | undefined): boolean {
|
|
348
|
+
if (!category) return false
|
|
349
|
+
const lowerCategory = getAgentConfigKey(category).toLowerCase().trim()
|
|
350
|
+
return PLAN_FAMILY_NAMES.some((name) => lowerCategory === name)
|
|
351
|
+
}
|