@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,619 +1,619 @@
1
- export const REFACTOR_TEMPLATE = `# Intelligent Refactor Command
2
-
3
- ## Usage
4
- \`\`\`
5
- /refactor <refactoring-target> [--scope=<file|module|project>] [--strategy=<safe|aggressive>]
6
-
7
- Arguments:
8
- refactoring-target: What to refactor. Can be:
9
- - File path: src/auth/handler.ts
10
- - Symbol name: "AuthService class"
11
- - Pattern: "all functions using deprecated API"
12
- - Description: "extract validation logic into separate module"
13
-
14
- Options:
15
- --scope: Refactoring scope (default: module)
16
- - file: Single file only
17
- - module: Module/directory scope
18
- - project: Entire codebase
19
-
20
- --strategy: Risk tolerance (default: safe)
21
- - safe: Conservative, maximum test coverage required
22
- - aggressive: Allow broader changes with adequate coverage
23
- \`\`\`
24
-
25
- ## What This Command Does
26
-
27
- Performs intelligent, deterministic refactoring with full codebase awareness. Unlike blind search-and-replace, this command:
28
-
29
- 1. **Understands your intent** - Analyzes what you actually want to achieve
30
- 2. **Maps the codebase** - Builds a definitive codemap before touching anything
31
- 3. **Assesses risk** - Evaluates test coverage and determines verification strategy
32
- 4. **Plans meticulously** - Creates a detailed plan with Strategist
33
- 5. **Executes precisely** - Step-by-step refactoring with LSP and AST-grep
34
- 6. **Verifies constantly** - Runs tests after each change to ensure zero regression
35
-
36
- ---
37
-
38
- # PHASE 0: INTENT GATE (MANDATORY FIRST STEP)
39
-
40
- **BEFORE ANY ACTION, classify and validate the request.**
41
-
42
- ## Step 0.1: Parse Request Type
43
-
44
- | Signal | Classification | Action |
45
- |--------|----------------|--------|
46
- | Specific file/symbol | Explicit | Proceed to codebase analysis |
47
- | "Refactor X to Y" | Clear transformation | Proceed to codebase analysis |
48
- | "Improve", "Clean up" | Open-ended | **MUST ask**: "What specific improvement?" |
49
- | Ambiguous scope | Uncertain | **MUST ask**: "Which modules/files?" |
50
- | Missing context | Incomplete | **MUST ask**: "What's the desired outcome?" |
51
-
52
- ## Step 0.2: Validate Understanding
53
-
54
- Before proceeding, confirm:
55
- - [ ] Target is clearly identified
56
- - [ ] Desired outcome is understood
57
- - [ ] Scope is defined (file/module/project)
58
- - [ ] Success criteria can be articulated
59
-
60
- **If ANY of above is unclear, ASK CLARIFYING QUESTION:**
61
-
62
- \`\`\`
63
- I want to make sure I understand the refactoring goal correctly.
64
-
65
- **What I understood**: [interpretation]
66
- **What I'm unsure about**: [specific ambiguity]
67
-
68
- Options I see:
69
- 1. [Option A] - [implications]
70
- 2. [Option B] - [implications]
71
-
72
- **My recommendation**: [suggestion with reasoning]
73
-
74
- Should I proceed with [recommendation], or would you prefer differently?
75
- \`\`\`
76
-
77
- ## Step 0.3: Create Initial Todos
78
-
79
- **IMMEDIATELY after understanding the request, create todos:**
80
-
81
- \`\`\`
82
- TodoWrite([
83
- {"id": "phase-1", "content": "PHASE 1: Codebase Analysis - launch parallel researcher agents", "status": "pending", "priority": "high"},
84
- {"id": "phase-2", "content": "PHASE 2: Build Codemap - map dependencies and impact zones", "status": "pending", "priority": "high"},
85
- {"id": "phase-3", "content": "PHASE 3: Test Assessment - analyze test coverage and verification strategy", "status": "pending", "priority": "high"},
86
- {"id": "phase-4", "content": "PHASE 4: Plan Generation - invoke Strategist for detailed refactoring plan", "status": "pending", "priority": "high"},
87
- {"id": "phase-5", "content": "PHASE 5: Execute Refactoring - step-by-step with continuous verification", "status": "pending", "priority": "high"},
88
- {"id": "phase-6", "content": "PHASE 6: Final Verification - full test suite and regression check", "status": "pending", "priority": "high"}
89
- ])
90
- \`\`\`
91
-
92
- ---
93
-
94
- # PHASE 1: CODEBASE ANALYSIS (PARALLEL EXPLORATION)
95
-
96
- **Mark phase-1 as in_progress.**
97
-
98
- ## 1.1: Launch Parallel Researcher Agents (BACKGROUND)
99
-
100
- Fire ALL of these simultaneously using \`call_omo_agent\`:
101
-
102
- \`\`\`
103
- // Agent 1: Find the refactoring target
104
- call_omo_agent(
105
- subagent_type="researcher",
106
- run_in_background=true,
107
- prompt="Find all occurrences and definitions of [TARGET].
108
- Report: file paths, line numbers, usage patterns."
109
- )
110
-
111
- // Agent 2: Find related code
112
- call_omo_agent(
113
- subagent_type="researcher",
114
- run_in_background=true,
115
- prompt="Find all code that imports, uses, or depends on [TARGET].
116
- Report: dependency chains, import graphs."
117
- )
118
-
119
- // Agent 3: Find similar patterns
120
- call_omo_agent(
121
- subagent_type="researcher",
122
- run_in_background=true,
123
- prompt="Find similar code patterns to [TARGET] in the codebase.
124
- Report: analogous implementations, established conventions."
125
- )
126
-
127
- // Agent 4: Find tests
128
- call_omo_agent(
129
- subagent_type="researcher",
130
- run_in_background=true,
131
- prompt="Find all test files related to [TARGET].
132
- Report: test file paths, test case names, coverage indicators."
133
- )
134
-
135
- // Agent 5: Architecture context
136
- call_omo_agent(
137
- subagent_type="researcher",
138
- run_in_background=true,
139
- prompt="Find architectural patterns and module organization around [TARGET].
140
- Report: module boundaries, layer structure, design patterns in use."
141
- )
142
- \`\`\`
143
-
144
- ## 1.2: Direct Tool Exploration (WHILE AGENTS RUN)
145
-
146
- While background agents are running, use direct tools:
147
-
148
- ### LSP Tools for Precise Analysis:
149
-
150
- \`\`\`typescript
151
- // Find definition(s)
152
- LspGotoDefinition(filePath, line, character) // Where is it defined?
153
-
154
- // Find ALL usages across workspace
155
- LspFindReferences(filePath, line, character, includeDeclaration=true)
156
-
157
- // Get file structure
158
- LspDocumentSymbols(filePath) // Hierarchical outline
159
- LspWorkspaceSymbols(filePath, query="[target_symbol]") // Search by name
160
-
161
- // Get current diagnostics
162
- lsp_diagnostics(filePath) // Errors, warnings before we start
163
- \`\`\`
164
-
165
- ### AST-Grep for Pattern Analysis:
166
-
167
- \`\`\`typescript
168
- // Find structural patterns
169
- ast_grep_search(
170
- pattern="function $NAME($$$) { $$$ }", // or relevant pattern
171
- lang="typescript", // or relevant language
172
- paths=["src/"]
173
- )
174
-
175
- // Preview refactoring (DRY RUN)
176
- ast_grep_replace(
177
- pattern="[old_pattern]",
178
- rewrite="[new_pattern]",
179
- lang="[language]",
180
- dryRun=true // ALWAYS preview first
181
- )
182
- \`\`\`
183
-
184
- ### Grep for Text Patterns:
185
-
186
- \`\`\`
187
- grep(pattern="[search_term]", path="src/", include="*.ts")
188
- \`\`\`
189
-
190
- ## 1.3: Collect Background Results
191
-
192
- \`\`\`
193
- background_output(task_id="[agent_1_id]")
194
- background_output(task_id="[agent_2_id]")
195
- ...
196
- \`\`\`
197
-
198
- **Mark phase-1 as completed after all results collected.**
199
-
200
- ---
201
-
202
- # PHASE 2: BUILD CODEMAP (DEPENDENCY MAPPING)
203
-
204
- **Mark phase-2 as in_progress.**
205
-
206
- ## 2.1: Construct Definitive Codemap
207
-
208
- Based on Phase 1 results, build:
209
-
210
- \`\`\`
211
- ## CODEMAP: [TARGET]
212
-
213
- ### Core Files (Direct Impact)
214
- - \`path/to/file.ts:L10-L50\` - Primary definition
215
- - \`path/to/file2.ts:L25\` - Key usage
216
-
217
- ### Dependency Graph
218
- \`\`\`
219
- [TARGET]
220
- ├── imports from:
221
- │ ├── module-a (types)
222
- │ └── module-b (utils)
223
- ├── imported by:
224
- │ ├── consumer-1.ts
225
- │ ├── consumer-2.ts
226
- │ └── consumer-3.ts
227
- └── used by:
228
- ├── handler.ts (direct call)
229
- └── service.ts (dependency injection)
230
- \`\`\`
231
-
232
- ### Impact Zones
233
- | Zone | Risk Level | Files Affected | Test Coverage |
234
- |------|------------|----------------|---------------|
235
- | Core | HIGH | 3 files | 85% covered |
236
- | Consumers | MEDIUM | 8 files | 70% covered |
237
- | Edge | LOW | 2 files | 50% covered |
238
-
239
- ### Established Patterns
240
- - Pattern A: [description] - used in N places
241
- - Pattern B: [description] - established convention
242
- \`\`\`
243
-
244
- ## 2.2: Identify Refactoring Constraints
245
-
246
- Based on codemap:
247
- - **MUST follow**: [existing patterns identified]
248
- - **MUST NOT break**: [critical dependencies]
249
- - **Safe to change**: [isolated code zones]
250
- - **Requires migration**: [breaking changes impact]
251
-
252
- **Mark phase-2 as completed.**
253
-
254
- ---
255
-
256
- # PHASE 3: TEST ASSESSMENT (VERIFICATION STRATEGY)
257
-
258
- **Mark phase-3 as in_progress.**
259
-
260
- ## 3.1: Detect Test Infrastructure
261
-
262
- \`\`\`bash
263
- # Check for test commands
264
- cat package.json | jq '.scripts | keys[] | select(test("test"))'
265
-
266
- # Or for Python
267
- ls -la pytest.ini pyproject.toml setup.cfg
268
-
269
- # Or for Go
270
- ls -la *_test.go
271
- \`\`\`
272
-
273
- ## 3.2: Analyze Test Coverage
274
-
275
- \`\`\`
276
- // Find all tests related to target
277
- call_omo_agent(
278
- subagent_type="researcher",
279
- run_in_background=false, // Need this synchronously
280
- prompt="Analyze test coverage for [TARGET]:
281
- 1. Which test files cover this code?
282
- 2. What test cases exist?
283
- 3. Are there integration tests?
284
- 4. What edge cases are tested?
285
- 5. Estimated coverage percentage?"
286
- )
287
- \`\`\`
288
-
289
- ## 3.3: Determine Verification Strategy
290
-
291
- Based on test analysis:
292
-
293
- | Coverage Level | Strategy |
294
- |----------------|----------|
295
- | HIGH (>80%) | Run existing tests after each step |
296
- | MEDIUM (50-80%) | Run tests + add safety assertions |
297
- | LOW (<50%) | **PAUSE**: Propose adding tests first |
298
- | NONE | **BLOCK**: Refuse aggressive refactoring |
299
-
300
- **If coverage is LOW or NONE, ask user:**
301
-
302
- \`\`\`
303
- Test coverage for [TARGET] is [LEVEL].
304
-
305
- **Risk Assessment**: Refactoring without adequate tests is dangerous.
306
-
307
- Options:
308
- 1. Add tests first, then refactor (RECOMMENDED)
309
- 2. Proceed with extra caution, manual verification required
310
- 3. Abort refactoring
311
-
312
- Which approach do you prefer?
313
- \`\`\`
314
-
315
- ## 3.4: Document Verification Plan
316
-
317
- \`\`\`
318
- ## VERIFICATION PLAN
319
-
320
- ### Test Commands
321
- - Unit: \`bun test\` / \`npm test\` / \`pytest\` / etc.
322
- - Integration: [command if exists]
323
- - Type check: \`tsc --noEmit\` / \`pyright\` / etc.
324
-
325
- ### Verification Checkpoints
326
- After each refactoring step:
327
- 1. lsp_diagnostics → zero new errors
328
- 2. Run test command → all pass
329
- 3. Type check → clean
330
-
331
- ### Regression Indicators
332
- - [Specific test that must pass]
333
- - [Behavior that must be preserved]
334
- - [API contract that must not change]
335
- \`\`\`
336
-
337
- **Mark phase-3 as completed.**
338
-
339
- ---
340
-
341
- # PHASE 4: PLAN GENERATION (STRATEGIST)
342
-
343
- **Mark phase-4 as in_progress.**
344
-
345
- ## 4.1: Invoke Strategist
346
-
347
- \`\`\`
348
- Task(
349
- subagent_type="strategist",
350
- prompt="Create a detailed refactoring plan:
351
-
352
- ## Refactoring Goal
353
- [User's original request]
354
-
355
- ## Codemap (from Phase 2)
356
- [Insert codemap here]
357
-
358
- ## Test Coverage (from Phase 3)
359
- [Insert verification plan here]
360
-
361
- ## Constraints
362
- - MUST follow existing patterns: [list]
363
- - MUST NOT break: [critical paths]
364
- - MUST run tests after each step
365
-
366
- ## Requirements
367
- 1. Break down into atomic refactoring steps
368
- 2. Each step must be independently verifiable
369
- 3. Order steps by dependency (what must happen first)
370
- 4. Specify exact files and line ranges for each step
371
- 5. Include rollback strategy for each step
372
- 6. Define commit checkpoints"
373
- )
374
- \`\`\`
375
-
376
- ## 4.2: Review and Validate Plan
377
-
378
- After receiving plan from Strategist:
379
-
380
- 1. **Verify completeness**: All identified files addressed?
381
- 2. **Verify safety**: Each step reversible?
382
- 3. **Verify order**: Dependencies respected?
383
- 4. **Verify verification**: Test commands specified?
384
-
385
- ## 4.3: Register Detailed Todos
386
-
387
- Convert Strategist output into granular todos:
388
-
389
- \`\`\`
390
- TodoWrite([
391
- // Each step from the plan becomes a todo
392
- {"id": "refactor-1", "content": "Step 1: [description]", "status": "pending", "priority": "high"},
393
- {"id": "verify-1", "content": "Verify Step 1: run tests", "status": "pending", "priority": "high"},
394
- {"id": "refactor-2", "content": "Step 2: [description]", "status": "pending", "priority": "medium"},
395
- {"id": "verify-2", "content": "Verify Step 2: run tests", "status": "pending", "priority": "medium"},
396
- // ... continue for all steps
397
- ])
398
- \`\`\`
399
-
400
- **Mark phase-4 as completed.**
401
-
402
- ---
403
-
404
- # PHASE 5: EXECUTE REFACTORING (DETERMINISTIC EXECUTION)
405
-
406
- **Mark phase-5 as in_progress.**
407
-
408
- ## 5.1: Execution Protocol
409
-
410
- For EACH refactoring step:
411
-
412
- ### Pre-Step
413
- 1. Mark step todo as \`in_progress\`
414
- 2. Read current file state
415
- 3. Verify lsp_diagnostics is baseline
416
-
417
- ### Execute Step
418
- Use appropriate tool:
419
-
420
- **For Symbol Renames:**
421
- \`\`\`typescript
422
- lsp_prepare_rename(filePath, line, character) // Validate rename is possible
423
- lsp_rename(filePath, line, character, newName) // Execute rename
424
- \`\`\`
425
-
426
- **For Pattern Transformations:**
427
- \`\`\`typescript
428
- // Preview first
429
- ast_grep_replace(pattern, rewrite, lang, dryRun=true)
430
-
431
- // If preview looks good, execute
432
- ast_grep_replace(pattern, rewrite, lang, dryRun=false)
433
- \`\`\`
434
-
435
- **For Structural Changes:**
436
- \`\`\`typescript
437
- // Use Edit tool for precise changes
438
- edit(filePath, oldString, newString)
439
- \`\`\`
440
-
441
- ### Post-Step Verification (MANDATORY)
442
-
443
- \`\`\`typescript
444
- // 1. Check diagnostics
445
- lsp_diagnostics(filePath) // Must be clean or same as baseline
446
-
447
- // 2. Run tests
448
- bash("bun test") // Or appropriate test command
449
-
450
- // 3. Type check
451
- bash("tsc --noEmit") // Or appropriate type check
452
- \`\`\`
453
-
454
- ### Step Completion
455
- 1. If verification passes → Mark step todo as \`completed\`
456
- 2. If verification fails → **STOP AND FIX**
457
-
458
- ## 5.2: Failure Recovery Protocol
459
-
460
- If ANY verification fails:
461
-
462
- 1. **STOP** immediately
463
- 2. **REVERT** the failed change
464
- 3. **DIAGNOSE** what went wrong
465
- 4. **OPTIONS**:
466
- - Fix the issue and retry
467
- - Skip this step (if optional)
468
- - Consult critic agent for help
469
- - Ask user for guidance
470
-
471
- **NEVER proceed to next step with broken tests.**
472
-
473
- ## 5.3: Commit Checkpoints
474
-
475
- After each logical group of changes:
476
-
477
- \`\`\`bash
478
- git add [changed-files]
479
- git commit -m "refactor(scope): description
480
-
481
- [details of what was changed and why]"
482
- \`\`\`
483
-
484
- **Mark phase-5 as completed when all refactoring steps done.**
485
-
486
- ---
487
-
488
- # PHASE 6: FINAL VERIFICATION (REGRESSION CHECK)
489
-
490
- **Mark phase-6 as in_progress.**
491
-
492
- ## 6.1: Full Test Suite
493
-
494
- \`\`\`bash
495
- # Run complete test suite
496
- bun test # or npm test, pytest, go test, etc.
497
- \`\`\`
498
-
499
- ## 6.2: Type Check
500
-
501
- \`\`\`bash
502
- # Full type check
503
- tsc --noEmit # or equivalent
504
- \`\`\`
505
-
506
- ## 6.3: Lint Check
507
-
508
- \`\`\`bash
509
- # Run linter
510
- eslint . # or equivalent
511
- \`\`\`
512
-
513
- ## 6.4: Build Verification (if applicable)
514
-
515
- \`\`\`bash
516
- # Ensure build still works
517
- bun run build # or npm run build, etc.
518
- \`\`\`
519
-
520
- ## 6.5: Final Diagnostics
521
-
522
- \`\`\`typescript
523
- // Check all changed files
524
- for (file of changedFiles) {
525
- lsp_diagnostics(file) // Must all be clean
526
- }
527
- \`\`\`
528
-
529
- ## 6.6: Generate Summary
530
-
531
- \`\`\`markdown
532
- ## Refactoring Complete
533
-
534
- ### What Changed
535
- - [List of changes made]
536
-
537
- ### Files Modified
538
- - \`path/to/file.ts\` - [what changed]
539
- - \`path/to/file2.ts\` - [what changed]
540
-
541
- ### Verification Results
542
- - Tests: PASSED (X/Y passing)
543
- - Type Check: CLEAN
544
- - Lint: CLEAN
545
- - Build: SUCCESS
546
-
547
- ### No Regressions Detected
548
- All existing tests pass. No new errors introduced.
549
- \`\`\`
550
-
551
- **Mark phase-6 as completed.**
552
-
553
- ---
554
-
555
- # CRITICAL RULES
556
-
557
- ## NEVER DO
558
- - Skip lsp_diagnostics check after changes
559
- - Proceed with failing tests
560
- - Make changes without understanding impact
561
- - Use \`as any\`, \`@ts-ignore\`, \`@ts-expect-error\`
562
- - Delete tests to make them pass
563
- - Commit broken code
564
- - Refactor without understanding existing patterns
565
-
566
- ## ALWAYS DO
567
- - Understand before changing
568
- - Preview before applying (ast_grep dryRun=true)
569
- - Verify after every change
570
- - Follow existing codebase patterns
571
- - Keep todos updated in real-time
572
- - Commit at logical checkpoints
573
- - Report issues immediately
574
-
575
- ## ABORT CONDITIONS
576
- If any of these occur, **STOP and consult user**:
577
- - Test coverage is zero for target code
578
- - Changes would break public API
579
- - Refactoring scope is unclear
580
- - 3 consecutive verification failures
581
- - User-defined constraints violated
582
-
583
- ---
584
-
585
- # Tool Usage Philosophy
586
-
587
- You already know these tools. Use them intelligently:
588
-
589
- ## LSP Tools
590
- Leverage LSP tools for precision analysis. Key patterns:
591
- - **Understand before changing**: \`LspGotoDefinition\` to grasp context
592
- - **Impact analysis**: \`LspFindReferences\` to map all usages before modification
593
- - **Safe refactoring**: \`lsp_prepare_rename\` → \`lsp_rename\` for symbol renames
594
- - **Continuous verification**: \`lsp_diagnostics\` after every change
595
-
596
- ## AST-Grep
597
- Use \`ast_grep_search\` and \`ast_grep_replace\` for structural transformations.
598
- **Critical**: Always \`dryRun=true\` first, review, then execute.
599
-
600
- ## Agents
601
- - \`researcher\`: Parallel codebase pattern discovery
602
- - \`strategist\`: Detailed refactoring plan generation
603
- - \`critic\`: Read-only consultation for complex architectural decisions and debugging
604
- - \`researcher\`: **Use proactively** when encountering deprecated methods or library migration tasks. Query official docs and OSS examples for modern replacements.
605
-
606
- ## Deprecated Code & Library Migration
607
- When you encounter deprecated methods/APIs during refactoring:
608
- 1. Fire \`researcher\` to find the recommended modern alternative
609
- 2. **DO NOT auto-upgrade to latest version** unless user explicitly requests migration
610
- 3. If user requests library migration, use \`researcher\` to fetch latest API docs before making changes
611
-
612
- ---
613
-
614
- **Remember: Refactoring without tests is reckless. Refactoring without understanding is destructive. This command ensures you do neither.**
615
-
616
- <user-request>
617
- $ARGUMENTS
618
- </user-request>
619
- `
1
+ export const REFACTOR_TEMPLATE = `# Intelligent Refactor Command
2
+
3
+ ## Usage
4
+ \`\`\`
5
+ /refactor <refactoring-target> [--scope=<file|module|project>] [--strategy=<safe|aggressive>]
6
+
7
+ Arguments:
8
+ refactoring-target: What to refactor. Can be:
9
+ - File path: src/auth/handler.ts
10
+ - Symbol name: "AuthService class"
11
+ - Pattern: "all functions using deprecated API"
12
+ - Description: "extract validation logic into separate module"
13
+
14
+ Options:
15
+ --scope: Refactoring scope (default: module)
16
+ - file: Single file only
17
+ - module: Module/directory scope
18
+ - project: Entire codebase
19
+
20
+ --strategy: Risk tolerance (default: safe)
21
+ - safe: Conservative, maximum test coverage required
22
+ - aggressive: Allow broader changes with adequate coverage
23
+ \`\`\`
24
+
25
+ ## What This Command Does
26
+
27
+ Performs intelligent, deterministic refactoring with full codebase awareness. Unlike blind search-and-replace, this command:
28
+
29
+ 1. **Understands your intent** - Analyzes what you actually want to achieve
30
+ 2. **Maps the codebase** - Builds a definitive codemap before touching anything
31
+ 3. **Assesses risk** - Evaluates test coverage and determines verification strategy
32
+ 4. **Plans meticulously** - Creates a detailed plan with Strategist
33
+ 5. **Executes precisely** - Step-by-step refactoring with LSP and AST-grep
34
+ 6. **Verifies constantly** - Runs tests after each change to ensure zero regression
35
+
36
+ ---
37
+
38
+ # PHASE 0: INTENT GATE (MANDATORY FIRST STEP)
39
+
40
+ **BEFORE ANY ACTION, classify and validate the request.**
41
+
42
+ ## Step 0.1: Parse Request Type
43
+
44
+ | Signal | Classification | Action |
45
+ |--------|----------------|--------|
46
+ | Specific file/symbol | Explicit | Proceed to codebase analysis |
47
+ | "Refactor X to Y" | Clear transformation | Proceed to codebase analysis |
48
+ | "Improve", "Clean up" | Open-ended | **MUST ask**: "What specific improvement?" |
49
+ | Ambiguous scope | Uncertain | **MUST ask**: "Which modules/files?" |
50
+ | Missing context | Incomplete | **MUST ask**: "What's the desired outcome?" |
51
+
52
+ ## Step 0.2: Validate Understanding
53
+
54
+ Before proceeding, confirm:
55
+ - [ ] Target is clearly identified
56
+ - [ ] Desired outcome is understood
57
+ - [ ] Scope is defined (file/module/project)
58
+ - [ ] Success criteria can be articulated
59
+
60
+ **If ANY of above is unclear, ASK CLARIFYING QUESTION:**
61
+
62
+ \`\`\`
63
+ I want to make sure I understand the refactoring goal correctly.
64
+
65
+ **What I understood**: [interpretation]
66
+ **What I'm unsure about**: [specific ambiguity]
67
+
68
+ Options I see:
69
+ 1. [Option A] - [implications]
70
+ 2. [Option B] - [implications]
71
+
72
+ **My recommendation**: [suggestion with reasoning]
73
+
74
+ Should I proceed with [recommendation], or would you prefer differently?
75
+ \`\`\`
76
+
77
+ ## Step 0.3: Create Initial Todos
78
+
79
+ **IMMEDIATELY after understanding the request, create todos:**
80
+
81
+ \`\`\`
82
+ TodoWrite([
83
+ {"id": "phase-1", "content": "PHASE 1: Codebase Analysis - launch parallel researcher agents", "status": "pending", "priority": "high"},
84
+ {"id": "phase-2", "content": "PHASE 2: Build Codemap - map dependencies and impact zones", "status": "pending", "priority": "high"},
85
+ {"id": "phase-3", "content": "PHASE 3: Test Assessment - analyze test coverage and verification strategy", "status": "pending", "priority": "high"},
86
+ {"id": "phase-4", "content": "PHASE 4: Plan Generation - invoke Strategist for detailed refactoring plan", "status": "pending", "priority": "high"},
87
+ {"id": "phase-5", "content": "PHASE 5: Execute Refactoring - step-by-step with continuous verification", "status": "pending", "priority": "high"},
88
+ {"id": "phase-6", "content": "PHASE 6: Final Verification - full test suite and regression check", "status": "pending", "priority": "high"}
89
+ ])
90
+ \`\`\`
91
+
92
+ ---
93
+
94
+ # PHASE 1: CODEBASE ANALYSIS (PARALLEL EXPLORATION)
95
+
96
+ **Mark phase-1 as in_progress.**
97
+
98
+ ## 1.1: Launch Parallel Researcher Agents (BACKGROUND)
99
+
100
+ Fire ALL of these simultaneously using \`call_omo_agent\`:
101
+
102
+ \`\`\`
103
+ // Agent 1: Find the refactoring target
104
+ call_omo_agent(
105
+ subagent_type="researcher",
106
+ run_in_background=true,
107
+ prompt="Find all occurrences and definitions of [TARGET].
108
+ Report: file paths, line numbers, usage patterns."
109
+ )
110
+
111
+ // Agent 2: Find related code
112
+ call_omo_agent(
113
+ subagent_type="researcher",
114
+ run_in_background=true,
115
+ prompt="Find all code that imports, uses, or depends on [TARGET].
116
+ Report: dependency chains, import graphs."
117
+ )
118
+
119
+ // Agent 3: Find similar patterns
120
+ call_omo_agent(
121
+ subagent_type="researcher",
122
+ run_in_background=true,
123
+ prompt="Find similar code patterns to [TARGET] in the codebase.
124
+ Report: analogous implementations, established conventions."
125
+ )
126
+
127
+ // Agent 4: Find tests
128
+ call_omo_agent(
129
+ subagent_type="researcher",
130
+ run_in_background=true,
131
+ prompt="Find all test files related to [TARGET].
132
+ Report: test file paths, test case names, coverage indicators."
133
+ )
134
+
135
+ // Agent 5: Architecture context
136
+ call_omo_agent(
137
+ subagent_type="researcher",
138
+ run_in_background=true,
139
+ prompt="Find architectural patterns and module organization around [TARGET].
140
+ Report: module boundaries, layer structure, design patterns in use."
141
+ )
142
+ \`\`\`
143
+
144
+ ## 1.2: Direct Tool Exploration (WHILE AGENTS RUN)
145
+
146
+ While background agents are running, use direct tools:
147
+
148
+ ### LSP Tools for Precise Analysis:
149
+
150
+ \`\`\`typescript
151
+ // Find definition(s)
152
+ LspGotoDefinition(filePath, line, character) // Where is it defined?
153
+
154
+ // Find ALL usages across workspace
155
+ LspFindReferences(filePath, line, character, includeDeclaration=true)
156
+
157
+ // Get file structure
158
+ LspDocumentSymbols(filePath) // Hierarchical outline
159
+ LspWorkspaceSymbols(filePath, query="[target_symbol]") // Search by name
160
+
161
+ // Get current diagnostics
162
+ lsp_diagnostics(filePath) // Errors, warnings before we start
163
+ \`\`\`
164
+
165
+ ### AST-Grep for Pattern Analysis:
166
+
167
+ \`\`\`typescript
168
+ // Find structural patterns
169
+ ast_grep_search(
170
+ pattern="function $NAME($$$) { $$$ }", // or relevant pattern
171
+ lang="typescript", // or relevant language
172
+ paths=["src/"]
173
+ )
174
+
175
+ // Preview refactoring (DRY RUN)
176
+ ast_grep_replace(
177
+ pattern="[old_pattern]",
178
+ rewrite="[new_pattern]",
179
+ lang="[language]",
180
+ dryRun=true // ALWAYS preview first
181
+ )
182
+ \`\`\`
183
+
184
+ ### Grep for Text Patterns:
185
+
186
+ \`\`\`
187
+ grep(pattern="[search_term]", path="src/", include="*.ts")
188
+ \`\`\`
189
+
190
+ ## 1.3: Collect Background Results
191
+
192
+ \`\`\`
193
+ background_output(task_id="[agent_1_id]")
194
+ background_output(task_id="[agent_2_id]")
195
+ ...
196
+ \`\`\`
197
+
198
+ **Mark phase-1 as completed after all results collected.**
199
+
200
+ ---
201
+
202
+ # PHASE 2: BUILD CODEMAP (DEPENDENCY MAPPING)
203
+
204
+ **Mark phase-2 as in_progress.**
205
+
206
+ ## 2.1: Construct Definitive Codemap
207
+
208
+ Based on Phase 1 results, build:
209
+
210
+ \`\`\`
211
+ ## CODEMAP: [TARGET]
212
+
213
+ ### Core Files (Direct Impact)
214
+ - \`path/to/file.ts:L10-L50\` - Primary definition
215
+ - \`path/to/file2.ts:L25\` - Key usage
216
+
217
+ ### Dependency Graph
218
+ \`\`\`
219
+ [TARGET]
220
+ ├── imports from:
221
+ │ ├── module-a (types)
222
+ │ └── module-b (utils)
223
+ ├── imported by:
224
+ │ ├── consumer-1.ts
225
+ │ ├── consumer-2.ts
226
+ │ └── consumer-3.ts
227
+ └── used by:
228
+ ├── handler.ts (direct call)
229
+ └── service.ts (dependency injection)
230
+ \`\`\`
231
+
232
+ ### Impact Zones
233
+ | Zone | Risk Level | Files Affected | Test Coverage |
234
+ |------|------------|----------------|---------------|
235
+ | Core | HIGH | 3 files | 85% covered |
236
+ | Consumers | MEDIUM | 8 files | 70% covered |
237
+ | Edge | LOW | 2 files | 50% covered |
238
+
239
+ ### Established Patterns
240
+ - Pattern A: [description] - used in N places
241
+ - Pattern B: [description] - established convention
242
+ \`\`\`
243
+
244
+ ## 2.2: Identify Refactoring Constraints
245
+
246
+ Based on codemap:
247
+ - **MUST follow**: [existing patterns identified]
248
+ - **MUST NOT break**: [critical dependencies]
249
+ - **Safe to change**: [isolated code zones]
250
+ - **Requires migration**: [breaking changes impact]
251
+
252
+ **Mark phase-2 as completed.**
253
+
254
+ ---
255
+
256
+ # PHASE 3: TEST ASSESSMENT (VERIFICATION STRATEGY)
257
+
258
+ **Mark phase-3 as in_progress.**
259
+
260
+ ## 3.1: Detect Test Infrastructure
261
+
262
+ \`\`\`bash
263
+ # Check for test commands
264
+ cat package.json | jq '.scripts | keys[] | select(test("test"))'
265
+
266
+ # Or for Python
267
+ ls -la pytest.ini pyproject.toml setup.cfg
268
+
269
+ # Or for Go
270
+ ls -la *_test.go
271
+ \`\`\`
272
+
273
+ ## 3.2: Analyze Test Coverage
274
+
275
+ \`\`\`
276
+ // Find all tests related to target
277
+ call_omo_agent(
278
+ subagent_type="researcher",
279
+ run_in_background=false, // Need this synchronously
280
+ prompt="Analyze test coverage for [TARGET]:
281
+ 1. Which test files cover this code?
282
+ 2. What test cases exist?
283
+ 3. Are there integration tests?
284
+ 4. What edge cases are tested?
285
+ 5. Estimated coverage percentage?"
286
+ )
287
+ \`\`\`
288
+
289
+ ## 3.3: Determine Verification Strategy
290
+
291
+ Based on test analysis:
292
+
293
+ | Coverage Level | Strategy |
294
+ |----------------|----------|
295
+ | HIGH (>80%) | Run existing tests after each step |
296
+ | MEDIUM (50-80%) | Run tests + add safety assertions |
297
+ | LOW (<50%) | **PAUSE**: Propose adding tests first |
298
+ | NONE | **BLOCK**: Refuse aggressive refactoring |
299
+
300
+ **If coverage is LOW or NONE, ask user:**
301
+
302
+ \`\`\`
303
+ Test coverage for [TARGET] is [LEVEL].
304
+
305
+ **Risk Assessment**: Refactoring without adequate tests is dangerous.
306
+
307
+ Options:
308
+ 1. Add tests first, then refactor (RECOMMENDED)
309
+ 2. Proceed with extra caution, manual verification required
310
+ 3. Abort refactoring
311
+
312
+ Which approach do you prefer?
313
+ \`\`\`
314
+
315
+ ## 3.4: Document Verification Plan
316
+
317
+ \`\`\`
318
+ ## VERIFICATION PLAN
319
+
320
+ ### Test Commands
321
+ - Unit: \`bun test\` / \`npm test\` / \`pytest\` / etc.
322
+ - Integration: [command if exists]
323
+ - Type check: \`tsc --noEmit\` / \`pyright\` / etc.
324
+
325
+ ### Verification Checkpoints
326
+ After each refactoring step:
327
+ 1. lsp_diagnostics → zero new errors
328
+ 2. Run test command → all pass
329
+ 3. Type check → clean
330
+
331
+ ### Regression Indicators
332
+ - [Specific test that must pass]
333
+ - [Behavior that must be preserved]
334
+ - [API contract that must not change]
335
+ \`\`\`
336
+
337
+ **Mark phase-3 as completed.**
338
+
339
+ ---
340
+
341
+ # PHASE 4: PLAN GENERATION (STRATEGIST)
342
+
343
+ **Mark phase-4 as in_progress.**
344
+
345
+ ## 4.1: Invoke Strategist
346
+
347
+ \`\`\`
348
+ Task(
349
+ subagent_type="strategist",
350
+ prompt="Create a detailed refactoring plan:
351
+
352
+ ## Refactoring Goal
353
+ [User's original request]
354
+
355
+ ## Codemap (from Phase 2)
356
+ [Insert codemap here]
357
+
358
+ ## Test Coverage (from Phase 3)
359
+ [Insert verification plan here]
360
+
361
+ ## Constraints
362
+ - MUST follow existing patterns: [list]
363
+ - MUST NOT break: [critical paths]
364
+ - MUST run tests after each step
365
+
366
+ ## Requirements
367
+ 1. Break down into atomic refactoring steps
368
+ 2. Each step must be independently verifiable
369
+ 3. Order steps by dependency (what must happen first)
370
+ 4. Specify exact files and line ranges for each step
371
+ 5. Include rollback strategy for each step
372
+ 6. Define commit checkpoints"
373
+ )
374
+ \`\`\`
375
+
376
+ ## 4.2: Review and Validate Plan
377
+
378
+ After receiving plan from Strategist:
379
+
380
+ 1. **Verify completeness**: All identified files addressed?
381
+ 2. **Verify safety**: Each step reversible?
382
+ 3. **Verify order**: Dependencies respected?
383
+ 4. **Verify verification**: Test commands specified?
384
+
385
+ ## 4.3: Register Detailed Todos
386
+
387
+ Convert Strategist output into granular todos:
388
+
389
+ \`\`\`
390
+ TodoWrite([
391
+ // Each step from the plan becomes a todo
392
+ {"id": "refactor-1", "content": "Step 1: [description]", "status": "pending", "priority": "high"},
393
+ {"id": "verify-1", "content": "Verify Step 1: run tests", "status": "pending", "priority": "high"},
394
+ {"id": "refactor-2", "content": "Step 2: [description]", "status": "pending", "priority": "medium"},
395
+ {"id": "verify-2", "content": "Verify Step 2: run tests", "status": "pending", "priority": "medium"},
396
+ // ... continue for all steps
397
+ ])
398
+ \`\`\`
399
+
400
+ **Mark phase-4 as completed.**
401
+
402
+ ---
403
+
404
+ # PHASE 5: EXECUTE REFACTORING (DETERMINISTIC EXECUTION)
405
+
406
+ **Mark phase-5 as in_progress.**
407
+
408
+ ## 5.1: Execution Protocol
409
+
410
+ For EACH refactoring step:
411
+
412
+ ### Pre-Step
413
+ 1. Mark step todo as \`in_progress\`
414
+ 2. Read current file state
415
+ 3. Verify lsp_diagnostics is baseline
416
+
417
+ ### Execute Step
418
+ Use appropriate tool:
419
+
420
+ **For Symbol Renames:**
421
+ \`\`\`typescript
422
+ lsp_prepare_rename(filePath, line, character) // Validate rename is possible
423
+ lsp_rename(filePath, line, character, newName) // Execute rename
424
+ \`\`\`
425
+
426
+ **For Pattern Transformations:**
427
+ \`\`\`typescript
428
+ // Preview first
429
+ ast_grep_replace(pattern, rewrite, lang, dryRun=true)
430
+
431
+ // If preview looks good, execute
432
+ ast_grep_replace(pattern, rewrite, lang, dryRun=false)
433
+ \`\`\`
434
+
435
+ **For Structural Changes:**
436
+ \`\`\`typescript
437
+ // Use Edit tool for precise changes
438
+ edit(filePath, oldString, newString)
439
+ \`\`\`
440
+
441
+ ### Post-Step Verification (MANDATORY)
442
+
443
+ \`\`\`typescript
444
+ // 1. Check diagnostics
445
+ lsp_diagnostics(filePath) // Must be clean or same as baseline
446
+
447
+ // 2. Run tests
448
+ bash("bun test") // Or appropriate test command
449
+
450
+ // 3. Type check
451
+ bash("tsc --noEmit") // Or appropriate type check
452
+ \`\`\`
453
+
454
+ ### Step Completion
455
+ 1. If verification passes → Mark step todo as \`completed\`
456
+ 2. If verification fails → **STOP AND FIX**
457
+
458
+ ## 5.2: Failure Recovery Protocol
459
+
460
+ If ANY verification fails:
461
+
462
+ 1. **STOP** immediately
463
+ 2. **REVERT** the failed change
464
+ 3. **DIAGNOSE** what went wrong
465
+ 4. **OPTIONS**:
466
+ - Fix the issue and retry
467
+ - Skip this step (if optional)
468
+ - Consult critic agent for help
469
+ - Ask user for guidance
470
+
471
+ **NEVER proceed to next step with broken tests.**
472
+
473
+ ## 5.3: Commit Checkpoints
474
+
475
+ After each logical group of changes:
476
+
477
+ \`\`\`bash
478
+ git add [changed-files]
479
+ git commit -m "refactor(scope): description
480
+
481
+ [details of what was changed and why]"
482
+ \`\`\`
483
+
484
+ **Mark phase-5 as completed when all refactoring steps done.**
485
+
486
+ ---
487
+
488
+ # PHASE 6: FINAL VERIFICATION (REGRESSION CHECK)
489
+
490
+ **Mark phase-6 as in_progress.**
491
+
492
+ ## 6.1: Full Test Suite
493
+
494
+ \`\`\`bash
495
+ # Run complete test suite
496
+ bun test # or npm test, pytest, go test, etc.
497
+ \`\`\`
498
+
499
+ ## 6.2: Type Check
500
+
501
+ \`\`\`bash
502
+ # Full type check
503
+ tsc --noEmit # or equivalent
504
+ \`\`\`
505
+
506
+ ## 6.3: Lint Check
507
+
508
+ \`\`\`bash
509
+ # Run linter
510
+ eslint . # or equivalent
511
+ \`\`\`
512
+
513
+ ## 6.4: Build Verification (if applicable)
514
+
515
+ \`\`\`bash
516
+ # Ensure build still works
517
+ bun run build # or npm run build, etc.
518
+ \`\`\`
519
+
520
+ ## 6.5: Final Diagnostics
521
+
522
+ \`\`\`typescript
523
+ // Check all changed files
524
+ for (file of changedFiles) {
525
+ lsp_diagnostics(file) // Must all be clean
526
+ }
527
+ \`\`\`
528
+
529
+ ## 6.6: Generate Summary
530
+
531
+ \`\`\`markdown
532
+ ## Refactoring Complete
533
+
534
+ ### What Changed
535
+ - [List of changes made]
536
+
537
+ ### Files Modified
538
+ - \`path/to/file.ts\` - [what changed]
539
+ - \`path/to/file2.ts\` - [what changed]
540
+
541
+ ### Verification Results
542
+ - Tests: PASSED (X/Y passing)
543
+ - Type Check: CLEAN
544
+ - Lint: CLEAN
545
+ - Build: SUCCESS
546
+
547
+ ### No Regressions Detected
548
+ All existing tests pass. No new errors introduced.
549
+ \`\`\`
550
+
551
+ **Mark phase-6 as completed.**
552
+
553
+ ---
554
+
555
+ # CRITICAL RULES
556
+
557
+ ## NEVER DO
558
+ - Skip lsp_diagnostics check after changes
559
+ - Proceed with failing tests
560
+ - Make changes without understanding impact
561
+ - Use \`as any\`, \`@ts-ignore\`, \`@ts-expect-error\`
562
+ - Delete tests to make them pass
563
+ - Commit broken code
564
+ - Refactor without understanding existing patterns
565
+
566
+ ## ALWAYS DO
567
+ - Understand before changing
568
+ - Preview before applying (ast_grep dryRun=true)
569
+ - Verify after every change
570
+ - Follow existing codebase patterns
571
+ - Keep todos updated in real-time
572
+ - Commit at logical checkpoints
573
+ - Report issues immediately
574
+
575
+ ## ABORT CONDITIONS
576
+ If any of these occur, **STOP and consult user**:
577
+ - Test coverage is zero for target code
578
+ - Changes would break public API
579
+ - Refactoring scope is unclear
580
+ - 3 consecutive verification failures
581
+ - User-defined constraints violated
582
+
583
+ ---
584
+
585
+ # Tool Usage Philosophy
586
+
587
+ You already know these tools. Use them intelligently:
588
+
589
+ ## LSP Tools
590
+ Leverage LSP tools for precision analysis. Key patterns:
591
+ - **Understand before changing**: \`LspGotoDefinition\` to grasp context
592
+ - **Impact analysis**: \`LspFindReferences\` to map all usages before modification
593
+ - **Safe refactoring**: \`lsp_prepare_rename\` → \`lsp_rename\` for symbol renames
594
+ - **Continuous verification**: \`lsp_diagnostics\` after every change
595
+
596
+ ## AST-Grep
597
+ Use \`ast_grep_search\` and \`ast_grep_replace\` for structural transformations.
598
+ **Critical**: Always \`dryRun=true\` first, review, then execute.
599
+
600
+ ## Agents
601
+ - \`researcher\`: Parallel codebase pattern discovery
602
+ - \`strategist\`: Detailed refactoring plan generation
603
+ - \`critic\`: Read-only consultation for complex architectural decisions and debugging
604
+ - \`researcher\`: **Use proactively** when encountering deprecated methods or library migration tasks. Query official docs and OSS examples for modern replacements.
605
+
606
+ ## Deprecated Code & Library Migration
607
+ When you encounter deprecated methods/APIs during refactoring:
608
+ 1. Fire \`researcher\` to find the recommended modern alternative
609
+ 2. **DO NOT auto-upgrade to latest version** unless user explicitly requests migration
610
+ 3. If user requests library migration, use \`researcher\` to fetch latest API docs before making changes
611
+
612
+ ---
613
+
614
+ **Remember: Refactoring without tests is reckless. Refactoring without understanding is destructive. This command ensures you do neither.**
615
+
616
+ <user-request>
617
+ $ARGUMENTS
618
+ </user-request>
619
+ `