@intutic/sync-daemon 2.1.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 (179) hide show
  1. package/dist/agentReporter.d.ts +1 -0
  2. package/dist/agentReporter.d.ts.map +1 -1
  3. package/dist/configReader.d.ts +44 -22
  4. package/dist/configReader.d.ts.map +1 -1
  5. package/dist/configReader.js +70 -44
  6. package/dist/configReader.js.map +1 -1
  7. package/dist/configWriter.d.ts +29 -41
  8. package/dist/configWriter.d.ts.map +1 -1
  9. package/dist/configWriter.js +26 -637
  10. package/dist/configWriter.js.map +1 -1
  11. package/dist/disconnect/harnesses.d.ts +31 -0
  12. package/dist/disconnect/harnesses.d.ts.map +1 -0
  13. package/dist/disconnect/harnesses.js +728 -0
  14. package/dist/disconnect/harnesses.js.map +1 -0
  15. package/dist/disconnect/index.d.ts +25 -0
  16. package/dist/disconnect/index.d.ts.map +1 -0
  17. package/dist/disconnect/index.js +82 -0
  18. package/dist/disconnect/index.js.map +1 -0
  19. package/dist/disconnect/mcp.d.ts +60 -0
  20. package/dist/disconnect/mcp.d.ts.map +1 -0
  21. package/dist/disconnect/mcp.js +283 -0
  22. package/dist/disconnect/mcp.js.map +1 -0
  23. package/dist/disconnect/originals.d.ts +88 -0
  24. package/dist/disconnect/originals.d.ts.map +1 -0
  25. package/dist/disconnect/originals.js +257 -0
  26. package/dist/disconnect/originals.js.map +1 -0
  27. package/dist/disconnect/plan.d.ts +175 -0
  28. package/dist/disconnect/plan.d.ts.map +1 -0
  29. package/dist/disconnect/plan.js +580 -0
  30. package/dist/disconnect/plan.js.map +1 -0
  31. package/dist/disconnect/recognise.d.ts +43 -0
  32. package/dist/disconnect/recognise.d.ts.map +1 -0
  33. package/dist/disconnect/recognise.js +98 -0
  34. package/dist/disconnect/recognise.js.map +1 -0
  35. package/dist/disconnect/tomlLines.d.ts +39 -0
  36. package/dist/disconnect/tomlLines.d.ts.map +1 -0
  37. package/dist/disconnect/tomlLines.js +105 -0
  38. package/dist/disconnect/tomlLines.js.map +1 -0
  39. package/dist/harness/aiderConfigMerger.d.ts +1 -0
  40. package/dist/harness/aiderConfigMerger.d.ts.map +1 -1
  41. package/dist/harness/aiderConfigMerger.js +4 -1
  42. package/dist/harness/aiderConfigMerger.js.map +1 -1
  43. package/dist/harness/antigravityHooks.d.ts.map +1 -1
  44. package/dist/harness/antigravityHooks.js +2 -0
  45. package/dist/harness/antigravityHooks.js.map +1 -1
  46. package/dist/harness/claudeCodeHooks.d.ts +1 -2
  47. package/dist/harness/claudeCodeHooks.d.ts.map +1 -1
  48. package/dist/harness/claudeCodeHooks.js +19 -6
  49. package/dist/harness/claudeCodeHooks.js.map +1 -1
  50. package/dist/harness/claudeDesktopHooks.d.ts +3 -0
  51. package/dist/harness/claudeDesktopHooks.d.ts.map +1 -1
  52. package/dist/harness/claudeDesktopHooks.js +3 -1
  53. package/dist/harness/claudeDesktopHooks.js.map +1 -1
  54. package/dist/harness/claudeProjectApproval.d.ts +53 -0
  55. package/dist/harness/claudeProjectApproval.d.ts.map +1 -0
  56. package/dist/harness/claudeProjectApproval.js +159 -0
  57. package/dist/harness/claudeProjectApproval.js.map +1 -0
  58. package/dist/harness/clineHooks.d.ts.map +1 -1
  59. package/dist/harness/clineHooks.js +3 -0
  60. package/dist/harness/clineHooks.js.map +1 -1
  61. package/dist/harness/codexConfigMerger.d.ts.map +1 -1
  62. package/dist/harness/codexConfigMerger.js +4 -0
  63. package/dist/harness/codexConfigMerger.js.map +1 -1
  64. package/dist/harness/codexHooks.d.ts.map +1 -1
  65. package/dist/harness/codexHooks.js +3 -0
  66. package/dist/harness/codexHooks.js.map +1 -1
  67. package/dist/harness/continueConfigMerger.d.ts.map +1 -1
  68. package/dist/harness/continueConfigMerger.js +4 -0
  69. package/dist/harness/continueConfigMerger.js.map +1 -1
  70. package/dist/harness/continueHooks.d.ts.map +1 -1
  71. package/dist/harness/continueHooks.js +3 -0
  72. package/dist/harness/continueHooks.js.map +1 -1
  73. package/dist/harness/cursorHooks.d.ts.map +1 -1
  74. package/dist/harness/cursorHooks.js +3 -0
  75. package/dist/harness/cursorHooks.js.map +1 -1
  76. package/dist/harness/dshHooks.d.ts.map +1 -1
  77. package/dist/harness/dshHooks.js +7 -0
  78. package/dist/harness/dshHooks.js.map +1 -1
  79. package/dist/harness/gateBody.d.ts +11 -2
  80. package/dist/harness/gateBody.d.ts.map +1 -1
  81. package/dist/harness/gateBody.js +33 -6
  82. package/dist/harness/gateBody.js.map +1 -1
  83. package/dist/harness/githubCopilotHooks.d.ts.map +1 -1
  84. package/dist/harness/githubCopilotHooks.js +4 -9
  85. package/dist/harness/githubCopilotHooks.js.map +1 -1
  86. package/dist/harness/gooseHooks.d.ts +15 -0
  87. package/dist/harness/gooseHooks.d.ts.map +1 -1
  88. package/dist/harness/gooseHooks.js +55 -43
  89. package/dist/harness/gooseHooks.js.map +1 -1
  90. package/dist/harness/grokHooks.d.ts.map +1 -1
  91. package/dist/harness/grokHooks.js +9 -12
  92. package/dist/harness/grokHooks.js.map +1 -1
  93. package/dist/harness/hermesHooks.d.ts.map +1 -1
  94. package/dist/harness/hermesHooks.js +7 -2
  95. package/dist/harness/hermesHooks.js.map +1 -1
  96. package/dist/harness/holdRedaction.d.ts +4 -1
  97. package/dist/harness/holdRedaction.d.ts.map +1 -1
  98. package/dist/harness/holdRedaction.js +32 -8
  99. package/dist/harness/holdRedaction.js.map +1 -1
  100. package/dist/harness/jetbrainsXmlConfig.d.ts +20 -0
  101. package/dist/harness/jetbrainsXmlConfig.d.ts.map +1 -1
  102. package/dist/harness/jetbrainsXmlConfig.js +39 -18
  103. package/dist/harness/jetbrainsXmlConfig.js.map +1 -1
  104. package/dist/harness/mcpAutoWrite.d.ts +39 -17
  105. package/dist/harness/mcpAutoWrite.d.ts.map +1 -1
  106. package/dist/harness/mcpAutoWrite.js +189 -71
  107. package/dist/harness/mcpAutoWrite.js.map +1 -1
  108. package/dist/harness/museHooks.d.ts.map +1 -1
  109. package/dist/harness/museHooks.js +6 -2
  110. package/dist/harness/museHooks.js.map +1 -1
  111. package/dist/harness/openCodeHooks.d.ts.map +1 -1
  112. package/dist/harness/openCodeHooks.js +2 -5
  113. package/dist/harness/openCodeHooks.js.map +1 -1
  114. package/dist/harness/openWebuiHooks.d.ts.map +1 -1
  115. package/dist/harness/openWebuiHooks.js +6 -2
  116. package/dist/harness/openWebuiHooks.js.map +1 -1
  117. package/dist/harness/openclawHooks.d.ts +5 -0
  118. package/dist/harness/openclawHooks.d.ts.map +1 -1
  119. package/dist/harness/openclawHooks.js +3 -1
  120. package/dist/harness/openclawHooks.js.map +1 -1
  121. package/dist/harness/openhandsHooks.d.ts +13 -1
  122. package/dist/harness/openhandsHooks.d.ts.map +1 -1
  123. package/dist/harness/openhandsHooks.js +106 -56
  124. package/dist/harness/openhandsHooks.js.map +1 -1
  125. package/dist/harness/piHooks.d.ts.map +1 -1
  126. package/dist/harness/piHooks.js +3 -0
  127. package/dist/harness/piHooks.js.map +1 -1
  128. package/dist/harness/rooCodeHooks.d.ts.map +1 -1
  129. package/dist/harness/rooCodeHooks.js +5 -10
  130. package/dist/harness/rooCodeHooks.js.map +1 -1
  131. package/dist/harness/windsurfHooks.d.ts +18 -2
  132. package/dist/harness/windsurfHooks.d.ts.map +1 -1
  133. package/dist/harness/windsurfHooks.js +37 -7
  134. package/dist/harness/windsurfHooks.js.map +1 -1
  135. package/dist/harness/windsurfJetBrainsProxy.d.ts +1 -1
  136. package/dist/harness/windsurfJetBrainsProxy.d.ts.map +1 -1
  137. package/dist/harness/windsurfJetBrainsProxy.js +5 -1
  138. package/dist/harness/windsurfJetBrainsProxy.js.map +1 -1
  139. package/dist/index.d.ts +9 -12
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +8 -10
  142. package/dist/index.js.map +1 -1
  143. package/dist/lib/decisionsDigest.d.ts +1 -1
  144. package/dist/lib/decisionsDigest.js +1 -1
  145. package/dist/lib/policySnapshot.d.ts +18 -0
  146. package/dist/lib/policySnapshot.d.ts.map +1 -1
  147. package/dist/lib/policySnapshot.js +142 -7
  148. package/dist/lib/policySnapshot.js.map +1 -1
  149. package/dist/sessionReporter.d.ts +2 -2
  150. package/dist/sessionReporter.js +2 -2
  151. package/dist/syncCycle.d.ts +142 -0
  152. package/dist/syncCycle.d.ts.map +1 -0
  153. package/dist/syncCycle.js +315 -0
  154. package/dist/syncCycle.js.map +1 -0
  155. package/dist/trajectoryMonitor.d.ts +1 -1
  156. package/dist/trajectoryMonitor.d.ts.map +1 -1
  157. package/dist/trajectoryMonitor.js +1 -1
  158. package/dist/trajectoryMonitor.js.map +1 -1
  159. package/dist/watcher/settingsGuard.d.ts +4 -1
  160. package/dist/watcher/settingsGuard.d.ts.map +1 -1
  161. package/dist/watcher/settingsGuard.js +28 -3
  162. package/dist/watcher/settingsGuard.js.map +1 -1
  163. package/package.json +5 -5
  164. package/dist/hashReporter.d.ts +0 -33
  165. package/dist/hashReporter.d.ts.map +0 -1
  166. package/dist/hashReporter.js +0 -69
  167. package/dist/hashReporter.js.map +0 -1
  168. package/dist/integrityStore.d.ts +0 -35
  169. package/dist/integrityStore.d.ts.map +0 -1
  170. package/dist/integrityStore.js +0 -71
  171. package/dist/integrityStore.js.map +0 -1
  172. package/dist/lib/gitWorktrees.d.ts +0 -140
  173. package/dist/lib/gitWorktrees.d.ts.map +0 -1
  174. package/dist/lib/gitWorktrees.js +0 -191
  175. package/dist/lib/gitWorktrees.js.map +0 -1
  176. package/dist/syncLoop.d.ts +0 -172
  177. package/dist/syncLoop.d.ts.map +0 -1
  178. package/dist/syncLoop.js +0 -878
  179. package/dist/syncLoop.js.map +0 -1
@@ -0,0 +1,142 @@
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 type { HarnessType, SyncConfigPayload, SyncSopEntry } from '@intutic/shared-types';
21
+ import type { ConfigEditApplyOutcome } from './configWriter.js';
22
+ import type { GovernanceCoverageInputs } from './configReader.js';
23
+ import { type AgentReport } from './agentReporter.js';
24
+ /**
25
+ * Turns a non-clean `scanSkillContent` result — already computed as part of
26
+ * `collectAgentReport`'s `facets.skills` — into a `skill_flagged` hook event.
27
+ *
28
+ * Deliberately reuses the report the daemon already built for this cycle
29
+ * rather than re-scanning: `agentReporter.ts`'s `collectSkills` runs
30
+ * `scanSkillContent` on every `.agents/skills/**\/SKILL.md` as part of
31
+ * building `facets.skills` already, so this only turns a result the daemon
32
+ * already has into a visible signal — it does not add a second scan pass.
33
+ *
34
+ * Appends directly to `.intutic/events/hook-events.jsonl`, the SAME file
35
+ * every emitted PreToolUse gate's `log_event`/`logEvent` writes to — not a
36
+ * new event pipeline. `drainHookEvents` (`claudeCodeHooks.ts`) picks this
37
+ * line up on its next pass exactly like a gate-written one, because it only
38
+ * ever reads the file; it does not care who appended a given line.
39
+ *
40
+ * Report-only, per `scanSkillContent`'s own doc comment on the unmeasured
41
+ * false-positive rate against real, benign skill markdown: this NEVER
42
+ * blocks, mutates, or removes a skill. `hookEvents.ts`'s
43
+ * `HookEventSchema.event` enum (control plane) counts `skill_flagged`
44
+ * exactly like `tool_flagged` — advisory telemetry, not an incident.
45
+ *
46
+ * A failure to append is caught and warned, never thrown: a governance
47
+ * telemetry write must not be able to abort the sync cycle it rides in on.
48
+ */
49
+ export declare function emitSkillFlaggedEvents(opts: {
50
+ workspaceRoot: string;
51
+ workspaceId: string;
52
+ harnessType: HarnessType;
53
+ skills: AgentReport['facets']['skills'];
54
+ /** Skills already emitted in this cycle, keyed `source:name`, mutated in
55
+ * place. A skill is not harness-specific, and the caller invokes this
56
+ * once per harness in the workspace — without a shared set, a workspace
57
+ * with two active harnesses would double-emit every flagged skill. */
58
+ alreadyEmitted: Set<string>;
59
+ }): void;
60
+ /** The credentials every gate-side refresh takes. */
61
+ export interface GateCacheRefreshOptions {
62
+ controlPlaneUrl: string;
63
+ apiKey: string;
64
+ workspaceId: string;
65
+ /** See {@link PolicySnapshotOptions.localHoldTokens}. */
66
+ localHoldTokens?: readonly string[];
67
+ }
68
+ /**
69
+ * The `review_before:` tokens the snapshot compiles into hold rules: from the
70
+ * synced SOPs' front matter and JSON blocks, the workspace settings, and the
71
+ * local `.intutic/sops`. The same parse the Claude Code writer runs for its
72
+ * pattern blacklist, so the two cannot disagree about what is held.
73
+ */
74
+ export declare function localHoldTokensFor(workspaceRoot: string, sops: SyncSopEntry[], settings: Record<string, unknown> | undefined, harnesses?: HarnessType[]): Promise<string[]>;
75
+ /**
76
+ * Refresh the three gate-side caches every hook reads: the policy snapshot
77
+ * (`~/.intutic/hooks/policy-snapshot.rules`), the approved review-hold
78
+ * bypasses and the central egress policy. Called on EVERY sync cycle, never
79
+ * only when the config version moved: policy changes without the version
80
+ * changing, and before this helper existed `connect` refreshed once at
81
+ * startup and never again, so a guardrail promoted mid-session reached a
82
+ * connected machine only on restart. None of the three throw; the return
83
+ * says which of them landed.
84
+ */
85
+ export declare function refreshGateCaches(opts: GateCacheRefreshOptions): Promise<{
86
+ snapshot: boolean;
87
+ bypasses: boolean;
88
+ egress: boolean;
89
+ }>;
90
+ /** Where the ids of SkillOpt suggestions that fully landed are remembered. */
91
+ export declare const APPLIED_SUGGESTIONS_RELATIVE_PATH: string;
92
+ /**
93
+ * Apply the SkillOpt config edits the control plane sent with this config,
94
+ * and ack each outcome back (`POST /api/v1/skillopt/:id/apply-result`). A
95
+ * suggestion queued for auto-apply reaches `applied` only through that ack.
96
+ *
97
+ * Only ids whose every operation landed are remembered in
98
+ * `.intutic/applied-suggestions.json`, so a failed edit (a fuzzy-match miss,
99
+ * a refused write) is retried next cycle rather than forgotten. With
100
+ * `reapplyAll` every edit is applied again regardless: the caller has just
101
+ * rewritten the harness config files from the SOPs, which drops every overlay
102
+ * an earlier cycle applied. ADD is idempotent, so re-applying an edit that is
103
+ * still present changes nothing.
104
+ *
105
+ * Never throws: a failed apply or ack must not abort the sync cycle. A
106
+ * dropped ack only means the suggestion is synced and acked again next cycle.
107
+ */
108
+ export declare function applySkillOptEdits(opts: {
109
+ workspaceRoot: string;
110
+ controlPlaneUrl: string;
111
+ apiKey: string;
112
+ appliedEdits: SyncConfigPayload['appliedEdits'];
113
+ bypassEnforcementTier?: string;
114
+ reapplyAll: boolean;
115
+ }): Promise<ConfigEditApplyOutcome[]>;
116
+ /**
117
+ * Register each harness as an agent with its facets, report one session per
118
+ * harness, and turn this cycle's skill-scan findings into `skill_flagged`
119
+ * events. Returns each harness's governance-coverage inputs, derived from the
120
+ * same facets, for the config capture.
121
+ *
122
+ * One harness failing must not stop the others, so failures are collected
123
+ * and returned rather than thrown.
124
+ */
125
+ export declare function reportHarnessAgents(opts: {
126
+ controlPlaneUrl: string;
127
+ apiKey: string;
128
+ workspaceId: string;
129
+ workspaceRoot: string;
130
+ harnesses: readonly HarnessType[];
131
+ allowLocalVaults?: boolean;
132
+ /** The local proxy's instance id: the session context lands on its row. */
133
+ proxyInstanceId?: string | null;
134
+ }): Promise<{
135
+ governanceInputs: Partial<Record<HarnessType, GovernanceCoverageInputs>>;
136
+ failures: Array<{
137
+ harness: HarnessType;
138
+ error: string;
139
+ }>;
140
+ }>;
141
+ export declare function syncOfflineTraces(controlPlaneUrl: string, apiKey: string): Promise<void>;
142
+ //# sourceMappingURL=syncCycle.d.ts.map
@@ -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;AAQtF;;;;;;;;;;;;;;;;;;;;;;;;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,CAgCP;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,CAqCD;AAED,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqE9F"}
@@ -0,0 +1,315 @@
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
+ /** Narrow an unknown thrown value to a printable message. */
34
+ function errorMessage(err) {
35
+ return err instanceof Error ? err.message : String(err);
36
+ }
37
+ /**
38
+ * Turns a non-clean `scanSkillContent` result — already computed as part of
39
+ * `collectAgentReport`'s `facets.skills` — into a `skill_flagged` hook event.
40
+ *
41
+ * Deliberately reuses the report the daemon already built for this cycle
42
+ * rather than re-scanning: `agentReporter.ts`'s `collectSkills` runs
43
+ * `scanSkillContent` on every `.agents/skills/**\/SKILL.md` as part of
44
+ * building `facets.skills` already, so this only turns a result the daemon
45
+ * already has into a visible signal — it does not add a second scan pass.
46
+ *
47
+ * Appends directly to `.intutic/events/hook-events.jsonl`, the SAME file
48
+ * every emitted PreToolUse gate's `log_event`/`logEvent` writes to — not a
49
+ * new event pipeline. `drainHookEvents` (`claudeCodeHooks.ts`) picks this
50
+ * line up on its next pass exactly like a gate-written one, because it only
51
+ * ever reads the file; it does not care who appended a given line.
52
+ *
53
+ * Report-only, per `scanSkillContent`'s own doc comment on the unmeasured
54
+ * false-positive rate against real, benign skill markdown: this NEVER
55
+ * blocks, mutates, or removes a skill. `hookEvents.ts`'s
56
+ * `HookEventSchema.event` enum (control plane) counts `skill_flagged`
57
+ * exactly like `tool_flagged` — advisory telemetry, not an incident.
58
+ *
59
+ * A failure to append is caught and warned, never thrown: a governance
60
+ * telemetry write must not be able to abort the sync cycle it rides in on.
61
+ */
62
+ export function emitSkillFlaggedEvents(opts) {
63
+ const eventsLog = path.join(opts.workspaceRoot, '.intutic', 'events', 'hook-events.jsonl');
64
+ for (const skill of opts.skills) {
65
+ if (!skill.scanned || skill.clean)
66
+ continue;
67
+ const key = `${skill.source}:${skill.name}`;
68
+ if (opts.alreadyEmitted.has(key))
69
+ continue;
70
+ opts.alreadyEmitted.add(key);
71
+ try {
72
+ const ts = newIso();
73
+ const entry = JSON.stringify({
74
+ event: 'skill_flagged',
75
+ toolName: `skill:${skill.name}`,
76
+ reason: `scanSkillContent found ${skill.findingsCount} finding(s) in ` +
77
+ `${skill.source}/${skill.name}/SKILL.md — advisory only, see skillScan.ts`,
78
+ workspaceId: opts.workspaceId,
79
+ harnessType: opts.harnessType,
80
+ timestamp: ts,
81
+ incidentId: crypto
82
+ .createHash('sha1')
83
+ .update(ts + skill.name + opts.workspaceId)
84
+ .digest('hex')
85
+ .slice(0, 16),
86
+ filePath: `${skill.source}/${skill.name}/SKILL.md`,
87
+ }) + '\n';
88
+ fs.mkdirSync(path.dirname(eventsLog), { recursive: true });
89
+ fs.appendFileSync(eventsLog, entry, { flag: 'a' });
90
+ }
91
+ catch (err) {
92
+ console.warn('[sync-daemon] failed to write skill_flagged event (non-fatal):', err);
93
+ }
94
+ }
95
+ }
96
+ /**
97
+ * The `review_before:` tokens the snapshot compiles into hold rules: from the
98
+ * synced SOPs' front matter and JSON blocks, the workspace settings, and the
99
+ * local `.intutic/sops`. The same parse the Claude Code writer runs for its
100
+ * pattern blacklist, so the two cannot disagree about what is held.
101
+ */
102
+ export async function localHoldTokensFor(workspaceRoot, sops, settings, harnesses = []) {
103
+ const local = await loadLocalSopEntries(workspaceRoot, harnesses);
104
+ return parseSopConstraints([...sops, ...local], settings).reviewBefore;
105
+ }
106
+ /**
107
+ * Refresh the three gate-side caches every hook reads: the policy snapshot
108
+ * (`~/.intutic/hooks/policy-snapshot.rules`), the approved review-hold
109
+ * bypasses and the central egress policy. Called on EVERY sync cycle, never
110
+ * only when the config version moved: policy changes without the version
111
+ * changing, and before this helper existed `connect` refreshed once at
112
+ * startup and never again, so a guardrail promoted mid-session reached a
113
+ * connected machine only on restart. None of the three throw; the return
114
+ * says which of them landed.
115
+ */
116
+ export async function refreshGateCaches(opts) {
117
+ const snapshot = (await refreshPolicySnapshot(opts)) !== null;
118
+ const bypasses = (await refreshApprovedBypasses(opts)) !== null;
119
+ const egress = (await refreshEgressPolicy(opts)) !== null;
120
+ return { snapshot, bypasses, egress };
121
+ }
122
+ /** Where the ids of SkillOpt suggestions that fully landed are remembered. */
123
+ export const APPLIED_SUGGESTIONS_RELATIVE_PATH = path.join('.intutic', 'applied-suggestions.json');
124
+ /**
125
+ * Apply the SkillOpt config edits the control plane sent with this config,
126
+ * and ack each outcome back (`POST /api/v1/skillopt/:id/apply-result`). A
127
+ * suggestion queued for auto-apply reaches `applied` only through that ack.
128
+ *
129
+ * Only ids whose every operation landed are remembered in
130
+ * `.intutic/applied-suggestions.json`, so a failed edit (a fuzzy-match miss,
131
+ * a refused write) is retried next cycle rather than forgotten. With
132
+ * `reapplyAll` every edit is applied again regardless: the caller has just
133
+ * rewritten the harness config files from the SOPs, which drops every overlay
134
+ * an earlier cycle applied. ADD is idempotent, so re-applying an edit that is
135
+ * still present changes nothing.
136
+ *
137
+ * Never throws: a failed apply or ack must not abort the sync cycle. A
138
+ * dropped ack only means the suggestion is synced and acked again next cycle.
139
+ */
140
+ export async function applySkillOptEdits(opts) {
141
+ const appliedEdits = opts.appliedEdits ?? [];
142
+ if (appliedEdits.length === 0)
143
+ return [];
144
+ const appliedPath = path.join(opts.workspaceRoot, APPLIED_SUGGESTIONS_RELATIVE_PATH);
145
+ let localAppliedIds = [];
146
+ try {
147
+ const parsed = JSON.parse(fs.readFileSync(appliedPath, 'utf-8'));
148
+ if (Array.isArray(parsed))
149
+ localAppliedIds = parsed.filter((id) => typeof id === 'string');
150
+ }
151
+ catch {
152
+ // Missing or unreadable: nothing has landed yet, so everything is applied.
153
+ }
154
+ const toApply = opts.reapplyAll
155
+ ? appliedEdits
156
+ : appliedEdits.filter((edit) => !localAppliedIds.includes(edit.suggestionId));
157
+ if (toApply.length === 0)
158
+ return [];
159
+ let results;
160
+ try {
161
+ results = await applyConfigEdits(opts.workspaceRoot, toApply, opts.bypassEnforcementTier);
162
+ }
163
+ catch (err) {
164
+ console.warn('[sync-daemon] Failed to apply SkillOpt config edits:', errorMessage(err));
165
+ return [];
166
+ }
167
+ for (const result of results) {
168
+ await reportApplyResult(opts.controlPlaneUrl, opts.apiKey, result);
169
+ }
170
+ const landed = results.filter((r) => r.ok).map((r) => r.suggestionId);
171
+ try {
172
+ fs.mkdirSync(path.dirname(appliedPath), { recursive: true });
173
+ fs.writeFileSync(appliedPath, JSON.stringify([...new Set([...localAppliedIds, ...landed])], null, 2), 'utf-8');
174
+ }
175
+ catch (err) {
176
+ // Not fatal: the next cycle applies these again, and ADD is idempotent.
177
+ console.warn('[sync-daemon] Could not record applied SkillOpt suggestions:', errorMessage(err));
178
+ }
179
+ return results;
180
+ }
181
+ /** Ack one SkillOpt apply outcome back to the control plane. Never throws. */
182
+ async function reportApplyResult(controlPlaneUrl, apiKey, result) {
183
+ try {
184
+ const res = await fetch(`${controlPlaneUrl}/api/v1/skillopt/${result.suggestionId}/apply-result`, {
185
+ method: 'POST',
186
+ headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${apiKey}` },
187
+ body: JSON.stringify({ ok: result.ok, perOperation: result.perOperation }),
188
+ signal: AbortSignal.timeout(10_000),
189
+ });
190
+ if (!res.ok) {
191
+ const body = await res.text().catch(() => '');
192
+ console.warn(`[sync-daemon] reportApplyResult failed for ${result.suggestionId} (${res.status}): ${body}`);
193
+ }
194
+ }
195
+ catch (err) {
196
+ console.warn(`[sync-daemon] reportApplyResult request failed for ${result.suggestionId}:`, errorMessage(err));
197
+ }
198
+ }
199
+ /**
200
+ * Register each harness as an agent with its facets, report one session per
201
+ * harness, and turn this cycle's skill-scan findings into `skill_flagged`
202
+ * events. Returns each harness's governance-coverage inputs, derived from the
203
+ * same facets, for the config capture.
204
+ *
205
+ * One harness failing must not stop the others, so failures are collected
206
+ * and returned rather than thrown.
207
+ */
208
+ export async function reportHarnessAgents(opts) {
209
+ const governanceInputs = {};
210
+ const failures = [];
211
+ // A skill is not harness-specific, and the scan runs once per harness.
212
+ const skillFlaggedThisCycle = new Set();
213
+ for (const harness of opts.harnesses) {
214
+ try {
215
+ const report = await collectAgentReport({
216
+ workspaceRoot: opts.workspaceRoot,
217
+ harnessType: harness,
218
+ configSynced: true,
219
+ dlpEnabled: true,
220
+ policyEnforced: true,
221
+ allowLocalVaults: opts.allowLocalVaults,
222
+ });
223
+ await reportAgent(opts.controlPlaneUrl, opts.apiKey, opts.workspaceId, report);
224
+ governanceInputs[harness] = deriveEnforcementInputs(report.facets);
225
+ emitSkillFlaggedEvents({
226
+ workspaceRoot: opts.workspaceRoot,
227
+ workspaceId: opts.workspaceId,
228
+ harnessType: harness,
229
+ skills: report.facets.skills,
230
+ alreadyEmitted: skillFlaggedThisCycle,
231
+ });
232
+ await startHarnessSession({
233
+ controlPlaneUrl: opts.controlPlaneUrl,
234
+ apiKey: opts.apiKey,
235
+ workspaceId: opts.workspaceId,
236
+ harnessType: harness,
237
+ workspaceRoot: opts.workspaceRoot,
238
+ ...(opts.proxyInstanceId ? { proxyInstanceId: opts.proxyInstanceId } : {}),
239
+ });
240
+ }
241
+ catch (err) {
242
+ failures.push({ harness, error: errorMessage(err) });
243
+ }
244
+ }
245
+ return { governanceInputs, failures };
246
+ }
247
+ export async function syncOfflineTraces(controlPlaneUrl, apiKey) {
248
+ const logsDir = path.join(os.homedir(), '.intutic', 'logs');
249
+ if (!fs.existsSync(logsDir))
250
+ return;
251
+ try {
252
+ const files = fs.readdirSync(logsDir);
253
+ const traceFiles = files.filter(f => f.startsWith('traces-') && f.endsWith('.jsonl'));
254
+ if (traceFiles.length === 0)
255
+ return;
256
+ for (const file of traceFiles) {
257
+ const originalPath = path.join(logsDir, file);
258
+ const syncingPath = originalPath + '.syncing';
259
+ // Rename to avoid write race conditions with the Rust proxy
260
+ try {
261
+ fs.renameSync(originalPath, syncingPath);
262
+ }
263
+ catch (renameErr) {
264
+ console.error(`[sync-daemon] Failed to lock/rename file ${file}:`, errorMessage(renameErr));
265
+ continue;
266
+ }
267
+ try {
268
+ const raw = fs.readFileSync(syncingPath, 'utf-8');
269
+ const lines = raw.split('\n').map(l => l.trim()).filter(Boolean);
270
+ if (lines.length === 0) {
271
+ // Empty file, just clean it up
272
+ fs.unlinkSync(syncingPath);
273
+ continue;
274
+ }
275
+ const traces = lines.map(line => JSON.parse(line));
276
+ console.log(`[sync-daemon] Found ${traces.length} offline traces to sync back in ${file}.`);
277
+ // Batch in groups of 100
278
+ const batchSize = 100;
279
+ for (let i = 0; i < traces.length; i += batchSize) {
280
+ const batch = traces.slice(i, i + batchSize);
281
+ const res = await fetch(`${controlPlaneUrl}/api/v1/traces/sync-back`, {
282
+ method: 'POST',
283
+ headers: {
284
+ 'Content-Type': 'application/json',
285
+ Authorization: `Bearer ${apiKey}`,
286
+ },
287
+ body: JSON.stringify({ traces: batch }),
288
+ });
289
+ if (!res.ok) {
290
+ throw new Error(`Sync-back API returned status ${res.status}`);
291
+ }
292
+ }
293
+ // Successfully synced this sharded file, delete it
294
+ fs.unlinkSync(syncingPath);
295
+ console.log(`[sync-daemon] Successfully synced ${traces.length} offline traces back from ${file}.`);
296
+ }
297
+ catch (err) {
298
+ console.error(`[sync-daemon] Failed to sync offline traces back from ${file}:`, errorMessage(err));
299
+ // Revert rename on failure to allow retry on next cycle
300
+ try {
301
+ if (fs.existsSync(syncingPath)) {
302
+ fs.renameSync(syncingPath, originalPath);
303
+ }
304
+ }
305
+ catch (revertErr) {
306
+ console.error(`[sync-daemon] Failed to revert rename for ${file}:`, errorMessage(revertErr));
307
+ }
308
+ }
309
+ }
310
+ }
311
+ catch (err) {
312
+ console.error(`[sync-daemon] Failed to scan offline traces directory:`, errorMessage(err));
313
+ }
314
+ }
315
+ //# sourceMappingURL=syncCycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncCycle.js","sourceRoot":"","sources":["../src/syncCycle.ts"],"names":[],"mappings":"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"}
@@ -132,7 +132,7 @@ export declare class TrajectoryMonitor {
132
132
  private submitSummary;
133
133
  private saveOffline;
134
134
  private drainOfflineTrajectories;
135
- /** Bounded best-effort reachability probe, same shape as syncLoop.ts's. */
135
+ /** Bounded best-effort reachability probe of the control plane. */
136
136
  private controlPlaneIsReachable;
137
137
  /** Get the number of active session buffers. */
138
138
  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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"}
@@ -339,7 +339,7 @@ export class TrajectoryMonitor {
339
339
  log.error({ err }, 'Failed to drain offline trajectories');
340
340
  }
341
341
  }
342
- /** Bounded best-effort reachability probe, same shape as syncLoop.ts's. */
342
+ /** Bounded best-effort reachability probe of the control plane. */
343
343
  async controlPlaneIsReachable() {
344
344
  if (!this.config.controlPlaneUrl)
345
345
  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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"}
@@ -37,9 +37,12 @@ export declare function isDshProfilesRoot(changedPath: string): boolean;
37
37
  * @param sops - Current SOP list.
38
38
  * @param proxyUrl - Current proxy URL.
39
39
  * @param settings - Optional passthrough settings.
40
+ * @param skip - Harnesses `intutic disconnect --harness` took out:
41
+ * their files are no longer governed, so a change to
42
+ * one is not tampering and is not restored.
40
43
  * @returns true if tampering was detected.
41
44
  */
42
- export declare function guardSettingsFile(changedPath: string, workspaceRoot: string, sops: SyncSopEntry[], proxyUrl?: string, settings?: Record<string, unknown>): Promise<boolean>;
45
+ export declare function guardSettingsFile(changedPath: string, workspaceRoot: string, sops: SyncSopEntry[], proxyUrl?: string, settings?: Record<string, unknown>, skip?: ReadonlySet<string>): Promise<boolean>;
43
46
  /**
44
47
  * Side-effecting wrapper around `dshHooks.ts`'s pure `detectDshCoverageGap` —
45
48
  * logs TD-370's "silent no-profile window" as a `dsh_coverage_gap` warning
@@ -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;;;;;;;;;;;;;;;;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;;;;;;;;;;;;GAYG;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,GACpC,OAAO,CAAC,OAAO,CAAC,CAkKlB;AAuID;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAW7D"}