patchwork-os 0.2.0-beta.1 → 0.2.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.bridge.md +5 -5
  2. package/README.md +156 -12
  3. package/deploy/deploy-dashboard.sh +25 -1
  4. package/deploy/macos/README.md +153 -0
  5. package/deploy/macos/com.patchwork.bridge.plist.template +54 -0
  6. package/deploy/macos/com.patchwork.tunnel.plist.template +76 -0
  7. package/deploy/macos/install-mac-bridge.sh +244 -0
  8. package/deploy/macos/uninstall-mac-bridge.sh +22 -0
  9. package/dist/activityLog.d.ts +6 -0
  10. package/dist/activityLog.js +8 -0
  11. package/dist/activityLog.js.map +1 -1
  12. package/dist/analyticsPrefs.d.ts +35 -2
  13. package/dist/analyticsPrefs.js +120 -21
  14. package/dist/analyticsPrefs.js.map +1 -1
  15. package/dist/analyticsSend.js +5 -1
  16. package/dist/analyticsSend.js.map +1 -1
  17. package/dist/approvalHttp.d.ts +14 -0
  18. package/dist/approvalHttp.js +172 -1
  19. package/dist/approvalHttp.js.map +1 -1
  20. package/dist/approvalQueue.d.ts +27 -2
  21. package/dist/approvalQueue.js +44 -7
  22. package/dist/approvalQueue.js.map +1 -1
  23. package/dist/automation.d.ts +34 -3
  24. package/dist/automation.js +85 -10
  25. package/dist/automation.js.map +1 -1
  26. package/dist/bridge.d.ts +2 -0
  27. package/dist/bridge.js +114 -8
  28. package/dist/bridge.js.map +1 -1
  29. package/dist/bridgeLockDiscovery.d.ts +27 -1
  30. package/dist/bridgeLockDiscovery.js +37 -11
  31. package/dist/bridgeLockDiscovery.js.map +1 -1
  32. package/dist/claudeOrchestrator.js +5 -2
  33. package/dist/claudeOrchestrator.js.map +1 -1
  34. package/dist/commands/patchworkInit.d.ts +5 -0
  35. package/dist/commands/patchworkInit.js +86 -7
  36. package/dist/commands/patchworkInit.js.map +1 -1
  37. package/dist/commands/recipe.d.ts +51 -0
  38. package/dist/commands/recipe.js +363 -3
  39. package/dist/commands/recipe.js.map +1 -1
  40. package/dist/commands/recipeInstall.js +6 -3
  41. package/dist/commands/recipeInstall.js.map +1 -1
  42. package/dist/commands/task.js +2 -2
  43. package/dist/commands/task.js.map +1 -1
  44. package/dist/config.d.ts +17 -2
  45. package/dist/config.js +54 -17
  46. package/dist/config.js.map +1 -1
  47. package/dist/connectors/baseConnector.js +25 -3
  48. package/dist/connectors/baseConnector.js.map +1 -1
  49. package/dist/connectors/tokenStorage.js +46 -10
  50. package/dist/connectors/tokenStorage.js.map +1 -1
  51. package/dist/drivers/gemini/index.d.ts +22 -0
  52. package/dist/drivers/gemini/index.js +240 -129
  53. package/dist/drivers/gemini/index.js.map +1 -1
  54. package/dist/drivers/local/index.d.ts +17 -0
  55. package/dist/drivers/local/index.js +99 -0
  56. package/dist/drivers/local/index.js.map +1 -1
  57. package/dist/drivers/openai/index.js +30 -2
  58. package/dist/drivers/openai/index.js.map +1 -1
  59. package/dist/extensionClient.d.ts +8 -0
  60. package/dist/extensionClient.js +24 -2
  61. package/dist/extensionClient.js.map +1 -1
  62. package/dist/featureFlags.d.ts +76 -0
  63. package/dist/featureFlags.js +166 -2
  64. package/dist/featureFlags.js.map +1 -1
  65. package/dist/fp/automationInterpreter.d.ts +9 -1
  66. package/dist/fp/automationInterpreter.js +151 -34
  67. package/dist/fp/automationInterpreter.js.map +1 -1
  68. package/dist/fp/automationProgram.d.ts +30 -0
  69. package/dist/fp/automationProgram.js.map +1 -1
  70. package/dist/fp/automationState.d.ts +23 -4
  71. package/dist/fp/automationState.js +28 -4
  72. package/dist/fp/automationState.js.map +1 -1
  73. package/dist/fp/interpreterContext.d.ts +66 -1
  74. package/dist/fp/interpreterContext.js +140 -1
  75. package/dist/fp/interpreterContext.js.map +1 -1
  76. package/dist/fp/policyParser.js +29 -1
  77. package/dist/fp/policyParser.js.map +1 -1
  78. package/dist/index.js +765 -69
  79. package/dist/index.js.map +1 -1
  80. package/dist/lockfile.js +4 -1
  81. package/dist/lockfile.js.map +1 -1
  82. package/dist/oauth.d.ts +9 -0
  83. package/dist/oauth.js +33 -0
  84. package/dist/oauth.js.map +1 -1
  85. package/dist/patchworkConfig.d.ts +16 -0
  86. package/dist/patchworkConfig.js +5 -0
  87. package/dist/patchworkConfig.js.map +1 -1
  88. package/dist/recipeOrchestration.js +35 -1
  89. package/dist/recipeOrchestration.js.map +1 -1
  90. package/dist/recipeRoutes.d.ts +36 -0
  91. package/dist/recipeRoutes.js +231 -32
  92. package/dist/recipeRoutes.js.map +1 -1
  93. package/dist/recipes/agentExecutor.d.ts +25 -5
  94. package/dist/recipes/agentExecutor.js.map +1 -1
  95. package/dist/recipes/chainedRunner.js +16 -2
  96. package/dist/recipes/chainedRunner.js.map +1 -1
  97. package/dist/recipes/connectorPreflight.d.ts +53 -0
  98. package/dist/recipes/connectorPreflight.js +79 -0
  99. package/dist/recipes/connectorPreflight.js.map +1 -0
  100. package/dist/recipes/githubInstallSource.d.ts +62 -0
  101. package/dist/recipes/githubInstallSource.js +125 -0
  102. package/dist/recipes/githubInstallSource.js.map +1 -0
  103. package/dist/recipes/haltCategory.d.ts +80 -0
  104. package/dist/recipes/haltCategory.js +125 -0
  105. package/dist/recipes/haltCategory.js.map +1 -0
  106. package/dist/recipes/idempotencyKey.d.ts +126 -0
  107. package/dist/recipes/idempotencyKey.js +298 -0
  108. package/dist/recipes/idempotencyKey.js.map +1 -0
  109. package/dist/recipes/judgeSummary.d.ts +50 -0
  110. package/dist/recipes/judgeSummary.js +47 -0
  111. package/dist/recipes/judgeSummary.js.map +1 -0
  112. package/dist/recipes/judgeVerdict.d.ts +48 -0
  113. package/dist/recipes/judgeVerdict.js +174 -0
  114. package/dist/recipes/judgeVerdict.js.map +1 -0
  115. package/dist/recipes/migrations/index.d.ts +9 -0
  116. package/dist/recipes/migrations/index.js +133 -0
  117. package/dist/recipes/migrations/index.js.map +1 -1
  118. package/dist/recipes/runBudget.d.ts +70 -0
  119. package/dist/recipes/runBudget.js +109 -0
  120. package/dist/recipes/runBudget.js.map +1 -0
  121. package/dist/recipes/scheduler.d.ts +7 -0
  122. package/dist/recipes/scheduler.js +31 -14
  123. package/dist/recipes/scheduler.js.map +1 -1
  124. package/dist/recipes/schema.d.ts +36 -0
  125. package/dist/recipes/toolRegistry.js +19 -0
  126. package/dist/recipes/toolRegistry.js.map +1 -1
  127. package/dist/recipes/tools/file.js +5 -2
  128. package/dist/recipes/tools/file.js.map +1 -1
  129. package/dist/recipes/tools/http.d.ts +10 -0
  130. package/dist/recipes/tools/http.js +176 -0
  131. package/dist/recipes/tools/http.js.map +1 -0
  132. package/dist/recipes/tools/index.d.ts +1 -0
  133. package/dist/recipes/tools/index.js +1 -0
  134. package/dist/recipes/tools/index.js.map +1 -1
  135. package/dist/recipes/validation.js +1 -1
  136. package/dist/recipes/validation.js.map +1 -1
  137. package/dist/recipes/yamlRunner.d.ts +88 -7
  138. package/dist/recipes/yamlRunner.js +216 -25
  139. package/dist/recipes/yamlRunner.js.map +1 -1
  140. package/dist/recipesHttp.d.ts +3 -1
  141. package/dist/recipesHttp.js +9 -3
  142. package/dist/recipesHttp.js.map +1 -1
  143. package/dist/runLog.d.ts +28 -0
  144. package/dist/runLog.js +5 -0
  145. package/dist/runLog.js.map +1 -1
  146. package/dist/server.d.ts +111 -1
  147. package/dist/server.js +480 -6
  148. package/dist/server.js.map +1 -1
  149. package/dist/streamableHttp.d.ts +9 -4
  150. package/dist/streamableHttp.js +34 -15
  151. package/dist/streamableHttp.js.map +1 -1
  152. package/dist/tools/bridgeDoctor.js +6 -2
  153. package/dist/tools/bridgeDoctor.js.map +1 -1
  154. package/dist/tools/ccRoutines.d.ts +221 -0
  155. package/dist/tools/ccRoutines.js +264 -0
  156. package/dist/tools/ccRoutines.js.map +1 -0
  157. package/dist/tools/getCodeCoverage.js +7 -3
  158. package/dist/tools/getCodeCoverage.js.map +1 -1
  159. package/dist/tools/index.js +6 -0
  160. package/dist/tools/index.js.map +1 -1
  161. package/dist/tools/openInBrowser.js +6 -1
  162. package/dist/tools/openInBrowser.js.map +1 -1
  163. package/dist/tools/recentTracesDigest.js +56 -11
  164. package/dist/tools/recentTracesDigest.js.map +1 -1
  165. package/dist/tools/testRunners/vitestJest.js +3 -1
  166. package/dist/tools/testRunners/vitestJest.js.map +1 -1
  167. package/dist/tools/utils.js +13 -7
  168. package/dist/tools/utils.js.map +1 -1
  169. package/package.json +16 -5
  170. package/scripts/postinstall.mjs +27 -0
  171. package/scripts/smoke/run-all.mjs +162 -0
  172. package/scripts/start-all.mjs +513 -0
  173. package/scripts/start-all.ps1 +209 -0
  174. package/scripts/start-all.sh +73 -17
  175. package/scripts/start-orchestrator.ps1 +158 -0
  176. package/scripts/start-remote.mjs +122 -0
  177. package/templates/automation-policies/recipe-authoring.json +1 -1
  178. package/templates/automation-policies/security-first.json +1 -1
  179. package/templates/automation-policies/strict-lint.json +1 -1
  180. package/templates/automation-policies/test-driven.json +1 -1
  181. package/templates/automation-policy.example.json +1 -1
  182. package/templates/co.patchwork-os.bridge.plist +1 -1
  183. package/templates/recipes/approval-queue-ui-test.yaml +1 -1
  184. package/templates/recipes/ctx-loop-test.yaml +1 -1
  185. package/templates/recipes/webhook/apple-watch-health-log.yaml +145 -0
  186. package/dist/commands/marketplace.d.ts +0 -16
  187. package/dist/commands/marketplace.js +0 -32
  188. package/dist/commands/marketplace.js.map +0 -1
  189. package/dist/recipes/legacyRecipeCompat.d.ts +0 -10
  190. package/dist/recipes/legacyRecipeCompat.js +0 -131
  191. package/dist/recipes/legacyRecipeCompat.js.map +0 -1
@@ -29,16 +29,20 @@ const MAX_PROMPT_NAME_CHARS = 64;
29
29
  /**
30
30
  * Validates that a hook config has exactly one of `prompt` (non-empty inline string)
31
31
  * or `promptName` (reference to a built-in MCP prompt), plus optional `promptArgs`.
32
+ * Hook configs that wire only a `webhook` are allowed to omit both prompt fields.
32
33
  * Throws a descriptive error on violation.
33
34
  */
34
35
  function validatePromptSource(hookName, cfg) {
35
36
  const hasPrompt = typeof cfg.prompt === "string" && cfg.prompt.trim() !== "";
36
37
  const hasPromptName = typeof cfg.promptName === "string" && cfg.promptName.trim() !== "";
38
+ const hasWebhook = cfg.webhook !== undefined &&
39
+ typeof cfg.webhook === "object" &&
40
+ cfg.webhook !== null;
37
41
  if (hasPrompt && hasPromptName) {
38
42
  throw new Error(`"${hookName}" must specify either "prompt" or "promptName", not both`);
39
43
  }
40
- if (!hasPrompt && !hasPromptName) {
41
- throw new Error(`"${hookName}" must have a non-empty "prompt" or "promptName"`);
44
+ if (!hasPrompt && !hasPromptName && !hasWebhook) {
45
+ throw new Error(`"${hookName}" must have a non-empty "prompt", "promptName", or "webhook"`);
42
46
  }
43
47
  if (hasPrompt && (cfg.prompt?.length ?? 0) > MAX_POLICY_PROMPT_CHARS) {
44
48
  throw new Error(`"${hookName}.prompt" must be ≤ ${MAX_POLICY_PROMPT_CHARS} characters`);
@@ -75,6 +79,52 @@ function validatePromptSource(hookName, cfg) {
75
79
  throw new Error(`"${hookName}.effort" must be one of "low", "medium", "high", "max"`);
76
80
  }
77
81
  }
82
+ if (cfg.webhook !== undefined) {
83
+ const wh = cfg.webhook;
84
+ if (typeof wh !== "object" || wh === null || Array.isArray(wh)) {
85
+ throw new Error(`"${hookName}.webhook" must be a plain object`);
86
+ }
87
+ const w = wh;
88
+ if (typeof w.url !== "string" || w.url.trim() === "") {
89
+ throw new Error(`"${hookName}.webhook.url" must be a non-empty string`);
90
+ }
91
+ if (w.url.length > 2048) {
92
+ throw new Error(`"${hookName}.webhook.url" must be ≤ 2048 characters`);
93
+ }
94
+ try {
95
+ const parsed = new URL(w.url);
96
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
97
+ throw new Error(`"${hookName}.webhook.url" must use http:// or https:// (got ${parsed.protocol})`);
98
+ }
99
+ }
100
+ catch (e) {
101
+ // Re-throw protocol errors verbatim; wrap parse errors.
102
+ if (e instanceof Error && e.message.includes("must use http"))
103
+ throw e;
104
+ throw new Error(`"${hookName}.webhook.url" is not a valid URL: ${e instanceof Error ? e.message : String(e)}`);
105
+ }
106
+ if (w.method !== undefined) {
107
+ if (typeof w.method !== "string" ||
108
+ !["POST", "PUT", "PATCH"].includes(w.method)) {
109
+ throw new Error(`"${hookName}.webhook.method" must be one of "POST", "PUT", "PATCH"`);
110
+ }
111
+ }
112
+ if (w.headers !== undefined) {
113
+ if (typeof w.headers !== "object" ||
114
+ w.headers === null ||
115
+ Array.isArray(w.headers)) {
116
+ throw new Error(`"${hookName}.webhook.headers" must be a plain object`);
117
+ }
118
+ for (const [k, v] of Object.entries(w.headers)) {
119
+ if (typeof v !== "string") {
120
+ throw new Error(`"${hookName}.webhook.headers.${k}" must be a string`);
121
+ }
122
+ if (k.length > 128 || v.length > 1024) {
123
+ throw new Error(`"${hookName}.webhook.headers.${k}" exceeds size limits (key ≤128, value ≤1024)`);
124
+ }
125
+ }
126
+ }
127
+ }
78
128
  }
79
129
  /**
80
130
  * Expand a discriminated unified hook (e.g. onCompaction.phase="pre"|"post")
@@ -160,10 +210,10 @@ export function loadPolicy(filePath) {
160
210
  const hadLegacyPostCompact = policy.onPostCompact !== undefined;
161
211
  expandDiscriminatedHook(policy, "onCompaction", "phase", "pre", "onPreCompact", "onPreCompact", "post", "onPostCompact", "onPostCompact", filePath);
162
212
  if (hadLegacyPreCompact) {
163
- console.warn(`[automation-policy] "onPreCompact" in "${filePath}" is deprecated — migrate to "onCompaction" with phase: "pre". Legacy name removed no earlier than v2.46 + 30 days after v2.43.0 release.`);
213
+ console.warn(`[automation-policy] "onPreCompact" in "${filePath}" is deprecated — migrate to "onCompaction" with phase: "pre". Legacy name removed no earlier than 2026-09-01.`);
164
214
  }
165
215
  if (hadLegacyPostCompact) {
166
- console.warn(`[automation-policy] "onPostCompact" in "${filePath}" is deprecated — migrate to "onCompaction" with phase: "post". Legacy name removed no earlier than v2.46 + 30 days after v2.43.0 release.`);
216
+ console.warn(`[automation-policy] "onPostCompact" in "${filePath}" is deprecated — migrate to "onCompaction" with phase: "post". Legacy name removed no earlier than 2026-09-01.`);
167
217
  }
168
218
  // ── onDiagnosticsStateChange normalization (v2.43.0+) ───────────────────
169
219
  // Expand into internal onDiagnosticsError/onDiagnosticsCleared based on state.
@@ -171,10 +221,10 @@ export function loadPolicy(filePath) {
171
221
  const hadLegacyDiagCleared = policy.onDiagnosticsCleared !== undefined;
172
222
  expandDiscriminatedHook(policy, "onDiagnosticsStateChange", "state", "error", "onDiagnosticsError", "onDiagnosticsError", "cleared", "onDiagnosticsCleared", "onDiagnosticsCleared", filePath);
173
223
  if (hadLegacyDiagError) {
174
- console.warn(`[automation-policy] "onDiagnosticsError" in "${filePath}" is deprecated — migrate to "onDiagnosticsStateChange" with state: "error". Legacy name removed no earlier than v2.46 + 30 days after v2.43.0 release.`);
224
+ console.warn(`[automation-policy] "onDiagnosticsError" in "${filePath}" is deprecated — migrate to "onDiagnosticsStateChange" with state: "error". Legacy name removed no earlier than 2026-09-01.`);
175
225
  }
176
226
  if (hadLegacyDiagCleared) {
177
- console.warn(`[automation-policy] "onDiagnosticsCleared" in "${filePath}" is deprecated — migrate to "onDiagnosticsStateChange" with state: "cleared". Legacy name removed no earlier than v2.46 + 30 days after v2.43.0 release.`);
227
+ console.warn(`[automation-policy] "onDiagnosticsCleared" in "${filePath}" is deprecated — migrate to "onDiagnosticsStateChange" with state: "cleared". Legacy name removed no earlier than 2026-09-01.`);
178
228
  }
179
229
  // ── onDebugSession normalization (v2.43.0+) ─────────────────────────────
180
230
  // Expand into internal onDebugSessionStart/onDebugSessionEnd based on phase.
@@ -182,10 +232,10 @@ export function loadPolicy(filePath) {
182
232
  const hadLegacyDebugEnd = policy.onDebugSessionEnd !== undefined;
183
233
  expandDiscriminatedHook(policy, "onDebugSession", "phase", "start", "onDebugSessionStart", "onDebugSessionStart", "end", "onDebugSessionEnd", "onDebugSessionEnd", filePath);
184
234
  if (hadLegacyDebugStart) {
185
- console.warn(`[automation-policy] "onDebugSessionStart" in "${filePath}" is deprecated — migrate to "onDebugSession" with phase: "start". Legacy name removed no earlier than v2.46 + 30 days after v2.43.0 release.`);
235
+ console.warn(`[automation-policy] "onDebugSessionStart" in "${filePath}" is deprecated — migrate to "onDebugSession" with phase: "start". Legacy name removed no earlier than 2026-09-01.`);
186
236
  }
187
237
  if (hadLegacyDebugEnd) {
188
- console.warn(`[automation-policy] "onDebugSessionEnd" in "${filePath}" is deprecated — migrate to "onDebugSession" with phase: "end". Legacy name removed no earlier than v2.46 + 30 days after v2.43.0 release.`);
238
+ console.warn(`[automation-policy] "onDebugSessionEnd" in "${filePath}" is deprecated — migrate to "onDebugSession" with phase: "end". Legacy name removed no earlier than 2026-09-01.`);
189
239
  }
190
240
  // ── onTestRun(filter) normalization (v2.43.0+) ──────────────────────────
191
241
  // The new canonical form is `onTestRun.filter: "any"|"failure"|"pass-after-fail"`.
@@ -227,10 +277,10 @@ export function loadPolicy(filePath) {
227
277
  }
228
278
  }
229
279
  if (hadLegacyOnFailureOnly) {
230
- console.warn(`[automation-policy] "onTestRun.onFailureOnly" in "${filePath}" is deprecated — migrate to "onTestRun.filter" ("failure" or "any"). Legacy field removed no earlier than v2.46 + 30 days after v2.43.0 release.`);
280
+ console.warn(`[automation-policy] "onTestRun.onFailureOnly" in "${filePath}" is deprecated — migrate to "onTestRun.filter" ("failure" or "any"). Legacy field removed no earlier than 2026-09-01.`);
231
281
  }
232
282
  if (hadLegacyTestPassAfterFailure) {
233
- console.warn(`[automation-policy] "onTestPassAfterFailure" in "${filePath}" is deprecated — migrate to "onTestRun" with filter: "pass-after-fail". Legacy hook removed no earlier than v2.46 + 30 days after v2.43.0 release.`);
283
+ console.warn(`[automation-policy] "onTestPassAfterFailure" in "${filePath}" is deprecated — migrate to "onTestRun" with filter: "pass-after-fail". Legacy hook removed no earlier than 2026-09-01.`);
234
284
  }
235
285
  // Helper: throw with actual value in message for easier debugging
236
286
  function expectType(value, type, field) {
@@ -646,6 +696,31 @@ export class AutomationHooks {
646
696
  eventData,
647
697
  backend: this._interpreterBackend,
648
698
  log: this.log.bind(this),
699
+ getLiveState: () => this._automationState,
700
+ runRetryUnderLock: (work) => {
701
+ // Always chain through `_lastRunPromise` so the retry's read of
702
+ // `_automationState`, its `interpret()` execution, and its writeback
703
+ // are atomic w.r.t. other `_runInterpreter` calls. Without this
704
+ // chaining, a concurrent run between read and writeback would lose
705
+ // its updates to the retry's older snapshot. We also catch errors
706
+ // so a buggy retry doesn't poison the chain.
707
+ this._chainBusy = true;
708
+ this._lastRunPromise = this._lastRunPromise
709
+ .catch(() => { })
710
+ .then(async () => {
711
+ try {
712
+ const newState = await work(this._automationState);
713
+ this._automationState = newState;
714
+ }
715
+ catch (e) {
716
+ const m = e instanceof Error ? e.message : String(e);
717
+ this.log(`[automation] runRetryUnderLock failed: ${m}`);
718
+ }
719
+ })
720
+ .finally(() => {
721
+ this._chainBusy = false;
722
+ });
723
+ },
649
724
  };
650
725
  const result = await executeAutomationPolicy(this._programAST, ctx);
651
726
  if (result.ok) {
@@ -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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"}
package/dist/bridge.d.ts CHANGED
@@ -69,6 +69,8 @@ export declare class Bridge {
69
69
  private maybeAutoSnapshotHandoff;
70
70
  /** Write a periodic auto-snapshot while sessions are active (every 5 minutes). */
71
71
  private _periodicSnapshotTimer;
72
+ /** Cleanup handle for `watchFlags()` — set in start(), invoked in stop(). */
73
+ private _stopFlagsWatch;
72
74
  private _startPeriodicSnapshots;
73
75
  private _stopPeriodicSnapshots;
74
76
  /** Debounced tools/list_changed notification — max one per 2 seconds. */
package/dist/bridge.js CHANGED
@@ -16,7 +16,7 @@ import { CommitIssueLinkLog } from "./commitIssueLinkLog.js";
16
16
  import { DecisionTraceLog } from "./decisionTraceLog.js";
17
17
  import { createDriver } from "./drivers/index.js";
18
18
  import { ExtensionClient } from "./extensionClient.js";
19
- import { lockKillSwitchEnv } from "./featureFlags.js";
19
+ import { lockKillSwitchEnv, watchFlags } from "./featureFlags.js";
20
20
  import { FileLock } from "./fileLock.js";
21
21
  import { buildEnforcementReminder } from "./instructionsUtils.js";
22
22
  import { LockFileManager } from "./lockfile.js";
@@ -28,6 +28,8 @@ import { PluginWatcher } from "./pluginWatcher.js";
28
28
  import { isPreToolUseHookRegistered } from "./preToolUseHook.js";
29
29
  import { probeAll } from "./probe.js";
30
30
  import { RecipeOrchestration } from "./recipeOrchestration.js";
31
+ import { haltSummaryToPrometheus, summariseHalts, } from "./recipes/haltCategory.js";
32
+ import { judgeSummaryToPrometheus, summariseJudgments, } from "./recipes/judgeSummary.js";
31
33
  import { warnAboutLegacyPermissionsSidecars } from "./recipes/migrationWarnings.js";
32
34
  import { RecipeOrchestrator } from "./recipes/RecipeOrchestrator.js";
33
35
  import { classifyTool } from "./riskTier.js";
@@ -143,8 +145,9 @@ export class Bridge {
143
145
  this.lockFile = new LockFileManager(this.logger);
144
146
  const configDir = process.env.CLAUDE_CONFIG_DIR ?? path.join(os.homedir(), ".claude");
145
147
  this.authToken = config.fixedToken ?? loadOrCreateBridgeToken(configDir);
146
- this.server = new Server(this.authToken, this.logger, config.corsOrigins);
148
+ this.server = new Server(this.authToken, this.logger, config.corsOrigins, undefined, config.trustedProxies);
147
149
  this.server.bridgeConfigPath = config.configFilePath ?? undefined;
150
+ this.server.webhookSecret = config.webhookSecret ?? null;
148
151
  if (config.issuerUrl) {
149
152
  this.oauthServer = new OAuthServerImpl(this.authToken, config.issuerUrl, {
150
153
  configDir,
@@ -580,6 +583,8 @@ export class Bridge {
580
583
  }
581
584
  /** Write a periodic auto-snapshot while sessions are active (every 5 minutes). */
582
585
  _periodicSnapshotTimer = null;
586
+ /** Cleanup handle for `watchFlags()` — set in start(), invoked in stop(). */
587
+ _stopFlagsWatch = null;
583
588
  _startPeriodicSnapshots() {
584
589
  if (this._periodicSnapshotTimer)
585
590
  return;
@@ -721,6 +726,10 @@ export class Bridge {
721
726
  // recipe steps mutating `process.env.PATCHWORK_FLAG_*` cannot disable an
722
727
  // active emergency stop. Closes MED-2 from the 2026-04-28 audit.
723
728
  lockKillSwitchEnv();
729
+ // 0a-bis. Watch flags.json for cross-process changes — picks up CLI
730
+ // fallback writes and sibling-bridge updates in a multi-bridge fleet.
731
+ // v2-S1 + v2-B2 from issue #422.
732
+ this._stopFlagsWatch = watchFlags();
724
733
  // 0b. Auto-repair .claude/rules/bridge-tools.md if stale (present but missing the
725
734
  // current version sentinel). Older package versions write stale files that may
726
735
  // lack new tool substitution rules. Repair is silent on success; falls back to
@@ -849,11 +858,29 @@ export class Bridge {
849
858
  });
850
859
  // scheduler.start() deferred to after this.port is set (see below)
851
860
  // so bridgeMcp callback has a valid port when first cron fires.
861
+ //
862
+ // Hot-reload: re-prime the scheduler whenever the recipe set
863
+ // changes on disk (install / save / delete). RecipeScheduler.start()
864
+ // is idempotent (calls this.stop() first) and reads the recipes
865
+ // directory fresh, so calling it again cleanly picks up the new
866
+ // file. Stored as a callback on the Server so route handlers can
867
+ // fire it post-success without owning a reference to the scheduler.
868
+ this.server.onRecipesChangedFn = () => {
869
+ if (!this.recipeScheduler)
870
+ return;
871
+ try {
872
+ const scheduled = this.recipeScheduler.start();
873
+ this.logger.info(`[patchwork] scheduler re-primed after recipe change · ${scheduled.length} cron recipe${scheduled.length === 1 ? "" : "s"} active`);
874
+ }
875
+ catch (err) {
876
+ this.logger.warn?.(`[patchwork] scheduler restart failed: ${err instanceof Error ? err.message : String(err)}`);
877
+ }
878
+ };
852
879
  }
853
880
  }
854
881
  if (this.config.automationEnabled) {
855
882
  if (!this.orchestrator) {
856
- throw new Error("--automation requires --claude-driver != none");
883
+ throw new Error("--automation requires --driver != none");
857
884
  }
858
885
  if (!this.config.automationPolicyPath) {
859
886
  throw new Error("--automation requires --automation-policy <path>");
@@ -885,10 +912,37 @@ export class Bridge {
885
912
  tokens: this.tokenUsageTracker.getTotals(),
886
913
  };
887
914
  };
888
- this.server.metricsFn = () => this.activityLog.toPrometheus({
889
- rateLimitRejected: this.activityLog.getRateLimitRejections(),
890
- extensionDisconnects: this.extensionDisconnectCount,
891
- });
915
+ this.server.metricsFn = () => {
916
+ const base = this.activityLog.toPrometheus({
917
+ rateLimitRejected: this.activityLog.getRateLimitRejections(),
918
+ extensionDisconnects: this.extensionDisconnectCount,
919
+ });
920
+ // Append per-category halt gauges from the runLog so users with
921
+ // their own Prometheus stack can dashboard halts without using
922
+ // Patchwork's UI. Reads everything currently in the in-memory ring
923
+ // (bounded by runLog memoryCap); rotation may cause the values to
924
+ // decrease, so we expose this as a `gauge` rather than a `counter`.
925
+ // Composes #441/#444/#447 — same data shape as /runs/halt-summary
926
+ // and `patchwork halts`, surfaced through the existing /metrics
927
+ // route.
928
+ let haltLines = [];
929
+ let judgeLines = [];
930
+ try {
931
+ if (this.recipeRunLog) {
932
+ const runs = this.recipeRunLog.query({ limit: 500 });
933
+ haltLines = haltSummaryToPrometheus(summariseHalts(runs));
934
+ // PR3b — judge verdicts are a separate channel from halts
935
+ // (augment-only invariant; see judgeVerdict.ts). Same window,
936
+ // same fail-open posture.
937
+ judgeLines = judgeSummaryToPrometheus(summariseJudgments(runs));
938
+ }
939
+ }
940
+ catch {
941
+ /* fail-open: prometheus must never break on log read */
942
+ }
943
+ const extras = [...haltLines, ...judgeLines];
944
+ return extras.length > 0 ? `${base}\n${extras.join("\n")}\n` : base;
945
+ };
892
946
  this.server.perfDataFn = () => {
893
947
  const windowMs = 60 * 60_000; // 1h window for dashboard
894
948
  const windowedS = this.activityLog.windowedStats(windowMs);
@@ -1049,6 +1103,23 @@ export class Bridge {
1049
1103
  };
1050
1104
  };
1051
1105
  this.server.streamFn = (listener) => this.activityLog.subscribe(listener);
1106
+ // v2-I8 (#422): broadcast kind:"kill-switch" SSE when state changes.
1107
+ // The activityLog subscriber list fans out to all open /stream clients.
1108
+ this.server.broadcastKillSwitchEventFn = (engaged, reason) => {
1109
+ for (const listener of this.activityLog.getListeners()) {
1110
+ try {
1111
+ listener("kill-switch", {
1112
+ id: 0,
1113
+ timestamp: new Date().toISOString(),
1114
+ event: engaged ? "engage" : "release",
1115
+ metadata: { engaged, ...(reason ? { reason } : {}) },
1116
+ });
1117
+ }
1118
+ catch {
1119
+ /* listener must not crash broadcast */
1120
+ }
1121
+ }
1122
+ };
1052
1123
  this.server.cancelTaskFn = (id) => this.orchestrator?.cancel(id, "user") ?? false;
1053
1124
  // Wire `/sessions` for the dashboard's Sessions page. The same Map is
1054
1125
  // already iterated by `statusFn` for the bridge-status payload — exposing
@@ -1131,6 +1202,30 @@ export class Bridge {
1131
1202
  extensionConnected: this.extensionClient.isConnected(),
1132
1203
  };
1133
1204
  };
1205
+ // Wire kill-switch audit-trace emit to decisionTraceLog. State
1206
+ // transitions become DecisionTrace entries with tags=["kill-switch",
1207
+ // "engage"|"release", "actor:http"]; query via ctxQueryTraces. See
1208
+ // step 5 of #422.
1209
+ if (this.decisionTraceLog) {
1210
+ const traceLog = this.decisionTraceLog;
1211
+ const workspace = this.config.workspace;
1212
+ this.server.recordKillSwitchTraceFn = (event) => {
1213
+ const direction = event.engaged ? "engage" : "release";
1214
+ const isoTs = new Date(event.ts).toISOString();
1215
+ try {
1216
+ traceLog.record({
1217
+ ref: "kill-switch.writes",
1218
+ problem: event.reason ?? direction,
1219
+ solution: `${event.engaged ? "ENGAGED" : "RELEASED"} at ${isoTs}`,
1220
+ workspace,
1221
+ tags: ["kill-switch", direction, "actor:http"],
1222
+ });
1223
+ }
1224
+ catch (err) {
1225
+ this.logger.warn(`[kill-switch] failed to record audit trace: ${err instanceof Error ? err.message : String(err)}`);
1226
+ }
1227
+ };
1228
+ }
1134
1229
  this.server.statusFn = () => {
1135
1230
  let sessionsInGrace = 0;
1136
1231
  const sessionList = [];
@@ -1179,6 +1274,8 @@ export class Bridge {
1179
1274
  pushServiceUrl: this.server.pushServiceUrl ?? null,
1180
1275
  pushServiceToken: this.server.pushServiceToken ? "***" : null,
1181
1276
  pushServiceBaseUrl: this.server.pushServiceBaseUrl ?? null,
1277
+ ntfyTopic: this.server.ntfyTopic ?? null,
1278
+ ntfyServer: this.server.ntfyServer ?? null,
1182
1279
  };
1183
1280
  })(),
1184
1281
  };
@@ -1240,7 +1337,7 @@ export class Bridge {
1240
1337
  if (result === null) {
1241
1338
  return {
1242
1339
  ok: false,
1243
- error: "launchQuickTask not registered — requires --claude-driver subprocess",
1340
+ error: "launchQuickTask not registered — requires --driver subprocess",
1244
1341
  };
1245
1342
  }
1246
1343
  const r = result;
@@ -1477,6 +1574,15 @@ export class Bridge {
1477
1574
  this.stopped = true;
1478
1575
  this.logger.info("Shutting down...");
1479
1576
  this._stopPeriodicSnapshots();
1577
+ if (this._stopFlagsWatch) {
1578
+ try {
1579
+ this._stopFlagsWatch();
1580
+ }
1581
+ catch {
1582
+ /* ignore */
1583
+ }
1584
+ this._stopFlagsWatch = null;
1585
+ }
1480
1586
  this.tokenUsageTracker.stop();
1481
1587
  this.automationHooks?.destroy();
1482
1588
  this.recipeScheduler?.stop();