@hiai-gg/hiai-opencode 0.1.1 → 0.1.3

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