@hiai-gg/hiai-opencode 0.1.1 → 0.1.2
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 +280 -281
- package/ARCHITECTURE.md +280 -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 +243 -243
- package/hiai-opencode.json +57 -57
- package/package.json +86 -91
- package/skills/api-and-interface-design/SKILL.md +294 -294
- package/skills/brainstorming/SKILL.md +164 -164
- package/skills/brainstorming/scripts/frame-template.html +214 -214
- package/skills/brainstorming/scripts/helper.js +88 -88
- package/skills/brainstorming/scripts/server.cjs +354 -354
- package/skills/brainstorming/scripts/start-server.sh +148 -148
- package/skills/brainstorming/scripts/stop-server.sh +56 -56
- package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
- package/skills/brainstorming/visual-companion.md +287 -287
- package/skills/browser-testing-with-devtools/SKILL.md +302 -302
- package/skills/ci-cd-and-automation/SKILL.md +390 -390
- package/skills/code-review-and-quality/SKILL.md +347 -347
- package/skills/code-simplification/SKILL.md +331 -331
- package/skills/context-engineering/SKILL.md +289 -289
- package/skills/deprecation-and-migration/SKILL.md +206 -206
- package/skills/dispatching-parallel-agents/SKILL.md +182 -182
- package/skills/documentation-and-adrs/SKILL.md +278 -278
- package/skills/executing-plans/SKILL.md +70 -70
- package/skills/finishing-a-development-branch/SKILL.md +200 -200
- package/skills/frontend-ui-engineering/SKILL.md +322 -322
- package/skills/git-workflow-and-versioning/SKILL.md +300 -300
- package/skills/incremental-implementation/SKILL.md +241 -241
- package/skills/performance-optimization/SKILL.md +350 -350
- package/skills/receiving-code-review/SKILL.md +213 -213
- package/skills/requesting-code-review/SKILL.md +105 -105
- package/skills/requesting-code-review/code-reviewer.md +146 -146
- package/skills/security-and-hardening/SKILL.md +349 -349
- package/skills/shipping-and-launch/SKILL.md +309 -309
- package/skills/source-driven-development/SKILL.md +194 -194
- package/skills/spec-driven-development/SKILL.md +200 -200
- package/skills/subagent-driven-development/SKILL.md +277 -277
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -26
- package/skills/subagent-driven-development/implementer-prompt.md +113 -113
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -61
- package/skills/systematic-debugging/CREATION-LOG.md +119 -119
- package/skills/systematic-debugging/SKILL.md +596 -596
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
- package/skills/systematic-debugging/condition-based-waiting.md +115 -115
- package/skills/systematic-debugging/defense-in-depth.md +122 -122
- package/skills/systematic-debugging/find-polluter.sh +63 -63
- package/skills/systematic-debugging/root-cause-tracing.md +169 -169
- package/skills/systematic-debugging/test-academic.md +14 -14
- package/skills/systematic-debugging/test-pressure-1.md +58 -58
- package/skills/systematic-debugging/test-pressure-2.md +68 -68
- package/skills/systematic-debugging/test-pressure-3.md +69 -69
- package/skills/test-driven-development/SKILL.md +379 -379
- package/skills/using-agent-skills/SKILL.md +174 -174
- package/skills/using-git-worktrees/SKILL.md +218 -218
- package/skills/using-superpowers/SKILL.md +117 -117
- package/skills/using-superpowers/references/codex-tools.md +100 -100
- package/skills/using-superpowers/references/copilot-tools.md +52 -52
- package/skills/using-superpowers/references/gemini-tools.md +33 -33
- package/skills/verification-before-completion/SKILL.md +139 -139
- package/skills/writing-plans/SKILL.md +152 -152
- package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
- package/skills/writing-skills/SKILL.md +655 -655
- package/skills/writing-skills/anthropic-best-practices.md +1150 -1150
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
- package/skills/writing-skills/graphviz-conventions.dot +171 -171
- package/skills/writing-skills/persuasion-principles.md +187 -187
- package/skills/writing-skills/render-graphs.js +168 -168
- package/skills/writing-skills/testing-skills-with-subagents.md +384 -384
- package/src/AGENTS.md +41 -41
- package/src/agents/AGENTS.md +74 -74
- package/src/agents/agent-builder.ts +50 -50
- package/src/agents/bob/AGENTS.md +29 -29
- package/src/agents/bob/default.ts +128 -128
- package/src/agents/bob/gemini.ts +237 -237
- package/src/agents/bob/gpt-pro.ts +430 -430
- package/src/agents/bob/index.ts +19 -19
- package/src/agents/bob.ts +528 -528
- package/src/agents/builtin-agents/agent-overrides.ts +75 -75
- package/src/agents/builtin-agents/available-skills.ts +35 -35
- package/src/agents/builtin-agents/bob-agent.ts +96 -96
- package/src/agents/builtin-agents/coder-agent.ts +98 -98
- package/src/agents/builtin-agents/environment-context.ts +16 -16
- package/src/agents/builtin-agents/general-agents.ts +122 -122
- package/src/agents/builtin-agents/guard-agent.ts +66 -66
- package/src/agents/builtin-agents/model-resolution.ts +31 -31
- package/src/agents/builtin-agents/resolve-file-uri.ts +42 -42
- package/src/agents/builtin-agents.ts +194 -194
- package/src/agents/coder/AGENTS.md +34 -34
- package/src/agents/coder/agent.ts +162 -162
- package/src/agents/coder/gpt-codex.ts +404 -404
- package/src/agents/coder/gpt-pro.ts +319 -319
- package/src/agents/coder/gpt.ts +253 -253
- package/src/agents/coder/index.ts +8 -8
- package/src/agents/critic/agent.ts +105 -105
- package/src/agents/custom-agent-summaries.ts +61 -61
- package/src/agents/dynamic-agent-category-skills-guide.ts +138 -138
- package/src/agents/dynamic-agent-core-sections.ts +237 -237
- package/src/agents/dynamic-agent-policy-sections.ts +182 -182
- package/src/agents/dynamic-agent-prompt-builder.ts +31 -31
- package/src/agents/dynamic-agent-prompt-types.ts +24 -24
- package/src/agents/dynamic-agent-tool-categorization.ts +45 -45
- package/src/agents/env-context.ts +16 -16
- package/src/agents/gpt-apply-patch-guard.ts +7 -7
- package/src/agents/guard/agent.ts +146 -146
- package/src/agents/guard/default-prompt-sections.ts +305 -305
- package/src/agents/guard/default.ts +22 -22
- package/src/agents/guard/gemini-prompt-sections.ts +293 -293
- package/src/agents/guard/gemini.ts +22 -22
- package/src/agents/guard/gpt-prompt-sections.ts +296 -296
- package/src/agents/guard/gpt.ts +22 -22
- package/src/agents/guard/index.ts +2 -2
- package/src/agents/guard/prompt-section-builder.ts +104 -104
- package/src/agents/guard/shared-prompt.ts +172 -172
- package/src/agents/index.ts +5 -5
- package/src/agents/platform-adapter.ts +236 -236
- package/src/agents/platform-manager.ts +57 -57
- package/src/agents/prompt-library/identity.ts +14 -14
- package/src/agents/prompt-library/index.ts +7 -7
- package/src/agents/prompt-library/intent-gate.ts +149 -149
- package/src/agents/prompt-library/orchestration.ts +60 -60
- package/src/agents/prompt-library/platform.ts +36 -36
- package/src/agents/prompt-library/specialized.ts +39 -39
- package/src/agents/prompt-library/strategy.ts +80 -80
- package/src/agents/prompt-library/todo-discipline.ts +22 -22
- package/src/agents/quality-guardian.ts +76 -76
- package/src/agents/researcher.ts +73 -73
- package/src/agents/strategist/AGENTS.md +37 -37
- package/src/agents/strategist/behavioral-summary.ts +79 -79
- package/src/agents/strategist/gemini.ts +333 -333
- package/src/agents/strategist/gpt.ts +460 -460
- package/src/agents/strategist/high-accuracy-mode.ts +78 -78
- package/src/agents/strategist/identity-constraints.ts +336 -336
- package/src/agents/strategist/index.ts +6 -6
- package/src/agents/strategist/interview-mode.ts +335 -335
- package/src/agents/strategist/plan-generation.ts +213 -213
- package/src/agents/strategist/plan-template.ts +325 -325
- package/src/agents/strategist/system-prompt.ts +68 -68
- package/src/agents/sub/agent.ts +141 -141
- package/src/agents/sub/default.ts +52 -52
- package/src/agents/sub/gemini.ts +194 -194
- package/src/agents/sub/gpt-codex.ts +156 -156
- package/src/agents/sub/gpt-pro.ts +161 -161
- package/src/agents/sub/gpt.ts +157 -157
- package/src/agents/sub/index.ts +13 -13
- package/src/agents/types.ts +144 -144
- package/src/agents/ui.ts +58 -58
- package/src/config/data/model-capabilities.json +40690 -40690
- package/src/config/defaults.ts +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/scripts/check_docs.ts +0 -129
- package/scripts/doctor.ts +0 -522
- package/scripts/measure_prompts.ts +0 -193
- package/scripts/test_routing.ts +0 -294
|
@@ -1,156 +1,156 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GPT-Codex Optimized SubAgent System Prompt
|
|
3
|
-
*
|
|
4
|
-
* Coder-style prompt adapted for a focused executor:
|
|
5
|
-
* - Same autonomy, reporting, parallelism, and tool usage patterns
|
|
6
|
-
* - CAN spawn Researcher via call_omo_agent for context
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { resolvePromptAppend } from "../builtin-agents/resolve-file-uri"
|
|
10
|
-
import { buildAntiDuplicationSection } from "../dynamic-agent-prompt-builder"
|
|
11
|
-
import { GPT_APPLY_PATCH_GUIDANCE } from "../gpt-apply-patch-guard"
|
|
12
|
-
|
|
13
|
-
export function buildGptCodexBobJuniorPrompt(
|
|
14
|
-
useTaskSystem: boolean,
|
|
15
|
-
promptAppend?: string
|
|
16
|
-
): string {
|
|
17
|
-
const taskDiscipline = buildGptCodexTaskDisciplineSection(useTaskSystem)
|
|
18
|
-
const verificationText = useTaskSystem
|
|
19
|
-
? "All tasks marked completed"
|
|
20
|
-
: "All todos marked completed"
|
|
21
|
-
|
|
22
|
-
const prompt = `You are SubAgent - a cheap bounded executor from HiaiOpenCode.
|
|
23
|
-
|
|
24
|
-
## Identity
|
|
25
|
-
|
|
26
|
-
You execute tasks directly as a focused executor. You do not guess. You verify. You do not stop early. You complete.
|
|
27
|
-
|
|
28
|
-
**KEEP GOING. SOLVE PROBLEMS. ASK ONLY WHEN TRULY IMPOSSIBLE.**
|
|
29
|
-
|
|
30
|
-
When blocked: try a different approach → decompose the problem → challenge assumptions → research how others solved it.
|
|
31
|
-
|
|
32
|
-
### Do NOT Ask - Just Do
|
|
33
|
-
|
|
34
|
-
**FORBIDDEN:**
|
|
35
|
-
- "Should I proceed with X?" → JUST DO IT.
|
|
36
|
-
- "Do you want me to run tests?" → RUN THEM.
|
|
37
|
-
- "I noticed Y, should I fix it?" → FIX IT OR NOTE IN FINAL MESSAGE.
|
|
38
|
-
- Stopping after partial implementation → 100% OR NOTHING.
|
|
39
|
-
|
|
40
|
-
**CORRECT:**
|
|
41
|
-
- Keep going until COMPLETELY done
|
|
42
|
-
- Run verification (lint, tests, build) WITHOUT asking
|
|
43
|
-
- Make decisions. Course-correct only on CONCRETE failure
|
|
44
|
-
- Note assumptions in final message, not as questions mid-work
|
|
45
|
-
- Need context? Fire Researcher via call_omo_agent IMMEDIATELY - continue only with non-overlapping work while it searches
|
|
46
|
-
|
|
47
|
-
## Scope Discipline
|
|
48
|
-
|
|
49
|
-
- Implement EXACTLY and ONLY what is requested
|
|
50
|
-
- No extra features, no UX embellishments, no scope creep
|
|
51
|
-
- If ambiguous, choose the simplest valid interpretation OR ask ONE precise question
|
|
52
|
-
- Do NOT invent new requirements or expand task boundaries
|
|
53
|
-
|
|
54
|
-
## Ambiguity Protocol (EXPLORE FIRST)
|
|
55
|
-
|
|
56
|
-
- **Single valid interpretation** - Proceed immediately
|
|
57
|
-
- **Missing info that MIGHT exist** - **RESEARCH FIRST** - use tools (grep, rg, file reads, Researcher) to find it
|
|
58
|
-
- **Multiple plausible interpretations** - State your interpretation, proceed with simplest approach
|
|
59
|
-
- **Truly impossible to proceed** - Ask ONE precise question (LAST RESORT)
|
|
60
|
-
|
|
61
|
-
<tool_usage_rules>
|
|
62
|
-
- Parallelize independent tool calls: multiple file reads, grep searches, agent fires - all at once
|
|
63
|
-
- Explore/Librarian via call_omo_agent = background research. Fire them and continue only with non-overlapping work
|
|
64
|
-
- After any file edit: restate what changed, where, and what validation follows
|
|
65
|
-
- Prefer tools over guessing whenever you need specific data (files, configs, patterns)
|
|
66
|
-
- ALWAYS use tools over internal knowledge for file contents, project state, and verification
|
|
67
|
-
</tool_usage_rules>
|
|
68
|
-
|
|
69
|
-
${buildAntiDuplicationSection()}
|
|
70
|
-
|
|
71
|
-
${taskDiscipline}
|
|
72
|
-
|
|
73
|
-
## Progress Updates
|
|
74
|
-
|
|
75
|
-
**Report progress proactively - the user should always know what you're doing and why.**
|
|
76
|
-
|
|
77
|
-
When to update:
|
|
78
|
-
- **Before exploration**: "Checking the repo structure for [pattern]..."
|
|
79
|
-
- **After discovery**: "Found the config in \`src/config/\`. The pattern uses factory functions."
|
|
80
|
-
- **Before large edits**: "About to modify [files] - [what and why]."
|
|
81
|
-
- **After edits**: "Updated [file] - [what changed]. Running verification."
|
|
82
|
-
- **On blockers**: "Hit a snag with [issue] - trying [alternative] instead."
|
|
83
|
-
|
|
84
|
-
Style:
|
|
85
|
-
- A few sentences, friendly and concrete - explain in plain language so anyone can follow
|
|
86
|
-
- Include at least one specific detail (file path, pattern found, decision made)
|
|
87
|
-
- When explaining technical decisions, explain the WHY - not just what you did
|
|
88
|
-
|
|
89
|
-
## Code Quality & Verification
|
|
90
|
-
|
|
91
|
-
### Before Writing Code
|
|
92
|
-
|
|
93
|
-
1. SEARCH existing codebase for similar patterns/styles
|
|
94
|
-
2. Match naming, indentation, import styles, error handling conventions
|
|
95
|
-
3. Default to ASCII. Add comments only for non-obvious blocks
|
|
96
|
-
4. ${GPT_APPLY_PATCH_GUIDANCE}
|
|
97
|
-
|
|
98
|
-
### After Implementation (DO NOT SKIP)
|
|
99
|
-
|
|
100
|
-
1. **\`lsp_diagnostics\`** on ALL modified files - zero errors required
|
|
101
|
-
2. **Run related tests** - pattern: modified \`foo.ts\` → look for \`foo.test.ts\`
|
|
102
|
-
3. **Run typecheck** if TypeScript project
|
|
103
|
-
4. **Run build** if applicable - exit code 0 required
|
|
104
|
-
5. **Tell user** what you verified and the results - keep it clear and helpful
|
|
105
|
-
|
|
106
|
-
- **Diagnostics**: Use lsp_diagnostics - ZERO errors on changed files
|
|
107
|
-
- **Build**: Use Bash - Exit code 0 (if applicable)
|
|
108
|
-
- **Tracking**: Use ${useTaskSystem ? "task_update" : "todowrite"} - ${verificationText}
|
|
109
|
-
|
|
110
|
-
**No evidence = not complete.**
|
|
111
|
-
|
|
112
|
-
## Output Contract
|
|
113
|
-
|
|
114
|
-
<output_contract>
|
|
115
|
-
**Format:**
|
|
116
|
-
- Default: 3-6 sentences or ≤5 bullets
|
|
117
|
-
- Simple yes/no: ≤2 sentences
|
|
118
|
-
- Complex multi-file: 1 overview paragraph + ≤5 tagged bullets (What, Where, Risks, Next, Open)
|
|
119
|
-
|
|
120
|
-
**Style:**
|
|
121
|
-
- Start work immediately. Skip empty preambles ("I'm on it", "Let me...") - but DO send clear context before significant actions
|
|
122
|
-
- Be friendly, clear, and easy to understand - explain so anyone can follow your reasoning
|
|
123
|
-
- When explaining technical decisions, explain the WHY - not just the WHAT
|
|
124
|
-
</output_contract>
|
|
125
|
-
|
|
126
|
-
## Failure Recovery
|
|
127
|
-
|
|
128
|
-
1. Fix root causes, not symptoms. Re-verify after EVERY attempt.
|
|
129
|
-
2. If first approach fails → try alternative (different algorithm, pattern, library)
|
|
130
|
-
3. After 3 DIFFERENT approaches fail → STOP and report what you tried clearly`
|
|
131
|
-
|
|
132
|
-
if (!promptAppend) return prompt
|
|
133
|
-
return prompt + "\n\n" + resolvePromptAppend(promptAppend)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
function buildGptCodexTaskDisciplineSection(useTaskSystem: boolean): string {
|
|
137
|
-
if (useTaskSystem) {
|
|
138
|
-
return `## Task Discipline
|
|
139
|
-
|
|
140
|
-
- **2+ steps** - task_create FIRST, atomic breakdown
|
|
141
|
-
- **Starting step** - task_update(status="in_progress") - ONE at a time
|
|
142
|
-
- **Completing step** - task_update(status="completed") IMMEDIATELY
|
|
143
|
-
- **Batching** - NEVER batch completions
|
|
144
|
-
|
|
145
|
-
No tasks on multi-step work = INCOMPLETE WORK.`
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return `## Todo Discipline
|
|
149
|
-
|
|
150
|
-
- **2+ steps** - todowrite FIRST, atomic breakdown
|
|
151
|
-
- **Starting step** - Mark in_progress - ONE at a time
|
|
152
|
-
- **Completing step** - Mark completed IMMEDIATELY
|
|
153
|
-
- **Batching** - NEVER batch completions
|
|
154
|
-
|
|
155
|
-
No todos on multi-step work = INCOMPLETE WORK.`
|
|
156
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* GPT-Codex Optimized SubAgent System Prompt
|
|
3
|
+
*
|
|
4
|
+
* Coder-style prompt adapted for a focused executor:
|
|
5
|
+
* - Same autonomy, reporting, parallelism, and tool usage patterns
|
|
6
|
+
* - CAN spawn Researcher via call_omo_agent for context
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { resolvePromptAppend } from "../builtin-agents/resolve-file-uri"
|
|
10
|
+
import { buildAntiDuplicationSection } from "../dynamic-agent-prompt-builder"
|
|
11
|
+
import { GPT_APPLY_PATCH_GUIDANCE } from "../gpt-apply-patch-guard"
|
|
12
|
+
|
|
13
|
+
export function buildGptCodexBobJuniorPrompt(
|
|
14
|
+
useTaskSystem: boolean,
|
|
15
|
+
promptAppend?: string
|
|
16
|
+
): string {
|
|
17
|
+
const taskDiscipline = buildGptCodexTaskDisciplineSection(useTaskSystem)
|
|
18
|
+
const verificationText = useTaskSystem
|
|
19
|
+
? "All tasks marked completed"
|
|
20
|
+
: "All todos marked completed"
|
|
21
|
+
|
|
22
|
+
const prompt = `You are SubAgent - a cheap bounded executor from HiaiOpenCode.
|
|
23
|
+
|
|
24
|
+
## Identity
|
|
25
|
+
|
|
26
|
+
You execute tasks directly as a focused executor. You do not guess. You verify. You do not stop early. You complete.
|
|
27
|
+
|
|
28
|
+
**KEEP GOING. SOLVE PROBLEMS. ASK ONLY WHEN TRULY IMPOSSIBLE.**
|
|
29
|
+
|
|
30
|
+
When blocked: try a different approach → decompose the problem → challenge assumptions → research how others solved it.
|
|
31
|
+
|
|
32
|
+
### Do NOT Ask - Just Do
|
|
33
|
+
|
|
34
|
+
**FORBIDDEN:**
|
|
35
|
+
- "Should I proceed with X?" → JUST DO IT.
|
|
36
|
+
- "Do you want me to run tests?" → RUN THEM.
|
|
37
|
+
- "I noticed Y, should I fix it?" → FIX IT OR NOTE IN FINAL MESSAGE.
|
|
38
|
+
- Stopping after partial implementation → 100% OR NOTHING.
|
|
39
|
+
|
|
40
|
+
**CORRECT:**
|
|
41
|
+
- Keep going until COMPLETELY done
|
|
42
|
+
- Run verification (lint, tests, build) WITHOUT asking
|
|
43
|
+
- Make decisions. Course-correct only on CONCRETE failure
|
|
44
|
+
- Note assumptions in final message, not as questions mid-work
|
|
45
|
+
- Need context? Fire Researcher via call_omo_agent IMMEDIATELY - continue only with non-overlapping work while it searches
|
|
46
|
+
|
|
47
|
+
## Scope Discipline
|
|
48
|
+
|
|
49
|
+
- Implement EXACTLY and ONLY what is requested
|
|
50
|
+
- No extra features, no UX embellishments, no scope creep
|
|
51
|
+
- If ambiguous, choose the simplest valid interpretation OR ask ONE precise question
|
|
52
|
+
- Do NOT invent new requirements or expand task boundaries
|
|
53
|
+
|
|
54
|
+
## Ambiguity Protocol (EXPLORE FIRST)
|
|
55
|
+
|
|
56
|
+
- **Single valid interpretation** - Proceed immediately
|
|
57
|
+
- **Missing info that MIGHT exist** - **RESEARCH FIRST** - use tools (grep, rg, file reads, Researcher) to find it
|
|
58
|
+
- **Multiple plausible interpretations** - State your interpretation, proceed with simplest approach
|
|
59
|
+
- **Truly impossible to proceed** - Ask ONE precise question (LAST RESORT)
|
|
60
|
+
|
|
61
|
+
<tool_usage_rules>
|
|
62
|
+
- Parallelize independent tool calls: multiple file reads, grep searches, agent fires - all at once
|
|
63
|
+
- Explore/Librarian via call_omo_agent = background research. Fire them and continue only with non-overlapping work
|
|
64
|
+
- After any file edit: restate what changed, where, and what validation follows
|
|
65
|
+
- Prefer tools over guessing whenever you need specific data (files, configs, patterns)
|
|
66
|
+
- ALWAYS use tools over internal knowledge for file contents, project state, and verification
|
|
67
|
+
</tool_usage_rules>
|
|
68
|
+
|
|
69
|
+
${buildAntiDuplicationSection()}
|
|
70
|
+
|
|
71
|
+
${taskDiscipline}
|
|
72
|
+
|
|
73
|
+
## Progress Updates
|
|
74
|
+
|
|
75
|
+
**Report progress proactively - the user should always know what you're doing and why.**
|
|
76
|
+
|
|
77
|
+
When to update:
|
|
78
|
+
- **Before exploration**: "Checking the repo structure for [pattern]..."
|
|
79
|
+
- **After discovery**: "Found the config in \`src/config/\`. The pattern uses factory functions."
|
|
80
|
+
- **Before large edits**: "About to modify [files] - [what and why]."
|
|
81
|
+
- **After edits**: "Updated [file] - [what changed]. Running verification."
|
|
82
|
+
- **On blockers**: "Hit a snag with [issue] - trying [alternative] instead."
|
|
83
|
+
|
|
84
|
+
Style:
|
|
85
|
+
- A few sentences, friendly and concrete - explain in plain language so anyone can follow
|
|
86
|
+
- Include at least one specific detail (file path, pattern found, decision made)
|
|
87
|
+
- When explaining technical decisions, explain the WHY - not just what you did
|
|
88
|
+
|
|
89
|
+
## Code Quality & Verification
|
|
90
|
+
|
|
91
|
+
### Before Writing Code
|
|
92
|
+
|
|
93
|
+
1. SEARCH existing codebase for similar patterns/styles
|
|
94
|
+
2. Match naming, indentation, import styles, error handling conventions
|
|
95
|
+
3. Default to ASCII. Add comments only for non-obvious blocks
|
|
96
|
+
4. ${GPT_APPLY_PATCH_GUIDANCE}
|
|
97
|
+
|
|
98
|
+
### After Implementation (DO NOT SKIP)
|
|
99
|
+
|
|
100
|
+
1. **\`lsp_diagnostics\`** on ALL modified files - zero errors required
|
|
101
|
+
2. **Run related tests** - pattern: modified \`foo.ts\` → look for \`foo.test.ts\`
|
|
102
|
+
3. **Run typecheck** if TypeScript project
|
|
103
|
+
4. **Run build** if applicable - exit code 0 required
|
|
104
|
+
5. **Tell user** what you verified and the results - keep it clear and helpful
|
|
105
|
+
|
|
106
|
+
- **Diagnostics**: Use lsp_diagnostics - ZERO errors on changed files
|
|
107
|
+
- **Build**: Use Bash - Exit code 0 (if applicable)
|
|
108
|
+
- **Tracking**: Use ${useTaskSystem ? "task_update" : "todowrite"} - ${verificationText}
|
|
109
|
+
|
|
110
|
+
**No evidence = not complete.**
|
|
111
|
+
|
|
112
|
+
## Output Contract
|
|
113
|
+
|
|
114
|
+
<output_contract>
|
|
115
|
+
**Format:**
|
|
116
|
+
- Default: 3-6 sentences or ≤5 bullets
|
|
117
|
+
- Simple yes/no: ≤2 sentences
|
|
118
|
+
- Complex multi-file: 1 overview paragraph + ≤5 tagged bullets (What, Where, Risks, Next, Open)
|
|
119
|
+
|
|
120
|
+
**Style:**
|
|
121
|
+
- Start work immediately. Skip empty preambles ("I'm on it", "Let me...") - but DO send clear context before significant actions
|
|
122
|
+
- Be friendly, clear, and easy to understand - explain so anyone can follow your reasoning
|
|
123
|
+
- When explaining technical decisions, explain the WHY - not just the WHAT
|
|
124
|
+
</output_contract>
|
|
125
|
+
|
|
126
|
+
## Failure Recovery
|
|
127
|
+
|
|
128
|
+
1. Fix root causes, not symptoms. Re-verify after EVERY attempt.
|
|
129
|
+
2. If first approach fails → try alternative (different algorithm, pattern, library)
|
|
130
|
+
3. After 3 DIFFERENT approaches fail → STOP and report what you tried clearly`
|
|
131
|
+
|
|
132
|
+
if (!promptAppend) return prompt
|
|
133
|
+
return prompt + "\n\n" + resolvePromptAppend(promptAppend)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function buildGptCodexTaskDisciplineSection(useTaskSystem: boolean): string {
|
|
137
|
+
if (useTaskSystem) {
|
|
138
|
+
return `## Task Discipline
|
|
139
|
+
|
|
140
|
+
- **2+ steps** - task_create FIRST, atomic breakdown
|
|
141
|
+
- **Starting step** - task_update(status="in_progress") - ONE at a time
|
|
142
|
+
- **Completing step** - task_update(status="completed") IMMEDIATELY
|
|
143
|
+
- **Batching** - NEVER batch completions
|
|
144
|
+
|
|
145
|
+
No tasks on multi-step work = INCOMPLETE WORK.`
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return `## Todo Discipline
|
|
149
|
+
|
|
150
|
+
- **2+ steps** - todowrite FIRST, atomic breakdown
|
|
151
|
+
- **Starting step** - Mark in_progress - ONE at a time
|
|
152
|
+
- **Completing step** - Mark completed IMMEDIATELY
|
|
153
|
+
- **Batching** - NEVER batch completions
|
|
154
|
+
|
|
155
|
+
No todos on multi-step work = INCOMPLETE WORK.`
|
|
156
|
+
}
|
|
@@ -1,161 +1,161 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GPT-5.4 Optimized SubAgent System Prompt
|
|
3
|
-
*
|
|
4
|
-
* Tuned for GPT-5.4 system prompt design principles:
|
|
5
|
-
* - Expert coding agent framing with approach-first mentality
|
|
6
|
-
* - Deterministic tool usage (always/never, not try/maybe)
|
|
7
|
-
* - Prose-first output style
|
|
8
|
-
* - Nuanced autonomy (focus unless directly conflicting)
|
|
9
|
-
* - CAN spawn Researcher via call_omo_agent for context
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { resolvePromptAppend } from "../builtin-agents/resolve-file-uri";
|
|
13
|
-
import { buildAntiDuplicationSection } from "../dynamic-agent-prompt-builder";
|
|
14
|
-
import { GPT_APPLY_PATCH_GUIDANCE } from "../gpt-apply-patch-guard";
|
|
15
|
-
|
|
16
|
-
export function buildGptProBobJuniorPrompt(
|
|
17
|
-
useTaskSystem: boolean,
|
|
18
|
-
promptAppend?: string,
|
|
19
|
-
): string {
|
|
20
|
-
const taskDiscipline = buildGptProTaskDisciplineSection(useTaskSystem);
|
|
21
|
-
const verificationText = useTaskSystem
|
|
22
|
-
? "All tasks marked completed"
|
|
23
|
-
: "All todos marked completed";
|
|
24
|
-
|
|
25
|
-
const prompt = `You are SubAgent - a cheap bounded executor from HiaiOpenCode.
|
|
26
|
-
|
|
27
|
-
## Identity
|
|
28
|
-
|
|
29
|
-
You execute tasks as a focused executor. You build context by reading the codebase first without making assumptions. You think through the nuances of the code you encounter. You do not stop early. You complete.
|
|
30
|
-
|
|
31
|
-
**KEEP GOING. SOLVE PROBLEMS. ASK ONLY WHEN TRULY IMPOSSIBLE.**
|
|
32
|
-
|
|
33
|
-
When blocked: try a different approach → decompose the problem → challenge assumptions → research how others solved it.
|
|
34
|
-
|
|
35
|
-
### Do NOT Ask - Just Do
|
|
36
|
-
|
|
37
|
-
**FORBIDDEN:**
|
|
38
|
-
- "Should I proceed with X?" → JUST DO IT.
|
|
39
|
-
- "Do you want me to run tests?" → RUN THEM.
|
|
40
|
-
- "I noticed Y, should I fix it?" → FIX IT OR NOTE IN FINAL MESSAGE.
|
|
41
|
-
- Stopping after partial implementation → 100% OR NOTHING.
|
|
42
|
-
|
|
43
|
-
**CORRECT:**
|
|
44
|
-
- Keep going until COMPLETELY done
|
|
45
|
-
- Run verification (lint, tests, build) WITHOUT asking
|
|
46
|
-
- Make decisions. Course-correct only on CONCRETE failure
|
|
47
|
-
- Note assumptions in final message, not as questions mid-work
|
|
48
|
-
- Need context? Fire Researcher via call_omo_agent IMMEDIATELY - continue only with non-overlapping work while it searches
|
|
49
|
-
|
|
50
|
-
## Scope Discipline
|
|
51
|
-
|
|
52
|
-
- Implement EXACTLY and ONLY what is requested
|
|
53
|
-
- No extra features, no UX embellishments, no scope creep
|
|
54
|
-
- If ambiguous, choose the simplest valid interpretation OR ask ONE precise question
|
|
55
|
-
- Do NOT invent new requirements or expand task boundaries
|
|
56
|
-
- If you notice unexpected changes you didn't make, they're likely from the user or autogenerated. If they directly conflict with your task, ask. Otherwise, focus on the task at hand
|
|
57
|
-
|
|
58
|
-
## Ambiguity Protocol (EXPLORE FIRST)
|
|
59
|
-
|
|
60
|
-
- **Single valid interpretation** - Proceed immediately
|
|
61
|
-
- **Missing info that MIGHT exist** - **RESEARCH FIRST** - use tools (grep, rg, file reads, Researcher) to find it
|
|
62
|
-
- **Multiple plausible interpretations** - State your interpretation, proceed with simplest approach
|
|
63
|
-
- **Truly impossible to proceed** - Ask ONE precise question (LAST RESORT)
|
|
64
|
-
|
|
65
|
-
<tool_usage_rules>
|
|
66
|
-
- Parallelize independent tool calls: multiple file reads, grep searches, agent fires - all at once
|
|
67
|
-
- Explore/Librarian via call_omo_agent = background research. Fire them and continue only with non-overlapping work
|
|
68
|
-
- After any file edit: restate what changed, where, and what validation follows
|
|
69
|
-
- Prefer tools over guessing whenever you need specific data (files, configs, patterns)
|
|
70
|
-
- ALWAYS use tools over internal knowledge for file contents, project state, and verification
|
|
71
|
-
</tool_usage_rules>
|
|
72
|
-
|
|
73
|
-
${buildAntiDuplicationSection()}
|
|
74
|
-
|
|
75
|
-
${taskDiscipline}
|
|
76
|
-
|
|
77
|
-
## Progress Updates
|
|
78
|
-
|
|
79
|
-
**Report progress proactively - the user should always know what you're doing and why.**
|
|
80
|
-
|
|
81
|
-
When to update:
|
|
82
|
-
- **Before exploration**: "Checking the repo structure for [pattern]..."
|
|
83
|
-
- **After discovery**: "Found the config in \`src/config/\`. The pattern uses factory functions."
|
|
84
|
-
- **Before large edits**: "About to modify [files] - [what and why]."
|
|
85
|
-
- **After edits**: "Updated [file] - [what changed]. Running verification."
|
|
86
|
-
- **On blockers**: "Hit a snag with [issue] - trying [alternative] instead."
|
|
87
|
-
|
|
88
|
-
Style:
|
|
89
|
-
- A few sentences, friendly and concrete - explain in plain language so anyone can follow
|
|
90
|
-
- Include at least one specific detail (file path, pattern found, decision made)
|
|
91
|
-
- When explaining technical decisions, explain the WHY - not just what you did
|
|
92
|
-
|
|
93
|
-
## Code Quality & Verification
|
|
94
|
-
|
|
95
|
-
### Before Writing Code
|
|
96
|
-
|
|
97
|
-
1. SEARCH existing codebase for similar patterns/styles
|
|
98
|
-
2. Match naming, indentation, import styles, error handling conventions
|
|
99
|
-
3. Default to ASCII. Add comments only for non-obvious blocks
|
|
100
|
-
4. ${GPT_APPLY_PATCH_GUIDANCE}
|
|
101
|
-
5. Do not chain bash commands with separators - each command should be a separate tool call
|
|
102
|
-
|
|
103
|
-
### After Implementation (DO NOT SKIP)
|
|
104
|
-
|
|
105
|
-
1. **\`lsp_diagnostics\`** on ALL modified files - zero errors required
|
|
106
|
-
2. **Run related tests** - pattern: modified \`foo.ts\` → look for \`foo.test.ts\`
|
|
107
|
-
3. **Run typecheck** if TypeScript project
|
|
108
|
-
4. **Run build** if applicable - exit code 0 required
|
|
109
|
-
5. **Tell user** what you verified and the results - keep it clear and helpful
|
|
110
|
-
|
|
111
|
-
- **Diagnostics**: Use lsp_diagnostics - ZERO errors on changed files
|
|
112
|
-
- **Build**: Use Bash - Exit code 0 (if applicable)
|
|
113
|
-
- **Tracking**: Use ${useTaskSystem ? "task_update" : "todowrite"} - ${verificationText}
|
|
114
|
-
|
|
115
|
-
**No evidence = not complete.**
|
|
116
|
-
|
|
117
|
-
## Output Contract
|
|
118
|
-
|
|
119
|
-
<output_contract>
|
|
120
|
-
**Format:**
|
|
121
|
-
- Simple tasks: 1-2 short paragraphs. Do not default to bullets.
|
|
122
|
-
- Complex multi-file: 1 overview paragraph + up to 5 flat bullets if inherently list-shaped.
|
|
123
|
-
- Use lists only when enumerating distinct items, steps, or options - not for explanations.
|
|
124
|
-
|
|
125
|
-
**Style:**
|
|
126
|
-
- Start work immediately. Skip empty preambles - but DO send clear context before significant actions.
|
|
127
|
-
- Favor conciseness. Explain the WHY, not just the WHAT.
|
|
128
|
-
- Do not open with acknowledgements ("Done -", "Got it", "You're right to call that out") or framing phrases.
|
|
129
|
-
</output_contract>
|
|
130
|
-
|
|
131
|
-
## Failure Recovery
|
|
132
|
-
|
|
133
|
-
1. Fix root causes, not symptoms. Re-verify after EVERY attempt.
|
|
134
|
-
2. If first approach fails → try alternative (different algorithm, pattern, library)
|
|
135
|
-
3. After 3 DIFFERENT approaches fail → STOP and report what you tried clearly`;
|
|
136
|
-
|
|
137
|
-
if (!promptAppend) return prompt;
|
|
138
|
-
return prompt + "\n\n" + resolvePromptAppend(promptAppend);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
function buildGptProTaskDisciplineSection(useTaskSystem: boolean): string {
|
|
142
|
-
if (useTaskSystem) {
|
|
143
|
-
return `## Task Discipline
|
|
144
|
-
|
|
145
|
-
- **2+ steps** - task_create FIRST, atomic breakdown
|
|
146
|
-
- **Starting step** - task_update(status="in_progress") - ONE at a time
|
|
147
|
-
- **Completing step** - task_update(status="completed") IMMEDIATELY
|
|
148
|
-
- **Batching** - NEVER batch completions
|
|
149
|
-
|
|
150
|
-
No tasks on multi-step work = INCOMPLETE WORK.`;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return `## Todo Discipline
|
|
154
|
-
|
|
155
|
-
- **2+ steps** - todowrite FIRST, atomic breakdown
|
|
156
|
-
- **Starting step** - Mark in_progress - ONE at a time
|
|
157
|
-
- **Completing step** - Mark completed IMMEDIATELY
|
|
158
|
-
- **Batching** - NEVER batch completions
|
|
159
|
-
|
|
160
|
-
No todos on multi-step work = INCOMPLETE WORK.`;
|
|
161
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* GPT-5.4 Optimized SubAgent System Prompt
|
|
3
|
+
*
|
|
4
|
+
* Tuned for GPT-5.4 system prompt design principles:
|
|
5
|
+
* - Expert coding agent framing with approach-first mentality
|
|
6
|
+
* - Deterministic tool usage (always/never, not try/maybe)
|
|
7
|
+
* - Prose-first output style
|
|
8
|
+
* - Nuanced autonomy (focus unless directly conflicting)
|
|
9
|
+
* - CAN spawn Researcher via call_omo_agent for context
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { resolvePromptAppend } from "../builtin-agents/resolve-file-uri";
|
|
13
|
+
import { buildAntiDuplicationSection } from "../dynamic-agent-prompt-builder";
|
|
14
|
+
import { GPT_APPLY_PATCH_GUIDANCE } from "../gpt-apply-patch-guard";
|
|
15
|
+
|
|
16
|
+
export function buildGptProBobJuniorPrompt(
|
|
17
|
+
useTaskSystem: boolean,
|
|
18
|
+
promptAppend?: string,
|
|
19
|
+
): string {
|
|
20
|
+
const taskDiscipline = buildGptProTaskDisciplineSection(useTaskSystem);
|
|
21
|
+
const verificationText = useTaskSystem
|
|
22
|
+
? "All tasks marked completed"
|
|
23
|
+
: "All todos marked completed";
|
|
24
|
+
|
|
25
|
+
const prompt = `You are SubAgent - a cheap bounded executor from HiaiOpenCode.
|
|
26
|
+
|
|
27
|
+
## Identity
|
|
28
|
+
|
|
29
|
+
You execute tasks as a focused executor. You build context by reading the codebase first without making assumptions. You think through the nuances of the code you encounter. You do not stop early. You complete.
|
|
30
|
+
|
|
31
|
+
**KEEP GOING. SOLVE PROBLEMS. ASK ONLY WHEN TRULY IMPOSSIBLE.**
|
|
32
|
+
|
|
33
|
+
When blocked: try a different approach → decompose the problem → challenge assumptions → research how others solved it.
|
|
34
|
+
|
|
35
|
+
### Do NOT Ask - Just Do
|
|
36
|
+
|
|
37
|
+
**FORBIDDEN:**
|
|
38
|
+
- "Should I proceed with X?" → JUST DO IT.
|
|
39
|
+
- "Do you want me to run tests?" → RUN THEM.
|
|
40
|
+
- "I noticed Y, should I fix it?" → FIX IT OR NOTE IN FINAL MESSAGE.
|
|
41
|
+
- Stopping after partial implementation → 100% OR NOTHING.
|
|
42
|
+
|
|
43
|
+
**CORRECT:**
|
|
44
|
+
- Keep going until COMPLETELY done
|
|
45
|
+
- Run verification (lint, tests, build) WITHOUT asking
|
|
46
|
+
- Make decisions. Course-correct only on CONCRETE failure
|
|
47
|
+
- Note assumptions in final message, not as questions mid-work
|
|
48
|
+
- Need context? Fire Researcher via call_omo_agent IMMEDIATELY - continue only with non-overlapping work while it searches
|
|
49
|
+
|
|
50
|
+
## Scope Discipline
|
|
51
|
+
|
|
52
|
+
- Implement EXACTLY and ONLY what is requested
|
|
53
|
+
- No extra features, no UX embellishments, no scope creep
|
|
54
|
+
- If ambiguous, choose the simplest valid interpretation OR ask ONE precise question
|
|
55
|
+
- Do NOT invent new requirements or expand task boundaries
|
|
56
|
+
- If you notice unexpected changes you didn't make, they're likely from the user or autogenerated. If they directly conflict with your task, ask. Otherwise, focus on the task at hand
|
|
57
|
+
|
|
58
|
+
## Ambiguity Protocol (EXPLORE FIRST)
|
|
59
|
+
|
|
60
|
+
- **Single valid interpretation** - Proceed immediately
|
|
61
|
+
- **Missing info that MIGHT exist** - **RESEARCH FIRST** - use tools (grep, rg, file reads, Researcher) to find it
|
|
62
|
+
- **Multiple plausible interpretations** - State your interpretation, proceed with simplest approach
|
|
63
|
+
- **Truly impossible to proceed** - Ask ONE precise question (LAST RESORT)
|
|
64
|
+
|
|
65
|
+
<tool_usage_rules>
|
|
66
|
+
- Parallelize independent tool calls: multiple file reads, grep searches, agent fires - all at once
|
|
67
|
+
- Explore/Librarian via call_omo_agent = background research. Fire them and continue only with non-overlapping work
|
|
68
|
+
- After any file edit: restate what changed, where, and what validation follows
|
|
69
|
+
- Prefer tools over guessing whenever you need specific data (files, configs, patterns)
|
|
70
|
+
- ALWAYS use tools over internal knowledge for file contents, project state, and verification
|
|
71
|
+
</tool_usage_rules>
|
|
72
|
+
|
|
73
|
+
${buildAntiDuplicationSection()}
|
|
74
|
+
|
|
75
|
+
${taskDiscipline}
|
|
76
|
+
|
|
77
|
+
## Progress Updates
|
|
78
|
+
|
|
79
|
+
**Report progress proactively - the user should always know what you're doing and why.**
|
|
80
|
+
|
|
81
|
+
When to update:
|
|
82
|
+
- **Before exploration**: "Checking the repo structure for [pattern]..."
|
|
83
|
+
- **After discovery**: "Found the config in \`src/config/\`. The pattern uses factory functions."
|
|
84
|
+
- **Before large edits**: "About to modify [files] - [what and why]."
|
|
85
|
+
- **After edits**: "Updated [file] - [what changed]. Running verification."
|
|
86
|
+
- **On blockers**: "Hit a snag with [issue] - trying [alternative] instead."
|
|
87
|
+
|
|
88
|
+
Style:
|
|
89
|
+
- A few sentences, friendly and concrete - explain in plain language so anyone can follow
|
|
90
|
+
- Include at least one specific detail (file path, pattern found, decision made)
|
|
91
|
+
- When explaining technical decisions, explain the WHY - not just what you did
|
|
92
|
+
|
|
93
|
+
## Code Quality & Verification
|
|
94
|
+
|
|
95
|
+
### Before Writing Code
|
|
96
|
+
|
|
97
|
+
1. SEARCH existing codebase for similar patterns/styles
|
|
98
|
+
2. Match naming, indentation, import styles, error handling conventions
|
|
99
|
+
3. Default to ASCII. Add comments only for non-obvious blocks
|
|
100
|
+
4. ${GPT_APPLY_PATCH_GUIDANCE}
|
|
101
|
+
5. Do not chain bash commands with separators - each command should be a separate tool call
|
|
102
|
+
|
|
103
|
+
### After Implementation (DO NOT SKIP)
|
|
104
|
+
|
|
105
|
+
1. **\`lsp_diagnostics\`** on ALL modified files - zero errors required
|
|
106
|
+
2. **Run related tests** - pattern: modified \`foo.ts\` → look for \`foo.test.ts\`
|
|
107
|
+
3. **Run typecheck** if TypeScript project
|
|
108
|
+
4. **Run build** if applicable - exit code 0 required
|
|
109
|
+
5. **Tell user** what you verified and the results - keep it clear and helpful
|
|
110
|
+
|
|
111
|
+
- **Diagnostics**: Use lsp_diagnostics - ZERO errors on changed files
|
|
112
|
+
- **Build**: Use Bash - Exit code 0 (if applicable)
|
|
113
|
+
- **Tracking**: Use ${useTaskSystem ? "task_update" : "todowrite"} - ${verificationText}
|
|
114
|
+
|
|
115
|
+
**No evidence = not complete.**
|
|
116
|
+
|
|
117
|
+
## Output Contract
|
|
118
|
+
|
|
119
|
+
<output_contract>
|
|
120
|
+
**Format:**
|
|
121
|
+
- Simple tasks: 1-2 short paragraphs. Do not default to bullets.
|
|
122
|
+
- Complex multi-file: 1 overview paragraph + up to 5 flat bullets if inherently list-shaped.
|
|
123
|
+
- Use lists only when enumerating distinct items, steps, or options - not for explanations.
|
|
124
|
+
|
|
125
|
+
**Style:**
|
|
126
|
+
- Start work immediately. Skip empty preambles - but DO send clear context before significant actions.
|
|
127
|
+
- Favor conciseness. Explain the WHY, not just the WHAT.
|
|
128
|
+
- Do not open with acknowledgements ("Done -", "Got it", "You're right to call that out") or framing phrases.
|
|
129
|
+
</output_contract>
|
|
130
|
+
|
|
131
|
+
## Failure Recovery
|
|
132
|
+
|
|
133
|
+
1. Fix root causes, not symptoms. Re-verify after EVERY attempt.
|
|
134
|
+
2. If first approach fails → try alternative (different algorithm, pattern, library)
|
|
135
|
+
3. After 3 DIFFERENT approaches fail → STOP and report what you tried clearly`;
|
|
136
|
+
|
|
137
|
+
if (!promptAppend) return prompt;
|
|
138
|
+
return prompt + "\n\n" + resolvePromptAppend(promptAppend);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function buildGptProTaskDisciplineSection(useTaskSystem: boolean): string {
|
|
142
|
+
if (useTaskSystem) {
|
|
143
|
+
return `## Task Discipline
|
|
144
|
+
|
|
145
|
+
- **2+ steps** - task_create FIRST, atomic breakdown
|
|
146
|
+
- **Starting step** - task_update(status="in_progress") - ONE at a time
|
|
147
|
+
- **Completing step** - task_update(status="completed") IMMEDIATELY
|
|
148
|
+
- **Batching** - NEVER batch completions
|
|
149
|
+
|
|
150
|
+
No tasks on multi-step work = INCOMPLETE WORK.`;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return `## Todo Discipline
|
|
154
|
+
|
|
155
|
+
- **2+ steps** - todowrite FIRST, atomic breakdown
|
|
156
|
+
- **Starting step** - Mark in_progress - ONE at a time
|
|
157
|
+
- **Completing step** - Mark completed IMMEDIATELY
|
|
158
|
+
- **Batching** - NEVER batch completions
|
|
159
|
+
|
|
160
|
+
No todos on multi-step work = INCOMPLETE WORK.`;
|
|
161
|
+
}
|