@hiai-gg/hiai-opencode 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1220) hide show
  1. package/.env.example +57 -57
  2. package/AGENTS.md +280 -281
  3. package/ARCHITECTURE.md +280 -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 +243 -243
  12. package/hiai-opencode.json +57 -57
  13. package/package.json +86 -91
  14. package/skills/api-and-interface-design/SKILL.md +294 -294
  15. package/skills/brainstorming/SKILL.md +164 -164
  16. package/skills/brainstorming/scripts/frame-template.html +214 -214
  17. package/skills/brainstorming/scripts/helper.js +88 -88
  18. package/skills/brainstorming/scripts/server.cjs +354 -354
  19. package/skills/brainstorming/scripts/start-server.sh +148 -148
  20. package/skills/brainstorming/scripts/stop-server.sh +56 -56
  21. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
  22. package/skills/brainstorming/visual-companion.md +287 -287
  23. package/skills/browser-testing-with-devtools/SKILL.md +302 -302
  24. package/skills/ci-cd-and-automation/SKILL.md +390 -390
  25. package/skills/code-review-and-quality/SKILL.md +347 -347
  26. package/skills/code-simplification/SKILL.md +331 -331
  27. package/skills/context-engineering/SKILL.md +289 -289
  28. package/skills/deprecation-and-migration/SKILL.md +206 -206
  29. package/skills/dispatching-parallel-agents/SKILL.md +182 -182
  30. package/skills/documentation-and-adrs/SKILL.md +278 -278
  31. package/skills/executing-plans/SKILL.md +70 -70
  32. package/skills/finishing-a-development-branch/SKILL.md +200 -200
  33. package/skills/frontend-ui-engineering/SKILL.md +322 -322
  34. package/skills/git-workflow-and-versioning/SKILL.md +300 -300
  35. package/skills/incremental-implementation/SKILL.md +241 -241
  36. package/skills/performance-optimization/SKILL.md +350 -350
  37. package/skills/receiving-code-review/SKILL.md +213 -213
  38. package/skills/requesting-code-review/SKILL.md +105 -105
  39. package/skills/requesting-code-review/code-reviewer.md +146 -146
  40. package/skills/security-and-hardening/SKILL.md +349 -349
  41. package/skills/shipping-and-launch/SKILL.md +309 -309
  42. package/skills/source-driven-development/SKILL.md +194 -194
  43. package/skills/spec-driven-development/SKILL.md +200 -200
  44. package/skills/subagent-driven-development/SKILL.md +277 -277
  45. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -26
  46. package/skills/subagent-driven-development/implementer-prompt.md +113 -113
  47. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -61
  48. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  49. package/skills/systematic-debugging/SKILL.md +596 -596
  50. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  51. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  52. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  53. package/skills/systematic-debugging/find-polluter.sh +63 -63
  54. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  55. package/skills/systematic-debugging/test-academic.md +14 -14
  56. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  57. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  58. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  59. package/skills/test-driven-development/SKILL.md +379 -379
  60. package/skills/using-agent-skills/SKILL.md +174 -174
  61. package/skills/using-git-worktrees/SKILL.md +218 -218
  62. package/skills/using-superpowers/SKILL.md +117 -117
  63. package/skills/using-superpowers/references/codex-tools.md +100 -100
  64. package/skills/using-superpowers/references/copilot-tools.md +52 -52
  65. package/skills/using-superpowers/references/gemini-tools.md +33 -33
  66. package/skills/verification-before-completion/SKILL.md +139 -139
  67. package/skills/writing-plans/SKILL.md +152 -152
  68. package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
  69. package/skills/writing-skills/SKILL.md +655 -655
  70. package/skills/writing-skills/anthropic-best-practices.md +1150 -1150
  71. package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
  72. package/skills/writing-skills/graphviz-conventions.dot +171 -171
  73. package/skills/writing-skills/persuasion-principles.md +187 -187
  74. package/skills/writing-skills/render-graphs.js +168 -168
  75. package/skills/writing-skills/testing-skills-with-subagents.md +384 -384
  76. package/src/AGENTS.md +41 -41
  77. package/src/agents/AGENTS.md +74 -74
  78. package/src/agents/agent-builder.ts +50 -50
  79. package/src/agents/bob/AGENTS.md +29 -29
  80. package/src/agents/bob/default.ts +128 -128
  81. package/src/agents/bob/gemini.ts +237 -237
  82. package/src/agents/bob/gpt-pro.ts +430 -430
  83. package/src/agents/bob/index.ts +19 -19
  84. package/src/agents/bob.ts +528 -528
  85. package/src/agents/builtin-agents/agent-overrides.ts +75 -75
  86. package/src/agents/builtin-agents/available-skills.ts +35 -35
  87. package/src/agents/builtin-agents/bob-agent.ts +96 -96
  88. package/src/agents/builtin-agents/coder-agent.ts +98 -98
  89. package/src/agents/builtin-agents/environment-context.ts +16 -16
  90. package/src/agents/builtin-agents/general-agents.ts +122 -122
  91. package/src/agents/builtin-agents/guard-agent.ts +66 -66
  92. package/src/agents/builtin-agents/model-resolution.ts +31 -31
  93. package/src/agents/builtin-agents/resolve-file-uri.ts +42 -42
  94. package/src/agents/builtin-agents.ts +194 -194
  95. package/src/agents/coder/AGENTS.md +34 -34
  96. package/src/agents/coder/agent.ts +162 -162
  97. package/src/agents/coder/gpt-codex.ts +404 -404
  98. package/src/agents/coder/gpt-pro.ts +319 -319
  99. package/src/agents/coder/gpt.ts +253 -253
  100. package/src/agents/coder/index.ts +8 -8
  101. package/src/agents/critic/agent.ts +105 -105
  102. package/src/agents/custom-agent-summaries.ts +61 -61
  103. package/src/agents/dynamic-agent-category-skills-guide.ts +138 -138
  104. package/src/agents/dynamic-agent-core-sections.ts +237 -237
  105. package/src/agents/dynamic-agent-policy-sections.ts +182 -182
  106. package/src/agents/dynamic-agent-prompt-builder.ts +31 -31
  107. package/src/agents/dynamic-agent-prompt-types.ts +24 -24
  108. package/src/agents/dynamic-agent-tool-categorization.ts +45 -45
  109. package/src/agents/env-context.ts +16 -16
  110. package/src/agents/gpt-apply-patch-guard.ts +7 -7
  111. package/src/agents/guard/agent.ts +146 -146
  112. package/src/agents/guard/default-prompt-sections.ts +305 -305
  113. package/src/agents/guard/default.ts +22 -22
  114. package/src/agents/guard/gemini-prompt-sections.ts +293 -293
  115. package/src/agents/guard/gemini.ts +22 -22
  116. package/src/agents/guard/gpt-prompt-sections.ts +296 -296
  117. package/src/agents/guard/gpt.ts +22 -22
  118. package/src/agents/guard/index.ts +2 -2
  119. package/src/agents/guard/prompt-section-builder.ts +104 -104
  120. package/src/agents/guard/shared-prompt.ts +172 -172
  121. package/src/agents/index.ts +5 -5
  122. package/src/agents/platform-adapter.ts +236 -236
  123. package/src/agents/platform-manager.ts +57 -57
  124. package/src/agents/prompt-library/identity.ts +14 -14
  125. package/src/agents/prompt-library/index.ts +7 -7
  126. package/src/agents/prompt-library/intent-gate.ts +149 -149
  127. package/src/agents/prompt-library/orchestration.ts +60 -60
  128. package/src/agents/prompt-library/platform.ts +36 -36
  129. package/src/agents/prompt-library/specialized.ts +39 -39
  130. package/src/agents/prompt-library/strategy.ts +80 -80
  131. package/src/agents/prompt-library/todo-discipline.ts +22 -22
  132. package/src/agents/quality-guardian.ts +76 -76
  133. package/src/agents/researcher.ts +73 -73
  134. package/src/agents/strategist/AGENTS.md +37 -37
  135. package/src/agents/strategist/behavioral-summary.ts +79 -79
  136. package/src/agents/strategist/gemini.ts +333 -333
  137. package/src/agents/strategist/gpt.ts +460 -460
  138. package/src/agents/strategist/high-accuracy-mode.ts +78 -78
  139. package/src/agents/strategist/identity-constraints.ts +336 -336
  140. package/src/agents/strategist/index.ts +6 -6
  141. package/src/agents/strategist/interview-mode.ts +335 -335
  142. package/src/agents/strategist/plan-generation.ts +213 -213
  143. package/src/agents/strategist/plan-template.ts +325 -325
  144. package/src/agents/strategist/system-prompt.ts +68 -68
  145. package/src/agents/sub/agent.ts +141 -141
  146. package/src/agents/sub/default.ts +52 -52
  147. package/src/agents/sub/gemini.ts +194 -194
  148. package/src/agents/sub/gpt-codex.ts +156 -156
  149. package/src/agents/sub/gpt-pro.ts +161 -161
  150. package/src/agents/sub/gpt.ts +157 -157
  151. package/src/agents/sub/index.ts +13 -13
  152. package/src/agents/types.ts +144 -144
  153. package/src/agents/ui.ts +58 -58
  154. package/src/config/data/model-capabilities.json +40690 -40690
  155. package/src/config/defaults.ts +146 -146
  156. package/src/config/hiai-opencode.schema.json +12 -12
  157. package/src/config/index.ts +67 -67
  158. package/src/config/loader.test.ts +65 -65
  159. package/src/config/loader.ts +183 -183
  160. package/src/config/models.ts +32 -32
  161. package/src/config/platform-schema.ts +192 -192
  162. package/src/config/schema/agent-definitions.ts +5 -5
  163. package/src/config/schema/agent-names.ts +66 -66
  164. package/src/config/schema/agent-overrides.ts +95 -95
  165. package/src/config/schema/babysitting.ts +7 -7
  166. package/src/config/schema/background-task.ts +29 -29
  167. package/src/config/schema/bob-agent.ts +11 -11
  168. package/src/config/schema/bob.ts +17 -17
  169. package/src/config/schema/browser-automation.ts +24 -24
  170. package/src/config/schema/categories.ts +45 -45
  171. package/src/config/schema/claude-code.ts +13 -13
  172. package/src/config/schema/commands.ts +14 -14
  173. package/src/config/schema/comment-checker.ts +8 -8
  174. package/src/config/schema/dynamic-context-pruning.ts +53 -53
  175. package/src/config/schema/experimental.ts +27 -27
  176. package/src/config/schema/fallback-models.ts +31 -31
  177. package/src/config/schema/fast-apply.ts +14 -14
  178. package/src/config/schema/git-env-prefix.ts +28 -28
  179. package/src/config/schema/git-master.ts +14 -14
  180. package/src/config/schema/hooks.ts +61 -61
  181. package/src/config/schema/index.ts +52 -52
  182. package/src/config/schema/internal/permission.ts +20 -20
  183. package/src/config/schema/model-capabilities.ts +10 -10
  184. package/src/config/schema/notification.ts +8 -8
  185. package/src/config/schema/oh-my-opencode-config.ts +90 -90
  186. package/src/config/schema/openclaw.ts +50 -50
  187. package/src/config/schema/ralph-loop.ts +11 -11
  188. package/src/config/schema/runtime-fallback.ts +18 -18
  189. package/src/config/schema/skills.ts +39 -39
  190. package/src/config/schema/start-work.ts +7 -7
  191. package/src/config/schema/tmux.ts +28 -28
  192. package/src/config/schema/websearch.ts +15 -15
  193. package/src/config/types.ts +174 -174
  194. package/src/create-hooks.ts +93 -93
  195. package/src/create-managers.ts +116 -116
  196. package/src/create-runtime-tmux-config.ts +18 -18
  197. package/src/create-tools.ts +53 -53
  198. package/src/features/background-agent/AGENTS.md +56 -56
  199. package/src/features/background-agent/abort-with-timeout.ts +35 -35
  200. package/src/features/background-agent/background-task-notification-template.ts +74 -74
  201. package/src/features/background-agent/compaction-aware-message-resolver.ts +164 -164
  202. package/src/features/background-agent/concurrency.ts +137 -137
  203. package/src/features/background-agent/constants.ts +58 -58
  204. package/src/features/background-agent/duration-formatter.ts +14 -14
  205. package/src/features/background-agent/error-classifier.ts +83 -83
  206. package/src/features/background-agent/fallback-retry-handler.ts +134 -134
  207. package/src/features/background-agent/index.ts +2 -2
  208. package/src/features/background-agent/loop-detector.ts +102 -102
  209. package/src/features/background-agent/manager.ts +2220 -2220
  210. package/src/features/background-agent/opencode-client.ts +3 -3
  211. package/src/features/background-agent/process-cleanup.ts +98 -98
  212. package/src/features/background-agent/remove-task-toast-tracking.ts +8 -8
  213. package/src/features/background-agent/session-existence.ts +57 -57
  214. package/src/features/background-agent/session-idle-event-handler.ts +93 -93
  215. package/src/features/background-agent/session-status-classifier.ts +20 -20
  216. package/src/features/background-agent/spawner/parent-directory-resolver.ts +24 -24
  217. package/src/features/background-agent/spawner.ts +327 -327
  218. package/src/features/background-agent/state.ts +199 -199
  219. package/src/features/background-agent/subagent-spawn-limits.ts +97 -97
  220. package/src/features/background-agent/task-history.ts +79 -79
  221. package/src/features/background-agent/task-poller.ts +225 -225
  222. package/src/features/background-agent/types.ts +100 -100
  223. package/src/features/boulder-state/constants.ts +13 -13
  224. package/src/features/boulder-state/index.ts +4 -4
  225. package/src/features/boulder-state/storage.ts +336 -336
  226. package/src/features/boulder-state/top-level-task.ts +78 -78
  227. package/src/features/boulder-state/types.ts +61 -61
  228. package/src/features/builtin-commands/commands.ts +143 -143
  229. package/src/features/builtin-commands/index.ts +2 -2
  230. package/src/features/builtin-commands/templates/handoff.ts +177 -177
  231. package/src/features/builtin-commands/templates/init-deep.ts +305 -305
  232. package/src/features/builtin-commands/templates/ralph-loop.ts +66 -66
  233. package/src/features/builtin-commands/templates/refactor.ts +619 -619
  234. package/src/features/builtin-commands/templates/remove-ai-slops.ts +96 -96
  235. package/src/features/builtin-commands/templates/start-work.ts +128 -128
  236. package/src/features/builtin-commands/templates/stop-continuation.ts +13 -13
  237. package/src/features/builtin-commands/types.ts +9 -9
  238. package/src/features/builtin-skills/index.ts +2 -2
  239. package/src/features/builtin-skills/materialize.ts +338 -338
  240. package/src/features/builtin-skills/skills/ai-slop-remover.ts +145 -145
  241. package/src/features/builtin-skills/skills/dev-browser.ts +221 -221
  242. package/src/features/builtin-skills/skills/frontend-ui-ux.ts +79 -79
  243. package/src/features/builtin-skills/skills/git-master-sections/commit-workflow.ts +509 -509
  244. package/src/features/builtin-skills/skills/git-master-sections/history-search-workflow.ts +229 -229
  245. package/src/features/builtin-skills/skills/git-master-sections/overview.ts +64 -64
  246. package/src/features/builtin-skills/skills/git-master-sections/quick-reference.ts +86 -86
  247. package/src/features/builtin-skills/skills/git-master-sections/rebase-workflow.ts +181 -181
  248. package/src/features/builtin-skills/skills/git-master-skill-metadata.ts +4 -4
  249. package/src/features/builtin-skills/skills/git-master.ts +28 -28
  250. package/src/features/builtin-skills/skills/index.ts +7 -7
  251. package/src/features/builtin-skills/skills/playwright-cli.ts +268 -268
  252. package/src/features/builtin-skills/skills/playwright.ts +466 -466
  253. package/src/features/builtin-skills/skills/review-work.ts +536 -536
  254. package/src/features/builtin-skills/skills.ts +39 -39
  255. package/src/features/builtin-skills/types.ts +16 -16
  256. package/src/features/claude-code-agent-loader/agent-definitions-loader.ts +87 -87
  257. package/src/features/claude-code-agent-loader/claude-model-mapper.ts +53 -53
  258. package/src/features/claude-code-agent-loader/index.ts +5 -5
  259. package/src/features/claude-code-agent-loader/json-agent-loader.ts +53 -53
  260. package/src/features/claude-code-agent-loader/loader.ts +86 -86
  261. package/src/features/claude-code-agent-loader/opencode-config-agents-reader.ts +125 -125
  262. package/src/features/claude-code-agent-loader/types.ts +31 -31
  263. package/src/features/claude-code-command-loader/index.ts +2 -2
  264. package/src/features/claude-code-command-loader/loader.ts +169 -169
  265. package/src/features/claude-code-command-loader/types.ts +46 -46
  266. package/src/features/claude-code-mcp-loader/configure-allowed-env-vars.ts +48 -48
  267. package/src/features/claude-code-mcp-loader/env-expander.ts +51 -51
  268. package/src/features/claude-code-mcp-loader/index.ts +12 -12
  269. package/src/features/claude-code-mcp-loader/loader.ts +156 -156
  270. package/src/features/claude-code-mcp-loader/scope-filter.ts +17 -17
  271. package/src/features/claude-code-mcp-loader/transformer.ts +57 -57
  272. package/src/features/claude-code-mcp-loader/types.ts +51 -51
  273. package/src/features/claude-code-plugin-loader/agent-loader.ts +59 -59
  274. package/src/features/claude-code-plugin-loader/command-loader.ts +53 -53
  275. package/src/features/claude-code-plugin-loader/discovery.ts +251 -251
  276. package/src/features/claude-code-plugin-loader/hook-loader.ts +26 -26
  277. package/src/features/claude-code-plugin-loader/index.ts +10 -10
  278. package/src/features/claude-code-plugin-loader/loader.ts +134 -134
  279. package/src/features/claude-code-plugin-loader/mcp-server-loader.ts +59 -59
  280. package/src/features/claude-code-plugin-loader/plugin-path-resolver.ts +23 -23
  281. package/src/features/claude-code-plugin-loader/scope-filter.ts +29 -29
  282. package/src/features/claude-code-plugin-loader/skill-loader.ts +62 -62
  283. package/src/features/claude-code-plugin-loader/types.ts +255 -255
  284. package/src/features/claude-code-session-state/index.ts +1 -1
  285. package/src/features/claude-code-session-state/state.ts +154 -154
  286. package/src/features/claude-tasks/session-storage.ts +52 -52
  287. package/src/features/claude-tasks/storage.ts +169 -169
  288. package/src/features/claude-tasks/types.ts +20 -20
  289. package/src/features/context-injector/collector.ts +91 -91
  290. package/src/features/context-injector/index.ts +14 -14
  291. package/src/features/context-injector/injector.ts +167 -167
  292. package/src/features/context-injector/types.ts +91 -91
  293. package/src/features/hook-message-injector/constants.ts +1 -1
  294. package/src/features/hook-message-injector/index.ts +11 -11
  295. package/src/features/hook-message-injector/injector.ts +437 -437
  296. package/src/features/hook-message-injector/types.ts +49 -49
  297. package/src/features/mcp-oauth/AGENTS.md +54 -54
  298. package/src/features/mcp-oauth/callback-server.ts +106 -106
  299. package/src/features/mcp-oauth/dcr.ts +98 -98
  300. package/src/features/mcp-oauth/discovery.ts +134 -134
  301. package/src/features/mcp-oauth/oauth-authorization-flow.ts +150 -150
  302. package/src/features/mcp-oauth/provider.ts +215 -215
  303. package/src/features/mcp-oauth/refresh-mutex.ts +58 -58
  304. package/src/features/mcp-oauth/resource-indicator.ts +16 -16
  305. package/src/features/mcp-oauth/schema.ts +8 -8
  306. package/src/features/mcp-oauth/step-up.ts +79 -79
  307. package/src/features/mcp-oauth/storage.ts +155 -155
  308. package/src/features/opencode-skill-loader/AGENTS.md +59 -59
  309. package/src/features/opencode-skill-loader/allowed-tools-parser.ts +9 -9
  310. package/src/features/opencode-skill-loader/async-loader.ts +213 -213
  311. package/src/features/opencode-skill-loader/blocking.ts +62 -62
  312. package/src/features/opencode-skill-loader/config-source-discovery.ts +114 -114
  313. package/src/features/opencode-skill-loader/discover-worker.ts +56 -56
  314. package/src/features/opencode-skill-loader/git-master-template-injection.ts +150 -150
  315. package/src/features/opencode-skill-loader/index.ts +17 -17
  316. package/src/features/opencode-skill-loader/loaded-skill-from-path.ts +73 -73
  317. package/src/features/opencode-skill-loader/loaded-skill-template-extractor.ts +16 -16
  318. package/src/features/opencode-skill-loader/loader.ts +172 -172
  319. package/src/features/opencode-skill-loader/merger/builtin-skill-converter.ts +26 -26
  320. package/src/features/opencode-skill-loader/merger/config-skill-entry-loader.ts +117 -117
  321. package/src/features/opencode-skill-loader/merger/scope-priority.ts +10 -10
  322. package/src/features/opencode-skill-loader/merger/skill-definition-merger.ts +31 -31
  323. package/src/features/opencode-skill-loader/merger/skills-config-normalizer.ts +19 -19
  324. package/src/features/opencode-skill-loader/merger.ts +96 -96
  325. package/src/features/opencode-skill-loader/skill-content.ts +11 -11
  326. package/src/features/opencode-skill-loader/skill-deduplication.ts +13 -13
  327. package/src/features/opencode-skill-loader/skill-definition-record.ts +11 -11
  328. package/src/features/opencode-skill-loader/skill-directory-loader.ts +112 -112
  329. package/src/features/opencode-skill-loader/skill-discovery.ts +76 -76
  330. package/src/features/opencode-skill-loader/skill-mcp-config.ts +45 -45
  331. package/src/features/opencode-skill-loader/skill-resolution-options.ts +9 -9
  332. package/src/features/opencode-skill-loader/skill-template-resolver.ts +97 -97
  333. package/src/features/opencode-skill-loader/types.ts +38 -38
  334. package/src/features/run-continuation-state/constants.ts +1 -1
  335. package/src/features/run-continuation-state/index.ts +3 -3
  336. package/src/features/run-continuation-state/storage.ts +80 -80
  337. package/src/features/run-continuation-state/types.ts +15 -15
  338. package/src/features/skill-mcp-manager/AGENTS.md +111 -111
  339. package/src/features/skill-mcp-manager/cleanup.ts +153 -153
  340. package/src/features/skill-mcp-manager/connection-type.ts +26 -26
  341. package/src/features/skill-mcp-manager/connection.ts +146 -146
  342. package/src/features/skill-mcp-manager/env-cleaner.ts +59 -59
  343. package/src/features/skill-mcp-manager/error-redaction.ts +47 -47
  344. package/src/features/skill-mcp-manager/http-client.ts +126 -126
  345. package/src/features/skill-mcp-manager/index.ts +2 -2
  346. package/src/features/skill-mcp-manager/manager.ts +178 -178
  347. package/src/features/skill-mcp-manager/oauth-handler.ts +160 -160
  348. package/src/features/skill-mcp-manager/stdio-client.ts +112 -112
  349. package/src/features/skill-mcp-manager/types.ts +96 -96
  350. package/src/features/task-toast-manager/index.ts +2 -2
  351. package/src/features/task-toast-manager/manager.ts +251 -251
  352. package/src/features/task-toast-manager/types.ts +29 -29
  353. package/src/features/tmux-subagent/action-executor-core.ts +82 -82
  354. package/src/features/tmux-subagent/action-executor.ts +137 -137
  355. package/src/features/tmux-subagent/cleanup.ts +42 -42
  356. package/src/features/tmux-subagent/decision-engine.ts +22 -22
  357. package/src/features/tmux-subagent/event-handlers.ts +6 -6
  358. package/src/features/tmux-subagent/grid-planning.ts +137 -137
  359. package/src/features/tmux-subagent/index.ts +16 -16
  360. package/src/features/tmux-subagent/manager.ts +969 -969
  361. package/src/features/tmux-subagent/oldest-agent-pane.ts +37 -37
  362. package/src/features/tmux-subagent/pane-split-availability.ts +77 -77
  363. package/src/features/tmux-subagent/pane-state-parser.ts +135 -135
  364. package/src/features/tmux-subagent/pane-state-querier.ts +76 -76
  365. package/src/features/tmux-subagent/polling-constants.ts +6 -6
  366. package/src/features/tmux-subagent/polling-manager.ts +167 -167
  367. package/src/features/tmux-subagent/polling.ts +183 -183
  368. package/src/features/tmux-subagent/session-created-event.ts +44 -44
  369. package/src/features/tmux-subagent/session-created-handler.ts +175 -175
  370. package/src/features/tmux-subagent/session-deleted-handler.ts +50 -50
  371. package/src/features/tmux-subagent/session-message-count.ts +3 -3
  372. package/src/features/tmux-subagent/session-ready-waiter.ts +44 -44
  373. package/src/features/tmux-subagent/session-status-parser.ts +17 -17
  374. package/src/features/tmux-subagent/spawn-action-decider.ts +147 -147
  375. package/src/features/tmux-subagent/spawn-target-finder.ts +146 -146
  376. package/src/features/tmux-subagent/tmux-grid-constants.ts +57 -57
  377. package/src/features/tmux-subagent/tracked-session-state.ts +29 -29
  378. package/src/features/tmux-subagent/types.ts +54 -54
  379. package/src/features/tool-metadata-store/index.ts +7 -7
  380. package/src/features/tool-metadata-store/store.ts +84 -84
  381. package/src/hooks/agent-usage-reminder/constants.ts +52 -52
  382. package/src/hooks/agent-usage-reminder/hook.ts +134 -134
  383. package/src/hooks/agent-usage-reminder/index.ts +1 -1
  384. package/src/hooks/agent-usage-reminder/storage.ts +42 -42
  385. package/src/hooks/agent-usage-reminder/types.ts +6 -6
  386. package/src/hooks/anthropic-context-window-limit-recovery/AGENTS.md +49 -49
  387. package/src/hooks/anthropic-context-window-limit-recovery/aggressive-truncation-strategy.ts +87 -87
  388. package/src/hooks/anthropic-context-window-limit-recovery/client.ts +21 -21
  389. package/src/hooks/anthropic-context-window-limit-recovery/deduplication-recovery.ts +77 -77
  390. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.ts +199 -199
  391. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery.ts +149 -149
  392. package/src/hooks/anthropic-context-window-limit-recovery/executor.ts +83 -83
  393. package/src/hooks/anthropic-context-window-limit-recovery/index.ts +8 -8
  394. package/src/hooks/anthropic-context-window-limit-recovery/message-builder.ts +190 -190
  395. package/src/hooks/anthropic-context-window-limit-recovery/message-storage-directory.ts +40 -40
  396. package/src/hooks/anthropic-context-window-limit-recovery/parser.ts +209 -209
  397. package/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts +189 -189
  398. package/src/hooks/anthropic-context-window-limit-recovery/pruning-tool-output-truncation.ts +142 -142
  399. package/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts +44 -44
  400. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.ts +119 -119
  401. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.ts +193 -193
  402. package/src/hooks/anthropic-context-window-limit-recovery/recovery-strategy.ts +2 -2
  403. package/src/hooks/anthropic-context-window-limit-recovery/session-timeout-map.ts +20 -20
  404. package/src/hooks/anthropic-context-window-limit-recovery/state.ts +78 -78
  405. package/src/hooks/anthropic-context-window-limit-recovery/storage-paths.ts +6 -6
  406. package/src/hooks/anthropic-context-window-limit-recovery/storage.ts +18 -18
  407. package/src/hooks/anthropic-context-window-limit-recovery/summarize-retry-strategy.ts +218 -218
  408. package/src/hooks/anthropic-context-window-limit-recovery/target-token-truncation.ts +196 -196
  409. package/src/hooks/anthropic-context-window-limit-recovery/tool-part-types.ts +38 -38
  410. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage-sdk.ts +123 -123
  411. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage.ts +119 -119
  412. package/src/hooks/anthropic-context-window-limit-recovery/types.ts +44 -44
  413. package/src/hooks/anthropic-effort/hook.ts +93 -93
  414. package/src/hooks/anthropic-effort/index.ts +1 -1
  415. package/src/hooks/auto-slash-command/constants.ts +12 -12
  416. package/src/hooks/auto-slash-command/detector.ts +88 -88
  417. package/src/hooks/auto-slash-command/executor.ts +165 -165
  418. package/src/hooks/auto-slash-command/hook.ts +238 -238
  419. package/src/hooks/auto-slash-command/index.ts +7 -7
  420. package/src/hooks/auto-slash-command/processed-command-store.ts +74 -74
  421. package/src/hooks/auto-slash-command/types.ts +42 -42
  422. package/src/hooks/background-notification/hook.ts +54 -54
  423. package/src/hooks/background-notification/index.ts +2 -2
  424. package/src/hooks/background-notification/types.ts +5 -5
  425. package/src/hooks/bash-file-read-guard.ts +44 -44
  426. package/src/hooks/category-skill-reminder/formatter.ts +37 -37
  427. package/src/hooks/category-skill-reminder/hook.ts +142 -142
  428. package/src/hooks/category-skill-reminder/index.ts +1 -1
  429. package/src/hooks/claude-code-hooks/AGENTS.md +41 -41
  430. package/src/hooks/claude-code-hooks/claude-code-hooks-hook.ts +28 -28
  431. package/src/hooks/claude-code-hooks/config-loader.ts +151 -151
  432. package/src/hooks/claude-code-hooks/config.ts +147 -147
  433. package/src/hooks/claude-code-hooks/dispatch-hook.ts +27 -27
  434. package/src/hooks/claude-code-hooks/execute-http-hook.ts +116 -116
  435. package/src/hooks/claude-code-hooks/handlers/chat-message-handler.ts +140 -140
  436. package/src/hooks/claude-code-hooks/handlers/pre-compact-handler.ts +41 -41
  437. package/src/hooks/claude-code-hooks/handlers/session-event-handler.ts +137 -137
  438. package/src/hooks/claude-code-hooks/handlers/tool-execute-after-handler.ts +160 -160
  439. package/src/hooks/claude-code-hooks/handlers/tool-execute-before-handler.ts +93 -93
  440. package/src/hooks/claude-code-hooks/index.ts +1 -1
  441. package/src/hooks/claude-code-hooks/plugin-config.ts +12 -12
  442. package/src/hooks/claude-code-hooks/post-tool-use.ts +195 -195
  443. package/src/hooks/claude-code-hooks/pre-compact.ts +105 -105
  444. package/src/hooks/claude-code-hooks/pre-tool-use.ts +168 -168
  445. package/src/hooks/claude-code-hooks/session-hook-state.ts +17 -17
  446. package/src/hooks/claude-code-hooks/stop.ts +118 -118
  447. package/src/hooks/claude-code-hooks/todo.ts +76 -76
  448. package/src/hooks/claude-code-hooks/tool-input-cache.ts +82 -82
  449. package/src/hooks/claude-code-hooks/transcript.ts +248 -248
  450. package/src/hooks/claude-code-hooks/types.ts +214 -214
  451. package/src/hooks/claude-code-hooks/user-prompt-submit.ts +121 -121
  452. package/src/hooks/comment-checker/cli-runner.ts +127 -127
  453. package/src/hooks/comment-checker/cli.ts +269 -269
  454. package/src/hooks/comment-checker/downloader.ts +170 -170
  455. package/src/hooks/comment-checker/hook.ts +192 -192
  456. package/src/hooks/comment-checker/index.ts +1 -1
  457. package/src/hooks/comment-checker/pending-calls.ts +45 -45
  458. package/src/hooks/comment-checker/types.ts +33 -33
  459. package/src/hooks/compaction-context-injector/compaction-context-prompt.ts +56 -56
  460. package/src/hooks/compaction-context-injector/constants.ts +5 -5
  461. package/src/hooks/compaction-context-injector/hook.ts +164 -164
  462. package/src/hooks/compaction-context-injector/index.ts +1 -1
  463. package/src/hooks/compaction-context-injector/recovery-prompt-config.ts +77 -77
  464. package/src/hooks/compaction-context-injector/recovery.ts +163 -163
  465. package/src/hooks/compaction-context-injector/session-id.ts +8 -8
  466. package/src/hooks/compaction-context-injector/session-prompt-config-resolver.ts +120 -120
  467. package/src/hooks/compaction-context-injector/tail-monitor.ts +52 -52
  468. package/src/hooks/compaction-context-injector/types.ts +25 -25
  469. package/src/hooks/compaction-context-injector/validated-model.ts +47 -47
  470. package/src/hooks/compaction-todo-preserver/hook.ts +127 -127
  471. package/src/hooks/compaction-todo-preserver/index.ts +2 -2
  472. package/src/hooks/context-window-monitor.ts +113 -113
  473. package/src/hooks/delegate-task-retry/guidance.ts +45 -45
  474. package/src/hooks/delegate-task-retry/hook.ts +22 -22
  475. package/src/hooks/delegate-task-retry/index.ts +4 -4
  476. package/src/hooks/delegate-task-retry/patterns.ts +77 -77
  477. package/src/hooks/directory-agents-injector/constants.ts +7 -7
  478. package/src/hooks/directory-agents-injector/finder.ts +38 -38
  479. package/src/hooks/directory-agents-injector/hook.ts +80 -80
  480. package/src/hooks/directory-agents-injector/index.ts +1 -1
  481. package/src/hooks/directory-agents-injector/injector.ts +59 -59
  482. package/src/hooks/directory-agents-injector/storage.ts +8 -8
  483. package/src/hooks/directory-readme-injector/constants.ts +7 -7
  484. package/src/hooks/directory-readme-injector/finder.ts +33 -33
  485. package/src/hooks/directory-readme-injector/hook.ts +80 -80
  486. package/src/hooks/directory-readme-injector/index.ts +1 -1
  487. package/src/hooks/directory-readme-injector/injector.ts +59 -59
  488. package/src/hooks/directory-readme-injector/storage.ts +8 -8
  489. package/src/hooks/edit-error-recovery/hook.ts +58 -58
  490. package/src/hooks/edit-error-recovery/index.ts +5 -5
  491. package/src/hooks/empty-task-response-detector.ts +27 -27
  492. package/src/hooks/fast-apply/hook.ts +11 -11
  493. package/src/hooks/fast-apply/index.ts +1 -1
  494. package/src/hooks/fast-apply/ollama-client.ts +53 -53
  495. package/src/hooks/fast-apply/tool-execute-before-handler.ts +86 -86
  496. package/src/hooks/guard/AGENTS.md +64 -64
  497. package/src/hooks/guard/background-launch-session-tracking.ts +97 -97
  498. package/src/hooks/guard/bob-path.ts +8 -8
  499. package/src/hooks/guard/boulder-continuation-injector.ts +109 -109
  500. package/src/hooks/guard/boulder-session-lineage.ts +44 -44
  501. package/src/hooks/guard/event-handler.ts +104 -104
  502. package/src/hooks/guard/final-wave-approval-gate.ts +47 -47
  503. package/src/hooks/guard/final-wave-plan-state.ts +60 -60
  504. package/src/hooks/guard/guard-hook.ts +27 -27
  505. package/src/hooks/guard/hook-name.ts +1 -1
  506. package/src/hooks/guard/idle-event.ts +341 -341
  507. package/src/hooks/guard/index.ts +3 -3
  508. package/src/hooks/guard/is-abort-error.ts +20 -20
  509. package/src/hooks/guard/recent-model-resolver.ts +89 -89
  510. package/src/hooks/guard/resolve-active-boulder-session.ts +29 -29
  511. package/src/hooks/guard/session-last-agent.ts +153 -153
  512. package/src/hooks/guard/subagent-session-id.ts +54 -54
  513. package/src/hooks/guard/system-reminder-templates.ts +249 -249
  514. package/src/hooks/guard/task-context.ts +45 -45
  515. package/src/hooks/guard/tool-execute-after.ts +209 -209
  516. package/src/hooks/guard/tool-execute-before.ts +102 -102
  517. package/src/hooks/guard/tsconfig.json +9 -9
  518. package/src/hooks/guard/types.ts +45 -45
  519. package/src/hooks/guard/verification-reminders.ts +197 -197
  520. package/src/hooks/guard/write-edit-tool-policy.ts +5 -5
  521. package/src/hooks/hashline-edit-diff-enhancer/hook.ts +106 -106
  522. package/src/hooks/hashline-read-enhancer/hook.ts +193 -193
  523. package/src/hooks/hashline-read-enhancer/index.ts +1 -1
  524. package/src/hooks/index.ts +58 -58
  525. package/src/hooks/interactive-bash-session/constants.ts +13 -13
  526. package/src/hooks/interactive-bash-session/hook.ts +125 -125
  527. package/src/hooks/interactive-bash-session/index.ts +3 -3
  528. package/src/hooks/interactive-bash-session/interactive-bash-session-tracker.ts +119 -119
  529. package/src/hooks/interactive-bash-session/parser.ts +118 -118
  530. package/src/hooks/interactive-bash-session/state-manager.ts +35 -35
  531. package/src/hooks/interactive-bash-session/storage.ts +59 -59
  532. package/src/hooks/interactive-bash-session/tmux-command-parser.ts +125 -125
  533. package/src/hooks/interactive-bash-session/types.ts +11 -11
  534. package/src/hooks/json-error-recovery/hook.ts +58 -58
  535. package/src/hooks/json-error-recovery/index.ts +6 -6
  536. package/src/hooks/keyword-detector/AGENTS.md +57 -57
  537. package/src/hooks/keyword-detector/analyze/default.ts +28 -28
  538. package/src/hooks/keyword-detector/analyze/index.ts +1 -1
  539. package/src/hooks/keyword-detector/constants.ts +45 -45
  540. package/src/hooks/keyword-detector/detector.ts +53 -53
  541. package/src/hooks/keyword-detector/hook.ts +143 -143
  542. package/src/hooks/keyword-detector/index.ts +5 -5
  543. package/src/hooks/keyword-detector/search/default.ts +20 -20
  544. package/src/hooks/keyword-detector/search/index.ts +1 -1
  545. package/src/hooks/keyword-detector/types.ts +4 -4
  546. package/src/hooks/keyword-detector/ultrawork/default.ts +302 -302
  547. package/src/hooks/keyword-detector/ultrawork/gemini.ts +290 -290
  548. package/src/hooks/keyword-detector/ultrawork/gpt.ts +173 -173
  549. package/src/hooks/keyword-detector/ultrawork/index.ts +56 -56
  550. package/src/hooks/keyword-detector/ultrawork/planner.ts +140 -140
  551. package/src/hooks/keyword-detector/ultrawork/source-detector.ts +65 -65
  552. package/src/hooks/legacy-plugin-toast/auto-migrate-runner.ts +2 -2
  553. package/src/hooks/legacy-plugin-toast/auto-migrate.ts +64 -64
  554. package/src/hooks/legacy-plugin-toast/hook.ts +68 -68
  555. package/src/hooks/legacy-plugin-toast/index.ts +1 -1
  556. package/src/hooks/legacy-plugin-toast/plugin-entry-migrator.ts +1 -1
  557. package/src/hooks/model-fallback/chat-message-fallback-handler.ts +74 -74
  558. package/src/hooks/model-fallback/hook.ts +201 -201
  559. package/src/hooks/model-fallback/next-fallback.ts +84 -84
  560. package/src/hooks/no-bob-gpt/hook.ts +56 -56
  561. package/src/hooks/no-bob-gpt/index.ts +1 -1
  562. package/src/hooks/no-coder-non-gpt/hook.ts +67 -67
  563. package/src/hooks/no-coder-non-gpt/index.ts +1 -1
  564. package/src/hooks/non-interactive-env/constants.ts +70 -70
  565. package/src/hooks/non-interactive-env/detector.ts +19 -19
  566. package/src/hooks/non-interactive-env/index.ts +5 -5
  567. package/src/hooks/non-interactive-env/non-interactive-env-hook.ts +73 -73
  568. package/src/hooks/non-interactive-env/types.ts +3 -3
  569. package/src/hooks/preemptive-compaction-degradation-monitor.ts +212 -212
  570. package/src/hooks/preemptive-compaction-no-text-tail.ts +70 -70
  571. package/src/hooks/preemptive-compaction.ts +218 -218
  572. package/src/hooks/question-label-truncator/hook.ts +62 -62
  573. package/src/hooks/question-label-truncator/index.ts +1 -1
  574. package/src/hooks/ralph-loop/AGENTS.md +62 -62
  575. package/src/hooks/ralph-loop/command-arguments.ts +30 -30
  576. package/src/hooks/ralph-loop/completion-handler.ts +65 -65
  577. package/src/hooks/ralph-loop/completion-promise-detector-test-input.ts +23 -23
  578. package/src/hooks/ralph-loop/completion-promise-detector.ts +165 -165
  579. package/src/hooks/ralph-loop/constants.ts +7 -7
  580. package/src/hooks/ralph-loop/continuation-prompt-builder.ts +77 -77
  581. package/src/hooks/ralph-loop/continuation-prompt-injector.ts +91 -91
  582. package/src/hooks/ralph-loop/index.ts +6 -6
  583. package/src/hooks/ralph-loop/iteration-continuation.ts +64 -64
  584. package/src/hooks/ralph-loop/logician-verification-detector.ts +88 -88
  585. package/src/hooks/ralph-loop/loop-session-recovery.ts +33 -33
  586. package/src/hooks/ralph-loop/loop-state-controller.ts +178 -178
  587. package/src/hooks/ralph-loop/message-storage-directory.ts +1 -1
  588. package/src/hooks/ralph-loop/pending-verification-handler.ts +152 -152
  589. package/src/hooks/ralph-loop/ralph-loop-event-handler.ts +231 -231
  590. package/src/hooks/ralph-loop/ralph-loop-hook.ts +90 -90
  591. package/src/hooks/ralph-loop/session-event-handler.ts +56 -56
  592. package/src/hooks/ralph-loop/session-reset-strategy.ts +69 -69
  593. package/src/hooks/ralph-loop/storage.ts +164 -164
  594. package/src/hooks/ralph-loop/types.ts +25 -25
  595. package/src/hooks/ralph-loop/verification-failure-handler.ts +103 -103
  596. package/src/hooks/ralph-loop/with-timeout.ts +20 -20
  597. package/src/hooks/read-image-resizer/hook.ts +209 -209
  598. package/src/hooks/read-image-resizer/image-dimensions.ts +191 -191
  599. package/src/hooks/read-image-resizer/image-resizer.ts +191 -191
  600. package/src/hooks/read-image-resizer/index.ts +1 -1
  601. package/src/hooks/read-image-resizer/png-fallback-resizer.ts +359 -359
  602. package/src/hooks/read-image-resizer/types.ts +16 -16
  603. package/src/hooks/rules-injector/AGENTS.md +53 -53
  604. package/src/hooks/rules-injector/cache.ts +27 -27
  605. package/src/hooks/rules-injector/constants.ts +31 -31
  606. package/src/hooks/rules-injector/finder.ts +3 -3
  607. package/src/hooks/rules-injector/hook.ts +94 -94
  608. package/src/hooks/rules-injector/index.ts +2 -2
  609. package/src/hooks/rules-injector/injector.ts +189 -189
  610. package/src/hooks/rules-injector/matcher.ts +63 -63
  611. package/src/hooks/rules-injector/output-path.ts +22 -22
  612. package/src/hooks/rules-injector/parser.ts +211 -211
  613. package/src/hooks/rules-injector/project-root-finder.ts +36 -36
  614. package/src/hooks/rules-injector/rule-distance.ts +53 -53
  615. package/src/hooks/rules-injector/rule-file-finder.ts +139 -139
  616. package/src/hooks/rules-injector/rule-file-scanner.ts +55 -55
  617. package/src/hooks/rules-injector/storage.ts +59 -59
  618. package/src/hooks/rules-injector/types.ts +57 -57
  619. package/src/hooks/runtime-fallback/AGENTS.md +102 -102
  620. package/src/hooks/runtime-fallback/agent-resolver.ts +50 -50
  621. package/src/hooks/runtime-fallback/auto-retry-signal.ts +32 -32
  622. package/src/hooks/runtime-fallback/auto-retry.ts +228 -228
  623. package/src/hooks/runtime-fallback/chat-message-handler.ts +62 -62
  624. package/src/hooks/runtime-fallback/constants.ts +47 -47
  625. package/src/hooks/runtime-fallback/error-classifier.ts +183 -183
  626. package/src/hooks/runtime-fallback/event-handler.ts +213 -213
  627. package/src/hooks/runtime-fallback/fallback-bootstrap-model.ts +63 -63
  628. package/src/hooks/runtime-fallback/fallback-models.ts +86 -86
  629. package/src/hooks/runtime-fallback/fallback-retry-dispatcher.ts +55 -55
  630. package/src/hooks/runtime-fallback/fallback-state.ts +74 -74
  631. package/src/hooks/runtime-fallback/hook.ts +87 -87
  632. package/src/hooks/runtime-fallback/index.ts +2 -2
  633. package/src/hooks/runtime-fallback/last-user-retry-parts.ts +20 -20
  634. package/src/hooks/runtime-fallback/message-update-handler.ts +168 -168
  635. package/src/hooks/runtime-fallback/retry-model-payload.ts +30 -30
  636. package/src/hooks/runtime-fallback/session-messages.ts +38 -38
  637. package/src/hooks/runtime-fallback/session-status-handler.ts +126 -126
  638. package/src/hooks/runtime-fallback/types.ts +77 -77
  639. package/src/hooks/runtime-fallback/visible-assistant-response.ts +80 -80
  640. package/src/hooks/session-notification-content.ts +145 -145
  641. package/src/hooks/session-notification-formatting.ts +25 -25
  642. package/src/hooks/session-notification-scheduler.ts +188 -188
  643. package/src/hooks/session-notification-sender.ts +117 -117
  644. package/src/hooks/session-notification-utils.ts +80 -80
  645. package/src/hooks/session-notification.ts +219 -219
  646. package/src/hooks/session-recovery/AGENTS.md +59 -59
  647. package/src/hooks/session-recovery/constants.ts +5 -5
  648. package/src/hooks/session-recovery/detect-error-type.ts +102 -102
  649. package/src/hooks/session-recovery/hook.ts +166 -166
  650. package/src/hooks/session-recovery/index.ts +7 -7
  651. package/src/hooks/session-recovery/recover-empty-content-message-sdk.ts +201 -201
  652. package/src/hooks/session-recovery/recover-thinking-block-order.ts +137 -137
  653. package/src/hooks/session-recovery/recover-thinking-disabled-violation.ts +75 -75
  654. package/src/hooks/session-recovery/recover-tool-result-missing.ts +108 -108
  655. package/src/hooks/session-recovery/recover-unavailable-tool.ts +108 -108
  656. package/src/hooks/session-recovery/resume.ts +49 -49
  657. package/src/hooks/session-recovery/storage/empty-messages.ts +47 -47
  658. package/src/hooks/session-recovery/storage/empty-text.ts +118 -118
  659. package/src/hooks/session-recovery/storage/message-dir.ts +1 -1
  660. package/src/hooks/session-recovery/storage/messages-reader.ts +83 -83
  661. package/src/hooks/session-recovery/storage/orphan-thinking-search.ts +43 -43
  662. package/src/hooks/session-recovery/storage/part-content.ts +28 -28
  663. package/src/hooks/session-recovery/storage/part-id.ts +5 -5
  664. package/src/hooks/session-recovery/storage/parts-reader.ts +56 -56
  665. package/src/hooks/session-recovery/storage/text-part-injector.ts +63 -63
  666. package/src/hooks/session-recovery/storage/thinking-block-search.ts +42 -42
  667. package/src/hooks/session-recovery/storage/thinking-prepend.ts +223 -223
  668. package/src/hooks/session-recovery/storage/thinking-strip.ts +67 -67
  669. package/src/hooks/session-recovery/storage.ts +34 -34
  670. package/src/hooks/session-recovery/types.ts +101 -101
  671. package/src/hooks/session-todo-status.ts +20 -20
  672. package/src/hooks/shared/compaction-model-resolver.ts +34 -34
  673. package/src/hooks/shared/shared/compaction-model-resolver.ts +34 -34
  674. package/src/hooks/start-work/context-info-builder.ts +319 -319
  675. package/src/hooks/start-work/index.ts +4 -4
  676. package/src/hooks/start-work/parse-user-request.ts +32 -32
  677. package/src/hooks/start-work/start-work-hook.ts +135 -135
  678. package/src/hooks/start-work/worktree-block.ts +11 -11
  679. package/src/hooks/start-work/worktree-detector.ts +77 -77
  680. package/src/hooks/stop-continuation-guard/hook.ts +122 -122
  681. package/src/hooks/stop-continuation-guard/index.ts +2 -2
  682. package/src/hooks/strategist-md-only/agent-matcher.ts +5 -5
  683. package/src/hooks/strategist-md-only/agent-resolution.ts +70 -70
  684. package/src/hooks/strategist-md-only/constants.ts +78 -78
  685. package/src/hooks/strategist-md-only/hook.ts +82 -82
  686. package/src/hooks/strategist-md-only/index.ts +2 -2
  687. package/src/hooks/strategist-md-only/path-policy.ts +41 -41
  688. package/src/hooks/sub-notepad/constants.ts +29 -29
  689. package/src/hooks/sub-notepad/hook.ts +44 -44
  690. package/src/hooks/sub-notepad/index.ts +3 -3
  691. package/src/hooks/task-reminder/hook.ts +59 -59
  692. package/src/hooks/task-reminder/index.ts +1 -1
  693. package/src/hooks/task-resume-info/hook.ts +39 -39
  694. package/src/hooks/task-resume-info/index.ts +1 -1
  695. package/src/hooks/tasks-todowrite-disabler/constants.ts +30 -30
  696. package/src/hooks/tasks-todowrite-disabler/hook.ts +34 -34
  697. package/src/hooks/tasks-todowrite-disabler/index.ts +2 -2
  698. package/src/hooks/think-mode/detector.ts +59 -59
  699. package/src/hooks/think-mode/hook.ts +76 -76
  700. package/src/hooks/think-mode/index.ts +5 -5
  701. package/src/hooks/think-mode/switcher.ts +100 -100
  702. package/src/hooks/think-mode/types.ts +16 -16
  703. package/src/hooks/thinking-block-validator/hook.ts +181 -181
  704. package/src/hooks/thinking-block-validator/index.ts +1 -1
  705. package/src/hooks/todo-continuation-enforcer/AGENTS.md +65 -65
  706. package/src/hooks/todo-continuation-enforcer/abort-detection.ts +17 -17
  707. package/src/hooks/todo-continuation-enforcer/compaction-guard.ts +39 -39
  708. package/src/hooks/todo-continuation-enforcer/constants.ts +25 -25
  709. package/src/hooks/todo-continuation-enforcer/continuation-injection.ts +222 -222
  710. package/src/hooks/todo-continuation-enforcer/countdown.ts +86 -86
  711. package/src/hooks/todo-continuation-enforcer/handler.ts +99 -99
  712. package/src/hooks/todo-continuation-enforcer/idle-event.ts +225 -225
  713. package/src/hooks/todo-continuation-enforcer/index.ts +59 -59
  714. package/src/hooks/todo-continuation-enforcer/message-directory.ts +1 -1
  715. package/src/hooks/todo-continuation-enforcer/non-idle-events.ts +107 -107
  716. package/src/hooks/todo-continuation-enforcer/pending-question-detection.ts +40 -40
  717. package/src/hooks/todo-continuation-enforcer/resolve-message-info.ts +48 -48
  718. package/src/hooks/todo-continuation-enforcer/session-state.ts +283 -283
  719. package/src/hooks/todo-continuation-enforcer/stagnation-detection.ts +36 -36
  720. package/src/hooks/todo-continuation-enforcer/todo.ts +11 -11
  721. package/src/hooks/todo-continuation-enforcer/token-limit-detection.ts +38 -38
  722. package/src/hooks/todo-continuation-enforcer/types.ts +74 -74
  723. package/src/hooks/todo-description-override/description.ts +28 -28
  724. package/src/hooks/todo-description-override/hook.ts +14 -14
  725. package/src/hooks/todo-description-override/index.ts +1 -1
  726. package/src/hooks/tool-output-truncator.ts +66 -66
  727. package/src/hooks/tool-pair-validator/hook.ts +184 -184
  728. package/src/hooks/tool-pair-validator/index.ts +1 -1
  729. package/src/hooks/unstable-agent-babysitter/index.ts +9 -9
  730. package/src/hooks/unstable-agent-babysitter/task-message-analyzer.ts +110 -110
  731. package/src/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.ts +238 -238
  732. package/src/hooks/webfetch-redirect-guard/constants.ts +11 -11
  733. package/src/hooks/webfetch-redirect-guard/hook.ts +123 -123
  734. package/src/hooks/webfetch-redirect-guard/index.ts +1 -1
  735. package/src/hooks/webfetch-redirect-guard/redirect-resolution.ts +89 -89
  736. package/src/hooks/write-existing-file-guard/hook.ts +108 -108
  737. package/src/hooks/write-existing-file-guard/index.ts +1 -1
  738. package/src/hooks/write-existing-file-guard/session-read-permissions.ts +36 -36
  739. package/src/hooks/write-existing-file-guard/tool-execute-before-handler.ts +176 -176
  740. package/src/index.ts +284 -284
  741. package/src/internals/plugins/pty/LICENSE +21 -21
  742. package/src/internals/plugins/pty/constants.ts +7 -7
  743. package/src/internals/plugins/pty/plugin.ts +28 -28
  744. package/src/internals/plugins/pty/pty/buffer.ts +75 -75
  745. package/src/internals/plugins/pty/pty/formatters.ts +22 -22
  746. package/src/internals/plugins/pty/pty/manager.ts +175 -175
  747. package/src/internals/plugins/pty/pty/notification-manager.ts +75 -75
  748. package/src/internals/plugins/pty/pty/output-manager.ts +29 -29
  749. package/src/internals/plugins/pty/pty/permissions.ts +115 -115
  750. package/src/internals/plugins/pty/pty/session-lifecycle.ts +161 -161
  751. package/src/internals/plugins/pty/pty/tools/kill.ts +41 -41
  752. package/src/internals/plugins/pty/pty/tools/kill.txt +25 -25
  753. package/src/internals/plugins/pty/pty/tools/list.ts +25 -25
  754. package/src/internals/plugins/pty/pty/tools/list.txt +22 -22
  755. package/src/internals/plugins/pty/pty/tools/read.ts +234 -234
  756. package/src/internals/plugins/pty/pty/tools/read.txt +39 -39
  757. package/src/internals/plugins/pty/pty/tools/spawn.ts +71 -71
  758. package/src/internals/plugins/pty/pty/tools/spawn.txt +47 -47
  759. package/src/internals/plugins/pty/pty/tools/write.ts +96 -96
  760. package/src/internals/plugins/pty/pty/tools/write.txt +28 -28
  761. package/src/internals/plugins/pty/pty/types.ts +67 -67
  762. package/src/internals/plugins/pty/pty/utils.ts +21 -21
  763. package/src/internals/plugins/pty/pty/wildcard.ts +62 -62
  764. package/src/internals/plugins/pty/shared/constants.ts +7 -7
  765. package/src/internals/plugins/pty/types.ts +7 -7
  766. package/src/internals/plugins/subtask2/LICENSE +128 -128
  767. package/src/internals/plugins/subtask2/commands/index.ts +7 -7
  768. package/src/internals/plugins/subtask2/commands/loader.ts +39 -39
  769. package/src/internals/plugins/subtask2/commands/manifest.ts +64 -64
  770. package/src/internals/plugins/subtask2/commands/resolver.ts +28 -28
  771. package/src/internals/plugins/subtask2/core/plugin.ts +52 -52
  772. package/src/internals/plugins/subtask2/core/state.ts +764 -764
  773. package/src/internals/plugins/subtask2/features/auto.ts +57 -57
  774. package/src/internals/plugins/subtask2/features/index.ts +9 -9
  775. package/src/internals/plugins/subtask2/features/inline-subtasks.ts +205 -205
  776. package/src/internals/plugins/subtask2/features/parallel.ts +148 -148
  777. package/src/internals/plugins/subtask2/features/results.ts +48 -48
  778. package/src/internals/plugins/subtask2/features/returns.ts +273 -273
  779. package/src/internals/plugins/subtask2/features/turns.ts +190 -190
  780. package/src/internals/plugins/subtask2/hooks/command-hooks.ts +283 -283
  781. package/src/internals/plugins/subtask2/hooks/message-hooks.ts +603 -603
  782. package/src/internals/plugins/subtask2/hooks/session-idle-hook.ts +358 -358
  783. package/src/internals/plugins/subtask2/hooks/tool-hooks.ts +309 -309
  784. package/src/internals/plugins/subtask2/loop.ts +122 -122
  785. package/src/internals/plugins/subtask2/parsing/auto.ts +33 -33
  786. package/src/internals/plugins/subtask2/parsing/commands.ts +154 -154
  787. package/src/internals/plugins/subtask2/parsing/frontmatter.ts +20 -20
  788. package/src/internals/plugins/subtask2/parsing/index.ts +10 -10
  789. package/src/internals/plugins/subtask2/parsing/overrides.ts +68 -68
  790. package/src/internals/plugins/subtask2/parsing/parallel.ts +88 -88
  791. package/src/internals/plugins/subtask2/parsing/turns.ts +78 -78
  792. package/src/internals/plugins/subtask2/types.ts +41 -41
  793. package/src/internals/plugins/subtask2/utils/config.ts +100 -100
  794. package/src/internals/plugins/subtask2/utils/index.ts +7 -7
  795. package/src/internals/plugins/subtask2/utils/logger.ts +67 -67
  796. package/src/internals/plugins/subtask2/utils/prompts.ts +117 -117
  797. package/src/internals/plugins/websearch-cited/LICENSE +214 -214
  798. package/src/internals/plugins/websearch-cited/codex_prompt.txt +79 -79
  799. package/src/internals/plugins/websearch-cited/google.ts +749 -749
  800. package/src/internals/plugins/websearch-cited/index.ts +301 -301
  801. package/src/internals/plugins/websearch-cited/openai.ts +407 -407
  802. package/src/internals/plugins/websearch-cited/openrouter.ts +190 -190
  803. package/src/internals/plugins/websearch-cited/types.ts +7 -7
  804. package/src/lsp/index.ts +15 -15
  805. package/src/mcp/context7.ts +9 -9
  806. package/src/mcp/grep-app.ts +6 -6
  807. package/src/mcp/index.ts +87 -87
  808. package/src/mcp/omo-mcp-index.ts +35 -35
  809. package/src/mcp/types.ts +9 -9
  810. package/src/mcp/websearch.ts +44 -44
  811. package/src/permissions/index.ts +25 -25
  812. package/src/plugin/AGENTS.md +54 -54
  813. package/src/plugin/available-categories.ts +24 -24
  814. package/src/plugin/chat-headers.ts +141 -141
  815. package/src/plugin/chat-message.ts +309 -309
  816. package/src/plugin/chat-params.ts +182 -182
  817. package/src/plugin/command-execute-before.ts +80 -80
  818. package/src/plugin/event.ts +639 -639
  819. package/src/plugin/hooks/create-continuation-hooks.ts +128 -128
  820. package/src/plugin/hooks/create-core-hooks.ts +47 -47
  821. package/src/plugin/hooks/create-session-hooks.ts +286 -286
  822. package/src/plugin/hooks/create-skill-hooks.ts +50 -50
  823. package/src/plugin/hooks/create-tool-guard-hooks.ts +159 -159
  824. package/src/plugin/hooks/create-transform-hooks.ts +85 -85
  825. package/src/plugin/messages-transform.ts +28 -28
  826. package/src/plugin/normalize-tool-arg-schemas.ts +75 -75
  827. package/src/plugin/recent-synthetic-idles.ts +20 -20
  828. package/src/plugin/session-agent-resolver.ts +37 -37
  829. package/src/plugin/session-status-normalizer.ts +22 -22
  830. package/src/plugin/skill-context.ts +132 -132
  831. package/src/plugin/system-transform.ts +6 -6
  832. package/src/plugin/tool-execute-after.ts +178 -178
  833. package/src/plugin/tool-execute-before.ts +222 -222
  834. package/src/plugin/tool-registry.ts +282 -282
  835. package/src/plugin/types.ts +26 -26
  836. package/src/plugin/ultrawork-db-model-override.ts +142 -142
  837. package/src/plugin/ultrawork-model-override.ts +196 -196
  838. package/src/plugin/ultrawork-variant-availability.ts +51 -51
  839. package/src/plugin/unstable-agent-babysitter.ts +41 -41
  840. package/src/plugin-config.ts +314 -314
  841. package/src/plugin-dispose.ts +51 -51
  842. package/src/plugin-handlers/AGENTS.md +92 -92
  843. package/src/plugin-handlers/agent-config-handler.ts +502 -502
  844. package/src/plugin-handlers/agent-key-remapper.ts +39 -39
  845. package/src/plugin-handlers/agent-override-protection.ts +38 -38
  846. package/src/plugin-handlers/agent-priority-order.ts +63 -63
  847. package/src/plugin-handlers/category-config-resolver.ts +9 -9
  848. package/src/plugin-handlers/command-config-handler.ts +105 -105
  849. package/src/plugin-handlers/config-handler.ts +61 -61
  850. package/src/plugin-handlers/index.ts +10 -10
  851. package/src/plugin-handlers/mcp-config-handler.ts +205 -205
  852. package/src/plugin-handlers/plan-model-inheritance.ts +27 -27
  853. package/src/plugin-handlers/plugin-components-loader.ts +70 -70
  854. package/src/plugin-handlers/provider-config-handler.ts +73 -73
  855. package/src/plugin-handlers/strategist-agent-config-builder.ts +128 -128
  856. package/src/plugin-handlers/tool-config-handler.ts +193 -193
  857. package/src/plugin-interface.ts +83 -83
  858. package/src/plugin-state.ts +18 -18
  859. package/src/shared/AGENTS.md +54 -54
  860. package/src/shared/agent-display-names.ts +182 -182
  861. package/src/shared/agent-tool-restrictions.ts +80 -80
  862. package/src/shared/agent-variant.ts +101 -101
  863. package/src/shared/agents-config-dir.ts +23 -23
  864. package/src/shared/archive-entry-validator.ts +83 -83
  865. package/src/shared/background-output-consumption.ts +69 -69
  866. package/src/shared/binary-downloader.ts +127 -127
  867. package/src/shared/claude-config-dir.ts +16 -16
  868. package/src/shared/closure-protocol.ts +53 -53
  869. package/src/shared/command-executor/embedded-commands.ts +26 -26
  870. package/src/shared/command-executor/execute-command.ts +28 -28
  871. package/src/shared/command-executor/execute-hook-command.ts +129 -129
  872. package/src/shared/command-executor/home-directory.ts +5 -5
  873. package/src/shared/command-executor/resolve-commands-in-text.ts +49 -49
  874. package/src/shared/command-executor/shell-path.ts +27 -27
  875. package/src/shared/command-executor.ts +5 -5
  876. package/src/shared/compaction-agent-config-checkpoint.ts +42 -42
  877. package/src/shared/compaction-marker.ts +61 -61
  878. package/src/shared/config-errors.ts +18 -18
  879. package/src/shared/connected-providers-cache.ts +215 -215
  880. package/src/shared/contains-path.ts +50 -50
  881. package/src/shared/context-limit-resolver.ts +42 -42
  882. package/src/shared/data-path.ts +64 -64
  883. package/src/shared/deep-merge.ts +53 -53
  884. package/src/shared/disabled-tools.ts +19 -19
  885. package/src/shared/dynamic-truncator.ts +222 -222
  886. package/src/shared/external-plugin-detector.ts +139 -139
  887. package/src/shared/fallback-chain-from-models.ts +124 -124
  888. package/src/shared/fallback-model-availability.ts +102 -102
  889. package/src/shared/file-reference-resolver.ts +99 -99
  890. package/src/shared/file-utils.ts +34 -34
  891. package/src/shared/first-message-variant.ts +28 -28
  892. package/src/shared/frontmatter.ts +31 -31
  893. package/src/shared/git-worktree/collect-git-diff-stats.ts +56 -56
  894. package/src/shared/git-worktree/format-file-changes.ts +46 -46
  895. package/src/shared/git-worktree/index.ts +7 -7
  896. package/src/shared/git-worktree/parse-diff-numstat.ts +27 -27
  897. package/src/shared/git-worktree/parse-status-porcelain-line.ts +27 -27
  898. package/src/shared/git-worktree/parse-status-porcelain.ts +15 -15
  899. package/src/shared/git-worktree/types.ts +8 -8
  900. package/src/shared/hook-disabled.ts +22 -22
  901. package/src/shared/index.ts +80 -80
  902. package/src/shared/internal-initiator-marker.ts +18 -18
  903. package/src/shared/is-abort-error.ts +20 -20
  904. package/src/shared/json-file-cache-store.ts +98 -98
  905. package/src/shared/jsonc-parser.ts +98 -98
  906. package/src/shared/known-variants.ts +16 -16
  907. package/src/shared/legacy-plugin-warning.ts +68 -68
  908. package/src/shared/load-opencode-plugins.ts +60 -60
  909. package/src/shared/log-legacy-plugin-startup-warning.ts +46 -46
  910. package/src/shared/logger.ts +48 -48
  911. package/src/shared/merge-categories.ts +18 -18
  912. package/src/shared/migrate-legacy-config-file.ts +66 -66
  913. package/src/shared/migrate-legacy-plugin-entry.ts +75 -75
  914. package/src/shared/migration/agent-category.ts +60 -60
  915. package/src/shared/migration/agent-names.ts +100 -100
  916. package/src/shared/migration/config-migration.ts +210 -210
  917. package/src/shared/migration/hook-names.ts +40 -40
  918. package/src/shared/migration/migrations-sidecar.ts +92 -92
  919. package/src/shared/migration/model-versions.ts +50 -50
  920. package/src/shared/migration.ts +5 -5
  921. package/src/shared/model-availability.ts +294 -294
  922. package/src/shared/model-capabilities/bundled-snapshot.ts +15 -15
  923. package/src/shared/model-capabilities/get-model-capabilities.ts +140 -140
  924. package/src/shared/model-capabilities/index.ts +9 -9
  925. package/src/shared/model-capabilities/runtime-model-readers.ts +190 -190
  926. package/src/shared/model-capabilities/types.ts +80 -80
  927. package/src/shared/model-capabilities-cache.ts +213 -213
  928. package/src/shared/model-capability-aliases.ts +108 -108
  929. package/src/shared/model-capability-guardrails.ts +149 -149
  930. package/src/shared/model-capability-heuristics.ts +32 -32
  931. package/src/shared/model-error-classifier.ts +214 -214
  932. package/src/shared/model-format-normalizer.ts +20 -20
  933. package/src/shared/model-normalization.ts +8 -8
  934. package/src/shared/model-requirements.ts +26 -26
  935. package/src/shared/model-resolution-pipeline.ts +216 -216
  936. package/src/shared/model-resolution-types.ts +41 -41
  937. package/src/shared/model-resolver.ts +106 -106
  938. package/src/shared/model-sanitizer.ts +12 -12
  939. package/src/shared/model-settings-compatibility.ts +200 -200
  940. package/src/shared/model-suggestion-retry.ts +182 -182
  941. package/src/shared/normalize-sdk-response.ts +36 -36
  942. package/src/shared/opencode-command-dirs.ts +36 -36
  943. package/src/shared/opencode-config-dir-types.ts +15 -15
  944. package/src/shared/opencode-config-dir.ts +135 -135
  945. package/src/shared/opencode-http-api.ts +139 -139
  946. package/src/shared/opencode-message-dir.ts +29 -29
  947. package/src/shared/opencode-server-auth.ts +190 -190
  948. package/src/shared/opencode-storage-detection.ts +33 -33
  949. package/src/shared/opencode-storage-paths.ts +6 -6
  950. package/src/shared/opencode-version.ts +80 -80
  951. package/src/shared/parse-tools-config.ts +25 -25
  952. package/src/shared/pattern-matcher.ts +46 -46
  953. package/src/shared/permission-compat.ts +86 -86
  954. package/src/shared/plugin-command-discovery.ts +28 -28
  955. package/src/shared/plugin-entry-migrator.ts +21 -21
  956. package/src/shared/plugin-identity.ts +8 -8
  957. package/src/shared/port-utils.ts +48 -48
  958. package/src/shared/project-discovery-dirs.ts +101 -101
  959. package/src/shared/prompt-timeout-context.ts +49 -49
  960. package/src/shared/prompt-tools.ts +35 -35
  961. package/src/shared/provider-model-id-transform.ts +58 -58
  962. package/src/shared/question-denied-session-permission.ts +9 -9
  963. package/src/shared/record-type-guard.ts +3 -3
  964. package/src/shared/resolve-agent-definition-paths.ts +22 -22
  965. package/src/shared/retry-status-utils.ts +19 -19
  966. package/src/shared/runtime-plugin-config.ts +98 -98
  967. package/src/shared/safe-create-hook.ts +24 -24
  968. package/src/shared/session-category-registry.ts +27 -27
  969. package/src/shared/session-cursor.ts +108 -108
  970. package/src/shared/session-directory-resolver.ts +41 -41
  971. package/src/shared/session-injected-paths.ts +59 -59
  972. package/src/shared/session-model-state.ts +15 -15
  973. package/src/shared/session-prompt-params-helpers.ts +31 -31
  974. package/src/shared/session-prompt-params-state.ts +37 -37
  975. package/src/shared/session-tools-store.ts +18 -18
  976. package/src/shared/session-utils.ts +25 -25
  977. package/src/shared/shell-env.ts +175 -175
  978. package/src/shared/skill-path-resolver.ts +26 -26
  979. package/src/shared/snake-case.ts +44 -44
  980. package/src/shared/spawn-with-windows-hide.ts +84 -84
  981. package/src/shared/system-directive.ts +67 -67
  982. package/src/shared/task-system-enabled.ts +9 -9
  983. package/src/shared/tmux/constants.ts +12 -12
  984. package/src/shared/tmux/index.ts +3 -3
  985. package/src/shared/tmux/tmux-utils/environment.ts +13 -13
  986. package/src/shared/tmux/tmux-utils/layout.ts +96 -96
  987. package/src/shared/tmux/tmux-utils/pane-close.ts +48 -48
  988. package/src/shared/tmux/tmux-utils/pane-dimensions.ts +28 -28
  989. package/src/shared/tmux/tmux-utils/pane-replace.ts +73 -73
  990. package/src/shared/tmux/tmux-utils/pane-spawn.ts +94 -94
  991. package/src/shared/tmux/tmux-utils/server-health.ts +62 -62
  992. package/src/shared/tmux/tmux-utils/session-spawn.ts +145 -145
  993. package/src/shared/tmux/tmux-utils/window-spawn.ts +93 -93
  994. package/src/shared/tmux/tmux-utils.ts +15 -15
  995. package/src/shared/tmux/types.ts +4 -4
  996. package/src/shared/tool-name.ts +27 -27
  997. package/src/shared/truncate-description.ts +11 -11
  998. package/src/shared/vision-capable-models-cache.ts +17 -17
  999. package/src/shared/write-file-atomically.ts +31 -31
  1000. package/src/shared/zip-entry-listing/powershell-zip-entry-listing.ts +99 -99
  1001. package/src/shared/zip-entry-listing/python-zip-entry-listing.ts +55 -55
  1002. package/src/shared/zip-entry-listing/read-zip-symlink-target.ts +23 -23
  1003. package/src/shared/zip-entry-listing/tar-zip-entry-listing.ts +93 -93
  1004. package/src/shared/zip-entry-listing/zipinfo-zip-entry-listing.ts +72 -72
  1005. package/src/shared/zip-entry-listing.ts +13 -13
  1006. package/src/shared/zip-extractor.ts +118 -118
  1007. package/src/skills/index.ts +56 -56
  1008. package/src/testing/module-mock-lifecycle.ts +143 -143
  1009. package/src/tools/AGENTS.md +108 -108
  1010. package/src/tools/ast-grep/cli-binary-path-resolution.ts +60 -60
  1011. package/src/tools/ast-grep/cli.ts +177 -177
  1012. package/src/tools/ast-grep/constants.ts +5 -5
  1013. package/src/tools/ast-grep/downloader.ts +119 -119
  1014. package/src/tools/ast-grep/environment-check.ts +89 -89
  1015. package/src/tools/ast-grep/index.ts +5 -5
  1016. package/src/tools/ast-grep/language-support.ts +63 -63
  1017. package/src/tools/ast-grep/process-output-timeout.ts +28 -28
  1018. package/src/tools/ast-grep/result-formatter.ts +102 -102
  1019. package/src/tools/ast-grep/sg-cli-path.ts +102 -102
  1020. package/src/tools/ast-grep/sg-compact-json-output.ts +54 -54
  1021. package/src/tools/ast-grep/tools.ts +117 -117
  1022. package/src/tools/ast-grep/types.ts +61 -61
  1023. package/src/tools/background-task/AGENTS.md +53 -53
  1024. package/src/tools/background-task/clients.ts +32 -32
  1025. package/src/tools/background-task/constants.ts +9 -9
  1026. package/src/tools/background-task/create-background-cancel.ts +115 -115
  1027. package/src/tools/background-task/create-background-output.ts +159 -159
  1028. package/src/tools/background-task/create-background-task.ts +126 -126
  1029. package/src/tools/background-task/delay.ts +3 -3
  1030. package/src/tools/background-task/full-session-format.ts +148 -148
  1031. package/src/tools/background-task/index.ts +8 -8
  1032. package/src/tools/background-task/message-dir.ts +1 -1
  1033. package/src/tools/background-task/session-messages.ts +22 -22
  1034. package/src/tools/background-task/task-result-format.ts +113 -113
  1035. package/src/tools/background-task/task-status-format.ts +72 -72
  1036. package/src/tools/background-task/time-format.ts +30 -30
  1037. package/src/tools/background-task/tools.ts +11 -11
  1038. package/src/tools/background-task/truncate-text.ts +4 -4
  1039. package/src/tools/background-task/types.ts +72 -72
  1040. package/src/tools/call-omo-agent/AGENTS.md +51 -51
  1041. package/src/tools/call-omo-agent/agent-resolver.ts +64 -64
  1042. package/src/tools/call-omo-agent/background-agent-executor.ts +91 -91
  1043. package/src/tools/call-omo-agent/background-executor.ts +98 -98
  1044. package/src/tools/call-omo-agent/completion-poller.ts +65 -65
  1045. package/src/tools/call-omo-agent/constants.ts +23 -23
  1046. package/src/tools/call-omo-agent/index.ts +3 -3
  1047. package/src/tools/call-omo-agent/message-dir.ts +1 -1
  1048. package/src/tools/call-omo-agent/message-processor.ts +86 -86
  1049. package/src/tools/call-omo-agent/message-storage-directory.ts +1 -1
  1050. package/src/tools/call-omo-agent/session-creator.ts +70 -70
  1051. package/src/tools/call-omo-agent/subagent-session-creator.ts +74 -74
  1052. package/src/tools/call-omo-agent/sync-executor.ts +148 -148
  1053. package/src/tools/call-omo-agent/tool-context-with-metadata.ts +10 -10
  1054. package/src/tools/call-omo-agent/tools.ts +192 -192
  1055. package/src/tools/call-omo-agent/types.ts +34 -34
  1056. package/src/tools/delegate-task/AGENTS.md +58 -58
  1057. package/src/tools/delegate-task/anthropic-categories.ts +62 -62
  1058. package/src/tools/delegate-task/available-models.ts +64 -64
  1059. package/src/tools/delegate-task/background-continuation.ts +68 -68
  1060. package/src/tools/delegate-task/background-task.ts +165 -165
  1061. package/src/tools/delegate-task/builtin-categories.ts +33 -33
  1062. package/src/tools/delegate-task/builtin-category-definition.ts +8 -8
  1063. package/src/tools/delegate-task/cancel-unstable-agent-task.ts +19 -19
  1064. package/src/tools/delegate-task/categories.ts +77 -77
  1065. package/src/tools/delegate-task/category-resolver.ts +310 -310
  1066. package/src/tools/delegate-task/constants.ts +351 -351
  1067. package/src/tools/delegate-task/delegated-model-config.ts +20 -20
  1068. package/src/tools/delegate-task/error-formatting.ts +51 -51
  1069. package/src/tools/delegate-task/executor-types.ts +39 -39
  1070. package/src/tools/delegate-task/executor.ts +16 -16
  1071. package/src/tools/delegate-task/fallback-entry-resolution.ts +27 -27
  1072. package/src/tools/delegate-task/fallback-entry-settings.ts +20 -20
  1073. package/src/tools/delegate-task/google-categories.ts +130 -130
  1074. package/src/tools/delegate-task/index.ts +4 -4
  1075. package/src/tools/delegate-task/kimi-categories.ts +40 -40
  1076. package/src/tools/delegate-task/model-selection.ts +201 -201
  1077. package/src/tools/delegate-task/model-string-parser.ts +63 -63
  1078. package/src/tools/delegate-task/openai-categories.ts +128 -128
  1079. package/src/tools/delegate-task/parent-context-resolver.ts +47 -47
  1080. package/src/tools/delegate-task/prompt-builder.ts +107 -107
  1081. package/src/tools/delegate-task/resolve-call-id.ts +5 -5
  1082. package/src/tools/delegate-task/skill-resolver.ts +22 -22
  1083. package/src/tools/delegate-task/sub-agent.ts +70 -70
  1084. package/src/tools/delegate-task/subagent-discovery.ts +152 -152
  1085. package/src/tools/delegate-task/subagent-resolver.ts +225 -225
  1086. package/src/tools/delegate-task/sync-continuation-deps.ts +9 -9
  1087. package/src/tools/delegate-task/sync-continuation.ts +149 -149
  1088. package/src/tools/delegate-task/sync-prompt-sender.ts +137 -137
  1089. package/src/tools/delegate-task/sync-result-fetcher.ts +60 -60
  1090. package/src/tools/delegate-task/sync-session-creator.ts +29 -29
  1091. package/src/tools/delegate-task/sync-session-poller.ts +188 -188
  1092. package/src/tools/delegate-task/sync-task-deps.ts +13 -13
  1093. package/src/tools/delegate-task/sync-task-fallback.ts +68 -68
  1094. package/src/tools/delegate-task/sync-task.ts +243 -243
  1095. package/src/tools/delegate-task/time-formatter.ts +13 -13
  1096. package/src/tools/delegate-task/timing.ts +46 -46
  1097. package/src/tools/delegate-task/token-limiter.ts +123 -123
  1098. package/src/tools/delegate-task/tools.ts +259 -259
  1099. package/src/tools/delegate-task/types.ts +89 -89
  1100. package/src/tools/delegate-task/unstable-agent-task.ts +243 -243
  1101. package/src/tools/glob/cli.ts +206 -206
  1102. package/src/tools/glob/constants.ts +12 -12
  1103. package/src/tools/glob/index.ts +1 -1
  1104. package/src/tools/glob/result-formatter.ts +26 -26
  1105. package/src/tools/glob/tools.ts +49 -49
  1106. package/src/tools/glob/types.ts +23 -23
  1107. package/src/tools/grep/cli.ts +279 -279
  1108. package/src/tools/grep/constants.ts +141 -141
  1109. package/src/tools/grep/downloader.ts +128 -128
  1110. package/src/tools/grep/index.ts +1 -1
  1111. package/src/tools/grep/result-formatter.ts +60 -60
  1112. package/src/tools/grep/tools.ts +75 -75
  1113. package/src/tools/grep/types.ts +42 -42
  1114. package/src/tools/hashline-edit/AGENTS.md +92 -92
  1115. package/src/tools/hashline-edit/autocorrect-replacement-lines.ts +179 -179
  1116. package/src/tools/hashline-edit/constants.ts +10 -10
  1117. package/src/tools/hashline-edit/diff-utils.ts +53 -53
  1118. package/src/tools/hashline-edit/edit-deduplication.ts +43 -43
  1119. package/src/tools/hashline-edit/edit-operation-primitives.ts +126 -126
  1120. package/src/tools/hashline-edit/edit-operations.ts +103 -103
  1121. package/src/tools/hashline-edit/edit-ordering.ts +56 -56
  1122. package/src/tools/hashline-edit/edit-text-normalization.ts +111 -111
  1123. package/src/tools/hashline-edit/file-text-canonicalization.ts +44 -44
  1124. package/src/tools/hashline-edit/formatter-trigger.ts +132 -132
  1125. package/src/tools/hashline-edit/hash-computation.ts +154 -154
  1126. package/src/tools/hashline-edit/hashline-chunk-formatter.ts +52 -52
  1127. package/src/tools/hashline-edit/hashline-edit-diff.ts +31 -31
  1128. package/src/tools/hashline-edit/hashline-edit-executor.ts +197 -197
  1129. package/src/tools/hashline-edit/index.ts +20 -20
  1130. package/src/tools/hashline-edit/normalize-edits.ts +95 -95
  1131. package/src/tools/hashline-edit/tool-description.ts +95 -95
  1132. package/src/tools/hashline-edit/tools.ts +42 -42
  1133. package/src/tools/hashline-edit/types.ts +20 -20
  1134. package/src/tools/hashline-edit/validation.ts +181 -181
  1135. package/src/tools/index.ts +64 -64
  1136. package/src/tools/interactive-bash/constants.ts +18 -18
  1137. package/src/tools/interactive-bash/index.ts +4 -4
  1138. package/src/tools/interactive-bash/tmux-path-resolver.ts +71 -71
  1139. package/src/tools/interactive-bash/tools.ts +136 -136
  1140. package/src/tools/look-at/assistant-message-extractor.ts +67 -67
  1141. package/src/tools/look-at/constants.ts +3 -3
  1142. package/src/tools/look-at/image-converter.ts +164 -164
  1143. package/src/tools/look-at/index.ts +3 -3
  1144. package/src/tools/look-at/look-at-arguments.ts +34 -34
  1145. package/src/tools/look-at/mime-type-inference.ts +94 -94
  1146. package/src/tools/look-at/multimodal-agent-metadata.ts +166 -166
  1147. package/src/tools/look-at/multimodal-fallback-chain.ts +66 -66
  1148. package/src/tools/look-at/session-poller.ts +42 -42
  1149. package/src/tools/look-at/tools.ts +245 -245
  1150. package/src/tools/look-at/types.ts +5 -5
  1151. package/src/tools/lsp/AGENTS.md +70 -70
  1152. package/src/tools/lsp/client.ts +3 -3
  1153. package/src/tools/lsp/config.ts +3 -3
  1154. package/src/tools/lsp/constants.ts +7 -7
  1155. package/src/tools/lsp/diagnostics-tool.ts +75 -75
  1156. package/src/tools/lsp/directory-diagnostics.ts +163 -163
  1157. package/src/tools/lsp/find-references-tool.ts +43 -43
  1158. package/src/tools/lsp/goto-definition-tool.ts +42 -42
  1159. package/src/tools/lsp/index.ts +9 -9
  1160. package/src/tools/lsp/infer-extension.ts +65 -65
  1161. package/src/tools/lsp/language-config.ts +5 -5
  1162. package/src/tools/lsp/language-mappings.ts +171 -171
  1163. package/src/tools/lsp/lsp-client-connection.ts +66 -66
  1164. package/src/tools/lsp/lsp-client-transport.ts +210 -210
  1165. package/src/tools/lsp/lsp-client-wrapper.ts +116 -116
  1166. package/src/tools/lsp/lsp-client.ts +129 -129
  1167. package/src/tools/lsp/lsp-formatters.ts +193 -193
  1168. package/src/tools/lsp/lsp-manager-process-cleanup.ts +83 -83
  1169. package/src/tools/lsp/lsp-manager-temp-directory-cleanup.ts +29 -29
  1170. package/src/tools/lsp/lsp-process.ts +158 -158
  1171. package/src/tools/lsp/lsp-server.ts +217 -217
  1172. package/src/tools/lsp/rename-tools.ts +53 -53
  1173. package/src/tools/lsp/server-config-loader.ts +116 -116
  1174. package/src/tools/lsp/server-definitions.ts +91 -91
  1175. package/src/tools/lsp/server-installation.ts +58 -58
  1176. package/src/tools/lsp/server-path-bases.ts +16 -16
  1177. package/src/tools/lsp/server-resolution.ts +109 -109
  1178. package/src/tools/lsp/symbols-tool.ts +76 -76
  1179. package/src/tools/lsp/tools.ts +5 -5
  1180. package/src/tools/lsp/types.ts +124 -124
  1181. package/src/tools/lsp/workspace-edit.ts +121 -121
  1182. package/src/tools/session-manager/constants.ts +93 -93
  1183. package/src/tools/session-manager/file-storage.ts +203 -203
  1184. package/src/tools/session-manager/index.ts +3 -3
  1185. package/src/tools/session-manager/sdk-storage.ts +135 -135
  1186. package/src/tools/session-manager/sdk-unavailable.ts +43 -43
  1187. package/src/tools/session-manager/session-formatter.ts +199 -199
  1188. package/src/tools/session-manager/storage.ts +161 -161
  1189. package/src/tools/session-manager/tools.ts +197 -197
  1190. package/src/tools/session-manager/types.ts +99 -99
  1191. package/src/tools/shared/semaphore.ts +32 -32
  1192. package/src/tools/skill/constants.ts +14 -14
  1193. package/src/tools/skill/description-formatter.ts +61 -61
  1194. package/src/tools/skill/index.ts +3 -3
  1195. package/src/tools/skill/mcp-capability-formatter.ts +97 -97
  1196. package/src/tools/skill/native-skills.ts +62 -62
  1197. package/src/tools/skill/scope-priority.ts +17 -17
  1198. package/src/tools/skill/skill-body.ts +26 -26
  1199. package/src/tools/skill/skill-matcher.ts +40 -40
  1200. package/src/tools/skill/tools.ts +196 -196
  1201. package/src/tools/skill/types.ts +48 -48
  1202. package/src/tools/skill-mcp/constants.ts +9 -9
  1203. package/src/tools/skill-mcp/index.ts +3 -3
  1204. package/src/tools/skill-mcp/tools.ts +204 -204
  1205. package/src/tools/skill-mcp/types.ts +8 -8
  1206. package/src/tools/slashcommand/command-discovery.ts +161 -161
  1207. package/src/tools/slashcommand/command-output-formatter.ts +75 -75
  1208. package/src/tools/slashcommand/index.ts +2 -2
  1209. package/src/tools/slashcommand/types.ts +21 -21
  1210. package/src/tools/task/index.ts +7 -7
  1211. package/src/tools/task/task-create.ts +113 -113
  1212. package/src/tools/task/task-get.ts +47 -47
  1213. package/src/tools/task/task-list.ts +79 -79
  1214. package/src/tools/task/task-update.ts +152 -152
  1215. package/src/tools/task/todo-sync.ts +205 -205
  1216. package/src/tools/task/types.ts +77 -77
  1217. package/scripts/check_docs.ts +0 -129
  1218. package/scripts/doctor.ts +0 -522
  1219. package/scripts/measure_prompts.ts +0 -193
  1220. package/scripts/test_routing.ts +0 -294
@@ -1,91 +1,91 @@
1
- import type { BackgroundManager } from "../../features/background-agent"
2
- import type { PluginInput } from "@opencode-ai/plugin"
3
- import { resolveMessageContext } from "../../features/hook-message-injector"
4
- import { getSessionAgent } from "../../features/claude-code-session-state"
5
- import { log } from "../../shared"
6
- import type { CallOmoAgentArgs } from "./types"
7
- import type { ToolContextWithMetadata } from "./tool-context-with-metadata"
8
- import { getMessageDir } from "./message-storage-directory"
9
- import { getSessionTools } from "../../shared/session-tools-store"
10
-
11
- export async function executeBackgroundAgent(
12
- args: CallOmoAgentArgs,
13
- toolContext: ToolContextWithMetadata,
14
- manager: BackgroundManager,
15
- client: PluginInput["client"],
16
- ): Promise<string> {
17
- try {
18
- const messageDir = getMessageDir(toolContext.sessionID)
19
- const { prevMessage, firstMessageAgent } = await resolveMessageContext(
20
- toolContext.sessionID,
21
- client,
22
- messageDir
23
- )
24
-
25
- const sessionAgent = getSessionAgent(toolContext.sessionID)
26
- const parentAgent =
27
- toolContext.agent ?? sessionAgent ?? firstMessageAgent ?? prevMessage?.agent
28
-
29
- log("[call_omo_agent] parentAgent resolution", {
30
- sessionID: toolContext.sessionID,
31
- messageDir,
32
- ctxAgent: toolContext.agent,
33
- sessionAgent,
34
- firstMessageAgent,
35
- prevMessageAgent: prevMessage?.agent,
36
- resolvedParentAgent: parentAgent,
37
- })
38
-
39
- const task = await manager.launch({
40
- description: args.description,
41
- prompt: args.prompt,
42
- agent: args.subagent_type,
43
- parentSessionID: toolContext.sessionID,
44
- parentMessageID: toolContext.messageID,
45
- parentAgent,
46
- parentTools: getSessionTools(toolContext.sessionID),
47
- })
48
-
49
- const waitStart = Date.now()
50
- const waitTimeoutMs = 30_000
51
- const waitIntervalMs = 50
52
-
53
- let sessionId = task.sessionID
54
- while (!sessionId && Date.now() - waitStart < waitTimeoutMs) {
55
- const updated = manager.getTask(task.id)
56
- if (updated?.status === "error" || updated?.status === "cancelled" || updated?.status === "interrupt") {
57
- return `Task failed to start (status: ${updated.status}).\n\nTask ID: ${task.id}`
58
- }
59
- sessionId = updated?.sessionID
60
- if (sessionId) {
61
- break
62
- }
63
- if (toolContext.abort?.aborted) {
64
- break
65
- }
66
- await new Promise<void>((resolve) => {
67
- setTimeout(resolve, waitIntervalMs)
68
- })
69
- }
70
-
71
- await toolContext.metadata?.({
72
- title: args.description,
73
- metadata: { sessionId: sessionId ?? "pending" },
74
- })
75
-
76
- return `Background agent task launched successfully.
77
-
78
- Task ID: ${task.id}
79
- Session ID: ${sessionId ?? "pending"}
80
- Description: ${task.description}
81
- Agent: ${task.agent} (subagent)
82
- Status: ${task.status}
83
-
84
- System notifies on completion. Use \`background_output\` with task_id="${task.id}" to check.
85
-
86
- Do NOT call background_output now. Wait for <system-reminder> notification first.`
87
- } catch (error) {
88
- const message = error instanceof Error ? error.message : String(error)
89
- return `Failed to launch background agent task: ${message}`
90
- }
91
- }
1
+ import type { BackgroundManager } from "../../features/background-agent"
2
+ import type { PluginInput } from "@opencode-ai/plugin"
3
+ import { resolveMessageContext } from "../../features/hook-message-injector"
4
+ import { getSessionAgent } from "../../features/claude-code-session-state"
5
+ import { log } from "../../shared"
6
+ import type { CallOmoAgentArgs } from "./types"
7
+ import type { ToolContextWithMetadata } from "./tool-context-with-metadata"
8
+ import { getMessageDir } from "./message-storage-directory"
9
+ import { getSessionTools } from "../../shared/session-tools-store"
10
+
11
+ export async function executeBackgroundAgent(
12
+ args: CallOmoAgentArgs,
13
+ toolContext: ToolContextWithMetadata,
14
+ manager: BackgroundManager,
15
+ client: PluginInput["client"],
16
+ ): Promise<string> {
17
+ try {
18
+ const messageDir = getMessageDir(toolContext.sessionID)
19
+ const { prevMessage, firstMessageAgent } = await resolveMessageContext(
20
+ toolContext.sessionID,
21
+ client,
22
+ messageDir
23
+ )
24
+
25
+ const sessionAgent = getSessionAgent(toolContext.sessionID)
26
+ const parentAgent =
27
+ toolContext.agent ?? sessionAgent ?? firstMessageAgent ?? prevMessage?.agent
28
+
29
+ log("[call_omo_agent] parentAgent resolution", {
30
+ sessionID: toolContext.sessionID,
31
+ messageDir,
32
+ ctxAgent: toolContext.agent,
33
+ sessionAgent,
34
+ firstMessageAgent,
35
+ prevMessageAgent: prevMessage?.agent,
36
+ resolvedParentAgent: parentAgent,
37
+ })
38
+
39
+ const task = await manager.launch({
40
+ description: args.description,
41
+ prompt: args.prompt,
42
+ agent: args.subagent_type,
43
+ parentSessionID: toolContext.sessionID,
44
+ parentMessageID: toolContext.messageID,
45
+ parentAgent,
46
+ parentTools: getSessionTools(toolContext.sessionID),
47
+ })
48
+
49
+ const waitStart = Date.now()
50
+ const waitTimeoutMs = 30_000
51
+ const waitIntervalMs = 50
52
+
53
+ let sessionId = task.sessionID
54
+ while (!sessionId && Date.now() - waitStart < waitTimeoutMs) {
55
+ const updated = manager.getTask(task.id)
56
+ if (updated?.status === "error" || updated?.status === "cancelled" || updated?.status === "interrupt") {
57
+ return `Task failed to start (status: ${updated.status}).\n\nTask ID: ${task.id}`
58
+ }
59
+ sessionId = updated?.sessionID
60
+ if (sessionId) {
61
+ break
62
+ }
63
+ if (toolContext.abort?.aborted) {
64
+ break
65
+ }
66
+ await new Promise<void>((resolve) => {
67
+ setTimeout(resolve, waitIntervalMs)
68
+ })
69
+ }
70
+
71
+ await toolContext.metadata?.({
72
+ title: args.description,
73
+ metadata: { sessionId: sessionId ?? "pending" },
74
+ })
75
+
76
+ return `Background agent task launched successfully.
77
+
78
+ Task ID: ${task.id}
79
+ Session ID: ${sessionId ?? "pending"}
80
+ Description: ${task.description}
81
+ Agent: ${task.agent} (subagent)
82
+ Status: ${task.status}
83
+
84
+ System notifies on completion. Use \`background_output\` with task_id="${task.id}" to check.
85
+
86
+ Do NOT call background_output now. Wait for <system-reminder> notification first.`
87
+ } catch (error) {
88
+ const message = error instanceof Error ? error.message : String(error)
89
+ return `Failed to launch background agent task: ${message}`
90
+ }
91
+ }
@@ -1,98 +1,98 @@
1
- import type { CallOmoAgentArgs } from "./types"
2
- import type { BackgroundManager } from "../../features/background-agent"
3
- import type { PluginInput } from "@opencode-ai/plugin"
4
- import { log } from "../../shared"
5
- import type { DelegatedModelConfig } from "../../shared/model-resolution-types"
6
- import type { FallbackEntry } from "../../shared/model-requirements"
7
- import { resolveMessageContext } from "../../features/hook-message-injector"
8
- import { getSessionAgent } from "../../features/claude-code-session-state"
9
- import { getMessageDir } from "./message-dir"
10
- import { getSessionTools } from "../../shared/session-tools-store"
11
-
12
- export async function executeBackground(
13
- args: CallOmoAgentArgs,
14
- toolContext: {
15
- sessionID: string
16
- messageID: string
17
- agent: string
18
- abort: AbortSignal
19
- metadata?: (input: { title?: string; metadata?: Record<string, unknown> }) => void
20
- },
21
- manager: BackgroundManager,
22
- client: PluginInput["client"],
23
- fallbackChain?: FallbackEntry[],
24
- model?: DelegatedModelConfig,
25
- ): Promise<string> {
26
- try {
27
- const messageDir = getMessageDir(toolContext.sessionID)
28
- const { prevMessage, firstMessageAgent } = await resolveMessageContext(
29
- toolContext.sessionID,
30
- client,
31
- messageDir
32
- )
33
-
34
- const sessionAgent = getSessionAgent(toolContext.sessionID)
35
- const parentAgent = toolContext.agent ?? sessionAgent ?? firstMessageAgent ?? prevMessage?.agent
36
-
37
- log("[call_omo_agent] parentAgent resolution", {
38
- sessionID: toolContext.sessionID,
39
- messageDir,
40
- ctxAgent: toolContext.agent,
41
- sessionAgent,
42
- firstMessageAgent,
43
- prevMessageAgent: prevMessage?.agent,
44
- resolvedParentAgent: parentAgent,
45
- })
46
-
47
- const task = await manager.launch({
48
- description: args.description,
49
- prompt: args.prompt,
50
- agent: args.subagent_type,
51
- parentSessionID: toolContext.sessionID,
52
- parentMessageID: toolContext.messageID,
53
- parentAgent,
54
- parentTools: getSessionTools(toolContext.sessionID),
55
- model,
56
- fallbackChain,
57
- })
58
-
59
- const WAIT_FOR_SESSION_INTERVAL_MS = 50
60
- const WAIT_FOR_SESSION_TIMEOUT_MS = 30000
61
- const waitStart = Date.now()
62
- let sessionId = task.sessionID
63
- while (!sessionId && Date.now() - waitStart < WAIT_FOR_SESSION_TIMEOUT_MS) {
64
- const updated = manager.getTask(task.id)
65
- if (updated?.status === "error" || updated?.status === "cancelled" || updated?.status === "interrupt") {
66
- return `Task failed to start (status: ${updated.status}).\n\nTask ID: ${task.id}`
67
- }
68
- sessionId = updated?.sessionID
69
- if (sessionId) {
70
- break
71
- }
72
- if (toolContext.abort?.aborted) {
73
- break
74
- }
75
- await new Promise(resolve => setTimeout(resolve, WAIT_FOR_SESSION_INTERVAL_MS))
76
- }
77
-
78
- await toolContext.metadata?.({
79
- title: args.description,
80
- metadata: { sessionId: sessionId ?? "pending" },
81
- })
82
-
83
- return `Background agent task launched successfully.
84
-
85
- Task ID: ${task.id}
86
- Session ID: ${sessionId ?? "pending"}
87
- Description: ${task.description}
88
- Agent: ${task.agent} (subagent)
89
- Status: ${task.status}
90
-
91
- System notifies on completion. Use \`background_output\` with task_id="${task.id}" to check.
92
-
93
- Do NOT call background_output now. Wait for <system-reminder> notification first.`
94
- } catch (error) {
95
- const message = error instanceof Error ? error.message : String(error)
96
- return `Failed to launch background agent task: ${message}`
97
- }
98
- }
1
+ import type { CallOmoAgentArgs } from "./types"
2
+ import type { BackgroundManager } from "../../features/background-agent"
3
+ import type { PluginInput } from "@opencode-ai/plugin"
4
+ import { log } from "../../shared"
5
+ import type { DelegatedModelConfig } from "../../shared/model-resolution-types"
6
+ import type { FallbackEntry } from "../../shared/model-requirements"
7
+ import { resolveMessageContext } from "../../features/hook-message-injector"
8
+ import { getSessionAgent } from "../../features/claude-code-session-state"
9
+ import { getMessageDir } from "./message-dir"
10
+ import { getSessionTools } from "../../shared/session-tools-store"
11
+
12
+ export async function executeBackground(
13
+ args: CallOmoAgentArgs,
14
+ toolContext: {
15
+ sessionID: string
16
+ messageID: string
17
+ agent: string
18
+ abort: AbortSignal
19
+ metadata?: (input: { title?: string; metadata?: Record<string, unknown> }) => void
20
+ },
21
+ manager: BackgroundManager,
22
+ client: PluginInput["client"],
23
+ fallbackChain?: FallbackEntry[],
24
+ model?: DelegatedModelConfig,
25
+ ): Promise<string> {
26
+ try {
27
+ const messageDir = getMessageDir(toolContext.sessionID)
28
+ const { prevMessage, firstMessageAgent } = await resolveMessageContext(
29
+ toolContext.sessionID,
30
+ client,
31
+ messageDir
32
+ )
33
+
34
+ const sessionAgent = getSessionAgent(toolContext.sessionID)
35
+ const parentAgent = toolContext.agent ?? sessionAgent ?? firstMessageAgent ?? prevMessage?.agent
36
+
37
+ log("[call_omo_agent] parentAgent resolution", {
38
+ sessionID: toolContext.sessionID,
39
+ messageDir,
40
+ ctxAgent: toolContext.agent,
41
+ sessionAgent,
42
+ firstMessageAgent,
43
+ prevMessageAgent: prevMessage?.agent,
44
+ resolvedParentAgent: parentAgent,
45
+ })
46
+
47
+ const task = await manager.launch({
48
+ description: args.description,
49
+ prompt: args.prompt,
50
+ agent: args.subagent_type,
51
+ parentSessionID: toolContext.sessionID,
52
+ parentMessageID: toolContext.messageID,
53
+ parentAgent,
54
+ parentTools: getSessionTools(toolContext.sessionID),
55
+ model,
56
+ fallbackChain,
57
+ })
58
+
59
+ const WAIT_FOR_SESSION_INTERVAL_MS = 50
60
+ const WAIT_FOR_SESSION_TIMEOUT_MS = 30000
61
+ const waitStart = Date.now()
62
+ let sessionId = task.sessionID
63
+ while (!sessionId && Date.now() - waitStart < WAIT_FOR_SESSION_TIMEOUT_MS) {
64
+ const updated = manager.getTask(task.id)
65
+ if (updated?.status === "error" || updated?.status === "cancelled" || updated?.status === "interrupt") {
66
+ return `Task failed to start (status: ${updated.status}).\n\nTask ID: ${task.id}`
67
+ }
68
+ sessionId = updated?.sessionID
69
+ if (sessionId) {
70
+ break
71
+ }
72
+ if (toolContext.abort?.aborted) {
73
+ break
74
+ }
75
+ await new Promise(resolve => setTimeout(resolve, WAIT_FOR_SESSION_INTERVAL_MS))
76
+ }
77
+
78
+ await toolContext.metadata?.({
79
+ title: args.description,
80
+ metadata: { sessionId: sessionId ?? "pending" },
81
+ })
82
+
83
+ return `Background agent task launched successfully.
84
+
85
+ Task ID: ${task.id}
86
+ Session ID: ${sessionId ?? "pending"}
87
+ Description: ${task.description}
88
+ Agent: ${task.agent} (subagent)
89
+ Status: ${task.status}
90
+
91
+ System notifies on completion. Use \`background_output\` with task_id="${task.id}" to check.
92
+
93
+ Do NOT call background_output now. Wait for <system-reminder> notification first.`
94
+ } catch (error) {
95
+ const message = error instanceof Error ? error.message : String(error)
96
+ return `Failed to launch background agent task: ${message}`
97
+ }
98
+ }
@@ -1,65 +1,65 @@
1
- import type { PluginInput } from "@opencode-ai/plugin"
2
- import { log } from "../../shared"
3
- import { normalizeSDKResponse } from "../../shared"
4
-
5
- export async function waitForCompletion(
6
- sessionID: string,
7
- toolContext: {
8
- sessionID: string
9
- messageID: string
10
- agent: string
11
- abort: AbortSignal
12
- metadata?: (input: { title?: string; metadata?: Record<string, unknown> }) => void
13
- },
14
- ctx: PluginInput
15
- ): Promise<void> {
16
- log(`[call_omo_agent] Polling for completion...`)
17
-
18
- const POLL_INTERVAL_MS = 500
19
- const MAX_POLL_TIME_MS = 5 * 60 * 1000 // 5 minutes max
20
- const pollStart = Date.now()
21
- let lastMsgCount = 0
22
- let stablePolls = 0
23
- const STABILITY_REQUIRED = 3
24
-
25
- while (Date.now() - pollStart < MAX_POLL_TIME_MS) {
26
- if (toolContext.abort?.aborted) {
27
- log(`[call_omo_agent] Aborted by user`)
28
- throw new Error("Task aborted.")
29
- }
30
-
31
- await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL_MS))
32
-
33
- const statusResult = await ctx.client.session.status()
34
- const allStatuses = normalizeSDKResponse(statusResult, {} as Record<string, { type: string }>)
35
- const sessionStatus = allStatuses[sessionID]
36
-
37
- if (sessionStatus && sessionStatus.type !== "idle") {
38
- stablePolls = 0
39
- lastMsgCount = 0
40
- continue
41
- }
42
-
43
- const messagesCheck = await ctx.client.session.messages({ path: { id: sessionID } })
44
- const msgs = normalizeSDKResponse(messagesCheck, [] as Array<unknown>, {
45
- preferResponseOnMissingData: true,
46
- })
47
- const currentMsgCount = msgs.length
48
-
49
- if (currentMsgCount > 0 && currentMsgCount === lastMsgCount) {
50
- stablePolls++
51
- if (stablePolls >= STABILITY_REQUIRED) {
52
- log(`[call_omo_agent] Session complete, ${currentMsgCount} messages`)
53
- break
54
- }
55
- } else {
56
- stablePolls = 0
57
- lastMsgCount = currentMsgCount
58
- }
59
- }
60
-
61
- if (Date.now() - pollStart >= MAX_POLL_TIME_MS) {
62
- log(`[call_omo_agent] Timeout reached`)
63
- throw new Error("Agent task timed out after 5 minutes.")
64
- }
65
- }
1
+ import type { PluginInput } from "@opencode-ai/plugin"
2
+ import { log } from "../../shared"
3
+ import { normalizeSDKResponse } from "../../shared"
4
+
5
+ export async function waitForCompletion(
6
+ sessionID: string,
7
+ toolContext: {
8
+ sessionID: string
9
+ messageID: string
10
+ agent: string
11
+ abort: AbortSignal
12
+ metadata?: (input: { title?: string; metadata?: Record<string, unknown> }) => void
13
+ },
14
+ ctx: PluginInput
15
+ ): Promise<void> {
16
+ log(`[call_omo_agent] Polling for completion...`)
17
+
18
+ const POLL_INTERVAL_MS = 500
19
+ const MAX_POLL_TIME_MS = 5 * 60 * 1000 // 5 minutes max
20
+ const pollStart = Date.now()
21
+ let lastMsgCount = 0
22
+ let stablePolls = 0
23
+ const STABILITY_REQUIRED = 3
24
+
25
+ while (Date.now() - pollStart < MAX_POLL_TIME_MS) {
26
+ if (toolContext.abort?.aborted) {
27
+ log(`[call_omo_agent] Aborted by user`)
28
+ throw new Error("Task aborted.")
29
+ }
30
+
31
+ await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL_MS))
32
+
33
+ const statusResult = await ctx.client.session.status()
34
+ const allStatuses = normalizeSDKResponse(statusResult, {} as Record<string, { type: string }>)
35
+ const sessionStatus = allStatuses[sessionID]
36
+
37
+ if (sessionStatus && sessionStatus.type !== "idle") {
38
+ stablePolls = 0
39
+ lastMsgCount = 0
40
+ continue
41
+ }
42
+
43
+ const messagesCheck = await ctx.client.session.messages({ path: { id: sessionID } })
44
+ const msgs = normalizeSDKResponse(messagesCheck, [] as Array<unknown>, {
45
+ preferResponseOnMissingData: true,
46
+ })
47
+ const currentMsgCount = msgs.length
48
+
49
+ if (currentMsgCount > 0 && currentMsgCount === lastMsgCount) {
50
+ stablePolls++
51
+ if (stablePolls >= STABILITY_REQUIRED) {
52
+ log(`[call_omo_agent] Session complete, ${currentMsgCount} messages`)
53
+ break
54
+ }
55
+ } else {
56
+ stablePolls = 0
57
+ lastMsgCount = currentMsgCount
58
+ }
59
+ }
60
+
61
+ if (Date.now() - pollStart >= MAX_POLL_TIME_MS) {
62
+ log(`[call_omo_agent] Timeout reached`)
63
+ throw new Error("Agent task timed out after 5 minutes.")
64
+ }
65
+ }
@@ -1,23 +1,23 @@
1
- export const PRIMARY_ALLOWED_AGENTS = [
2
- "researcher",
3
- "strategist",
4
- "coder",
5
- "critic",
6
- "designer",
7
- "brainstormer",
8
- "platform-manager",
9
- "multimodal",
10
- ] as const
11
-
12
- export const ALLOWED_AGENTS = [
13
- ...PRIMARY_ALLOWED_AGENTS,
14
- ] as const
15
-
16
- export const CALL_OMO_AGENT_DESCRIPTION = `Spawn canonical agents or custom agents. run_in_background REQUIRED (true=async with task_id, false=sync).
17
-
18
- Canonical built-in agents:
19
- {primary_agents}
20
-
21
- Custom agents registered via user or project agent directories are also supported.
22
-
23
- Pass \`session_id=<id>\` to continue previous agent with full context. Nested subagent depth is tracked automatically and blocked past the configured limit. Prompts MUST be in English. Use \`background_output\` for async results.`
1
+ export const PRIMARY_ALLOWED_AGENTS = [
2
+ "researcher",
3
+ "strategist",
4
+ "coder",
5
+ "critic",
6
+ "designer",
7
+ "brainstormer",
8
+ "platform-manager",
9
+ "multimodal",
10
+ ] as const
11
+
12
+ export const ALLOWED_AGENTS = [
13
+ ...PRIMARY_ALLOWED_AGENTS,
14
+ ] as const
15
+
16
+ export const CALL_OMO_AGENT_DESCRIPTION = `Spawn canonical agents or custom agents. run_in_background REQUIRED (true=async with task_id, false=sync).
17
+
18
+ Canonical built-in agents:
19
+ {primary_agents}
20
+
21
+ Custom agents registered via user or project agent directories are also supported.
22
+
23
+ Pass \`session_id=<id>\` to continue previous agent with full context. Nested subagent depth is tracked automatically and blocked past the configured limit. Prompts MUST be in English. Use \`background_output\` for async results.`
@@ -1,3 +1,3 @@
1
- export * from "./types"
2
- export * from "./constants"
3
- export { createCallOmoAgent } from "./tools"
1
+ export * from "./types"
2
+ export * from "./constants"
3
+ export { createCallOmoAgent } from "./tools"
@@ -1 +1 @@
1
- export { getMessageDir } from "../../shared/opencode-message-dir"
1
+ export { getMessageDir } from "../../shared/opencode-message-dir"