patchwork-os 0.2.0-beta.1 → 0.2.0-beta.10.canary.95

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 (652) hide show
  1. package/README.bridge.md +14 -14
  2. package/README.md +201 -34
  3. package/deploy/README.md +1 -1
  4. package/deploy/bootstrap-vps.sh +14 -9
  5. package/deploy/deploy-dashboard.sh +25 -1
  6. package/deploy/macos/README.md +153 -0
  7. package/deploy/macos/com.patchwork.bridge.plist.template +54 -0
  8. package/deploy/macos/com.patchwork.tunnel.plist.template +76 -0
  9. package/deploy/macos/install-mac-bridge.sh +244 -0
  10. package/deploy/macos/uninstall-mac-bridge.sh +22 -0
  11. package/dist/activityLog.d.ts +6 -0
  12. package/dist/activityLog.js +63 -26
  13. package/dist/activityLog.js.map +1 -1
  14. package/dist/adapters/claude.js +22 -16
  15. package/dist/adapters/claude.js.map +1 -1
  16. package/dist/adapters/gemini.js +15 -11
  17. package/dist/adapters/gemini.js.map +1 -1
  18. package/dist/adapters/openai.js +9 -9
  19. package/dist/adapters/openai.js.map +1 -1
  20. package/dist/ajv2020.d.ts +25 -0
  21. package/dist/ajv2020.js +33 -0
  22. package/dist/ajv2020.js.map +1 -0
  23. package/dist/analyticsAggregator.js +1 -1
  24. package/dist/analyticsAggregator.js.map +1 -1
  25. package/dist/analyticsConfig.d.ts +29 -0
  26. package/dist/analyticsConfig.js +102 -0
  27. package/dist/analyticsConfig.js.map +1 -0
  28. package/dist/analyticsPrefs.d.ts +38 -2
  29. package/dist/analyticsPrefs.js +148 -23
  30. package/dist/analyticsPrefs.js.map +1 -1
  31. package/dist/analyticsSend.d.ts +17 -1
  32. package/dist/analyticsSend.js +67 -5
  33. package/dist/analyticsSend.js.map +1 -1
  34. package/dist/approvalHttp.d.ts +14 -0
  35. package/dist/approvalHttp.js +212 -9
  36. package/dist/approvalHttp.js.map +1 -1
  37. package/dist/approvalInsights.js +13 -5
  38. package/dist/approvalInsights.js.map +1 -1
  39. package/dist/approvalQueue.d.ts +97 -3
  40. package/dist/approvalQueue.js +193 -19
  41. package/dist/approvalQueue.js.map +1 -1
  42. package/dist/approvalSignals.js +19 -11
  43. package/dist/approvalSignals.js.map +1 -1
  44. package/dist/automation.d.ts +35 -10
  45. package/dist/automation.js +133 -37
  46. package/dist/automation.js.map +1 -1
  47. package/dist/automationSuggestions.js +10 -8
  48. package/dist/automationSuggestions.js.map +1 -1
  49. package/dist/bridge.d.ts +2 -0
  50. package/dist/bridge.js +202 -25
  51. package/dist/bridge.js.map +1 -1
  52. package/dist/bridgeLockDiscovery.d.ts +27 -1
  53. package/dist/bridgeLockDiscovery.js +38 -11
  54. package/dist/bridgeLockDiscovery.js.map +1 -1
  55. package/dist/bridgeToken.js +3 -2
  56. package/dist/bridgeToken.js.map +1 -1
  57. package/dist/claudeDriver.js +23 -8
  58. package/dist/claudeDriver.js.map +1 -1
  59. package/dist/claudeOrchestrator.d.ts +1 -1
  60. package/dist/claudeOrchestrator.js +87 -44
  61. package/dist/claudeOrchestrator.js.map +1 -1
  62. package/dist/commands/analytics.d.ts +8 -0
  63. package/dist/commands/analytics.js +134 -0
  64. package/dist/commands/analytics.js.map +1 -0
  65. package/dist/commands/auditEnv.d.ts +36 -0
  66. package/dist/commands/auditEnv.js +202 -0
  67. package/dist/commands/auditEnv.js.map +1 -0
  68. package/dist/commands/dashboard.js +8 -1
  69. package/dist/commands/dashboard.js.map +1 -1
  70. package/dist/commands/doctor.d.ts +35 -0
  71. package/dist/commands/doctor.js +51 -0
  72. package/dist/commands/doctor.js.map +1 -0
  73. package/dist/commands/install.js +3 -0
  74. package/dist/commands/install.js.map +1 -1
  75. package/dist/commands/launchd.js +15 -16
  76. package/dist/commands/launchd.js.map +1 -1
  77. package/dist/commands/patchworkInit.d.ts +5 -0
  78. package/dist/commands/patchworkInit.js +89 -7
  79. package/dist/commands/patchworkInit.js.map +1 -1
  80. package/dist/commands/recipe.d.ts +110 -0
  81. package/dist/commands/recipe.js +512 -9
  82. package/dist/commands/recipe.js.map +1 -1
  83. package/dist/commands/recipeInstall.js +11 -4
  84. package/dist/commands/recipeInstall.js.map +1 -1
  85. package/dist/commands/shadowScan.d.ts +34 -0
  86. package/dist/commands/shadowScan.js +142 -0
  87. package/dist/commands/shadowScan.js.map +1 -0
  88. package/dist/commands/task.js +2 -2
  89. package/dist/commands/task.js.map +1 -1
  90. package/dist/commands/tools.d.ts +20 -1
  91. package/dist/commands/tools.js +112 -3
  92. package/dist/commands/tools.js.map +1 -1
  93. package/dist/commands/tracesImport.js +21 -4
  94. package/dist/commands/tracesImport.js.map +1 -1
  95. package/dist/commitIssueLinkLog.d.ts +16 -0
  96. package/dist/commitIssueLinkLog.js +110 -24
  97. package/dist/commitIssueLinkLog.js.map +1 -1
  98. package/dist/companions/registry.js +15 -7
  99. package/dist/companions/registry.js.map +1 -1
  100. package/dist/config.d.ts +47 -3
  101. package/dist/config.js +111 -21
  102. package/dist/config.js.map +1 -1
  103. package/dist/connectorRoutes.js +866 -57
  104. package/dist/connectorRoutes.js.map +1 -1
  105. package/dist/connectors/airtable.d.ts +230 -0
  106. package/dist/connectors/airtable.js +700 -0
  107. package/dist/connectors/airtable.js.map +1 -0
  108. package/dist/connectors/asana.js +13 -9
  109. package/dist/connectors/asana.js.map +1 -1
  110. package/dist/connectors/baseConnector.js +25 -3
  111. package/dist/connectors/baseConnector.js.map +1 -1
  112. package/dist/connectors/caldiy.d.ts +137 -0
  113. package/dist/connectors/caldiy.js +424 -0
  114. package/dist/connectors/caldiy.js.map +1 -0
  115. package/dist/connectors/circleci.d.ts +162 -0
  116. package/dist/connectors/circleci.js +576 -0
  117. package/dist/connectors/circleci.js.map +1 -0
  118. package/dist/connectors/cloudflare.d.ts +132 -0
  119. package/dist/connectors/cloudflare.js +622 -0
  120. package/dist/connectors/cloudflare.js.map +1 -0
  121. package/dist/connectors/confluence.js +35 -0
  122. package/dist/connectors/confluence.js.map +1 -1
  123. package/dist/connectors/connectorRedirectUri.d.ts +30 -0
  124. package/dist/connectors/connectorRedirectUri.js +38 -0
  125. package/dist/connectors/connectorRedirectUri.js.map +1 -0
  126. package/dist/connectors/connectorRegistry.d.ts +63 -0
  127. package/dist/connectors/connectorRegistry.js +354 -0
  128. package/dist/connectors/connectorRegistry.js.map +1 -0
  129. package/dist/connectors/datadog.js +33 -4
  130. package/dist/connectors/datadog.js.map +1 -1
  131. package/dist/connectors/discord.js +14 -10
  132. package/dist/connectors/discord.js.map +1 -1
  133. package/dist/connectors/elasticsearch.d.ts +141 -0
  134. package/dist/connectors/elasticsearch.js +601 -0
  135. package/dist/connectors/elasticsearch.js.map +1 -0
  136. package/dist/connectors/figma.d.ts +130 -0
  137. package/dist/connectors/figma.js +387 -0
  138. package/dist/connectors/figma.js.map +1 -0
  139. package/dist/connectors/github.d.ts +17 -0
  140. package/dist/connectors/github.js +53 -2
  141. package/dist/connectors/github.js.map +1 -1
  142. package/dist/connectors/gitlab.js +12 -6
  143. package/dist/connectors/gitlab.js.map +1 -1
  144. package/dist/connectors/gmail.js +72 -21
  145. package/dist/connectors/gmail.js.map +1 -1
  146. package/dist/connectors/googleCalendar.js +8 -8
  147. package/dist/connectors/googleCalendar.js.map +1 -1
  148. package/dist/connectors/googleDocs.d.ts +103 -0
  149. package/dist/connectors/googleDocs.js +409 -0
  150. package/dist/connectors/googleDocs.js.map +1 -0
  151. package/dist/connectors/googleDrive.d.ts +12 -0
  152. package/dist/connectors/googleDrive.js +35 -8
  153. package/dist/connectors/googleDrive.js.map +1 -1
  154. package/dist/connectors/grafana.d.ts +133 -0
  155. package/dist/connectors/grafana.js +478 -0
  156. package/dist/connectors/grafana.js.map +1 -0
  157. package/dist/connectors/jira.d.ts +25 -0
  158. package/dist/connectors/jira.js +227 -1
  159. package/dist/connectors/jira.js.map +1 -1
  160. package/dist/connectors/linear.js +1 -1
  161. package/dist/connectors/linear.js.map +1 -1
  162. package/dist/connectors/mcpOAuth.js +78 -16
  163. package/dist/connectors/mcpOAuth.js.map +1 -1
  164. package/dist/connectors/monday.d.ts +217 -0
  165. package/dist/connectors/monday.js +655 -0
  166. package/dist/connectors/monday.js.map +1 -0
  167. package/dist/connectors/mongodb.d.ts +139 -0
  168. package/dist/connectors/mongodb.js +455 -0
  169. package/dist/connectors/mongodb.js.map +1 -0
  170. package/dist/connectors/oauthStateStore.d.ts +20 -0
  171. package/dist/connectors/oauthStateStore.js +94 -4
  172. package/dist/connectors/oauthStateStore.js.map +1 -1
  173. package/dist/connectors/obsidian.d.ts +83 -0
  174. package/dist/connectors/obsidian.js +441 -0
  175. package/dist/connectors/obsidian.js.map +1 -0
  176. package/dist/connectors/paystack.d.ts +159 -0
  177. package/dist/connectors/paystack.js +607 -0
  178. package/dist/connectors/paystack.js.map +1 -0
  179. package/dist/connectors/pipedrive.d.ts +189 -0
  180. package/dist/connectors/pipedrive.js +559 -0
  181. package/dist/connectors/pipedrive.js.map +1 -0
  182. package/dist/connectors/postgres.d.ts +127 -0
  183. package/dist/connectors/postgres.js +512 -0
  184. package/dist/connectors/postgres.js.map +1 -0
  185. package/dist/connectors/posthog.d.ts +119 -0
  186. package/dist/connectors/posthog.js +479 -0
  187. package/dist/connectors/posthog.js.map +1 -0
  188. package/dist/connectors/redis.d.ts +140 -0
  189. package/dist/connectors/redis.js +571 -0
  190. package/dist/connectors/redis.js.map +1 -0
  191. package/dist/connectors/resend.d.ts +131 -0
  192. package/dist/connectors/resend.js +529 -0
  193. package/dist/connectors/resend.js.map +1 -0
  194. package/dist/connectors/salesforce.d.ts +136 -0
  195. package/dist/connectors/salesforce.js +603 -0
  196. package/dist/connectors/salesforce.js.map +1 -0
  197. package/dist/connectors/secrets.d.ts +51 -0
  198. package/dist/connectors/secrets.js +102 -0
  199. package/dist/connectors/secrets.js.map +1 -0
  200. package/dist/connectors/sendgrid.d.ts +102 -0
  201. package/dist/connectors/sendgrid.js +423 -0
  202. package/dist/connectors/sendgrid.js.map +1 -0
  203. package/dist/connectors/shopify.d.ts +145 -0
  204. package/dist/connectors/shopify.js +502 -0
  205. package/dist/connectors/shopify.js.map +1 -0
  206. package/dist/connectors/slack.d.ts +1 -1
  207. package/dist/connectors/slack.js +61 -9
  208. package/dist/connectors/slack.js.map +1 -1
  209. package/dist/connectors/snowflake.d.ts +119 -0
  210. package/dist/connectors/snowflake.js +615 -0
  211. package/dist/connectors/snowflake.js.map +1 -0
  212. package/dist/connectors/supabase.d.ts +92 -0
  213. package/dist/connectors/supabase.js +630 -0
  214. package/dist/connectors/supabase.js.map +1 -0
  215. package/dist/connectors/todoist.d.ts +117 -0
  216. package/dist/connectors/todoist.js +485 -0
  217. package/dist/connectors/todoist.js.map +1 -0
  218. package/dist/connectors/tokenStorage.js +56 -14
  219. package/dist/connectors/tokenStorage.js.map +1 -1
  220. package/dist/connectors/twilio.d.ts +118 -0
  221. package/dist/connectors/twilio.js +475 -0
  222. package/dist/connectors/twilio.js.map +1 -0
  223. package/dist/connectors/vercel.d.ts +110 -0
  224. package/dist/connectors/vercel.js +479 -0
  225. package/dist/connectors/vercel.js.map +1 -0
  226. package/dist/connectors/webflow.d.ts +118 -0
  227. package/dist/connectors/webflow.js +393 -0
  228. package/dist/connectors/webflow.js.map +1 -0
  229. package/dist/connectors/woocommerce.d.ts +220 -0
  230. package/dist/connectors/woocommerce.js +464 -0
  231. package/dist/connectors/woocommerce.js.map +1 -0
  232. package/dist/crypto.js +7 -2
  233. package/dist/crypto.js.map +1 -1
  234. package/dist/decisionReplay.js +15 -6
  235. package/dist/decisionReplay.js.map +1 -1
  236. package/dist/decisionTraceLog.d.ts +28 -0
  237. package/dist/decisionTraceLog.js +156 -29
  238. package/dist/decisionTraceLog.js.map +1 -1
  239. package/dist/drivers/claude/api.js +5 -4
  240. package/dist/drivers/claude/api.js.map +1 -1
  241. package/dist/drivers/claude/envSanitizer.d.ts +0 -6
  242. package/dist/drivers/claude/envSanitizer.js +17 -2
  243. package/dist/drivers/claude/envSanitizer.js.map +1 -1
  244. package/dist/drivers/claude/streamParser.js +5 -4
  245. package/dist/drivers/claude/streamParser.js.map +1 -1
  246. package/dist/drivers/claude/subprocess.js +22 -3
  247. package/dist/drivers/claude/subprocess.js.map +1 -1
  248. package/dist/drivers/gemini/index.d.ts +22 -0
  249. package/dist/drivers/gemini/index.js +256 -129
  250. package/dist/drivers/gemini/index.js.map +1 -1
  251. package/dist/drivers/local/index.d.ts +17 -0
  252. package/dist/drivers/local/index.js +99 -0
  253. package/dist/drivers/local/index.js.map +1 -1
  254. package/dist/drivers/openai/index.js +30 -2
  255. package/dist/drivers/openai/index.js.map +1 -1
  256. package/dist/extensionClient.d.ts +37 -4
  257. package/dist/extensionClient.js +58 -16
  258. package/dist/extensionClient.js.map +1 -1
  259. package/dist/featureFlags.d.ts +91 -0
  260. package/dist/featureFlags.js +174 -3
  261. package/dist/featureFlags.js.map +1 -1
  262. package/dist/fileLock.js +21 -12
  263. package/dist/fileLock.js.map +1 -1
  264. package/dist/fileLockSync.d.ts +67 -0
  265. package/dist/fileLockSync.js +126 -0
  266. package/dist/fileLockSync.js.map +1 -0
  267. package/dist/fp/activityAnalytics.js +26 -12
  268. package/dist/fp/activityAnalytics.js.map +1 -1
  269. package/dist/fp/automationInterpreter.d.ts +15 -1
  270. package/dist/fp/automationInterpreter.js +217 -82
  271. package/dist/fp/automationInterpreter.js.map +1 -1
  272. package/dist/fp/automationProgram.d.ts +30 -0
  273. package/dist/fp/automationProgram.js.map +1 -1
  274. package/dist/fp/automationState.d.ts +24 -5
  275. package/dist/fp/automationState.js +56 -9
  276. package/dist/fp/automationState.js.map +1 -1
  277. package/dist/fp/automationUtils.js +1 -1
  278. package/dist/fp/automationUtils.js.map +1 -1
  279. package/dist/fp/commandDescription.js +7 -1
  280. package/dist/fp/commandDescription.js.map +1 -1
  281. package/dist/fp/extensionSnapshot.js +8 -2
  282. package/dist/fp/extensionSnapshot.js.map +1 -1
  283. package/dist/fp/interpreterContext.d.ts +66 -1
  284. package/dist/fp/interpreterContext.js +91 -1
  285. package/dist/fp/interpreterContext.js.map +1 -1
  286. package/dist/fp/policyParser.js +29 -1
  287. package/dist/fp/policyParser.js.map +1 -1
  288. package/dist/fsWatchWithFallback.d.ts +36 -0
  289. package/dist/fsWatchWithFallback.js +128 -0
  290. package/dist/fsWatchWithFallback.js.map +1 -0
  291. package/dist/haltPushDispatch.d.ts +33 -0
  292. package/dist/haltPushDispatch.js +103 -0
  293. package/dist/haltPushDispatch.js.map +1 -0
  294. package/dist/httpBodyValidation.d.ts +41 -0
  295. package/dist/httpBodyValidation.js +45 -0
  296. package/dist/httpBodyValidation.js.map +1 -0
  297. package/dist/inboxRoutes.d.ts +22 -0
  298. package/dist/inboxRoutes.js +61 -1
  299. package/dist/inboxRoutes.js.map +1 -1
  300. package/dist/index.js +1053 -76
  301. package/dist/index.js.map +1 -1
  302. package/dist/installGuard.js +6 -2
  303. package/dist/installGuard.js.map +1 -1
  304. package/dist/lockfile.js +31 -4
  305. package/dist/lockfile.js.map +1 -1
  306. package/dist/oauth.d.ts +9 -0
  307. package/dist/oauth.js +33 -0
  308. package/dist/oauth.js.map +1 -1
  309. package/dist/oauthRoutes.d.ts +1 -1
  310. package/dist/oauthRoutes.js +5 -3
  311. package/dist/oauthRoutes.js.map +1 -1
  312. package/dist/orchestrator/childBridgeRegistry.js +29 -11
  313. package/dist/orchestrator/childBridgeRegistry.js.map +1 -1
  314. package/dist/patchworkConfig.d.ts +44 -1
  315. package/dist/patchworkConfig.js +28 -3
  316. package/dist/patchworkConfig.js.map +1 -1
  317. package/dist/pluginLoader.js +10 -1
  318. package/dist/pluginLoader.js.map +1 -1
  319. package/dist/pluginWatcher.js +12 -14
  320. package/dist/pluginWatcher.js.map +1 -1
  321. package/dist/preToolUseHook.js +3 -2
  322. package/dist/preToolUseHook.js.map +1 -1
  323. package/dist/processTree.d.ts +34 -0
  324. package/dist/processTree.js +105 -0
  325. package/dist/processTree.js.map +1 -0
  326. package/dist/prompts.js +3 -3
  327. package/dist/prompts.js.map +1 -1
  328. package/dist/recipeOrchestration.d.ts +9 -0
  329. package/dist/recipeOrchestration.js +341 -24
  330. package/dist/recipeOrchestration.js.map +1 -1
  331. package/dist/recipeRoutes.d.ts +58 -2
  332. package/dist/recipeRoutes.js +744 -115
  333. package/dist/recipeRoutes.js.map +1 -1
  334. package/dist/recipes/RecipeOrchestrator.d.ts +2 -0
  335. package/dist/recipes/RecipeOrchestrator.js +6 -1
  336. package/dist/recipes/RecipeOrchestrator.js.map +1 -1
  337. package/dist/recipes/agentExecutor.d.ts +25 -5
  338. package/dist/recipes/agentExecutor.js.map +1 -1
  339. package/dist/recipes/chainedRunner.d.ts +2 -0
  340. package/dist/recipes/chainedRunner.js +142 -5
  341. package/dist/recipes/chainedRunner.js.map +1 -1
  342. package/dist/recipes/connectorPreflight.d.ts +66 -0
  343. package/dist/recipes/connectorPreflight.js +169 -0
  344. package/dist/recipes/connectorPreflight.js.map +1 -0
  345. package/dist/recipes/dependencyGraph.js +13 -5
  346. package/dist/recipes/dependencyGraph.js.map +1 -1
  347. package/dist/recipes/githubInstallSource.d.ts +128 -0
  348. package/dist/recipes/githubInstallSource.js +206 -0
  349. package/dist/recipes/githubInstallSource.js.map +1 -0
  350. package/dist/recipes/haltCategory.d.ts +119 -0
  351. package/dist/recipes/haltCategory.js +188 -0
  352. package/dist/recipes/haltCategory.js.map +1 -0
  353. package/dist/recipes/idempotencyKey.d.ts +134 -0
  354. package/dist/recipes/idempotencyKey.js +322 -0
  355. package/dist/recipes/idempotencyKey.js.map +1 -0
  356. package/dist/recipes/installer.js +48 -2
  357. package/dist/recipes/installer.js.map +1 -1
  358. package/dist/recipes/judgeSummary.d.ts +50 -0
  359. package/dist/recipes/judgeSummary.js +47 -0
  360. package/dist/recipes/judgeSummary.js.map +1 -0
  361. package/dist/recipes/judgeVerdict.d.ts +48 -0
  362. package/dist/recipes/judgeVerdict.js +174 -0
  363. package/dist/recipes/judgeVerdict.js.map +1 -0
  364. package/dist/recipes/migrations/index.d.ts +9 -0
  365. package/dist/recipes/migrations/index.js +133 -0
  366. package/dist/recipes/migrations/index.js.map +1 -1
  367. package/dist/recipes/names.d.ts +20 -0
  368. package/dist/recipes/names.js +25 -0
  369. package/dist/recipes/names.js.map +1 -1
  370. package/dist/recipes/parser.js +88 -5
  371. package/dist/recipes/parser.js.map +1 -1
  372. package/dist/recipes/replayRun.js +1 -1
  373. package/dist/recipes/replayRun.js.map +1 -1
  374. package/dist/recipes/runBudget.d.ts +70 -0
  375. package/dist/recipes/runBudget.js +109 -0
  376. package/dist/recipes/runBudget.js.map +1 -0
  377. package/dist/recipes/scheduler.d.ts +30 -0
  378. package/dist/recipes/scheduler.js +69 -19
  379. package/dist/recipes/scheduler.js.map +1 -1
  380. package/dist/recipes/schema.d.ts +36 -0
  381. package/dist/recipes/schemaGenerator.js +103 -5
  382. package/dist/recipes/schemaGenerator.js.map +1 -1
  383. package/dist/recipes/stepObservation.js +9 -0
  384. package/dist/recipes/stepObservation.js.map +1 -1
  385. package/dist/recipes/toolRegistry.js +20 -3
  386. package/dist/recipes/toolRegistry.js.map +1 -1
  387. package/dist/recipes/tools/fanOut.d.ts +20 -0
  388. package/dist/recipes/tools/fanOut.js +199 -0
  389. package/dist/recipes/tools/fanOut.js.map +1 -0
  390. package/dist/recipes/tools/file.js +5 -2
  391. package/dist/recipes/tools/file.js.map +1 -1
  392. package/dist/recipes/tools/github.d.ts +1 -1
  393. package/dist/recipes/tools/github.js +75 -1
  394. package/dist/recipes/tools/github.js.map +1 -1
  395. package/dist/recipes/tools/gmail.js +27 -5
  396. package/dist/recipes/tools/gmail.js.map +1 -1
  397. package/dist/recipes/tools/googleDrive.js +64 -0
  398. package/dist/recipes/tools/googleDrive.js.map +1 -1
  399. package/dist/recipes/tools/http.d.ts +10 -0
  400. package/dist/recipes/tools/http.js +176 -0
  401. package/dist/recipes/tools/http.js.map +1 -0
  402. package/dist/recipes/tools/index.d.ts +2 -0
  403. package/dist/recipes/tools/index.js +2 -0
  404. package/dist/recipes/tools/index.js.map +1 -1
  405. package/dist/recipes/tools/slack.js +1 -1
  406. package/dist/recipes/validation.d.ts +17 -0
  407. package/dist/recipes/validation.js +29 -11
  408. package/dist/recipes/validation.js.map +1 -1
  409. package/dist/recipes/workspaceRoot.d.ts +37 -0
  410. package/dist/recipes/workspaceRoot.js +73 -0
  411. package/dist/recipes/workspaceRoot.js.map +1 -0
  412. package/dist/recipes/yamlPositions.d.ts +56 -0
  413. package/dist/recipes/yamlPositions.js +183 -0
  414. package/dist/recipes/yamlPositions.js.map +1 -0
  415. package/dist/recipes/yamlRunner.d.ts +182 -8
  416. package/dist/recipes/yamlRunner.js +877 -217
  417. package/dist/recipes/yamlRunner.js.map +1 -1
  418. package/dist/recipesHttp.d.ts +19 -3
  419. package/dist/recipesHttp.js +67 -11
  420. package/dist/recipesHttp.js.map +1 -1
  421. package/dist/resources.js +21 -13
  422. package/dist/resources.js.map +1 -1
  423. package/dist/runLog.d.ts +58 -5
  424. package/dist/runLog.js +98 -21
  425. package/dist/runLog.js.map +1 -1
  426. package/dist/sanitizeParsedJson.d.ts +39 -0
  427. package/dist/sanitizeParsedJson.js +55 -0
  428. package/dist/sanitizeParsedJson.js.map +1 -0
  429. package/dist/schemas/recipe.v1.json +885 -196
  430. package/dist/server.d.ts +160 -3
  431. package/dist/server.js +1099 -122
  432. package/dist/server.js.map +1 -1
  433. package/dist/sessionCheckpoint.d.ts +8 -0
  434. package/dist/sessionCheckpoint.js +33 -3
  435. package/dist/sessionCheckpoint.js.map +1 -1
  436. package/dist/ssrfGuard.d.ts +16 -0
  437. package/dist/ssrfGuard.js +87 -4
  438. package/dist/ssrfGuard.js.map +1 -1
  439. package/dist/streamableHttp.d.ts +9 -4
  440. package/dist/streamableHttp.js +76 -20
  441. package/dist/streamableHttp.js.map +1 -1
  442. package/dist/telemetry.js +19 -12
  443. package/dist/telemetry.js.map +1 -1
  444. package/dist/testing/shadowRun.d.ts +52 -0
  445. package/dist/testing/shadowRun.js +71 -0
  446. package/dist/testing/shadowRun.js.map +1 -0
  447. package/dist/tools/batchLsp.d.ts +3 -0
  448. package/dist/tools/bridgeDoctor.d.ts +11 -0
  449. package/dist/tools/bridgeDoctor.js +48 -2
  450. package/dist/tools/bridgeDoctor.js.map +1 -1
  451. package/dist/tools/bridgeStatus.d.ts +0 -12
  452. package/dist/tools/bridgeStatus.js +2 -28
  453. package/dist/tools/bridgeStatus.js.map +1 -1
  454. package/dist/tools/cancelClaudeTask.d.ts +1 -0
  455. package/dist/tools/clipboard.d.ts +2 -0
  456. package/dist/tools/closeTabs.d.ts +1 -0
  457. package/dist/tools/codeLens.d.ts +1 -0
  458. package/dist/tools/createIssueFromAIComment.d.ts +1 -0
  459. package/dist/tools/ctxGetTaskContext.d.ts +9 -0
  460. package/dist/tools/ctxGetTaskContext.js +50 -2
  461. package/dist/tools/ctxGetTaskContext.js.map +1 -1
  462. package/dist/tools/ctxQueryTraces.js +32 -24
  463. package/dist/tools/ctxQueryTraces.js.map +1 -1
  464. package/dist/tools/ctxSaveTrace.d.ts +1 -0
  465. package/dist/tools/debug.d.ts +4 -0
  466. package/dist/tools/decorations.d.ts +2 -0
  467. package/dist/tools/detectUnusedCode.js +9 -7
  468. package/dist/tools/detectUnusedCode.js.map +1 -1
  469. package/dist/tools/documentLinks.d.ts +1 -0
  470. package/dist/tools/editText.d.ts +1 -0
  471. package/dist/tools/editText.js +2 -1
  472. package/dist/tools/editText.js.map +1 -1
  473. package/dist/tools/enrichCommit.d.ts +1 -0
  474. package/dist/tools/enrichStackTrace.js +11 -5
  475. package/dist/tools/enrichStackTrace.js.map +1 -1
  476. package/dist/tools/explainDiagnostic.d.ts +1 -0
  477. package/dist/tools/explainSymbol.d.ts +1 -0
  478. package/dist/tools/fileOperations.d.ts +3 -0
  479. package/dist/tools/fileOperations.js +2 -1
  480. package/dist/tools/fileOperations.js.map +1 -1
  481. package/dist/tools/fileWatcher.d.ts +2 -0
  482. package/dist/tools/fileWatcher.js +8 -2
  483. package/dist/tools/fileWatcher.js.map +1 -1
  484. package/dist/tools/findFiles.d.ts +1 -0
  485. package/dist/tools/fixAllLintErrors.d.ts +1 -0
  486. package/dist/tools/fixAllLintErrors.js +10 -5
  487. package/dist/tools/fixAllLintErrors.js.map +1 -1
  488. package/dist/tools/foldingRanges.d.ts +1 -0
  489. package/dist/tools/formatDocument.d.ts +1 -0
  490. package/dist/tools/formatDocument.js +10 -5
  491. package/dist/tools/formatDocument.js.map +1 -1
  492. package/dist/tools/generateTests.d.ts +1 -0
  493. package/dist/tools/getAIComments.d.ts +1 -0
  494. package/dist/tools/getAnalyticsReport.js +5 -1
  495. package/dist/tools/getAnalyticsReport.js.map +1 -1
  496. package/dist/tools/getBufferContent.d.ts +1 -0
  497. package/dist/tools/getChangeImpact.d.ts +1 -0
  498. package/dist/tools/getChangeImpact.js +23 -14
  499. package/dist/tools/getChangeImpact.js.map +1 -1
  500. package/dist/tools/getClaudeTaskStatus.d.ts +1 -0
  501. package/dist/tools/getCodeCoverage.d.ts +1 -0
  502. package/dist/tools/getCodeCoverage.js +32 -14
  503. package/dist/tools/getCodeCoverage.js.map +1 -1
  504. package/dist/tools/getCommitsForIssue.d.ts +1 -0
  505. package/dist/tools/getDebugState.d.ts +1 -0
  506. package/dist/tools/getDiagnostics.js +32 -29
  507. package/dist/tools/getDiagnostics.js.map +1 -1
  508. package/dist/tools/getDiffFromHandoff.js +8 -2
  509. package/dist/tools/getDiffFromHandoff.js.map +1 -1
  510. package/dist/tools/getDocumentSymbols.d.ts +1 -0
  511. package/dist/tools/getGitHotspots.d.ts +1 -0
  512. package/dist/tools/getImportedSignatures.d.ts +1 -0
  513. package/dist/tools/getImportedSignatures.js +18 -14
  514. package/dist/tools/getImportedSignatures.js.map +1 -1
  515. package/dist/tools/getPRTemplate.d.ts +1 -0
  516. package/dist/tools/getProjectContext.js +23 -10
  517. package/dist/tools/getProjectContext.js.map +1 -1
  518. package/dist/tools/getSymbolHistory.d.ts +1 -0
  519. package/dist/tools/getToolCapabilities.d.ts +10 -5
  520. package/dist/tools/getToolCapabilities.js +79 -202
  521. package/dist/tools/getToolCapabilities.js.map +1 -1
  522. package/dist/tools/getTypeSignature.d.ts +1 -0
  523. package/dist/tools/getWorkspaceSettings.d.ts +1 -0
  524. package/dist/tools/gitWrite.d.ts +11 -0
  525. package/dist/tools/github/actions.d.ts +2 -0
  526. package/dist/tools/github/composite.d.ts +3 -0
  527. package/dist/tools/github/issues.d.ts +4 -0
  528. package/dist/tools/github/pr.d.ts +7 -0
  529. package/dist/tools/handoffNote.d.ts +1 -0
  530. package/dist/tools/handoffNote.js +2 -1
  531. package/dist/tools/handoffNote.js.map +1 -1
  532. package/dist/tools/headless/lspClient.js +3 -0
  533. package/dist/tools/headless/lspClient.js.map +1 -1
  534. package/dist/tools/hoverAtCursor.d.ts +1 -0
  535. package/dist/tools/httpClient.d.ts +2 -0
  536. package/dist/tools/httpClient.js +38 -71
  537. package/dist/tools/httpClient.js.map +1 -1
  538. package/dist/tools/inlayHints.d.ts +1 -0
  539. package/dist/tools/launchQuickTask.d.ts +1 -0
  540. package/dist/tools/listClaudeTasks.d.ts +1 -0
  541. package/dist/tools/listClaudeTasks.js +10 -8
  542. package/dist/tools/listClaudeTasks.js.map +1 -1
  543. package/dist/tools/listTerminals.d.ts +1 -0
  544. package/dist/tools/lsp.d.ts +15 -0
  545. package/dist/tools/lsp.js +17 -0
  546. package/dist/tools/lsp.js.map +1 -1
  547. package/dist/tools/navigateToSymbolByName.d.ts +1 -0
  548. package/dist/tools/openDiff.d.ts +1 -0
  549. package/dist/tools/openDiff.js +4 -1
  550. package/dist/tools/openDiff.js.map +1 -1
  551. package/dist/tools/openFile.d.ts +1 -0
  552. package/dist/tools/openFile.js +4 -1
  553. package/dist/tools/openFile.js.map +1 -1
  554. package/dist/tools/openInBrowser.js +6 -1
  555. package/dist/tools/openInBrowser.js.map +1 -1
  556. package/dist/tools/organizeImports.d.ts +1 -0
  557. package/dist/tools/organizeImports.js +5 -3
  558. package/dist/tools/organizeImports.js.map +1 -1
  559. package/dist/tools/performanceReport.js +5 -3
  560. package/dist/tools/performanceReport.js.map +1 -1
  561. package/dist/tools/planPersistence.d.ts +3 -0
  562. package/dist/tools/planPersistence.js +4 -1
  563. package/dist/tools/planPersistence.js.map +1 -1
  564. package/dist/tools/previewEdit.d.ts +1 -0
  565. package/dist/tools/previewEdit.js +15 -4
  566. package/dist/tools/previewEdit.js.map +1 -1
  567. package/dist/tools/recentTracesDigest.js +54 -11
  568. package/dist/tools/recentTracesDigest.js.map +1 -1
  569. package/dist/tools/refactorAnalyze.d.ts +1 -0
  570. package/dist/tools/refactorExtractFunction.js +4 -1
  571. package/dist/tools/refactorExtractFunction.js.map +1 -1
  572. package/dist/tools/refactorPreview.d.ts +1 -0
  573. package/dist/tools/refactorPreview.js +10 -2
  574. package/dist/tools/refactorPreview.js.map +1 -1
  575. package/dist/tools/replaceBlock.d.ts +1 -0
  576. package/dist/tools/replaceBlock.js +2 -1
  577. package/dist/tools/replaceBlock.js.map +1 -1
  578. package/dist/tools/resumeClaudeTask.d.ts +1 -0
  579. package/dist/tools/runClaudeTask.d.ts +1 -0
  580. package/dist/tools/runTests.js +15 -4
  581. package/dist/tools/runTests.js.map +1 -1
  582. package/dist/tools/screenshot.d.ts +1 -0
  583. package/dist/tools/screenshotAndAnnotate.js +6 -2
  584. package/dist/tools/screenshotAndAnnotate.js.map +1 -1
  585. package/dist/tools/searchAndReplace.d.ts +1 -0
  586. package/dist/tools/searchAndReplace.js +17 -7
  587. package/dist/tools/searchAndReplace.js.map +1 -1
  588. package/dist/tools/searchTools.js +20 -19
  589. package/dist/tools/searchTools.js.map +1 -1
  590. package/dist/tools/searchWorkspace.d.ts +1 -0
  591. package/dist/tools/selectionRanges.d.ts +1 -0
  592. package/dist/tools/semanticTokens.d.ts +1 -0
  593. package/dist/tools/signatureHelp.d.ts +1 -0
  594. package/dist/tools/spawnWorkspace.js +15 -7
  595. package/dist/tools/spawnWorkspace.js.map +1 -1
  596. package/dist/tools/terminal.d.ts +6 -0
  597. package/dist/tools/testRunners/pytest.js +6 -2
  598. package/dist/tools/testRunners/pytest.js.map +1 -1
  599. package/dist/tools/testRunners/vitestJest.js +3 -1
  600. package/dist/tools/testRunners/vitestJest.js.map +1 -1
  601. package/dist/tools/testTraceToSource.d.ts +1 -0
  602. package/dist/tools/transaction.d.ts +4 -0
  603. package/dist/tools/transaction.js +4 -1
  604. package/dist/tools/transaction.js.map +1 -1
  605. package/dist/tools/typeHierarchy.d.ts +1 -0
  606. package/dist/tools/utils.d.ts +18 -0
  607. package/dist/tools/utils.js +103 -18
  608. package/dist/tools/utils.js.map +1 -1
  609. package/dist/tools/vscodeCommands.d.ts +2 -0
  610. package/dist/tools/vscodeTasks.d.ts +2 -0
  611. package/dist/tools/workspaceSettings.d.ts +1 -0
  612. package/dist/transport.d.ts +3 -1
  613. package/dist/transport.js +103 -52
  614. package/dist/transport.js.map +1 -1
  615. package/dist/winShim.d.ts +34 -0
  616. package/dist/winShim.js +94 -0
  617. package/dist/winShim.js.map +1 -0
  618. package/dist/wireHaltPushDispatch.d.ts +38 -0
  619. package/dist/wireHaltPushDispatch.js +71 -0
  620. package/dist/wireHaltPushDispatch.js.map +1 -0
  621. package/dist/writeFileAtomic.d.ts +23 -0
  622. package/dist/writeFileAtomic.js +121 -0
  623. package/dist/writeFileAtomic.js.map +1 -0
  624. package/package.json +23 -7
  625. package/scripts/postinstall.mjs +42 -2
  626. package/scripts/smoke/run-all.mjs +213 -0
  627. package/scripts/start-all.mjs +572 -0
  628. package/scripts/start-all.ps1 +209 -0
  629. package/scripts/start-all.sh +73 -17
  630. package/scripts/start-orchestrator.ps1 +158 -0
  631. package/scripts/start-remote.mjs +122 -0
  632. package/templates/automation-policies/recipe-authoring.json +1 -1
  633. package/templates/automation-policies/security-first.json +1 -1
  634. package/templates/automation-policies/strict-lint.json +1 -1
  635. package/templates/automation-policies/test-driven.json +1 -1
  636. package/templates/automation-policy.example.json +1 -1
  637. package/templates/co.patchwork-os.bridge.plist +2 -2
  638. package/templates/recipes/approval-queue-ui-test.yaml +1 -1
  639. package/templates/recipes/ctx-loop-test.yaml +1 -1
  640. package/templates/recipes/fix-errors-on-save.yaml +71 -0
  641. package/templates/recipes/morning-brief.yaml +5 -2
  642. package/templates/recipes/project-health-check.yaml +4 -1
  643. package/templates/recipes/sentry-to-linear.yaml +72 -38
  644. package/templates/recipes/webhook/apple-watch-health-log.yaml +145 -0
  645. package/templates/recipes/webhook/customer-escalation.yaml +8 -9
  646. package/templates/recipes/webhook/meeting-prep.yaml +11 -5
  647. package/dist/commands/marketplace.d.ts +0 -16
  648. package/dist/commands/marketplace.js +0 -32
  649. package/dist/commands/marketplace.js.map +0 -1
  650. package/dist/recipes/legacyRecipeCompat.d.ts +0 -10
  651. package/dist/recipes/legacyRecipeCompat.js +0 -131
  652. package/dist/recipes/legacyRecipeCompat.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"activityAnalytics.js","sourceRoot":"","sources":["../../src/fp/activityAnalytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activityAnalytics.js","sourceRoot":"","sources":["../../src/fp/activityAnalytics.ts"],"names":[],"mappings":"AAMA,2FAA2F;AAC3F,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,MAAM,UAAU,YAAY,CAC1B,OAAiC;IAEjC,MAAM,GAAG,GAAG,IAAI,GAAG,EAGhB,CAAC;IACJ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;YAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3C,CAAC;IACD,MAAM,MAAM,GAGR,EAAE,CAAC;IACP,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;YAC9C,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iEAAiE;AACjE,SAAS,eAAe,CAAC,MAAgB,EAAE,GAAW;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA+C;IAK/C,MAAM,MAAM,GAGR,EAAE,CAAC;IACP,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC7B,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAChC,GAAG,EAAE,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAChC,GAAG,EAAE,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAChC,WAAW,EAAE,MAAM,CAAC,MAAM;SAC3B,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAiC,EACjC,QAAgB,EAChB,QAAQ,GAAG,EAAE;IAEb,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACzB,wFAAwF;IACxF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,QAAQ;gBAAE,MAAM;YAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;gBAAE,SAAS;YAChC,MAAM,GAAG,GACP,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAClE,IAAI,MAAM,CAAC,IAAI,IAAI,qBAAqB;gBAAE,SAAS,CAAC,wBAAwB;YAC5E,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,MAAM,GAA2C,EAAE,CAAC;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAiC,EACjC,QAAgB,EAChB,GAAW;IAEX,MAAM,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAGhB,CAAC;IACJ,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM;YAAE,MAAM;QAC5C,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC;QAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,MAAM,GAGR,EAAE,CAAC;IACP,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,aAAa,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -10,6 +10,12 @@ import { type ToolResult } from "./result.js";
10
10
  /**
11
11
  * Returns true if `value` matches the condition pattern.
12
12
  * Negation via "!" prefix. Missing pattern → always true.
13
+ *
14
+ * On Windows, file paths arrive as `C:\Users\foo\src\bar.ts` while users
15
+ * write POSIX-style globs (`src/**\/*.ts`). minimatch is strict on `/` and
16
+ * NTFS is case-insensitive, so without normalisation onFileSave/onFileChanged
17
+ * hooks silently never fire on Windows. Normalise backslashes to forward
18
+ * slashes on both sides and pass `nocase` on win32.
13
19
  */
14
20
  export declare function matchesCondition(pattern: string | undefined, value: string): boolean;
15
21
  /**
@@ -25,7 +31,13 @@ export declare function primaryValue(hookType: HookType, eventData: Readonly<Rec
25
31
  * Resolve a PromptSourceNode to a string.
26
32
  * For named prompts, calls getPrompt() and concatenates user messages.
27
33
  * Returns null if a named prompt cannot be resolved (unknown name / missing args).
34
+ *
35
+ * When `source.kind === "none"`, returns the symbol `NO_PROMPT` so callers
36
+ * can distinguish "no inline prompt configured" (webhook-only hook) from
37
+ * "named prompt failed to resolve" (skip silently).
28
38
  */
39
+ export declare const NO_PROMPT: unique symbol;
40
+ export type ResolvedPrompt = string | null | typeof NO_PROMPT;
29
41
  export declare function resolvePromptSource(source: {
30
42
  kind: "inline";
31
43
  prompt: string;
@@ -33,5 +45,7 @@ export declare function resolvePromptSource(source: {
33
45
  kind: "named";
34
46
  promptName: string;
35
47
  promptArgs?: Record<string, string>;
36
- }, eventData: Readonly<Record<string, string>>): string | null;
48
+ } | {
49
+ kind: "none";
50
+ }, eventData: Readonly<Record<string, string>>): ResolvedPrompt;
37
51
  export declare function executeAutomationPolicy(programs: AutomationProgram[], ctx: InterpreterContext): Promise<ToolResult<InterpreterResult>>;
@@ -6,9 +6,47 @@
6
6
  import crypto from "node:crypto";
7
7
  import { minimatch } from "minimatch";
8
8
  import { getPrompt } from "../prompts.js";
9
- import { clearPendingRetry, isDeduped, isOnCooldown, recordDedup, recordPendingRetry, recordTrigger, tasksInLastHour, } from "./automationState.js";
9
+ import { clearPendingRetry, isDeduped, isOnCooldown, recordDedup, recordPendingRetry, recordTrigger, recordWebhookFired, tasksInLastHour, } from "./automationState.js";
10
10
  import { buildHookMetadata, truncatePrompt, untrustedBlock, } from "./automationUtils.js";
11
11
  import { err, ok } from "./result.js";
12
+ const PLACEHOLDER_KEYS = [
13
+ "file",
14
+ "branch",
15
+ "runner",
16
+ "taskId",
17
+ "output",
18
+ "tool",
19
+ "reason",
20
+ "cwd",
21
+ "prompt",
22
+ "hash",
23
+ "message",
24
+ "files",
25
+ "count",
26
+ "remote",
27
+ "failed",
28
+ "passed",
29
+ "total",
30
+ "failures",
31
+ "sessionName",
32
+ "sessionType",
33
+ "breakpointCount",
34
+ "activeFile",
35
+ "previousBranch",
36
+ "created",
37
+ "url",
38
+ "number",
39
+ "title",
40
+ "diagnostics",
41
+ ];
42
+ const MULTI_LINE_KEYS = new Set(["diagnostics", "failures", "files", "output"]);
43
+ const PLACEHOLDER_DISPLAY = new Map(PLACEHOLDER_KEYS.map((k) => [
44
+ k,
45
+ k
46
+ .toUpperCase()
47
+ .replace(/[^A-Z0-9]/g, " ")
48
+ .trim(),
49
+ ]));
12
50
  function emptyAcc(state) {
13
51
  return { taskIds: [], skipped: [], errors: [], state };
14
52
  }
@@ -16,15 +54,28 @@ function emptyAcc(state) {
16
54
  /**
17
55
  * Returns true if `value` matches the condition pattern.
18
56
  * Negation via "!" prefix. Missing pattern → always true.
57
+ *
58
+ * On Windows, file paths arrive as `C:\Users\foo\src\bar.ts` while users
59
+ * write POSIX-style globs (`src/**\/*.ts`). minimatch is strict on `/` and
60
+ * NTFS is case-insensitive, so without normalisation onFileSave/onFileChanged
61
+ * hooks silently never fire on Windows. Normalise backslashes to forward
62
+ * slashes on both sides and pass `nocase` on win32.
19
63
  */
20
64
  export function matchesCondition(pattern, value) {
21
65
  if (pattern === undefined || pattern === "")
22
66
  return true;
67
+ const isWin = process.platform === "win32";
68
+ const normValue = isWin ? value.replace(/\\/g, "/") : value;
69
+ const opts = isWin ? { dot: true, nocase: true } : { dot: true };
23
70
  try {
24
71
  if (pattern.startsWith("!")) {
25
- return !minimatch(value, pattern.slice(1), { dot: true });
72
+ const inner = isWin
73
+ ? pattern.slice(1).replace(/\\/g, "/")
74
+ : pattern.slice(1);
75
+ return !minimatch(normValue, inner, opts);
26
76
  }
27
- return minimatch(value, pattern, { dot: true });
77
+ const normPattern = isWin ? pattern.replace(/\\/g, "/") : pattern;
78
+ return minimatch(normValue, normPattern, opts);
28
79
  }
29
80
  catch {
30
81
  return false;
@@ -126,8 +177,15 @@ export function primaryValue(hookType, eventData) {
126
177
  * Resolve a PromptSourceNode to a string.
127
178
  * For named prompts, calls getPrompt() and concatenates user messages.
128
179
  * Returns null if a named prompt cannot be resolved (unknown name / missing args).
180
+ *
181
+ * When `source.kind === "none"`, returns the symbol `NO_PROMPT` so callers
182
+ * can distinguish "no inline prompt configured" (webhook-only hook) from
183
+ * "named prompt failed to resolve" (skip silently).
129
184
  */
185
+ export const NO_PROMPT = Symbol("no-prompt");
130
186
  export function resolvePromptSource(source, eventData) {
187
+ if (source.kind === "none")
188
+ return NO_PROMPT;
131
189
  if (source.kind === "inline")
132
190
  return source.prompt;
133
191
  // Substitute event placeholders into promptArgs values
@@ -141,10 +199,12 @@ export function resolvePromptSource(source, eventData) {
141
199
  const result = getPrompt(source.promptName, resolvedArgs);
142
200
  if (!result)
143
201
  return null;
144
- const text = result.messages
145
- .filter((m) => m.role === "user")
146
- .map((m) => m.content.text)
147
- .join("\n\n");
202
+ const parts = [];
203
+ for (const m of result.messages) {
204
+ if (m.role === "user")
205
+ parts.push(m.content.text);
206
+ }
207
+ const text = parts.join("\n\n");
148
208
  return truncatePrompt(text);
149
209
  }
150
210
  /**
@@ -153,44 +213,6 @@ export function resolvePromptSource(source, eventData) {
153
213
  function buildFinalPrompt(promptTemplate, hookType, eventData, nonce) {
154
214
  const file = eventData.file;
155
215
  const meta = buildHookMetadata(hookType, new Date().toISOString(), file);
156
- // Replace placeholders with untrusted-wrapped values
157
- const PLACEHOLDER_KEYS = [
158
- "file",
159
- "branch",
160
- "runner",
161
- "taskId",
162
- "output",
163
- "tool",
164
- "reason",
165
- "cwd",
166
- "prompt",
167
- "hash",
168
- "message",
169
- "files",
170
- "count",
171
- "remote",
172
- "failed",
173
- "passed",
174
- "total",
175
- "failures",
176
- "sessionName",
177
- "sessionType",
178
- "breakpointCount",
179
- "activeFile",
180
- "previousBranch",
181
- "created",
182
- "url",
183
- "number",
184
- "title",
185
- "diagnostics",
186
- ];
187
- // Keys that carry pre-formatted multi-line output — higher truncation limit
188
- const MULTI_LINE_KEYS = new Set([
189
- "diagnostics",
190
- "failures",
191
- "files",
192
- "output",
193
- ]);
194
216
  let resolved = promptTemplate;
195
217
  for (const key of PLACEHOLDER_KEYS) {
196
218
  const val = eventData[key];
@@ -198,10 +220,7 @@ function buildFinalPrompt(promptTemplate, hookType, eventData, nonce) {
198
220
  // Truncate user-controlled values at 500 chars (10 000 for structured multi-line outputs)
199
221
  const limit = MULTI_LINE_KEYS.has(key) ? 10_000 : 500;
200
222
  const truncatedVal = val.replace(/[\x00-\x1F\x7F]/g, "").slice(0, limit);
201
- resolved = resolved.split(`{{${key}}}`).join(untrustedBlock(key
202
- .toUpperCase()
203
- .replace(/[^A-Z0-9]/g, " ")
204
- .trim(), truncatedVal, nonce));
223
+ resolved = resolved.replaceAll(`{{${key}}}`, untrustedBlock(PLACEHOLDER_DISPLAY.get(key) ?? key.toUpperCase(), truncatedVal, nonce));
205
224
  }
206
225
  }
207
226
  return truncatePrompt(meta + resolved);
@@ -311,33 +330,98 @@ async function interpret(program, ctx, acc) {
311
330
  ],
312
331
  };
313
332
  }
314
- const nonce = crypto.randomBytes(8).toString("hex");
315
- const finalPrompt = buildFinalPrompt(promptTemplate, program.hookType, ctx.eventData, nonce);
316
- try {
317
- const taskId = await ctx.backend.enqueueTask({
318
- prompt: finalPrompt,
319
- triggerSource: program.hookType,
320
- sessionId: "",
321
- isAutomationTask: true,
322
- model: program.model,
323
- effort: program.effort,
324
- systemPrompt: program.systemPrompt,
325
- });
326
- const newState = recordTrigger(acc.state, program.hookType, taskId, ctx.now);
327
- return {
328
- ...acc,
329
- taskIds: [...acc.taskIds, taskId],
330
- state: newState,
331
- };
333
+ // When promptTemplate is a string, enqueue a Claude task. When it is
334
+ // NO_PROMPT, the hook is webhook-only — skip the enqueue but still
335
+ // proceed to webhook fan-out below. A webhook-only hook still records
336
+ // a trigger in state so cooldown gating can observe its firing.
337
+ let working = acc;
338
+ if (promptTemplate !== NO_PROMPT) {
339
+ const nonce = crypto.randomBytes(8).toString("hex");
340
+ const finalPrompt = buildFinalPrompt(promptTemplate, program.hookType, ctx.eventData, nonce);
341
+ try {
342
+ const taskId = await ctx.backend.enqueueTask({
343
+ prompt: finalPrompt,
344
+ triggerSource: program.hookType,
345
+ sessionId: "",
346
+ isAutomationTask: true,
347
+ model: program.model,
348
+ effort: program.effort,
349
+ systemPrompt: program.systemPrompt,
350
+ });
351
+ const newState = recordTrigger(working.state, program.hookType, taskId, ctx.now);
352
+ working = {
353
+ ...working,
354
+ taskIds: [...working.taskIds, taskId],
355
+ state: newState,
356
+ };
357
+ }
358
+ catch (e) {
359
+ const message = e instanceof Error ? e.message : String(e);
360
+ ctx.log(`[interpreter] hook ${program.hookType} enqueue failed: ${message}`);
361
+ return {
362
+ ...working,
363
+ errors: [...working.errors, { message, hook: program.hookType }],
364
+ };
365
+ }
332
366
  }
333
- catch (e) {
334
- const message = e instanceof Error ? e.message : String(e);
335
- ctx.log(`[interpreter] hook ${program.hookType} enqueue failed: ${message}`);
336
- return {
337
- ...acc,
338
- errors: [...acc.errors, { message, hook: program.hookType }],
367
+ // Webhook fan-out — runs AFTER the inline prompt enqueue (if any).
368
+ // Failures are recorded as interpreter errors and do not throw, so
369
+ // other hooks in the same run continue to fire. Always records
370
+ // `lastWebhookFiredAt` regardless of HTTP outcome — operators
371
+ // debugging webhook delivery want "we attempted X" telemetry.
372
+ if (program.webhook) {
373
+ const phase = program.hookType === "onPreCompact"
374
+ ? "pre"
375
+ : program.hookType === "onPostCompact"
376
+ ? "post"
377
+ : undefined;
378
+ const body = {
379
+ hookType: program.hookType,
380
+ timestamp: ctx.now,
381
+ ...ctx.eventData,
339
382
  };
383
+ if (phase)
384
+ body.phase = phase;
385
+ try {
386
+ const result = await ctx.backend.postWebhook({
387
+ url: program.webhook.url,
388
+ method: program.webhook.method ?? "POST",
389
+ headers: program.webhook.headers ?? {},
390
+ body,
391
+ hookKey: program.hookType,
392
+ });
393
+ working = {
394
+ ...working,
395
+ state: recordWebhookFired(working.state, program.hookType, ctx.now),
396
+ };
397
+ if (!result.ok) {
398
+ const message = `webhook fan-out failed: ${result.error ?? "unknown"}${result.status !== undefined ? ` (status=${result.status})` : ""}`;
399
+ ctx.log(`[interpreter] hook ${program.hookType} ${message}`);
400
+ working = {
401
+ ...working,
402
+ errors: [...working.errors, { message, hook: program.hookType }],
403
+ };
404
+ }
405
+ }
406
+ catch (e) {
407
+ // Defensive: postWebhook contract is "never rejects", but a buggy
408
+ // backend could still throw. Log + record but do not propagate.
409
+ const message = e instanceof Error ? e.message : String(e);
410
+ ctx.log(`[interpreter] hook ${program.hookType} webhook threw: ${message}`);
411
+ working = {
412
+ ...working,
413
+ state: recordWebhookFired(working.state, program.hookType, ctx.now),
414
+ errors: [
415
+ ...working.errors,
416
+ {
417
+ message: `webhook fan-out threw: ${message}`,
418
+ hook: program.hookType,
419
+ },
420
+ ],
421
+ };
422
+ }
340
423
  }
424
+ return working;
341
425
  }
342
426
  case "Sequence": {
343
427
  let current = acc;
@@ -392,13 +476,32 @@ async function interpret(program, ctx, acc) {
392
476
  };
393
477
  }
394
478
  const innerAcc = await interpret(program.program, ctx, acc);
395
- // If we produced new task IDs, record the cooldown trigger
479
+ // If we produced new task IDs, record the cooldown trigger.
480
+ // For webhook-only hooks (kind: "none") no taskId is produced, but the
481
+ // webhook firing still counts as a trigger — detected via a delta in
482
+ // `lastWebhookFiredAt`. Without this branch, cooldowns never apply to
483
+ // webhook-only hooks, defeating the cooldown gate the operator
484
+ // configured.
396
485
  const newTaskIds = innerAcc.taskIds.slice(acc.taskIds.length);
486
+ let webhookFired = innerAcc.state.lastWebhookFiredAt.size >
487
+ acc.state.lastWebhookFiredAt.size;
488
+ if (!webhookFired) {
489
+ for (const [k, v] of innerAcc.state.lastWebhookFiredAt) {
490
+ if ((acc.state.lastWebhookFiredAt.get(k) ?? -1) < v) {
491
+ webhookFired = true;
492
+ break;
493
+ }
494
+ }
495
+ }
397
496
  if (newTaskIds.length > 0) {
398
497
  const lastTaskId = newTaskIds[newTaskIds.length - 1] ?? "";
399
498
  const newState = recordTrigger(innerAcc.state, program.key, lastTaskId, ctx.now);
400
499
  return { ...innerAcc, state: newState };
401
500
  }
501
+ if (webhookFired) {
502
+ const newState = recordTrigger(innerAcc.state, program.key, "webhook", ctx.now);
503
+ return { ...innerAcc, state: newState };
504
+ }
402
505
  return innerAcc;
403
506
  }
404
507
  case "WithDedup": {
@@ -451,28 +554,60 @@ async function interpret(program, ctx, acc) {
451
554
  if (attempt < program.maxRetries) {
452
555
  const nextAttempt = attempt + 1;
453
556
  const nextRetryAt = ctx.now + program.retryDelayMs;
454
- // Schedule retry: re-invoke the wrapped program when the timer
455
- // fires. State is a snapshot of when the retry was scheduled; for
456
- // typical retryDelayMs (seconds) drift is negligible. TestBackend
457
- // records the call but does not actually fire the timer.
557
+ // Schedule retry: re-run the wrapped program when the timer
558
+ // fires. The work runs INSIDE AutomationHooks' mutation lock
559
+ // (`runRetryUnderLock`) so:
560
+ // 1. Read of live state is atomic w.r.t. concurrent _runInterpreter
561
+ // calls — the retry sees their cooldown / dedup / rateLimit
562
+ // writes, can't clobber them.
563
+ // 2. Write of post-retry state is atomic w.r.t. the same chain,
564
+ // so the retry's effects can't be lost to a concurrent run
565
+ // that started between scheduling and merge.
566
+ // 3. `clearPendingRetry` is in a try/finally so the
567
+ // pendingRetries entry is dropped even if the inner
568
+ // interpret() throws (otherwise the retry leaks the entry
569
+ // forever).
570
+ //
571
+ // TestBackend records the call but does not actually fire the timer.
572
+ // Tests that exercise retry dispatch synchronously override
573
+ // `scheduleRetry`.
458
574
  const wrappedProgram = program.program;
459
575
  const retrySnapshot = innerAcc.state;
576
+ const liveStateFn = ctx.getLiveState;
577
+ const runUnderLock = ctx.runRetryUnderLock;
460
578
  ctx.backend.scheduleRetry(program.key, program.retryDelayMs, () => {
461
579
  ctx.log(`[interpreter] retry attempt ${nextAttempt} for ${program.key}`);
462
- void (async () => {
580
+ const doRetry = async (live) => {
463
581
  try {
464
582
  const retryCtx = {
465
583
  ...ctx,
466
- state: retrySnapshot,
584
+ state: live,
467
585
  now: Date.now(),
468
586
  };
469
- await interpret(wrappedProgram, retryCtx, emptyAcc(retrySnapshot));
587
+ const retryResult = await interpret(wrappedProgram, retryCtx, emptyAcc(live));
588
+ return clearPendingRetry(retryResult.state, program.key);
470
589
  }
471
590
  catch (e) {
472
591
  const m = e instanceof Error ? e.message : String(e);
473
592
  ctx.log(`[interpreter] retry ${program.key} failed: ${m}`);
593
+ // Drop the pending entry even on error — leaving it would
594
+ // make `pendingRetries.get(key)` look truthy forever.
595
+ return clearPendingRetry(live, program.key);
474
596
  }
475
- })();
597
+ };
598
+ if (runUnderLock) {
599
+ runUnderLock(doRetry);
600
+ }
601
+ else {
602
+ // Fallback for tests that didn't supply a lock executor:
603
+ // run against the snapshot (or live read if available),
604
+ // discard result. Not atomic, but tests don't observe the
605
+ // chain anyway.
606
+ void (async () => {
607
+ const seed = liveStateFn ? liveStateFn() : retrySnapshot;
608
+ await doRetry(seed);
609
+ })();
610
+ }
476
611
  });
477
612
  const newState = recordPendingRetry(innerAcc.state, program.key, nextAttempt, nextRetryAt, "");
478
613
  return { ...innerAcc, state: newState };
@@ -1 +1 @@
1
- {"version":3,"file":"automationInterpreter.js","sourceRoot":"","sources":["../../src/fp/automationInterpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automationInterpreter.js","sourceRoot":"","sources":["../../src/fp/automationInterpreter.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,14 @@ export type PromptSourceNode = {
12
12
  readonly kind: "named";
13
13
  readonly promptName: string;
14
14
  readonly promptArgs?: Record<string, string>;
15
+ }
16
+ /**
17
+ * Webhook-only hook entry — no inline prompt, no task enqueue. The hook
18
+ * still flows through cooldown/dedup/rateLimit gates and fires its
19
+ * `webhook` (if configured) on the success path.
20
+ */
21
+ | {
22
+ readonly kind: "none";
15
23
  };
16
24
  export interface WhenCondition {
17
25
  readonly minDiagnosticCount?: number;
@@ -34,6 +42,22 @@ export interface TestRunExtras {
34
42
  export type HookExtras = DiagnosticsErrorExtras | TestRunExtras | {
35
43
  readonly kind: "none";
36
44
  };
45
+ /**
46
+ * Outbound webhook configuration for an automation hook.
47
+ *
48
+ * When attached to a HookNode, the interpreter POSTs (or sends via the chosen
49
+ * method) a JSON body to `url` AFTER any inline prompt has been enqueued. The
50
+ * body shape is `{ phase, timestamp, hookType, ...eventData }` for v1.
51
+ *
52
+ * Failure modes (timeout, non-2xx, network error) are recorded and logged
53
+ * via the Backend, never thrown — webhook fan-out is always best-effort and
54
+ * does not block other hooks or the prompt enqueue.
55
+ */
56
+ export interface WebhookConfig {
57
+ readonly url: string;
58
+ readonly method?: "POST" | "PUT" | "PATCH";
59
+ readonly headers?: Readonly<Record<string, string>>;
60
+ }
37
61
  export interface HookNode {
38
62
  readonly _tag: "Hook";
39
63
  readonly hookType: HookType;
@@ -46,6 +70,12 @@ export interface HookNode {
46
70
  readonly effort?: "low" | "medium" | "high" | "max";
47
71
  readonly systemPrompt?: string;
48
72
  readonly extras?: HookExtras;
73
+ /**
74
+ * Optional outbound webhook fired AFTER the inline prompt enqueue. Wired
75
+ * for `onCompaction` (onPreCompact/onPostCompact) only in v1; other hook
76
+ * types may opt in later by widening the parser. See ADR-0009.
77
+ */
78
+ readonly webhook?: WebhookConfig;
49
79
  }
50
80
  export interface SequenceNode {
51
81
  readonly _tag: "Sequence";
@@ -1 +1 @@
1
- {"version":3,"file":"automationProgram.js","sourceRoot":"","sources":["../../src/fp/automationProgram.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkIH,iFAAiF;AAEjF,MAAM,UAAU,IAAI,CAAC,MAA8B;IACjD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAsC;IAC7D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAsC;IAC7D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,GAAW,EACX,UAAkB,EAClB,OAA0B;IAE1B,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,GAAW,EACX,UAAkB,EAClB,OAA0B;IAE1B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,OAA0B;IAE1B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,GAAW,EACX,UAAkB,EAClB,YAAoB,EACpB,OAA0B;IAE1B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"automationProgram.js","sourceRoot":"","sources":["../../src/fp/automationProgram.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiKH,iFAAiF;AAEjF,MAAM,UAAU,IAAI,CAAC,MAA8B;IACjD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAsC;IAC7D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAsC;IAC7D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,GAAW,EACX,UAAkB,EAClB,OAA0B;IAE1B,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,GAAW,EACX,UAAkB,EAClB,OAA0B;IAE1B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,OAA0B;IAE1B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,GAAW,EACX,UAAkB,EAClB,YAAoB,EACpB,OAA0B;IAE1B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACvE,CAAC"}