patchwork-os 0.2.0-alpha.0

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 (721) hide show
  1. package/LICENSE +21 -0
  2. package/README.bridge.md +352 -0
  3. package/README.md +72 -0
  4. package/deploy/README.md +172 -0
  5. package/deploy/bootstrap-new-vps.sh +364 -0
  6. package/deploy/claude-ide-bridge.service.template +67 -0
  7. package/deploy/claude-ide-bridge@.service +31 -0
  8. package/deploy/ecosystem.config.js.example +36 -0
  9. package/deploy/install-vps-service.sh +240 -0
  10. package/deploy/nginx-claude-bridge.conf.template +129 -0
  11. package/dist/activityLog.d.ts +112 -0
  12. package/dist/activityLog.js +399 -0
  13. package/dist/activityLog.js.map +1 -0
  14. package/dist/activityTypes.d.ts +28 -0
  15. package/dist/activityTypes.js +9 -0
  16. package/dist/activityTypes.js.map +1 -0
  17. package/dist/adapters/base.d.ts +78 -0
  18. package/dist/adapters/base.js +14 -0
  19. package/dist/adapters/base.js.map +1 -0
  20. package/dist/adapters/claude.d.ts +18 -0
  21. package/dist/adapters/claude.js +276 -0
  22. package/dist/adapters/claude.js.map +1 -0
  23. package/dist/adapters/gemini.d.ts +17 -0
  24. package/dist/adapters/gemini.js +218 -0
  25. package/dist/adapters/gemini.js.map +1 -0
  26. package/dist/adapters/grok.d.ts +7 -0
  27. package/dist/adapters/grok.js +21 -0
  28. package/dist/adapters/grok.js.map +1 -0
  29. package/dist/adapters/index.d.ts +5 -0
  30. package/dist/adapters/index.js +37 -0
  31. package/dist/adapters/index.js.map +1 -0
  32. package/dist/adapters/local.d.ts +7 -0
  33. package/dist/adapters/local.js +22 -0
  34. package/dist/adapters/local.js.map +1 -0
  35. package/dist/adapters/openai.d.ts +22 -0
  36. package/dist/adapters/openai.js +284 -0
  37. package/dist/adapters/openai.js.map +1 -0
  38. package/dist/adapters/sse.d.ts +13 -0
  39. package/dist/adapters/sse.js +58 -0
  40. package/dist/adapters/sse.js.map +1 -0
  41. package/dist/analyticsAggregator.d.ts +28 -0
  42. package/dist/analyticsAggregator.js +133 -0
  43. package/dist/analyticsAggregator.js.map +1 -0
  44. package/dist/analyticsPrefs.d.ts +9 -0
  45. package/dist/analyticsPrefs.js +50 -0
  46. package/dist/analyticsPrefs.js.map +1 -0
  47. package/dist/analyticsSend.d.ts +12 -0
  48. package/dist/analyticsSend.js +34 -0
  49. package/dist/analyticsSend.js.map +1 -0
  50. package/dist/approvalHttp.d.ts +46 -0
  51. package/dist/approvalHttp.js +370 -0
  52. package/dist/approvalHttp.js.map +1 -0
  53. package/dist/approvalQueue.d.ts +49 -0
  54. package/dist/approvalQueue.js +84 -0
  55. package/dist/approvalQueue.js.map +1 -0
  56. package/dist/automation.d.ts +675 -0
  57. package/dist/automation.js +1038 -0
  58. package/dist/automation.js.map +1 -0
  59. package/dist/bridge.d.ts +85 -0
  60. package/dist/bridge.js +1535 -0
  61. package/dist/bridge.js.map +1 -0
  62. package/dist/bridgeLockDiscovery.d.ts +11 -0
  63. package/dist/bridgeLockDiscovery.js +49 -0
  64. package/dist/bridgeLockDiscovery.js.map +1 -0
  65. package/dist/bridgeToken.d.ts +22 -0
  66. package/dist/bridgeToken.js +114 -0
  67. package/dist/bridgeToken.js.map +1 -0
  68. package/dist/bridgeToolsRules.d.ts +20 -0
  69. package/dist/bridgeToolsRules.js +79 -0
  70. package/dist/bridgeToolsRules.js.map +1 -0
  71. package/dist/ccPermissions.d.ts +59 -0
  72. package/dist/ccPermissions.js +163 -0
  73. package/dist/ccPermissions.js.map +1 -0
  74. package/dist/claudeDriver.d.ts +129 -0
  75. package/dist/claudeDriver.js +459 -0
  76. package/dist/claudeDriver.js.map +1 -0
  77. package/dist/claudeMdPatch.d.ts +29 -0
  78. package/dist/claudeMdPatch.js +164 -0
  79. package/dist/claudeMdPatch.js.map +1 -0
  80. package/dist/claudeOrchestrator.d.ts +171 -0
  81. package/dist/claudeOrchestrator.js +591 -0
  82. package/dist/claudeOrchestrator.js.map +1 -0
  83. package/dist/commands/install.d.ts +1 -0
  84. package/dist/commands/install.js +158 -0
  85. package/dist/commands/install.js.map +1 -0
  86. package/dist/commands/marketplace.d.ts +11 -0
  87. package/dist/commands/marketplace.js +120 -0
  88. package/dist/commands/marketplace.js.map +1 -0
  89. package/dist/commands/patchworkInit.d.ts +14 -0
  90. package/dist/commands/patchworkInit.js +155 -0
  91. package/dist/commands/patchworkInit.js.map +1 -0
  92. package/dist/commands/task.d.ts +14 -0
  93. package/dist/commands/task.js +289 -0
  94. package/dist/commands/task.js.map +1 -0
  95. package/dist/commands/tokenEfficiency.d.ts +9 -0
  96. package/dist/commands/tokenEfficiency.js +211 -0
  97. package/dist/commands/tokenEfficiency.js.map +1 -0
  98. package/dist/commands/tools.d.ts +28 -0
  99. package/dist/commands/tools.js +326 -0
  100. package/dist/commands/tools.js.map +1 -0
  101. package/dist/commitIssueLinkLog.d.ts +77 -0
  102. package/dist/commitIssueLinkLog.js +142 -0
  103. package/dist/commitIssueLinkLog.js.map +1 -0
  104. package/dist/companions/registry.d.ts +12 -0
  105. package/dist/companions/registry.js +71 -0
  106. package/dist/companions/registry.js.map +1 -0
  107. package/dist/config.d.ts +105 -0
  108. package/dist/config.js +720 -0
  109. package/dist/config.js.map +1 -0
  110. package/dist/crypto.d.ts +16 -0
  111. package/dist/crypto.js +34 -0
  112. package/dist/crypto.js.map +1 -0
  113. package/dist/dashboard.d.ts +12 -0
  114. package/dist/dashboard.js +149 -0
  115. package/dist/dashboard.js.map +1 -0
  116. package/dist/decisionTraceLog.d.ts +77 -0
  117. package/dist/decisionTraceLog.js +147 -0
  118. package/dist/decisionTraceLog.js.map +1 -0
  119. package/dist/errors.d.ts +32 -0
  120. package/dist/errors.js +34 -0
  121. package/dist/errors.js.map +1 -0
  122. package/dist/extensionClient.d.ts +279 -0
  123. package/dist/extensionClient.js +1253 -0
  124. package/dist/extensionClient.js.map +1 -0
  125. package/dist/fileLock.d.ts +36 -0
  126. package/dist/fileLock.js +121 -0
  127. package/dist/fileLock.js.map +1 -0
  128. package/dist/fp/activityAnalytics.d.ts +39 -0
  129. package/dist/fp/activityAnalytics.js +111 -0
  130. package/dist/fp/activityAnalytics.js.map +1 -0
  131. package/dist/fp/async.d.ts +48 -0
  132. package/dist/fp/async.js +60 -0
  133. package/dist/fp/async.js.map +1 -0
  134. package/dist/fp/automationInterpreter.d.ts +37 -0
  135. package/dist/fp/automationInterpreter.js +523 -0
  136. package/dist/fp/automationInterpreter.js.map +1 -0
  137. package/dist/fp/automationProgram.d.ts +89 -0
  138. package/dist/fp/automationProgram.js +29 -0
  139. package/dist/fp/automationProgram.js.map +1 -0
  140. package/dist/fp/automationState.d.ts +135 -0
  141. package/dist/fp/automationState.js +206 -0
  142. package/dist/fp/automationState.js.map +1 -0
  143. package/dist/fp/automationUtils.d.ts +31 -0
  144. package/dist/fp/automationUtils.js +61 -0
  145. package/dist/fp/automationUtils.js.map +1 -0
  146. package/dist/fp/brandedTypes.d.ts +32 -0
  147. package/dist/fp/brandedTypes.js +41 -0
  148. package/dist/fp/brandedTypes.js.map +1 -0
  149. package/dist/fp/commandDescription.d.ts +18 -0
  150. package/dist/fp/commandDescription.js +125 -0
  151. package/dist/fp/commandDescription.js.map +1 -0
  152. package/dist/fp/extensionSnapshot.d.ts +10 -0
  153. package/dist/fp/extensionSnapshot.js +14 -0
  154. package/dist/fp/extensionSnapshot.js.map +1 -0
  155. package/dist/fp/index.d.ts +8 -0
  156. package/dist/fp/index.js +9 -0
  157. package/dist/fp/index.js.map +1 -0
  158. package/dist/fp/interpreterContext.d.ts +69 -0
  159. package/dist/fp/interpreterContext.js +56 -0
  160. package/dist/fp/interpreterContext.js.map +1 -0
  161. package/dist/fp/policyParser.d.ts +16 -0
  162. package/dist/fp/policyParser.js +334 -0
  163. package/dist/fp/policyParser.js.map +1 -0
  164. package/dist/fp/result.d.ts +38 -0
  165. package/dist/fp/result.js +57 -0
  166. package/dist/fp/result.js.map +1 -0
  167. package/dist/fp/tokenBucket.d.ts +27 -0
  168. package/dist/fp/tokenBucket.js +36 -0
  169. package/dist/fp/tokenBucket.js.map +1 -0
  170. package/dist/index.d.ts +2 -0
  171. package/dist/index.js +1465 -0
  172. package/dist/index.js.map +1 -0
  173. package/dist/instructionsUtils.d.ts +17 -0
  174. package/dist/instructionsUtils.js +38 -0
  175. package/dist/instructionsUtils.js.map +1 -0
  176. package/dist/lockfile.d.ts +16 -0
  177. package/dist/lockfile.js +172 -0
  178. package/dist/lockfile.js.map +1 -0
  179. package/dist/logger.d.ts +16 -0
  180. package/dist/logger.js +68 -0
  181. package/dist/logger.js.map +1 -0
  182. package/dist/oauth.d.ts +105 -0
  183. package/dist/oauth.js +880 -0
  184. package/dist/oauth.js.map +1 -0
  185. package/dist/orchestrator/childBridgeClient.d.ts +33 -0
  186. package/dist/orchestrator/childBridgeClient.js +321 -0
  187. package/dist/orchestrator/childBridgeClient.js.map +1 -0
  188. package/dist/orchestrator/childBridgeRegistry.d.ts +67 -0
  189. package/dist/orchestrator/childBridgeRegistry.js +297 -0
  190. package/dist/orchestrator/childBridgeRegistry.js.map +1 -0
  191. package/dist/orchestrator/index.d.ts +3 -0
  192. package/dist/orchestrator/index.js +3 -0
  193. package/dist/orchestrator/index.js.map +1 -0
  194. package/dist/orchestrator/orchestratorBridge.d.ts +32 -0
  195. package/dist/orchestrator/orchestratorBridge.js +412 -0
  196. package/dist/orchestrator/orchestratorBridge.js.map +1 -0
  197. package/dist/orchestrator/orchestratorConfig.d.ts +11 -0
  198. package/dist/orchestrator/orchestratorConfig.js +85 -0
  199. package/dist/orchestrator/orchestratorConfig.js.map +1 -0
  200. package/dist/orchestrator/orchestratorTools.d.ts +16 -0
  201. package/dist/orchestrator/orchestratorTools.js +272 -0
  202. package/dist/orchestrator/orchestratorTools.js.map +1 -0
  203. package/dist/patchworkCli.d.ts +15 -0
  204. package/dist/patchworkCli.js +41 -0
  205. package/dist/patchworkCli.js.map +1 -0
  206. package/dist/patchworkConfig.d.ts +28 -0
  207. package/dist/patchworkConfig.js +30 -0
  208. package/dist/patchworkConfig.js.map +1 -0
  209. package/dist/plugin.d.ts +106 -0
  210. package/dist/plugin.js +31 -0
  211. package/dist/plugin.js.map +1 -0
  212. package/dist/pluginLoader.d.ts +44 -0
  213. package/dist/pluginLoader.js +357 -0
  214. package/dist/pluginLoader.js.map +1 -0
  215. package/dist/pluginWatcher.d.ts +24 -0
  216. package/dist/pluginWatcher.js +139 -0
  217. package/dist/pluginWatcher.js.map +1 -0
  218. package/dist/preToolUseHook.d.ts +10 -0
  219. package/dist/preToolUseHook.js +57 -0
  220. package/dist/preToolUseHook.js.map +1 -0
  221. package/dist/probe.d.ts +35 -0
  222. package/dist/probe.js +143 -0
  223. package/dist/probe.js.map +1 -0
  224. package/dist/prompts.d.ts +27 -0
  225. package/dist/prompts.js +1680 -0
  226. package/dist/prompts.js.map +1 -0
  227. package/dist/quickTaskPresets.d.ts +64 -0
  228. package/dist/quickTaskPresets.js +156 -0
  229. package/dist/quickTaskPresets.js.map +1 -0
  230. package/dist/recipes/compiler.d.ts +44 -0
  231. package/dist/recipes/compiler.js +140 -0
  232. package/dist/recipes/compiler.js.map +1 -0
  233. package/dist/recipes/installer.d.ts +25 -0
  234. package/dist/recipes/installer.js +62 -0
  235. package/dist/recipes/installer.js.map +1 -0
  236. package/dist/recipes/parser.d.ts +18 -0
  237. package/dist/recipes/parser.js +160 -0
  238. package/dist/recipes/parser.js.map +1 -0
  239. package/dist/recipes/scheduler.d.ts +45 -0
  240. package/dist/recipes/scheduler.js +110 -0
  241. package/dist/recipes/scheduler.js.map +1 -0
  242. package/dist/recipes/schema.d.ts +71 -0
  243. package/dist/recipes/schema.js +11 -0
  244. package/dist/recipes/schema.js.map +1 -0
  245. package/dist/recipesHttp.d.ts +63 -0
  246. package/dist/recipesHttp.js +183 -0
  247. package/dist/recipesHttp.js.map +1 -0
  248. package/dist/resources.d.ts +33 -0
  249. package/dist/resources.js +266 -0
  250. package/dist/resources.js.map +1 -0
  251. package/dist/riskTier.d.ts +40 -0
  252. package/dist/riskTier.js +142 -0
  253. package/dist/riskTier.js.map +1 -0
  254. package/dist/runLog.d.ts +90 -0
  255. package/dist/runLog.js +143 -0
  256. package/dist/runLog.js.map +1 -0
  257. package/dist/server.d.ts +160 -0
  258. package/dist/server.js +1244 -0
  259. package/dist/server.js.map +1 -0
  260. package/dist/sessionCheckpoint.d.ts +37 -0
  261. package/dist/sessionCheckpoint.js +123 -0
  262. package/dist/sessionCheckpoint.js.map +1 -0
  263. package/dist/streamableHttp.d.ts +86 -0
  264. package/dist/streamableHttp.js +702 -0
  265. package/dist/streamableHttp.js.map +1 -0
  266. package/dist/telemetry.d.ts +18 -0
  267. package/dist/telemetry.js +95 -0
  268. package/dist/telemetry.js.map +1 -0
  269. package/dist/tools/activityLog.d.ts +140 -0
  270. package/dist/tools/activityLog.js +204 -0
  271. package/dist/tools/activityLog.js.map +1 -0
  272. package/dist/tools/auditDependencies.d.ts +67 -0
  273. package/dist/tools/auditDependencies.js +298 -0
  274. package/dist/tools/auditDependencies.js.map +1 -0
  275. package/dist/tools/batchLsp.d.ts +262 -0
  276. package/dist/tools/batchLsp.js +328 -0
  277. package/dist/tools/batchLsp.js.map +1 -0
  278. package/dist/tools/blame-utils.d.ts +30 -0
  279. package/dist/tools/blame-utils.js +60 -0
  280. package/dist/tools/blame-utils.js.map +1 -0
  281. package/dist/tools/bridgeDoctor.d.ts +78 -0
  282. package/dist/tools/bridgeDoctor.js +542 -0
  283. package/dist/tools/bridgeDoctor.js.map +1 -0
  284. package/dist/tools/bridgeStatus.d.ts +122 -0
  285. package/dist/tools/bridgeStatus.js +250 -0
  286. package/dist/tools/bridgeStatus.js.map +1 -0
  287. package/dist/tools/cancelClaudeTask.d.ts +48 -0
  288. package/dist/tools/cancelClaudeTask.js +56 -0
  289. package/dist/tools/cancelClaudeTask.js.map +1 -0
  290. package/dist/tools/checkDocumentDirty.d.ts +56 -0
  291. package/dist/tools/checkDocumentDirty.js +74 -0
  292. package/dist/tools/checkDocumentDirty.js.map +1 -0
  293. package/dist/tools/clipboard.d.ts +80 -0
  294. package/dist/tools/clipboard.js +211 -0
  295. package/dist/tools/clipboard.js.map +1 -0
  296. package/dist/tools/closeTabs.d.ts +84 -0
  297. package/dist/tools/closeTabs.js +97 -0
  298. package/dist/tools/closeTabs.js.map +1 -0
  299. package/dist/tools/codeLens.d.ts +50 -0
  300. package/dist/tools/codeLens.js +47 -0
  301. package/dist/tools/codeLens.js.map +1 -0
  302. package/dist/tools/contextBundle.d.ts +75 -0
  303. package/dist/tools/contextBundle.js +218 -0
  304. package/dist/tools/contextBundle.js.map +1 -0
  305. package/dist/tools/createIssueFromAIComment.d.ts +75 -0
  306. package/dist/tools/createIssueFromAIComment.js +119 -0
  307. package/dist/tools/createIssueFromAIComment.js.map +1 -0
  308. package/dist/tools/ctxGetTaskContext.d.ts +103 -0
  309. package/dist/tools/ctxGetTaskContext.js +274 -0
  310. package/dist/tools/ctxGetTaskContext.js.map +1 -0
  311. package/dist/tools/ctxQueryTraces.d.ts +142 -0
  312. package/dist/tools/ctxQueryTraces.js +194 -0
  313. package/dist/tools/ctxQueryTraces.js.map +1 -0
  314. package/dist/tools/ctxSaveTrace.d.ts +87 -0
  315. package/dist/tools/ctxSaveTrace.js +94 -0
  316. package/dist/tools/ctxSaveTrace.js.map +1 -0
  317. package/dist/tools/debug.d.ts +206 -0
  318. package/dist/tools/debug.js +234 -0
  319. package/dist/tools/debug.js.map +1 -0
  320. package/dist/tools/decorations.d.ts +130 -0
  321. package/dist/tools/decorations.js +160 -0
  322. package/dist/tools/decorations.js.map +1 -0
  323. package/dist/tools/detectUnusedCode.d.ts +78 -0
  324. package/dist/tools/detectUnusedCode.js +173 -0
  325. package/dist/tools/detectUnusedCode.js.map +1 -0
  326. package/dist/tools/documentLinks.d.ts +62 -0
  327. package/dist/tools/documentLinks.js +55 -0
  328. package/dist/tools/documentLinks.js.map +1 -0
  329. package/dist/tools/editText.d.ts +108 -0
  330. package/dist/tools/editText.js +318 -0
  331. package/dist/tools/editText.js.map +1 -0
  332. package/dist/tools/enrichCommit.d.ts +89 -0
  333. package/dist/tools/enrichCommit.js +201 -0
  334. package/dist/tools/enrichCommit.js.map +1 -0
  335. package/dist/tools/enrichStackTrace.d.ts +121 -0
  336. package/dist/tools/enrichStackTrace.js +194 -0
  337. package/dist/tools/enrichStackTrace.js.map +1 -0
  338. package/dist/tools/explainDiagnostic.d.ts +137 -0
  339. package/dist/tools/explainDiagnostic.js +230 -0
  340. package/dist/tools/explainDiagnostic.js.map +1 -0
  341. package/dist/tools/explainSymbol.d.ts +119 -0
  342. package/dist/tools/explainSymbol.js +177 -0
  343. package/dist/tools/explainSymbol.js.map +1 -0
  344. package/dist/tools/fileOperations.d.ts +186 -0
  345. package/dist/tools/fileOperations.js +330 -0
  346. package/dist/tools/fileOperations.js.map +1 -0
  347. package/dist/tools/fileWatcher.d.ts +107 -0
  348. package/dist/tools/fileWatcher.js +121 -0
  349. package/dist/tools/fileWatcher.js.map +1 -0
  350. package/dist/tools/findFiles.d.ts +65 -0
  351. package/dist/tools/findFiles.js +142 -0
  352. package/dist/tools/findFiles.js.map +1 -0
  353. package/dist/tools/findRelatedTests.d.ts +83 -0
  354. package/dist/tools/findRelatedTests.js +196 -0
  355. package/dist/tools/findRelatedTests.js.map +1 -0
  356. package/dist/tools/fixAllLintErrors.d.ts +66 -0
  357. package/dist/tools/fixAllLintErrors.js +128 -0
  358. package/dist/tools/fixAllLintErrors.js.map +1 -0
  359. package/dist/tools/foldingRanges.d.ts +50 -0
  360. package/dist/tools/foldingRanges.js +51 -0
  361. package/dist/tools/foldingRanges.js.map +1 -0
  362. package/dist/tools/formatAndSave.d.ts +57 -0
  363. package/dist/tools/formatAndSave.js +87 -0
  364. package/dist/tools/formatAndSave.js.map +1 -0
  365. package/dist/tools/formatDocument.d.ts +61 -0
  366. package/dist/tools/formatDocument.js +144 -0
  367. package/dist/tools/formatDocument.js.map +1 -0
  368. package/dist/tools/generateAPIDocumentation.d.ts +62 -0
  369. package/dist/tools/generateAPIDocumentation.js +249 -0
  370. package/dist/tools/generateAPIDocumentation.js.map +1 -0
  371. package/dist/tools/generateTests.d.ts +75 -0
  372. package/dist/tools/generateTests.js +226 -0
  373. package/dist/tools/generateTests.js.map +1 -0
  374. package/dist/tools/getAIComments.d.ts +79 -0
  375. package/dist/tools/getAIComments.js +93 -0
  376. package/dist/tools/getAIComments.js.map +1 -0
  377. package/dist/tools/getAnalyticsReport.d.ts +102 -0
  378. package/dist/tools/getAnalyticsReport.js +137 -0
  379. package/dist/tools/getAnalyticsReport.js.map +1 -0
  380. package/dist/tools/getArchitectureContext.d.ts +85 -0
  381. package/dist/tools/getArchitectureContext.js +135 -0
  382. package/dist/tools/getArchitectureContext.js.map +1 -0
  383. package/dist/tools/getBufferContent.d.ts +80 -0
  384. package/dist/tools/getBufferContent.js +207 -0
  385. package/dist/tools/getBufferContent.js.map +1 -0
  386. package/dist/tools/getChangeImpact.d.ts +76 -0
  387. package/dist/tools/getChangeImpact.js +184 -0
  388. package/dist/tools/getChangeImpact.js.map +1 -0
  389. package/dist/tools/getClaudeTaskStatus.d.ts +87 -0
  390. package/dist/tools/getClaudeTaskStatus.js +89 -0
  391. package/dist/tools/getClaudeTaskStatus.js.map +1 -0
  392. package/dist/tools/getCodeCoverage.d.ts +86 -0
  393. package/dist/tools/getCodeCoverage.js +237 -0
  394. package/dist/tools/getCodeCoverage.js.map +1 -0
  395. package/dist/tools/getCommitsForIssue.d.ts +98 -0
  396. package/dist/tools/getCommitsForIssue.js +106 -0
  397. package/dist/tools/getCommitsForIssue.js.map +1 -0
  398. package/dist/tools/getCurrentSelection.d.ts +123 -0
  399. package/dist/tools/getCurrentSelection.js +113 -0
  400. package/dist/tools/getCurrentSelection.js.map +1 -0
  401. package/dist/tools/getDebugState.d.ts +140 -0
  402. package/dist/tools/getDebugState.js +109 -0
  403. package/dist/tools/getDebugState.js.map +1 -0
  404. package/dist/tools/getDependencyTree.d.ts +59 -0
  405. package/dist/tools/getDependencyTree.js +207 -0
  406. package/dist/tools/getDependencyTree.js.map +1 -0
  407. package/dist/tools/getDiagnostics.d.ts +108 -0
  408. package/dist/tools/getDiagnostics.js +371 -0
  409. package/dist/tools/getDiagnostics.js.map +1 -0
  410. package/dist/tools/getDiffFromHandoff.d.ts +89 -0
  411. package/dist/tools/getDiffFromHandoff.js +163 -0
  412. package/dist/tools/getDiffFromHandoff.js.map +1 -0
  413. package/dist/tools/getDocumentSymbols.d.ts +74 -0
  414. package/dist/tools/getDocumentSymbols.js +177 -0
  415. package/dist/tools/getDocumentSymbols.js.map +1 -0
  416. package/dist/tools/getFileTree.d.ts +66 -0
  417. package/dist/tools/getFileTree.js +131 -0
  418. package/dist/tools/getFileTree.js.map +1 -0
  419. package/dist/tools/getGitDiff.d.ts +50 -0
  420. package/dist/tools/getGitDiff.js +73 -0
  421. package/dist/tools/getGitDiff.js.map +1 -0
  422. package/dist/tools/getGitHotspots.d.ts +88 -0
  423. package/dist/tools/getGitHotspots.js +145 -0
  424. package/dist/tools/getGitHotspots.js.map +1 -0
  425. package/dist/tools/getGitLog.d.ts +62 -0
  426. package/dist/tools/getGitLog.js +87 -0
  427. package/dist/tools/getGitLog.js.map +1 -0
  428. package/dist/tools/getGitStatus.d.ts +72 -0
  429. package/dist/tools/getGitStatus.js +126 -0
  430. package/dist/tools/getGitStatus.js.map +1 -0
  431. package/dist/tools/getImportTree.d.ts +73 -0
  432. package/dist/tools/getImportTree.js +223 -0
  433. package/dist/tools/getImportTree.js.map +1 -0
  434. package/dist/tools/getImportedSignatures.d.ts +62 -0
  435. package/dist/tools/getImportedSignatures.js +255 -0
  436. package/dist/tools/getImportedSignatures.js.map +1 -0
  437. package/dist/tools/getOpenEditors.d.ts +62 -0
  438. package/dist/tools/getOpenEditors.js +126 -0
  439. package/dist/tools/getOpenEditors.js.map +1 -0
  440. package/dist/tools/getPRTemplate.d.ts +68 -0
  441. package/dist/tools/getPRTemplate.js +187 -0
  442. package/dist/tools/getPRTemplate.js.map +1 -0
  443. package/dist/tools/getProjectContext.d.ts +114 -0
  444. package/dist/tools/getProjectContext.js +344 -0
  445. package/dist/tools/getProjectContext.js.map +1 -0
  446. package/dist/tools/getProjectInfo.d.ts +51 -0
  447. package/dist/tools/getProjectInfo.js +325 -0
  448. package/dist/tools/getProjectInfo.js.map +1 -0
  449. package/dist/tools/getSecurityAdvisories.d.ts +105 -0
  450. package/dist/tools/getSecurityAdvisories.js +472 -0
  451. package/dist/tools/getSecurityAdvisories.js.map +1 -0
  452. package/dist/tools/getSessionUsage.d.ts +58 -0
  453. package/dist/tools/getSessionUsage.js +57 -0
  454. package/dist/tools/getSessionUsage.js.map +1 -0
  455. package/dist/tools/getSymbolHistory.d.ts +157 -0
  456. package/dist/tools/getSymbolHistory.js +256 -0
  457. package/dist/tools/getSymbolHistory.js.map +1 -0
  458. package/dist/tools/getToolCapabilities.d.ts +69 -0
  459. package/dist/tools/getToolCapabilities.js +298 -0
  460. package/dist/tools/getToolCapabilities.js.map +1 -0
  461. package/dist/tools/getTypeSignature.d.ts +70 -0
  462. package/dist/tools/getTypeSignature.js +132 -0
  463. package/dist/tools/getTypeSignature.js.map +1 -0
  464. package/dist/tools/getWorkspaceFolders.d.ts +58 -0
  465. package/dist/tools/getWorkspaceFolders.js +69 -0
  466. package/dist/tools/getWorkspaceFolders.js.map +1 -0
  467. package/dist/tools/getWorkspaceSettings.d.ts +44 -0
  468. package/dist/tools/getWorkspaceSettings.js +70 -0
  469. package/dist/tools/getWorkspaceSettings.js.map +1 -0
  470. package/dist/tools/git-utils.d.ts +16 -0
  471. package/dist/tools/git-utils.js +46 -0
  472. package/dist/tools/git-utils.js.map +1 -0
  473. package/dist/tools/gitHistory.d.ts +110 -0
  474. package/dist/tools/gitHistory.js +167 -0
  475. package/dist/tools/gitHistory.js.map +1 -0
  476. package/dist/tools/gitWrite.d.ts +612 -0
  477. package/dist/tools/gitWrite.js +983 -0
  478. package/dist/tools/gitWrite.js.map +1 -0
  479. package/dist/tools/github/actions.d.ts +152 -0
  480. package/dist/tools/github/actions.js +195 -0
  481. package/dist/tools/github/actions.js.map +1 -0
  482. package/dist/tools/github/index.d.ts +3 -0
  483. package/dist/tools/github/index.js +4 -0
  484. package/dist/tools/github/index.js.map +1 -0
  485. package/dist/tools/github/issues.d.ts +281 -0
  486. package/dist/tools/github/issues.js +340 -0
  487. package/dist/tools/github/issues.js.map +1 -0
  488. package/dist/tools/github/pr.d.ts +433 -0
  489. package/dist/tools/github/pr.js +588 -0
  490. package/dist/tools/github/pr.js.map +1 -0
  491. package/dist/tools/github/shared.d.ts +4 -0
  492. package/dist/tools/github/shared.js +12 -0
  493. package/dist/tools/github/shared.js.map +1 -0
  494. package/dist/tools/handoffNote.d.ts +106 -0
  495. package/dist/tools/handoffNote.js +232 -0
  496. package/dist/tools/handoffNote.js.map +1 -0
  497. package/dist/tools/headless/lspClient.d.ts +26 -0
  498. package/dist/tools/headless/lspClient.js +221 -0
  499. package/dist/tools/headless/lspClient.js.map +1 -0
  500. package/dist/tools/headless/lspFallback.d.ts +28 -0
  501. package/dist/tools/headless/lspFallback.js +122 -0
  502. package/dist/tools/headless/lspFallback.js.map +1 -0
  503. package/dist/tools/hoverAtCursor.d.ts +54 -0
  504. package/dist/tools/hoverAtCursor.js +68 -0
  505. package/dist/tools/hoverAtCursor.js.map +1 -0
  506. package/dist/tools/httpClient.d.ts +141 -0
  507. package/dist/tools/httpClient.js +486 -0
  508. package/dist/tools/httpClient.js.map +1 -0
  509. package/dist/tools/index.d.ts +49 -0
  510. package/dist/tools/index.js +672 -0
  511. package/dist/tools/index.js.map +1 -0
  512. package/dist/tools/inlayHints.d.ts +81 -0
  513. package/dist/tools/inlayHints.js +76 -0
  514. package/dist/tools/inlayHints.js.map +1 -0
  515. package/dist/tools/issueRefs.d.ts +14 -0
  516. package/dist/tools/issueRefs.js +27 -0
  517. package/dist/tools/issueRefs.js.map +1 -0
  518. package/dist/tools/jumpToFirstError.d.ts +63 -0
  519. package/dist/tools/jumpToFirstError.js +124 -0
  520. package/dist/tools/jumpToFirstError.js.map +1 -0
  521. package/dist/tools/launchQuickTask.d.ts +76 -0
  522. package/dist/tools/launchQuickTask.js +170 -0
  523. package/dist/tools/launchQuickTask.js.map +1 -0
  524. package/dist/tools/linters/biome.d.ts +2 -0
  525. package/dist/tools/linters/biome.js +44 -0
  526. package/dist/tools/linters/biome.js.map +1 -0
  527. package/dist/tools/linters/cargo.d.ts +2 -0
  528. package/dist/tools/linters/cargo.js +45 -0
  529. package/dist/tools/linters/cargo.js.map +1 -0
  530. package/dist/tools/linters/eslint.d.ts +2 -0
  531. package/dist/tools/linters/eslint.js +59 -0
  532. package/dist/tools/linters/eslint.js.map +1 -0
  533. package/dist/tools/linters/govet.d.ts +2 -0
  534. package/dist/tools/linters/govet.js +37 -0
  535. package/dist/tools/linters/govet.js.map +1 -0
  536. package/dist/tools/linters/pyright.d.ts +2 -0
  537. package/dist/tools/linters/pyright.js +34 -0
  538. package/dist/tools/linters/pyright.js.map +1 -0
  539. package/dist/tools/linters/ruff.d.ts +2 -0
  540. package/dist/tools/linters/ruff.js +30 -0
  541. package/dist/tools/linters/ruff.js.map +1 -0
  542. package/dist/tools/linters/types.d.ts +16 -0
  543. package/dist/tools/linters/types.js +2 -0
  544. package/dist/tools/linters/types.js.map +1 -0
  545. package/dist/tools/linters/typescript.d.ts +2 -0
  546. package/dist/tools/linters/typescript.js +38 -0
  547. package/dist/tools/linters/typescript.js.map +1 -0
  548. package/dist/tools/listClaudeTasks.d.ts +84 -0
  549. package/dist/tools/listClaudeTasks.js +88 -0
  550. package/dist/tools/listClaudeTasks.js.map +1 -0
  551. package/dist/tools/listTerminals.d.ts +55 -0
  552. package/dist/tools/listTerminals.js +78 -0
  553. package/dist/tools/listTerminals.js.map +1 -0
  554. package/dist/tools/lsp.d.ts +1086 -0
  555. package/dist/tools/lsp.js +1339 -0
  556. package/dist/tools/lsp.js.map +1 -0
  557. package/dist/tools/navigateToSymbolByName.d.ts +56 -0
  558. package/dist/tools/navigateToSymbolByName.js +170 -0
  559. package/dist/tools/navigateToSymbolByName.js.map +1 -0
  560. package/dist/tools/openDiff.d.ts +66 -0
  561. package/dist/tools/openDiff.js +126 -0
  562. package/dist/tools/openDiff.js.map +1 -0
  563. package/dist/tools/openFile.d.ts +69 -0
  564. package/dist/tools/openFile.js +129 -0
  565. package/dist/tools/openFile.js.map +1 -0
  566. package/dist/tools/openInBrowser.d.ts +55 -0
  567. package/dist/tools/openInBrowser.js +129 -0
  568. package/dist/tools/openInBrowser.js.map +1 -0
  569. package/dist/tools/organizeImports.d.ts +56 -0
  570. package/dist/tools/organizeImports.js +115 -0
  571. package/dist/tools/organizeImports.js.map +1 -0
  572. package/dist/tools/performanceReport.d.ts +133 -0
  573. package/dist/tools/performanceReport.js +218 -0
  574. package/dist/tools/performanceReport.js.map +1 -0
  575. package/dist/tools/planPersistence.d.ts +306 -0
  576. package/dist/tools/planPersistence.js +485 -0
  577. package/dist/tools/planPersistence.js.map +1 -0
  578. package/dist/tools/previewEdit.d.ts +107 -0
  579. package/dist/tools/previewEdit.js +270 -0
  580. package/dist/tools/previewEdit.js.map +1 -0
  581. package/dist/tools/recentTracesDigest.d.ts +35 -0
  582. package/dist/tools/recentTracesDigest.js +98 -0
  583. package/dist/tools/recentTracesDigest.js.map +1 -0
  584. package/dist/tools/refactorAnalyze.d.ts +78 -0
  585. package/dist/tools/refactorAnalyze.js +141 -0
  586. package/dist/tools/refactorAnalyze.js.map +1 -0
  587. package/dist/tools/refactorExtractFunction.d.ts +52 -0
  588. package/dist/tools/refactorExtractFunction.js +121 -0
  589. package/dist/tools/refactorExtractFunction.js.map +1 -0
  590. package/dist/tools/refactorPreview.d.ts +75 -0
  591. package/dist/tools/refactorPreview.js +93 -0
  592. package/dist/tools/refactorPreview.js.map +1 -0
  593. package/dist/tools/replaceBlock.d.ts +62 -0
  594. package/dist/tools/replaceBlock.js +125 -0
  595. package/dist/tools/replaceBlock.js.map +1 -0
  596. package/dist/tools/resumeClaudeTask.d.ts +75 -0
  597. package/dist/tools/resumeClaudeTask.js +149 -0
  598. package/dist/tools/resumeClaudeTask.js.map +1 -0
  599. package/dist/tools/runClaudeTask.d.ts +97 -0
  600. package/dist/tools/runClaudeTask.js +224 -0
  601. package/dist/tools/runClaudeTask.js.map +1 -0
  602. package/dist/tools/runCommand.d.ts +82 -0
  603. package/dist/tools/runCommand.js +101 -0
  604. package/dist/tools/runCommand.js.map +1 -0
  605. package/dist/tools/runTests.d.ts +146 -0
  606. package/dist/tools/runTests.js +315 -0
  607. package/dist/tools/runTests.js.map +1 -0
  608. package/dist/tools/saveDocument.d.ts +50 -0
  609. package/dist/tools/saveDocument.js +73 -0
  610. package/dist/tools/saveDocument.js.map +1 -0
  611. package/dist/tools/screenshot.d.ts +23 -0
  612. package/dist/tools/screenshot.js +43 -0
  613. package/dist/tools/screenshot.js.map +1 -0
  614. package/dist/tools/screenshotAndAnnotate.d.ts +103 -0
  615. package/dist/tools/screenshotAndAnnotate.js +192 -0
  616. package/dist/tools/screenshotAndAnnotate.js.map +1 -0
  617. package/dist/tools/searchAndReplace.d.ts +108 -0
  618. package/dist/tools/searchAndReplace.js +281 -0
  619. package/dist/tools/searchAndReplace.js.map +1 -0
  620. package/dist/tools/searchTools.d.ts +61 -0
  621. package/dist/tools/searchTools.js +85 -0
  622. package/dist/tools/searchTools.js.map +1 -0
  623. package/dist/tools/searchWorkspace.d.ts +99 -0
  624. package/dist/tools/searchWorkspace.js +189 -0
  625. package/dist/tools/searchWorkspace.js.map +1 -0
  626. package/dist/tools/selectionRanges.d.ts +58 -0
  627. package/dist/tools/selectionRanges.js +61 -0
  628. package/dist/tools/selectionRanges.js.map +1 -0
  629. package/dist/tools/semanticTokens.d.ts +87 -0
  630. package/dist/tools/semanticTokens.js +86 -0
  631. package/dist/tools/semanticTokens.js.map +1 -0
  632. package/dist/tools/setActiveWorkspaceFolder.d.ts +41 -0
  633. package/dist/tools/setActiveWorkspaceFolder.js +38 -0
  634. package/dist/tools/setActiveWorkspaceFolder.js.map +1 -0
  635. package/dist/tools/signatureHelp.d.ts +86 -0
  636. package/dist/tools/signatureHelp.js +79 -0
  637. package/dist/tools/signatureHelp.js.map +1 -0
  638. package/dist/tools/spawnWorkspace.d.ts +103 -0
  639. package/dist/tools/spawnWorkspace.js +268 -0
  640. package/dist/tools/spawnWorkspace.js.map +1 -0
  641. package/dist/tools/stackTraceParser.d.ts +43 -0
  642. package/dist/tools/stackTraceParser.js +139 -0
  643. package/dist/tools/stackTraceParser.js.map +1 -0
  644. package/dist/tools/terminal.d.ts +352 -0
  645. package/dist/tools/terminal.js +670 -0
  646. package/dist/tools/terminal.js.map +1 -0
  647. package/dist/tools/testRunners/cargoTest.d.ts +2 -0
  648. package/dist/tools/testRunners/cargoTest.js +129 -0
  649. package/dist/tools/testRunners/cargoTest.js.map +1 -0
  650. package/dist/tools/testRunners/goTest.d.ts +2 -0
  651. package/dist/tools/testRunners/goTest.js +108 -0
  652. package/dist/tools/testRunners/goTest.js.map +1 -0
  653. package/dist/tools/testRunners/pytest.d.ts +2 -0
  654. package/dist/tools/testRunners/pytest.js +135 -0
  655. package/dist/tools/testRunners/pytest.js.map +1 -0
  656. package/dist/tools/testRunners/types.d.ts +18 -0
  657. package/dist/tools/testRunners/types.js +2 -0
  658. package/dist/tools/testRunners/types.js.map +1 -0
  659. package/dist/tools/testRunners/vitestJest.d.ts +3 -0
  660. package/dist/tools/testRunners/vitestJest.js +215 -0
  661. package/dist/tools/testRunners/vitestJest.js.map +1 -0
  662. package/dist/tools/testTraceToSource.d.ts +80 -0
  663. package/dist/tools/testTraceToSource.js +206 -0
  664. package/dist/tools/testTraceToSource.js.map +1 -0
  665. package/dist/tools/transaction.d.ts +243 -0
  666. package/dist/tools/transaction.js +309 -0
  667. package/dist/tools/transaction.js.map +1 -0
  668. package/dist/tools/typeHierarchy.d.ts +77 -0
  669. package/dist/tools/typeHierarchy.js +86 -0
  670. package/dist/tools/typeHierarchy.js.map +1 -0
  671. package/dist/tools/utils.d.ts +124 -0
  672. package/dist/tools/utils.js +566 -0
  673. package/dist/tools/utils.js.map +1 -0
  674. package/dist/tools/vscodeCommands.d.ts +90 -0
  675. package/dist/tools/vscodeCommands.js +112 -0
  676. package/dist/tools/vscodeCommands.js.map +1 -0
  677. package/dist/tools/vscodeTasks.d.ts +102 -0
  678. package/dist/tools/vscodeTasks.js +110 -0
  679. package/dist/tools/vscodeTasks.js.map +1 -0
  680. package/dist/tools/watchDiagnostics.d.ts +64 -0
  681. package/dist/tools/watchDiagnostics.js +270 -0
  682. package/dist/tools/watchDiagnostics.js.map +1 -0
  683. package/dist/tools/workspaceSettings.d.ts +57 -0
  684. package/dist/tools/workspaceSettings.js +80 -0
  685. package/dist/tools/workspaceSettings.js.map +1 -0
  686. package/dist/transport.d.ts +207 -0
  687. package/dist/transport.js +1272 -0
  688. package/dist/transport.js.map +1 -0
  689. package/dist/version.d.ts +13 -0
  690. package/dist/version.js +31 -0
  691. package/dist/version.js.map +1 -0
  692. package/dist/wsUtils.d.ts +8 -0
  693. package/dist/wsUtils.js +54 -0
  694. package/dist/wsUtils.js.map +1 -0
  695. package/package.json +118 -0
  696. package/scripts/gen-claude-desktop-config.sh +124 -0
  697. package/scripts/gen-mcp-config.sh +390 -0
  698. package/scripts/install-extension.sh +106 -0
  699. package/scripts/mcp-stdio-shim.cjs +482 -0
  700. package/scripts/postinstall.mjs +68 -0
  701. package/scripts/start-all.sh +502 -0
  702. package/scripts/start-orchestrator.sh +186 -0
  703. package/scripts/start-remote.sh +126 -0
  704. package/scripts/start-vps.sh +116 -0
  705. package/templates/CLAUDE.bridge.md +125 -0
  706. package/templates/automation-policies/security-first.json +46 -0
  707. package/templates/automation-policies/strict-lint.json +41 -0
  708. package/templates/automation-policies/test-driven.json +54 -0
  709. package/templates/automation-policy.example.json +105 -0
  710. package/templates/bridge-tools.md +111 -0
  711. package/templates/dispatch-context.md +33 -0
  712. package/templates/managed-agent/code-review-agent.md +50 -0
  713. package/templates/managed-agent/managed-agent-mcp.json +102 -0
  714. package/templates/recipes/ambient-journal.yaml +11 -0
  715. package/templates/recipes/daily-status.yaml +21 -0
  716. package/templates/recipes/lint-on-save.yaml +13 -0
  717. package/templates/recipes/stale-branches.yaml +18 -0
  718. package/templates/recipes/watch-failing-tests.yaml +15 -0
  719. package/templates/scheduled-tasks/dependency-audit/SKILL.md +77 -0
  720. package/templates/scheduled-tasks/health-check/SKILL.md +73 -0
  721. package/templates/scheduled-tasks/nightly-review/SKILL.md +69 -0
@@ -0,0 +1,675 @@
1
+ import type { ClaudeOrchestrator } from "./claudeOrchestrator.js";
2
+ import type { ExtensionClient } from "./extensionClient.js";
3
+ /**
4
+ * Shared fields for prompt resolution in any automation hook.
5
+ * Exactly one of `prompt` or `promptName` must be provided.
6
+ *
7
+ * - `prompt`: inline instruction string with `{{placeholder}}` tokens.
8
+ * - `promptName`: name of a built-in MCP prompt (e.g. `"unused-in"`, `"why-error"`).
9
+ * - `promptArgs`: static args passed to the named prompt. Values may contain
10
+ * `{{placeholder}}` tokens that are substituted with sanitized event data
11
+ * (control chars stripped, length capped) before the prompt is resolved.
12
+ * - `condition`: optional minimatch glob. If set, the hook only fires when the
13
+ * primary event value (file path, branch name, tool name, etc.) matches.
14
+ * Prefix with `!` to negate: `"!**\/*.test.ts"` fires for all non-test files.
15
+ */
16
+ /**
17
+ * Optional runtime condition checked before a hook fires.
18
+ * All specified fields must pass for the hook to trigger.
19
+ */
20
+ export interface AutomationCondition {
21
+ /** Only fire if the active file's diagnostic count meets this threshold. */
22
+ minDiagnosticCount?: number;
23
+ /** Only fire if the active file has a diagnostic of at least this severity. */
24
+ diagnosticsMinSeverity?: "error" | "warning";
25
+ /** Only fire if the last test run for any runner had this outcome. */
26
+ testRunnerLastStatus?: "passed" | "failed" | "any";
27
+ }
28
+ export interface PromptSource {
29
+ prompt?: string;
30
+ promptName?: string;
31
+ promptArgs?: Record<string, string>;
32
+ condition?: string;
33
+ /** Optional runtime condition evaluated before the hook fires. */
34
+ when?: AutomationCondition;
35
+ /** Per-hook model override. Falls back to policy.defaultModel (Haiku). */
36
+ model?: string;
37
+ /** Per-hook effort override. Falls back to policy.defaultEffort ("low"). */
38
+ effort?: "low" | "medium" | "high" | "max";
39
+ /**
40
+ * Number of times to re-enqueue on task error. Default: 0 (no retry).
41
+ * Retries only fire when the task reaches status "error" — cancellations
42
+ * and timeouts do not trigger a retry.
43
+ */
44
+ retryCount?: number;
45
+ /**
46
+ * Milliseconds to wait between retries. Default: 30_000.
47
+ * Enforced minimum: 5_000.
48
+ */
49
+ retryDelayMs?: number;
50
+ }
51
+ export interface OnDiagnosticsErrorPolicy extends PromptSource {
52
+ enabled: boolean;
53
+ minSeverity: "error" | "warning";
54
+ /**
55
+ * Optional list of diagnostic source or code strings to match (case-insensitive).
56
+ * If set, only diagnostics whose `source` or `code` matches any value in this
57
+ * list will trigger the hook. Example: ["typescript", "eslint"].
58
+ */
59
+ diagnosticTypes?: string[];
60
+ /** Placeholders (inline prompt only): {{file}}, {{diagnostics}} */
61
+ /** Minimum ms between triggers for the same file. Enforced minimum: 5000. */
62
+ cooldownMs: number;
63
+ /**
64
+ * When true, dedupe by (file, diagnostic-content-hash) in addition to file path.
65
+ * Prevents re-triggering on repeated identical LSP emissions (the common "LSP
66
+ * republishes the same error after an unrelated workspace event" thrash pattern).
67
+ * Default: false — file-only dedupe via cooldownMs.
68
+ */
69
+ dedupeByContent?: boolean;
70
+ /**
71
+ * Cooldown (ms) for identical diagnostic content on the same file. Only used
72
+ * when `dedupeByContent` is true. Default: 900_000 (15 minutes). Enforced minimum: 5000.
73
+ */
74
+ dedupeContentCooldownMs?: number;
75
+ }
76
+ export interface OnFileSavePolicy extends PromptSource {
77
+ enabled: boolean;
78
+ /** Minimatch glob patterns, e.g. ["**\/*.ts", "!node_modules/**"] */
79
+ patterns: string[];
80
+ /** Placeholders (inline prompt only): {{file}} */
81
+ cooldownMs: number;
82
+ }
83
+ export interface OnFileChangedPolicy extends PromptSource {
84
+ enabled: boolean;
85
+ /** Minimatch glob patterns, e.g. ["**\/*.ts", "!node_modules/**"] */
86
+ patterns: string[];
87
+ /** Placeholders (inline prompt only): {{file}} */
88
+ cooldownMs: number;
89
+ }
90
+ export interface OnPreCompactPolicy extends PromptSource {
91
+ enabled: boolean;
92
+ /**
93
+ * No placeholders — fired just before Claude Code compacts the context window.
94
+ * Use to snapshot IDE state, write a handoff note, or complete an in-flight task
95
+ * before Claude loses context. Pairs with onPostCompact.
96
+ */
97
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
98
+ cooldownMs: number;
99
+ }
100
+ export interface OnPostCompactPolicy extends PromptSource {
101
+ enabled: boolean;
102
+ /**
103
+ * No placeholders — fired unconditionally when compaction occurs.
104
+ * Use promptName (e.g. "project-status") to re-snapshot IDE state.
105
+ */
106
+ /** Minimum ms between triggers (prevents repeated compaction storms). Enforced minimum: 5000. */
107
+ cooldownMs: number;
108
+ }
109
+ /**
110
+ * Unified compaction hook (v2.43.0+) — replaces `onPreCompact` and
111
+ * `onPostCompact` with a single schema entry carrying a `phase` discriminator.
112
+ *
113
+ * The parser expands `onCompaction` into the internal `onPreCompact` or
114
+ * `onPostCompact` field before downstream processing; both legacy names still
115
+ * work but now log a deprecation warning at load time. Scheduled removal:
116
+ * no earlier than 3 minor versions + 30 days after v2.43.0.
117
+ */
118
+ export interface OnCompactionPolicy extends PromptSource {
119
+ enabled: boolean;
120
+ /** "pre" fires before Claude Code compacts context; "post" fires after. */
121
+ phase: "pre" | "post";
122
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
123
+ cooldownMs: number;
124
+ }
125
+ export interface OnInstructionsLoadedPolicy extends PromptSource {
126
+ enabled: boolean;
127
+ /**
128
+ * No placeholders — fired once per interactive session start.
129
+ * Use promptName (e.g. "orient-project") to inject tool capability summary.
130
+ * cooldownMs (default 60000) prevents cascade when automation subprocesses
131
+ * each fire their own InstructionsLoaded hook.
132
+ */
133
+ cooldownMs?: number;
134
+ }
135
+ export interface OnCwdChangedPolicy extends PromptSource {
136
+ enabled: boolean;
137
+ /**
138
+ * Placeholders (inline prompt only): {{cwd}}
139
+ */
140
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
141
+ cooldownMs: number;
142
+ }
143
+ export interface OnTestRunPolicy extends PromptSource {
144
+ enabled: boolean;
145
+ /**
146
+ * Unified test-run trigger (v2.43.0+) replacing `onFailureOnly` and the
147
+ * separate `onTestPassAfterFailure` hook:
148
+ * - "any" — fire after every test run
149
+ * - "failure" — fire only when the run has failures (= onFailureOnly:true)
150
+ * - "pass-after-fail" — fire only when a runner transitions fail → pass;
151
+ * routed internally to the onTestPassAfterFailure slot
152
+ * Exactly one of `filter` or `onFailureOnly` should be set; the two are
153
+ * mutually exclusive. If neither is set, defaults to "failure".
154
+ */
155
+ filter?: "any" | "failure" | "pass-after-fail";
156
+ /**
157
+ * @deprecated v2.43.0 — use `filter: "any"` or `filter: "failure"` instead.
158
+ * Only trigger when there are test failures or errors.
159
+ * Set to false to trigger after every test run regardless of outcome.
160
+ * Default: true.
161
+ */
162
+ onFailureOnly?: boolean;
163
+ /**
164
+ * Only trigger when the test run duration meets or exceeds this threshold (ms).
165
+ * Useful to ignore fast unit test runs and only fire on slow integration runs.
166
+ */
167
+ minDuration?: number;
168
+ /**
169
+ * Placeholders (inline prompt only): {{runner}}, {{failed}}, {{passed}}, {{total}}, {{failures}}
170
+ */
171
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
172
+ cooldownMs: number;
173
+ }
174
+ export interface OnTestPassAfterFailurePolicy extends PromptSource {
175
+ enabled: boolean;
176
+ /**
177
+ * Fired when a test run transitions from failing → passing for the same runner.
178
+ * Per-runner state is tracked so vitest passing after a jest failure does NOT
179
+ * trigger — only the runner that was previously failing then passes triggers the hook.
180
+ * Placeholders (inline prompt only): {{runner}}, {{passed}}, {{total}}
181
+ */
182
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
183
+ cooldownMs: number;
184
+ }
185
+ /** Minimal test run result passed to handleTestRun — avoids importing TestResult from tool files. */
186
+ export interface TestRunResult {
187
+ runners: string[];
188
+ summary: {
189
+ total: number;
190
+ passed: number;
191
+ failed: number;
192
+ skipped: number;
193
+ errored: number;
194
+ durationMs?: number;
195
+ };
196
+ failures: Array<{
197
+ name: string;
198
+ file: string;
199
+ message: string;
200
+ }>;
201
+ }
202
+ export interface OnDebugSessionEndPolicy extends PromptSource {
203
+ enabled: boolean;
204
+ /**
205
+ * Placeholders (inline prompt only): {{sessionName}}, {{sessionType}}
206
+ */
207
+ cooldownMs: number;
208
+ }
209
+ /** Minimal debug session result passed to handleDebugSessionEnd. */
210
+ export interface DebugSessionEndResult {
211
+ sessionName: string;
212
+ sessionType: string;
213
+ }
214
+ /**
215
+ * Unified debug-session hook (v2.43.0+) — replaces `onDebugSessionStart`
216
+ * and `onDebugSessionEnd`. Expanded at load time based on `phase`.
217
+ */
218
+ export interface OnDebugSessionPolicy extends PromptSource {
219
+ enabled: boolean;
220
+ phase: "start" | "end";
221
+ /** Placeholders (inline prompt only): {{sessionName}}, {{sessionType}}, plus {{breakpointCount}}/{{activeFile}} for phase: "start" */
222
+ cooldownMs: number;
223
+ }
224
+ export interface OnDebugSessionStartPolicy extends PromptSource {
225
+ enabled: boolean;
226
+ /**
227
+ * Placeholders (inline prompt only): {{sessionName}}, {{sessionType}}
228
+ */
229
+ cooldownMs: number;
230
+ }
231
+ /** Minimal debug session result passed to handleDebugSessionStart. */
232
+ export interface DebugSessionStartResult {
233
+ sessionName: string;
234
+ sessionType: string;
235
+ /** Number of breakpoints active at session start. */
236
+ breakpointCount: number;
237
+ /** Active file at session start (first breakpoint file, if any). */
238
+ activeFile: string;
239
+ }
240
+ export interface OnGitCommitPolicy extends PromptSource {
241
+ enabled: boolean;
242
+ /**
243
+ * Placeholders (inline prompt only): {{hash}}, {{branch}}, {{message}}, {{files}}, {{count}}
244
+ */
245
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
246
+ cooldownMs: number;
247
+ }
248
+ /** Minimal commit result passed to handleGitCommit — avoids importing from gitWrite. */
249
+ export interface GitCommitResult {
250
+ hash: string;
251
+ branch: string;
252
+ message: string;
253
+ files: string[];
254
+ count: number;
255
+ }
256
+ export interface OnGitPushPolicy extends PromptSource {
257
+ enabled: boolean;
258
+ /**
259
+ * Placeholders (inline prompt only): {{remote}}, {{branch}}, {{hash}}
260
+ */
261
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
262
+ cooldownMs: number;
263
+ }
264
+ /** Minimal push result passed to handleGitPush — avoids importing from gitWrite. */
265
+ export interface GitPushResult {
266
+ remote: string;
267
+ branch: string;
268
+ hash: string;
269
+ }
270
+ export interface OnGitPullPolicy extends PromptSource {
271
+ enabled: boolean;
272
+ /**
273
+ * Placeholders (inline prompt only): {{remote}}, {{branch}}
274
+ */
275
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
276
+ cooldownMs: number;
277
+ }
278
+ /** Minimal pull result passed to handleGitPull — avoids importing from gitWrite. */
279
+ export interface GitPullResult {
280
+ remote: string;
281
+ branch: string;
282
+ alreadyUpToDate: boolean;
283
+ }
284
+ export interface OnBranchCheckoutPolicy extends PromptSource {
285
+ enabled: boolean;
286
+ /**
287
+ * Placeholders (inline prompt only): {{branch}}, {{previousBranch}}, {{created}}
288
+ */
289
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
290
+ cooldownMs: number;
291
+ }
292
+ /** Minimal checkout result passed to handleBranchCheckout — avoids importing from gitWrite. */
293
+ export interface BranchCheckoutResult {
294
+ branch: string;
295
+ previousBranch: string | null;
296
+ created: boolean;
297
+ }
298
+ export interface OnPullRequestPolicy extends PromptSource {
299
+ enabled: boolean;
300
+ /**
301
+ * Placeholders (inline prompt only): {{url}}, {{number}}, {{title}}, {{branch}}
302
+ */
303
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
304
+ cooldownMs: number;
305
+ }
306
+ /** Minimal PR result passed to handlePullRequest — avoids importing from github/pr. */
307
+ export interface PullRequestResult {
308
+ url: string;
309
+ number: number | null;
310
+ title: string;
311
+ branch: string;
312
+ }
313
+ export interface OnTaskCreatedPolicy extends PromptSource {
314
+ enabled: boolean;
315
+ /**
316
+ * Fired by Claude Code 2.1.84+ TaskCreated hook — fires when Claude creates a subagent task.
317
+ * Placeholders (inline prompt only): {{taskId}}, {{prompt}}
318
+ */
319
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
320
+ cooldownMs: number;
321
+ }
322
+ /** Minimal task-created result passed to handleTaskCreated. */
323
+ export interface TaskCreatedResult {
324
+ taskId: string;
325
+ prompt: string;
326
+ }
327
+ export interface OnPermissionDeniedPolicy extends PromptSource {
328
+ enabled: boolean;
329
+ /**
330
+ * Fired by Claude Code 2.1.89+ PermissionDenied hook — fires when a tool call is blocked.
331
+ * Placeholders (inline prompt only): {{tool}}, {{reason}}
332
+ */
333
+ /** Minimum ms between triggers. Enforced minimum: 5000. */
334
+ cooldownMs: number;
335
+ }
336
+ /** Minimal permission-denied result passed to handlePermissionDenied. */
337
+ export interface PermissionDeniedResult {
338
+ tool: string;
339
+ reason: string;
340
+ }
341
+ export interface OnDiagnosticsClearedPolicy extends PromptSource {
342
+ enabled: boolean;
343
+ /** Placeholders (inline prompt only): {{file}} */
344
+ cooldownMs: number;
345
+ }
346
+ /**
347
+ * Unified diagnostics-state hook (v2.43.0+) — replaces `onDiagnosticsError`
348
+ * and `onDiagnosticsCleared` with a single schema entry carrying a `state`
349
+ * discriminator. Expanded at load time. Legacy names still accepted with a
350
+ * deprecation warning. Removed no earlier than v2.46 + 30 days.
351
+ */
352
+ export type OnDiagnosticsStateChangePolicy = ({
353
+ state: "error";
354
+ } & OnDiagnosticsErrorPolicy) | ({
355
+ state: "cleared";
356
+ } & OnDiagnosticsClearedPolicy);
357
+ export interface OnTaskSuccessPolicy extends PromptSource {
358
+ enabled: boolean;
359
+ /** Placeholders (inline prompt only): {{taskId}}, {{output}} */
360
+ cooldownMs: number;
361
+ }
362
+ /** Minimal task-success result passed to handleTaskSuccess. */
363
+ export interface TaskSuccessResult {
364
+ taskId: string;
365
+ output: string;
366
+ }
367
+ export interface AutomationPolicy {
368
+ /**
369
+ * Default model for all automation tasks.
370
+ * Defaults to "claude-haiku-4-5-20251001" to minimise cost.
371
+ * Override with "claude-sonnet-4-6" etc. for hooks that need more reasoning.
372
+ */
373
+ defaultModel?: string;
374
+ /**
375
+ * Hard cap on automation tasks spawned per hour (rolling 60-min window).
376
+ * Defaults to 20. Set to 0 to disable.
377
+ */
378
+ maxTasksPerHour?: number;
379
+ /**
380
+ * Custom system prompt passed via --system-prompt to every automation subprocess.
381
+ * Replaces the default Claude Code system prompt, preventing CLAUDE.md from being
382
+ * loaded as workspace instructions. Keep it short — this is the biggest token lever.
383
+ * Default: a lean "be brief" prompt. Max 4096 chars.
384
+ */
385
+ automationSystemPrompt?: string;
386
+ /**
387
+ * Default effort level for all automation tasks (low/medium/high/max).
388
+ * Defaults to "low" — automation tasks rarely need deep reasoning.
389
+ * Override per-hook via the hook's own effort field.
390
+ */
391
+ defaultEffort?: "low" | "medium" | "high" | "max";
392
+ /** @deprecated v2.43.0 — use `onDiagnosticsStateChange` with `state: "error"`. */
393
+ onDiagnosticsError?: OnDiagnosticsErrorPolicy;
394
+ onFileSave?: OnFileSavePolicy;
395
+ /** Fired by Claude Code 2.1.83+ FileChanged hook — reacts to any file edit, not just explicit saves. */
396
+ onFileChanged?: OnFileChangedPolicy;
397
+ /** Fired by Claude Code 2.1.83+ CwdChanged hook — fires when CC's working directory changes. */
398
+ onCwdChanged?: OnCwdChangedPolicy;
399
+ /**
400
+ * Unified compaction hook (v2.43.0+) — replaces onPreCompact/onPostCompact.
401
+ * Expanded at load time into the internal `onPreCompact` or `onPostCompact`
402
+ * slot based on `phase`. Prefer this form in new policies.
403
+ */
404
+ onCompaction?: OnCompactionPolicy;
405
+ /** @deprecated v2.43.0 — use `onCompaction` with `phase: "post"`. Removed no earlier than v2.46 / 30 days. */
406
+ onPostCompact?: OnPostCompactPolicy;
407
+ /** @deprecated v2.43.0 — use `onCompaction` with `phase: "pre"`. Removed no earlier than v2.46 / 30 days. */
408
+ onPreCompact?: OnPreCompactPolicy;
409
+ /** Fired by Claude Code 2.1.76+ InstructionsLoaded hook — injects bridge status at session start. */
410
+ onInstructionsLoaded?: OnInstructionsLoadedPolicy;
411
+ /** Fired after every runTests call. Use `filter` to target failures / pass-after-fail / all runs. */
412
+ onTestRun?: OnTestRunPolicy;
413
+ /** Fired when a test run transitions from failing → passing for the same runner. */
414
+ onTestPassAfterFailure?: OnTestPassAfterFailurePolicy;
415
+ /** Fired after every successful gitCommit call. */
416
+ onGitCommit?: OnGitCommitPolicy;
417
+ /** Fired after every successful gitPush call. */
418
+ onGitPush?: OnGitPushPolicy;
419
+ /** Fired after every successful gitPull call. */
420
+ onGitPull?: OnGitPullPolicy;
421
+ /** Fired after every successful gitCheckout call (branch switch or creation). */
422
+ onBranchCheckout?: OnBranchCheckoutPolicy;
423
+ /** Fired after every successful githubCreatePR call. */
424
+ onPullRequest?: OnPullRequestPolicy;
425
+ /** Fired by Claude Code 2.1.84+ TaskCreated hook — fires when Claude creates a subagent task. */
426
+ onTaskCreated?: OnTaskCreatedPolicy;
427
+ /** Fired by Claude Code 2.1.89+ PermissionDenied hook — fires when a tool call is blocked. */
428
+ onPermissionDenied?: OnPermissionDeniedPolicy;
429
+ /**
430
+ * Unified diagnostics-state hook (v2.43.0+) — replaces onDiagnosticsError/
431
+ * onDiagnosticsCleared. Expanded at load time based on `state`.
432
+ */
433
+ onDiagnosticsStateChange?: OnDiagnosticsStateChangePolicy;
434
+ /** @deprecated v2.43.0 — use `onDiagnosticsStateChange` with `state: "cleared"`. */
435
+ onDiagnosticsCleared?: OnDiagnosticsClearedPolicy;
436
+ /** Fired when a Claude orchestrator task completes with status done. */
437
+ onTaskSuccess?: OnTaskSuccessPolicy;
438
+ /** Unified debug-session hook (v2.43.0+). Expanded to onDebugSessionStart/End based on phase. */
439
+ onDebugSession?: OnDebugSessionPolicy;
440
+ /** @deprecated v2.43.0 — use `onDebugSession` with `phase: "end"`. */
441
+ onDebugSessionEnd?: OnDebugSessionEndPolicy;
442
+ /** @deprecated v2.43.0 — use `onDebugSession` with `phase: "start"`. */
443
+ onDebugSessionStart?: OnDebugSessionStartPolicy;
444
+ }
445
+ export interface Diagnostic {
446
+ message: string;
447
+ severity: "error" | "warning" | "info" | "information" | "hint";
448
+ source?: string;
449
+ code?: string | number;
450
+ }
451
+ /**
452
+ * Deterministic signature over a diagnostic list — used for content-aware
453
+ * dedupe in onDiagnosticsError. Sorting by a stable key makes the signature
454
+ * order-independent so LSP re-emissions with the same diagnostics in a
455
+ * different order still collide.
456
+ */
457
+ export declare function diagnosticSignature(diagnostics: Diagnostic[]): string;
458
+ /** Load and validate a JSON automation policy file. Throws on any failure. */
459
+ export declare function loadPolicy(filePath: string): AutomationPolicy;
460
+ /**
461
+ * Check which CC hook events have at least one settings.json entry whose
462
+ * command references the matching bridge notify tool. Returns a map of
463
+ * CC event name → wired (boolean).
464
+ */
465
+ export declare function checkCcHookWiring(): Record<string, boolean>;
466
+ export declare class AutomationHooks {
467
+ private readonly policy;
468
+ private readonly log;
469
+ /** Compiled AST for the functional interpreter. Null if parse failed. */
470
+ private _programAST;
471
+ /** Backend instance for the functional interpreter. */
472
+ private _interpreterBackend;
473
+ /**
474
+ * Pure-value state holding cooldown timestamps, diagnostic error counts, and
475
+ * test outcomes. Mutations go through the pure-function helpers from
476
+ * `src/fp/automationState.ts`; the class re-assigns `_automationState` on
477
+ * each "write" to maintain immutability semantics at the value level.
478
+ */
479
+ private _automationState;
480
+ /** Accumulated skip counts keyed by hook name → reason. */
481
+ private _skipCountsByHookAndReason;
482
+ /** Tracks previous error count per normalized file path for zero-transition detection. */
483
+ private prevDiagnosticErrors;
484
+ /**
485
+ * Per-runner last outcome — used to detect fail→pass transitions for onTestPassAfterFailure.
486
+ * Key: runner name. Value: "pass" | "fail".
487
+ */
488
+ private lastTestOutcomeByRunner;
489
+ private _lastFiredAt;
490
+ /** Last interpreter run promise — allows tests to await completion. */
491
+ private _lastRunPromise;
492
+ constructor(policy: AutomationPolicy, orchestrator: ClaudeOrchestrator, log: (msg: string) => void, _extensionClient?: ExtensionClient, _workspace?: string);
493
+ private _runInterpreter;
494
+ /**
495
+ * Returns a Promise that resolves once all in-flight interpreter runs finish.
496
+ * Useful in tests to await async side-effects before asserting on task counts.
497
+ */
498
+ flush(): Promise<void>;
499
+ /** Tear down the instance: nulls interpreter references. */
500
+ destroy(): void;
501
+ handleDiagnosticsChanged(file: string, diagnostics: Diagnostic[]): void;
502
+ /**
503
+ * Called when Claude Code fires a CwdChanged hook (Claude Code 2.1.83+).
504
+ * Fires when CC's working directory changes — useful for re-snapshotting workspace context.
505
+ */
506
+ handleCwdChanged(newCwd: string): void;
507
+ /**
508
+ * Called when Claude Code fires a PreCompact hook.
509
+ * Fires the onPreCompact automation hook before context trimming — use to snapshot state or
510
+ * write a handoff note before Claude loses context.
511
+ */
512
+ handlePreCompact(): void;
513
+ /**
514
+ * Called when Claude Code fires a PostCompact hook (Claude Code 2.1.76+).
515
+ * Re-enqueues the configured prompt so Claude can re-snapshot IDE state after losing context.
516
+ */
517
+ handlePostCompact(): void;
518
+ /**
519
+ * Called when Claude Code fires an InstructionsLoaded hook (Claude Code 2.1.76+).
520
+ * Fires once per session; injects bridge status / tool capability summary at start.
521
+ */
522
+ handleInstructionsLoaded(): void;
523
+ handleFileSaved(_id: string, type: string, file: string): void;
524
+ /**
525
+ * Called when the VS Code extension reports a file-changed event (type === "change").
526
+ * Distinct from handleFileSaved — reacts to any editor buffer change, not just explicit saves.
527
+ * Useful for triggering tasks on unsaved edits (e.g. lint-as-you-type workflows).
528
+ */
529
+ handleFileChanged(_id: string, type: string, file: string): void;
530
+ /**
531
+ * Called after every runTests tool invocation completes.
532
+ * Triggers an automation task when tests fail (or on every run if onFailureOnly is false).
533
+ */
534
+ handleTestRun(result: TestRunResult): void;
535
+ /**
536
+ * Called after a successful gitCommit tool call.
537
+ * Fires the onGitCommit automation hook if configured.
538
+ */
539
+ handleGitCommit(result: GitCommitResult): Promise<void>;
540
+ /**
541
+ * Called after a successful gitPush tool call.
542
+ * Fires the onGitPush automation hook if configured.
543
+ */
544
+ handleGitPush(result: GitPushResult): void;
545
+ /**
546
+ * Fires the onGitPull automation hook if configured.
547
+ */
548
+ handleGitPull(result: GitPullResult): void;
549
+ /**
550
+ * Called after a successful gitCheckout tool call.
551
+ * Fires the onBranchCheckout automation hook if configured.
552
+ */
553
+ handleBranchCheckout(result: BranchCheckoutResult): void;
554
+ /**
555
+ * Fires the onPullRequest automation hook if configured.
556
+ */
557
+ handlePullRequest(result: PullRequestResult): void;
558
+ handleTaskCreated(result: TaskCreatedResult): void;
559
+ handlePermissionDenied(result: PermissionDeniedResult): void;
560
+ /**
561
+ * Fires the onDiagnosticsCleared hook when a file transitions from non-zero to zero errors.
562
+ * Called internally by handleDiagnosticsChanged.
563
+ */
564
+ handleDiagnosticsCleared(normalizedFile: string): void;
565
+ /**
566
+ * Fires the onTaskSuccess hook when a Claude orchestrator task completes with status "done".
567
+ * Call from bridge.ts when a task transitions to done.
568
+ */
569
+ handleTaskSuccess(result: TaskSuccessResult): void;
570
+ /**
571
+ * Called when a VS Code debug session ends (hasActiveSession transitions true→false).
572
+ * Fires the onDebugSessionEnd automation hook if configured.
573
+ */
574
+ handleDebugSessionEnd(result: DebugSessionEndResult): Promise<void>;
575
+ /**
576
+ * Called when a VS Code debug session starts (hasActiveSession transitions false→true).
577
+ * Fires the onDebugSessionStart automation hook if configured.
578
+ */
579
+ handleDebugSessionStart(result: DebugSessionStartResult): Promise<void>;
580
+ /** Summary of automation policy for getBridgeStatus. */
581
+ getStatus(): {
582
+ onPreCompact: {
583
+ enabled: boolean;
584
+ cooldownMs: number;
585
+ } | null;
586
+ onPostCompact: {
587
+ enabled: boolean;
588
+ cooldownMs: number;
589
+ } | null;
590
+ onDiagnosticsError: {
591
+ enabled: boolean;
592
+ } | null;
593
+ onFileSave: {
594
+ enabled: boolean;
595
+ patternCount: number;
596
+ } | null;
597
+ onFileChanged: {
598
+ enabled: boolean;
599
+ patternCount: number;
600
+ } | null;
601
+ onCwdChanged: {
602
+ enabled: boolean;
603
+ cooldownMs: number;
604
+ } | null;
605
+ onTestRun: {
606
+ enabled: boolean;
607
+ onFailureOnly: boolean;
608
+ cooldownMs: number;
609
+ } | null;
610
+ onTestPassAfterFailure: {
611
+ enabled: boolean;
612
+ cooldownMs: number;
613
+ } | null;
614
+ onGitCommit: {
615
+ enabled: boolean;
616
+ cooldownMs: number;
617
+ } | null;
618
+ onGitPush: {
619
+ enabled: boolean;
620
+ cooldownMs: number;
621
+ } | null;
622
+ onBranchCheckout: {
623
+ enabled: boolean;
624
+ cooldownMs: number;
625
+ } | null;
626
+ onPullRequest: {
627
+ enabled: boolean;
628
+ cooldownMs: number;
629
+ } | null;
630
+ onTaskCreated: {
631
+ enabled: boolean;
632
+ cooldownMs: number;
633
+ } | null;
634
+ onInstructionsLoaded: {
635
+ enabled: boolean;
636
+ cooldownMs: number;
637
+ } | null;
638
+ onPermissionDenied: {
639
+ enabled: boolean;
640
+ cooldownMs: number;
641
+ } | null;
642
+ onDiagnosticsCleared: {
643
+ enabled: boolean;
644
+ cooldownMs: number;
645
+ } | null;
646
+ onTaskSuccess: {
647
+ enabled: boolean;
648
+ cooldownMs: number;
649
+ } | null;
650
+ onGitPull: {
651
+ enabled: boolean;
652
+ cooldownMs: number;
653
+ } | null;
654
+ onDebugSessionEnd: {
655
+ enabled: boolean;
656
+ cooldownMs: number;
657
+ } | null;
658
+ onDebugSessionStart: {
659
+ enabled: boolean;
660
+ cooldownMs: number;
661
+ } | null;
662
+ unwiredEnabledHooks: string[];
663
+ defaultModel: string;
664
+ maxTasksPerHour: number;
665
+ tasksThisHour: number;
666
+ defaultEffort: string;
667
+ automationSystemPrompt: string;
668
+ };
669
+ isPreCompactEnabled(): boolean;
670
+ getStats(): {
671
+ hooksEnabled: number;
672
+ lastFiredAt: string | null;
673
+ skipCountsByHookAndReason?: Record<string, Record<string, number>>;
674
+ };
675
+ }