@hiai-gg/hiai-opencode 0.1.0 → 0.1.1

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