@intutic/sync-daemon 2.1.0 → 2.3.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 (288) hide show
  1. package/README.md +1 -1
  2. package/dist/agentReporter.d.ts +24 -11
  3. package/dist/agentReporter.d.ts.map +1 -1
  4. package/dist/agentReporter.js +20 -13
  5. package/dist/agentReporter.js.map +1 -1
  6. package/dist/configReader.d.ts +45 -25
  7. package/dist/configReader.d.ts.map +1 -1
  8. package/dist/configReader.js +70 -46
  9. package/dist/configReader.js.map +1 -1
  10. package/dist/configWriter.d.ts +32 -45
  11. package/dist/configWriter.d.ts.map +1 -1
  12. package/dist/configWriter.js +52 -686
  13. package/dist/configWriter.js.map +1 -1
  14. package/dist/disconnect/harnesses.d.ts +29 -0
  15. package/dist/disconnect/harnesses.d.ts.map +1 -0
  16. package/dist/disconnect/harnesses.js +805 -0
  17. package/dist/disconnect/harnesses.js.map +1 -0
  18. package/dist/disconnect/index.d.ts +25 -0
  19. package/dist/disconnect/index.d.ts.map +1 -0
  20. package/dist/disconnect/index.js +92 -0
  21. package/dist/disconnect/index.js.map +1 -0
  22. package/dist/disconnect/mcp.d.ts +81 -0
  23. package/dist/disconnect/mcp.d.ts.map +1 -0
  24. package/dist/disconnect/mcp.js +354 -0
  25. package/dist/disconnect/mcp.js.map +1 -0
  26. package/dist/disconnect/originals.d.ts +88 -0
  27. package/dist/disconnect/originals.d.ts.map +1 -0
  28. package/dist/disconnect/originals.js +257 -0
  29. package/dist/disconnect/originals.js.map +1 -0
  30. package/dist/disconnect/plan.d.ts +175 -0
  31. package/dist/disconnect/plan.d.ts.map +1 -0
  32. package/dist/disconnect/plan.js +580 -0
  33. package/dist/disconnect/plan.js.map +1 -0
  34. package/dist/disconnect/recognise.d.ts +43 -0
  35. package/dist/disconnect/recognise.d.ts.map +1 -0
  36. package/dist/disconnect/recognise.js +108 -0
  37. package/dist/disconnect/recognise.js.map +1 -0
  38. package/dist/disconnect/tomlLines.d.ts +39 -0
  39. package/dist/disconnect/tomlLines.d.ts.map +1 -0
  40. package/dist/disconnect/tomlLines.js +105 -0
  41. package/dist/disconnect/tomlLines.js.map +1 -0
  42. package/dist/harness/aiderConfigMerger.d.ts +29 -8
  43. package/dist/harness/aiderConfigMerger.d.ts.map +1 -1
  44. package/dist/harness/aiderConfigMerger.js +63 -12
  45. package/dist/harness/aiderConfigMerger.js.map +1 -1
  46. package/dist/harness/antigravityCliHooks.d.ts +61 -0
  47. package/dist/harness/antigravityCliHooks.d.ts.map +1 -0
  48. package/dist/harness/antigravityCliHooks.js +207 -0
  49. package/dist/harness/antigravityCliHooks.js.map +1 -0
  50. package/dist/harness/antigravityHooks.d.ts +12 -2
  51. package/dist/harness/antigravityHooks.d.ts.map +1 -1
  52. package/dist/harness/antigravityHooks.js +38 -16
  53. package/dist/harness/antigravityHooks.js.map +1 -1
  54. package/dist/harness/antigravityProducts.d.ts +40 -0
  55. package/dist/harness/antigravityProducts.d.ts.map +1 -0
  56. package/dist/harness/antigravityProducts.js +109 -0
  57. package/dist/harness/antigravityProducts.js.map +1 -0
  58. package/dist/harness/claudeAgentsMd.d.ts +29 -0
  59. package/dist/harness/claudeAgentsMd.d.ts.map +1 -0
  60. package/dist/harness/claudeAgentsMd.js +80 -0
  61. package/dist/harness/claudeAgentsMd.js.map +1 -0
  62. package/dist/harness/claudeCodeHooks.d.ts +6 -6
  63. package/dist/harness/claudeCodeHooks.d.ts.map +1 -1
  64. package/dist/harness/claudeCodeHooks.js +115 -28
  65. package/dist/harness/claudeCodeHooks.js.map +1 -1
  66. package/dist/harness/claudeProjectApproval.d.ts +53 -0
  67. package/dist/harness/claudeProjectApproval.d.ts.map +1 -0
  68. package/dist/harness/claudeProjectApproval.js +159 -0
  69. package/dist/harness/claudeProjectApproval.js.map +1 -0
  70. package/dist/harness/clineHooks.d.ts +0 -1
  71. package/dist/harness/clineHooks.d.ts.map +1 -1
  72. package/dist/harness/clineHooks.js +13 -4
  73. package/dist/harness/clineHooks.js.map +1 -1
  74. package/dist/harness/codexConfigMerger.d.ts.map +1 -1
  75. package/dist/harness/codexConfigMerger.js +4 -0
  76. package/dist/harness/codexConfigMerger.js.map +1 -1
  77. package/dist/harness/codexHooks.d.ts +2 -0
  78. package/dist/harness/codexHooks.d.ts.map +1 -1
  79. package/dist/harness/codexHooks.js +15 -4
  80. package/dist/harness/codexHooks.js.map +1 -1
  81. package/dist/harness/continueConfigMerger.d.ts.map +1 -1
  82. package/dist/harness/continueConfigMerger.js +4 -0
  83. package/dist/harness/continueConfigMerger.js.map +1 -1
  84. package/dist/harness/cursorHooks.d.ts +5 -2
  85. package/dist/harness/cursorHooks.d.ts.map +1 -1
  86. package/dist/harness/cursorHooks.js +12 -3
  87. package/dist/harness/cursorHooks.js.map +1 -1
  88. package/dist/harness/dshHooks.d.ts +5 -5
  89. package/dist/harness/dshHooks.d.ts.map +1 -1
  90. package/dist/harness/dshHooks.js +12 -5
  91. package/dist/harness/dshHooks.js.map +1 -1
  92. package/dist/harness/gateArtifacts.d.ts +35 -0
  93. package/dist/harness/gateArtifacts.d.ts.map +1 -0
  94. package/dist/harness/gateArtifacts.js +88 -0
  95. package/dist/harness/gateArtifacts.js.map +1 -0
  96. package/dist/harness/gateBody.d.ts +195 -69
  97. package/dist/harness/gateBody.d.ts.map +1 -1
  98. package/dist/harness/gateBody.js +847 -182
  99. package/dist/harness/gateBody.js.map +1 -1
  100. package/dist/harness/gateSightings.d.ts +47 -0
  101. package/dist/harness/gateSightings.d.ts.map +1 -0
  102. package/dist/harness/gateSightings.js +159 -0
  103. package/dist/harness/gateSightings.js.map +1 -0
  104. package/dist/harness/githubCopilotHooks.d.ts.map +1 -1
  105. package/dist/harness/githubCopilotHooks.js +11 -10
  106. package/dist/harness/githubCopilotHooks.js.map +1 -1
  107. package/dist/harness/gooseHardener.d.ts +0 -1
  108. package/dist/harness/gooseHardener.d.ts.map +1 -1
  109. package/dist/harness/gooseHardener.js +1 -1
  110. package/dist/harness/gooseHardener.js.map +1 -1
  111. package/dist/harness/gooseHooks.d.ts +29 -1
  112. package/dist/harness/gooseHooks.d.ts.map +1 -1
  113. package/dist/harness/gooseHooks.js +107 -69
  114. package/dist/harness/gooseHooks.js.map +1 -1
  115. package/dist/harness/grokHooks.d.ts +2 -2
  116. package/dist/harness/grokHooks.d.ts.map +1 -1
  117. package/dist/harness/grokHooks.js +20 -18
  118. package/dist/harness/grokHooks.js.map +1 -1
  119. package/dist/harness/hermesHooks.d.ts +18 -8
  120. package/dist/harness/hermesHooks.d.ts.map +1 -1
  121. package/dist/harness/hermesHooks.js +55 -19
  122. package/dist/harness/hermesHooks.js.map +1 -1
  123. package/dist/harness/holdRedaction.d.ts +4 -1
  124. package/dist/harness/holdRedaction.d.ts.map +1 -1
  125. package/dist/harness/holdRedaction.js +32 -8
  126. package/dist/harness/holdRedaction.js.map +1 -1
  127. package/dist/harness/jetbrainsXmlConfig.d.ts +20 -0
  128. package/dist/harness/jetbrainsXmlConfig.d.ts.map +1 -1
  129. package/dist/harness/jetbrainsXmlConfig.js +39 -18
  130. package/dist/harness/jetbrainsXmlConfig.js.map +1 -1
  131. package/dist/harness/mcpAutoWrite.d.ts +62 -25
  132. package/dist/harness/mcpAutoWrite.d.ts.map +1 -1
  133. package/dist/harness/mcpAutoWrite.js +406 -95
  134. package/dist/harness/mcpAutoWrite.js.map +1 -1
  135. package/dist/harness/museHooks.d.ts +3 -3
  136. package/dist/harness/museHooks.d.ts.map +1 -1
  137. package/dist/harness/museHooks.js +15 -7
  138. package/dist/harness/museHooks.js.map +1 -1
  139. package/dist/harness/n8nHooks.d.ts +0 -1
  140. package/dist/harness/n8nHooks.d.ts.map +1 -1
  141. package/dist/harness/n8nHooks.js +4 -1
  142. package/dist/harness/n8nHooks.js.map +1 -1
  143. package/dist/harness/openCodeHooks.d.ts +2 -2
  144. package/dist/harness/openCodeHooks.d.ts.map +1 -1
  145. package/dist/harness/openCodeHooks.js +9 -8
  146. package/dist/harness/openCodeHooks.js.map +1 -1
  147. package/dist/harness/openWebuiHooks.d.ts +0 -1
  148. package/dist/harness/openWebuiHooks.d.ts.map +1 -1
  149. package/dist/harness/openWebuiHooks.js +11 -3
  150. package/dist/harness/openWebuiHooks.js.map +1 -1
  151. package/dist/harness/openclawHooks.d.ts +75 -18
  152. package/dist/harness/openclawHooks.d.ts.map +1 -1
  153. package/dist/harness/openclawHooks.js +214 -160
  154. package/dist/harness/openclawHooks.js.map +1 -1
  155. package/dist/harness/openhandsHooks.d.ts +37 -11
  156. package/dist/harness/openhandsHooks.d.ts.map +1 -1
  157. package/dist/harness/openhandsHooks.js +148 -97
  158. package/dist/harness/openhandsHooks.js.map +1 -1
  159. package/dist/harness/piHooks.d.ts +52 -17
  160. package/dist/harness/piHooks.d.ts.map +1 -1
  161. package/dist/harness/piHooks.js +177 -163
  162. package/dist/harness/piHooks.js.map +1 -1
  163. package/dist/harness/protectedPaths.d.ts +107 -25
  164. package/dist/harness/protectedPaths.d.ts.map +1 -1
  165. package/dist/harness/protectedPaths.js +342 -48
  166. package/dist/harness/protectedPaths.js.map +1 -1
  167. package/dist/harness/rulesSection.d.ts +62 -0
  168. package/dist/harness/rulesSection.d.ts.map +1 -0
  169. package/dist/harness/rulesSection.js +145 -0
  170. package/dist/harness/rulesSection.js.map +1 -0
  171. package/dist/harness/windsurfHooks.d.ts +18 -3
  172. package/dist/harness/windsurfHooks.d.ts.map +1 -1
  173. package/dist/harness/windsurfHooks.js +41 -8
  174. package/dist/harness/windsurfHooks.js.map +1 -1
  175. package/dist/harness/windsurfJetBrainsProxy.d.ts +1 -1
  176. package/dist/harness/windsurfJetBrainsProxy.d.ts.map +1 -1
  177. package/dist/harness/windsurfJetBrainsProxy.js +5 -1
  178. package/dist/harness/windsurfJetBrainsProxy.js.map +1 -1
  179. package/dist/index.d.ts +21 -20
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.js +19 -19
  182. package/dist/index.js.map +1 -1
  183. package/dist/inventory.d.ts +53 -0
  184. package/dist/inventory.d.ts.map +1 -0
  185. package/dist/inventory.js +133 -0
  186. package/dist/inventory.js.map +1 -0
  187. package/dist/lib/complianceProbes.d.ts +2 -1
  188. package/dist/lib/complianceProbes.d.ts.map +1 -1
  189. package/dist/lib/complianceProbes.js +1 -1
  190. package/dist/lib/complianceProbes.js.map +1 -1
  191. package/dist/lib/decisionsDigest.d.ts +35 -17
  192. package/dist/lib/decisionsDigest.d.ts.map +1 -1
  193. package/dist/lib/decisionsDigest.js +106 -47
  194. package/dist/lib/decisionsDigest.js.map +1 -1
  195. package/dist/lib/egressPolicy.d.ts +2 -2
  196. package/dist/lib/egressPolicy.js +2 -2
  197. package/dist/lib/mcpRegistryPy.d.ts +11 -0
  198. package/dist/lib/mcpRegistryPy.d.ts.map +1 -0
  199. package/dist/lib/mcpRegistryPy.js +173 -0
  200. package/dist/lib/mcpRegistryPy.js.map +1 -0
  201. package/dist/lib/phrasesPy.d.ts +11 -0
  202. package/dist/lib/phrasesPy.d.ts.map +1 -0
  203. package/dist/lib/phrasesPy.js +351 -0
  204. package/dist/lib/phrasesPy.js.map +1 -0
  205. package/dist/lib/policySnapshot.d.ts +63 -9
  206. package/dist/lib/policySnapshot.d.ts.map +1 -1
  207. package/dist/lib/policySnapshot.js +269 -45
  208. package/dist/lib/policySnapshot.js.map +1 -1
  209. package/dist/lib/processPoller.d.ts.map +1 -1
  210. package/dist/lib/processPoller.js +9 -2
  211. package/dist/lib/processPoller.js.map +1 -1
  212. package/dist/lib/regexLinearity.d.ts +43 -0
  213. package/dist/lib/regexLinearity.d.ts.map +1 -0
  214. package/dist/lib/regexLinearity.js +275 -0
  215. package/dist/lib/regexLinearity.js.map +1 -0
  216. package/dist/lib/runtimeEnv.d.ts +1 -3
  217. package/dist/lib/runtimeEnv.d.ts.map +1 -1
  218. package/dist/lib/runtimeEnv.js +0 -2
  219. package/dist/lib/runtimeEnv.js.map +1 -1
  220. package/dist/lib/sequencePy.d.ts +10 -0
  221. package/dist/lib/sequencePy.d.ts.map +1 -0
  222. package/dist/lib/sequencePy.js +102 -0
  223. package/dist/lib/sequencePy.js.map +1 -0
  224. package/dist/sessionReporter.d.ts +18 -12
  225. package/dist/sessionReporter.d.ts.map +1 -1
  226. package/dist/sessionReporter.js +37 -24
  227. package/dist/sessionReporter.js.map +1 -1
  228. package/dist/skillWriter.d.ts +23 -5
  229. package/dist/skillWriter.d.ts.map +1 -1
  230. package/dist/skillWriter.js +159 -16
  231. package/dist/skillWriter.js.map +1 -1
  232. package/dist/syncCycle.d.ts +142 -0
  233. package/dist/syncCycle.d.ts.map +1 -0
  234. package/dist/syncCycle.js +327 -0
  235. package/dist/syncCycle.js.map +1 -0
  236. package/dist/trajectoryMonitor.d.ts +2 -4
  237. package/dist/trajectoryMonitor.d.ts.map +1 -1
  238. package/dist/trajectoryMonitor.js +2 -5
  239. package/dist/trajectoryMonitor.js.map +1 -1
  240. package/dist/watcher/driftWatcher.d.ts +0 -1
  241. package/dist/watcher/driftWatcher.d.ts.map +1 -1
  242. package/dist/watcher/driftWatcher.js +1 -2
  243. package/dist/watcher/driftWatcher.js.map +1 -1
  244. package/dist/watcher/settingsGuard.d.ts +36 -7
  245. package/dist/watcher/settingsGuard.d.ts.map +1 -1
  246. package/dist/watcher/settingsGuard.js +397 -60
  247. package/dist/watcher/settingsGuard.js.map +1 -1
  248. package/dist/watcher/vscodeHookSettings.d.ts +30 -0
  249. package/dist/watcher/vscodeHookSettings.d.ts.map +1 -0
  250. package/dist/watcher/vscodeHookSettings.js +170 -0
  251. package/dist/watcher/vscodeHookSettings.js.map +1 -0
  252. package/dist/wsClient.d.ts +0 -1
  253. package/dist/wsClient.d.ts.map +1 -1
  254. package/dist/wsClient.js +0 -1
  255. package/dist/wsClient.js.map +1 -1
  256. package/package.json +5 -5
  257. package/dist/harness/claudeDesktopHooks.d.ts +0 -30
  258. package/dist/harness/claudeDesktopHooks.d.ts.map +0 -1
  259. package/dist/harness/claudeDesktopHooks.js +0 -254
  260. package/dist/harness/claudeDesktopHooks.js.map +0 -1
  261. package/dist/harness/continueHooks.d.ts +0 -63
  262. package/dist/harness/continueHooks.d.ts.map +0 -1
  263. package/dist/harness/continueHooks.js +0 -247
  264. package/dist/harness/continueHooks.js.map +0 -1
  265. package/dist/harness/gateKind.d.ts +0 -164
  266. package/dist/harness/gateKind.d.ts.map +0 -1
  267. package/dist/harness/gateKind.js +0 -144
  268. package/dist/harness/gateKind.js.map +0 -1
  269. package/dist/harness/rooCodeHooks.d.ts +0 -31
  270. package/dist/harness/rooCodeHooks.d.ts.map +0 -1
  271. package/dist/harness/rooCodeHooks.js +0 -286
  272. package/dist/harness/rooCodeHooks.js.map +0 -1
  273. package/dist/hashReporter.d.ts +0 -33
  274. package/dist/hashReporter.d.ts.map +0 -1
  275. package/dist/hashReporter.js +0 -69
  276. package/dist/hashReporter.js.map +0 -1
  277. package/dist/integrityStore.d.ts +0 -35
  278. package/dist/integrityStore.d.ts.map +0 -1
  279. package/dist/integrityStore.js +0 -71
  280. package/dist/integrityStore.js.map +0 -1
  281. package/dist/lib/gitWorktrees.d.ts +0 -140
  282. package/dist/lib/gitWorktrees.d.ts.map +0 -1
  283. package/dist/lib/gitWorktrees.js +0 -191
  284. package/dist/lib/gitWorktrees.js.map +0 -1
  285. package/dist/syncLoop.d.ts +0 -172
  286. package/dist/syncLoop.d.ts.map +0 -1
  287. package/dist/syncLoop.js +0 -878
  288. package/dist/syncLoop.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncCycle.d.ts","sourceRoot":"","sources":["../src/syncCycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGzF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAK/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAmC,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAStF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IACvC;;;2EAGuE;IACvE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC5B,GAAG,IAAI,CAkCP;AAED,qDAAqD;AACrD,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,YAAY,EAAE,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,SAAS,GAAE,WAAW,EAAO,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAKpE;AAED,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,QAAoD,CAAA;AAElG;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAA;IAC/C,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,UAAU,EAAE,OAAO,CAAA;CACpB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAuCpC;AAwBD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,SAAS,WAAW,EAAE,CAAA;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC,GAAG,OAAO,CAAC;IACV,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,CAAA;IACxE,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACzD,CAAC,CA6CD;AAED,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqE9F"}
@@ -0,0 +1,327 @@
1
+ /**
2
+ * syncCycle.ts — the per-cycle work `intutic connect` runs against the
3
+ * control plane.
4
+ *
5
+ * `intutic connect` (tools/cli/src/commands/connect.ts) owns the loop: it
6
+ * polls the control plane, listens for pushed config over the WebSocket, and
7
+ * on each cycle calls the helpers below. They live here, not in the CLI, so
8
+ * they can be tested without starting a daemon and so the gate-side caches
9
+ * are refreshed by exactly one implementation.
10
+ *
11
+ * This module used to also hold a second, complete loop (`startSyncLoop`)
12
+ * that nothing started; the service has always run `connect`. The behaviours
13
+ * only that loop had and the docs promise (SkillOpt edits, skill findings,
14
+ * the decisions log, the bundled rule-author skill) are the helpers below and
15
+ * run from `connect` now, as does its config capture (configReader.ts), which
16
+ * uploads file content only when the workspace turned that on.
17
+ *
18
+ * @module
19
+ */
20
+ import * as crypto from 'node:crypto';
21
+ import * as path from 'node:path';
22
+ import * as fs from 'node:fs';
23
+ import * as os from 'node:os';
24
+ import { newIso } from '@intutic/id';
25
+ import { deriveEnforcementInputs } from '@intutic/shared-types';
26
+ import { applyConfigEdits, loadLocalSopEntries } from './configWriter.js';
27
+ import { parseSopConstraints } from './harness/claudeCodeHooks.js';
28
+ import { refreshPolicySnapshot } from './lib/policySnapshot.js';
29
+ import { refreshApprovedBypasses } from './lib/approvedBypasses.js';
30
+ import { refreshEgressPolicy } from './lib/egressPolicy.js';
31
+ import { collectAgentReport, reportAgent } from './agentReporter.js';
32
+ import { startHarnessSession } from './sessionReporter.js';
33
+ import { presentGateIdentities } from './harness/antigravityProducts.js';
34
+ /** Narrow an unknown thrown value to a printable message. */
35
+ function errorMessage(err) {
36
+ return err instanceof Error ? err.message : String(err);
37
+ }
38
+ /**
39
+ * Turns a non-clean `scanSkillContent` result — already computed as part of
40
+ * `collectAgentReport`'s `facets.skills` — into a `skill_flagged` hook event.
41
+ *
42
+ * Deliberately reuses the report the daemon already built for this cycle
43
+ * rather than re-scanning: `agentReporter.ts`'s `collectSkills` runs
44
+ * `scanSkillContent` on every `.agents/skills/**\/SKILL.md` as part of
45
+ * building `facets.skills` already, so this only turns a result the daemon
46
+ * already has into a visible signal — it does not add a second scan pass.
47
+ *
48
+ * Appends directly to `.intutic/events/hook-events.jsonl`, the SAME file
49
+ * every emitted PreToolUse gate's `log_event`/`logEvent` writes to — not a
50
+ * new event pipeline. `drainHookEvents` (`claudeCodeHooks.ts`) picks this
51
+ * line up on its next pass exactly like a gate-written one, because it only
52
+ * ever reads the file; it does not care who appended a given line.
53
+ *
54
+ * Report-only, per `scanSkillContent`'s own doc comment on the unmeasured
55
+ * false-positive rate against real, benign skill markdown: this NEVER
56
+ * blocks, mutates, or removes a skill. `hookEvents.ts`'s
57
+ * `HookEventSchema.event` enum (control plane) counts `skill_flagged`
58
+ * exactly like `tool_flagged` — advisory telemetry, not an incident.
59
+ *
60
+ * A failure to append is caught and warned, never thrown: a governance
61
+ * telemetry write must not be able to abort the sync cycle it rides in on.
62
+ */
63
+ export function emitSkillFlaggedEvents(opts) {
64
+ const eventsLog = path.join(opts.workspaceRoot, '.intutic', 'events', 'hook-events.jsonl');
65
+ for (const skill of opts.skills) {
66
+ if (!skill.scanned || skill.clean)
67
+ continue;
68
+ const key = `${skill.source}:${skill.name}`;
69
+ if (opts.alreadyEmitted.has(key))
70
+ continue;
71
+ opts.alreadyEmitted.add(key);
72
+ try {
73
+ const ts = newIso();
74
+ const entry = JSON.stringify({
75
+ event: 'skill_flagged',
76
+ toolName: `skill:${skill.name}`,
77
+ reason: `scanSkillContent found ${skill.findingsCount} finding(s) in ` +
78
+ `${skill.source}/${skill.name}/SKILL.md — advisory only, see skillScan.ts`,
79
+ workspaceId: opts.workspaceId,
80
+ harnessType: opts.harnessType,
81
+ timestamp: ts,
82
+ incidentId: crypto
83
+ .createHash('sha1')
84
+ .update(ts + skill.name + opts.workspaceId)
85
+ .digest('hex')
86
+ .slice(0, 16),
87
+ // Made once and resent with this line: processed once however often the drain retries.
88
+ eventId: crypto.randomBytes(16).toString('hex'),
89
+ filePath: `${skill.source}/${skill.name}/SKILL.md`,
90
+ }) + '\n';
91
+ fs.mkdirSync(path.dirname(eventsLog), { recursive: true });
92
+ fs.appendFileSync(eventsLog, entry, { flag: 'a' });
93
+ }
94
+ catch (err) {
95
+ console.warn('[sync-daemon] failed to write skill_flagged event (non-fatal):', err);
96
+ }
97
+ }
98
+ }
99
+ /**
100
+ * The `review_before:` tokens the snapshot compiles into hold rules: from the
101
+ * synced SOPs' front matter and JSON blocks, the workspace settings, and the
102
+ * local `.intutic/sops`. The same parse the Claude Code writer runs for its
103
+ * pattern blacklist, so the two cannot disagree about what is held.
104
+ */
105
+ export async function localHoldTokensFor(workspaceRoot, sops, settings, harnesses = []) {
106
+ const local = await loadLocalSopEntries(workspaceRoot, harnesses);
107
+ return parseSopConstraints([...sops, ...local], settings).reviewBefore;
108
+ }
109
+ /**
110
+ * Refresh the three gate-side caches every hook reads: the policy snapshot
111
+ * (`~/.intutic/hooks/policy-snapshot.rules`), the approved review-hold
112
+ * bypasses and the central egress policy. Called on EVERY sync cycle, never
113
+ * only when the config version moved: policy changes without the version
114
+ * changing, and before this helper existed `connect` refreshed once at
115
+ * startup and never again, so a guardrail promoted mid-session reached a
116
+ * connected machine only on restart. None of the three throw; the return
117
+ * says which of them landed.
118
+ */
119
+ export async function refreshGateCaches(opts) {
120
+ const snapshot = (await refreshPolicySnapshot(opts)) !== null;
121
+ const bypasses = (await refreshApprovedBypasses(opts)) !== null;
122
+ const egress = (await refreshEgressPolicy(opts)) !== null;
123
+ return { snapshot, bypasses, egress };
124
+ }
125
+ /** Where the ids of SkillOpt suggestions that fully landed are remembered. */
126
+ export const APPLIED_SUGGESTIONS_RELATIVE_PATH = path.join('.intutic', 'applied-suggestions.json');
127
+ /**
128
+ * Apply the SkillOpt config edits the control plane sent with this config,
129
+ * and ack each outcome back (`POST /api/v1/skillopt/:id/apply-result`). A
130
+ * suggestion queued for auto-apply reaches `applied` only through that ack.
131
+ *
132
+ * Only ids whose every operation landed are remembered in
133
+ * `.intutic/applied-suggestions.json`, so a failed edit (a fuzzy-match miss,
134
+ * a refused write) is retried next cycle rather than forgotten. With
135
+ * `reapplyAll` every edit is applied again regardless: the caller has just
136
+ * rewritten the harness config files from the SOPs, which drops every overlay
137
+ * an earlier cycle applied. ADD is idempotent, so re-applying an edit that is
138
+ * still present changes nothing.
139
+ *
140
+ * Never throws: a failed apply or ack must not abort the sync cycle. A
141
+ * dropped ack only means the suggestion is synced and acked again next cycle.
142
+ */
143
+ export async function applySkillOptEdits(opts) {
144
+ const appliedEdits = opts.appliedEdits ?? [];
145
+ if (appliedEdits.length === 0)
146
+ return [];
147
+ const appliedPath = path.join(opts.workspaceRoot, APPLIED_SUGGESTIONS_RELATIVE_PATH);
148
+ let localAppliedIds = [];
149
+ try {
150
+ const parsed = JSON.parse(fs.readFileSync(appliedPath, 'utf-8'));
151
+ if (Array.isArray(parsed))
152
+ localAppliedIds = parsed.filter((id) => typeof id === 'string');
153
+ }
154
+ catch {
155
+ // Missing or unreadable: nothing has landed yet, so everything is applied.
156
+ }
157
+ const toApply = opts.reapplyAll
158
+ ? appliedEdits
159
+ : appliedEdits.filter((edit) => !localAppliedIds.includes(edit.suggestionId));
160
+ if (toApply.length === 0)
161
+ return [];
162
+ let results;
163
+ try {
164
+ results = await applyConfigEdits(opts.workspaceRoot, toApply, opts.bypassEnforcementTier);
165
+ }
166
+ catch (err) {
167
+ console.warn('[sync-daemon] Failed to apply SkillOpt config edits:', errorMessage(err));
168
+ return [];
169
+ }
170
+ for (const result of results) {
171
+ await reportApplyResult(opts.controlPlaneUrl, opts.apiKey, result);
172
+ }
173
+ const landed = results.filter((r) => r.ok).map((r) => r.suggestionId);
174
+ try {
175
+ fs.mkdirSync(path.dirname(appliedPath), { recursive: true });
176
+ fs.writeFileSync(appliedPath, JSON.stringify([...new Set([...localAppliedIds, ...landed])], null, 2), 'utf-8');
177
+ }
178
+ catch (err) {
179
+ // Not fatal: the next cycle applies these again, and ADD is idempotent.
180
+ console.warn('[sync-daemon] Could not record applied SkillOpt suggestions:', errorMessage(err));
181
+ }
182
+ return results;
183
+ }
184
+ /** Ack one SkillOpt apply outcome back to the control plane. Never throws. */
185
+ async function reportApplyResult(controlPlaneUrl, apiKey, result) {
186
+ try {
187
+ const res = await fetch(`${controlPlaneUrl}/api/v1/skillopt/${result.suggestionId}/apply-result`, {
188
+ method: 'POST',
189
+ headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${apiKey}` },
190
+ body: JSON.stringify({ ok: result.ok, perOperation: result.perOperation }),
191
+ signal: AbortSignal.timeout(10_000),
192
+ });
193
+ if (!res.ok) {
194
+ const body = await res.text().catch(() => '');
195
+ console.warn(`[sync-daemon] reportApplyResult failed for ${result.suggestionId} (${res.status}): ${body}`);
196
+ }
197
+ }
198
+ catch (err) {
199
+ console.warn(`[sync-daemon] reportApplyResult request failed for ${result.suggestionId}:`, errorMessage(err));
200
+ }
201
+ }
202
+ /**
203
+ * Register each harness as an agent with its facets, report one session per
204
+ * harness, and turn this cycle's skill-scan findings into `skill_flagged`
205
+ * events. Returns each harness's governance-coverage inputs, derived from the
206
+ * same facets, for the config capture.
207
+ *
208
+ * One harness failing must not stop the others, so failures are collected
209
+ * and returned rather than thrown.
210
+ */
211
+ export async function reportHarnessAgents(opts) {
212
+ const governanceInputs = {};
213
+ const failures = [];
214
+ // A skill is not harness-specific, and the scan runs once per harness.
215
+ const skillFlaggedThisCycle = new Set();
216
+ for (const harness of opts.harnesses) {
217
+ try {
218
+ // One agent per gate the harness has here: the silent-gate check expects
219
+ // a gate for each agent, so a product that is absent (Antigravity on a
220
+ // machine with only Gemini CLI) must not register one.
221
+ let report;
222
+ for (const gateId of await presentGateIdentities(harness, opts.workspaceRoot)) {
223
+ report = await collectAgentReport({
224
+ workspaceRoot: opts.workspaceRoot,
225
+ harnessType: harness,
226
+ gateIdentity: gateId,
227
+ configSynced: true,
228
+ dlpEnabled: true,
229
+ policyEnforced: true,
230
+ allowLocalVaults: opts.allowLocalVaults,
231
+ });
232
+ await reportAgent(opts.controlPlaneUrl, opts.apiKey, opts.workspaceId, report);
233
+ }
234
+ if (!report)
235
+ continue;
236
+ governanceInputs[harness] = deriveEnforcementInputs(report.facets);
237
+ emitSkillFlaggedEvents({
238
+ workspaceRoot: opts.workspaceRoot,
239
+ workspaceId: opts.workspaceId,
240
+ harnessType: harness,
241
+ skills: report.facets.skills,
242
+ alreadyEmitted: skillFlaggedThisCycle,
243
+ });
244
+ await startHarnessSession({
245
+ controlPlaneUrl: opts.controlPlaneUrl,
246
+ apiKey: opts.apiKey,
247
+ workspaceId: opts.workspaceId,
248
+ harnessType: harness,
249
+ workspaceRoot: opts.workspaceRoot,
250
+ ...(opts.proxyInstanceId ? { proxyInstanceId: opts.proxyInstanceId } : {}),
251
+ });
252
+ }
253
+ catch (err) {
254
+ failures.push({ harness, error: errorMessage(err) });
255
+ }
256
+ }
257
+ return { governanceInputs, failures };
258
+ }
259
+ export async function syncOfflineTraces(controlPlaneUrl, apiKey) {
260
+ const logsDir = path.join(os.homedir(), '.intutic', 'logs');
261
+ if (!fs.existsSync(logsDir))
262
+ return;
263
+ try {
264
+ const files = fs.readdirSync(logsDir);
265
+ const traceFiles = files.filter(f => f.startsWith('traces-') && f.endsWith('.jsonl'));
266
+ if (traceFiles.length === 0)
267
+ return;
268
+ for (const file of traceFiles) {
269
+ const originalPath = path.join(logsDir, file);
270
+ const syncingPath = originalPath + '.syncing';
271
+ // Rename to avoid write race conditions with the Rust proxy
272
+ try {
273
+ fs.renameSync(originalPath, syncingPath);
274
+ }
275
+ catch (renameErr) {
276
+ console.error(`[sync-daemon] Failed to lock/rename file ${file}:`, errorMessage(renameErr));
277
+ continue;
278
+ }
279
+ try {
280
+ const raw = fs.readFileSync(syncingPath, 'utf-8');
281
+ const lines = raw.split('\n').map(l => l.trim()).filter(Boolean);
282
+ if (lines.length === 0) {
283
+ // Empty file, just clean it up
284
+ fs.unlinkSync(syncingPath);
285
+ continue;
286
+ }
287
+ const traces = lines.map(line => JSON.parse(line));
288
+ console.log(`[sync-daemon] Found ${traces.length} offline traces to sync back in ${file}.`);
289
+ // Batch in groups of 100
290
+ const batchSize = 100;
291
+ for (let i = 0; i < traces.length; i += batchSize) {
292
+ const batch = traces.slice(i, i + batchSize);
293
+ const res = await fetch(`${controlPlaneUrl}/api/v1/traces/sync-back`, {
294
+ method: 'POST',
295
+ headers: {
296
+ 'Content-Type': 'application/json',
297
+ Authorization: `Bearer ${apiKey}`,
298
+ },
299
+ body: JSON.stringify({ traces: batch }),
300
+ });
301
+ if (!res.ok) {
302
+ throw new Error(`Sync-back API returned status ${res.status}`);
303
+ }
304
+ }
305
+ // Successfully synced this sharded file, delete it
306
+ fs.unlinkSync(syncingPath);
307
+ console.log(`[sync-daemon] Successfully synced ${traces.length} offline traces back from ${file}.`);
308
+ }
309
+ catch (err) {
310
+ console.error(`[sync-daemon] Failed to sync offline traces back from ${file}:`, errorMessage(err));
311
+ // Revert rename on failure to allow retry on next cycle
312
+ try {
313
+ if (fs.existsSync(syncingPath)) {
314
+ fs.renameSync(syncingPath, originalPath);
315
+ }
316
+ }
317
+ catch (revertErr) {
318
+ console.error(`[sync-daemon] Failed to revert rename for ${file}:`, errorMessage(revertErr));
319
+ }
320
+ }
321
+ }
322
+ }
323
+ catch (err) {
324
+ console.error(`[sync-daemon] Failed to scan offline traces directory:`, errorMessage(err));
325
+ }
326
+ }
327
+ //# sourceMappingURL=syncCycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncCycle.js","sourceRoot":"","sources":["../src/syncCycle.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,6 @@
11
11
  * - No LLM calls on developer machine (all judgment is server-side)
12
12
  * - Cooldown rate limiter: 1 analysis request per minute per session
13
13
  *
14
- * LLD #52 §4.1 — Daemon-side trajectory buffer
15
- *
16
14
  * @module
17
15
  */
18
16
  /** Individual trace event from the proxy pub/sub stream. */
@@ -20,7 +18,7 @@ export interface TraceEvent {
20
18
  sessionId: string;
21
19
  workspaceId: string;
22
20
  /**
23
- * DEPRECATED (TD-207): has always carried the task type, not a tool name.
21
+ * DEPRECATED: has always carried the task type, not a tool name.
24
22
  * Kept because deployed daemons key summary metrics off it. Prefer `tools`.
25
23
  */
26
24
  toolName: string;
@@ -132,7 +130,7 @@ export declare class TrajectoryMonitor {
132
130
  private submitSummary;
133
131
  private saveOffline;
134
132
  private drainOfflineTrajectories;
135
- /** Bounded best-effort reachability probe, same shape as syncLoop.ts's. */
133
+ /** Bounded best-effort reachability probe of the control plane. */
136
134
  private controlPlaneIsReachable;
137
135
  /** Get the number of active session buffers. */
138
136
  get activeSessionCount(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"trajectoryMonitor.d.ts","sourceRoot":"","sources":["../src/trajectoryMonitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trajectoryMonitor.d.ts","sourceRoot":"","sources":["../src/trajectoryMonitor.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,6 @@
11
11
  * - No LLM calls on developer machine (all judgment is server-side)
12
12
  * - Cooldown rate limiter: 1 analysis request per minute per session
13
13
  *
14
- * LLD #52 §4.1 — Daemon-side trajectory buffer
15
- *
16
14
  * @module
17
15
  */
18
16
  import { createLogger } from '@intutic/logger';
@@ -80,7 +78,7 @@ export class TrajectoryBuffer {
80
78
  // Real tool calls, flattened across the window's events. Falls back to
81
79
  // the legacy per-event toolName only when NO event carries a tools array —
82
80
  // i.e. an old proxy — because toolName has always held the task type
83
- // (TD-207) and mixing the two vocabularies in one list would make
81
+ // and mixing the two vocabularies in one list would make
84
82
  // uniqueTools and the consecutive-repeat scan meaningless.
85
83
  const flattenedToolCalls = this.events.flatMap((e) => e.tools ?? []);
86
84
  const anyToolArrays = this.events.some((e) => e.tools !== undefined);
@@ -171,7 +169,6 @@ export class TrajectoryMonitor {
171
169
  }, submitIntervalMs);
172
170
  // Note: Valkey subscription is handled by the sync-daemon's existing
173
171
  // Redis subscriber. Events are forwarded to this worker via postMessage.
174
- // See LLD #52 §4.1 for the worker thread lifecycle.
175
172
  }
176
173
  /**
177
174
  * Stop the monitor and clean up resources.
@@ -339,7 +336,7 @@ export class TrajectoryMonitor {
339
336
  log.error({ err }, 'Failed to drain offline trajectories');
340
337
  }
341
338
  }
342
- /** Bounded best-effort reachability probe, same shape as syncLoop.ts's. */
339
+ /** Bounded best-effort reachability probe of the control plane. */
343
340
  async controlPlaneIsReachable() {
344
341
  if (!this.config.controlPlaneUrl)
345
342
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"trajectoryMonitor.js","sourceRoot":"","sources":["../src/trajectoryMonitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trajectoryMonitor.js","sourceRoot":"","sources":["../src/trajectoryMonitor.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@
5
5
  * When changes are detected, it notifies the daemon via a callback to trigger
6
6
  * validation against the integrity baseline.
7
7
  *
8
- * LLD #14 — driftWatcher.ts
9
8
  * HLD §3.14 — Real-Time State Mirroring (Filesystem integrity checks)
10
9
  *
11
10
  * @module
@@ -1 +1 @@
1
- {"version":3,"file":"driftWatcher.d.ts","sourceRoot":"","sources":["../../src/watcher/driftWatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAMxD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,WAAW,EAAE,EACxB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC5C;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAoE/B"}
1
+ {"version":3,"file":"driftWatcher.d.ts","sourceRoot":"","sources":["../../src/watcher/driftWatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAMxD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,WAAW,EAAE,EACxB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC5C;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAoE/B"}
@@ -5,7 +5,6 @@
5
5
  * When changes are detected, it notifies the daemon via a callback to trigger
6
6
  * validation against the integrity baseline.
7
7
  *
8
- * LLD #14 — driftWatcher.ts
9
8
  * HLD §3.14 — Real-Time State Mirroring (Filesystem integrity checks)
10
9
  *
11
10
  * @module
@@ -58,7 +57,7 @@ export function startWatcher(workspaceRoot, harnesses, onChange) {
58
57
  // dsh's profiles ROOT directory is watched (via buildProtectedPaths)
59
58
  // before it exists on disk, precisely so its own CREATION — chokidar's
60
59
  // `addDir`, never `change`/`unlink` — is observable: that is the moment
61
- // TD-370's "silent no-profile window" closes, and settingsGuard.ts has
60
+ // dsh's "silent no-profile window" closes, and settingsGuard.ts has
62
61
  // nothing to register into until it does. Every other protected path
63
62
  // stays `change`/`unlink`-only, unchanged.
64
63
  const isDshProfilesCreation = event === 'addDir' && isDshProfilesRoot(path);
@@ -1 +1 @@
1
- {"version":3,"file":"driftWatcher.js","sourceRoot":"","sources":["../../src/watcher/driftWatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driftWatcher.js","sourceRoot":"","sources":["../../src/watcher/driftWatcher.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,19 @@
5
5
  * Called by the drift watcher whenever any protected governance config file changes.
6
6
  *
7
7
  * Behaviour per path type:
8
- * - JSON hook files (Cursor, Cline, OpenHands, Goose): validate marker presence, restore.
8
+ * - Gate files (`GATE_ARTIFACTS`): restored by their writer when deleted or
9
+ * no longer the generated gate.
10
+ * - JSON hook files (Cursor, Windsurf, OpenHands, Muse, Grok): validate marker presence, restore.
11
+ * - Registrations that name the gate script (Codex, GitHub Copilot, Hermes,
12
+ * the Goose config, OpenClaw's openclaw.json): restored while the gate is installed.
9
13
  * - Immutable files (Goose plugin): log governance_override_attempt incident instead of restoring.
10
- * - Text rules (.roorules, .clinerules): restore from last-written hash.
11
- * - Settings files (VS Code, Aider, claude_desktop_config.json): detect drift, restore.
14
+ * - VS Code settings: `chat.useHooks` or a `chat.hookFilesLocations` entry that switches
15
+ * off the GitHub Copilot gate is set back, and nothing else in the file is touched.
16
+ * - The policy snapshot: restored from the last copy the daemon verified when it differs.
17
+ * - Other settings files (claude_desktop_config.json, Grok's TOML): a deletion is logged as drift.
18
+ * - Gemini CLI's ~/.gemini/settings.json and Antigravity's
19
+ * ~/.gemini/config/hooks.json: restore when the gate registration is gone.
12
20
  *
13
- * LLD #14 — settingsGuard.ts
14
21
  * HLD §3.14 — Three-Tier Defense Cascade (Tier 1 Native Gating)
15
22
  *
16
23
  * @module
@@ -26,9 +33,26 @@ export declare function buildProtectedPaths(workspaceRoot: string): string[];
26
33
  * once dsh creates it; `driftWatcher.ts` needs to know to react to `addDir`
27
34
  * for this ONE path — every other protected path only reacts to
28
35
  * `change`/`unlink` (see that module's own comment) — so this predicate is
29
- * exported for it to check against. TD-370.
36
+ * exported for it to check against.
30
37
  */
31
38
  export declare function isDshProfilesRoot(changedPath: string): boolean;
39
+ /**
40
+ * Whether a change to `changedPath` is one {@link guardSettingsFile} judges:
41
+ * a path {@link buildProtectedPaths} lists, or a file under one it lists as a
42
+ * directory (dsh's profiles). The watcher's callback routes on this, so a
43
+ * path added to that list reaches the guard without a second edit there.
44
+ */
45
+ export declare function isGuardedPath(changedPath: string, workspaceRoot: string): boolean;
46
+ /**
47
+ * The policy snapshot's self-heal. When the live snapshot differs from the
48
+ * last one the daemon verified, the verified copy goes back in force at once;
49
+ * when there is no verified copy and the live one fails its digest, `resync`
50
+ * fetches a fresh one. Either way the tamper is reported. A gate reading the
51
+ * damaged snapshot in between refuses every MCP call
52
+ * (`POLICY_SNAPSHOT_UNVERIFIED`) and drops its other dynamic rules. Returns
53
+ * whether it found tampering.
54
+ */
55
+ export declare function guardPolicySnapshot(workspaceRoot: string, resync: () => Promise<unknown>, snapshotDir?: string): Promise<boolean>;
32
56
  /**
33
57
  * Inspect any protected governance config file and restore if tampered.
34
58
  *
@@ -37,12 +61,17 @@ export declare function isDshProfilesRoot(changedPath: string): boolean;
37
61
  * @param sops - Current SOP list.
38
62
  * @param proxyUrl - Current proxy URL.
39
63
  * @param settings - Optional passthrough settings.
64
+ * @param skip - Harnesses `intutic disconnect --harness` took out:
65
+ * their files are no longer governed, so a change to
66
+ * one is not tampering and is not restored.
67
+ * @param resyncPolicy - Fetches a fresh policy snapshot, for a damaged one
68
+ * with no verified copy to restore.
40
69
  * @returns true if tampering was detected.
41
70
  */
42
- export declare function guardSettingsFile(changedPath: string, workspaceRoot: string, sops: SyncSopEntry[], proxyUrl?: string, settings?: Record<string, unknown>): Promise<boolean>;
71
+ export declare function guardSettingsFile(changedPath: string, workspaceRoot: string, sops: SyncSopEntry[], proxyUrl?: string, settings?: Record<string, unknown>, skip?: ReadonlySet<string>, resyncPolicy?: () => Promise<unknown>): Promise<boolean>;
43
72
  /**
44
73
  * Side-effecting wrapper around `dshHooks.ts`'s pure `detectDshCoverageGap` —
45
- * logs TD-370's "silent no-profile window" as a `dsh_coverage_gap` warning
74
+ * logs dsh's "silent no-profile window" as a `dsh_coverage_gap` warning
46
75
  * when dsh is present on this machine but has zero profiles, so the window
47
76
  * is at least documented in the logs even though there is nothing to
48
77
  * restore into yet. Called once at `intutic connect` startup — see
@@ -1 +1 @@
1
- {"version":3,"file":"settingsGuard.d.ts","sourceRoot":"","sources":["../../src/watcher/settingsGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAsBzD,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAyDnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE9D;AA+BD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,YAAY,EAAE,EACpB,QAAQ,SAAK,EACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,OAAO,CAAC,CAuJlB;AAuID;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAW7D"}
1
+ {"version":3,"file":"settingsGuard.d.ts","sourceRoot":"","sources":["../../src/watcher/settingsGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAoEzD,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAuEnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAEjF;AAyDD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC9B,WAAW,GAAE,MAA6B,GACzC,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,YAAY,EAAE,EACpB,QAAQ,SAAK,EACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,GAAE,WAAW,CAAC,MAAM,CAAa,EACrC,YAAY,GAAE,MAAM,OAAO,CAAC,OAAO,CAAkB,GACpD,OAAO,CAAC,OAAO,CAAC,CA6LlB;AA8QD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAW7D"}