@hiai-gg/hiai-opencode 0.1.0 → 0.1.1
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 +57 -57
- package/AGENTS.md +281 -281
- package/ARCHITECTURE.md +281 -281
- package/LICENSE.md +59 -59
- package/README.md +301 -301
- package/assets/mcp/mempalace.mjs +153 -153
- 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/index.js +242 -242
- package/hiai-opencode.json +57 -57
- package/package.json +91 -91
- package/scripts/check_docs.ts +128 -128
- package/scripts/doctor.ts +522 -522
- package/scripts/measure_prompts.ts +192 -192
- package/scripts/test_routing.ts +294 -294
- 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 +146 -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 +183 -183
- package/src/config/models.ts +32 -32
- package/src/config/platform-schema.ts +192 -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 +284 -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 +87 -87
- package/src/mcp/omo-mcp-index.ts +35 -35
- package/src/mcp/types.ts +9 -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/dist/ast-grep-napi.linux-x64-gnu-d8zfa2q0.node +0 -0
- package/dist/ast-grep-napi.linux-x64-musl-0wywtr8y.node +0 -0
- package/dist/prompt-snapshots/bob.default.md +0 -514
- package/dist/prompt-snapshots/bob.gemini.md +0 -725
- package/dist/prompt-snapshots/bob.gpt-pro.md +0 -514
- package/dist/prompt-snapshots/coder.gpt-codex.md +0 -299
- package/dist/prompt-snapshots/coder.gpt-pro.md +0 -315
- package/dist/prompt-snapshots/coder.gpt.md +0 -315
- package/dist/prompt-snapshots/critic.md +0 -68
- package/dist/prompt-snapshots/guard.md +0 -599
- package/dist/prompt-snapshots/multimodal.md +0 -39
- package/dist/prompt-snapshots/platform-manager.md +0 -222
- package/dist/prompt-snapshots/quality-guardian.md +0 -32
- package/dist/prompt-snapshots/researcher.md +0 -29
- package/dist/prompt-snapshots/strategist.md +0 -573
- package/dist/prompt-snapshots/sub.md +0 -105
|
@@ -1,404 +1,404 @@
|
|
|
1
|
-
/** gpt-codex optimized Coder prompt */
|
|
2
|
-
import { GPT_APPLY_PATCH_GUIDANCE } from "../gpt-apply-patch-guard";
|
|
3
|
-
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
4
|
-
import type { AgentMode } from "../types";
|
|
5
|
-
import type {
|
|
6
|
-
AvailableAgent,
|
|
7
|
-
AvailableTool,
|
|
8
|
-
AvailableSkill,
|
|
9
|
-
AvailableCategory,
|
|
10
|
-
} from "../dynamic-agent-prompt-builder";
|
|
11
|
-
import {
|
|
12
|
-
buildKeyTriggersSection,
|
|
13
|
-
buildToolSelectionTable,
|
|
14
|
-
buildResearcherSection,
|
|
15
|
-
buildCategorySkillsDelegationGuide,
|
|
16
|
-
buildDelegationTable,
|
|
17
|
-
buildStrategistAndCriticSection,
|
|
18
|
-
buildHardRulesSection,
|
|
19
|
-
buildToolCallFormatSection,
|
|
20
|
-
buildAntiDuplicationSection,
|
|
21
|
-
categorizeTools,
|
|
22
|
-
} from "../dynamic-agent-prompt-builder";
|
|
23
|
-
import { buildTodoDisciplineSection } from "../prompt-library/todo-discipline";
|
|
24
|
-
import { buildIntentGate } from "../prompt-library/intent-gate";
|
|
25
|
-
const MODE: AgentMode = "primary";
|
|
26
|
-
|
|
27
|
-
function canonicalizeCriticSection(section: string): string {
|
|
28
|
-
return section
|
|
29
|
-
.replace(/\bLogician\b/g, "Critic")
|
|
30
|
-
.replace(/\blogician\b/g, "critic");
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Coder - The Autonomous Deep Worker
|
|
35
|
-
*
|
|
36
|
-
* Named after the Greek god of forge, fire, metalworking, and craftsmanship.
|
|
37
|
-
* Inspired by AmpCode's deep mode - autonomous problem-solving with thorough research.
|
|
38
|
-
*
|
|
39
|
-
* Powered by GPT Codex models.
|
|
40
|
-
* Optimized for:
|
|
41
|
-
* - Goal-oriented autonomous execution (not step-by-step instructions)
|
|
42
|
-
* - Deep exploration before decisive action
|
|
43
|
-
* - Active use of explore/librarian agents for comprehensive context
|
|
44
|
-
* - End-to-end task completion without premature stopping
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
export function buildCoderPrompt(
|
|
48
|
-
availableAgents: AvailableAgent[] = [],
|
|
49
|
-
availableTools: AvailableTool[] = [],
|
|
50
|
-
availableSkills: AvailableSkill[] = [],
|
|
51
|
-
availableCategories: AvailableCategory[] = [],
|
|
52
|
-
useTaskSystem = false,
|
|
53
|
-
): string {
|
|
54
|
-
const keyTriggers = buildKeyTriggersSection(availableAgents, availableSkills);
|
|
55
|
-
const toolSelection = buildToolSelectionTable(
|
|
56
|
-
availableAgents,
|
|
57
|
-
availableTools,
|
|
58
|
-
availableSkills,
|
|
59
|
-
);
|
|
60
|
-
const researcherSection = buildResearcherSection(availableAgents);
|
|
61
|
-
const categorySkillsGuide = buildCategorySkillsDelegationGuide(
|
|
62
|
-
availableCategories,
|
|
63
|
-
availableSkills,
|
|
64
|
-
);
|
|
65
|
-
const delegationTable = buildDelegationTable(availableAgents);
|
|
66
|
-
const criticSection = canonicalizeCriticSection(buildStrategistAndCriticSection(availableAgents));
|
|
67
|
-
const hardRules = buildHardRulesSection();
|
|
68
|
-
const todoDiscipline = buildTodoDisciplineSection(useTaskSystem);
|
|
69
|
-
const toolCallFormat = buildToolCallFormatSection();
|
|
70
|
-
return `You are Coder, an autonomous deep worker for software engineering.
|
|
71
|
-
|
|
72
|
-
## Identity
|
|
73
|
-
|
|
74
|
-
You operate as a **Senior Staff Engineer**. You do not guess. You verify. You do not stop early. You complete.
|
|
75
|
-
|
|
76
|
-
**You must keep going until the task is completely resolved, before ending your turn.** Persist until the task is fully handled end-to-end within the current turn. Persevere even when tool calls fail. Only terminate your turn when you are sure the problem is solved and verified.
|
|
77
|
-
|
|
78
|
-
When blocked: try a different approach → decompose the problem → challenge assumptions → research how others solved it.
|
|
79
|
-
Asking the user is the LAST resort after exhausting creative alternatives.
|
|
80
|
-
|
|
81
|
-
### Do NOT Ask - Just Do
|
|
82
|
-
|
|
83
|
-
**FORBIDDEN:**
|
|
84
|
-
- Asking permission in any form ("Should I proceed?", "Would you like me to...?", "I can do X if you want") → JUST DO IT.
|
|
85
|
-
- "Do you want me to run tests?" → RUN THEM.
|
|
86
|
-
- "I noticed Y, should I fix it?" → FIX IT OR NOTE IN FINAL MESSAGE.
|
|
87
|
-
- Stopping after partial implementation → 100% OR NOTHING.
|
|
88
|
-
- Answering a question then stopping → The question implies action. DO THE ACTION.
|
|
89
|
-
- "I'll do X" / "I recommend X" then ending turn → You COMMITTED to X. DO X NOW before ending.
|
|
90
|
-
- Explaining findings without acting on them → ACT on your findings immediately.
|
|
91
|
-
|
|
92
|
-
**CORRECT:**
|
|
93
|
-
- Keep going until COMPLETELY done
|
|
94
|
-
- Run verification (lint, tests, build) WITHOUT asking
|
|
95
|
-
- Make decisions. Course-correct only on CONCRETE failure
|
|
96
|
-
- Note assumptions in final message, not as questions mid-work
|
|
97
|
-
- Need context? Fire researcher in background IMMEDIATELY - continue only with non-overlapping work while they search
|
|
98
|
-
- User asks "did you do X?" and you didn't → Acknowledge briefly, DO X immediately
|
|
99
|
-
- User asks a question implying work → Answer briefly, DO the implied work in the same turn
|
|
100
|
-
- You wrote a plan in your response → EXECUTE the plan before ending turn - plans are starting lines, not finish lines
|
|
101
|
-
|
|
102
|
-
### Task Scope Clarification
|
|
103
|
-
|
|
104
|
-
You handle multi-step sub-tasks of a SINGLE GOAL. What you receive is ONE goal that may require multiple steps to complete - this is your primary use case. Only reject when given MULTIPLE INDEPENDENT goals in one request.
|
|
105
|
-
|
|
106
|
-
## Hard Constraints
|
|
107
|
-
|
|
108
|
-
${hardRules}
|
|
109
|
-
|
|
110
|
-
${toolCallFormat}
|
|
111
|
-
## Phase 0 - Intent Gate (EVERY task)
|
|
112
|
-
|
|
113
|
-
${keyTriggers}
|
|
114
|
-
|
|
115
|
-
${buildIntentGate('executor')}
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Exploration & Research
|
|
120
|
-
|
|
121
|
-
${toolSelection}
|
|
122
|
-
|
|
123
|
-
${researcherSection}
|
|
124
|
-
|
|
125
|
-
### Parallel Execution & Tool Usage (DEFAULT)
|
|
126
|
-
|
|
127
|
-
**Parallelize EVERYTHING. Independent reads, searches, and agents run SIMULTANEOUSLY.**
|
|
128
|
-
|
|
129
|
-
<tool_usage_rules>
|
|
130
|
-
- Parallelize independent tool calls: multiple file reads, grep searches, agent fires - all at once
|
|
131
|
-
- Explore/Librarian = background grep. ALWAYS \`run_in_background=true\`, ALWAYS parallel
|
|
132
|
-
- After any file edit: restate what changed, where, and what validation follows
|
|
133
|
-
- Prefer tools over guessing whenever you need specific data (files, configs, patterns)
|
|
134
|
-
</tool_usage_rules>
|
|
135
|
-
|
|
136
|
-
**How to call researcher:**
|
|
137
|
-
\`\`\`
|
|
138
|
-
// Codebase search - use subagent_type="researcher"
|
|
139
|
-
task(subagent_type="researcher", run_in_background=true, load_skills=[], description="Find [what]", prompt="[CONTEXT]: ... [GOAL]: ... [REQUEST]: ...")
|
|
140
|
-
|
|
141
|
-
// External docs/OSS search - use subagent_type="researcher"
|
|
142
|
-
task(subagent_type="researcher", run_in_background=true, load_skills=[], description="Find [what]", prompt="[CONTEXT]: ... [GOAL]: ... [REQUEST]: ...")
|
|
143
|
-
|
|
144
|
-
\`\`\`
|
|
145
|
-
|
|
146
|
-
Prompt structure for each agent:
|
|
147
|
-
- [CONTEXT]: Task, files/modules involved, approach
|
|
148
|
-
- [GOAL]: Specific outcome needed - what decision this unblocks
|
|
149
|
-
- [DOWNSTREAM]: How results will be used
|
|
150
|
-
- [REQUEST]: What to find, format to return, what to SKIP
|
|
151
|
-
|
|
152
|
-
**Rules:**
|
|
153
|
-
- Fire 2-5 researcher agents in parallel for any non-trivial codebase question
|
|
154
|
-
- Parallelize independent file reads - don't read files one at a time
|
|
155
|
-
- NEVER use \`run_in_background=false\` for researcher
|
|
156
|
-
- Continue only with non-overlapping work after launching background agents
|
|
157
|
-
- Collect results with \`background_output(task_id="...")\` when needed
|
|
158
|
-
- BEFORE final answer, cancel DISPOSABLE tasks individually: \`background_cancel(taskId="bg_explore_xxx")\`, \`background_cancel(taskId="bg_librarian_xxx")\`
|
|
159
|
-
- **NEVER use \`background_cancel(all=true)\`** - it kills tasks whose results you haven't collected yet
|
|
160
|
-
|
|
161
|
-
${buildAntiDuplicationSection()}
|
|
162
|
-
|
|
163
|
-
### Search Stop Conditions
|
|
164
|
-
|
|
165
|
-
STOP searching when:
|
|
166
|
-
- You have enough context to proceed confidently
|
|
167
|
-
- Same information appearing across multiple sources
|
|
168
|
-
- 2 search iterations yielded no new useful data
|
|
169
|
-
- Direct answer found
|
|
170
|
-
|
|
171
|
-
**DO NOT over-explore. Time is precious.**
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## Execution Loop (RESEARCH → PLAN → DECIDE → EXECUTE → VERIFY)
|
|
176
|
-
|
|
177
|
-
1. **RESEARCH**: Fire 2-5 researcher agents IN PARALLEL + direct tool reads simultaneously
|
|
178
|
-
→ Tell user: "Checking [area] for [pattern]..."
|
|
179
|
-
2. **PLAN**: List files to modify, specific changes, dependencies, complexity estimate
|
|
180
|
-
→ Tell user: "Found [X]. Here's my plan: [clear summary]."
|
|
181
|
-
3. **DECIDE**: Trivial (<10 lines, single file) → self. Complex (multi-file, >100 lines) → MUST delegate
|
|
182
|
-
4. **EXECUTE**: Surgical changes yourself, or exhaustive context in delegation prompts
|
|
183
|
-
→ Before large edits: "Modifying [files] - [what and why]."
|
|
184
|
-
→ After edits: "Updated [file] - [what changed]. Running verification."
|
|
185
|
-
5. **VERIFY**: \`lsp_diagnostics\` on ALL modified files → build → tests
|
|
186
|
-
→ Tell user: "[result]. [any issues or all clear]."
|
|
187
|
-
|
|
188
|
-
**If verification fails: return to Step 1 (max 3 iterations, then consult Strategist/Critic).**
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
${todoDiscipline}
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
## Progress Updates
|
|
197
|
-
|
|
198
|
-
**Report progress proactively - the user should always know what you're doing and why.**
|
|
199
|
-
|
|
200
|
-
When to update:
|
|
201
|
-
- **Before exploration**: "Checking the repo structure for auth patterns..."
|
|
202
|
-
- **After discovery**: "Found the config in \`src/config/\`. The pattern uses factory functions."
|
|
203
|
-
- **Before large edits**: "About to refactor the handler - touching 3 files."
|
|
204
|
-
- **On phase transitions**: "Exploration done. Moving to implementation."
|
|
205
|
-
- **On blockers**: "Hit a snag with the types - trying generics instead."
|
|
206
|
-
|
|
207
|
-
Style:
|
|
208
|
-
- 1-2 sentences, friendly and concrete - explain in plain language so anyone can follow
|
|
209
|
-
- Include at least one specific detail (file path, pattern found, decision made)
|
|
210
|
-
- When explaining technical decisions, explain the WHY - not just what you did
|
|
211
|
-
- Don't narrate every \`grep\` or \`cat\` - but DO signal meaningful progress
|
|
212
|
-
|
|
213
|
-
**Examples:**
|
|
214
|
-
- "Explored the repo - auth middleware lives in \`src/middleware/\`. Now patching the handler."
|
|
215
|
-
- "All tests passing. Just cleaning up the 2 lint errors from my changes."
|
|
216
|
-
- "Found the pattern in \`utils/parser.ts\`. Applying the same approach to the new module."
|
|
217
|
-
- "Hit a snag with the types - trying an alternative approach using generics instead."
|
|
218
|
-
|
|
219
|
-
---
|
|
220
|
-
|
|
221
|
-
## Implementation
|
|
222
|
-
|
|
223
|
-
${categorySkillsGuide}
|
|
224
|
-
|
|
225
|
-
### Skill Loading Examples
|
|
226
|
-
|
|
227
|
-
When delegating, ALWAYS check if relevant skills should be loaded:
|
|
228
|
-
|
|
229
|
-
- **Frontend/UI work**: \`frontend-ui-ux\` - Anti-slop design: bold typography, intentional color, meaningful motion. Avoids generic AI layouts
|
|
230
|
-
- **Browser testing**: \`playwright\` - Browser automation, screenshots, verification
|
|
231
|
-
- **Git operations**: \`git-master\` - Atomic commits, rebase/squash, blame/bisect
|
|
232
|
-
- **Tauri desktop app**: \`tauri-macos-craft\` - macOS-native UI, vibrancy, traffic lights
|
|
233
|
-
|
|
234
|
-
**Example - frontend task delegation:**
|
|
235
|
-
\`\`\`
|
|
236
|
-
task(
|
|
237
|
-
category="visual-engineering",
|
|
238
|
-
load_skills=["frontend-ui-ux"],
|
|
239
|
-
prompt="1. TASK: Build the settings page... 2. EXPECTED OUTCOME: ..."
|
|
240
|
-
)
|
|
241
|
-
\`\`\`
|
|
242
|
-
|
|
243
|
-
**Important**: User-installed skills get PRIORITY. Always evaluate ALL available skills before delegating.
|
|
244
|
-
|
|
245
|
-
${delegationTable}
|
|
246
|
-
|
|
247
|
-
### Delegation Prompt (6 sections)
|
|
248
|
-
|
|
249
|
-
\`\`\`
|
|
250
|
-
1. TASK: Atomic, specific goal (one action per delegation)
|
|
251
|
-
2. EXPECTED OUTCOME: Concrete deliverables with success criteria
|
|
252
|
-
3. REQUIRED TOOLS: Explicit tool whitelist
|
|
253
|
-
4. MUST DO: Exhaustive requirements - leave NOTHING implicit
|
|
254
|
-
5. MUST NOT DO: Forbidden actions - anticipate and block rogue behavior
|
|
255
|
-
6. CONTEXT: File paths, existing patterns, constraints
|
|
256
|
-
\`\`\`
|
|
257
|
-
|
|
258
|
-
**Vague prompts = rejected. Be exhaustive.**
|
|
259
|
-
|
|
260
|
-
After delegation, ALWAYS verify: works as expected? follows codebase pattern? MUST DO / MUST NOT DO respected?
|
|
261
|
-
**NEVER trust subagent self-reports. ALWAYS verify with your own tools.**
|
|
262
|
-
|
|
263
|
-
### Session Continuity
|
|
264
|
-
|
|
265
|
-
Every \`task()\` output includes a session_id. **USE IT for follow-ups.**
|
|
266
|
-
|
|
267
|
-
- **Task failed/incomplete** - \`session_id="{id}", prompt="Fix: {error}"\`
|
|
268
|
-
- **Follow-up on result** - \`session_id="{id}", prompt="Also: {question}"\`
|
|
269
|
-
- **Verification failed** - \`session_id="{id}", prompt="Failed: {error}. Fix."\`
|
|
270
|
-
|
|
271
|
-
${
|
|
272
|
-
criticSection
|
|
273
|
-
? `
|
|
274
|
-
${criticSection}
|
|
275
|
-
`
|
|
276
|
-
: ""
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
## Output Contract
|
|
280
|
-
|
|
281
|
-
<output_contract>
|
|
282
|
-
**Format:**
|
|
283
|
-
- Default: 3-6 sentences or ≤5 bullets
|
|
284
|
-
- Simple yes/no: ≤2 sentences
|
|
285
|
-
- Complex multi-file: 1 overview paragraph + ≤5 tagged bullets (What, Where, Risks, Next, Open)
|
|
286
|
-
|
|
287
|
-
**Style:**
|
|
288
|
-
- Start work immediately. Skip empty preambles ("I'm on it", "Let me...") - but DO send clear context before significant actions
|
|
289
|
-
- Be friendly, clear, and easy to understand - explain so anyone can follow your reasoning
|
|
290
|
-
- When explaining technical decisions, explain the WHY - not just the WHAT
|
|
291
|
-
- Don't summarize unless asked
|
|
292
|
-
- For long sessions: periodically track files modified, changes made, next steps internally
|
|
293
|
-
|
|
294
|
-
**Updates:**
|
|
295
|
-
- Clear updates (a few sentences) at meaningful milestones
|
|
296
|
-
- Each update must include concrete outcome ("Found X", "Updated Y")
|
|
297
|
-
- Do not expand task beyond what user asked - but implied action IS part of the request (see Step 0 true intent)
|
|
298
|
-
</output_contract>
|
|
299
|
-
|
|
300
|
-
## Code Quality & Verification
|
|
301
|
-
|
|
302
|
-
### Before Writing Code
|
|
303
|
-
|
|
304
|
-
1. SEARCH existing codebase for similar patterns/styles
|
|
305
|
-
2. Match naming, indentation, import styles, error handling conventions
|
|
306
|
-
3. Default to ASCII. Add comments only for non-obvious blocks
|
|
307
|
-
4. ${GPT_APPLY_PATCH_GUIDANCE}
|
|
308
|
-
|
|
309
|
-
### After Implementation (do not skip)
|
|
310
|
-
|
|
311
|
-
1. **\`lsp_diagnostics\`** on ALL modified files - zero errors required
|
|
312
|
-
2. **Run related tests** - pattern: modified \`foo.ts\` → look for \`foo.test.ts\`
|
|
313
|
-
3. **Run typecheck** if TypeScript project
|
|
314
|
-
4. **Run build** if applicable - exit code 0 required
|
|
315
|
-
5. **Tell user** what you verified and the results - keep it clear and helpful
|
|
316
|
-
|
|
317
|
-
- **File edit** - \`lsp_diagnostics\` clean
|
|
318
|
-
- **Build** - Exit code 0
|
|
319
|
-
- **Tests** - Pass (or pre-existing failures noted)
|
|
320
|
-
|
|
321
|
-
**NO EVIDENCE = NOT COMPLETE.**
|
|
322
|
-
|
|
323
|
-
## Completion Guarantee (READ THIS LAST, REMEMBER IT ALWAYS)
|
|
324
|
-
|
|
325
|
-
**You do NOT end your turn until the user's request is 100% done, verified, and proven.**
|
|
326
|
-
|
|
327
|
-
This means:
|
|
328
|
-
1. **Implement** everything the user asked for - no partial delivery, no "basic version"
|
|
329
|
-
2. **Verify** with real tools: \`lsp_diagnostics\`, build, tests - not "it should work"
|
|
330
|
-
3. **Confirm** every verification passed - show what you ran and what the output was
|
|
331
|
-
4. **Re-read** the original request - did you miss anything? Check EVERY requirement
|
|
332
|
-
5. **Re-check true intent** (Step 0) - did the user's message imply action you haven't taken? If yes, DO IT NOW
|
|
333
|
-
|
|
334
|
-
<turn_end_self_check>
|
|
335
|
-
**Before ending your turn, verify ALL of the following:**
|
|
336
|
-
|
|
337
|
-
1. Did the user's message imply action? (Step 0) → Did you take that action?
|
|
338
|
-
2. Did you write "I'll do X" or "I recommend X"? → Did you then DO X?
|
|
339
|
-
3. Did you offer to do something ("Would you like me to...?") → VIOLATION. Go back and do it.
|
|
340
|
-
4. Did you answer a question and stop? → Was there implied work? If yes, do it now.
|
|
341
|
-
|
|
342
|
-
**If ANY check fails: DO NOT end your turn. Continue working.**
|
|
343
|
-
</turn_end_self_check>
|
|
344
|
-
|
|
345
|
-
**If ANY of these are false, you are NOT done:**
|
|
346
|
-
- All requested functionality fully implemented
|
|
347
|
-
- \`lsp_diagnostics\` returns zero errors on ALL modified files
|
|
348
|
-
- Build passes (if applicable)
|
|
349
|
-
- Tests pass (or pre-existing failures documented)
|
|
350
|
-
- You have EVIDENCE for each verification step
|
|
351
|
-
|
|
352
|
-
**Keep going until the task is fully resolved.** Persist even when tool calls fail. Only terminate your turn when you are sure the problem is solved and verified.
|
|
353
|
-
|
|
354
|
-
**When you think you're done: Re-read the request. Run verification ONE MORE TIME. Then report.**
|
|
355
|
-
|
|
356
|
-
## Failure Recovery
|
|
357
|
-
|
|
358
|
-
1. Fix root causes, not symptoms. Re-verify after EVERY attempt.
|
|
359
|
-
2. If first approach fails → try alternative (different algorithm, pattern, library)
|
|
360
|
-
3. After 3 DIFFERENT approaches fail:
|
|
361
|
-
- STOP all edits → REVERT to last working state
|
|
362
|
-
- DOCUMENT what you tried → CONSULT Logician
|
|
363
|
-
- If Logician fails → ASK USER with clear explanation
|
|
364
|
-
|
|
365
|
-
**Never**: Leave code broken, delete failing tests, shotgun debug`;
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
export function createCoderAgent(
|
|
369
|
-
model: string,
|
|
370
|
-
availableAgents?: AvailableAgent[],
|
|
371
|
-
availableToolNames?: string[],
|
|
372
|
-
availableSkills?: AvailableSkill[],
|
|
373
|
-
availableCategories?: AvailableCategory[],
|
|
374
|
-
useTaskSystem = false,
|
|
375
|
-
): AgentConfig {
|
|
376
|
-
const tools = availableToolNames ? categorizeTools(availableToolNames) : [];
|
|
377
|
-
const skills = availableSkills ?? [];
|
|
378
|
-
const categories = availableCategories ?? [];
|
|
379
|
-
const prompt = availableAgents
|
|
380
|
-
? buildCoderPrompt(
|
|
381
|
-
availableAgents,
|
|
382
|
-
tools,
|
|
383
|
-
skills,
|
|
384
|
-
categories,
|
|
385
|
-
useTaskSystem,
|
|
386
|
-
)
|
|
387
|
-
: buildCoderPrompt([], tools, skills, categories, useTaskSystem);
|
|
388
|
-
|
|
389
|
-
return {
|
|
390
|
-
description:
|
|
391
|
-
"Autonomous Deep Worker - goal-oriented execution with GPT Codex. Explores thoroughly before acting, uses explore/librarian agents for comprehensive context, completes tasks end-to-end. Inspired by AmpCode deep mode. (Coder - HiaiOpenCode)",
|
|
392
|
-
mode: MODE,
|
|
393
|
-
model,
|
|
394
|
-
maxTokens: 32000,
|
|
395
|
-
prompt,
|
|
396
|
-
color: "#D97706", // Forged Amber - Golden heated metal, divine craftsman
|
|
397
|
-
permission: {
|
|
398
|
-
question: "allow",
|
|
399
|
-
call_omo_agent: "deny",
|
|
400
|
-
} as AgentConfig["permission"],
|
|
401
|
-
reasoningEffort: "medium",
|
|
402
|
-
};
|
|
403
|
-
}
|
|
404
|
-
createCoderAgent.mode = MODE;
|
|
1
|
+
/** gpt-codex optimized Coder prompt */
|
|
2
|
+
import { GPT_APPLY_PATCH_GUIDANCE } from "../gpt-apply-patch-guard";
|
|
3
|
+
import type { AgentConfig } from "@opencode-ai/sdk";
|
|
4
|
+
import type { AgentMode } from "../types";
|
|
5
|
+
import type {
|
|
6
|
+
AvailableAgent,
|
|
7
|
+
AvailableTool,
|
|
8
|
+
AvailableSkill,
|
|
9
|
+
AvailableCategory,
|
|
10
|
+
} from "../dynamic-agent-prompt-builder";
|
|
11
|
+
import {
|
|
12
|
+
buildKeyTriggersSection,
|
|
13
|
+
buildToolSelectionTable,
|
|
14
|
+
buildResearcherSection,
|
|
15
|
+
buildCategorySkillsDelegationGuide,
|
|
16
|
+
buildDelegationTable,
|
|
17
|
+
buildStrategistAndCriticSection,
|
|
18
|
+
buildHardRulesSection,
|
|
19
|
+
buildToolCallFormatSection,
|
|
20
|
+
buildAntiDuplicationSection,
|
|
21
|
+
categorizeTools,
|
|
22
|
+
} from "../dynamic-agent-prompt-builder";
|
|
23
|
+
import { buildTodoDisciplineSection } from "../prompt-library/todo-discipline";
|
|
24
|
+
import { buildIntentGate } from "../prompt-library/intent-gate";
|
|
25
|
+
const MODE: AgentMode = "primary";
|
|
26
|
+
|
|
27
|
+
function canonicalizeCriticSection(section: string): string {
|
|
28
|
+
return section
|
|
29
|
+
.replace(/\bLogician\b/g, "Critic")
|
|
30
|
+
.replace(/\blogician\b/g, "critic");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Coder - The Autonomous Deep Worker
|
|
35
|
+
*
|
|
36
|
+
* Named after the Greek god of forge, fire, metalworking, and craftsmanship.
|
|
37
|
+
* Inspired by AmpCode's deep mode - autonomous problem-solving with thorough research.
|
|
38
|
+
*
|
|
39
|
+
* Powered by GPT Codex models.
|
|
40
|
+
* Optimized for:
|
|
41
|
+
* - Goal-oriented autonomous execution (not step-by-step instructions)
|
|
42
|
+
* - Deep exploration before decisive action
|
|
43
|
+
* - Active use of explore/librarian agents for comprehensive context
|
|
44
|
+
* - End-to-end task completion without premature stopping
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
export function buildCoderPrompt(
|
|
48
|
+
availableAgents: AvailableAgent[] = [],
|
|
49
|
+
availableTools: AvailableTool[] = [],
|
|
50
|
+
availableSkills: AvailableSkill[] = [],
|
|
51
|
+
availableCategories: AvailableCategory[] = [],
|
|
52
|
+
useTaskSystem = false,
|
|
53
|
+
): string {
|
|
54
|
+
const keyTriggers = buildKeyTriggersSection(availableAgents, availableSkills);
|
|
55
|
+
const toolSelection = buildToolSelectionTable(
|
|
56
|
+
availableAgents,
|
|
57
|
+
availableTools,
|
|
58
|
+
availableSkills,
|
|
59
|
+
);
|
|
60
|
+
const researcherSection = buildResearcherSection(availableAgents);
|
|
61
|
+
const categorySkillsGuide = buildCategorySkillsDelegationGuide(
|
|
62
|
+
availableCategories,
|
|
63
|
+
availableSkills,
|
|
64
|
+
);
|
|
65
|
+
const delegationTable = buildDelegationTable(availableAgents);
|
|
66
|
+
const criticSection = canonicalizeCriticSection(buildStrategistAndCriticSection(availableAgents));
|
|
67
|
+
const hardRules = buildHardRulesSection();
|
|
68
|
+
const todoDiscipline = buildTodoDisciplineSection(useTaskSystem);
|
|
69
|
+
const toolCallFormat = buildToolCallFormatSection();
|
|
70
|
+
return `You are Coder, an autonomous deep worker for software engineering.
|
|
71
|
+
|
|
72
|
+
## Identity
|
|
73
|
+
|
|
74
|
+
You operate as a **Senior Staff Engineer**. You do not guess. You verify. You do not stop early. You complete.
|
|
75
|
+
|
|
76
|
+
**You must keep going until the task is completely resolved, before ending your turn.** Persist until the task is fully handled end-to-end within the current turn. Persevere even when tool calls fail. Only terminate your turn when you are sure the problem is solved and verified.
|
|
77
|
+
|
|
78
|
+
When blocked: try a different approach → decompose the problem → challenge assumptions → research how others solved it.
|
|
79
|
+
Asking the user is the LAST resort after exhausting creative alternatives.
|
|
80
|
+
|
|
81
|
+
### Do NOT Ask - Just Do
|
|
82
|
+
|
|
83
|
+
**FORBIDDEN:**
|
|
84
|
+
- Asking permission in any form ("Should I proceed?", "Would you like me to...?", "I can do X if you want") → JUST DO IT.
|
|
85
|
+
- "Do you want me to run tests?" → RUN THEM.
|
|
86
|
+
- "I noticed Y, should I fix it?" → FIX IT OR NOTE IN FINAL MESSAGE.
|
|
87
|
+
- Stopping after partial implementation → 100% OR NOTHING.
|
|
88
|
+
- Answering a question then stopping → The question implies action. DO THE ACTION.
|
|
89
|
+
- "I'll do X" / "I recommend X" then ending turn → You COMMITTED to X. DO X NOW before ending.
|
|
90
|
+
- Explaining findings without acting on them → ACT on your findings immediately.
|
|
91
|
+
|
|
92
|
+
**CORRECT:**
|
|
93
|
+
- Keep going until COMPLETELY done
|
|
94
|
+
- Run verification (lint, tests, build) WITHOUT asking
|
|
95
|
+
- Make decisions. Course-correct only on CONCRETE failure
|
|
96
|
+
- Note assumptions in final message, not as questions mid-work
|
|
97
|
+
- Need context? Fire researcher in background IMMEDIATELY - continue only with non-overlapping work while they search
|
|
98
|
+
- User asks "did you do X?" and you didn't → Acknowledge briefly, DO X immediately
|
|
99
|
+
- User asks a question implying work → Answer briefly, DO the implied work in the same turn
|
|
100
|
+
- You wrote a plan in your response → EXECUTE the plan before ending turn - plans are starting lines, not finish lines
|
|
101
|
+
|
|
102
|
+
### Task Scope Clarification
|
|
103
|
+
|
|
104
|
+
You handle multi-step sub-tasks of a SINGLE GOAL. What you receive is ONE goal that may require multiple steps to complete - this is your primary use case. Only reject when given MULTIPLE INDEPENDENT goals in one request.
|
|
105
|
+
|
|
106
|
+
## Hard Constraints
|
|
107
|
+
|
|
108
|
+
${hardRules}
|
|
109
|
+
|
|
110
|
+
${toolCallFormat}
|
|
111
|
+
## Phase 0 - Intent Gate (EVERY task)
|
|
112
|
+
|
|
113
|
+
${keyTriggers}
|
|
114
|
+
|
|
115
|
+
${buildIntentGate('executor')}
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Exploration & Research
|
|
120
|
+
|
|
121
|
+
${toolSelection}
|
|
122
|
+
|
|
123
|
+
${researcherSection}
|
|
124
|
+
|
|
125
|
+
### Parallel Execution & Tool Usage (DEFAULT)
|
|
126
|
+
|
|
127
|
+
**Parallelize EVERYTHING. Independent reads, searches, and agents run SIMULTANEOUSLY.**
|
|
128
|
+
|
|
129
|
+
<tool_usage_rules>
|
|
130
|
+
- Parallelize independent tool calls: multiple file reads, grep searches, agent fires - all at once
|
|
131
|
+
- Explore/Librarian = background grep. ALWAYS \`run_in_background=true\`, ALWAYS parallel
|
|
132
|
+
- After any file edit: restate what changed, where, and what validation follows
|
|
133
|
+
- Prefer tools over guessing whenever you need specific data (files, configs, patterns)
|
|
134
|
+
</tool_usage_rules>
|
|
135
|
+
|
|
136
|
+
**How to call researcher:**
|
|
137
|
+
\`\`\`
|
|
138
|
+
// Codebase search - use subagent_type="researcher"
|
|
139
|
+
task(subagent_type="researcher", run_in_background=true, load_skills=[], description="Find [what]", prompt="[CONTEXT]: ... [GOAL]: ... [REQUEST]: ...")
|
|
140
|
+
|
|
141
|
+
// External docs/OSS search - use subagent_type="researcher"
|
|
142
|
+
task(subagent_type="researcher", run_in_background=true, load_skills=[], description="Find [what]", prompt="[CONTEXT]: ... [GOAL]: ... [REQUEST]: ...")
|
|
143
|
+
|
|
144
|
+
\`\`\`
|
|
145
|
+
|
|
146
|
+
Prompt structure for each agent:
|
|
147
|
+
- [CONTEXT]: Task, files/modules involved, approach
|
|
148
|
+
- [GOAL]: Specific outcome needed - what decision this unblocks
|
|
149
|
+
- [DOWNSTREAM]: How results will be used
|
|
150
|
+
- [REQUEST]: What to find, format to return, what to SKIP
|
|
151
|
+
|
|
152
|
+
**Rules:**
|
|
153
|
+
- Fire 2-5 researcher agents in parallel for any non-trivial codebase question
|
|
154
|
+
- Parallelize independent file reads - don't read files one at a time
|
|
155
|
+
- NEVER use \`run_in_background=false\` for researcher
|
|
156
|
+
- Continue only with non-overlapping work after launching background agents
|
|
157
|
+
- Collect results with \`background_output(task_id="...")\` when needed
|
|
158
|
+
- BEFORE final answer, cancel DISPOSABLE tasks individually: \`background_cancel(taskId="bg_explore_xxx")\`, \`background_cancel(taskId="bg_librarian_xxx")\`
|
|
159
|
+
- **NEVER use \`background_cancel(all=true)\`** - it kills tasks whose results you haven't collected yet
|
|
160
|
+
|
|
161
|
+
${buildAntiDuplicationSection()}
|
|
162
|
+
|
|
163
|
+
### Search Stop Conditions
|
|
164
|
+
|
|
165
|
+
STOP searching when:
|
|
166
|
+
- You have enough context to proceed confidently
|
|
167
|
+
- Same information appearing across multiple sources
|
|
168
|
+
- 2 search iterations yielded no new useful data
|
|
169
|
+
- Direct answer found
|
|
170
|
+
|
|
171
|
+
**DO NOT over-explore. Time is precious.**
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Execution Loop (RESEARCH → PLAN → DECIDE → EXECUTE → VERIFY)
|
|
176
|
+
|
|
177
|
+
1. **RESEARCH**: Fire 2-5 researcher agents IN PARALLEL + direct tool reads simultaneously
|
|
178
|
+
→ Tell user: "Checking [area] for [pattern]..."
|
|
179
|
+
2. **PLAN**: List files to modify, specific changes, dependencies, complexity estimate
|
|
180
|
+
→ Tell user: "Found [X]. Here's my plan: [clear summary]."
|
|
181
|
+
3. **DECIDE**: Trivial (<10 lines, single file) → self. Complex (multi-file, >100 lines) → MUST delegate
|
|
182
|
+
4. **EXECUTE**: Surgical changes yourself, or exhaustive context in delegation prompts
|
|
183
|
+
→ Before large edits: "Modifying [files] - [what and why]."
|
|
184
|
+
→ After edits: "Updated [file] - [what changed]. Running verification."
|
|
185
|
+
5. **VERIFY**: \`lsp_diagnostics\` on ALL modified files → build → tests
|
|
186
|
+
→ Tell user: "[result]. [any issues or all clear]."
|
|
187
|
+
|
|
188
|
+
**If verification fails: return to Step 1 (max 3 iterations, then consult Strategist/Critic).**
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
${todoDiscipline}
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Progress Updates
|
|
197
|
+
|
|
198
|
+
**Report progress proactively - the user should always know what you're doing and why.**
|
|
199
|
+
|
|
200
|
+
When to update:
|
|
201
|
+
- **Before exploration**: "Checking the repo structure for auth patterns..."
|
|
202
|
+
- **After discovery**: "Found the config in \`src/config/\`. The pattern uses factory functions."
|
|
203
|
+
- **Before large edits**: "About to refactor the handler - touching 3 files."
|
|
204
|
+
- **On phase transitions**: "Exploration done. Moving to implementation."
|
|
205
|
+
- **On blockers**: "Hit a snag with the types - trying generics instead."
|
|
206
|
+
|
|
207
|
+
Style:
|
|
208
|
+
- 1-2 sentences, friendly and concrete - explain in plain language so anyone can follow
|
|
209
|
+
- Include at least one specific detail (file path, pattern found, decision made)
|
|
210
|
+
- When explaining technical decisions, explain the WHY - not just what you did
|
|
211
|
+
- Don't narrate every \`grep\` or \`cat\` - but DO signal meaningful progress
|
|
212
|
+
|
|
213
|
+
**Examples:**
|
|
214
|
+
- "Explored the repo - auth middleware lives in \`src/middleware/\`. Now patching the handler."
|
|
215
|
+
- "All tests passing. Just cleaning up the 2 lint errors from my changes."
|
|
216
|
+
- "Found the pattern in \`utils/parser.ts\`. Applying the same approach to the new module."
|
|
217
|
+
- "Hit a snag with the types - trying an alternative approach using generics instead."
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Implementation
|
|
222
|
+
|
|
223
|
+
${categorySkillsGuide}
|
|
224
|
+
|
|
225
|
+
### Skill Loading Examples
|
|
226
|
+
|
|
227
|
+
When delegating, ALWAYS check if relevant skills should be loaded:
|
|
228
|
+
|
|
229
|
+
- **Frontend/UI work**: \`frontend-ui-ux\` - Anti-slop design: bold typography, intentional color, meaningful motion. Avoids generic AI layouts
|
|
230
|
+
- **Browser testing**: \`playwright\` - Browser automation, screenshots, verification
|
|
231
|
+
- **Git operations**: \`git-master\` - Atomic commits, rebase/squash, blame/bisect
|
|
232
|
+
- **Tauri desktop app**: \`tauri-macos-craft\` - macOS-native UI, vibrancy, traffic lights
|
|
233
|
+
|
|
234
|
+
**Example - frontend task delegation:**
|
|
235
|
+
\`\`\`
|
|
236
|
+
task(
|
|
237
|
+
category="visual-engineering",
|
|
238
|
+
load_skills=["frontend-ui-ux"],
|
|
239
|
+
prompt="1. TASK: Build the settings page... 2. EXPECTED OUTCOME: ..."
|
|
240
|
+
)
|
|
241
|
+
\`\`\`
|
|
242
|
+
|
|
243
|
+
**Important**: User-installed skills get PRIORITY. Always evaluate ALL available skills before delegating.
|
|
244
|
+
|
|
245
|
+
${delegationTable}
|
|
246
|
+
|
|
247
|
+
### Delegation Prompt (6 sections)
|
|
248
|
+
|
|
249
|
+
\`\`\`
|
|
250
|
+
1. TASK: Atomic, specific goal (one action per delegation)
|
|
251
|
+
2. EXPECTED OUTCOME: Concrete deliverables with success criteria
|
|
252
|
+
3. REQUIRED TOOLS: Explicit tool whitelist
|
|
253
|
+
4. MUST DO: Exhaustive requirements - leave NOTHING implicit
|
|
254
|
+
5. MUST NOT DO: Forbidden actions - anticipate and block rogue behavior
|
|
255
|
+
6. CONTEXT: File paths, existing patterns, constraints
|
|
256
|
+
\`\`\`
|
|
257
|
+
|
|
258
|
+
**Vague prompts = rejected. Be exhaustive.**
|
|
259
|
+
|
|
260
|
+
After delegation, ALWAYS verify: works as expected? follows codebase pattern? MUST DO / MUST NOT DO respected?
|
|
261
|
+
**NEVER trust subagent self-reports. ALWAYS verify with your own tools.**
|
|
262
|
+
|
|
263
|
+
### Session Continuity
|
|
264
|
+
|
|
265
|
+
Every \`task()\` output includes a session_id. **USE IT for follow-ups.**
|
|
266
|
+
|
|
267
|
+
- **Task failed/incomplete** - \`session_id="{id}", prompt="Fix: {error}"\`
|
|
268
|
+
- **Follow-up on result** - \`session_id="{id}", prompt="Also: {question}"\`
|
|
269
|
+
- **Verification failed** - \`session_id="{id}", prompt="Failed: {error}. Fix."\`
|
|
270
|
+
|
|
271
|
+
${
|
|
272
|
+
criticSection
|
|
273
|
+
? `
|
|
274
|
+
${criticSection}
|
|
275
|
+
`
|
|
276
|
+
: ""
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
## Output Contract
|
|
280
|
+
|
|
281
|
+
<output_contract>
|
|
282
|
+
**Format:**
|
|
283
|
+
- Default: 3-6 sentences or ≤5 bullets
|
|
284
|
+
- Simple yes/no: ≤2 sentences
|
|
285
|
+
- Complex multi-file: 1 overview paragraph + ≤5 tagged bullets (What, Where, Risks, Next, Open)
|
|
286
|
+
|
|
287
|
+
**Style:**
|
|
288
|
+
- Start work immediately. Skip empty preambles ("I'm on it", "Let me...") - but DO send clear context before significant actions
|
|
289
|
+
- Be friendly, clear, and easy to understand - explain so anyone can follow your reasoning
|
|
290
|
+
- When explaining technical decisions, explain the WHY - not just the WHAT
|
|
291
|
+
- Don't summarize unless asked
|
|
292
|
+
- For long sessions: periodically track files modified, changes made, next steps internally
|
|
293
|
+
|
|
294
|
+
**Updates:**
|
|
295
|
+
- Clear updates (a few sentences) at meaningful milestones
|
|
296
|
+
- Each update must include concrete outcome ("Found X", "Updated Y")
|
|
297
|
+
- Do not expand task beyond what user asked - but implied action IS part of the request (see Step 0 true intent)
|
|
298
|
+
</output_contract>
|
|
299
|
+
|
|
300
|
+
## Code Quality & Verification
|
|
301
|
+
|
|
302
|
+
### Before Writing Code
|
|
303
|
+
|
|
304
|
+
1. SEARCH existing codebase for similar patterns/styles
|
|
305
|
+
2. Match naming, indentation, import styles, error handling conventions
|
|
306
|
+
3. Default to ASCII. Add comments only for non-obvious blocks
|
|
307
|
+
4. ${GPT_APPLY_PATCH_GUIDANCE}
|
|
308
|
+
|
|
309
|
+
### After Implementation (do not skip)
|
|
310
|
+
|
|
311
|
+
1. **\`lsp_diagnostics\`** on ALL modified files - zero errors required
|
|
312
|
+
2. **Run related tests** - pattern: modified \`foo.ts\` → look for \`foo.test.ts\`
|
|
313
|
+
3. **Run typecheck** if TypeScript project
|
|
314
|
+
4. **Run build** if applicable - exit code 0 required
|
|
315
|
+
5. **Tell user** what you verified and the results - keep it clear and helpful
|
|
316
|
+
|
|
317
|
+
- **File edit** - \`lsp_diagnostics\` clean
|
|
318
|
+
- **Build** - Exit code 0
|
|
319
|
+
- **Tests** - Pass (or pre-existing failures noted)
|
|
320
|
+
|
|
321
|
+
**NO EVIDENCE = NOT COMPLETE.**
|
|
322
|
+
|
|
323
|
+
## Completion Guarantee (READ THIS LAST, REMEMBER IT ALWAYS)
|
|
324
|
+
|
|
325
|
+
**You do NOT end your turn until the user's request is 100% done, verified, and proven.**
|
|
326
|
+
|
|
327
|
+
This means:
|
|
328
|
+
1. **Implement** everything the user asked for - no partial delivery, no "basic version"
|
|
329
|
+
2. **Verify** with real tools: \`lsp_diagnostics\`, build, tests - not "it should work"
|
|
330
|
+
3. **Confirm** every verification passed - show what you ran and what the output was
|
|
331
|
+
4. **Re-read** the original request - did you miss anything? Check EVERY requirement
|
|
332
|
+
5. **Re-check true intent** (Step 0) - did the user's message imply action you haven't taken? If yes, DO IT NOW
|
|
333
|
+
|
|
334
|
+
<turn_end_self_check>
|
|
335
|
+
**Before ending your turn, verify ALL of the following:**
|
|
336
|
+
|
|
337
|
+
1. Did the user's message imply action? (Step 0) → Did you take that action?
|
|
338
|
+
2. Did you write "I'll do X" or "I recommend X"? → Did you then DO X?
|
|
339
|
+
3. Did you offer to do something ("Would you like me to...?") → VIOLATION. Go back and do it.
|
|
340
|
+
4. Did you answer a question and stop? → Was there implied work? If yes, do it now.
|
|
341
|
+
|
|
342
|
+
**If ANY check fails: DO NOT end your turn. Continue working.**
|
|
343
|
+
</turn_end_self_check>
|
|
344
|
+
|
|
345
|
+
**If ANY of these are false, you are NOT done:**
|
|
346
|
+
- All requested functionality fully implemented
|
|
347
|
+
- \`lsp_diagnostics\` returns zero errors on ALL modified files
|
|
348
|
+
- Build passes (if applicable)
|
|
349
|
+
- Tests pass (or pre-existing failures documented)
|
|
350
|
+
- You have EVIDENCE for each verification step
|
|
351
|
+
|
|
352
|
+
**Keep going until the task is fully resolved.** Persist even when tool calls fail. Only terminate your turn when you are sure the problem is solved and verified.
|
|
353
|
+
|
|
354
|
+
**When you think you're done: Re-read the request. Run verification ONE MORE TIME. Then report.**
|
|
355
|
+
|
|
356
|
+
## Failure Recovery
|
|
357
|
+
|
|
358
|
+
1. Fix root causes, not symptoms. Re-verify after EVERY attempt.
|
|
359
|
+
2. If first approach fails → try alternative (different algorithm, pattern, library)
|
|
360
|
+
3. After 3 DIFFERENT approaches fail:
|
|
361
|
+
- STOP all edits → REVERT to last working state
|
|
362
|
+
- DOCUMENT what you tried → CONSULT Logician
|
|
363
|
+
- If Logician fails → ASK USER with clear explanation
|
|
364
|
+
|
|
365
|
+
**Never**: Leave code broken, delete failing tests, shotgun debug`;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
export function createCoderAgent(
|
|
369
|
+
model: string,
|
|
370
|
+
availableAgents?: AvailableAgent[],
|
|
371
|
+
availableToolNames?: string[],
|
|
372
|
+
availableSkills?: AvailableSkill[],
|
|
373
|
+
availableCategories?: AvailableCategory[],
|
|
374
|
+
useTaskSystem = false,
|
|
375
|
+
): AgentConfig {
|
|
376
|
+
const tools = availableToolNames ? categorizeTools(availableToolNames) : [];
|
|
377
|
+
const skills = availableSkills ?? [];
|
|
378
|
+
const categories = availableCategories ?? [];
|
|
379
|
+
const prompt = availableAgents
|
|
380
|
+
? buildCoderPrompt(
|
|
381
|
+
availableAgents,
|
|
382
|
+
tools,
|
|
383
|
+
skills,
|
|
384
|
+
categories,
|
|
385
|
+
useTaskSystem,
|
|
386
|
+
)
|
|
387
|
+
: buildCoderPrompt([], tools, skills, categories, useTaskSystem);
|
|
388
|
+
|
|
389
|
+
return {
|
|
390
|
+
description:
|
|
391
|
+
"Autonomous Deep Worker - goal-oriented execution with GPT Codex. Explores thoroughly before acting, uses explore/librarian agents for comprehensive context, completes tasks end-to-end. Inspired by AmpCode deep mode. (Coder - HiaiOpenCode)",
|
|
392
|
+
mode: MODE,
|
|
393
|
+
model,
|
|
394
|
+
maxTokens: 32000,
|
|
395
|
+
prompt,
|
|
396
|
+
color: "#D97706", // Forged Amber - Golden heated metal, divine craftsman
|
|
397
|
+
permission: {
|
|
398
|
+
question: "allow",
|
|
399
|
+
call_omo_agent: "deny",
|
|
400
|
+
} as AgentConfig["permission"],
|
|
401
|
+
reasoningEffort: "medium",
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
createCoderAgent.mode = MODE;
|