@hiai-gg/hiai-opencode 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1236) hide show
  1. package/.env.example +57 -57
  2. package/AGENTS.md +281 -281
  3. package/ARCHITECTURE.md +281 -281
  4. package/LICENSE.md +59 -59
  5. package/README.md +301 -301
  6. package/assets/mcp/mempalace.mjs +153 -153
  7. package/assets/mcp/rag.mjs +236 -236
  8. package/assets/runtime/npm-package-runner.mjs +54 -54
  9. package/config/hiai-opencode.schema.json +82 -82
  10. package/config/opencode.json +4 -4
  11. package/dist/index.js +242 -242
  12. package/hiai-opencode.json +57 -57
  13. package/package.json +91 -91
  14. package/scripts/check_docs.ts +128 -128
  15. package/scripts/doctor.ts +522 -522
  16. package/scripts/measure_prompts.ts +192 -192
  17. package/scripts/test_routing.ts +294 -294
  18. package/skills/api-and-interface-design/SKILL.md +294 -294
  19. package/skills/brainstorming/SKILL.md +164 -164
  20. package/skills/brainstorming/scripts/frame-template.html +214 -214
  21. package/skills/brainstorming/scripts/helper.js +88 -88
  22. package/skills/brainstorming/scripts/server.cjs +354 -354
  23. package/skills/brainstorming/scripts/start-server.sh +148 -148
  24. package/skills/brainstorming/scripts/stop-server.sh +56 -56
  25. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
  26. package/skills/brainstorming/visual-companion.md +287 -287
  27. package/skills/browser-testing-with-devtools/SKILL.md +302 -302
  28. package/skills/ci-cd-and-automation/SKILL.md +390 -390
  29. package/skills/code-review-and-quality/SKILL.md +347 -347
  30. package/skills/code-simplification/SKILL.md +331 -331
  31. package/skills/context-engineering/SKILL.md +289 -289
  32. package/skills/deprecation-and-migration/SKILL.md +206 -206
  33. package/skills/dispatching-parallel-agents/SKILL.md +182 -182
  34. package/skills/documentation-and-adrs/SKILL.md +278 -278
  35. package/skills/executing-plans/SKILL.md +70 -70
  36. package/skills/finishing-a-development-branch/SKILL.md +200 -200
  37. package/skills/frontend-ui-engineering/SKILL.md +322 -322
  38. package/skills/git-workflow-and-versioning/SKILL.md +300 -300
  39. package/skills/incremental-implementation/SKILL.md +241 -241
  40. package/skills/performance-optimization/SKILL.md +350 -350
  41. package/skills/receiving-code-review/SKILL.md +213 -213
  42. package/skills/requesting-code-review/SKILL.md +105 -105
  43. package/skills/requesting-code-review/code-reviewer.md +146 -146
  44. package/skills/security-and-hardening/SKILL.md +349 -349
  45. package/skills/shipping-and-launch/SKILL.md +309 -309
  46. package/skills/source-driven-development/SKILL.md +194 -194
  47. package/skills/spec-driven-development/SKILL.md +200 -200
  48. package/skills/subagent-driven-development/SKILL.md +277 -277
  49. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -26
  50. package/skills/subagent-driven-development/implementer-prompt.md +113 -113
  51. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -61
  52. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  53. package/skills/systematic-debugging/SKILL.md +596 -596
  54. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  55. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  56. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  57. package/skills/systematic-debugging/find-polluter.sh +63 -63
  58. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  59. package/skills/systematic-debugging/test-academic.md +14 -14
  60. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  61. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  62. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  63. package/skills/test-driven-development/SKILL.md +379 -379
  64. package/skills/using-agent-skills/SKILL.md +174 -174
  65. package/skills/using-git-worktrees/SKILL.md +218 -218
  66. package/skills/using-superpowers/SKILL.md +117 -117
  67. package/skills/using-superpowers/references/codex-tools.md +100 -100
  68. package/skills/using-superpowers/references/copilot-tools.md +52 -52
  69. package/skills/using-superpowers/references/gemini-tools.md +33 -33
  70. package/skills/verification-before-completion/SKILL.md +139 -139
  71. package/skills/writing-plans/SKILL.md +152 -152
  72. package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
  73. package/skills/writing-skills/SKILL.md +655 -655
  74. package/skills/writing-skills/anthropic-best-practices.md +1150 -1150
  75. package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
  76. package/skills/writing-skills/graphviz-conventions.dot +171 -171
  77. package/skills/writing-skills/persuasion-principles.md +187 -187
  78. package/skills/writing-skills/render-graphs.js +168 -168
  79. package/skills/writing-skills/testing-skills-with-subagents.md +384 -384
  80. package/src/AGENTS.md +41 -41
  81. package/src/agents/AGENTS.md +74 -74
  82. package/src/agents/agent-builder.ts +50 -50
  83. package/src/agents/bob/AGENTS.md +29 -29
  84. package/src/agents/bob/default.ts +128 -128
  85. package/src/agents/bob/gemini.ts +237 -237
  86. package/src/agents/bob/gpt-pro.ts +430 -430
  87. package/src/agents/bob/index.ts +19 -19
  88. package/src/agents/bob.ts +528 -528
  89. package/src/agents/builtin-agents/agent-overrides.ts +75 -75
  90. package/src/agents/builtin-agents/available-skills.ts +35 -35
  91. package/src/agents/builtin-agents/bob-agent.ts +96 -96
  92. package/src/agents/builtin-agents/coder-agent.ts +98 -98
  93. package/src/agents/builtin-agents/environment-context.ts +16 -16
  94. package/src/agents/builtin-agents/general-agents.ts +122 -122
  95. package/src/agents/builtin-agents/guard-agent.ts +66 -66
  96. package/src/agents/builtin-agents/model-resolution.ts +31 -31
  97. package/src/agents/builtin-agents/resolve-file-uri.ts +42 -42
  98. package/src/agents/builtin-agents.ts +194 -194
  99. package/src/agents/coder/AGENTS.md +34 -34
  100. package/src/agents/coder/agent.ts +162 -162
  101. package/src/agents/coder/gpt-codex.ts +404 -404
  102. package/src/agents/coder/gpt-pro.ts +319 -319
  103. package/src/agents/coder/gpt.ts +253 -253
  104. package/src/agents/coder/index.ts +8 -8
  105. package/src/agents/critic/agent.ts +105 -105
  106. package/src/agents/custom-agent-summaries.ts +61 -61
  107. package/src/agents/dynamic-agent-category-skills-guide.ts +138 -138
  108. package/src/agents/dynamic-agent-core-sections.ts +237 -237
  109. package/src/agents/dynamic-agent-policy-sections.ts +182 -182
  110. package/src/agents/dynamic-agent-prompt-builder.ts +31 -31
  111. package/src/agents/dynamic-agent-prompt-types.ts +24 -24
  112. package/src/agents/dynamic-agent-tool-categorization.ts +45 -45
  113. package/src/agents/env-context.ts +16 -16
  114. package/src/agents/gpt-apply-patch-guard.ts +7 -7
  115. package/src/agents/guard/agent.ts +146 -146
  116. package/src/agents/guard/default-prompt-sections.ts +305 -305
  117. package/src/agents/guard/default.ts +22 -22
  118. package/src/agents/guard/gemini-prompt-sections.ts +293 -293
  119. package/src/agents/guard/gemini.ts +22 -22
  120. package/src/agents/guard/gpt-prompt-sections.ts +296 -296
  121. package/src/agents/guard/gpt.ts +22 -22
  122. package/src/agents/guard/index.ts +2 -2
  123. package/src/agents/guard/prompt-section-builder.ts +104 -104
  124. package/src/agents/guard/shared-prompt.ts +172 -172
  125. package/src/agents/index.ts +5 -5
  126. package/src/agents/platform-adapter.ts +236 -236
  127. package/src/agents/platform-manager.ts +57 -57
  128. package/src/agents/prompt-library/identity.ts +14 -14
  129. package/src/agents/prompt-library/index.ts +7 -7
  130. package/src/agents/prompt-library/intent-gate.ts +149 -149
  131. package/src/agents/prompt-library/orchestration.ts +60 -60
  132. package/src/agents/prompt-library/platform.ts +36 -36
  133. package/src/agents/prompt-library/specialized.ts +39 -39
  134. package/src/agents/prompt-library/strategy.ts +80 -80
  135. package/src/agents/prompt-library/todo-discipline.ts +22 -22
  136. package/src/agents/quality-guardian.ts +76 -76
  137. package/src/agents/researcher.ts +73 -73
  138. package/src/agents/strategist/AGENTS.md +37 -37
  139. package/src/agents/strategist/behavioral-summary.ts +79 -79
  140. package/src/agents/strategist/gemini.ts +333 -333
  141. package/src/agents/strategist/gpt.ts +460 -460
  142. package/src/agents/strategist/high-accuracy-mode.ts +78 -78
  143. package/src/agents/strategist/identity-constraints.ts +336 -336
  144. package/src/agents/strategist/index.ts +6 -6
  145. package/src/agents/strategist/interview-mode.ts +335 -335
  146. package/src/agents/strategist/plan-generation.ts +213 -213
  147. package/src/agents/strategist/plan-template.ts +325 -325
  148. package/src/agents/strategist/system-prompt.ts +68 -68
  149. package/src/agents/sub/agent.ts +141 -141
  150. package/src/agents/sub/default.ts +52 -52
  151. package/src/agents/sub/gemini.ts +194 -194
  152. package/src/agents/sub/gpt-codex.ts +156 -156
  153. package/src/agents/sub/gpt-pro.ts +161 -161
  154. package/src/agents/sub/gpt.ts +157 -157
  155. package/src/agents/sub/index.ts +13 -13
  156. package/src/agents/types.ts +144 -144
  157. package/src/agents/ui.ts +58 -58
  158. package/src/config/data/model-capabilities.json +40690 -40690
  159. package/src/config/defaults.ts +146 -146
  160. package/src/config/hiai-opencode.schema.json +12 -12
  161. package/src/config/index.ts +67 -67
  162. package/src/config/loader.test.ts +65 -65
  163. package/src/config/loader.ts +183 -183
  164. package/src/config/models.ts +32 -32
  165. package/src/config/platform-schema.ts +192 -192
  166. package/src/config/schema/agent-definitions.ts +5 -5
  167. package/src/config/schema/agent-names.ts +66 -66
  168. package/src/config/schema/agent-overrides.ts +95 -95
  169. package/src/config/schema/babysitting.ts +7 -7
  170. package/src/config/schema/background-task.ts +29 -29
  171. package/src/config/schema/bob-agent.ts +11 -11
  172. package/src/config/schema/bob.ts +17 -17
  173. package/src/config/schema/browser-automation.ts +24 -24
  174. package/src/config/schema/categories.ts +45 -45
  175. package/src/config/schema/claude-code.ts +13 -13
  176. package/src/config/schema/commands.ts +14 -14
  177. package/src/config/schema/comment-checker.ts +8 -8
  178. package/src/config/schema/dynamic-context-pruning.ts +53 -53
  179. package/src/config/schema/experimental.ts +27 -27
  180. package/src/config/schema/fallback-models.ts +31 -31
  181. package/src/config/schema/fast-apply.ts +14 -14
  182. package/src/config/schema/git-env-prefix.ts +28 -28
  183. package/src/config/schema/git-master.ts +14 -14
  184. package/src/config/schema/hooks.ts +61 -61
  185. package/src/config/schema/index.ts +52 -52
  186. package/src/config/schema/internal/permission.ts +20 -20
  187. package/src/config/schema/model-capabilities.ts +10 -10
  188. package/src/config/schema/notification.ts +8 -8
  189. package/src/config/schema/oh-my-opencode-config.ts +90 -90
  190. package/src/config/schema/openclaw.ts +50 -50
  191. package/src/config/schema/ralph-loop.ts +11 -11
  192. package/src/config/schema/runtime-fallback.ts +18 -18
  193. package/src/config/schema/skills.ts +39 -39
  194. package/src/config/schema/start-work.ts +7 -7
  195. package/src/config/schema/tmux.ts +28 -28
  196. package/src/config/schema/websearch.ts +15 -15
  197. package/src/config/types.ts +174 -174
  198. package/src/create-hooks.ts +93 -93
  199. package/src/create-managers.ts +116 -116
  200. package/src/create-runtime-tmux-config.ts +18 -18
  201. package/src/create-tools.ts +53 -53
  202. package/src/features/background-agent/AGENTS.md +56 -56
  203. package/src/features/background-agent/abort-with-timeout.ts +35 -35
  204. package/src/features/background-agent/background-task-notification-template.ts +74 -74
  205. package/src/features/background-agent/compaction-aware-message-resolver.ts +164 -164
  206. package/src/features/background-agent/concurrency.ts +137 -137
  207. package/src/features/background-agent/constants.ts +58 -58
  208. package/src/features/background-agent/duration-formatter.ts +14 -14
  209. package/src/features/background-agent/error-classifier.ts +83 -83
  210. package/src/features/background-agent/fallback-retry-handler.ts +134 -134
  211. package/src/features/background-agent/index.ts +2 -2
  212. package/src/features/background-agent/loop-detector.ts +102 -102
  213. package/src/features/background-agent/manager.ts +2220 -2220
  214. package/src/features/background-agent/opencode-client.ts +3 -3
  215. package/src/features/background-agent/process-cleanup.ts +98 -98
  216. package/src/features/background-agent/remove-task-toast-tracking.ts +8 -8
  217. package/src/features/background-agent/session-existence.ts +57 -57
  218. package/src/features/background-agent/session-idle-event-handler.ts +93 -93
  219. package/src/features/background-agent/session-status-classifier.ts +20 -20
  220. package/src/features/background-agent/spawner/parent-directory-resolver.ts +24 -24
  221. package/src/features/background-agent/spawner.ts +327 -327
  222. package/src/features/background-agent/state.ts +199 -199
  223. package/src/features/background-agent/subagent-spawn-limits.ts +97 -97
  224. package/src/features/background-agent/task-history.ts +79 -79
  225. package/src/features/background-agent/task-poller.ts +225 -225
  226. package/src/features/background-agent/types.ts +100 -100
  227. package/src/features/boulder-state/constants.ts +13 -13
  228. package/src/features/boulder-state/index.ts +4 -4
  229. package/src/features/boulder-state/storage.ts +336 -336
  230. package/src/features/boulder-state/top-level-task.ts +78 -78
  231. package/src/features/boulder-state/types.ts +61 -61
  232. package/src/features/builtin-commands/commands.ts +143 -143
  233. package/src/features/builtin-commands/index.ts +2 -2
  234. package/src/features/builtin-commands/templates/handoff.ts +177 -177
  235. package/src/features/builtin-commands/templates/init-deep.ts +305 -305
  236. package/src/features/builtin-commands/templates/ralph-loop.ts +66 -66
  237. package/src/features/builtin-commands/templates/refactor.ts +619 -619
  238. package/src/features/builtin-commands/templates/remove-ai-slops.ts +96 -96
  239. package/src/features/builtin-commands/templates/start-work.ts +128 -128
  240. package/src/features/builtin-commands/templates/stop-continuation.ts +13 -13
  241. package/src/features/builtin-commands/types.ts +9 -9
  242. package/src/features/builtin-skills/index.ts +2 -2
  243. package/src/features/builtin-skills/materialize.ts +338 -338
  244. package/src/features/builtin-skills/skills/ai-slop-remover.ts +145 -145
  245. package/src/features/builtin-skills/skills/dev-browser.ts +221 -221
  246. package/src/features/builtin-skills/skills/frontend-ui-ux.ts +79 -79
  247. package/src/features/builtin-skills/skills/git-master-sections/commit-workflow.ts +509 -509
  248. package/src/features/builtin-skills/skills/git-master-sections/history-search-workflow.ts +229 -229
  249. package/src/features/builtin-skills/skills/git-master-sections/overview.ts +64 -64
  250. package/src/features/builtin-skills/skills/git-master-sections/quick-reference.ts +86 -86
  251. package/src/features/builtin-skills/skills/git-master-sections/rebase-workflow.ts +181 -181
  252. package/src/features/builtin-skills/skills/git-master-skill-metadata.ts +4 -4
  253. package/src/features/builtin-skills/skills/git-master.ts +28 -28
  254. package/src/features/builtin-skills/skills/index.ts +7 -7
  255. package/src/features/builtin-skills/skills/playwright-cli.ts +268 -268
  256. package/src/features/builtin-skills/skills/playwright.ts +466 -466
  257. package/src/features/builtin-skills/skills/review-work.ts +536 -536
  258. package/src/features/builtin-skills/skills.ts +39 -39
  259. package/src/features/builtin-skills/types.ts +16 -16
  260. package/src/features/claude-code-agent-loader/agent-definitions-loader.ts +87 -87
  261. package/src/features/claude-code-agent-loader/claude-model-mapper.ts +53 -53
  262. package/src/features/claude-code-agent-loader/index.ts +5 -5
  263. package/src/features/claude-code-agent-loader/json-agent-loader.ts +53 -53
  264. package/src/features/claude-code-agent-loader/loader.ts +86 -86
  265. package/src/features/claude-code-agent-loader/opencode-config-agents-reader.ts +125 -125
  266. package/src/features/claude-code-agent-loader/types.ts +31 -31
  267. package/src/features/claude-code-command-loader/index.ts +2 -2
  268. package/src/features/claude-code-command-loader/loader.ts +169 -169
  269. package/src/features/claude-code-command-loader/types.ts +46 -46
  270. package/src/features/claude-code-mcp-loader/configure-allowed-env-vars.ts +48 -48
  271. package/src/features/claude-code-mcp-loader/env-expander.ts +51 -51
  272. package/src/features/claude-code-mcp-loader/index.ts +12 -12
  273. package/src/features/claude-code-mcp-loader/loader.ts +156 -156
  274. package/src/features/claude-code-mcp-loader/scope-filter.ts +17 -17
  275. package/src/features/claude-code-mcp-loader/transformer.ts +57 -57
  276. package/src/features/claude-code-mcp-loader/types.ts +51 -51
  277. package/src/features/claude-code-plugin-loader/agent-loader.ts +59 -59
  278. package/src/features/claude-code-plugin-loader/command-loader.ts +53 -53
  279. package/src/features/claude-code-plugin-loader/discovery.ts +251 -251
  280. package/src/features/claude-code-plugin-loader/hook-loader.ts +26 -26
  281. package/src/features/claude-code-plugin-loader/index.ts +10 -10
  282. package/src/features/claude-code-plugin-loader/loader.ts +134 -134
  283. package/src/features/claude-code-plugin-loader/mcp-server-loader.ts +59 -59
  284. package/src/features/claude-code-plugin-loader/plugin-path-resolver.ts +23 -23
  285. package/src/features/claude-code-plugin-loader/scope-filter.ts +29 -29
  286. package/src/features/claude-code-plugin-loader/skill-loader.ts +62 -62
  287. package/src/features/claude-code-plugin-loader/types.ts +255 -255
  288. package/src/features/claude-code-session-state/index.ts +1 -1
  289. package/src/features/claude-code-session-state/state.ts +154 -154
  290. package/src/features/claude-tasks/session-storage.ts +52 -52
  291. package/src/features/claude-tasks/storage.ts +169 -169
  292. package/src/features/claude-tasks/types.ts +20 -20
  293. package/src/features/context-injector/collector.ts +91 -91
  294. package/src/features/context-injector/index.ts +14 -14
  295. package/src/features/context-injector/injector.ts +167 -167
  296. package/src/features/context-injector/types.ts +91 -91
  297. package/src/features/hook-message-injector/constants.ts +1 -1
  298. package/src/features/hook-message-injector/index.ts +11 -11
  299. package/src/features/hook-message-injector/injector.ts +437 -437
  300. package/src/features/hook-message-injector/types.ts +49 -49
  301. package/src/features/mcp-oauth/AGENTS.md +54 -54
  302. package/src/features/mcp-oauth/callback-server.ts +106 -106
  303. package/src/features/mcp-oauth/dcr.ts +98 -98
  304. package/src/features/mcp-oauth/discovery.ts +134 -134
  305. package/src/features/mcp-oauth/oauth-authorization-flow.ts +150 -150
  306. package/src/features/mcp-oauth/provider.ts +215 -215
  307. package/src/features/mcp-oauth/refresh-mutex.ts +58 -58
  308. package/src/features/mcp-oauth/resource-indicator.ts +16 -16
  309. package/src/features/mcp-oauth/schema.ts +8 -8
  310. package/src/features/mcp-oauth/step-up.ts +79 -79
  311. package/src/features/mcp-oauth/storage.ts +155 -155
  312. package/src/features/opencode-skill-loader/AGENTS.md +59 -59
  313. package/src/features/opencode-skill-loader/allowed-tools-parser.ts +9 -9
  314. package/src/features/opencode-skill-loader/async-loader.ts +213 -213
  315. package/src/features/opencode-skill-loader/blocking.ts +62 -62
  316. package/src/features/opencode-skill-loader/config-source-discovery.ts +114 -114
  317. package/src/features/opencode-skill-loader/discover-worker.ts +56 -56
  318. package/src/features/opencode-skill-loader/git-master-template-injection.ts +150 -150
  319. package/src/features/opencode-skill-loader/index.ts +17 -17
  320. package/src/features/opencode-skill-loader/loaded-skill-from-path.ts +73 -73
  321. package/src/features/opencode-skill-loader/loaded-skill-template-extractor.ts +16 -16
  322. package/src/features/opencode-skill-loader/loader.ts +172 -172
  323. package/src/features/opencode-skill-loader/merger/builtin-skill-converter.ts +26 -26
  324. package/src/features/opencode-skill-loader/merger/config-skill-entry-loader.ts +117 -117
  325. package/src/features/opencode-skill-loader/merger/scope-priority.ts +10 -10
  326. package/src/features/opencode-skill-loader/merger/skill-definition-merger.ts +31 -31
  327. package/src/features/opencode-skill-loader/merger/skills-config-normalizer.ts +19 -19
  328. package/src/features/opencode-skill-loader/merger.ts +96 -96
  329. package/src/features/opencode-skill-loader/skill-content.ts +11 -11
  330. package/src/features/opencode-skill-loader/skill-deduplication.ts +13 -13
  331. package/src/features/opencode-skill-loader/skill-definition-record.ts +11 -11
  332. package/src/features/opencode-skill-loader/skill-directory-loader.ts +112 -112
  333. package/src/features/opencode-skill-loader/skill-discovery.ts +76 -76
  334. package/src/features/opencode-skill-loader/skill-mcp-config.ts +45 -45
  335. package/src/features/opencode-skill-loader/skill-resolution-options.ts +9 -9
  336. package/src/features/opencode-skill-loader/skill-template-resolver.ts +97 -97
  337. package/src/features/opencode-skill-loader/types.ts +38 -38
  338. package/src/features/run-continuation-state/constants.ts +1 -1
  339. package/src/features/run-continuation-state/index.ts +3 -3
  340. package/src/features/run-continuation-state/storage.ts +80 -80
  341. package/src/features/run-continuation-state/types.ts +15 -15
  342. package/src/features/skill-mcp-manager/AGENTS.md +111 -111
  343. package/src/features/skill-mcp-manager/cleanup.ts +153 -153
  344. package/src/features/skill-mcp-manager/connection-type.ts +26 -26
  345. package/src/features/skill-mcp-manager/connection.ts +146 -146
  346. package/src/features/skill-mcp-manager/env-cleaner.ts +59 -59
  347. package/src/features/skill-mcp-manager/error-redaction.ts +47 -47
  348. package/src/features/skill-mcp-manager/http-client.ts +126 -126
  349. package/src/features/skill-mcp-manager/index.ts +2 -2
  350. package/src/features/skill-mcp-manager/manager.ts +178 -178
  351. package/src/features/skill-mcp-manager/oauth-handler.ts +160 -160
  352. package/src/features/skill-mcp-manager/stdio-client.ts +112 -112
  353. package/src/features/skill-mcp-manager/types.ts +96 -96
  354. package/src/features/task-toast-manager/index.ts +2 -2
  355. package/src/features/task-toast-manager/manager.ts +251 -251
  356. package/src/features/task-toast-manager/types.ts +29 -29
  357. package/src/features/tmux-subagent/action-executor-core.ts +82 -82
  358. package/src/features/tmux-subagent/action-executor.ts +137 -137
  359. package/src/features/tmux-subagent/cleanup.ts +42 -42
  360. package/src/features/tmux-subagent/decision-engine.ts +22 -22
  361. package/src/features/tmux-subagent/event-handlers.ts +6 -6
  362. package/src/features/tmux-subagent/grid-planning.ts +137 -137
  363. package/src/features/tmux-subagent/index.ts +16 -16
  364. package/src/features/tmux-subagent/manager.ts +969 -969
  365. package/src/features/tmux-subagent/oldest-agent-pane.ts +37 -37
  366. package/src/features/tmux-subagent/pane-split-availability.ts +77 -77
  367. package/src/features/tmux-subagent/pane-state-parser.ts +135 -135
  368. package/src/features/tmux-subagent/pane-state-querier.ts +76 -76
  369. package/src/features/tmux-subagent/polling-constants.ts +6 -6
  370. package/src/features/tmux-subagent/polling-manager.ts +167 -167
  371. package/src/features/tmux-subagent/polling.ts +183 -183
  372. package/src/features/tmux-subagent/session-created-event.ts +44 -44
  373. package/src/features/tmux-subagent/session-created-handler.ts +175 -175
  374. package/src/features/tmux-subagent/session-deleted-handler.ts +50 -50
  375. package/src/features/tmux-subagent/session-message-count.ts +3 -3
  376. package/src/features/tmux-subagent/session-ready-waiter.ts +44 -44
  377. package/src/features/tmux-subagent/session-status-parser.ts +17 -17
  378. package/src/features/tmux-subagent/spawn-action-decider.ts +147 -147
  379. package/src/features/tmux-subagent/spawn-target-finder.ts +146 -146
  380. package/src/features/tmux-subagent/tmux-grid-constants.ts +57 -57
  381. package/src/features/tmux-subagent/tracked-session-state.ts +29 -29
  382. package/src/features/tmux-subagent/types.ts +54 -54
  383. package/src/features/tool-metadata-store/index.ts +7 -7
  384. package/src/features/tool-metadata-store/store.ts +84 -84
  385. package/src/hooks/agent-usage-reminder/constants.ts +52 -52
  386. package/src/hooks/agent-usage-reminder/hook.ts +134 -134
  387. package/src/hooks/agent-usage-reminder/index.ts +1 -1
  388. package/src/hooks/agent-usage-reminder/storage.ts +42 -42
  389. package/src/hooks/agent-usage-reminder/types.ts +6 -6
  390. package/src/hooks/anthropic-context-window-limit-recovery/AGENTS.md +49 -49
  391. package/src/hooks/anthropic-context-window-limit-recovery/aggressive-truncation-strategy.ts +87 -87
  392. package/src/hooks/anthropic-context-window-limit-recovery/client.ts +21 -21
  393. package/src/hooks/anthropic-context-window-limit-recovery/deduplication-recovery.ts +77 -77
  394. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.ts +199 -199
  395. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery.ts +149 -149
  396. package/src/hooks/anthropic-context-window-limit-recovery/executor.ts +83 -83
  397. package/src/hooks/anthropic-context-window-limit-recovery/index.ts +8 -8
  398. package/src/hooks/anthropic-context-window-limit-recovery/message-builder.ts +190 -190
  399. package/src/hooks/anthropic-context-window-limit-recovery/message-storage-directory.ts +40 -40
  400. package/src/hooks/anthropic-context-window-limit-recovery/parser.ts +209 -209
  401. package/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts +189 -189
  402. package/src/hooks/anthropic-context-window-limit-recovery/pruning-tool-output-truncation.ts +142 -142
  403. package/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts +44 -44
  404. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.ts +119 -119
  405. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.ts +193 -193
  406. package/src/hooks/anthropic-context-window-limit-recovery/recovery-strategy.ts +2 -2
  407. package/src/hooks/anthropic-context-window-limit-recovery/session-timeout-map.ts +20 -20
  408. package/src/hooks/anthropic-context-window-limit-recovery/state.ts +78 -78
  409. package/src/hooks/anthropic-context-window-limit-recovery/storage-paths.ts +6 -6
  410. package/src/hooks/anthropic-context-window-limit-recovery/storage.ts +18 -18
  411. package/src/hooks/anthropic-context-window-limit-recovery/summarize-retry-strategy.ts +218 -218
  412. package/src/hooks/anthropic-context-window-limit-recovery/target-token-truncation.ts +196 -196
  413. package/src/hooks/anthropic-context-window-limit-recovery/tool-part-types.ts +38 -38
  414. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage-sdk.ts +123 -123
  415. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage.ts +119 -119
  416. package/src/hooks/anthropic-context-window-limit-recovery/types.ts +44 -44
  417. package/src/hooks/anthropic-effort/hook.ts +93 -93
  418. package/src/hooks/anthropic-effort/index.ts +1 -1
  419. package/src/hooks/auto-slash-command/constants.ts +12 -12
  420. package/src/hooks/auto-slash-command/detector.ts +88 -88
  421. package/src/hooks/auto-slash-command/executor.ts +165 -165
  422. package/src/hooks/auto-slash-command/hook.ts +238 -238
  423. package/src/hooks/auto-slash-command/index.ts +7 -7
  424. package/src/hooks/auto-slash-command/processed-command-store.ts +74 -74
  425. package/src/hooks/auto-slash-command/types.ts +42 -42
  426. package/src/hooks/background-notification/hook.ts +54 -54
  427. package/src/hooks/background-notification/index.ts +2 -2
  428. package/src/hooks/background-notification/types.ts +5 -5
  429. package/src/hooks/bash-file-read-guard.ts +44 -44
  430. package/src/hooks/category-skill-reminder/formatter.ts +37 -37
  431. package/src/hooks/category-skill-reminder/hook.ts +142 -142
  432. package/src/hooks/category-skill-reminder/index.ts +1 -1
  433. package/src/hooks/claude-code-hooks/AGENTS.md +41 -41
  434. package/src/hooks/claude-code-hooks/claude-code-hooks-hook.ts +28 -28
  435. package/src/hooks/claude-code-hooks/config-loader.ts +151 -151
  436. package/src/hooks/claude-code-hooks/config.ts +147 -147
  437. package/src/hooks/claude-code-hooks/dispatch-hook.ts +27 -27
  438. package/src/hooks/claude-code-hooks/execute-http-hook.ts +116 -116
  439. package/src/hooks/claude-code-hooks/handlers/chat-message-handler.ts +140 -140
  440. package/src/hooks/claude-code-hooks/handlers/pre-compact-handler.ts +41 -41
  441. package/src/hooks/claude-code-hooks/handlers/session-event-handler.ts +137 -137
  442. package/src/hooks/claude-code-hooks/handlers/tool-execute-after-handler.ts +160 -160
  443. package/src/hooks/claude-code-hooks/handlers/tool-execute-before-handler.ts +93 -93
  444. package/src/hooks/claude-code-hooks/index.ts +1 -1
  445. package/src/hooks/claude-code-hooks/plugin-config.ts +12 -12
  446. package/src/hooks/claude-code-hooks/post-tool-use.ts +195 -195
  447. package/src/hooks/claude-code-hooks/pre-compact.ts +105 -105
  448. package/src/hooks/claude-code-hooks/pre-tool-use.ts +168 -168
  449. package/src/hooks/claude-code-hooks/session-hook-state.ts +17 -17
  450. package/src/hooks/claude-code-hooks/stop.ts +118 -118
  451. package/src/hooks/claude-code-hooks/todo.ts +76 -76
  452. package/src/hooks/claude-code-hooks/tool-input-cache.ts +82 -82
  453. package/src/hooks/claude-code-hooks/transcript.ts +248 -248
  454. package/src/hooks/claude-code-hooks/types.ts +214 -214
  455. package/src/hooks/claude-code-hooks/user-prompt-submit.ts +121 -121
  456. package/src/hooks/comment-checker/cli-runner.ts +127 -127
  457. package/src/hooks/comment-checker/cli.ts +269 -269
  458. package/src/hooks/comment-checker/downloader.ts +170 -170
  459. package/src/hooks/comment-checker/hook.ts +192 -192
  460. package/src/hooks/comment-checker/index.ts +1 -1
  461. package/src/hooks/comment-checker/pending-calls.ts +45 -45
  462. package/src/hooks/comment-checker/types.ts +33 -33
  463. package/src/hooks/compaction-context-injector/compaction-context-prompt.ts +56 -56
  464. package/src/hooks/compaction-context-injector/constants.ts +5 -5
  465. package/src/hooks/compaction-context-injector/hook.ts +164 -164
  466. package/src/hooks/compaction-context-injector/index.ts +1 -1
  467. package/src/hooks/compaction-context-injector/recovery-prompt-config.ts +77 -77
  468. package/src/hooks/compaction-context-injector/recovery.ts +163 -163
  469. package/src/hooks/compaction-context-injector/session-id.ts +8 -8
  470. package/src/hooks/compaction-context-injector/session-prompt-config-resolver.ts +120 -120
  471. package/src/hooks/compaction-context-injector/tail-monitor.ts +52 -52
  472. package/src/hooks/compaction-context-injector/types.ts +25 -25
  473. package/src/hooks/compaction-context-injector/validated-model.ts +47 -47
  474. package/src/hooks/compaction-todo-preserver/hook.ts +127 -127
  475. package/src/hooks/compaction-todo-preserver/index.ts +2 -2
  476. package/src/hooks/context-window-monitor.ts +113 -113
  477. package/src/hooks/delegate-task-retry/guidance.ts +45 -45
  478. package/src/hooks/delegate-task-retry/hook.ts +22 -22
  479. package/src/hooks/delegate-task-retry/index.ts +4 -4
  480. package/src/hooks/delegate-task-retry/patterns.ts +77 -77
  481. package/src/hooks/directory-agents-injector/constants.ts +7 -7
  482. package/src/hooks/directory-agents-injector/finder.ts +38 -38
  483. package/src/hooks/directory-agents-injector/hook.ts +80 -80
  484. package/src/hooks/directory-agents-injector/index.ts +1 -1
  485. package/src/hooks/directory-agents-injector/injector.ts +59 -59
  486. package/src/hooks/directory-agents-injector/storage.ts +8 -8
  487. package/src/hooks/directory-readme-injector/constants.ts +7 -7
  488. package/src/hooks/directory-readme-injector/finder.ts +33 -33
  489. package/src/hooks/directory-readme-injector/hook.ts +80 -80
  490. package/src/hooks/directory-readme-injector/index.ts +1 -1
  491. package/src/hooks/directory-readme-injector/injector.ts +59 -59
  492. package/src/hooks/directory-readme-injector/storage.ts +8 -8
  493. package/src/hooks/edit-error-recovery/hook.ts +58 -58
  494. package/src/hooks/edit-error-recovery/index.ts +5 -5
  495. package/src/hooks/empty-task-response-detector.ts +27 -27
  496. package/src/hooks/fast-apply/hook.ts +11 -11
  497. package/src/hooks/fast-apply/index.ts +1 -1
  498. package/src/hooks/fast-apply/ollama-client.ts +53 -53
  499. package/src/hooks/fast-apply/tool-execute-before-handler.ts +86 -86
  500. package/src/hooks/guard/AGENTS.md +64 -64
  501. package/src/hooks/guard/background-launch-session-tracking.ts +97 -97
  502. package/src/hooks/guard/bob-path.ts +8 -8
  503. package/src/hooks/guard/boulder-continuation-injector.ts +109 -109
  504. package/src/hooks/guard/boulder-session-lineage.ts +44 -44
  505. package/src/hooks/guard/event-handler.ts +104 -104
  506. package/src/hooks/guard/final-wave-approval-gate.ts +47 -47
  507. package/src/hooks/guard/final-wave-plan-state.ts +60 -60
  508. package/src/hooks/guard/guard-hook.ts +27 -27
  509. package/src/hooks/guard/hook-name.ts +1 -1
  510. package/src/hooks/guard/idle-event.ts +341 -341
  511. package/src/hooks/guard/index.ts +3 -3
  512. package/src/hooks/guard/is-abort-error.ts +20 -20
  513. package/src/hooks/guard/recent-model-resolver.ts +89 -89
  514. package/src/hooks/guard/resolve-active-boulder-session.ts +29 -29
  515. package/src/hooks/guard/session-last-agent.ts +153 -153
  516. package/src/hooks/guard/subagent-session-id.ts +54 -54
  517. package/src/hooks/guard/system-reminder-templates.ts +249 -249
  518. package/src/hooks/guard/task-context.ts +45 -45
  519. package/src/hooks/guard/tool-execute-after.ts +209 -209
  520. package/src/hooks/guard/tool-execute-before.ts +102 -102
  521. package/src/hooks/guard/tsconfig.json +9 -9
  522. package/src/hooks/guard/types.ts +45 -45
  523. package/src/hooks/guard/verification-reminders.ts +197 -197
  524. package/src/hooks/guard/write-edit-tool-policy.ts +5 -5
  525. package/src/hooks/hashline-edit-diff-enhancer/hook.ts +106 -106
  526. package/src/hooks/hashline-read-enhancer/hook.ts +193 -193
  527. package/src/hooks/hashline-read-enhancer/index.ts +1 -1
  528. package/src/hooks/index.ts +58 -58
  529. package/src/hooks/interactive-bash-session/constants.ts +13 -13
  530. package/src/hooks/interactive-bash-session/hook.ts +125 -125
  531. package/src/hooks/interactive-bash-session/index.ts +3 -3
  532. package/src/hooks/interactive-bash-session/interactive-bash-session-tracker.ts +119 -119
  533. package/src/hooks/interactive-bash-session/parser.ts +118 -118
  534. package/src/hooks/interactive-bash-session/state-manager.ts +35 -35
  535. package/src/hooks/interactive-bash-session/storage.ts +59 -59
  536. package/src/hooks/interactive-bash-session/tmux-command-parser.ts +125 -125
  537. package/src/hooks/interactive-bash-session/types.ts +11 -11
  538. package/src/hooks/json-error-recovery/hook.ts +58 -58
  539. package/src/hooks/json-error-recovery/index.ts +6 -6
  540. package/src/hooks/keyword-detector/AGENTS.md +57 -57
  541. package/src/hooks/keyword-detector/analyze/default.ts +28 -28
  542. package/src/hooks/keyword-detector/analyze/index.ts +1 -1
  543. package/src/hooks/keyword-detector/constants.ts +45 -45
  544. package/src/hooks/keyword-detector/detector.ts +53 -53
  545. package/src/hooks/keyword-detector/hook.ts +143 -143
  546. package/src/hooks/keyword-detector/index.ts +5 -5
  547. package/src/hooks/keyword-detector/search/default.ts +20 -20
  548. package/src/hooks/keyword-detector/search/index.ts +1 -1
  549. package/src/hooks/keyword-detector/types.ts +4 -4
  550. package/src/hooks/keyword-detector/ultrawork/default.ts +302 -302
  551. package/src/hooks/keyword-detector/ultrawork/gemini.ts +290 -290
  552. package/src/hooks/keyword-detector/ultrawork/gpt.ts +173 -173
  553. package/src/hooks/keyword-detector/ultrawork/index.ts +56 -56
  554. package/src/hooks/keyword-detector/ultrawork/planner.ts +140 -140
  555. package/src/hooks/keyword-detector/ultrawork/source-detector.ts +65 -65
  556. package/src/hooks/legacy-plugin-toast/auto-migrate-runner.ts +2 -2
  557. package/src/hooks/legacy-plugin-toast/auto-migrate.ts +64 -64
  558. package/src/hooks/legacy-plugin-toast/hook.ts +68 -68
  559. package/src/hooks/legacy-plugin-toast/index.ts +1 -1
  560. package/src/hooks/legacy-plugin-toast/plugin-entry-migrator.ts +1 -1
  561. package/src/hooks/model-fallback/chat-message-fallback-handler.ts +74 -74
  562. package/src/hooks/model-fallback/hook.ts +201 -201
  563. package/src/hooks/model-fallback/next-fallback.ts +84 -84
  564. package/src/hooks/no-bob-gpt/hook.ts +56 -56
  565. package/src/hooks/no-bob-gpt/index.ts +1 -1
  566. package/src/hooks/no-coder-non-gpt/hook.ts +67 -67
  567. package/src/hooks/no-coder-non-gpt/index.ts +1 -1
  568. package/src/hooks/non-interactive-env/constants.ts +70 -70
  569. package/src/hooks/non-interactive-env/detector.ts +19 -19
  570. package/src/hooks/non-interactive-env/index.ts +5 -5
  571. package/src/hooks/non-interactive-env/non-interactive-env-hook.ts +73 -73
  572. package/src/hooks/non-interactive-env/types.ts +3 -3
  573. package/src/hooks/preemptive-compaction-degradation-monitor.ts +212 -212
  574. package/src/hooks/preemptive-compaction-no-text-tail.ts +70 -70
  575. package/src/hooks/preemptive-compaction.ts +218 -218
  576. package/src/hooks/question-label-truncator/hook.ts +62 -62
  577. package/src/hooks/question-label-truncator/index.ts +1 -1
  578. package/src/hooks/ralph-loop/AGENTS.md +62 -62
  579. package/src/hooks/ralph-loop/command-arguments.ts +30 -30
  580. package/src/hooks/ralph-loop/completion-handler.ts +65 -65
  581. package/src/hooks/ralph-loop/completion-promise-detector-test-input.ts +23 -23
  582. package/src/hooks/ralph-loop/completion-promise-detector.ts +165 -165
  583. package/src/hooks/ralph-loop/constants.ts +7 -7
  584. package/src/hooks/ralph-loop/continuation-prompt-builder.ts +77 -77
  585. package/src/hooks/ralph-loop/continuation-prompt-injector.ts +91 -91
  586. package/src/hooks/ralph-loop/index.ts +6 -6
  587. package/src/hooks/ralph-loop/iteration-continuation.ts +64 -64
  588. package/src/hooks/ralph-loop/logician-verification-detector.ts +88 -88
  589. package/src/hooks/ralph-loop/loop-session-recovery.ts +33 -33
  590. package/src/hooks/ralph-loop/loop-state-controller.ts +178 -178
  591. package/src/hooks/ralph-loop/message-storage-directory.ts +1 -1
  592. package/src/hooks/ralph-loop/pending-verification-handler.ts +152 -152
  593. package/src/hooks/ralph-loop/ralph-loop-event-handler.ts +231 -231
  594. package/src/hooks/ralph-loop/ralph-loop-hook.ts +90 -90
  595. package/src/hooks/ralph-loop/session-event-handler.ts +56 -56
  596. package/src/hooks/ralph-loop/session-reset-strategy.ts +69 -69
  597. package/src/hooks/ralph-loop/storage.ts +164 -164
  598. package/src/hooks/ralph-loop/types.ts +25 -25
  599. package/src/hooks/ralph-loop/verification-failure-handler.ts +103 -103
  600. package/src/hooks/ralph-loop/with-timeout.ts +20 -20
  601. package/src/hooks/read-image-resizer/hook.ts +209 -209
  602. package/src/hooks/read-image-resizer/image-dimensions.ts +191 -191
  603. package/src/hooks/read-image-resizer/image-resizer.ts +191 -191
  604. package/src/hooks/read-image-resizer/index.ts +1 -1
  605. package/src/hooks/read-image-resizer/png-fallback-resizer.ts +359 -359
  606. package/src/hooks/read-image-resizer/types.ts +16 -16
  607. package/src/hooks/rules-injector/AGENTS.md +53 -53
  608. package/src/hooks/rules-injector/cache.ts +27 -27
  609. package/src/hooks/rules-injector/constants.ts +31 -31
  610. package/src/hooks/rules-injector/finder.ts +3 -3
  611. package/src/hooks/rules-injector/hook.ts +94 -94
  612. package/src/hooks/rules-injector/index.ts +2 -2
  613. package/src/hooks/rules-injector/injector.ts +189 -189
  614. package/src/hooks/rules-injector/matcher.ts +63 -63
  615. package/src/hooks/rules-injector/output-path.ts +22 -22
  616. package/src/hooks/rules-injector/parser.ts +211 -211
  617. package/src/hooks/rules-injector/project-root-finder.ts +36 -36
  618. package/src/hooks/rules-injector/rule-distance.ts +53 -53
  619. package/src/hooks/rules-injector/rule-file-finder.ts +139 -139
  620. package/src/hooks/rules-injector/rule-file-scanner.ts +55 -55
  621. package/src/hooks/rules-injector/storage.ts +59 -59
  622. package/src/hooks/rules-injector/types.ts +57 -57
  623. package/src/hooks/runtime-fallback/AGENTS.md +102 -102
  624. package/src/hooks/runtime-fallback/agent-resolver.ts +50 -50
  625. package/src/hooks/runtime-fallback/auto-retry-signal.ts +32 -32
  626. package/src/hooks/runtime-fallback/auto-retry.ts +228 -228
  627. package/src/hooks/runtime-fallback/chat-message-handler.ts +62 -62
  628. package/src/hooks/runtime-fallback/constants.ts +47 -47
  629. package/src/hooks/runtime-fallback/error-classifier.ts +183 -183
  630. package/src/hooks/runtime-fallback/event-handler.ts +213 -213
  631. package/src/hooks/runtime-fallback/fallback-bootstrap-model.ts +63 -63
  632. package/src/hooks/runtime-fallback/fallback-models.ts +86 -86
  633. package/src/hooks/runtime-fallback/fallback-retry-dispatcher.ts +55 -55
  634. package/src/hooks/runtime-fallback/fallback-state.ts +74 -74
  635. package/src/hooks/runtime-fallback/hook.ts +87 -87
  636. package/src/hooks/runtime-fallback/index.ts +2 -2
  637. package/src/hooks/runtime-fallback/last-user-retry-parts.ts +20 -20
  638. package/src/hooks/runtime-fallback/message-update-handler.ts +168 -168
  639. package/src/hooks/runtime-fallback/retry-model-payload.ts +30 -30
  640. package/src/hooks/runtime-fallback/session-messages.ts +38 -38
  641. package/src/hooks/runtime-fallback/session-status-handler.ts +126 -126
  642. package/src/hooks/runtime-fallback/types.ts +77 -77
  643. package/src/hooks/runtime-fallback/visible-assistant-response.ts +80 -80
  644. package/src/hooks/session-notification-content.ts +145 -145
  645. package/src/hooks/session-notification-formatting.ts +25 -25
  646. package/src/hooks/session-notification-scheduler.ts +188 -188
  647. package/src/hooks/session-notification-sender.ts +117 -117
  648. package/src/hooks/session-notification-utils.ts +80 -80
  649. package/src/hooks/session-notification.ts +219 -219
  650. package/src/hooks/session-recovery/AGENTS.md +59 -59
  651. package/src/hooks/session-recovery/constants.ts +5 -5
  652. package/src/hooks/session-recovery/detect-error-type.ts +102 -102
  653. package/src/hooks/session-recovery/hook.ts +166 -166
  654. package/src/hooks/session-recovery/index.ts +7 -7
  655. package/src/hooks/session-recovery/recover-empty-content-message-sdk.ts +201 -201
  656. package/src/hooks/session-recovery/recover-thinking-block-order.ts +137 -137
  657. package/src/hooks/session-recovery/recover-thinking-disabled-violation.ts +75 -75
  658. package/src/hooks/session-recovery/recover-tool-result-missing.ts +108 -108
  659. package/src/hooks/session-recovery/recover-unavailable-tool.ts +108 -108
  660. package/src/hooks/session-recovery/resume.ts +49 -49
  661. package/src/hooks/session-recovery/storage/empty-messages.ts +47 -47
  662. package/src/hooks/session-recovery/storage/empty-text.ts +118 -118
  663. package/src/hooks/session-recovery/storage/message-dir.ts +1 -1
  664. package/src/hooks/session-recovery/storage/messages-reader.ts +83 -83
  665. package/src/hooks/session-recovery/storage/orphan-thinking-search.ts +43 -43
  666. package/src/hooks/session-recovery/storage/part-content.ts +28 -28
  667. package/src/hooks/session-recovery/storage/part-id.ts +5 -5
  668. package/src/hooks/session-recovery/storage/parts-reader.ts +56 -56
  669. package/src/hooks/session-recovery/storage/text-part-injector.ts +63 -63
  670. package/src/hooks/session-recovery/storage/thinking-block-search.ts +42 -42
  671. package/src/hooks/session-recovery/storage/thinking-prepend.ts +223 -223
  672. package/src/hooks/session-recovery/storage/thinking-strip.ts +67 -67
  673. package/src/hooks/session-recovery/storage.ts +34 -34
  674. package/src/hooks/session-recovery/types.ts +101 -101
  675. package/src/hooks/session-todo-status.ts +20 -20
  676. package/src/hooks/shared/compaction-model-resolver.ts +34 -34
  677. package/src/hooks/shared/shared/compaction-model-resolver.ts +34 -34
  678. package/src/hooks/start-work/context-info-builder.ts +319 -319
  679. package/src/hooks/start-work/index.ts +4 -4
  680. package/src/hooks/start-work/parse-user-request.ts +32 -32
  681. package/src/hooks/start-work/start-work-hook.ts +135 -135
  682. package/src/hooks/start-work/worktree-block.ts +11 -11
  683. package/src/hooks/start-work/worktree-detector.ts +77 -77
  684. package/src/hooks/stop-continuation-guard/hook.ts +122 -122
  685. package/src/hooks/stop-continuation-guard/index.ts +2 -2
  686. package/src/hooks/strategist-md-only/agent-matcher.ts +5 -5
  687. package/src/hooks/strategist-md-only/agent-resolution.ts +70 -70
  688. package/src/hooks/strategist-md-only/constants.ts +78 -78
  689. package/src/hooks/strategist-md-only/hook.ts +82 -82
  690. package/src/hooks/strategist-md-only/index.ts +2 -2
  691. package/src/hooks/strategist-md-only/path-policy.ts +41 -41
  692. package/src/hooks/sub-notepad/constants.ts +29 -29
  693. package/src/hooks/sub-notepad/hook.ts +44 -44
  694. package/src/hooks/sub-notepad/index.ts +3 -3
  695. package/src/hooks/task-reminder/hook.ts +59 -59
  696. package/src/hooks/task-reminder/index.ts +1 -1
  697. package/src/hooks/task-resume-info/hook.ts +39 -39
  698. package/src/hooks/task-resume-info/index.ts +1 -1
  699. package/src/hooks/tasks-todowrite-disabler/constants.ts +30 -30
  700. package/src/hooks/tasks-todowrite-disabler/hook.ts +34 -34
  701. package/src/hooks/tasks-todowrite-disabler/index.ts +2 -2
  702. package/src/hooks/think-mode/detector.ts +59 -59
  703. package/src/hooks/think-mode/hook.ts +76 -76
  704. package/src/hooks/think-mode/index.ts +5 -5
  705. package/src/hooks/think-mode/switcher.ts +100 -100
  706. package/src/hooks/think-mode/types.ts +16 -16
  707. package/src/hooks/thinking-block-validator/hook.ts +181 -181
  708. package/src/hooks/thinking-block-validator/index.ts +1 -1
  709. package/src/hooks/todo-continuation-enforcer/AGENTS.md +65 -65
  710. package/src/hooks/todo-continuation-enforcer/abort-detection.ts +17 -17
  711. package/src/hooks/todo-continuation-enforcer/compaction-guard.ts +39 -39
  712. package/src/hooks/todo-continuation-enforcer/constants.ts +25 -25
  713. package/src/hooks/todo-continuation-enforcer/continuation-injection.ts +222 -222
  714. package/src/hooks/todo-continuation-enforcer/countdown.ts +86 -86
  715. package/src/hooks/todo-continuation-enforcer/handler.ts +99 -99
  716. package/src/hooks/todo-continuation-enforcer/idle-event.ts +225 -225
  717. package/src/hooks/todo-continuation-enforcer/index.ts +59 -59
  718. package/src/hooks/todo-continuation-enforcer/message-directory.ts +1 -1
  719. package/src/hooks/todo-continuation-enforcer/non-idle-events.ts +107 -107
  720. package/src/hooks/todo-continuation-enforcer/pending-question-detection.ts +40 -40
  721. package/src/hooks/todo-continuation-enforcer/resolve-message-info.ts +48 -48
  722. package/src/hooks/todo-continuation-enforcer/session-state.ts +283 -283
  723. package/src/hooks/todo-continuation-enforcer/stagnation-detection.ts +36 -36
  724. package/src/hooks/todo-continuation-enforcer/todo.ts +11 -11
  725. package/src/hooks/todo-continuation-enforcer/token-limit-detection.ts +38 -38
  726. package/src/hooks/todo-continuation-enforcer/types.ts +74 -74
  727. package/src/hooks/todo-description-override/description.ts +28 -28
  728. package/src/hooks/todo-description-override/hook.ts +14 -14
  729. package/src/hooks/todo-description-override/index.ts +1 -1
  730. package/src/hooks/tool-output-truncator.ts +66 -66
  731. package/src/hooks/tool-pair-validator/hook.ts +184 -184
  732. package/src/hooks/tool-pair-validator/index.ts +1 -1
  733. package/src/hooks/unstable-agent-babysitter/index.ts +9 -9
  734. package/src/hooks/unstable-agent-babysitter/task-message-analyzer.ts +110 -110
  735. package/src/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.ts +238 -238
  736. package/src/hooks/webfetch-redirect-guard/constants.ts +11 -11
  737. package/src/hooks/webfetch-redirect-guard/hook.ts +123 -123
  738. package/src/hooks/webfetch-redirect-guard/index.ts +1 -1
  739. package/src/hooks/webfetch-redirect-guard/redirect-resolution.ts +89 -89
  740. package/src/hooks/write-existing-file-guard/hook.ts +108 -108
  741. package/src/hooks/write-existing-file-guard/index.ts +1 -1
  742. package/src/hooks/write-existing-file-guard/session-read-permissions.ts +36 -36
  743. package/src/hooks/write-existing-file-guard/tool-execute-before-handler.ts +176 -176
  744. package/src/index.ts +284 -284
  745. package/src/internals/plugins/pty/LICENSE +21 -21
  746. package/src/internals/plugins/pty/constants.ts +7 -7
  747. package/src/internals/plugins/pty/plugin.ts +28 -28
  748. package/src/internals/plugins/pty/pty/buffer.ts +75 -75
  749. package/src/internals/plugins/pty/pty/formatters.ts +22 -22
  750. package/src/internals/plugins/pty/pty/manager.ts +175 -175
  751. package/src/internals/plugins/pty/pty/notification-manager.ts +75 -75
  752. package/src/internals/plugins/pty/pty/output-manager.ts +29 -29
  753. package/src/internals/plugins/pty/pty/permissions.ts +115 -115
  754. package/src/internals/plugins/pty/pty/session-lifecycle.ts +161 -161
  755. package/src/internals/plugins/pty/pty/tools/kill.ts +41 -41
  756. package/src/internals/plugins/pty/pty/tools/kill.txt +25 -25
  757. package/src/internals/plugins/pty/pty/tools/list.ts +25 -25
  758. package/src/internals/plugins/pty/pty/tools/list.txt +22 -22
  759. package/src/internals/plugins/pty/pty/tools/read.ts +234 -234
  760. package/src/internals/plugins/pty/pty/tools/read.txt +39 -39
  761. package/src/internals/plugins/pty/pty/tools/spawn.ts +71 -71
  762. package/src/internals/plugins/pty/pty/tools/spawn.txt +47 -47
  763. package/src/internals/plugins/pty/pty/tools/write.ts +96 -96
  764. package/src/internals/plugins/pty/pty/tools/write.txt +28 -28
  765. package/src/internals/plugins/pty/pty/types.ts +67 -67
  766. package/src/internals/plugins/pty/pty/utils.ts +21 -21
  767. package/src/internals/plugins/pty/pty/wildcard.ts +62 -62
  768. package/src/internals/plugins/pty/shared/constants.ts +7 -7
  769. package/src/internals/plugins/pty/types.ts +7 -7
  770. package/src/internals/plugins/subtask2/LICENSE +128 -128
  771. package/src/internals/plugins/subtask2/commands/index.ts +7 -7
  772. package/src/internals/plugins/subtask2/commands/loader.ts +39 -39
  773. package/src/internals/plugins/subtask2/commands/manifest.ts +64 -64
  774. package/src/internals/plugins/subtask2/commands/resolver.ts +28 -28
  775. package/src/internals/plugins/subtask2/core/plugin.ts +52 -52
  776. package/src/internals/plugins/subtask2/core/state.ts +764 -764
  777. package/src/internals/plugins/subtask2/features/auto.ts +57 -57
  778. package/src/internals/plugins/subtask2/features/index.ts +9 -9
  779. package/src/internals/plugins/subtask2/features/inline-subtasks.ts +205 -205
  780. package/src/internals/plugins/subtask2/features/parallel.ts +148 -148
  781. package/src/internals/plugins/subtask2/features/results.ts +48 -48
  782. package/src/internals/plugins/subtask2/features/returns.ts +273 -273
  783. package/src/internals/plugins/subtask2/features/turns.ts +190 -190
  784. package/src/internals/plugins/subtask2/hooks/command-hooks.ts +283 -283
  785. package/src/internals/plugins/subtask2/hooks/message-hooks.ts +603 -603
  786. package/src/internals/plugins/subtask2/hooks/session-idle-hook.ts +358 -358
  787. package/src/internals/plugins/subtask2/hooks/tool-hooks.ts +309 -309
  788. package/src/internals/plugins/subtask2/loop.ts +122 -122
  789. package/src/internals/plugins/subtask2/parsing/auto.ts +33 -33
  790. package/src/internals/plugins/subtask2/parsing/commands.ts +154 -154
  791. package/src/internals/plugins/subtask2/parsing/frontmatter.ts +20 -20
  792. package/src/internals/plugins/subtask2/parsing/index.ts +10 -10
  793. package/src/internals/plugins/subtask2/parsing/overrides.ts +68 -68
  794. package/src/internals/plugins/subtask2/parsing/parallel.ts +88 -88
  795. package/src/internals/plugins/subtask2/parsing/turns.ts +78 -78
  796. package/src/internals/plugins/subtask2/types.ts +41 -41
  797. package/src/internals/plugins/subtask2/utils/config.ts +100 -100
  798. package/src/internals/plugins/subtask2/utils/index.ts +7 -7
  799. package/src/internals/plugins/subtask2/utils/logger.ts +67 -67
  800. package/src/internals/plugins/subtask2/utils/prompts.ts +117 -117
  801. package/src/internals/plugins/websearch-cited/LICENSE +214 -214
  802. package/src/internals/plugins/websearch-cited/codex_prompt.txt +79 -79
  803. package/src/internals/plugins/websearch-cited/google.ts +749 -749
  804. package/src/internals/plugins/websearch-cited/index.ts +301 -301
  805. package/src/internals/plugins/websearch-cited/openai.ts +407 -407
  806. package/src/internals/plugins/websearch-cited/openrouter.ts +190 -190
  807. package/src/internals/plugins/websearch-cited/types.ts +7 -7
  808. package/src/lsp/index.ts +15 -15
  809. package/src/mcp/context7.ts +9 -9
  810. package/src/mcp/grep-app.ts +6 -6
  811. package/src/mcp/index.ts +87 -87
  812. package/src/mcp/omo-mcp-index.ts +35 -35
  813. package/src/mcp/types.ts +9 -9
  814. package/src/mcp/websearch.ts +44 -44
  815. package/src/permissions/index.ts +25 -25
  816. package/src/plugin/AGENTS.md +54 -54
  817. package/src/plugin/available-categories.ts +24 -24
  818. package/src/plugin/chat-headers.ts +141 -141
  819. package/src/plugin/chat-message.ts +309 -309
  820. package/src/plugin/chat-params.ts +182 -182
  821. package/src/plugin/command-execute-before.ts +80 -80
  822. package/src/plugin/event.ts +639 -639
  823. package/src/plugin/hooks/create-continuation-hooks.ts +128 -128
  824. package/src/plugin/hooks/create-core-hooks.ts +47 -47
  825. package/src/plugin/hooks/create-session-hooks.ts +286 -286
  826. package/src/plugin/hooks/create-skill-hooks.ts +50 -50
  827. package/src/plugin/hooks/create-tool-guard-hooks.ts +159 -159
  828. package/src/plugin/hooks/create-transform-hooks.ts +85 -85
  829. package/src/plugin/messages-transform.ts +28 -28
  830. package/src/plugin/normalize-tool-arg-schemas.ts +75 -75
  831. package/src/plugin/recent-synthetic-idles.ts +20 -20
  832. package/src/plugin/session-agent-resolver.ts +37 -37
  833. package/src/plugin/session-status-normalizer.ts +22 -22
  834. package/src/plugin/skill-context.ts +132 -132
  835. package/src/plugin/system-transform.ts +6 -6
  836. package/src/plugin/tool-execute-after.ts +178 -178
  837. package/src/plugin/tool-execute-before.ts +222 -222
  838. package/src/plugin/tool-registry.ts +282 -282
  839. package/src/plugin/types.ts +26 -26
  840. package/src/plugin/ultrawork-db-model-override.ts +142 -142
  841. package/src/plugin/ultrawork-model-override.ts +196 -196
  842. package/src/plugin/ultrawork-variant-availability.ts +51 -51
  843. package/src/plugin/unstable-agent-babysitter.ts +41 -41
  844. package/src/plugin-config.ts +314 -314
  845. package/src/plugin-dispose.ts +51 -51
  846. package/src/plugin-handlers/AGENTS.md +92 -92
  847. package/src/plugin-handlers/agent-config-handler.ts +502 -502
  848. package/src/plugin-handlers/agent-key-remapper.ts +39 -39
  849. package/src/plugin-handlers/agent-override-protection.ts +38 -38
  850. package/src/plugin-handlers/agent-priority-order.ts +63 -63
  851. package/src/plugin-handlers/category-config-resolver.ts +9 -9
  852. package/src/plugin-handlers/command-config-handler.ts +105 -105
  853. package/src/plugin-handlers/config-handler.ts +61 -61
  854. package/src/plugin-handlers/index.ts +10 -10
  855. package/src/plugin-handlers/mcp-config-handler.ts +205 -205
  856. package/src/plugin-handlers/plan-model-inheritance.ts +27 -27
  857. package/src/plugin-handlers/plugin-components-loader.ts +70 -70
  858. package/src/plugin-handlers/provider-config-handler.ts +73 -73
  859. package/src/plugin-handlers/strategist-agent-config-builder.ts +128 -128
  860. package/src/plugin-handlers/tool-config-handler.ts +193 -193
  861. package/src/plugin-interface.ts +83 -83
  862. package/src/plugin-state.ts +18 -18
  863. package/src/shared/AGENTS.md +54 -54
  864. package/src/shared/agent-display-names.ts +182 -182
  865. package/src/shared/agent-tool-restrictions.ts +80 -80
  866. package/src/shared/agent-variant.ts +101 -101
  867. package/src/shared/agents-config-dir.ts +23 -23
  868. package/src/shared/archive-entry-validator.ts +83 -83
  869. package/src/shared/background-output-consumption.ts +69 -69
  870. package/src/shared/binary-downloader.ts +127 -127
  871. package/src/shared/claude-config-dir.ts +16 -16
  872. package/src/shared/closure-protocol.ts +53 -53
  873. package/src/shared/command-executor/embedded-commands.ts +26 -26
  874. package/src/shared/command-executor/execute-command.ts +28 -28
  875. package/src/shared/command-executor/execute-hook-command.ts +129 -129
  876. package/src/shared/command-executor/home-directory.ts +5 -5
  877. package/src/shared/command-executor/resolve-commands-in-text.ts +49 -49
  878. package/src/shared/command-executor/shell-path.ts +27 -27
  879. package/src/shared/command-executor.ts +5 -5
  880. package/src/shared/compaction-agent-config-checkpoint.ts +42 -42
  881. package/src/shared/compaction-marker.ts +61 -61
  882. package/src/shared/config-errors.ts +18 -18
  883. package/src/shared/connected-providers-cache.ts +215 -215
  884. package/src/shared/contains-path.ts +50 -50
  885. package/src/shared/context-limit-resolver.ts +42 -42
  886. package/src/shared/data-path.ts +64 -64
  887. package/src/shared/deep-merge.ts +53 -53
  888. package/src/shared/disabled-tools.ts +19 -19
  889. package/src/shared/dynamic-truncator.ts +222 -222
  890. package/src/shared/external-plugin-detector.ts +139 -139
  891. package/src/shared/fallback-chain-from-models.ts +124 -124
  892. package/src/shared/fallback-model-availability.ts +102 -102
  893. package/src/shared/file-reference-resolver.ts +99 -99
  894. package/src/shared/file-utils.ts +34 -34
  895. package/src/shared/first-message-variant.ts +28 -28
  896. package/src/shared/frontmatter.ts +31 -31
  897. package/src/shared/git-worktree/collect-git-diff-stats.ts +56 -56
  898. package/src/shared/git-worktree/format-file-changes.ts +46 -46
  899. package/src/shared/git-worktree/index.ts +7 -7
  900. package/src/shared/git-worktree/parse-diff-numstat.ts +27 -27
  901. package/src/shared/git-worktree/parse-status-porcelain-line.ts +27 -27
  902. package/src/shared/git-worktree/parse-status-porcelain.ts +15 -15
  903. package/src/shared/git-worktree/types.ts +8 -8
  904. package/src/shared/hook-disabled.ts +22 -22
  905. package/src/shared/index.ts +80 -80
  906. package/src/shared/internal-initiator-marker.ts +18 -18
  907. package/src/shared/is-abort-error.ts +20 -20
  908. package/src/shared/json-file-cache-store.ts +98 -98
  909. package/src/shared/jsonc-parser.ts +98 -98
  910. package/src/shared/known-variants.ts +16 -16
  911. package/src/shared/legacy-plugin-warning.ts +68 -68
  912. package/src/shared/load-opencode-plugins.ts +60 -60
  913. package/src/shared/log-legacy-plugin-startup-warning.ts +46 -46
  914. package/src/shared/logger.ts +48 -48
  915. package/src/shared/merge-categories.ts +18 -18
  916. package/src/shared/migrate-legacy-config-file.ts +66 -66
  917. package/src/shared/migrate-legacy-plugin-entry.ts +75 -75
  918. package/src/shared/migration/agent-category.ts +60 -60
  919. package/src/shared/migration/agent-names.ts +100 -100
  920. package/src/shared/migration/config-migration.ts +210 -210
  921. package/src/shared/migration/hook-names.ts +40 -40
  922. package/src/shared/migration/migrations-sidecar.ts +92 -92
  923. package/src/shared/migration/model-versions.ts +50 -50
  924. package/src/shared/migration.ts +5 -5
  925. package/src/shared/model-availability.ts +294 -294
  926. package/src/shared/model-capabilities/bundled-snapshot.ts +15 -15
  927. package/src/shared/model-capabilities/get-model-capabilities.ts +140 -140
  928. package/src/shared/model-capabilities/index.ts +9 -9
  929. package/src/shared/model-capabilities/runtime-model-readers.ts +190 -190
  930. package/src/shared/model-capabilities/types.ts +80 -80
  931. package/src/shared/model-capabilities-cache.ts +213 -213
  932. package/src/shared/model-capability-aliases.ts +108 -108
  933. package/src/shared/model-capability-guardrails.ts +149 -149
  934. package/src/shared/model-capability-heuristics.ts +32 -32
  935. package/src/shared/model-error-classifier.ts +214 -214
  936. package/src/shared/model-format-normalizer.ts +20 -20
  937. package/src/shared/model-normalization.ts +8 -8
  938. package/src/shared/model-requirements.ts +26 -26
  939. package/src/shared/model-resolution-pipeline.ts +216 -216
  940. package/src/shared/model-resolution-types.ts +41 -41
  941. package/src/shared/model-resolver.ts +106 -106
  942. package/src/shared/model-sanitizer.ts +12 -12
  943. package/src/shared/model-settings-compatibility.ts +200 -200
  944. package/src/shared/model-suggestion-retry.ts +182 -182
  945. package/src/shared/normalize-sdk-response.ts +36 -36
  946. package/src/shared/opencode-command-dirs.ts +36 -36
  947. package/src/shared/opencode-config-dir-types.ts +15 -15
  948. package/src/shared/opencode-config-dir.ts +135 -135
  949. package/src/shared/opencode-http-api.ts +139 -139
  950. package/src/shared/opencode-message-dir.ts +29 -29
  951. package/src/shared/opencode-server-auth.ts +190 -190
  952. package/src/shared/opencode-storage-detection.ts +33 -33
  953. package/src/shared/opencode-storage-paths.ts +6 -6
  954. package/src/shared/opencode-version.ts +80 -80
  955. package/src/shared/parse-tools-config.ts +25 -25
  956. package/src/shared/pattern-matcher.ts +46 -46
  957. package/src/shared/permission-compat.ts +86 -86
  958. package/src/shared/plugin-command-discovery.ts +28 -28
  959. package/src/shared/plugin-entry-migrator.ts +21 -21
  960. package/src/shared/plugin-identity.ts +8 -8
  961. package/src/shared/port-utils.ts +48 -48
  962. package/src/shared/project-discovery-dirs.ts +101 -101
  963. package/src/shared/prompt-timeout-context.ts +49 -49
  964. package/src/shared/prompt-tools.ts +35 -35
  965. package/src/shared/provider-model-id-transform.ts +58 -58
  966. package/src/shared/question-denied-session-permission.ts +9 -9
  967. package/src/shared/record-type-guard.ts +3 -3
  968. package/src/shared/resolve-agent-definition-paths.ts +22 -22
  969. package/src/shared/retry-status-utils.ts +19 -19
  970. package/src/shared/runtime-plugin-config.ts +98 -98
  971. package/src/shared/safe-create-hook.ts +24 -24
  972. package/src/shared/session-category-registry.ts +27 -27
  973. package/src/shared/session-cursor.ts +108 -108
  974. package/src/shared/session-directory-resolver.ts +41 -41
  975. package/src/shared/session-injected-paths.ts +59 -59
  976. package/src/shared/session-model-state.ts +15 -15
  977. package/src/shared/session-prompt-params-helpers.ts +31 -31
  978. package/src/shared/session-prompt-params-state.ts +37 -37
  979. package/src/shared/session-tools-store.ts +18 -18
  980. package/src/shared/session-utils.ts +25 -25
  981. package/src/shared/shell-env.ts +175 -175
  982. package/src/shared/skill-path-resolver.ts +26 -26
  983. package/src/shared/snake-case.ts +44 -44
  984. package/src/shared/spawn-with-windows-hide.ts +84 -84
  985. package/src/shared/system-directive.ts +67 -67
  986. package/src/shared/task-system-enabled.ts +9 -9
  987. package/src/shared/tmux/constants.ts +12 -12
  988. package/src/shared/tmux/index.ts +3 -3
  989. package/src/shared/tmux/tmux-utils/environment.ts +13 -13
  990. package/src/shared/tmux/tmux-utils/layout.ts +96 -96
  991. package/src/shared/tmux/tmux-utils/pane-close.ts +48 -48
  992. package/src/shared/tmux/tmux-utils/pane-dimensions.ts +28 -28
  993. package/src/shared/tmux/tmux-utils/pane-replace.ts +73 -73
  994. package/src/shared/tmux/tmux-utils/pane-spawn.ts +94 -94
  995. package/src/shared/tmux/tmux-utils/server-health.ts +62 -62
  996. package/src/shared/tmux/tmux-utils/session-spawn.ts +145 -145
  997. package/src/shared/tmux/tmux-utils/window-spawn.ts +93 -93
  998. package/src/shared/tmux/tmux-utils.ts +15 -15
  999. package/src/shared/tmux/types.ts +4 -4
  1000. package/src/shared/tool-name.ts +27 -27
  1001. package/src/shared/truncate-description.ts +11 -11
  1002. package/src/shared/vision-capable-models-cache.ts +17 -17
  1003. package/src/shared/write-file-atomically.ts +31 -31
  1004. package/src/shared/zip-entry-listing/powershell-zip-entry-listing.ts +99 -99
  1005. package/src/shared/zip-entry-listing/python-zip-entry-listing.ts +55 -55
  1006. package/src/shared/zip-entry-listing/read-zip-symlink-target.ts +23 -23
  1007. package/src/shared/zip-entry-listing/tar-zip-entry-listing.ts +93 -93
  1008. package/src/shared/zip-entry-listing/zipinfo-zip-entry-listing.ts +72 -72
  1009. package/src/shared/zip-entry-listing.ts +13 -13
  1010. package/src/shared/zip-extractor.ts +118 -118
  1011. package/src/skills/index.ts +56 -56
  1012. package/src/testing/module-mock-lifecycle.ts +143 -143
  1013. package/src/tools/AGENTS.md +108 -108
  1014. package/src/tools/ast-grep/cli-binary-path-resolution.ts +60 -60
  1015. package/src/tools/ast-grep/cli.ts +177 -177
  1016. package/src/tools/ast-grep/constants.ts +5 -5
  1017. package/src/tools/ast-grep/downloader.ts +119 -119
  1018. package/src/tools/ast-grep/environment-check.ts +89 -89
  1019. package/src/tools/ast-grep/index.ts +5 -5
  1020. package/src/tools/ast-grep/language-support.ts +63 -63
  1021. package/src/tools/ast-grep/process-output-timeout.ts +28 -28
  1022. package/src/tools/ast-grep/result-formatter.ts +102 -102
  1023. package/src/tools/ast-grep/sg-cli-path.ts +102 -102
  1024. package/src/tools/ast-grep/sg-compact-json-output.ts +54 -54
  1025. package/src/tools/ast-grep/tools.ts +117 -117
  1026. package/src/tools/ast-grep/types.ts +61 -61
  1027. package/src/tools/background-task/AGENTS.md +53 -53
  1028. package/src/tools/background-task/clients.ts +32 -32
  1029. package/src/tools/background-task/constants.ts +9 -9
  1030. package/src/tools/background-task/create-background-cancel.ts +115 -115
  1031. package/src/tools/background-task/create-background-output.ts +159 -159
  1032. package/src/tools/background-task/create-background-task.ts +126 -126
  1033. package/src/tools/background-task/delay.ts +3 -3
  1034. package/src/tools/background-task/full-session-format.ts +148 -148
  1035. package/src/tools/background-task/index.ts +8 -8
  1036. package/src/tools/background-task/message-dir.ts +1 -1
  1037. package/src/tools/background-task/session-messages.ts +22 -22
  1038. package/src/tools/background-task/task-result-format.ts +113 -113
  1039. package/src/tools/background-task/task-status-format.ts +72 -72
  1040. package/src/tools/background-task/time-format.ts +30 -30
  1041. package/src/tools/background-task/tools.ts +11 -11
  1042. package/src/tools/background-task/truncate-text.ts +4 -4
  1043. package/src/tools/background-task/types.ts +72 -72
  1044. package/src/tools/call-omo-agent/AGENTS.md +51 -51
  1045. package/src/tools/call-omo-agent/agent-resolver.ts +64 -64
  1046. package/src/tools/call-omo-agent/background-agent-executor.ts +91 -91
  1047. package/src/tools/call-omo-agent/background-executor.ts +98 -98
  1048. package/src/tools/call-omo-agent/completion-poller.ts +65 -65
  1049. package/src/tools/call-omo-agent/constants.ts +23 -23
  1050. package/src/tools/call-omo-agent/index.ts +3 -3
  1051. package/src/tools/call-omo-agent/message-dir.ts +1 -1
  1052. package/src/tools/call-omo-agent/message-processor.ts +86 -86
  1053. package/src/tools/call-omo-agent/message-storage-directory.ts +1 -1
  1054. package/src/tools/call-omo-agent/session-creator.ts +70 -70
  1055. package/src/tools/call-omo-agent/subagent-session-creator.ts +74 -74
  1056. package/src/tools/call-omo-agent/sync-executor.ts +148 -148
  1057. package/src/tools/call-omo-agent/tool-context-with-metadata.ts +10 -10
  1058. package/src/tools/call-omo-agent/tools.ts +192 -192
  1059. package/src/tools/call-omo-agent/types.ts +34 -34
  1060. package/src/tools/delegate-task/AGENTS.md +58 -58
  1061. package/src/tools/delegate-task/anthropic-categories.ts +62 -62
  1062. package/src/tools/delegate-task/available-models.ts +64 -64
  1063. package/src/tools/delegate-task/background-continuation.ts +68 -68
  1064. package/src/tools/delegate-task/background-task.ts +165 -165
  1065. package/src/tools/delegate-task/builtin-categories.ts +33 -33
  1066. package/src/tools/delegate-task/builtin-category-definition.ts +8 -8
  1067. package/src/tools/delegate-task/cancel-unstable-agent-task.ts +19 -19
  1068. package/src/tools/delegate-task/categories.ts +77 -77
  1069. package/src/tools/delegate-task/category-resolver.ts +310 -310
  1070. package/src/tools/delegate-task/constants.ts +351 -351
  1071. package/src/tools/delegate-task/delegated-model-config.ts +20 -20
  1072. package/src/tools/delegate-task/error-formatting.ts +51 -51
  1073. package/src/tools/delegate-task/executor-types.ts +39 -39
  1074. package/src/tools/delegate-task/executor.ts +16 -16
  1075. package/src/tools/delegate-task/fallback-entry-resolution.ts +27 -27
  1076. package/src/tools/delegate-task/fallback-entry-settings.ts +20 -20
  1077. package/src/tools/delegate-task/google-categories.ts +130 -130
  1078. package/src/tools/delegate-task/index.ts +4 -4
  1079. package/src/tools/delegate-task/kimi-categories.ts +40 -40
  1080. package/src/tools/delegate-task/model-selection.ts +201 -201
  1081. package/src/tools/delegate-task/model-string-parser.ts +63 -63
  1082. package/src/tools/delegate-task/openai-categories.ts +128 -128
  1083. package/src/tools/delegate-task/parent-context-resolver.ts +47 -47
  1084. package/src/tools/delegate-task/prompt-builder.ts +107 -107
  1085. package/src/tools/delegate-task/resolve-call-id.ts +5 -5
  1086. package/src/tools/delegate-task/skill-resolver.ts +22 -22
  1087. package/src/tools/delegate-task/sub-agent.ts +70 -70
  1088. package/src/tools/delegate-task/subagent-discovery.ts +152 -152
  1089. package/src/tools/delegate-task/subagent-resolver.ts +225 -225
  1090. package/src/tools/delegate-task/sync-continuation-deps.ts +9 -9
  1091. package/src/tools/delegate-task/sync-continuation.ts +149 -149
  1092. package/src/tools/delegate-task/sync-prompt-sender.ts +137 -137
  1093. package/src/tools/delegate-task/sync-result-fetcher.ts +60 -60
  1094. package/src/tools/delegate-task/sync-session-creator.ts +29 -29
  1095. package/src/tools/delegate-task/sync-session-poller.ts +188 -188
  1096. package/src/tools/delegate-task/sync-task-deps.ts +13 -13
  1097. package/src/tools/delegate-task/sync-task-fallback.ts +68 -68
  1098. package/src/tools/delegate-task/sync-task.ts +243 -243
  1099. package/src/tools/delegate-task/time-formatter.ts +13 -13
  1100. package/src/tools/delegate-task/timing.ts +46 -46
  1101. package/src/tools/delegate-task/token-limiter.ts +123 -123
  1102. package/src/tools/delegate-task/tools.ts +259 -259
  1103. package/src/tools/delegate-task/types.ts +89 -89
  1104. package/src/tools/delegate-task/unstable-agent-task.ts +243 -243
  1105. package/src/tools/glob/cli.ts +206 -206
  1106. package/src/tools/glob/constants.ts +12 -12
  1107. package/src/tools/glob/index.ts +1 -1
  1108. package/src/tools/glob/result-formatter.ts +26 -26
  1109. package/src/tools/glob/tools.ts +49 -49
  1110. package/src/tools/glob/types.ts +23 -23
  1111. package/src/tools/grep/cli.ts +279 -279
  1112. package/src/tools/grep/constants.ts +141 -141
  1113. package/src/tools/grep/downloader.ts +128 -128
  1114. package/src/tools/grep/index.ts +1 -1
  1115. package/src/tools/grep/result-formatter.ts +60 -60
  1116. package/src/tools/grep/tools.ts +75 -75
  1117. package/src/tools/grep/types.ts +42 -42
  1118. package/src/tools/hashline-edit/AGENTS.md +92 -92
  1119. package/src/tools/hashline-edit/autocorrect-replacement-lines.ts +179 -179
  1120. package/src/tools/hashline-edit/constants.ts +10 -10
  1121. package/src/tools/hashline-edit/diff-utils.ts +53 -53
  1122. package/src/tools/hashline-edit/edit-deduplication.ts +43 -43
  1123. package/src/tools/hashline-edit/edit-operation-primitives.ts +126 -126
  1124. package/src/tools/hashline-edit/edit-operations.ts +103 -103
  1125. package/src/tools/hashline-edit/edit-ordering.ts +56 -56
  1126. package/src/tools/hashline-edit/edit-text-normalization.ts +111 -111
  1127. package/src/tools/hashline-edit/file-text-canonicalization.ts +44 -44
  1128. package/src/tools/hashline-edit/formatter-trigger.ts +132 -132
  1129. package/src/tools/hashline-edit/hash-computation.ts +154 -154
  1130. package/src/tools/hashline-edit/hashline-chunk-formatter.ts +52 -52
  1131. package/src/tools/hashline-edit/hashline-edit-diff.ts +31 -31
  1132. package/src/tools/hashline-edit/hashline-edit-executor.ts +197 -197
  1133. package/src/tools/hashline-edit/index.ts +20 -20
  1134. package/src/tools/hashline-edit/normalize-edits.ts +95 -95
  1135. package/src/tools/hashline-edit/tool-description.ts +95 -95
  1136. package/src/tools/hashline-edit/tools.ts +42 -42
  1137. package/src/tools/hashline-edit/types.ts +20 -20
  1138. package/src/tools/hashline-edit/validation.ts +181 -181
  1139. package/src/tools/index.ts +64 -64
  1140. package/src/tools/interactive-bash/constants.ts +18 -18
  1141. package/src/tools/interactive-bash/index.ts +4 -4
  1142. package/src/tools/interactive-bash/tmux-path-resolver.ts +71 -71
  1143. package/src/tools/interactive-bash/tools.ts +136 -136
  1144. package/src/tools/look-at/assistant-message-extractor.ts +67 -67
  1145. package/src/tools/look-at/constants.ts +3 -3
  1146. package/src/tools/look-at/image-converter.ts +164 -164
  1147. package/src/tools/look-at/index.ts +3 -3
  1148. package/src/tools/look-at/look-at-arguments.ts +34 -34
  1149. package/src/tools/look-at/mime-type-inference.ts +94 -94
  1150. package/src/tools/look-at/multimodal-agent-metadata.ts +166 -166
  1151. package/src/tools/look-at/multimodal-fallback-chain.ts +66 -66
  1152. package/src/tools/look-at/session-poller.ts +42 -42
  1153. package/src/tools/look-at/tools.ts +245 -245
  1154. package/src/tools/look-at/types.ts +5 -5
  1155. package/src/tools/lsp/AGENTS.md +70 -70
  1156. package/src/tools/lsp/client.ts +3 -3
  1157. package/src/tools/lsp/config.ts +3 -3
  1158. package/src/tools/lsp/constants.ts +7 -7
  1159. package/src/tools/lsp/diagnostics-tool.ts +75 -75
  1160. package/src/tools/lsp/directory-diagnostics.ts +163 -163
  1161. package/src/tools/lsp/find-references-tool.ts +43 -43
  1162. package/src/tools/lsp/goto-definition-tool.ts +42 -42
  1163. package/src/tools/lsp/index.ts +9 -9
  1164. package/src/tools/lsp/infer-extension.ts +65 -65
  1165. package/src/tools/lsp/language-config.ts +5 -5
  1166. package/src/tools/lsp/language-mappings.ts +171 -171
  1167. package/src/tools/lsp/lsp-client-connection.ts +66 -66
  1168. package/src/tools/lsp/lsp-client-transport.ts +210 -210
  1169. package/src/tools/lsp/lsp-client-wrapper.ts +116 -116
  1170. package/src/tools/lsp/lsp-client.ts +129 -129
  1171. package/src/tools/lsp/lsp-formatters.ts +193 -193
  1172. package/src/tools/lsp/lsp-manager-process-cleanup.ts +83 -83
  1173. package/src/tools/lsp/lsp-manager-temp-directory-cleanup.ts +29 -29
  1174. package/src/tools/lsp/lsp-process.ts +158 -158
  1175. package/src/tools/lsp/lsp-server.ts +217 -217
  1176. package/src/tools/lsp/rename-tools.ts +53 -53
  1177. package/src/tools/lsp/server-config-loader.ts +116 -116
  1178. package/src/tools/lsp/server-definitions.ts +91 -91
  1179. package/src/tools/lsp/server-installation.ts +58 -58
  1180. package/src/tools/lsp/server-path-bases.ts +16 -16
  1181. package/src/tools/lsp/server-resolution.ts +109 -109
  1182. package/src/tools/lsp/symbols-tool.ts +76 -76
  1183. package/src/tools/lsp/tools.ts +5 -5
  1184. package/src/tools/lsp/types.ts +124 -124
  1185. package/src/tools/lsp/workspace-edit.ts +121 -121
  1186. package/src/tools/session-manager/constants.ts +93 -93
  1187. package/src/tools/session-manager/file-storage.ts +203 -203
  1188. package/src/tools/session-manager/index.ts +3 -3
  1189. package/src/tools/session-manager/sdk-storage.ts +135 -135
  1190. package/src/tools/session-manager/sdk-unavailable.ts +43 -43
  1191. package/src/tools/session-manager/session-formatter.ts +199 -199
  1192. package/src/tools/session-manager/storage.ts +161 -161
  1193. package/src/tools/session-manager/tools.ts +197 -197
  1194. package/src/tools/session-manager/types.ts +99 -99
  1195. package/src/tools/shared/semaphore.ts +32 -32
  1196. package/src/tools/skill/constants.ts +14 -14
  1197. package/src/tools/skill/description-formatter.ts +61 -61
  1198. package/src/tools/skill/index.ts +3 -3
  1199. package/src/tools/skill/mcp-capability-formatter.ts +97 -97
  1200. package/src/tools/skill/native-skills.ts +62 -62
  1201. package/src/tools/skill/scope-priority.ts +17 -17
  1202. package/src/tools/skill/skill-body.ts +26 -26
  1203. package/src/tools/skill/skill-matcher.ts +40 -40
  1204. package/src/tools/skill/tools.ts +196 -196
  1205. package/src/tools/skill/types.ts +48 -48
  1206. package/src/tools/skill-mcp/constants.ts +9 -9
  1207. package/src/tools/skill-mcp/index.ts +3 -3
  1208. package/src/tools/skill-mcp/tools.ts +204 -204
  1209. package/src/tools/skill-mcp/types.ts +8 -8
  1210. package/src/tools/slashcommand/command-discovery.ts +161 -161
  1211. package/src/tools/slashcommand/command-output-formatter.ts +75 -75
  1212. package/src/tools/slashcommand/index.ts +2 -2
  1213. package/src/tools/slashcommand/types.ts +21 -21
  1214. package/src/tools/task/index.ts +7 -7
  1215. package/src/tools/task/task-create.ts +113 -113
  1216. package/src/tools/task/task-get.ts +47 -47
  1217. package/src/tools/task/task-list.ts +79 -79
  1218. package/src/tools/task/task-update.ts +152 -152
  1219. package/src/tools/task/todo-sync.ts +205 -205
  1220. package/src/tools/task/types.ts +77 -77
  1221. package/dist/ast-grep-napi.linux-x64-gnu-d8zfa2q0.node +0 -0
  1222. package/dist/ast-grep-napi.linux-x64-musl-0wywtr8y.node +0 -0
  1223. package/dist/prompt-snapshots/bob.default.md +0 -514
  1224. package/dist/prompt-snapshots/bob.gemini.md +0 -725
  1225. package/dist/prompt-snapshots/bob.gpt-pro.md +0 -514
  1226. package/dist/prompt-snapshots/coder.gpt-codex.md +0 -299
  1227. package/dist/prompt-snapshots/coder.gpt-pro.md +0 -315
  1228. package/dist/prompt-snapshots/coder.gpt.md +0 -315
  1229. package/dist/prompt-snapshots/critic.md +0 -68
  1230. package/dist/prompt-snapshots/guard.md +0 -599
  1231. package/dist/prompt-snapshots/multimodal.md +0 -39
  1232. package/dist/prompt-snapshots/platform-manager.md +0 -222
  1233. package/dist/prompt-snapshots/quality-guardian.md +0 -32
  1234. package/dist/prompt-snapshots/researcher.md +0 -29
  1235. package/dist/prompt-snapshots/strategist.md +0 -573
  1236. package/dist/prompt-snapshots/sub.md +0 -105
@@ -1,404 +1,404 @@
1
- /** gpt-codex optimized Coder prompt */
2
- import { GPT_APPLY_PATCH_GUIDANCE } from "../gpt-apply-patch-guard";
3
- import type { AgentConfig } from "@opencode-ai/sdk";
4
- import type { AgentMode } from "../types";
5
- import type {
6
- AvailableAgent,
7
- AvailableTool,
8
- AvailableSkill,
9
- AvailableCategory,
10
- } from "../dynamic-agent-prompt-builder";
11
- import {
12
- buildKeyTriggersSection,
13
- buildToolSelectionTable,
14
- buildResearcherSection,
15
- buildCategorySkillsDelegationGuide,
16
- buildDelegationTable,
17
- buildStrategistAndCriticSection,
18
- buildHardRulesSection,
19
- buildToolCallFormatSection,
20
- buildAntiDuplicationSection,
21
- categorizeTools,
22
- } from "../dynamic-agent-prompt-builder";
23
- import { buildTodoDisciplineSection } from "../prompt-library/todo-discipline";
24
- import { buildIntentGate } from "../prompt-library/intent-gate";
25
- const MODE: AgentMode = "primary";
26
-
27
- function canonicalizeCriticSection(section: string): string {
28
- return section
29
- .replace(/\bLogician\b/g, "Critic")
30
- .replace(/\blogician\b/g, "critic");
31
- }
32
-
33
- /**
34
- * Coder - The Autonomous Deep Worker
35
- *
36
- * Named after the Greek god of forge, fire, metalworking, and craftsmanship.
37
- * Inspired by AmpCode's deep mode - autonomous problem-solving with thorough research.
38
- *
39
- * Powered by GPT Codex models.
40
- * Optimized for:
41
- * - Goal-oriented autonomous execution (not step-by-step instructions)
42
- * - Deep exploration before decisive action
43
- * - Active use of explore/librarian agents for comprehensive context
44
- * - End-to-end task completion without premature stopping
45
- */
46
-
47
- export function buildCoderPrompt(
48
- availableAgents: AvailableAgent[] = [],
49
- availableTools: AvailableTool[] = [],
50
- availableSkills: AvailableSkill[] = [],
51
- availableCategories: AvailableCategory[] = [],
52
- useTaskSystem = false,
53
- ): string {
54
- const keyTriggers = buildKeyTriggersSection(availableAgents, availableSkills);
55
- const toolSelection = buildToolSelectionTable(
56
- availableAgents,
57
- availableTools,
58
- availableSkills,
59
- );
60
- const researcherSection = buildResearcherSection(availableAgents);
61
- const categorySkillsGuide = buildCategorySkillsDelegationGuide(
62
- availableCategories,
63
- availableSkills,
64
- );
65
- const delegationTable = buildDelegationTable(availableAgents);
66
- const criticSection = canonicalizeCriticSection(buildStrategistAndCriticSection(availableAgents));
67
- const hardRules = buildHardRulesSection();
68
- const todoDiscipline = buildTodoDisciplineSection(useTaskSystem);
69
- const toolCallFormat = buildToolCallFormatSection();
70
- return `You are Coder, an autonomous deep worker for software engineering.
71
-
72
- ## Identity
73
-
74
- You operate as a **Senior Staff Engineer**. You do not guess. You verify. You do not stop early. You complete.
75
-
76
- **You must keep going until the task is completely resolved, before ending your turn.** Persist until the task is fully handled end-to-end within the current turn. Persevere even when tool calls fail. Only terminate your turn when you are sure the problem is solved and verified.
77
-
78
- When blocked: try a different approach → decompose the problem → challenge assumptions → research how others solved it.
79
- Asking the user is the LAST resort after exhausting creative alternatives.
80
-
81
- ### Do NOT Ask - Just Do
82
-
83
- **FORBIDDEN:**
84
- - Asking permission in any form ("Should I proceed?", "Would you like me to...?", "I can do X if you want") → JUST DO IT.
85
- - "Do you want me to run tests?" → RUN THEM.
86
- - "I noticed Y, should I fix it?" → FIX IT OR NOTE IN FINAL MESSAGE.
87
- - Stopping after partial implementation → 100% OR NOTHING.
88
- - Answering a question then stopping → The question implies action. DO THE ACTION.
89
- - "I'll do X" / "I recommend X" then ending turn → You COMMITTED to X. DO X NOW before ending.
90
- - Explaining findings without acting on them → ACT on your findings immediately.
91
-
92
- **CORRECT:**
93
- - Keep going until COMPLETELY done
94
- - Run verification (lint, tests, build) WITHOUT asking
95
- - Make decisions. Course-correct only on CONCRETE failure
96
- - Note assumptions in final message, not as questions mid-work
97
- - Need context? Fire researcher in background IMMEDIATELY - continue only with non-overlapping work while they search
98
- - User asks "did you do X?" and you didn't → Acknowledge briefly, DO X immediately
99
- - User asks a question implying work → Answer briefly, DO the implied work in the same turn
100
- - You wrote a plan in your response → EXECUTE the plan before ending turn - plans are starting lines, not finish lines
101
-
102
- ### Task Scope Clarification
103
-
104
- You handle multi-step sub-tasks of a SINGLE GOAL. What you receive is ONE goal that may require multiple steps to complete - this is your primary use case. Only reject when given MULTIPLE INDEPENDENT goals in one request.
105
-
106
- ## Hard Constraints
107
-
108
- ${hardRules}
109
-
110
- ${toolCallFormat}
111
- ## Phase 0 - Intent Gate (EVERY task)
112
-
113
- ${keyTriggers}
114
-
115
- ${buildIntentGate('executor')}
116
-
117
- ---
118
-
119
- ## Exploration & Research
120
-
121
- ${toolSelection}
122
-
123
- ${researcherSection}
124
-
125
- ### Parallel Execution & Tool Usage (DEFAULT)
126
-
127
- **Parallelize EVERYTHING. Independent reads, searches, and agents run SIMULTANEOUSLY.**
128
-
129
- <tool_usage_rules>
130
- - Parallelize independent tool calls: multiple file reads, grep searches, agent fires - all at once
131
- - Explore/Librarian = background grep. ALWAYS \`run_in_background=true\`, ALWAYS parallel
132
- - After any file edit: restate what changed, where, and what validation follows
133
- - Prefer tools over guessing whenever you need specific data (files, configs, patterns)
134
- </tool_usage_rules>
135
-
136
- **How to call researcher:**
137
- \`\`\`
138
- // Codebase search - use subagent_type="researcher"
139
- task(subagent_type="researcher", run_in_background=true, load_skills=[], description="Find [what]", prompt="[CONTEXT]: ... [GOAL]: ... [REQUEST]: ...")
140
-
141
- // External docs/OSS search - use subagent_type="researcher"
142
- task(subagent_type="researcher", run_in_background=true, load_skills=[], description="Find [what]", prompt="[CONTEXT]: ... [GOAL]: ... [REQUEST]: ...")
143
-
144
- \`\`\`
145
-
146
- Prompt structure for each agent:
147
- - [CONTEXT]: Task, files/modules involved, approach
148
- - [GOAL]: Specific outcome needed - what decision this unblocks
149
- - [DOWNSTREAM]: How results will be used
150
- - [REQUEST]: What to find, format to return, what to SKIP
151
-
152
- **Rules:**
153
- - Fire 2-5 researcher agents in parallel for any non-trivial codebase question
154
- - Parallelize independent file reads - don't read files one at a time
155
- - NEVER use \`run_in_background=false\` for researcher
156
- - Continue only with non-overlapping work after launching background agents
157
- - Collect results with \`background_output(task_id="...")\` when needed
158
- - BEFORE final answer, cancel DISPOSABLE tasks individually: \`background_cancel(taskId="bg_explore_xxx")\`, \`background_cancel(taskId="bg_librarian_xxx")\`
159
- - **NEVER use \`background_cancel(all=true)\`** - it kills tasks whose results you haven't collected yet
160
-
161
- ${buildAntiDuplicationSection()}
162
-
163
- ### Search Stop Conditions
164
-
165
- STOP searching when:
166
- - You have enough context to proceed confidently
167
- - Same information appearing across multiple sources
168
- - 2 search iterations yielded no new useful data
169
- - Direct answer found
170
-
171
- **DO NOT over-explore. Time is precious.**
172
-
173
- ---
174
-
175
- ## Execution Loop (RESEARCH → PLAN → DECIDE → EXECUTE → VERIFY)
176
-
177
- 1. **RESEARCH**: Fire 2-5 researcher agents IN PARALLEL + direct tool reads simultaneously
178
- → Tell user: "Checking [area] for [pattern]..."
179
- 2. **PLAN**: List files to modify, specific changes, dependencies, complexity estimate
180
- → Tell user: "Found [X]. Here's my plan: [clear summary]."
181
- 3. **DECIDE**: Trivial (<10 lines, single file) → self. Complex (multi-file, >100 lines) → MUST delegate
182
- 4. **EXECUTE**: Surgical changes yourself, or exhaustive context in delegation prompts
183
- → Before large edits: "Modifying [files] - [what and why]."
184
- → After edits: "Updated [file] - [what changed]. Running verification."
185
- 5. **VERIFY**: \`lsp_diagnostics\` on ALL modified files → build → tests
186
- → Tell user: "[result]. [any issues or all clear]."
187
-
188
- **If verification fails: return to Step 1 (max 3 iterations, then consult Strategist/Critic).**
189
-
190
- ---
191
-
192
- ${todoDiscipline}
193
-
194
- ---
195
-
196
- ## Progress Updates
197
-
198
- **Report progress proactively - the user should always know what you're doing and why.**
199
-
200
- When to update:
201
- - **Before exploration**: "Checking the repo structure for auth patterns..."
202
- - **After discovery**: "Found the config in \`src/config/\`. The pattern uses factory functions."
203
- - **Before large edits**: "About to refactor the handler - touching 3 files."
204
- - **On phase transitions**: "Exploration done. Moving to implementation."
205
- - **On blockers**: "Hit a snag with the types - trying generics instead."
206
-
207
- Style:
208
- - 1-2 sentences, friendly and concrete - explain in plain language so anyone can follow
209
- - Include at least one specific detail (file path, pattern found, decision made)
210
- - When explaining technical decisions, explain the WHY - not just what you did
211
- - Don't narrate every \`grep\` or \`cat\` - but DO signal meaningful progress
212
-
213
- **Examples:**
214
- - "Explored the repo - auth middleware lives in \`src/middleware/\`. Now patching the handler."
215
- - "All tests passing. Just cleaning up the 2 lint errors from my changes."
216
- - "Found the pattern in \`utils/parser.ts\`. Applying the same approach to the new module."
217
- - "Hit a snag with the types - trying an alternative approach using generics instead."
218
-
219
- ---
220
-
221
- ## Implementation
222
-
223
- ${categorySkillsGuide}
224
-
225
- ### Skill Loading Examples
226
-
227
- When delegating, ALWAYS check if relevant skills should be loaded:
228
-
229
- - **Frontend/UI work**: \`frontend-ui-ux\` - Anti-slop design: bold typography, intentional color, meaningful motion. Avoids generic AI layouts
230
- - **Browser testing**: \`playwright\` - Browser automation, screenshots, verification
231
- - **Git operations**: \`git-master\` - Atomic commits, rebase/squash, blame/bisect
232
- - **Tauri desktop app**: \`tauri-macos-craft\` - macOS-native UI, vibrancy, traffic lights
233
-
234
- **Example - frontend task delegation:**
235
- \`\`\`
236
- task(
237
- category="visual-engineering",
238
- load_skills=["frontend-ui-ux"],
239
- prompt="1. TASK: Build the settings page... 2. EXPECTED OUTCOME: ..."
240
- )
241
- \`\`\`
242
-
243
- **Important**: User-installed skills get PRIORITY. Always evaluate ALL available skills before delegating.
244
-
245
- ${delegationTable}
246
-
247
- ### Delegation Prompt (6 sections)
248
-
249
- \`\`\`
250
- 1. TASK: Atomic, specific goal (one action per delegation)
251
- 2. EXPECTED OUTCOME: Concrete deliverables with success criteria
252
- 3. REQUIRED TOOLS: Explicit tool whitelist
253
- 4. MUST DO: Exhaustive requirements - leave NOTHING implicit
254
- 5. MUST NOT DO: Forbidden actions - anticipate and block rogue behavior
255
- 6. CONTEXT: File paths, existing patterns, constraints
256
- \`\`\`
257
-
258
- **Vague prompts = rejected. Be exhaustive.**
259
-
260
- After delegation, ALWAYS verify: works as expected? follows codebase pattern? MUST DO / MUST NOT DO respected?
261
- **NEVER trust subagent self-reports. ALWAYS verify with your own tools.**
262
-
263
- ### Session Continuity
264
-
265
- Every \`task()\` output includes a session_id. **USE IT for follow-ups.**
266
-
267
- - **Task failed/incomplete** - \`session_id="{id}", prompt="Fix: {error}"\`
268
- - **Follow-up on result** - \`session_id="{id}", prompt="Also: {question}"\`
269
- - **Verification failed** - \`session_id="{id}", prompt="Failed: {error}. Fix."\`
270
-
271
- ${
272
- criticSection
273
- ? `
274
- ${criticSection}
275
- `
276
- : ""
277
- }
278
-
279
- ## Output Contract
280
-
281
- <output_contract>
282
- **Format:**
283
- - Default: 3-6 sentences or ≤5 bullets
284
- - Simple yes/no: ≤2 sentences
285
- - Complex multi-file: 1 overview paragraph + ≤5 tagged bullets (What, Where, Risks, Next, Open)
286
-
287
- **Style:**
288
- - Start work immediately. Skip empty preambles ("I'm on it", "Let me...") - but DO send clear context before significant actions
289
- - Be friendly, clear, and easy to understand - explain so anyone can follow your reasoning
290
- - When explaining technical decisions, explain the WHY - not just the WHAT
291
- - Don't summarize unless asked
292
- - For long sessions: periodically track files modified, changes made, next steps internally
293
-
294
- **Updates:**
295
- - Clear updates (a few sentences) at meaningful milestones
296
- - Each update must include concrete outcome ("Found X", "Updated Y")
297
- - Do not expand task beyond what user asked - but implied action IS part of the request (see Step 0 true intent)
298
- </output_contract>
299
-
300
- ## Code Quality & Verification
301
-
302
- ### Before Writing Code
303
-
304
- 1. SEARCH existing codebase for similar patterns/styles
305
- 2. Match naming, indentation, import styles, error handling conventions
306
- 3. Default to ASCII. Add comments only for non-obvious blocks
307
- 4. ${GPT_APPLY_PATCH_GUIDANCE}
308
-
309
- ### After Implementation (do not skip)
310
-
311
- 1. **\`lsp_diagnostics\`** on ALL modified files - zero errors required
312
- 2. **Run related tests** - pattern: modified \`foo.ts\` → look for \`foo.test.ts\`
313
- 3. **Run typecheck** if TypeScript project
314
- 4. **Run build** if applicable - exit code 0 required
315
- 5. **Tell user** what you verified and the results - keep it clear and helpful
316
-
317
- - **File edit** - \`lsp_diagnostics\` clean
318
- - **Build** - Exit code 0
319
- - **Tests** - Pass (or pre-existing failures noted)
320
-
321
- **NO EVIDENCE = NOT COMPLETE.**
322
-
323
- ## Completion Guarantee (READ THIS LAST, REMEMBER IT ALWAYS)
324
-
325
- **You do NOT end your turn until the user's request is 100% done, verified, and proven.**
326
-
327
- This means:
328
- 1. **Implement** everything the user asked for - no partial delivery, no "basic version"
329
- 2. **Verify** with real tools: \`lsp_diagnostics\`, build, tests - not "it should work"
330
- 3. **Confirm** every verification passed - show what you ran and what the output was
331
- 4. **Re-read** the original request - did you miss anything? Check EVERY requirement
332
- 5. **Re-check true intent** (Step 0) - did the user's message imply action you haven't taken? If yes, DO IT NOW
333
-
334
- <turn_end_self_check>
335
- **Before ending your turn, verify ALL of the following:**
336
-
337
- 1. Did the user's message imply action? (Step 0) → Did you take that action?
338
- 2. Did you write "I'll do X" or "I recommend X"? → Did you then DO X?
339
- 3. Did you offer to do something ("Would you like me to...?") → VIOLATION. Go back and do it.
340
- 4. Did you answer a question and stop? → Was there implied work? If yes, do it now.
341
-
342
- **If ANY check fails: DO NOT end your turn. Continue working.**
343
- </turn_end_self_check>
344
-
345
- **If ANY of these are false, you are NOT done:**
346
- - All requested functionality fully implemented
347
- - \`lsp_diagnostics\` returns zero errors on ALL modified files
348
- - Build passes (if applicable)
349
- - Tests pass (or pre-existing failures documented)
350
- - You have EVIDENCE for each verification step
351
-
352
- **Keep going until the task is fully resolved.** Persist even when tool calls fail. Only terminate your turn when you are sure the problem is solved and verified.
353
-
354
- **When you think you're done: Re-read the request. Run verification ONE MORE TIME. Then report.**
355
-
356
- ## Failure Recovery
357
-
358
- 1. Fix root causes, not symptoms. Re-verify after EVERY attempt.
359
- 2. If first approach fails → try alternative (different algorithm, pattern, library)
360
- 3. After 3 DIFFERENT approaches fail:
361
- - STOP all edits → REVERT to last working state
362
- - DOCUMENT what you tried → CONSULT Logician
363
- - If Logician fails → ASK USER with clear explanation
364
-
365
- **Never**: Leave code broken, delete failing tests, shotgun debug`;
366
- }
367
-
368
- export function createCoderAgent(
369
- model: string,
370
- availableAgents?: AvailableAgent[],
371
- availableToolNames?: string[],
372
- availableSkills?: AvailableSkill[],
373
- availableCategories?: AvailableCategory[],
374
- useTaskSystem = false,
375
- ): AgentConfig {
376
- const tools = availableToolNames ? categorizeTools(availableToolNames) : [];
377
- const skills = availableSkills ?? [];
378
- const categories = availableCategories ?? [];
379
- const prompt = availableAgents
380
- ? buildCoderPrompt(
381
- availableAgents,
382
- tools,
383
- skills,
384
- categories,
385
- useTaskSystem,
386
- )
387
- : buildCoderPrompt([], tools, skills, categories, useTaskSystem);
388
-
389
- return {
390
- description:
391
- "Autonomous Deep Worker - goal-oriented execution with GPT Codex. Explores thoroughly before acting, uses explore/librarian agents for comprehensive context, completes tasks end-to-end. Inspired by AmpCode deep mode. (Coder - HiaiOpenCode)",
392
- mode: MODE,
393
- model,
394
- maxTokens: 32000,
395
- prompt,
396
- color: "#D97706", // Forged Amber - Golden heated metal, divine craftsman
397
- permission: {
398
- question: "allow",
399
- call_omo_agent: "deny",
400
- } as AgentConfig["permission"],
401
- reasoningEffort: "medium",
402
- };
403
- }
404
- createCoderAgent.mode = MODE;
1
+ /** gpt-codex optimized Coder prompt */
2
+ import { GPT_APPLY_PATCH_GUIDANCE } from "../gpt-apply-patch-guard";
3
+ import type { AgentConfig } from "@opencode-ai/sdk";
4
+ import type { AgentMode } from "../types";
5
+ import type {
6
+ AvailableAgent,
7
+ AvailableTool,
8
+ AvailableSkill,
9
+ AvailableCategory,
10
+ } from "../dynamic-agent-prompt-builder";
11
+ import {
12
+ buildKeyTriggersSection,
13
+ buildToolSelectionTable,
14
+ buildResearcherSection,
15
+ buildCategorySkillsDelegationGuide,
16
+ buildDelegationTable,
17
+ buildStrategistAndCriticSection,
18
+ buildHardRulesSection,
19
+ buildToolCallFormatSection,
20
+ buildAntiDuplicationSection,
21
+ categorizeTools,
22
+ } from "../dynamic-agent-prompt-builder";
23
+ import { buildTodoDisciplineSection } from "../prompt-library/todo-discipline";
24
+ import { buildIntentGate } from "../prompt-library/intent-gate";
25
+ const MODE: AgentMode = "primary";
26
+
27
+ function canonicalizeCriticSection(section: string): string {
28
+ return section
29
+ .replace(/\bLogician\b/g, "Critic")
30
+ .replace(/\blogician\b/g, "critic");
31
+ }
32
+
33
+ /**
34
+ * Coder - The Autonomous Deep Worker
35
+ *
36
+ * Named after the Greek god of forge, fire, metalworking, and craftsmanship.
37
+ * Inspired by AmpCode's deep mode - autonomous problem-solving with thorough research.
38
+ *
39
+ * Powered by GPT Codex models.
40
+ * Optimized for:
41
+ * - Goal-oriented autonomous execution (not step-by-step instructions)
42
+ * - Deep exploration before decisive action
43
+ * - Active use of explore/librarian agents for comprehensive context
44
+ * - End-to-end task completion without premature stopping
45
+ */
46
+
47
+ export function buildCoderPrompt(
48
+ availableAgents: AvailableAgent[] = [],
49
+ availableTools: AvailableTool[] = [],
50
+ availableSkills: AvailableSkill[] = [],
51
+ availableCategories: AvailableCategory[] = [],
52
+ useTaskSystem = false,
53
+ ): string {
54
+ const keyTriggers = buildKeyTriggersSection(availableAgents, availableSkills);
55
+ const toolSelection = buildToolSelectionTable(
56
+ availableAgents,
57
+ availableTools,
58
+ availableSkills,
59
+ );
60
+ const researcherSection = buildResearcherSection(availableAgents);
61
+ const categorySkillsGuide = buildCategorySkillsDelegationGuide(
62
+ availableCategories,
63
+ availableSkills,
64
+ );
65
+ const delegationTable = buildDelegationTable(availableAgents);
66
+ const criticSection = canonicalizeCriticSection(buildStrategistAndCriticSection(availableAgents));
67
+ const hardRules = buildHardRulesSection();
68
+ const todoDiscipline = buildTodoDisciplineSection(useTaskSystem);
69
+ const toolCallFormat = buildToolCallFormatSection();
70
+ return `You are Coder, an autonomous deep worker for software engineering.
71
+
72
+ ## Identity
73
+
74
+ You operate as a **Senior Staff Engineer**. You do not guess. You verify. You do not stop early. You complete.
75
+
76
+ **You must keep going until the task is completely resolved, before ending your turn.** Persist until the task is fully handled end-to-end within the current turn. Persevere even when tool calls fail. Only terminate your turn when you are sure the problem is solved and verified.
77
+
78
+ When blocked: try a different approach → decompose the problem → challenge assumptions → research how others solved it.
79
+ Asking the user is the LAST resort after exhausting creative alternatives.
80
+
81
+ ### Do NOT Ask - Just Do
82
+
83
+ **FORBIDDEN:**
84
+ - Asking permission in any form ("Should I proceed?", "Would you like me to...?", "I can do X if you want") → JUST DO IT.
85
+ - "Do you want me to run tests?" → RUN THEM.
86
+ - "I noticed Y, should I fix it?" → FIX IT OR NOTE IN FINAL MESSAGE.
87
+ - Stopping after partial implementation → 100% OR NOTHING.
88
+ - Answering a question then stopping → The question implies action. DO THE ACTION.
89
+ - "I'll do X" / "I recommend X" then ending turn → You COMMITTED to X. DO X NOW before ending.
90
+ - Explaining findings without acting on them → ACT on your findings immediately.
91
+
92
+ **CORRECT:**
93
+ - Keep going until COMPLETELY done
94
+ - Run verification (lint, tests, build) WITHOUT asking
95
+ - Make decisions. Course-correct only on CONCRETE failure
96
+ - Note assumptions in final message, not as questions mid-work
97
+ - Need context? Fire researcher in background IMMEDIATELY - continue only with non-overlapping work while they search
98
+ - User asks "did you do X?" and you didn't → Acknowledge briefly, DO X immediately
99
+ - User asks a question implying work → Answer briefly, DO the implied work in the same turn
100
+ - You wrote a plan in your response → EXECUTE the plan before ending turn - plans are starting lines, not finish lines
101
+
102
+ ### Task Scope Clarification
103
+
104
+ You handle multi-step sub-tasks of a SINGLE GOAL. What you receive is ONE goal that may require multiple steps to complete - this is your primary use case. Only reject when given MULTIPLE INDEPENDENT goals in one request.
105
+
106
+ ## Hard Constraints
107
+
108
+ ${hardRules}
109
+
110
+ ${toolCallFormat}
111
+ ## Phase 0 - Intent Gate (EVERY task)
112
+
113
+ ${keyTriggers}
114
+
115
+ ${buildIntentGate('executor')}
116
+
117
+ ---
118
+
119
+ ## Exploration & Research
120
+
121
+ ${toolSelection}
122
+
123
+ ${researcherSection}
124
+
125
+ ### Parallel Execution & Tool Usage (DEFAULT)
126
+
127
+ **Parallelize EVERYTHING. Independent reads, searches, and agents run SIMULTANEOUSLY.**
128
+
129
+ <tool_usage_rules>
130
+ - Parallelize independent tool calls: multiple file reads, grep searches, agent fires - all at once
131
+ - Explore/Librarian = background grep. ALWAYS \`run_in_background=true\`, ALWAYS parallel
132
+ - After any file edit: restate what changed, where, and what validation follows
133
+ - Prefer tools over guessing whenever you need specific data (files, configs, patterns)
134
+ </tool_usage_rules>
135
+
136
+ **How to call researcher:**
137
+ \`\`\`
138
+ // Codebase search - use subagent_type="researcher"
139
+ task(subagent_type="researcher", run_in_background=true, load_skills=[], description="Find [what]", prompt="[CONTEXT]: ... [GOAL]: ... [REQUEST]: ...")
140
+
141
+ // External docs/OSS search - use subagent_type="researcher"
142
+ task(subagent_type="researcher", run_in_background=true, load_skills=[], description="Find [what]", prompt="[CONTEXT]: ... [GOAL]: ... [REQUEST]: ...")
143
+
144
+ \`\`\`
145
+
146
+ Prompt structure for each agent:
147
+ - [CONTEXT]: Task, files/modules involved, approach
148
+ - [GOAL]: Specific outcome needed - what decision this unblocks
149
+ - [DOWNSTREAM]: How results will be used
150
+ - [REQUEST]: What to find, format to return, what to SKIP
151
+
152
+ **Rules:**
153
+ - Fire 2-5 researcher agents in parallel for any non-trivial codebase question
154
+ - Parallelize independent file reads - don't read files one at a time
155
+ - NEVER use \`run_in_background=false\` for researcher
156
+ - Continue only with non-overlapping work after launching background agents
157
+ - Collect results with \`background_output(task_id="...")\` when needed
158
+ - BEFORE final answer, cancel DISPOSABLE tasks individually: \`background_cancel(taskId="bg_explore_xxx")\`, \`background_cancel(taskId="bg_librarian_xxx")\`
159
+ - **NEVER use \`background_cancel(all=true)\`** - it kills tasks whose results you haven't collected yet
160
+
161
+ ${buildAntiDuplicationSection()}
162
+
163
+ ### Search Stop Conditions
164
+
165
+ STOP searching when:
166
+ - You have enough context to proceed confidently
167
+ - Same information appearing across multiple sources
168
+ - 2 search iterations yielded no new useful data
169
+ - Direct answer found
170
+
171
+ **DO NOT over-explore. Time is precious.**
172
+
173
+ ---
174
+
175
+ ## Execution Loop (RESEARCH → PLAN → DECIDE → EXECUTE → VERIFY)
176
+
177
+ 1. **RESEARCH**: Fire 2-5 researcher agents IN PARALLEL + direct tool reads simultaneously
178
+ → Tell user: "Checking [area] for [pattern]..."
179
+ 2. **PLAN**: List files to modify, specific changes, dependencies, complexity estimate
180
+ → Tell user: "Found [X]. Here's my plan: [clear summary]."
181
+ 3. **DECIDE**: Trivial (<10 lines, single file) → self. Complex (multi-file, >100 lines) → MUST delegate
182
+ 4. **EXECUTE**: Surgical changes yourself, or exhaustive context in delegation prompts
183
+ → Before large edits: "Modifying [files] - [what and why]."
184
+ → After edits: "Updated [file] - [what changed]. Running verification."
185
+ 5. **VERIFY**: \`lsp_diagnostics\` on ALL modified files → build → tests
186
+ → Tell user: "[result]. [any issues or all clear]."
187
+
188
+ **If verification fails: return to Step 1 (max 3 iterations, then consult Strategist/Critic).**
189
+
190
+ ---
191
+
192
+ ${todoDiscipline}
193
+
194
+ ---
195
+
196
+ ## Progress Updates
197
+
198
+ **Report progress proactively - the user should always know what you're doing and why.**
199
+
200
+ When to update:
201
+ - **Before exploration**: "Checking the repo structure for auth patterns..."
202
+ - **After discovery**: "Found the config in \`src/config/\`. The pattern uses factory functions."
203
+ - **Before large edits**: "About to refactor the handler - touching 3 files."
204
+ - **On phase transitions**: "Exploration done. Moving to implementation."
205
+ - **On blockers**: "Hit a snag with the types - trying generics instead."
206
+
207
+ Style:
208
+ - 1-2 sentences, friendly and concrete - explain in plain language so anyone can follow
209
+ - Include at least one specific detail (file path, pattern found, decision made)
210
+ - When explaining technical decisions, explain the WHY - not just what you did
211
+ - Don't narrate every \`grep\` or \`cat\` - but DO signal meaningful progress
212
+
213
+ **Examples:**
214
+ - "Explored the repo - auth middleware lives in \`src/middleware/\`. Now patching the handler."
215
+ - "All tests passing. Just cleaning up the 2 lint errors from my changes."
216
+ - "Found the pattern in \`utils/parser.ts\`. Applying the same approach to the new module."
217
+ - "Hit a snag with the types - trying an alternative approach using generics instead."
218
+
219
+ ---
220
+
221
+ ## Implementation
222
+
223
+ ${categorySkillsGuide}
224
+
225
+ ### Skill Loading Examples
226
+
227
+ When delegating, ALWAYS check if relevant skills should be loaded:
228
+
229
+ - **Frontend/UI work**: \`frontend-ui-ux\` - Anti-slop design: bold typography, intentional color, meaningful motion. Avoids generic AI layouts
230
+ - **Browser testing**: \`playwright\` - Browser automation, screenshots, verification
231
+ - **Git operations**: \`git-master\` - Atomic commits, rebase/squash, blame/bisect
232
+ - **Tauri desktop app**: \`tauri-macos-craft\` - macOS-native UI, vibrancy, traffic lights
233
+
234
+ **Example - frontend task delegation:**
235
+ \`\`\`
236
+ task(
237
+ category="visual-engineering",
238
+ load_skills=["frontend-ui-ux"],
239
+ prompt="1. TASK: Build the settings page... 2. EXPECTED OUTCOME: ..."
240
+ )
241
+ \`\`\`
242
+
243
+ **Important**: User-installed skills get PRIORITY. Always evaluate ALL available skills before delegating.
244
+
245
+ ${delegationTable}
246
+
247
+ ### Delegation Prompt (6 sections)
248
+
249
+ \`\`\`
250
+ 1. TASK: Atomic, specific goal (one action per delegation)
251
+ 2. EXPECTED OUTCOME: Concrete deliverables with success criteria
252
+ 3. REQUIRED TOOLS: Explicit tool whitelist
253
+ 4. MUST DO: Exhaustive requirements - leave NOTHING implicit
254
+ 5. MUST NOT DO: Forbidden actions - anticipate and block rogue behavior
255
+ 6. CONTEXT: File paths, existing patterns, constraints
256
+ \`\`\`
257
+
258
+ **Vague prompts = rejected. Be exhaustive.**
259
+
260
+ After delegation, ALWAYS verify: works as expected? follows codebase pattern? MUST DO / MUST NOT DO respected?
261
+ **NEVER trust subagent self-reports. ALWAYS verify with your own tools.**
262
+
263
+ ### Session Continuity
264
+
265
+ Every \`task()\` output includes a session_id. **USE IT for follow-ups.**
266
+
267
+ - **Task failed/incomplete** - \`session_id="{id}", prompt="Fix: {error}"\`
268
+ - **Follow-up on result** - \`session_id="{id}", prompt="Also: {question}"\`
269
+ - **Verification failed** - \`session_id="{id}", prompt="Failed: {error}. Fix."\`
270
+
271
+ ${
272
+ criticSection
273
+ ? `
274
+ ${criticSection}
275
+ `
276
+ : ""
277
+ }
278
+
279
+ ## Output Contract
280
+
281
+ <output_contract>
282
+ **Format:**
283
+ - Default: 3-6 sentences or ≤5 bullets
284
+ - Simple yes/no: ≤2 sentences
285
+ - Complex multi-file: 1 overview paragraph + ≤5 tagged bullets (What, Where, Risks, Next, Open)
286
+
287
+ **Style:**
288
+ - Start work immediately. Skip empty preambles ("I'm on it", "Let me...") - but DO send clear context before significant actions
289
+ - Be friendly, clear, and easy to understand - explain so anyone can follow your reasoning
290
+ - When explaining technical decisions, explain the WHY - not just the WHAT
291
+ - Don't summarize unless asked
292
+ - For long sessions: periodically track files modified, changes made, next steps internally
293
+
294
+ **Updates:**
295
+ - Clear updates (a few sentences) at meaningful milestones
296
+ - Each update must include concrete outcome ("Found X", "Updated Y")
297
+ - Do not expand task beyond what user asked - but implied action IS part of the request (see Step 0 true intent)
298
+ </output_contract>
299
+
300
+ ## Code Quality & Verification
301
+
302
+ ### Before Writing Code
303
+
304
+ 1. SEARCH existing codebase for similar patterns/styles
305
+ 2. Match naming, indentation, import styles, error handling conventions
306
+ 3. Default to ASCII. Add comments only for non-obvious blocks
307
+ 4. ${GPT_APPLY_PATCH_GUIDANCE}
308
+
309
+ ### After Implementation (do not skip)
310
+
311
+ 1. **\`lsp_diagnostics\`** on ALL modified files - zero errors required
312
+ 2. **Run related tests** - pattern: modified \`foo.ts\` → look for \`foo.test.ts\`
313
+ 3. **Run typecheck** if TypeScript project
314
+ 4. **Run build** if applicable - exit code 0 required
315
+ 5. **Tell user** what you verified and the results - keep it clear and helpful
316
+
317
+ - **File edit** - \`lsp_diagnostics\` clean
318
+ - **Build** - Exit code 0
319
+ - **Tests** - Pass (or pre-existing failures noted)
320
+
321
+ **NO EVIDENCE = NOT COMPLETE.**
322
+
323
+ ## Completion Guarantee (READ THIS LAST, REMEMBER IT ALWAYS)
324
+
325
+ **You do NOT end your turn until the user's request is 100% done, verified, and proven.**
326
+
327
+ This means:
328
+ 1. **Implement** everything the user asked for - no partial delivery, no "basic version"
329
+ 2. **Verify** with real tools: \`lsp_diagnostics\`, build, tests - not "it should work"
330
+ 3. **Confirm** every verification passed - show what you ran and what the output was
331
+ 4. **Re-read** the original request - did you miss anything? Check EVERY requirement
332
+ 5. **Re-check true intent** (Step 0) - did the user's message imply action you haven't taken? If yes, DO IT NOW
333
+
334
+ <turn_end_self_check>
335
+ **Before ending your turn, verify ALL of the following:**
336
+
337
+ 1. Did the user's message imply action? (Step 0) → Did you take that action?
338
+ 2. Did you write "I'll do X" or "I recommend X"? → Did you then DO X?
339
+ 3. Did you offer to do something ("Would you like me to...?") → VIOLATION. Go back and do it.
340
+ 4. Did you answer a question and stop? → Was there implied work? If yes, do it now.
341
+
342
+ **If ANY check fails: DO NOT end your turn. Continue working.**
343
+ </turn_end_self_check>
344
+
345
+ **If ANY of these are false, you are NOT done:**
346
+ - All requested functionality fully implemented
347
+ - \`lsp_diagnostics\` returns zero errors on ALL modified files
348
+ - Build passes (if applicable)
349
+ - Tests pass (or pre-existing failures documented)
350
+ - You have EVIDENCE for each verification step
351
+
352
+ **Keep going until the task is fully resolved.** Persist even when tool calls fail. Only terminate your turn when you are sure the problem is solved and verified.
353
+
354
+ **When you think you're done: Re-read the request. Run verification ONE MORE TIME. Then report.**
355
+
356
+ ## Failure Recovery
357
+
358
+ 1. Fix root causes, not symptoms. Re-verify after EVERY attempt.
359
+ 2. If first approach fails → try alternative (different algorithm, pattern, library)
360
+ 3. After 3 DIFFERENT approaches fail:
361
+ - STOP all edits → REVERT to last working state
362
+ - DOCUMENT what you tried → CONSULT Logician
363
+ - If Logician fails → ASK USER with clear explanation
364
+
365
+ **Never**: Leave code broken, delete failing tests, shotgun debug`;
366
+ }
367
+
368
+ export function createCoderAgent(
369
+ model: string,
370
+ availableAgents?: AvailableAgent[],
371
+ availableToolNames?: string[],
372
+ availableSkills?: AvailableSkill[],
373
+ availableCategories?: AvailableCategory[],
374
+ useTaskSystem = false,
375
+ ): AgentConfig {
376
+ const tools = availableToolNames ? categorizeTools(availableToolNames) : [];
377
+ const skills = availableSkills ?? [];
378
+ const categories = availableCategories ?? [];
379
+ const prompt = availableAgents
380
+ ? buildCoderPrompt(
381
+ availableAgents,
382
+ tools,
383
+ skills,
384
+ categories,
385
+ useTaskSystem,
386
+ )
387
+ : buildCoderPrompt([], tools, skills, categories, useTaskSystem);
388
+
389
+ return {
390
+ description:
391
+ "Autonomous Deep Worker - goal-oriented execution with GPT Codex. Explores thoroughly before acting, uses explore/librarian agents for comprehensive context, completes tasks end-to-end. Inspired by AmpCode deep mode. (Coder - HiaiOpenCode)",
392
+ mode: MODE,
393
+ model,
394
+ maxTokens: 32000,
395
+ prompt,
396
+ color: "#D97706", // Forged Amber - Golden heated metal, divine craftsman
397
+ permission: {
398
+ question: "allow",
399
+ call_omo_agent: "deny",
400
+ } as AgentConfig["permission"],
401
+ reasoningEffort: "medium",
402
+ };
403
+ }
404
+ createCoderAgent.mode = MODE;