patchwork-os 0.2.0-alpha.9 → 0.2.0-beta.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 (618) hide show
  1. package/README.bridge.md +6 -0
  2. package/README.md +318 -35
  3. package/deploy/bootstrap-new-vps.sh +12 -12
  4. package/deploy/bootstrap-vps.sh +187 -0
  5. package/deploy/deploy-dashboard.sh +174 -0
  6. package/deploy/deploy-landing.sh +136 -0
  7. package/dist/activationMetrics.d.ts +67 -0
  8. package/dist/activationMetrics.js +255 -0
  9. package/dist/activationMetrics.js.map +1 -0
  10. package/dist/activityLog.d.ts +49 -0
  11. package/dist/activityLog.js +78 -0
  12. package/dist/activityLog.js.map +1 -1
  13. package/dist/analyticsAggregator.d.ts +5 -1
  14. package/dist/analyticsAggregator.js +15 -4
  15. package/dist/analyticsAggregator.js.map +1 -1
  16. package/dist/analyticsPrefs.d.ts +11 -0
  17. package/dist/analyticsPrefs.js +33 -0
  18. package/dist/analyticsPrefs.js.map +1 -1
  19. package/dist/approvalHttp.d.ts +49 -2
  20. package/dist/approvalHttp.js +217 -21
  21. package/dist/approvalHttp.js.map +1 -1
  22. package/dist/approvalInsights.d.ts +49 -0
  23. package/dist/approvalInsights.js +97 -0
  24. package/dist/approvalInsights.js.map +1 -0
  25. package/dist/approvalQueue.d.ts +27 -1
  26. package/dist/approvalQueue.js +123 -3
  27. package/dist/approvalQueue.js.map +1 -1
  28. package/dist/approvalSignals.d.ts +124 -0
  29. package/dist/approvalSignals.js +512 -0
  30. package/dist/approvalSignals.js.map +1 -0
  31. package/dist/automation.d.ts +57 -0
  32. package/dist/automation.js +156 -59
  33. package/dist/automation.js.map +1 -1
  34. package/dist/automationSuggestions.d.ts +79 -0
  35. package/dist/automationSuggestions.js +150 -0
  36. package/dist/automationSuggestions.js.map +1 -0
  37. package/dist/bridge.d.ts +3 -0
  38. package/dist/bridge.js +194 -153
  39. package/dist/bridge.js.map +1 -1
  40. package/dist/bridgeToken.js +57 -19
  41. package/dist/bridgeToken.js.map +1 -1
  42. package/dist/ccPermissions.d.ts +15 -0
  43. package/dist/ccPermissions.js +21 -4
  44. package/dist/ccPermissions.js.map +1 -1
  45. package/dist/claudeDriver.d.ts +0 -16
  46. package/dist/claudeDriver.js +93 -36
  47. package/dist/claudeDriver.js.map +1 -1
  48. package/dist/claudeMdPatch.d.ts +9 -3
  49. package/dist/claudeMdPatch.js +79 -13
  50. package/dist/claudeMdPatch.js.map +1 -1
  51. package/dist/claudeOrchestrator.d.ts +13 -1
  52. package/dist/claudeOrchestrator.js +16 -8
  53. package/dist/claudeOrchestrator.js.map +1 -1
  54. package/dist/commands/dashboard.js +1 -1
  55. package/dist/commands/dashboard.js.map +1 -1
  56. package/dist/commands/launchd.d.ts +2 -0
  57. package/dist/commands/launchd.js +94 -0
  58. package/dist/commands/launchd.js.map +1 -0
  59. package/dist/commands/marketplace.d.ts +15 -10
  60. package/dist/commands/marketplace.js +27 -115
  61. package/dist/commands/marketplace.js.map +1 -1
  62. package/dist/commands/patchworkInit.d.ts +8 -0
  63. package/dist/commands/patchworkInit.js +77 -11
  64. package/dist/commands/patchworkInit.js.map +1 -1
  65. package/dist/commands/recipe.d.ts +289 -0
  66. package/dist/commands/recipe.js +1359 -0
  67. package/dist/commands/recipe.js.map +1 -0
  68. package/dist/commands/recipeInstall.d.ts +150 -0
  69. package/dist/commands/recipeInstall.js +647 -0
  70. package/dist/commands/recipeInstall.js.map +1 -0
  71. package/dist/commands/tracesExport.d.ts +83 -0
  72. package/dist/commands/tracesExport.js +269 -0
  73. package/dist/commands/tracesExport.js.map +1 -0
  74. package/dist/commands/tracesImport.d.ts +56 -0
  75. package/dist/commands/tracesImport.js +161 -0
  76. package/dist/commands/tracesImport.js.map +1 -0
  77. package/dist/commitIssueLinkLog.d.ts +8 -0
  78. package/dist/commitIssueLinkLog.js +53 -1
  79. package/dist/commitIssueLinkLog.js.map +1 -1
  80. package/dist/config.d.ts +23 -2
  81. package/dist/config.js +119 -9
  82. package/dist/config.js.map +1 -1
  83. package/dist/connectorRoutes.d.ts +43 -0
  84. package/dist/connectorRoutes.js +1300 -0
  85. package/dist/connectorRoutes.js.map +1 -0
  86. package/dist/connectors/asana.d.ts +198 -0
  87. package/dist/connectors/asana.js +679 -0
  88. package/dist/connectors/asana.js.map +1 -0
  89. package/dist/connectors/baseConnector.d.ts +153 -0
  90. package/dist/connectors/baseConnector.js +336 -0
  91. package/dist/connectors/baseConnector.js.map +1 -0
  92. package/dist/connectors/confluence.d.ts +111 -0
  93. package/dist/connectors/confluence.js +406 -0
  94. package/dist/connectors/confluence.js.map +1 -0
  95. package/dist/connectors/datadog.d.ts +116 -0
  96. package/dist/connectors/datadog.js +385 -0
  97. package/dist/connectors/datadog.js.map +1 -0
  98. package/dist/connectors/discord.d.ts +150 -0
  99. package/dist/connectors/discord.js +543 -0
  100. package/dist/connectors/discord.js.map +1 -0
  101. package/dist/connectors/fixtureLibrary.d.ts +21 -0
  102. package/dist/connectors/fixtureLibrary.js +70 -0
  103. package/dist/connectors/fixtureLibrary.js.map +1 -0
  104. package/dist/connectors/fixtureRecorder.d.ts +1 -0
  105. package/dist/connectors/fixtureRecorder.js +35 -0
  106. package/dist/connectors/fixtureRecorder.js.map +1 -0
  107. package/dist/connectors/github.js +17 -18
  108. package/dist/connectors/github.js.map +1 -1
  109. package/dist/connectors/gitlab.d.ts +180 -0
  110. package/dist/connectors/gitlab.js +582 -0
  111. package/dist/connectors/gitlab.js.map +1 -0
  112. package/dist/connectors/gmail.d.ts +4 -1
  113. package/dist/connectors/gmail.js +149 -27
  114. package/dist/connectors/gmail.js.map +1 -1
  115. package/dist/connectors/googleCalendar.d.ts +4 -1
  116. package/dist/connectors/googleCalendar.js +88 -25
  117. package/dist/connectors/googleCalendar.js.map +1 -1
  118. package/dist/connectors/googleDrive.d.ts +34 -0
  119. package/dist/connectors/googleDrive.js +321 -0
  120. package/dist/connectors/googleDrive.js.map +1 -0
  121. package/dist/connectors/htmlEscape.d.ts +5 -0
  122. package/dist/connectors/htmlEscape.js +13 -0
  123. package/dist/connectors/htmlEscape.js.map +1 -0
  124. package/dist/connectors/hubspot.d.ts +112 -0
  125. package/dist/connectors/hubspot.js +408 -0
  126. package/dist/connectors/hubspot.js.map +1 -0
  127. package/dist/connectors/intercom.d.ts +102 -0
  128. package/dist/connectors/intercom.js +402 -0
  129. package/dist/connectors/intercom.js.map +1 -0
  130. package/dist/connectors/jira.d.ts +98 -0
  131. package/dist/connectors/jira.js +396 -0
  132. package/dist/connectors/jira.js.map +1 -0
  133. package/dist/connectors/linear.js +30 -19
  134. package/dist/connectors/linear.js.map +1 -1
  135. package/dist/connectors/mcpOAuth.d.ts +3 -0
  136. package/dist/connectors/mcpOAuth.js +64 -10
  137. package/dist/connectors/mcpOAuth.js.map +1 -1
  138. package/dist/connectors/mockConnector.d.ts +28 -0
  139. package/dist/connectors/mockConnector.js +81 -0
  140. package/dist/connectors/mockConnector.js.map +1 -0
  141. package/dist/connectors/notion.d.ts +143 -0
  142. package/dist/connectors/notion.js +424 -0
  143. package/dist/connectors/notion.js.map +1 -0
  144. package/dist/connectors/oauthStateStore.d.ts +31 -0
  145. package/dist/connectors/oauthStateStore.js +52 -0
  146. package/dist/connectors/oauthStateStore.js.map +1 -0
  147. package/dist/connectors/pagerduty.d.ts +160 -0
  148. package/dist/connectors/pagerduty.js +464 -0
  149. package/dist/connectors/pagerduty.js.map +1 -0
  150. package/dist/connectors/sentry.js +5 -13
  151. package/dist/connectors/sentry.js.map +1 -1
  152. package/dist/connectors/slack.d.ts +16 -1
  153. package/dist/connectors/slack.js +155 -32
  154. package/dist/connectors/slack.js.map +1 -1
  155. package/dist/connectors/stripe.d.ts +116 -0
  156. package/dist/connectors/stripe.js +379 -0
  157. package/dist/connectors/stripe.js.map +1 -0
  158. package/dist/connectors/tokenStorage.d.ts +35 -0
  159. package/dist/connectors/tokenStorage.js +484 -0
  160. package/dist/connectors/tokenStorage.js.map +1 -0
  161. package/dist/connectors/zendesk.d.ts +104 -0
  162. package/dist/connectors/zendesk.js +442 -0
  163. package/dist/connectors/zendesk.js.map +1 -0
  164. package/dist/cors.d.ts +10 -0
  165. package/dist/cors.js +29 -0
  166. package/dist/cors.js.map +1 -0
  167. package/dist/decisionReplay.d.ts +72 -0
  168. package/dist/decisionReplay.js +92 -0
  169. package/dist/decisionReplay.js.map +1 -0
  170. package/dist/decisionTraceLog.d.ts +6 -0
  171. package/dist/decisionTraceLog.js +54 -2
  172. package/dist/decisionTraceLog.js.map +1 -1
  173. package/dist/drivers/claude/subprocess.d.ts +12 -2
  174. package/dist/drivers/claude/subprocess.js +79 -6
  175. package/dist/drivers/claude/subprocess.js.map +1 -1
  176. package/dist/drivers/gemini/api.d.ts +18 -0
  177. package/dist/drivers/gemini/api.js +29 -0
  178. package/dist/drivers/gemini/api.js.map +1 -0
  179. package/dist/drivers/gemini/index.d.ts +5 -1
  180. package/dist/drivers/gemini/index.js +39 -5
  181. package/dist/drivers/gemini/index.js.map +1 -1
  182. package/dist/drivers/index.d.ts +8 -1
  183. package/dist/drivers/index.js +10 -2
  184. package/dist/drivers/index.js.map +1 -1
  185. package/dist/drivers/local/index.d.ts +26 -0
  186. package/dist/drivers/local/index.js +41 -0
  187. package/dist/drivers/local/index.js.map +1 -0
  188. package/dist/featureFlags.d.ts +79 -0
  189. package/dist/featureFlags.js +208 -0
  190. package/dist/featureFlags.js.map +1 -0
  191. package/dist/fp/automationInterpreter.js +26 -21
  192. package/dist/fp/automationInterpreter.js.map +1 -1
  193. package/dist/fp/automationProgram.d.ts +1 -1
  194. package/dist/fp/automationProgram.js.map +1 -1
  195. package/dist/fp/automationState.js +4 -1
  196. package/dist/fp/automationState.js.map +1 -1
  197. package/dist/fp/policyParser.js +21 -1
  198. package/dist/fp/policyParser.js.map +1 -1
  199. package/dist/httpErrorResponse.d.ts +36 -0
  200. package/dist/httpErrorResponse.js +46 -0
  201. package/dist/httpErrorResponse.js.map +1 -0
  202. package/dist/inboxRoutes.d.ts +22 -0
  203. package/dist/inboxRoutes.js +193 -0
  204. package/dist/inboxRoutes.js.map +1 -0
  205. package/dist/index.d.ts +1 -1
  206. package/dist/index.js +1403 -203
  207. package/dist/index.js.map +1 -1
  208. package/dist/installGuard.d.ts +25 -0
  209. package/dist/installGuard.js +48 -0
  210. package/dist/installGuard.js.map +1 -0
  211. package/dist/mcpRoutes.d.ts +37 -0
  212. package/dist/mcpRoutes.js +76 -0
  213. package/dist/mcpRoutes.js.map +1 -0
  214. package/dist/oauth.d.ts +20 -1
  215. package/dist/oauth.js +214 -39
  216. package/dist/oauth.js.map +1 -1
  217. package/dist/oauthRoutes.d.ts +32 -0
  218. package/dist/oauthRoutes.js +119 -0
  219. package/dist/oauthRoutes.js.map +1 -0
  220. package/dist/orchestrator/orchestratorBridge.js +2 -2
  221. package/dist/orchestrator/orchestratorBridge.js.map +1 -1
  222. package/dist/patchworkConfig.d.ts +29 -0
  223. package/dist/patchworkConfig.js +100 -5
  224. package/dist/patchworkConfig.js.map +1 -1
  225. package/dist/pluginLoader.d.ts +28 -0
  226. package/dist/pluginLoader.js +77 -11
  227. package/dist/pluginLoader.js.map +1 -1
  228. package/dist/pluginWatcher.js +8 -3
  229. package/dist/pluginWatcher.js.map +1 -1
  230. package/dist/preToolUseHook.d.ts +12 -0
  231. package/dist/preToolUseHook.js +30 -1
  232. package/dist/preToolUseHook.js.map +1 -1
  233. package/dist/prompts.js +4 -0
  234. package/dist/prompts.js.map +1 -1
  235. package/dist/recipeOrchestration.d.ts +121 -0
  236. package/dist/recipeOrchestration.js +965 -0
  237. package/dist/recipeOrchestration.js.map +1 -0
  238. package/dist/recipeRoutes.d.ts +185 -0
  239. package/dist/recipeRoutes.js +1369 -0
  240. package/dist/recipeRoutes.js.map +1 -0
  241. package/dist/recipes/RecipeOrchestrator.d.ts +40 -0
  242. package/dist/recipes/RecipeOrchestrator.js +51 -0
  243. package/dist/recipes/RecipeOrchestrator.js.map +1 -0
  244. package/dist/recipes/agentExecutor.d.ts +38 -0
  245. package/dist/recipes/agentExecutor.js +50 -0
  246. package/dist/recipes/agentExecutor.js.map +1 -0
  247. package/dist/recipes/chainedRunner.d.ts +191 -0
  248. package/dist/recipes/chainedRunner.js +759 -0
  249. package/dist/recipes/chainedRunner.js.map +1 -0
  250. package/dist/recipes/compiler.js +3 -3
  251. package/dist/recipes/compiler.js.map +1 -1
  252. package/dist/recipes/dependencyGraph.d.ts +39 -0
  253. package/dist/recipes/dependencyGraph.js +199 -0
  254. package/dist/recipes/dependencyGraph.js.map +1 -0
  255. package/dist/recipes/disabledMarkers.d.ts +48 -0
  256. package/dist/recipes/disabledMarkers.js +52 -0
  257. package/dist/recipes/disabledMarkers.js.map +1 -0
  258. package/dist/recipes/installer.js +3 -3
  259. package/dist/recipes/installer.js.map +1 -1
  260. package/dist/recipes/legacyRecipeCompat.d.ts +10 -0
  261. package/dist/recipes/legacyRecipeCompat.js +131 -0
  262. package/dist/recipes/legacyRecipeCompat.js.map +1 -0
  263. package/dist/recipes/manifest.d.ts +47 -0
  264. package/dist/recipes/manifest.js +156 -0
  265. package/dist/recipes/manifest.js.map +1 -0
  266. package/dist/recipes/migrationWarnings.d.ts +12 -0
  267. package/dist/recipes/migrationWarnings.js +44 -0
  268. package/dist/recipes/migrationWarnings.js.map +1 -0
  269. package/dist/recipes/migrations/index.d.ts +24 -0
  270. package/dist/recipes/migrations/index.js +55 -0
  271. package/dist/recipes/migrations/index.js.map +1 -0
  272. package/dist/recipes/migrations/types.d.ts +28 -0
  273. package/dist/recipes/migrations/types.js +2 -0
  274. package/dist/recipes/migrations/types.js.map +1 -0
  275. package/dist/recipes/migrations/v1.d.ts +11 -0
  276. package/dist/recipes/migrations/v1.js +18 -0
  277. package/dist/recipes/migrations/v1.js.map +1 -0
  278. package/dist/recipes/names.d.ts +40 -0
  279. package/dist/recipes/names.js +66 -0
  280. package/dist/recipes/names.js.map +1 -0
  281. package/dist/recipes/nestedRecipeStep.d.ts +58 -0
  282. package/dist/recipes/nestedRecipeStep.js +95 -0
  283. package/dist/recipes/nestedRecipeStep.js.map +1 -0
  284. package/dist/recipes/outputRegistry.d.ts +28 -0
  285. package/dist/recipes/outputRegistry.js +52 -0
  286. package/dist/recipes/outputRegistry.js.map +1 -0
  287. package/dist/recipes/parser.js +4 -1
  288. package/dist/recipes/parser.js.map +1 -1
  289. package/dist/recipes/replayRun.d.ts +62 -0
  290. package/dist/recipes/replayRun.js +97 -0
  291. package/dist/recipes/replayRun.js.map +1 -0
  292. package/dist/recipes/resolveRecipePath.d.ts +69 -0
  293. package/dist/recipes/resolveRecipePath.js +202 -0
  294. package/dist/recipes/resolveRecipePath.js.map +1 -0
  295. package/dist/recipes/scheduler.d.ts +23 -7
  296. package/dist/recipes/scheduler.js +225 -45
  297. package/dist/recipes/scheduler.js.map +1 -1
  298. package/dist/recipes/schema.d.ts +17 -2
  299. package/dist/recipes/schemaGenerator.d.ts +28 -0
  300. package/dist/recipes/schemaGenerator.js +565 -0
  301. package/dist/recipes/schemaGenerator.js.map +1 -0
  302. package/dist/recipes/stepObservation.d.ts +44 -0
  303. package/dist/recipes/stepObservation.js +232 -0
  304. package/dist/recipes/stepObservation.js.map +1 -0
  305. package/dist/recipes/templateEngine.d.ts +62 -0
  306. package/dist/recipes/templateEngine.js +201 -0
  307. package/dist/recipes/templateEngine.js.map +1 -0
  308. package/dist/recipes/toolRegistry.d.ts +186 -0
  309. package/dist/recipes/toolRegistry.js +309 -0
  310. package/dist/recipes/toolRegistry.js.map +1 -0
  311. package/dist/recipes/tools/asana.d.ts +16 -0
  312. package/dist/recipes/tools/asana.js +524 -0
  313. package/dist/recipes/tools/asana.js.map +1 -0
  314. package/dist/recipes/tools/calendar.d.ts +6 -0
  315. package/dist/recipes/tools/calendar.js +61 -0
  316. package/dist/recipes/tools/calendar.js.map +1 -0
  317. package/dist/recipes/tools/confluence.d.ts +6 -0
  318. package/dist/recipes/tools/confluence.js +254 -0
  319. package/dist/recipes/tools/confluence.js.map +1 -0
  320. package/dist/recipes/tools/datadog.d.ts +6 -0
  321. package/dist/recipes/tools/datadog.js +239 -0
  322. package/dist/recipes/tools/datadog.js.map +1 -0
  323. package/dist/recipes/tools/diagnostics.d.ts +6 -0
  324. package/dist/recipes/tools/diagnostics.js +36 -0
  325. package/dist/recipes/tools/diagnostics.js.map +1 -0
  326. package/dist/recipes/tools/discord.d.ts +18 -0
  327. package/dist/recipes/tools/discord.js +254 -0
  328. package/dist/recipes/tools/discord.js.map +1 -0
  329. package/dist/recipes/tools/file.d.ts +12 -0
  330. package/dist/recipes/tools/file.js +174 -0
  331. package/dist/recipes/tools/file.js.map +1 -0
  332. package/dist/recipes/tools/git.d.ts +6 -0
  333. package/dist/recipes/tools/git.js +63 -0
  334. package/dist/recipes/tools/git.js.map +1 -0
  335. package/dist/recipes/tools/github.d.ts +6 -0
  336. package/dist/recipes/tools/github.js +116 -0
  337. package/dist/recipes/tools/github.js.map +1 -0
  338. package/dist/recipes/tools/gitlab.d.ts +11 -0
  339. package/dist/recipes/tools/gitlab.js +285 -0
  340. package/dist/recipes/tools/gitlab.js.map +1 -0
  341. package/dist/recipes/tools/gmail.d.ts +6 -0
  342. package/dist/recipes/tools/gmail.js +451 -0
  343. package/dist/recipes/tools/gmail.js.map +1 -0
  344. package/dist/recipes/tools/googleDrive.d.ts +1 -0
  345. package/dist/recipes/tools/googleDrive.js +55 -0
  346. package/dist/recipes/tools/googleDrive.js.map +1 -0
  347. package/dist/recipes/tools/hubspot.d.ts +6 -0
  348. package/dist/recipes/tools/hubspot.js +232 -0
  349. package/dist/recipes/tools/hubspot.js.map +1 -0
  350. package/dist/recipes/tools/index.d.ts +30 -0
  351. package/dist/recipes/tools/index.js +33 -0
  352. package/dist/recipes/tools/index.js.map +1 -0
  353. package/dist/recipes/tools/intercom.d.ts +6 -0
  354. package/dist/recipes/tools/intercom.js +226 -0
  355. package/dist/recipes/tools/intercom.js.map +1 -0
  356. package/dist/recipes/tools/jira.d.ts +14 -0
  357. package/dist/recipes/tools/jira.js +369 -0
  358. package/dist/recipes/tools/jira.js.map +1 -0
  359. package/dist/recipes/tools/linear.d.ts +7 -0
  360. package/dist/recipes/tools/linear.js +307 -0
  361. package/dist/recipes/tools/linear.js.map +1 -0
  362. package/dist/recipes/tools/meetingNotes.d.ts +21 -0
  363. package/dist/recipes/tools/meetingNotes.js +701 -0
  364. package/dist/recipes/tools/meetingNotes.js.map +1 -0
  365. package/dist/recipes/tools/notion.d.ts +6 -0
  366. package/dist/recipes/tools/notion.js +278 -0
  367. package/dist/recipes/tools/notion.js.map +1 -0
  368. package/dist/recipes/tools/pagerduty.d.ts +15 -0
  369. package/dist/recipes/tools/pagerduty.js +451 -0
  370. package/dist/recipes/tools/pagerduty.js.map +1 -0
  371. package/dist/recipes/tools/sentry.d.ts +12 -0
  372. package/dist/recipes/tools/sentry.js +73 -0
  373. package/dist/recipes/tools/sentry.js.map +1 -0
  374. package/dist/recipes/tools/slack.d.ts +6 -0
  375. package/dist/recipes/tools/slack.js +82 -0
  376. package/dist/recipes/tools/slack.js.map +1 -0
  377. package/dist/recipes/tools/stripe.d.ts +6 -0
  378. package/dist/recipes/tools/stripe.js +265 -0
  379. package/dist/recipes/tools/stripe.js.map +1 -0
  380. package/dist/recipes/tools/zendesk.d.ts +6 -0
  381. package/dist/recipes/tools/zendesk.js +245 -0
  382. package/dist/recipes/tools/zendesk.js.map +1 -0
  383. package/dist/recipes/validation.d.ts +13 -0
  384. package/dist/recipes/validation.js +617 -0
  385. package/dist/recipes/validation.js.map +1 -0
  386. package/dist/recipes/yamlRunner.d.ts +130 -2
  387. package/dist/recipes/yamlRunner.js +1009 -402
  388. package/dist/recipes/yamlRunner.js.map +1 -1
  389. package/dist/recipesHttp.d.ts +151 -6
  390. package/dist/recipesHttp.js +999 -29
  391. package/dist/recipesHttp.js.map +1 -1
  392. package/dist/riskTier.js +7 -1
  393. package/dist/riskTier.js.map +1 -1
  394. package/dist/runLog.d.ts +100 -1
  395. package/dist/runLog.js +258 -5
  396. package/dist/runLog.js.map +1 -1
  397. package/dist/schemas/dry-run-plan.v1.json +139 -0
  398. package/dist/schemas/recipe.v1.json +684 -0
  399. package/dist/server.d.ts +127 -8
  400. package/dist/server.js +740 -933
  401. package/dist/server.js.map +1 -1
  402. package/dist/ssrfGuard.d.ts +54 -0
  403. package/dist/ssrfGuard.js +122 -0
  404. package/dist/ssrfGuard.js.map +1 -0
  405. package/dist/streamableHttp.d.ts +39 -1
  406. package/dist/streamableHttp.js +128 -17
  407. package/dist/streamableHttp.js.map +1 -1
  408. package/dist/tokenUsageTracker.d.ts +33 -0
  409. package/dist/tokenUsageTracker.js +146 -0
  410. package/dist/tokenUsageTracker.js.map +1 -0
  411. package/dist/tools/activityLog.d.ts +2 -0
  412. package/dist/tools/addLinearComment.d.ts +1 -0
  413. package/dist/tools/addLinearComment.js +4 -2
  414. package/dist/tools/addLinearComment.js.map +1 -1
  415. package/dist/tools/batchLsp.d.ts +3 -0
  416. package/dist/tools/bridgeDoctor.d.ts +1 -0
  417. package/dist/tools/bridgeDoctor.js +2 -2
  418. package/dist/tools/bridgeDoctor.js.map +1 -1
  419. package/dist/tools/bridgeStatus.d.ts +1 -0
  420. package/dist/tools/cancelClaudeTask.d.ts +2 -0
  421. package/dist/tools/cancelClaudeTask.js +1 -0
  422. package/dist/tools/cancelClaudeTask.js.map +1 -1
  423. package/dist/tools/checkDocumentDirty.d.ts +1 -0
  424. package/dist/tools/clipboard.d.ts +2 -0
  425. package/dist/tools/closeTabs.d.ts +2 -0
  426. package/dist/tools/codeLens.d.ts +1 -0
  427. package/dist/tools/contextBundle.d.ts +1 -0
  428. package/dist/tools/createIssueFromAIComment.d.ts +1 -0
  429. package/dist/tools/createLinearIssue.d.ts +1 -0
  430. package/dist/tools/ctxGetTaskContext.d.ts +1 -0
  431. package/dist/tools/ctxQueryTraces.d.ts +1 -0
  432. package/dist/tools/ctxSaveTrace.d.ts +1 -0
  433. package/dist/tools/debug.d.ts +4 -0
  434. package/dist/tools/decorations.d.ts +2 -0
  435. package/dist/tools/documentLinks.d.ts +1 -0
  436. package/dist/tools/editText.d.ts +1 -0
  437. package/dist/tools/enrichCommit.d.ts +1 -0
  438. package/dist/tools/enrichStackTrace.d.ts +1 -0
  439. package/dist/tools/explainDiagnostic.d.ts +1 -0
  440. package/dist/tools/explainSymbol.d.ts +1 -0
  441. package/dist/tools/fetchCalendarEvents.d.ts +1 -0
  442. package/dist/tools/fetchGithubIssue.d.ts +1 -0
  443. package/dist/tools/fetchGithubPR.d.ts +1 -0
  444. package/dist/tools/fetchLinearIssue.d.ts +1 -0
  445. package/dist/tools/fetchSentryIssue.d.ts +1 -0
  446. package/dist/tools/fetchSlackProfile.d.ts +1 -0
  447. package/dist/tools/fetchSlackProfile.js +4 -1
  448. package/dist/tools/fetchSlackProfile.js.map +1 -1
  449. package/dist/tools/fileOperations.d.ts +3 -0
  450. package/dist/tools/fileWatcher.d.ts +2 -0
  451. package/dist/tools/findFiles.d.ts +1 -0
  452. package/dist/tools/findRelatedTests.d.ts +1 -0
  453. package/dist/tools/fixAllLintErrors.d.ts +1 -0
  454. package/dist/tools/foldingRanges.d.ts +1 -0
  455. package/dist/tools/formatDocument.d.ts +1 -0
  456. package/dist/tools/generateTests.d.ts +1 -0
  457. package/dist/tools/getAIComments.d.ts +1 -0
  458. package/dist/tools/getAnalyticsReport.d.ts +1 -0
  459. package/dist/tools/getArchitectureContext.d.ts +1 -0
  460. package/dist/tools/getBufferContent.d.ts +1 -0
  461. package/dist/tools/getChangeImpact.d.ts +1 -0
  462. package/dist/tools/getClaudeTaskStatus.d.ts +2 -0
  463. package/dist/tools/getClaudeTaskStatus.js +1 -0
  464. package/dist/tools/getClaudeTaskStatus.js.map +1 -1
  465. package/dist/tools/getCodeCoverage.d.ts +1 -0
  466. package/dist/tools/getCommitsForIssue.d.ts +1 -0
  467. package/dist/tools/getConnectorStatus.d.ts +1 -0
  468. package/dist/tools/getCurrentSelection.d.ts +2 -0
  469. package/dist/tools/getDebugState.d.ts +1 -0
  470. package/dist/tools/getDependencyTree.d.ts +1 -0
  471. package/dist/tools/getDiagnostics.d.ts +1 -0
  472. package/dist/tools/getDiffFromHandoff.d.ts +1 -0
  473. package/dist/tools/getDocumentSymbols.d.ts +25 -0
  474. package/dist/tools/getDocumentSymbols.js +74 -8
  475. package/dist/tools/getDocumentSymbols.js.map +1 -1
  476. package/dist/tools/getFileTree.d.ts +1 -0
  477. package/dist/tools/getGitDiff.d.ts +1 -0
  478. package/dist/tools/getGitHotspots.d.ts +1 -0
  479. package/dist/tools/getGitLog.d.ts +1 -0
  480. package/dist/tools/getGitStatus.d.ts +1 -0
  481. package/dist/tools/getImportTree.d.ts +1 -0
  482. package/dist/tools/getImportedSignatures.d.ts +1 -0
  483. package/dist/tools/getOpenEditors.d.ts +1 -0
  484. package/dist/tools/getPRTemplate.d.ts +1 -0
  485. package/dist/tools/getProjectContext.d.ts +1 -0
  486. package/dist/tools/getProjectInfo.d.ts +1 -0
  487. package/dist/tools/getSecurityAdvisories.d.ts +1 -0
  488. package/dist/tools/getSecurityAdvisories.js +10 -1
  489. package/dist/tools/getSecurityAdvisories.js.map +1 -1
  490. package/dist/tools/getSessionUsage.d.ts +4 -0
  491. package/dist/tools/getSessionUsage.js +3 -0
  492. package/dist/tools/getSessionUsage.js.map +1 -1
  493. package/dist/tools/getSymbolHistory.d.ts +1 -0
  494. package/dist/tools/getToolCapabilities.d.ts +1 -0
  495. package/dist/tools/getTypeSignature.d.ts +1 -0
  496. package/dist/tools/getWorkspaceFolders.d.ts +1 -0
  497. package/dist/tools/getWorkspaceSettings.d.ts +1 -0
  498. package/dist/tools/gitHistory.d.ts +2 -0
  499. package/dist/tools/gitWrite.d.ts +11 -0
  500. package/dist/tools/github/actions.d.ts +2 -0
  501. package/dist/tools/github/actions.js +4 -2
  502. package/dist/tools/github/actions.js.map +1 -1
  503. package/dist/tools/github/composite.d.ts +342 -0
  504. package/dist/tools/github/composite.js +343 -0
  505. package/dist/tools/github/composite.js.map +1 -0
  506. package/dist/tools/github/index.d.ts +1 -0
  507. package/dist/tools/github/index.js +1 -0
  508. package/dist/tools/github/index.js.map +1 -1
  509. package/dist/tools/github/issues.d.ts +4 -0
  510. package/dist/tools/github/issues.js +8 -4
  511. package/dist/tools/github/issues.js.map +1 -1
  512. package/dist/tools/github/pr.d.ts +7 -0
  513. package/dist/tools/github/pr.js +50 -12
  514. package/dist/tools/github/pr.js.map +1 -1
  515. package/dist/tools/handoffNote.d.ts +4 -0
  516. package/dist/tools/handoffNote.js +2 -0
  517. package/dist/tools/handoffNote.js.map +1 -1
  518. package/dist/tools/hoverAtCursor.d.ts +1 -0
  519. package/dist/tools/httpClient.d.ts +2 -0
  520. package/dist/tools/index.d.ts +8 -0
  521. package/dist/tools/index.js +47 -8
  522. package/dist/tools/index.js.map +1 -1
  523. package/dist/tools/inlayHints.d.ts +1 -0
  524. package/dist/tools/launchQuickTask.d.ts +2 -0
  525. package/dist/tools/launchQuickTask.js +1 -0
  526. package/dist/tools/launchQuickTask.js.map +1 -1
  527. package/dist/tools/listClaudeTasks.d.ts +2 -0
  528. package/dist/tools/listClaudeTasks.js +1 -0
  529. package/dist/tools/listClaudeTasks.js.map +1 -1
  530. package/dist/tools/listTerminals.d.ts +1 -0
  531. package/dist/tools/lsp.d.ts +14 -0
  532. package/dist/tools/navigateToSymbolByName.d.ts +1 -0
  533. package/dist/tools/openDiff.d.ts +1 -0
  534. package/dist/tools/openFile.d.ts +1 -0
  535. package/dist/tools/openInBrowser.d.ts +1 -0
  536. package/dist/tools/organizeImports.d.ts +1 -0
  537. package/dist/tools/performanceReport.d.ts +1 -0
  538. package/dist/tools/planPersistence.d.ts +5 -0
  539. package/dist/tools/previewEdit.d.ts +1 -0
  540. package/dist/tools/refactorAnalyze.d.ts +1 -0
  541. package/dist/tools/refactorPreview.d.ts +2 -0
  542. package/dist/tools/refactorPreview.js +1 -0
  543. package/dist/tools/refactorPreview.js.map +1 -1
  544. package/dist/tools/replaceBlock.d.ts +1 -0
  545. package/dist/tools/resumeClaudeTask.d.ts +2 -0
  546. package/dist/tools/resumeClaudeTask.js +1 -0
  547. package/dist/tools/resumeClaudeTask.js.map +1 -1
  548. package/dist/tools/runClaudeTask.d.ts +2 -0
  549. package/dist/tools/runClaudeTask.js +1 -0
  550. package/dist/tools/runClaudeTask.js.map +1 -1
  551. package/dist/tools/runCommand.d.ts +1 -0
  552. package/dist/tools/runCommand.js +5 -0
  553. package/dist/tools/runCommand.js.map +1 -1
  554. package/dist/tools/runTests.d.ts +1 -0
  555. package/dist/tools/saveDocument.d.ts +1 -0
  556. package/dist/tools/screenshotAndAnnotate.d.ts +1 -0
  557. package/dist/tools/searchAndReplace.d.ts +1 -0
  558. package/dist/tools/searchTools.d.ts +1 -0
  559. package/dist/tools/searchTools.js +1 -1
  560. package/dist/tools/searchTools.js.map +1 -1
  561. package/dist/tools/searchWorkspace.d.ts +1 -0
  562. package/dist/tools/selectionRanges.d.ts +1 -0
  563. package/dist/tools/semanticTokens.d.ts +1 -0
  564. package/dist/tools/setActiveWorkspaceFolder.d.ts +1 -0
  565. package/dist/tools/signatureHelp.d.ts +1 -0
  566. package/dist/tools/slackListChannels.d.ts +1 -0
  567. package/dist/tools/slackListChannels.js.map +1 -1
  568. package/dist/tools/slackPostMessage.d.ts +1 -0
  569. package/dist/tools/slackPostMessage.js +11 -6
  570. package/dist/tools/slackPostMessage.js.map +1 -1
  571. package/dist/tools/terminal.d.ts +6 -0
  572. package/dist/tools/terminal.js +4 -0
  573. package/dist/tools/terminal.js.map +1 -1
  574. package/dist/tools/testTraceToSource.d.ts +1 -0
  575. package/dist/tools/testTraceToSource.js +2 -2
  576. package/dist/tools/testTraceToSource.js.map +1 -1
  577. package/dist/tools/transaction.d.ts +23 -0
  578. package/dist/tools/transaction.js +29 -0
  579. package/dist/tools/transaction.js.map +1 -1
  580. package/dist/tools/typeHierarchy.d.ts +1 -0
  581. package/dist/tools/updateLinearIssue.d.ts +1 -0
  582. package/dist/tools/updateLinearIssue.js +20 -6
  583. package/dist/tools/updateLinearIssue.js.map +1 -1
  584. package/dist/tools/utils.d.ts +6 -0
  585. package/dist/tools/utils.js +59 -0
  586. package/dist/tools/utils.js.map +1 -1
  587. package/dist/tools/vscodeCommands.d.ts +2 -0
  588. package/dist/tools/vscodeTasks.d.ts +2 -0
  589. package/dist/tools/workspaceSettings.d.ts +1 -0
  590. package/dist/traceEncryption.d.ts +46 -0
  591. package/dist/traceEncryption.js +124 -0
  592. package/dist/traceEncryption.js.map +1 -0
  593. package/dist/transport.d.ts +46 -1
  594. package/dist/transport.js +173 -19
  595. package/dist/transport.js.map +1 -1
  596. package/package.json +30 -8
  597. package/scripts/mcp-stdio-shim.cjs +19 -3
  598. package/scripts/start-all.sh +34 -3
  599. package/templates/automation-policies/recipe-authoring.json +25 -0
  600. package/templates/automation-policy.example.json +6 -0
  601. package/templates/co.patchwork-os.bridge.plist +34 -0
  602. package/templates/policies/README.md +72 -0
  603. package/templates/policies/conservative.json +14 -0
  604. package/templates/policies/developer.json +14 -0
  605. package/templates/policies/headless-ci.json +24 -0
  606. package/templates/policies/personal-assistant.json +15 -0
  607. package/templates/policies/regulated-industry.json +18 -0
  608. package/templates/recipes/approval-queue-ui-test.yaml +205 -0
  609. package/templates/recipes/lint-on-save.yaml +1 -2
  610. package/templates/recipes/morning-brief-slack.yaml +57 -0
  611. package/templates/recipes/morning-brief.yaml +2 -2
  612. package/templates/recipes/project-health-check.yaml +50 -0
  613. package/templates/recipes/webhook/README.md +70 -0
  614. package/templates/recipes/webhook/capture-thought.yaml +26 -0
  615. package/templates/recipes/webhook/customer-escalation.yaml +49 -0
  616. package/templates/recipes/webhook/incident-intake.yaml +46 -0
  617. package/templates/recipes/webhook/meeting-prep.yaml +48 -0
  618. package/templates/recipes/webhook/morning-brief.yaml +57 -0
@@ -88,8 +88,26 @@ function expandDiscriminatedHook(policy, unifiedKey, discriminatorKey, valueA, s
88
88
  const hook = p[unifiedKey];
89
89
  if (hook === undefined)
90
90
  return;
91
+ // Array form: [{state:"error",...},{state:"cleared",...}] — expand each entry.
92
+ if (Array.isArray(hook)) {
93
+ p[unifiedKey] = undefined;
94
+ for (const entry of hook) {
95
+ if (typeof entry !== "object" || entry === null) {
96
+ throw new Error(`Each entry in "${unifiedKey}[]" must be an object`);
97
+ }
98
+ const disc = entry[discriminatorKey];
99
+ const { [discriminatorKey]: _d, ...rest } = entry;
100
+ if (disc === valueA)
101
+ p[slotA] = rest;
102
+ else if (disc === valueB)
103
+ p[slotB] = rest;
104
+ else
105
+ throw new Error(`"${unifiedKey}[].${discriminatorKey}" must be "${valueA}" or "${valueB}" (got ${JSON.stringify(disc)})`);
106
+ }
107
+ return;
108
+ }
91
109
  if (typeof hook !== "object" || hook === null) {
92
- throw new Error(`"${unifiedKey}" must be an object`);
110
+ throw new Error(`"${unifiedKey}" must be an object or array`);
93
111
  }
94
112
  const discriminator = hook[discriminatorKey];
95
113
  if (discriminator !== valueA && discriminator !== valueB) {
@@ -383,6 +401,28 @@ export function loadPolicy(filePath) {
383
401
  }
384
402
  fc.cooldownMs = Math.max(fc.cooldownMs, MIN_COOLDOWN_MS);
385
403
  }
404
+ // Validate onRecipeSave
405
+ if (policy.onRecipeSave !== undefined) {
406
+ const rs = policy.onRecipeSave;
407
+ if (typeof rs !== "object" || rs === null) {
408
+ throw new Error(`"onRecipeSave" must be an object`);
409
+ }
410
+ if (typeof rs.enabled !== "boolean") {
411
+ throw new Error(`"onRecipeSave.enabled" must be a boolean`);
412
+ }
413
+ // cooldownMs is optional; default applied at parse time
414
+ if (rs.cooldownMs !== undefined) {
415
+ expectType(rs.cooldownMs, "number", "onRecipeSave.cooldownMs");
416
+ if (!Number.isFinite(rs.cooldownMs)) {
417
+ throw new Error(`"onRecipeSave.cooldownMs" must be a finite number`);
418
+ }
419
+ rs.cooldownMs = Math.max(rs.cooldownMs, MIN_COOLDOWN_MS);
420
+ }
421
+ // prompt/promptName optional — default prompt used when absent
422
+ if (rs.prompt !== undefined || rs.promptName !== undefined) {
423
+ validatePromptSource("onRecipeSave", rs);
424
+ }
425
+ }
386
426
  // Validate onInstructionsLoaded (special: cooldownMs optional, min 5000)
387
427
  if (policy.onInstructionsLoaded !== undefined) {
388
428
  const il = policy.onInstructionsLoaded;
@@ -534,6 +574,68 @@ export class AutomationHooks {
534
574
  }
535
575
  }
536
576
  }
577
+ /**
578
+ * Tracks whether `_lastRunPromise` represents a still-running interpreter
579
+ * call. When false, we know the prior promise is settled and can start the
580
+ * next run synchronously (preserving start-sync semantics tests depend on).
581
+ * When true, we chain via `.then()` so the new run reads the post-state of
582
+ * the prior one — fixing the race where two concurrent events both observed
583
+ * stale `_automationState` and the second writer clobbered the first.
584
+ */
585
+ _chainBusy = false;
586
+ /**
587
+ * Enqueue an interpreter run, serializing it after any prior in-flight run.
588
+ *
589
+ * Concurrent events (e.g. a file save and a diagnostic update in the same
590
+ * tick) used to overwrite `_lastRunPromise`, so both runs read the same
591
+ * stale `_automationState` and the second writer's `updatedState` clobbered
592
+ * the first's. Cooldown/dedup writes from one event were silently lost;
593
+ * orphaned tasks accumulated in `activeTasks`.
594
+ *
595
+ * Chain through `_lastRunPromise` so each run sees the post-state of the
596
+ * previous one. We start the next run synchronously when the chain is idle
597
+ * (preserves the contract that `_runInterpreter` body executes up to its
598
+ * first await before this call returns); only when a run is in flight do
599
+ * we defer via `.then()`.
600
+ */
601
+ _enqueueRun(eventType, eventData) {
602
+ if (this._chainBusy) {
603
+ this._lastRunPromise = this._lastRunPromise
604
+ .catch(() => { })
605
+ .then(() => {
606
+ this._chainBusy = true;
607
+ return this._runInterpreter(eventType, eventData);
608
+ })
609
+ .finally(() => {
610
+ this._chainBusy = false;
611
+ });
612
+ }
613
+ else {
614
+ this._chainBusy = true;
615
+ this._lastRunPromise = this._runInterpreter(eventType, eventData).finally(() => {
616
+ this._chainBusy = false;
617
+ });
618
+ }
619
+ }
620
+ /**
621
+ * Enqueue a synchronous state mutation to run after any in-flight
622
+ * interpreter call. Without this, handler-side `_automationState =
623
+ * setLatestDiagnostics(...)` writes done synchronously between
624
+ * `_enqueueRun` calls would be overwritten when the first run's
625
+ * `result.value.updatedState` writeback fires (the writeback replaces
626
+ * the full state, including the handler's incremental change).
627
+ *
628
+ * When the chain is idle, run the mutation synchronously to preserve
629
+ * test ergonomics that assume state is observable on the next line.
630
+ */
631
+ _enqueueMutation(fn) {
632
+ if (this._chainBusy) {
633
+ this._lastRunPromise = this._lastRunPromise.catch(() => { }).then(fn);
634
+ }
635
+ else {
636
+ fn();
637
+ }
638
+ }
537
639
  async _runInterpreter(eventType, eventData) {
538
640
  if (!this._programAST || !this._interpreterBackend)
539
641
  return;
@@ -613,7 +715,9 @@ export class AutomationHooks {
613
715
  const rank = severityToNum[d.severity] ?? 3;
614
716
  return rank < min ? rank : min;
615
717
  }, 4); // 4 = no diagnostics / below hint
616
- this._automationState = setLatestDiagnostics(this._automationState, normalizedFile, maxSeverityNum, diagnostics.length);
718
+ this._enqueueMutation(() => {
719
+ this._automationState = setLatestDiagnostics(this._automationState, normalizedFile, maxSeverityNum, diagnostics.length);
720
+ });
617
721
  // Build diagnostics text for {{diagnostics}} placeholder (capped at 20)
618
722
  const diagsForPrompt = diagnostics.slice(0, 20);
619
723
  const overflow = diagnostics.length - diagsForPrompt.length;
@@ -629,37 +733,26 @@ export class AutomationHooks {
629
733
  .filter(Boolean)
630
734
  .join(",");
631
735
  const diagnosticSig = diagnosticSignature(diagnostics);
632
- // Fire onDiagnosticsCleared if transitioning from non-zero → zero; chain
633
- // the interpreter runs so flush() awaits both and state is updated correctly.
736
+ // Fire onDiagnosticsCleared if transitioning from non-zero → zero. Two
737
+ // consecutive _enqueueRun calls append to the chain in order, so cleared
738
+ // settles before error and state is observed correctly.
634
739
  if (prevErrorCount > 0 && currentErrorCount === 0) {
635
- this._lastRunPromise = this._runInterpreter("onDiagnosticsCleared", {
636
- file: normalizedFile,
637
- }).then(() => this._runInterpreter("onDiagnosticsError", {
638
- file: normalizedFile,
639
- diagnostics: diagnosticsText,
640
- diagnosticSources,
641
- diagnosticSig,
642
- count: String(diagnostics.length),
643
- }));
644
- }
645
- else {
646
- this._lastRunPromise = this._runInterpreter("onDiagnosticsError", {
647
- file: normalizedFile,
648
- diagnostics: diagnosticsText,
649
- diagnosticSources,
650
- diagnosticSig,
651
- count: String(diagnostics.length),
652
- });
740
+ this._enqueueRun("onDiagnosticsCleared", { file: normalizedFile });
653
741
  }
742
+ this._enqueueRun("onDiagnosticsError", {
743
+ file: normalizedFile,
744
+ diagnostics: diagnosticsText,
745
+ diagnosticSources,
746
+ diagnosticSig,
747
+ count: String(diagnostics.length),
748
+ });
654
749
  }
655
750
  /**
656
751
  * Called when Claude Code fires a CwdChanged hook (Claude Code 2.1.83+).
657
752
  * Fires when CC's working directory changes — useful for re-snapshotting workspace context.
658
753
  */
659
754
  handleCwdChanged(newCwd) {
660
- this._lastRunPromise = this._runInterpreter("onCwdChanged", {
661
- cwd: newCwd,
662
- });
755
+ this._enqueueRun("onCwdChanged", { cwd: newCwd });
663
756
  }
664
757
  /**
665
758
  * Called when Claude Code fires a PreCompact hook.
@@ -667,29 +760,31 @@ export class AutomationHooks {
667
760
  * write a handoff note before Claude loses context.
668
761
  */
669
762
  handlePreCompact() {
670
- this._lastRunPromise = this._runInterpreter("onPreCompact", {});
763
+ this._enqueueRun("onPreCompact", {});
671
764
  }
672
765
  /**
673
766
  * Called when Claude Code fires a PostCompact hook (Claude Code 2.1.76+).
674
767
  * Re-enqueues the configured prompt so Claude can re-snapshot IDE state after losing context.
675
768
  */
676
769
  handlePostCompact() {
677
- this._lastRunPromise = this._runInterpreter("onPostCompact", {});
770
+ this._enqueueRun("onPostCompact", {});
678
771
  }
679
772
  /**
680
773
  * Called when Claude Code fires an InstructionsLoaded hook (Claude Code 2.1.76+).
681
774
  * Fires once per session; injects bridge status / tool capability summary at start.
682
775
  */
683
776
  handleInstructionsLoaded() {
684
- this._lastRunPromise = this._runInterpreter("onInstructionsLoaded", {});
777
+ this._enqueueRun("onInstructionsLoaded", {});
685
778
  }
686
779
  handleFileSaved(_id, type, file) {
687
780
  if (type !== "save")
688
781
  return;
689
782
  const normalizedFile = path.resolve(file);
690
- this._lastRunPromise = this._runInterpreter("onFileSave", {
691
- file: normalizedFile,
692
- });
783
+ this._enqueueRun("onFileSave", { file: normalizedFile });
784
+ // Also fire onRecipeSave for .yaml files
785
+ if (normalizedFile.endsWith(".yaml") || normalizedFile.endsWith(".yml")) {
786
+ this._enqueueRun("onRecipeSave", { file: normalizedFile });
787
+ }
693
788
  }
694
789
  /**
695
790
  * Called when the VS Code extension reports a file-changed event (type === "change").
@@ -700,9 +795,7 @@ export class AutomationHooks {
700
795
  if (type !== "change")
701
796
  return;
702
797
  const normalizedFile = path.resolve(file);
703
- this._lastRunPromise = this._runInterpreter("onFileChanged", {
704
- file: normalizedFile,
705
- });
798
+ this._enqueueRun("onFileChanged", { file: normalizedFile });
706
799
  }
707
800
  /**
708
801
  * Called after every runTests tool invocation completes.
@@ -717,8 +810,11 @@ export class AutomationHooks {
717
810
  for (const runner of result.runners) {
718
811
  const prev = this.lastTestOutcomeByRunner.get(runner);
719
812
  this.lastTestOutcomeByRunner.set(runner, current);
720
- // Feed interpreter state
721
- this._automationState = setTestRunnerStatus(this._automationState, runner, current);
813
+ // Feed interpreter state through the chain so the writeback from any
814
+ // in-flight `_runInterpreter` doesn't clobber it.
815
+ this._enqueueMutation(() => {
816
+ this._automationState = setTestRunnerStatus(this._automationState, runner, current);
817
+ });
722
818
  if (prev === "fail" && current === "pass") {
723
819
  passAfterFailRunners.push(runner);
724
820
  }
@@ -731,26 +827,20 @@ export class AutomationHooks {
731
827
  failures: JSON.stringify(result.failures.slice(0, 100)),
732
828
  durationMs: String(result.summary.durationMs ?? ""),
733
829
  };
734
- // Chain interpreter runs so flush() awaits all of them and state is updated
735
- // sequentially. If any runner had a fail→pass transition, run that first so
736
- // its cooldown state is visible to subsequent runs within the same flush.
737
- if (passAfterFailRunners.length > 0) {
738
- let chain = Promise.resolve();
739
- for (const runner of passAfterFailRunners) {
740
- chain = chain.then(() => this._runInterpreter("onTestPassAfterFailure", { runner }));
741
- }
742
- this._lastRunPromise = chain.then(() => this._runInterpreter("onTestRun", testRunEventData));
743
- }
744
- else {
745
- this._lastRunPromise = this._runInterpreter("onTestRun", testRunEventData);
830
+ // Enqueue per-runner pass-after-fail transitions first so their cooldown
831
+ // state is visible to the subsequent onTestRun. Each _enqueueRun appends
832
+ // to the shared chain in order.
833
+ for (const runner of passAfterFailRunners) {
834
+ this._enqueueRun("onTestPassAfterFailure", { runner });
746
835
  }
836
+ this._enqueueRun("onTestRun", testRunEventData);
747
837
  }
748
838
  /**
749
839
  * Called after a successful gitCommit tool call.
750
840
  * Fires the onGitCommit automation hook if configured.
751
841
  */
752
842
  async handleGitCommit(result) {
753
- this._lastRunPromise = this._runInterpreter("onGitCommit", {
843
+ this._enqueueRun("onGitCommit", {
754
844
  hash: result.hash,
755
845
  branch: result.branch,
756
846
  message: result.message,
@@ -763,7 +853,7 @@ export class AutomationHooks {
763
853
  * Fires the onGitPush automation hook if configured.
764
854
  */
765
855
  handleGitPush(result) {
766
- this._lastRunPromise = this._runInterpreter("onGitPush", {
856
+ this._enqueueRun("onGitPush", {
767
857
  branch: result.branch,
768
858
  remote: result.remote,
769
859
  hash: result.hash,
@@ -773,7 +863,7 @@ export class AutomationHooks {
773
863
  * Fires the onGitPull automation hook if configured.
774
864
  */
775
865
  handleGitPull(result) {
776
- this._lastRunPromise = this._runInterpreter("onGitPull", {
866
+ this._enqueueRun("onGitPull", {
777
867
  branch: result.branch,
778
868
  remote: result.remote,
779
869
  });
@@ -783,7 +873,7 @@ export class AutomationHooks {
783
873
  * Fires the onBranchCheckout automation hook if configured.
784
874
  */
785
875
  handleBranchCheckout(result) {
786
- this._lastRunPromise = this._runInterpreter("onBranchCheckout", {
876
+ this._enqueueRun("onBranchCheckout", {
787
877
  branch: result.branch,
788
878
  previousBranch: result.previousBranch ?? "(detached HEAD)",
789
879
  created: String(result.created),
@@ -793,7 +883,7 @@ export class AutomationHooks {
793
883
  * Fires the onPullRequest automation hook if configured.
794
884
  */
795
885
  handlePullRequest(result) {
796
- this._lastRunPromise = this._runInterpreter("onPullRequest", {
886
+ this._enqueueRun("onPullRequest", {
797
887
  title: result.title,
798
888
  url: result.url,
799
889
  branch: result.branch,
@@ -801,13 +891,13 @@ export class AutomationHooks {
801
891
  });
802
892
  }
803
893
  handleTaskCreated(result) {
804
- this._lastRunPromise = this._runInterpreter("onTaskCreated", {
894
+ this._enqueueRun("onTaskCreated", {
805
895
  taskId: result.taskId,
806
896
  prompt: result.prompt,
807
897
  });
808
898
  }
809
899
  handlePermissionDenied(result) {
810
- this._lastRunPromise = this._runInterpreter("onPermissionDenied", {
900
+ this._enqueueRun("onPermissionDenied", {
811
901
  tool: result.tool,
812
902
  reason: result.reason,
813
903
  });
@@ -817,7 +907,7 @@ export class AutomationHooks {
817
907
  * Called internally by handleDiagnosticsChanged.
818
908
  */
819
909
  handleDiagnosticsCleared(normalizedFile) {
820
- this._lastRunPromise = this._runInterpreter("onDiagnosticsCleared", {
910
+ this._enqueueRun("onDiagnosticsCleared", {
821
911
  file: normalizedFile,
822
912
  diagnosticSig: "",
823
913
  });
@@ -827,7 +917,7 @@ export class AutomationHooks {
827
917
  * Call from bridge.ts when a task transitions to done.
828
918
  */
829
919
  handleTaskSuccess(result) {
830
- this._lastRunPromise = this._runInterpreter("onTaskSuccess", {
920
+ this._enqueueRun("onTaskSuccess", {
831
921
  taskId: result.taskId,
832
922
  output: result.output,
833
923
  });
@@ -837,7 +927,7 @@ export class AutomationHooks {
837
927
  * Fires the onDebugSessionEnd automation hook if configured.
838
928
  */
839
929
  async handleDebugSessionEnd(result) {
840
- this._lastRunPromise = this._runInterpreter("onDebugSessionEnd", {
930
+ this._enqueueRun("onDebugSessionEnd", {
841
931
  sessionName: result.sessionName,
842
932
  sessionType: result.sessionType,
843
933
  });
@@ -847,7 +937,7 @@ export class AutomationHooks {
847
937
  * Fires the onDebugSessionStart automation hook if configured.
848
938
  */
849
939
  async handleDebugSessionStart(result) {
850
- this._lastRunPromise = this._runInterpreter("onDebugSessionStart", {
940
+ this._enqueueRun("onDebugSessionStart", {
851
941
  sessionName: result.sessionName,
852
942
  sessionType: result.sessionType,
853
943
  breakpointCount: String(result.breakpointCount),
@@ -983,6 +1073,12 @@ export class AutomationHooks {
983
1073
  cooldownMs: p.onDebugSessionStart.cooldownMs,
984
1074
  }
985
1075
  : null,
1076
+ onRecipeSave: p.onRecipeSave
1077
+ ? {
1078
+ enabled: p.onRecipeSave.enabled,
1079
+ cooldownMs: p.onRecipeSave.cooldownMs ?? 10_000,
1080
+ }
1081
+ : null,
986
1082
  unwiredEnabledHooks,
987
1083
  defaultModel: p.defaultModel ?? "claude-haiku-4-5-20251001",
988
1084
  maxTasksPerHour: p.maxTasksPerHour ?? 20,
@@ -1016,6 +1112,7 @@ export class AutomationHooks {
1016
1112
  "onTaskSuccess",
1017
1113
  "onDebugSessionStart",
1018
1114
  "onDebugSessionEnd",
1115
+ "onRecipeSave",
1019
1116
  ];
1020
1117
  const hooksEnabled = hookKeys.filter((k) => {
1021
1118
  const hook = this.policy[k];
@@ -1 +1 @@
1
- {"version":3,"file":"automation.js","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automation.js","sourceRoot":"","sources":["../src/automation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * automationSuggestions — pattern-mine the activity log + run history to
3
+ * surface "you've been doing X by hand; want to make a recipe?" hints.
4
+ *
5
+ * From docs/strategic/2026-05-02/memory-ecosystem-report.md §6. Three of
6
+ * the four query-catalog patterns ship here; the fourth ("repeated
7
+ * manual workflow" via PrefixSpan-lite sequence mining) is deferred to
8
+ * a follow-up — the agent flagged it as the only entry in the catalog
9
+ * that requires a new ~50-line primitive (`mineSequences`), and shipping
10
+ * it without dashboard rendering would be premature.
11
+ *
12
+ * 1. **Co-occurring pairs** — tools that often run within W minutes of
13
+ * each other but don't already appear together in any successful
14
+ * recipe → "create a recipe?" suggestion.
15
+ * 2. **Installed but unused** — tools registered with the bridge but
16
+ * never called → "review your installed tool list" suggestion.
17
+ * 3. **Recipe trust graduation** — recipes with ≥ 10 runs all status
18
+ * "done" → "consider auto-approving" suggestion (does NOT auto-
19
+ * change policy; this is purely a hint).
20
+ *
21
+ * Pure function over (ActivityLog, RecipeRunLog, ToolRegistry). No I/O
22
+ * of its own; tested in isolation by feeding mock instances. The CLI
23
+ * `patchwork suggest` is a thin printer over this output.
24
+ */
25
+ import type { ActivityLog } from "./activityLog.js";
26
+ import type { RecipeRunLog } from "./runLog.js";
27
+ export interface AutomationSuggestion {
28
+ kind: "co_occurring_pair" | "installed_but_unused" | "recipe_trust_graduation";
29
+ /** Human-facing one-liner — suitable for CLI print or dashboard row. */
30
+ label: string;
31
+ /** Optional structured payload so the dashboard can render specific UIs. */
32
+ details?: {
33
+ /** For co_occurring_pair: ["toolA", "toolB"]. */
34
+ pair?: [string, string];
35
+ /** For co_occurring_pair: how often they co-occurred in the window. */
36
+ count?: number;
37
+ /** For installed_but_unused: list of tool ids that are unused. */
38
+ unusedTools?: string[];
39
+ /** For recipe_trust_graduation: which recipe and its run count. */
40
+ recipeName?: string;
41
+ runCount?: number;
42
+ };
43
+ }
44
+ export interface AutomationSuggestionDeps {
45
+ activityLog: ActivityLog;
46
+ recipeRunLog?: RecipeRunLog;
47
+ /**
48
+ * Test seam — defaults to the global tool registry. Tests can pass an
49
+ * empty-aware version to assert the "no tools registered" branch.
50
+ */
51
+ listToolNamesFn?: () => string[];
52
+ /**
53
+ * Window for co-occurrence detection (ms). Strategic-plan §6 sample
54
+ * uses 5 minutes; we pick 5 minutes for "tight workflow" patterns and
55
+ * support overrides for tests.
56
+ */
57
+ coOccurrenceWindowMs?: number;
58
+ /**
59
+ * Minimum count before a co-occurring pair is suggested. The agent's
60
+ * sample uses 5; tests can lower this to assert wiring.
61
+ */
62
+ coOccurrenceMinCount?: number;
63
+ /**
64
+ * Lookback for activity-mining. Default 7 days — fresh enough to
65
+ * reflect current habits, long enough that 5+ co-occurrences is real
66
+ * signal not noise.
67
+ */
68
+ activitySinceMs?: number;
69
+ /**
70
+ * Min runs before a recipe qualifies for trust-graduation suggestion.
71
+ * Default 10. Lower for tests.
72
+ */
73
+ trustGraduationMinRuns?: number;
74
+ }
75
+ /**
76
+ * Compute the full suggestion set. Returns at most 30 suggestions
77
+ * (10 of each kind) sorted by salience within each bucket.
78
+ */
79
+ export declare function computeAutomationSuggestions(deps: AutomationSuggestionDeps): AutomationSuggestion[];