@intutic/sync-daemon 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/agentReporter.d.ts +5 -12
  2. package/dist/agentReporter.d.ts.map +1 -1
  3. package/dist/agentReporter.js +25 -4
  4. package/dist/agentReporter.js.map +1 -1
  5. package/dist/configReader.d.ts +44 -22
  6. package/dist/configReader.d.ts.map +1 -1
  7. package/dist/configReader.js +70 -44
  8. package/dist/configReader.js.map +1 -1
  9. package/dist/configWriter.d.ts +29 -41
  10. package/dist/configWriter.d.ts.map +1 -1
  11. package/dist/configWriter.js +28 -625
  12. package/dist/configWriter.js.map +1 -1
  13. package/dist/disconnect/harnesses.d.ts +31 -0
  14. package/dist/disconnect/harnesses.d.ts.map +1 -0
  15. package/dist/disconnect/harnesses.js +728 -0
  16. package/dist/disconnect/harnesses.js.map +1 -0
  17. package/dist/disconnect/index.d.ts +25 -0
  18. package/dist/disconnect/index.d.ts.map +1 -0
  19. package/dist/disconnect/index.js +82 -0
  20. package/dist/disconnect/index.js.map +1 -0
  21. package/dist/disconnect/mcp.d.ts +60 -0
  22. package/dist/disconnect/mcp.d.ts.map +1 -0
  23. package/dist/disconnect/mcp.js +283 -0
  24. package/dist/disconnect/mcp.js.map +1 -0
  25. package/dist/disconnect/originals.d.ts +88 -0
  26. package/dist/disconnect/originals.d.ts.map +1 -0
  27. package/dist/disconnect/originals.js +257 -0
  28. package/dist/disconnect/originals.js.map +1 -0
  29. package/dist/disconnect/plan.d.ts +175 -0
  30. package/dist/disconnect/plan.d.ts.map +1 -0
  31. package/dist/disconnect/plan.js +580 -0
  32. package/dist/disconnect/plan.js.map +1 -0
  33. package/dist/disconnect/recognise.d.ts +43 -0
  34. package/dist/disconnect/recognise.d.ts.map +1 -0
  35. package/dist/disconnect/recognise.js +98 -0
  36. package/dist/disconnect/recognise.js.map +1 -0
  37. package/dist/disconnect/tomlLines.d.ts +39 -0
  38. package/dist/disconnect/tomlLines.d.ts.map +1 -0
  39. package/dist/disconnect/tomlLines.js +105 -0
  40. package/dist/disconnect/tomlLines.js.map +1 -0
  41. package/dist/harness/aiderConfigMerger.d.ts +42 -5
  42. package/dist/harness/aiderConfigMerger.d.ts.map +1 -1
  43. package/dist/harness/aiderConfigMerger.js +113 -86
  44. package/dist/harness/aiderConfigMerger.js.map +1 -1
  45. package/dist/harness/antigravityHooks.d.ts +13 -8
  46. package/dist/harness/antigravityHooks.d.ts.map +1 -1
  47. package/dist/harness/antigravityHooks.js +53 -39
  48. package/dist/harness/antigravityHooks.js.map +1 -1
  49. package/dist/harness/claudeCodeHooks.d.ts +1 -2
  50. package/dist/harness/claudeCodeHooks.d.ts.map +1 -1
  51. package/dist/harness/claudeCodeHooks.js +61 -34
  52. package/dist/harness/claudeCodeHooks.js.map +1 -1
  53. package/dist/harness/claudeDesktopHooks.d.ts +3 -0
  54. package/dist/harness/claudeDesktopHooks.d.ts.map +1 -1
  55. package/dist/harness/claudeDesktopHooks.js +3 -1
  56. package/dist/harness/claudeDesktopHooks.js.map +1 -1
  57. package/dist/harness/claudeProjectApproval.d.ts +53 -0
  58. package/dist/harness/claudeProjectApproval.d.ts.map +1 -0
  59. package/dist/harness/claudeProjectApproval.js +159 -0
  60. package/dist/harness/claudeProjectApproval.js.map +1 -0
  61. package/dist/harness/clineHooks.d.ts +39 -9
  62. package/dist/harness/clineHooks.d.ts.map +1 -1
  63. package/dist/harness/clineHooks.js +142 -60
  64. package/dist/harness/clineHooks.js.map +1 -1
  65. package/dist/harness/codexConfigMerger.d.ts +38 -0
  66. package/dist/harness/codexConfigMerger.d.ts.map +1 -0
  67. package/dist/harness/codexConfigMerger.js +105 -0
  68. package/dist/harness/codexConfigMerger.js.map +1 -0
  69. package/dist/harness/codexHooks.d.ts +4 -2
  70. package/dist/harness/codexHooks.d.ts.map +1 -1
  71. package/dist/harness/codexHooks.js +14 -11
  72. package/dist/harness/codexHooks.js.map +1 -1
  73. package/dist/harness/continueConfigMerger.d.ts +46 -0
  74. package/dist/harness/continueConfigMerger.d.ts.map +1 -0
  75. package/dist/harness/continueConfigMerger.js +94 -0
  76. package/dist/harness/continueConfigMerger.js.map +1 -0
  77. package/dist/harness/continueHooks.d.ts +15 -25
  78. package/dist/harness/continueHooks.d.ts.map +1 -1
  79. package/dist/harness/continueHooks.js +25 -119
  80. package/dist/harness/continueHooks.js.map +1 -1
  81. package/dist/harness/cursorHooks.d.ts +33 -16
  82. package/dist/harness/cursorHooks.d.ts.map +1 -1
  83. package/dist/harness/cursorHooks.js +69 -25
  84. package/dist/harness/cursorHooks.js.map +1 -1
  85. package/dist/harness/dshHooks.d.ts +59 -52
  86. package/dist/harness/dshHooks.d.ts.map +1 -1
  87. package/dist/harness/dshHooks.js +152 -147
  88. package/dist/harness/dshHooks.js.map +1 -1
  89. package/dist/harness/gateBody.d.ts +11 -2
  90. package/dist/harness/gateBody.d.ts.map +1 -1
  91. package/dist/harness/gateBody.js +33 -6
  92. package/dist/harness/gateBody.js.map +1 -1
  93. package/dist/harness/gateKind.d.ts.map +1 -1
  94. package/dist/harness/gateKind.js +1 -0
  95. package/dist/harness/gateKind.js.map +1 -1
  96. package/dist/harness/githubCopilotHooks.d.ts.map +1 -1
  97. package/dist/harness/githubCopilotHooks.js +5 -10
  98. package/dist/harness/githubCopilotHooks.js.map +1 -1
  99. package/dist/harness/gooseHooks.d.ts +15 -0
  100. package/dist/harness/gooseHooks.d.ts.map +1 -1
  101. package/dist/harness/gooseHooks.js +55 -43
  102. package/dist/harness/gooseHooks.js.map +1 -1
  103. package/dist/harness/grokHooks.d.ts.map +1 -1
  104. package/dist/harness/grokHooks.js +14 -12
  105. package/dist/harness/grokHooks.js.map +1 -1
  106. package/dist/harness/hermesHooks.d.ts +9 -0
  107. package/dist/harness/hermesHooks.d.ts.map +1 -1
  108. package/dist/harness/hermesHooks.js +39 -33
  109. package/dist/harness/hermesHooks.js.map +1 -1
  110. package/dist/harness/holdRedaction.d.ts +4 -1
  111. package/dist/harness/holdRedaction.d.ts.map +1 -1
  112. package/dist/harness/holdRedaction.js +32 -8
  113. package/dist/harness/holdRedaction.js.map +1 -1
  114. package/dist/harness/jetbrainsXmlConfig.d.ts +20 -0
  115. package/dist/harness/jetbrainsXmlConfig.d.ts.map +1 -1
  116. package/dist/harness/jetbrainsXmlConfig.js +39 -18
  117. package/dist/harness/jetbrainsXmlConfig.js.map +1 -1
  118. package/dist/harness/jsonMergeTarget.d.ts +23 -0
  119. package/dist/harness/jsonMergeTarget.d.ts.map +1 -0
  120. package/dist/harness/jsonMergeTarget.js +50 -0
  121. package/dist/harness/jsonMergeTarget.js.map +1 -0
  122. package/dist/harness/mcpAutoWrite.d.ts +64 -20
  123. package/dist/harness/mcpAutoWrite.d.ts.map +1 -1
  124. package/dist/harness/mcpAutoWrite.js +429 -85
  125. package/dist/harness/mcpAutoWrite.js.map +1 -1
  126. package/dist/harness/museHooks.d.ts.map +1 -1
  127. package/dist/harness/museHooks.js +6 -2
  128. package/dist/harness/museHooks.js.map +1 -1
  129. package/dist/harness/n8nHooks.d.ts.map +1 -1
  130. package/dist/harness/n8nHooks.js +6 -7
  131. package/dist/harness/n8nHooks.js.map +1 -1
  132. package/dist/harness/openCodeHooks.d.ts +37 -6
  133. package/dist/harness/openCodeHooks.d.ts.map +1 -1
  134. package/dist/harness/openCodeHooks.js +103 -13
  135. package/dist/harness/openCodeHooks.js.map +1 -1
  136. package/dist/harness/openWebuiHooks.d.ts.map +1 -1
  137. package/dist/harness/openWebuiHooks.js +10 -5
  138. package/dist/harness/openWebuiHooks.js.map +1 -1
  139. package/dist/harness/openclawHooks.d.ts +5 -0
  140. package/dist/harness/openclawHooks.d.ts.map +1 -1
  141. package/dist/harness/openclawHooks.js +3 -1
  142. package/dist/harness/openclawHooks.js.map +1 -1
  143. package/dist/harness/openhandsHooks.d.ts +26 -1
  144. package/dist/harness/openhandsHooks.d.ts.map +1 -1
  145. package/dist/harness/openhandsHooks.js +160 -40
  146. package/dist/harness/openhandsHooks.js.map +1 -1
  147. package/dist/harness/piHooks.d.ts +17 -0
  148. package/dist/harness/piHooks.d.ts.map +1 -1
  149. package/dist/harness/piHooks.js +31 -29
  150. package/dist/harness/piHooks.js.map +1 -1
  151. package/dist/harness/protectedPaths.d.ts +64 -6
  152. package/dist/harness/protectedPaths.d.ts.map +1 -1
  153. package/dist/harness/protectedPaths.js +161 -11
  154. package/dist/harness/protectedPaths.js.map +1 -1
  155. package/dist/harness/rooCodeHooks.d.ts.map +1 -1
  156. package/dist/harness/rooCodeHooks.js +5 -10
  157. package/dist/harness/rooCodeHooks.js.map +1 -1
  158. package/dist/harness/windsurfHooks.d.ts +21 -3
  159. package/dist/harness/windsurfHooks.d.ts.map +1 -1
  160. package/dist/harness/windsurfHooks.js +96 -44
  161. package/dist/harness/windsurfHooks.js.map +1 -1
  162. package/dist/harness/windsurfJetBrainsProxy.d.ts +10 -7
  163. package/dist/harness/windsurfJetBrainsProxy.d.ts.map +1 -1
  164. package/dist/harness/windsurfJetBrainsProxy.js +22 -7
  165. package/dist/harness/windsurfJetBrainsProxy.js.map +1 -1
  166. package/dist/index.d.ts +12 -12
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.js +11 -10
  169. package/dist/index.js.map +1 -1
  170. package/dist/lib/decisionsDigest.d.ts +1 -1
  171. package/dist/lib/decisionsDigest.js +1 -1
  172. package/dist/lib/policySnapshot.d.ts +37 -0
  173. package/dist/lib/policySnapshot.d.ts.map +1 -1
  174. package/dist/lib/policySnapshot.js +170 -8
  175. package/dist/lib/policySnapshot.js.map +1 -1
  176. package/dist/sessionReporter.d.ts +2 -2
  177. package/dist/sessionReporter.js +2 -2
  178. package/dist/syncCycle.d.ts +142 -0
  179. package/dist/syncCycle.d.ts.map +1 -0
  180. package/dist/syncCycle.js +315 -0
  181. package/dist/syncCycle.js.map +1 -0
  182. package/dist/trajectoryMonitor.d.ts +1 -1
  183. package/dist/trajectoryMonitor.d.ts.map +1 -1
  184. package/dist/trajectoryMonitor.js +1 -1
  185. package/dist/trajectoryMonitor.js.map +1 -1
  186. package/dist/watcher/settingsGuard.d.ts +4 -1
  187. package/dist/watcher/settingsGuard.d.ts.map +1 -1
  188. package/dist/watcher/settingsGuard.js +42 -18
  189. package/dist/watcher/settingsGuard.js.map +1 -1
  190. package/package.json +6 -6
  191. package/dist/hashReporter.d.ts +0 -33
  192. package/dist/hashReporter.d.ts.map +0 -1
  193. package/dist/hashReporter.js +0 -69
  194. package/dist/hashReporter.js.map +0 -1
  195. package/dist/integrityStore.d.ts +0 -35
  196. package/dist/integrityStore.d.ts.map +0 -1
  197. package/dist/integrityStore.js +0 -71
  198. package/dist/integrityStore.js.map +0 -1
  199. package/dist/lib/gitWorktrees.d.ts +0 -140
  200. package/dist/lib/gitWorktrees.d.ts.map +0 -1
  201. package/dist/lib/gitWorktrees.js +0 -191
  202. package/dist/lib/gitWorktrees.js.map +0 -1
  203. package/dist/syncLoop.d.ts +0 -172
  204. package/dist/syncLoop.d.ts.map +0 -1
  205. package/dist/syncLoop.js +0 -878
  206. package/dist/syncLoop.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"protectedPaths.d.ts","sourceRoot":"","sources":["../../src/harness/protectedPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAIH,iEAAiE;AACjE,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAiEtD,CAAA;AAMD;;;;;;;GAOG;AACH;;;;;;;;;GASG;AACH;;0DAE0D;AAC1D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAA;AAEvF,MAAM,WAAW,YAAY;IAC3B;4EACwE;IACxE,EAAE,EAAE,MAAM,CAAA;IACV,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAA;IACd;;;;;6BAKyB;IACzB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC9C;wDACoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd;;2BAEuB;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,gCAAgC;IAChC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B;;;yCAGqC;IACrC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAoCD,eAAO,MAAM,kBAAkB;IAC7B;;;;;;OAMG;iBACqD,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM;IAE9E,oEAAoE;;IAGpE;;;;;;;;;;;;;OAaG;IACH,8DAA8D;;IAM9D;;;;;;;;;;;OAWG;;CASK,CAAA;AAEV;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CA2BlE;AA0CD;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,YAAY,EAyD5D,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,YAAY,EAyG1D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,YAAY,EA+CxD,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,YAAY,EAmJ/D,CAAA;AA2CD,wBAAgB,0BAA0B,IAAI,SAAS,YAAY,EAAE,CAEpE;AAED;;;;;;;;;;kBAUkB;AAClB,wBAAgB,mBAAmB,IAAI,SAAS,YAAY,EAAE,CAO7D"}
1
+ {"version":3,"file":"protectedPaths.d.ts","sourceRoot":"","sources":["../../src/harness/protectedPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAIH,iEAAiE;AACjE,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAuEtD,CAAA;AAMD;;;;;;;GAOG;AACH;;;;;;;;;GASG;AACH;;0DAE0D;AAC1D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAA;AAEvF,MAAM,WAAW,YAAY;IAC3B;4EACwE;IACxE,EAAE,EAAE,MAAM,CAAA;IACV,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAA;IACd;;;;;6BAKyB;IACzB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC9C;wDACoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd;;2BAEuB;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,gCAAgC;IAChC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B;;;yCAGqC;IACrC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAoCD,eAAO,MAAM,kBAAkB;IAC7B;;;;;;OAMG;iBACqD,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM;IAE9E,oEAAoE;;IAGpE;;;;;;;;;;;;;OAaG;IACH,8DAA8D;;IAM9D;;;;;;;;;;;OAWG;;CASK,CAAA;AAEV;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CA2BlE;AA0CD;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,YAAY,EAyD5D,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,YAAY,EAyG1D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,YAAY,EA+CxD,CAAA;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgC1D;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,YAAY,EAsBzD,CAAA;AAiCD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,YAAY,EAoJ/D,CAAA;AA2CD,wBAAgB,0BAA0B,IAAI,SAAS,YAAY,EAAE,CAEpE;AAED;;;;;;;;;;kBAUkB;AAClB,wBAAgB,mBAAmB,IAAI,SAAS,YAAY,EAAE,CAO7D"}
@@ -60,7 +60,7 @@
60
60
  *
61
61
  * @module
62
62
  */
63
- import { SECRET_VALUE_PATTERNS } from '@intutic/shared-types';
63
+ import { SECRET_VALUE_PATTERNS, SKILL_CONTENT_BLOCK_PATTERN_IDS, SKILL_SCAN_PATTERNS } from '@intutic/shared-types';
64
64
  /** Governance config that must hold still, for every harness. */
65
65
  export const UNIVERSAL_PROTECTED_PATHS = [
66
66
  // Intutic's own enforcement surface.
@@ -110,9 +110,15 @@ export const UNIVERSAL_PROTECTED_PATHS = [
110
110
  // directory (every profile's cordis.patch.yml, not just one), the same
111
111
  // "the surface, not the one file" discipline `.grok/hooks` above uses —
112
112
  // dsh may have zero, one, or several profiles, and a tamper anywhere under
113
- // it is the same threat. `.dsh/settings.yaml` is the LLM-egress half; both
114
- // are the only two files `dshHooks.ts` writes.
113
+ // it is the same threat. `.dsh/cordis.patch.yml` is the home-level patch
114
+ // layer, applied AFTER every profile's own (dsh 0.2 `dsh-app-boot`: "the
115
+ // home-level file ... outranks it") — one `{ id: intutic-governance,
116
+ // disabled: true }` or `llm-deepseek` row there overrides both halves this
117
+ // writer puts in the profile files. `.dsh/settings.yaml` is no longer
118
+ // written, but dsh 0.2 still imports a leftover one into the next profile
119
+ // that boots, so it remains a way to rewrite the egress row.
115
120
  '.dsh/profiles',
121
+ '.dsh/cordis.patch.yml',
116
122
  '.dsh/settings.yaml',
117
123
  // OpenCode — the plugin directories OpenCode globs (`.opencode/plugin` and
118
124
  // `.opencode/plugins` are both read; only the latter is written) plus the
@@ -532,12 +538,9 @@ export const SECRET_CONTENT_PATTERNS = assertGuardTableSane((() => {
532
538
  * exists to flag — narrower than `UNIVERSAL_PROTECTED_PATHS`'s "any mention"
533
539
  * rule on purpose, since that rule blocks and this one only advises.
534
540
  *
535
- * A future promotion to `block` on skill CONTENT (not path) is a different,
536
- * later, and still-open decision — it needs the corpus measurement TD-358
537
- * describes, which this change does not supply. It should ship through the
538
- * same policy-snapshot channel the way this path-tier promotion and
539
- * `DESTRUCTIVE_COMMAND_PATTERNS` both do, so it too is retractable in a sync
540
- * cycle rather than a release if the measurement turns out wrong.
541
+ * Blocking on skill CONTENT (not path) is a separate table,
542
+ * {@link SKILL_CONTENT_PATTERNS}, licensed by the benign-corpus measurement
543
+ * TD-358 asked for and shipped only through the policy snapshot.
541
544
  */
542
545
  export const SKILL_SURFACE_PATTERNS = assertGuardTableSane([
543
546
  {
@@ -583,6 +586,152 @@ export const SKILL_SURFACE_PATTERNS = assertGuardTableSane([
583
586
  ],
584
587
  },
585
588
  ]);
589
+ /**
590
+ * Rewrites a case-insensitive JS `RegExp` source into a case-SENSITIVE one that
591
+ * means the same thing in JS and Python `re`, for use as an `argPattern`.
592
+ *
593
+ * Why: an `argPattern` is compiled with no flags by every gate family
594
+ * (`new RegExp(p)` in the JS gates, `re.compile(p)` in the bash gates'
595
+ * python3 helper), and there is no inline case-insensitive flag both engines
596
+ * accept — JS rejects a leading `(?i)`. The `skillScan.ts` patterns are matched
597
+ * case-insensitively, so each ASCII letter becomes `[xX]`.
598
+ *
599
+ * Also rewrites `\s` outside a character class to `(?:\s|\\[nrt])`. An
600
+ * argPattern sees `JSON.stringify(tool_input)`, where a newline in the content
601
+ * is the two characters `\n`; without this, `do not\ntell the user` would stop
602
+ * matching the moment the words wrap. Known residual gap: a `\b` directly after
603
+ * such an escape sees `n` as a word character, so a few line-wrapped phrasings
604
+ * still slip. That costs recall, not precision.
605
+ *
606
+ * Throws on a letter range inside a class (`[a-z]`). None of the scan patterns
607
+ * has one, and folding one correctly is more code than the case deserves.
608
+ */
609
+ export function caseFoldedArgSource(source) {
610
+ let out = '';
611
+ let inClass = false;
612
+ for (let i = 0; i < source.length; i++) {
613
+ const c = source[i];
614
+ if (c === '\\') {
615
+ const next = source[i + 1] ?? '';
616
+ out += !inClass && next === 's' ? '(?:\\s|\\\\[nrt])' : c + next;
617
+ i++;
618
+ continue;
619
+ }
620
+ const isLetter = /[A-Za-z]/.test(c);
621
+ if (inClass) {
622
+ if (c === ']')
623
+ inClass = false;
624
+ if (isLetter && (source[i + 1] === '-' || source[i - 1] === '-')) {
625
+ throw new Error(`caseFoldedArgSource: letter range in a character class is not supported: ${source}`);
626
+ }
627
+ out += isLetter ? c.toLowerCase() + c.toUpperCase() : c;
628
+ continue;
629
+ }
630
+ if (c === '[') {
631
+ inClass = true;
632
+ out += c;
633
+ if (source[i + 1] === '^') {
634
+ out += '^';
635
+ i++;
636
+ }
637
+ continue;
638
+ }
639
+ out += isLetter ? `[${c.toLowerCase()}${c.toUpperCase()}]` : c;
640
+ }
641
+ return out;
642
+ }
643
+ /**
644
+ * The JSON keys whose string value is content being WRITTEN, across the
645
+ * harnesses' write and edit tools: `content` (Write, write_file, write_to_file,
646
+ * OpenCode write), `new_string` / `newString` (Edit, MultiEdit's `edits[]`,
647
+ * OpenCode edit), `new_str` / `file_text` (str_replace_editor). `old_string`
648
+ * is left out on purpose: an edit that REMOVES a poisoned line is the fix, not
649
+ * the attack. Diff-shaped editors (`apply_patch`, Cline's `replace_in_file`)
650
+ * carry old and new text in one field and are not covered.
651
+ */
652
+ const WRITTEN_CONTENT_KEYS = ['content', 'new_string', 'newString', 'new_str', 'file_text'];
653
+ /**
654
+ * Skill-CONTENT block tier (TD-358): a write into a skill directory whose
655
+ * written text matches one of the `skillScan.ts` patterns measured at zero
656
+ * false positives on the benign-skill corpus (`SKILL_CONTENT_BLOCK_PATTERN_IDS`;
657
+ * `packages/shared-types/src/__tests__/corpus/skills/`, 350 real skills).
658
+ * `read-sensitive-path` fired on 11 of them and is not here.
659
+ *
660
+ * Each rule is two conditions, which a GuardPattern can express: `source`
661
+ * matches the write's target path against the skill surface (subject
662
+ * `target`, as in {@link SKILL_SURFACE_PATTERNS}), and `argPattern`, which
663
+ * every gate family already evaluates for SOP WHERE clauses, matches the
664
+ * pattern inside the value of a {@link WRITTEN_CONTENT_KEYS} key of the
665
+ * serialized tool input.
666
+ *
667
+ * **Snapshot-only, never in `staticFloorPatterns()`**, as TD-358 required: a
668
+ * content judgement ships where one sync cycle retracts it
669
+ * (`SKILL_CONTENT_TIER_SEVERITY` in `lib/policySnapshot.ts`). The table's own
670
+ * `warn` is a placeholder the snapshot builder always overrides.
671
+ *
672
+ * **What it adds over the path tier.** In steady state
673
+ * `skill_surface.*.tier` already refuses every write under a skill directory,
674
+ * so today this tier mostly changes the reason the developer reads. It
675
+ * becomes the only refusal if the path tier is retracted to `warn`. That
676
+ * independence is the point: the blanket path block and the narrow content
677
+ * block can each be retracted without the other. One exception: the
678
+ * `@intutic/gate-js` and `intutic-clawde` snapshot readers do not read the
679
+ * `.rules` argPattern column (true of every WHERE rule shipped this way), so
680
+ * in those two the content rules act as path-only blocks — the same calls
681
+ * `skill_surface.*.tier` already refuses. Retracting only the path tier would
682
+ * not unblock benign skill writes there; flip both constants.
683
+ *
684
+ * **What it does not catch.** A write through a shell redirect or heredoc
685
+ * (`cat > .claude/skills/x/SKILL.md`). `subject: 'command'` cannot tell that
686
+ * from a `grep '<system>' .claude/skills/`, and the corpus measured skill
687
+ * files, not commands. It also misses diff-shaped editors (see
688
+ * {@link WRITTEN_CONTENT_KEYS}), symlinked or relative-walk targets (the same
689
+ * limits as the path tier), and some line-wrapped phrasings (see
690
+ * {@link caseFoldedArgSource}).
691
+ */
692
+ export const SKILL_CONTENT_PATTERNS = assertGuardTableSane(SKILL_CONTENT_BLOCK_PATTERN_IDS.map((id) => {
693
+ const scan = SKILL_SCAN_PATTERNS.find((p) => p.id === id);
694
+ const argPattern = `"(?:${WRITTEN_CONTENT_KEYS.join('|')})":"(?:[^"\\\\]|\\\\.)*?(?:${caseFoldedArgSource(scan.source)})`;
695
+ assertSkillContentArgSane(id, argPattern, scan.matches, scan.notMatches);
696
+ return {
697
+ id: `skill_content.${id}`,
698
+ source: '\\.(agents|claude)/skills/',
699
+ subject: 'target',
700
+ severity: 'warn',
701
+ reason: `Write into a skill file contains a ${scan.category.replace('_', ' ')} pattern ` +
702
+ `(${id}): ${scan.description}`,
703
+ rationale: 'See SKILL_CONTENT_PATTERNS. Zero hits on the 350-skill benign corpus licenses the block; ' +
704
+ 'shell-redirect writes, diff-shaped editors and symlinked targets are not caught.',
705
+ matches: [' .claude/skills/x/SKILL.md ', ' /w/.agents/skills/y/SKILL.md '],
706
+ notMatches: [' src/skills/x.md ', ' .claude/settings.json ', ' README.md '],
707
+ argPattern,
708
+ };
709
+ }));
710
+ /**
711
+ * The argPattern half of {@link SKILL_CONTENT_PATTERNS}' fixture contract,
712
+ * which `assertGuardTableSane` does not check: every one of the scan pattern's
713
+ * own `matches` must fire when written as `content`, in either case, and none
714
+ * of its `notMatches` may. The same text as `old_string` must NOT fire.
715
+ */
716
+ function assertSkillContentArgSane(id, argPattern, matches, notMatches) {
717
+ const re = new RegExp(argPattern);
718
+ const target = '/w/.claude/skills/x/SKILL.md';
719
+ for (const m of matches) {
720
+ for (const v of [m, m.toUpperCase(), m.toLowerCase()]) {
721
+ if (!re.test(JSON.stringify({ file_path: target, content: v }))) {
722
+ throw new Error(`SKILL_CONTENT_PATTERNS ${id}: argPattern misses declared match ${JSON.stringify(v)}`);
723
+ }
724
+ }
725
+ if (re.test(JSON.stringify({ file_path: target, old_string: m, new_string: 'fixed' }))) {
726
+ throw new Error(`SKILL_CONTENT_PATTERNS ${id}: argPattern fires on old_string — removing the line would be refused`);
727
+ }
728
+ }
729
+ for (const nm of notMatches) {
730
+ if (re.test(JSON.stringify({ file_path: target, content: nm }))) {
731
+ throw new Error(`SKILL_CONTENT_PATTERNS ${id}: argPattern matches declared notMatch ${JSON.stringify(nm)}`);
732
+ }
733
+ }
734
+ }
586
735
  /**
587
736
  * Commands that destroy the machine or its data irrecoverably.
588
737
  *
@@ -727,8 +876,9 @@ export const DESTRUCTIVE_COMMAND_PATTERNS = assertGuardTableSane(
727
876
  rationale: 'Demoted from the hook gate\'s hard block. Against a local development ' +
728
877
  'database this is what a migration looks like, and the gate cannot tell a ' +
729
878
  'dev DSN from a production one — the proxy can, and that is where a block ' +
730
- 'belongs. Warn keeps the signal without owning a decision it lacks the ' +
731
- 'context to make.',
879
+ 'belongs: a SOP declaring `sql_guard:` with an `sql_allow_dsns:` allowlist ' +
880
+ 'refuses it at the LLM proxy (packages/proxy/src/plugins/sql_guard.rs). ' +
881
+ 'Warn keeps the signal without owning a decision it lacks the context to make.',
732
882
  matches: [' DROP TABLE users ', ' drop database app ', ' TRUNCATE TABLE events '],
733
883
  notMatches: [' SELECT * FROM users ', ' echo drop it ', ' git stash drop '],
734
884
  },
@@ -1 +1 @@
1
- {"version":3,"file":"protectedPaths.js","sourceRoot":"","sources":["../../src/harness/protectedPaths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protectedPaths.js","sourceRoot":"","sources":["../../src/harness/protectedPaths.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rooCodeHooks.d.ts","sourceRoot":"","sources":["../../src/harness/rooCodeHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAqNH;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,IAAI,CAAC,CAuEf"}
1
+ {"version":3,"file":"rooCodeHooks.d.ts","sourceRoot":"","sources":["../../src/harness/rooCodeHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAsNH;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,IAAI,CAAC,CAiEf"}
@@ -19,6 +19,7 @@ import * as fs from 'node:fs/promises';
19
19
  import * as path from 'node:path';
20
20
  import * as os from 'node:os';
21
21
  import { createLogger } from '@intutic/logger';
22
+ import { keepOriginal, writeOwnedFile } from '../disconnect/originals.js';
22
23
  import { newIso } from '@intutic/id';
23
24
  import { emitJsGate, emitJsFailClosedPrelude } from './gateBody.js';
24
25
  import { UNIVERSAL_PROTECTED_PATHS } from './protectedPaths.js';
@@ -231,6 +232,7 @@ export async function writeRooCodeHooks(workspaceRoot, proxyUrl, workspaceId = '
231
232
  const hookEventsDir = path.join(workspaceRoot, '.intutic', 'events');
232
233
  const rooRulesDir = path.join(workspaceRoot, '.roorules');
233
234
  const rooHooksDir = path.join(rooRulesDir, 'hooks');
235
+ await keepOriginal(path.join(rooHooksDir, 'hooks.json'), workspaceRoot);
234
236
  await Promise.all([
235
237
  fs.mkdir(hookScriptDir, { recursive: true }),
236
238
  fs.mkdir(hookEventsDir, { recursive: true }),
@@ -256,15 +258,10 @@ export async function writeRooCodeHooks(workspaceRoot, proxyUrl, workspaceId = '
256
258
  }
257
259
  if (rooRulesIsDir) {
258
260
  // Write README.md inside the directory
259
- const readmePath = path.join(rooRulesPath, 'README.md');
260
- const tmpReadme = readmePath + '.intutic-tmp';
261
- await fs.writeFile(tmpReadme, buildRooRulesContent(), 'utf-8');
262
- await fs.rename(tmpReadme, readmePath);
261
+ await writeOwnedFile(path.join(rooRulesPath, 'README.md'), workspaceRoot, buildRooRulesContent());
263
262
  }
264
263
  else {
265
- const tmpRooRules = rooRulesPath + '.intutic-tmp';
266
- await fs.writeFile(tmpRooRules, buildRooRulesContent(), 'utf-8');
267
- await fs.rename(tmpRooRules, rooRulesPath);
264
+ await writeOwnedFile(rooRulesPath, workspaceRoot, buildRooRulesContent());
268
265
  }
269
266
  log.info({ action: 'roo_rules_written' }, 'Roo Code .roorules written');
270
267
  // ── 4. Write .roorules/hooks/hooks.json (atomic) ──────────────────────────
@@ -278,9 +275,7 @@ export async function writeRooCodeHooks(workspaceRoot, proxyUrl, workspaceId = '
278
275
  },
279
276
  ],
280
277
  };
281
- const tmpHooksJson = hooksJsonPath + '.intutic-tmp';
282
- await fs.writeFile(tmpHooksJson, JSON.stringify(hooksConfig, null, 2) + '\n', 'utf-8');
283
- await fs.rename(tmpHooksJson, hooksJsonPath);
278
+ await writeOwnedFile(hooksJsonPath, workspaceRoot, JSON.stringify(hooksConfig, null, 2) + '\n');
284
279
  log.info({ action: 'roo_hooks_json_written', path: hooksJsonPath }, 'Roo Code hooks.json written');
285
280
  }
286
281
  //# sourceMappingURL=rooCodeHooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rooCodeHooks.js","sourceRoot":"","sources":["../../src/harness/rooCodeHooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rooCodeHooks.js","sourceRoot":"","sources":["../../src/harness/rooCodeHooks.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,9 @@
5
5
  * (.windsurf/hooks.json) governance hooks using the Windsurf Cascade
6
6
  * hook system (exit code 2 = block).
7
7
  *
8
- * Also writes the proxy settings into ~/.codeium/windsurf/settings.json
9
- * so that Windsurf routes HTTP traffic through the Intutic TLS MITM proxy,
8
+ * Also writes the proxy settings into Windsurf's user settings.json (see
9
+ * `windsurfSettingsPath`) so that Windsurf routes HTTP traffic through the
10
+ * Intutic TLS MITM proxy,
10
11
  * enabling governance of Cascade AI traffic that has no native base URL override.
11
12
  *
12
13
  * LLD #14 — Phase 3 cross-harness defence
@@ -86,13 +87,30 @@
86
87
  *
87
88
  * @module
88
89
  */
90
+ /**
91
+ * Windsurf Desktop's user `settings.json`, the file `http.proxy` is read from.
92
+ * Windsurf is a VS Code fork, so it keeps user settings where VS Code does,
93
+ * under its own product name (`nameShort: "Windsurf"` in the app's
94
+ * product.json): `User/settings.json` in the platform's application-data
95
+ * directory. Checked against a Windsurf 1.9600.41 install on macOS, whose
96
+ * user settings live in ~/Library/Application Support/Windsurf/User/; the
97
+ * Linux and
98
+ * Windows directories are VS Code's
99
+ * (https://code.visualstudio.com/docs/configure/settings#_settings-file-locations).
100
+ * `~/.codeium/windsurf/` holds Cascade's hooks.json and mcp_config.json, not
101
+ * editor settings; earlier versions wrote the proxy keys there, where Windsurf
102
+ * never read them.
103
+ */
104
+ export declare function windsurfSettingsPath(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv, home?: string): string;
89
105
  /**
90
106
  * Write Windsurf hooks at user-level and workspace-level.
91
107
  * Also configures the HTTP proxy to route through Intutic's TLS MITM layer.
92
108
  *
93
109
  * @param workspaceRoot - Absolute workspace root.
94
110
  * @param proxyUrl - Intutic proxy URL (used in the hook script comment).
95
- * @param proxyPort - Local port where the Intutic proxy is listening (for TLS MITM).
111
+ * @param proxyPort - Local port the Intutic proxy listens on; it serves
112
+ * HTTP CONNECT (TLS MITM) on the same listener as its
113
+ * API routes.
96
114
  * @param workspaceId - Workspace ID embedded in hook event payloads.
97
115
  */
98
116
  export declare function writeWindsurfHooks(workspaceRoot: string, proxyUrl: string, proxyPort?: number, workspaceId?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"windsurfHooks.d.ts","sourceRoot":"","sources":["../../src/harness/windsurfHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AAuKH;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAO,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,IAAI,CAAC,CAwEf"}
1
+ {"version":3,"file":"windsurfHooks.d.ts","sourceRoot":"","sources":["../../src/harness/windsurfHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AAoBH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAqB,GAC1B,MAAM,CAKR;AA6KD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAO,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,IAAI,CAAC,CAuEf"}
@@ -5,8 +5,9 @@
5
5
  * (.windsurf/hooks.json) governance hooks using the Windsurf Cascade
6
6
  * hook system (exit code 2 = block).
7
7
  *
8
- * Also writes the proxy settings into ~/.codeium/windsurf/settings.json
9
- * so that Windsurf routes HTTP traffic through the Intutic TLS MITM proxy,
8
+ * Also writes the proxy settings into Windsurf's user settings.json (see
9
+ * `windsurfSettingsPath`) so that Windsurf routes HTTP traffic through the
10
+ * Intutic TLS MITM proxy,
10
11
  * enabling governance of Cascade AI traffic that has no native base URL override.
11
12
  *
12
13
  * LLD #14 — Phase 3 cross-harness defence
@@ -90,30 +91,79 @@ import * as fs from 'node:fs/promises';
90
91
  import * as path from 'node:path';
91
92
  import * as os from 'node:os';
92
93
  import { createLogger } from '@intutic/logger';
94
+ import { keepOriginal, noteProxyUrl } from '../disconnect/originals.js';
93
95
  import { newIso } from '@intutic/id';
96
+ import { readJsonObjectForMerge } from './jsonMergeTarget.js';
94
97
  import { emitJsGate, emitJsFailClosedPrelude } from './gateBody.js';
95
98
  import { configureJetBrainsWindsurfProxy } from './windsurfJetBrainsProxy.js';
96
99
  const log = createLogger('sync-windsurf-hooks');
97
- const WINDSURF_USER_DIR = path.join(os.homedir(), '.codeium', 'windsurf');
100
+ /** Desktop's user-level directory, resolved at call time so tests that move
101
+ * HOME are honoured. */
102
+ function windsurfUserDir() {
103
+ return path.join(os.homedir(), '.codeium', 'windsurf');
104
+ }
105
+ /**
106
+ * Windsurf Desktop's user `settings.json`, the file `http.proxy` is read from.
107
+ * Windsurf is a VS Code fork, so it keeps user settings where VS Code does,
108
+ * under its own product name (`nameShort: "Windsurf"` in the app's
109
+ * product.json): `User/settings.json` in the platform's application-data
110
+ * directory. Checked against a Windsurf 1.9600.41 install on macOS, whose
111
+ * user settings live in ~/Library/Application Support/Windsurf/User/; the
112
+ * Linux and
113
+ * Windows directories are VS Code's
114
+ * (https://code.visualstudio.com/docs/configure/settings#_settings-file-locations).
115
+ * `~/.codeium/windsurf/` holds Cascade's hooks.json and mcp_config.json, not
116
+ * editor settings; earlier versions wrote the proxy keys there, where Windsurf
117
+ * never read them.
118
+ */
119
+ export function windsurfSettingsPath(platform = process.platform, env = process.env, home = os.homedir()) {
120
+ const user = ['Windsurf', 'User', 'settings.json'];
121
+ if (platform === 'darwin')
122
+ return path.join(home, 'Library', 'Application Support', ...user);
123
+ if (platform === 'win32')
124
+ return path.join(env.APPDATA || path.join(home, 'AppData', 'Roaming'), ...user);
125
+ return path.join(env.XDG_CONFIG_HOME || path.join(home, '.config'), ...user);
126
+ }
98
127
  /** The JetBrains plugin's user-level hooks.json lives directly under
99
128
  * `~/.codeium` — no `windsurf` subdirectory — confirmed against
100
129
  * docs.devin.ai/desktop/cascade/hooks (see module doc comment). Only
101
130
  * hooks.json goes here: this writer's `settings.json` proxy-config write
102
- * targets Desktop's known path specifically, and whether/how the
103
- * JetBrains plugin has an equivalent proxy-config surface was not
104
- * researched — out of scope for this fix, which is about hook dispatch. */
105
- const WINDSURF_JETBRAINS_USER_DIR = path.join(os.homedir(), '.codeium');
131
+ * targets Desktop's known path specifically; the JetBrains plugin's proxy
132
+ * is configured through the IDE platform instead (windsurfJetBrainsProxy.ts). */
133
+ function windsurfJetBrainsUserDir() {
134
+ return path.join(os.homedir(), '.codeium');
135
+ }
106
136
  /** Cascade's real pre-hook event names (see module doc comment). Each maps
107
137
  * to an ARRAY of hook entries in `hooks.json` — Windsurf's schema, unlike
108
138
  * Cursor's, has no `failClosed` field; exit code 2 is the only block
109
139
  * signal Cascade recognizes. */
110
140
  const CASCADE_HOOK_EVENTS = ['pre_run_command', 'pre_write_code', 'pre_mcp_tool_use'];
111
- function buildHooksConfig(hookScriptPath) {
112
- return {
113
- _comment: 'Intutic governance hooks — auto-generated. DO NOT EDIT.',
114
- _lastSync: newIso(),
115
- hooks: Object.fromEntries(CASCADE_HOOK_EVENTS.map((event) => [event, [{ command: `node "${hookScriptPath}"` }]])),
116
- };
141
+ function isRecord(v) {
142
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
143
+ }
144
+ /**
145
+ * Register the gate for every Cascade pre-hook event in `filePath`, keeping
146
+ * every hook the user registered there. The Intutic entry is recognised by
147
+ * its command, so repeated syncs replace it rather than stacking copies. A
148
+ * file that is not a plain JSON object is left alone (see jsonMergeTarget.ts).
149
+ */
150
+ async function mergeCascadeHooksJson(filePath, hookScriptPath, workspaceRoot) {
151
+ await keepOriginal(filePath, workspaceRoot);
152
+ const existing = await readJsonObjectForMerge(filePath);
153
+ if (existing === null)
154
+ return;
155
+ const command = `node "${hookScriptPath}"`;
156
+ const hooks = isRecord(existing.hooks) ? { ...existing.hooks } : {};
157
+ for (const event of CASCADE_HOOK_EVENTS) {
158
+ const current = Array.isArray(hooks[event]) ? hooks[event] : [];
159
+ hooks[event] = [...current.filter((e) => !(isRecord(e) && e.command === command)), { command }];
160
+ }
161
+ // Provenance fields earlier versions stamped when they owned the whole file.
162
+ delete existing._comment;
163
+ delete existing._lastSync;
164
+ delete existing._note;
165
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
166
+ await atomicWriteJson(filePath, { ...existing, hooks });
117
167
  }
118
168
  function buildHookScript(proxyUrl, workspaceRoot, workspaceId) {
119
169
  const hookEventsLog = path.join(workspaceRoot, '.intutic', 'events', 'hook-events.jsonl');
@@ -247,10 +297,12 @@ process.stdin.on('end', () => {
247
297
  *
248
298
  * @param workspaceRoot - Absolute workspace root.
249
299
  * @param proxyUrl - Intutic proxy URL (used in the hook script comment).
250
- * @param proxyPort - Local port where the Intutic proxy is listening (for TLS MITM).
300
+ * @param proxyPort - Local port the Intutic proxy listens on; it serves
301
+ * HTTP CONNECT (TLS MITM) on the same listener as its
302
+ * API routes.
251
303
  * @param workspaceId - Workspace ID embedded in hook event payloads.
252
304
  */
253
- export async function writeWindsurfHooks(workspaceRoot, proxyUrl, proxyPort = 8877, workspaceId = '') {
305
+ export async function writeWindsurfHooks(workspaceRoot, proxyUrl, proxyPort = 4000, workspaceId = '') {
254
306
  const hookScriptDir = path.join(workspaceRoot, '.intutic', 'hooks');
255
307
  await fs.mkdir(hookScriptDir, { recursive: true });
256
308
  // Ensure hook events log directory exists
@@ -260,48 +312,48 @@ export async function writeWindsurfHooks(workspaceRoot, proxyUrl, proxyPort = 88
260
312
  await fs.writeFile(tmpScript, buildHookScript(proxyUrl, workspaceRoot, workspaceId), 'utf-8');
261
313
  await fs.rename(tmpScript, hookScriptPath);
262
314
  await fs.chmod(hookScriptPath, 0o755);
263
- const config = buildHooksConfig(hookScriptPath);
264
315
  // 1. User-level hooks — Desktop's path.
265
- await fs.mkdir(WINDSURF_USER_DIR, { recursive: true });
266
- await atomicWriteJson(path.join(WINDSURF_USER_DIR, 'hooks.json'), config);
316
+ await mergeCascadeHooksJson(path.join(windsurfUserDir(), 'hooks.json'), hookScriptPath, workspaceRoot);
267
317
  log.info({ action: 'windsurf_hooks_written', level: 'user' }, 'Windsurf user-level hooks written');
268
- // 1b. User-level hooks — the JetBrains plugin's SEPARATE path. Same config
269
- // content: the JetBrains plugin's own changelog (v2.12.4) names
318
+ // 1b. User-level hooks — the JetBrains plugin's SEPARATE path. Same entries:
319
+ // the JetBrains plugin's own changelog (v2.12.4) names
270
320
  // `post_setup_worktree` — one of Cascade's documented event names — as a
271
321
  // hook it added, which is corroborating evidence (not a guess) that it
272
322
  // dispatches the same Cascade hook event/payload system as Desktop, just
273
323
  // reads its user-level config from this different file.
274
- await fs.mkdir(WINDSURF_JETBRAINS_USER_DIR, { recursive: true });
275
- await atomicWriteJson(path.join(WINDSURF_JETBRAINS_USER_DIR, 'hooks.json'), config);
324
+ await mergeCascadeHooksJson(path.join(windsurfJetBrainsUserDir(), 'hooks.json'), hookScriptPath, workspaceRoot);
276
325
  log.info({ action: 'windsurf_hooks_written', level: 'user-jetbrains' }, 'Windsurf JetBrains plugin user-level hooks written');
277
326
  // 2. Workspace-level hooks (.windsurf/hooks.json) — the SAME relative path
278
327
  // for both Desktop and the JetBrains plugin (workspace-root-relative, not
279
328
  // app-specific), so this one write already covers both. Hooks configured
280
329
  // at multiple levels are NOT one-wins: Cascade runs every level's hooks
281
330
  // for a matching event, in order system → user → workspace (confirmed
282
- // against docs.devin.ai/desktop/cascade/hooks) — an earlier version of
283
- // this comment claimed user-level "takes precedence," which was another
284
- // unverified assumption.
285
- const wsWindsurfDir = path.join(workspaceRoot, '.windsurf');
286
- await fs.mkdir(wsWindsurfDir, { recursive: true });
287
- await atomicWriteJson(path.join(wsWindsurfDir, 'hooks.json'), {
288
- ...config,
289
- _note: 'Workspace-level hooks — agent may be able to modify this file. Runs IN ADDITION to ' +
290
- 'user-level hooks (Cascade runs every configured level for a matching event; last-wins/' +
291
- 'precedence is not how this works), so this file being tampered with does not disable ' +
292
- 'user-level enforcement.',
293
- });
331
+ // against docs.devin.ai/desktop/cascade/hooks), so this file being edited
332
+ // by an agent does not disable the user-level registration above.
333
+ await mergeCascadeHooksJson(path.join(workspaceRoot, '.windsurf', 'hooks.json'), hookScriptPath, workspaceRoot);
294
334
  log.info({ action: 'windsurf_hooks_written', level: 'workspace' }, 'Windsurf workspace-level hooks written');
295
- // 3. HTTP proxy settings — Desktop's own settings.json.
296
- const wsSettings = {
297
- _comment: 'Intutic proxy settings — auto-generated. DO NOT EDIT.',
298
- _lastSync: newIso(),
299
- 'http.proxy': `http://127.0.0.1:${proxyPort}`,
300
- 'http.proxyStrictSSL': false, // Our CA cert handles validation
301
- 'codeium.proxy': `http://127.0.0.1:${proxyPort}`,
302
- };
303
- await atomicWriteJson(path.join(WINDSURF_USER_DIR, 'settings.json'), wsSettings);
304
- log.info({ action: 'windsurf_proxy_configured', port: proxyPort }, 'Windsurf HTTP proxy configured for TLS MITM interception');
335
+ // 3. HTTP proxy settings — Desktop's own settings.json. Merged: the keys
336
+ // below are the only ones Intutic owns, and a file that is not a plain JSON
337
+ // object is left alone (see jsonMergeTarget.ts).
338
+ const settingsPath = windsurfSettingsPath();
339
+ await keepOriginal(settingsPath, workspaceRoot);
340
+ // The local listener, not the configured proxy URL: disconnect recognises
341
+ // the proxy settings below, and the JetBrains ones, by it.
342
+ await noteProxyUrl(`http://127.0.0.1:${proxyPort}`);
343
+ const existingSettings = await readJsonObjectForMerge(settingsPath);
344
+ if (existingSettings !== null) {
345
+ // Provenance fields earlier versions stamped when they owned the whole file.
346
+ delete existingSettings._comment;
347
+ delete existingSettings._lastSync;
348
+ await fs.mkdir(path.dirname(settingsPath), { recursive: true });
349
+ await atomicWriteJson(settingsPath, {
350
+ ...existingSettings,
351
+ 'http.proxy': `http://127.0.0.1:${proxyPort}`,
352
+ 'http.proxyStrictSSL': false, // Our CA cert handles validation
353
+ 'codeium.proxy': `http://127.0.0.1:${proxyPort}`,
354
+ });
355
+ log.info({ action: 'windsurf_proxy_configured', port: proxyPort }, 'Windsurf HTTP proxy configured for TLS MITM interception');
356
+ }
305
357
  // 4. HTTP proxy settings — every installed JetBrains product. See
306
358
  // windsurfJetBrainsProxy.ts's module doc comment for what this
307
359
  // configures and why it needs two merge-writes per product rather than