@intutic/sync-daemon 2.2.0 → 2.4.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.
- package/README.md +1 -1
- package/dist/agentReporter.d.ts +23 -11
- package/dist/agentReporter.d.ts.map +1 -1
- package/dist/agentReporter.js +20 -13
- package/dist/agentReporter.js.map +1 -1
- package/dist/configReader.d.ts +1 -3
- package/dist/configReader.d.ts.map +1 -1
- package/dist/configReader.js +0 -2
- package/dist/configReader.js.map +1 -1
- package/dist/configWriter.d.ts +11 -12
- package/dist/configWriter.d.ts.map +1 -1
- package/dist/configWriter.js +35 -58
- package/dist/configWriter.js.map +1 -1
- package/dist/disconnect/harnesses.d.ts +0 -2
- package/dist/disconnect/harnesses.d.ts.map +1 -1
- package/dist/disconnect/harnesses.js +157 -80
- package/dist/disconnect/harnesses.js.map +1 -1
- package/dist/disconnect/index.d.ts.map +1 -1
- package/dist/disconnect/index.js +11 -1
- package/dist/disconnect/index.js.map +1 -1
- package/dist/disconnect/mcp.d.ts +21 -0
- package/dist/disconnect/mcp.d.ts.map +1 -1
- package/dist/disconnect/mcp.js +71 -0
- package/dist/disconnect/mcp.js.map +1 -1
- package/dist/disconnect/recognise.d.ts +2 -2
- package/dist/disconnect/recognise.d.ts.map +1 -1
- package/dist/disconnect/recognise.js +15 -5
- package/dist/disconnect/recognise.js.map +1 -1
- package/dist/harness/aiderConfigMerger.d.ts +28 -8
- package/dist/harness/aiderConfigMerger.d.ts.map +1 -1
- package/dist/harness/aiderConfigMerger.js +59 -11
- package/dist/harness/aiderConfigMerger.js.map +1 -1
- package/dist/harness/antigravityCliHooks.d.ts +61 -0
- package/dist/harness/antigravityCliHooks.d.ts.map +1 -0
- package/dist/harness/antigravityCliHooks.js +207 -0
- package/dist/harness/antigravityCliHooks.js.map +1 -0
- package/dist/harness/antigravityHooks.d.ts +12 -2
- package/dist/harness/antigravityHooks.d.ts.map +1 -1
- package/dist/harness/antigravityHooks.js +36 -16
- package/dist/harness/antigravityHooks.js.map +1 -1
- package/dist/harness/antigravityProducts.d.ts +40 -0
- package/dist/harness/antigravityProducts.d.ts.map +1 -0
- package/dist/harness/antigravityProducts.js +109 -0
- package/dist/harness/antigravityProducts.js.map +1 -0
- package/dist/harness/claudeAgentsMd.d.ts +29 -0
- package/dist/harness/claudeAgentsMd.d.ts.map +1 -0
- package/dist/harness/claudeAgentsMd.js +80 -0
- package/dist/harness/claudeAgentsMd.js.map +1 -0
- package/dist/harness/claudeCodeHooks.d.ts +6 -5
- package/dist/harness/claudeCodeHooks.d.ts.map +1 -1
- package/dist/harness/claudeCodeHooks.js +98 -24
- package/dist/harness/claudeCodeHooks.js.map +1 -1
- package/dist/harness/clineHooks.d.ts +0 -1
- package/dist/harness/clineHooks.d.ts.map +1 -1
- package/dist/harness/clineHooks.js +10 -4
- package/dist/harness/clineHooks.js.map +1 -1
- package/dist/harness/codexHooks.d.ts +2 -0
- package/dist/harness/codexHooks.d.ts.map +1 -1
- package/dist/harness/codexHooks.js +12 -4
- package/dist/harness/codexHooks.js.map +1 -1
- package/dist/harness/cursorHooks.d.ts +5 -2
- package/dist/harness/cursorHooks.d.ts.map +1 -1
- package/dist/harness/cursorHooks.js +9 -3
- package/dist/harness/cursorHooks.js.map +1 -1
- package/dist/harness/dshHooks.d.ts +5 -5
- package/dist/harness/dshHooks.d.ts.map +1 -1
- package/dist/harness/dshHooks.js +5 -5
- package/dist/harness/gateArtifacts.d.ts +35 -0
- package/dist/harness/gateArtifacts.d.ts.map +1 -0
- package/dist/harness/gateArtifacts.js +88 -0
- package/dist/harness/gateArtifacts.js.map +1 -0
- package/dist/harness/gateBody.d.ts +186 -69
- package/dist/harness/gateBody.d.ts.map +1 -1
- package/dist/harness/gateBody.js +820 -182
- package/dist/harness/gateBody.js.map +1 -1
- package/dist/harness/gateSightings.d.ts +47 -0
- package/dist/harness/gateSightings.d.ts.map +1 -0
- package/dist/harness/gateSightings.js +159 -0
- package/dist/harness/gateSightings.js.map +1 -0
- package/dist/harness/githubCopilotHooks.d.ts.map +1 -1
- package/dist/harness/githubCopilotHooks.js +7 -1
- package/dist/harness/githubCopilotHooks.js.map +1 -1
- package/dist/harness/gooseHardener.d.ts +0 -1
- package/dist/harness/gooseHardener.d.ts.map +1 -1
- package/dist/harness/gooseHardener.js +1 -1
- package/dist/harness/gooseHardener.js.map +1 -1
- package/dist/harness/gooseHooks.d.ts +14 -1
- package/dist/harness/gooseHooks.d.ts.map +1 -1
- package/dist/harness/gooseHooks.js +55 -29
- package/dist/harness/gooseHooks.js.map +1 -1
- package/dist/harness/grokHooks.d.ts +2 -2
- package/dist/harness/grokHooks.d.ts.map +1 -1
- package/dist/harness/grokHooks.js +11 -6
- package/dist/harness/grokHooks.js.map +1 -1
- package/dist/harness/hermesHooks.d.ts +18 -8
- package/dist/harness/hermesHooks.d.ts.map +1 -1
- package/dist/harness/hermesHooks.js +48 -17
- package/dist/harness/hermesHooks.js.map +1 -1
- package/dist/harness/mcpAutoWrite.d.ts +24 -9
- package/dist/harness/mcpAutoWrite.d.ts.map +1 -1
- package/dist/harness/mcpAutoWrite.js +218 -25
- package/dist/harness/mcpAutoWrite.js.map +1 -1
- package/dist/harness/museHooks.d.ts +3 -3
- package/dist/harness/museHooks.d.ts.map +1 -1
- package/dist/harness/museHooks.js +9 -5
- package/dist/harness/museHooks.js.map +1 -1
- package/dist/harness/n8nHooks.d.ts +0 -1
- package/dist/harness/n8nHooks.d.ts.map +1 -1
- package/dist/harness/n8nHooks.js +4 -1
- package/dist/harness/n8nHooks.js.map +1 -1
- package/dist/harness/openCodeHooks.d.ts +2 -2
- package/dist/harness/openCodeHooks.d.ts.map +1 -1
- package/dist/harness/openCodeHooks.js +7 -3
- package/dist/harness/openCodeHooks.js.map +1 -1
- package/dist/harness/openWebuiHooks.d.ts +0 -1
- package/dist/harness/openWebuiHooks.d.ts.map +1 -1
- package/dist/harness/openWebuiHooks.js +5 -1
- package/dist/harness/openWebuiHooks.js.map +1 -1
- package/dist/harness/openclawHooks.d.ts +70 -18
- package/dist/harness/openclawHooks.d.ts.map +1 -1
- package/dist/harness/openclawHooks.js +213 -161
- package/dist/harness/openclawHooks.js.map +1 -1
- package/dist/harness/openhandsHooks.d.ts +24 -10
- package/dist/harness/openhandsHooks.d.ts.map +1 -1
- package/dist/harness/openhandsHooks.js +49 -48
- package/dist/harness/openhandsHooks.js.map +1 -1
- package/dist/harness/piHooks.d.ts +52 -17
- package/dist/harness/piHooks.d.ts.map +1 -1
- package/dist/harness/piHooks.js +177 -166
- package/dist/harness/piHooks.js.map +1 -1
- package/dist/harness/protectedPaths.d.ts +107 -25
- package/dist/harness/protectedPaths.d.ts.map +1 -1
- package/dist/harness/protectedPaths.js +342 -48
- package/dist/harness/protectedPaths.js.map +1 -1
- package/dist/harness/rulesSection.d.ts +62 -0
- package/dist/harness/rulesSection.d.ts.map +1 -0
- package/dist/harness/rulesSection.js +145 -0
- package/dist/harness/rulesSection.js.map +1 -0
- package/dist/harness/windsurfHooks.d.ts +0 -1
- package/dist/harness/windsurfHooks.d.ts.map +1 -1
- package/dist/harness/windsurfHooks.js +4 -1
- package/dist/harness/windsurfHooks.js.map +1 -1
- package/dist/index.d.ts +12 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -9
- package/dist/index.js.map +1 -1
- package/dist/inventory.d.ts +53 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/inventory.js +133 -0
- package/dist/inventory.js.map +1 -0
- package/dist/lib/complianceProbes.d.ts +2 -1
- package/dist/lib/complianceProbes.d.ts.map +1 -1
- package/dist/lib/complianceProbes.js +1 -1
- package/dist/lib/complianceProbes.js.map +1 -1
- package/dist/lib/decisionsDigest.d.ts +34 -16
- package/dist/lib/decisionsDigest.d.ts.map +1 -1
- package/dist/lib/decisionsDigest.js +105 -46
- package/dist/lib/decisionsDigest.js.map +1 -1
- package/dist/lib/egressPolicy.d.ts +2 -2
- package/dist/lib/egressPolicy.js +2 -2
- package/dist/lib/mcpRegistryPy.d.ts +11 -0
- package/dist/lib/mcpRegistryPy.d.ts.map +1 -0
- package/dist/lib/mcpRegistryPy.js +173 -0
- package/dist/lib/mcpRegistryPy.js.map +1 -0
- package/dist/lib/phrasesPy.d.ts +11 -0
- package/dist/lib/phrasesPy.d.ts.map +1 -0
- package/dist/lib/phrasesPy.js +351 -0
- package/dist/lib/phrasesPy.js.map +1 -0
- package/dist/lib/policySnapshot.d.ts +46 -10
- package/dist/lib/policySnapshot.d.ts.map +1 -1
- package/dist/lib/policySnapshot.js +136 -47
- package/dist/lib/policySnapshot.js.map +1 -1
- package/dist/lib/processPoller.d.ts.map +1 -1
- package/dist/lib/processPoller.js +9 -2
- package/dist/lib/processPoller.js.map +1 -1
- package/dist/lib/regexLinearity.d.ts +43 -0
- package/dist/lib/regexLinearity.d.ts.map +1 -0
- package/dist/lib/regexLinearity.js +275 -0
- package/dist/lib/regexLinearity.js.map +1 -0
- package/dist/lib/runtimeEnv.d.ts +1 -3
- package/dist/lib/runtimeEnv.d.ts.map +1 -1
- package/dist/lib/runtimeEnv.js +0 -2
- package/dist/lib/runtimeEnv.js.map +1 -1
- package/dist/lib/sequencePy.d.ts +10 -0
- package/dist/lib/sequencePy.d.ts.map +1 -0
- package/dist/lib/sequencePy.js +102 -0
- package/dist/lib/sequencePy.js.map +1 -0
- package/dist/sessionReporter.d.ts +17 -11
- package/dist/sessionReporter.d.ts.map +1 -1
- package/dist/sessionReporter.js +36 -23
- package/dist/sessionReporter.js.map +1 -1
- package/dist/skillWriter.d.ts +23 -5
- package/dist/skillWriter.d.ts.map +1 -1
- package/dist/skillWriter.js +159 -16
- package/dist/skillWriter.js.map +1 -1
- package/dist/syncCycle.d.ts.map +1 -1
- package/dist/syncCycle.js +21 -9
- package/dist/syncCycle.js.map +1 -1
- package/dist/trajectoryMonitor.d.ts +1 -3
- package/dist/trajectoryMonitor.d.ts.map +1 -1
- package/dist/trajectoryMonitor.js +1 -4
- package/dist/trajectoryMonitor.js.map +1 -1
- package/dist/watcher/driftWatcher.d.ts +0 -1
- package/dist/watcher/driftWatcher.d.ts.map +1 -1
- package/dist/watcher/driftWatcher.js +1 -2
- package/dist/watcher/driftWatcher.js.map +1 -1
- package/dist/watcher/settingsGuard.d.ts +33 -7
- package/dist/watcher/settingsGuard.d.ts.map +1 -1
- package/dist/watcher/settingsGuard.js +373 -61
- package/dist/watcher/settingsGuard.js.map +1 -1
- package/dist/watcher/vscodeHookSettings.d.ts +30 -0
- package/dist/watcher/vscodeHookSettings.d.ts.map +1 -0
- package/dist/watcher/vscodeHookSettings.js +170 -0
- package/dist/watcher/vscodeHookSettings.js.map +1 -0
- package/dist/wsClient.d.ts +0 -1
- package/dist/wsClient.d.ts.map +1 -1
- package/dist/wsClient.js +0 -1
- package/dist/wsClient.js.map +1 -1
- package/package.json +5 -5
- package/dist/harness/claudeDesktopHooks.d.ts +0 -33
- package/dist/harness/claudeDesktopHooks.d.ts.map +0 -1
- package/dist/harness/claudeDesktopHooks.js +0 -256
- package/dist/harness/claudeDesktopHooks.js.map +0 -1
- package/dist/harness/continueHooks.d.ts +0 -63
- package/dist/harness/continueHooks.d.ts.map +0 -1
- package/dist/harness/continueHooks.js +0 -250
- package/dist/harness/continueHooks.js.map +0 -1
- package/dist/harness/gateKind.d.ts +0 -164
- package/dist/harness/gateKind.d.ts.map +0 -1
- package/dist/harness/gateKind.js +0 -144
- package/dist/harness/gateKind.js.map +0 -1
- package/dist/harness/rooCodeHooks.d.ts +0 -31
- package/dist/harness/rooCodeHooks.d.ts.map +0 -1
- package/dist/harness/rooCodeHooks.js +0 -281
- package/dist/harness/rooCodeHooks.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateBody.js","sourceRoot":"","sources":["../../src/harness/gateBody.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gateBody.js","sourceRoot":"","sources":["../../src/harness/gateBody.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gateSightings.ts — when this machine's gate for each harness last wrote an event.
|
|
3
|
+
*
|
|
4
|
+
* The control plane's silent-gate check (`gateLivenessService.ts`) keys its
|
|
5
|
+
* sightings on workspace and harness, so it can say a harness's gate is alive
|
|
6
|
+
* somewhere in the workspace but not on which machine. The daemon can: every
|
|
7
|
+
* event it drains from `.intutic/events/hook-events.jsonl` was written by a gate
|
|
8
|
+
* on this machine. The drain records the newest event per harness here before
|
|
9
|
+
* it truncates the log, and the AI inventory reports it per device.
|
|
10
|
+
*
|
|
11
|
+
* Kept in `.intutic/events/gate-sightings.json`, next to the log it summarises,
|
|
12
|
+
* so a daemon restart does not make every gate look silent.
|
|
13
|
+
*
|
|
14
|
+
* Two gates never write to that log: Cline's and n8n's post their events to
|
|
15
|
+
* the control plane themselves and keep a local copy in their own file under
|
|
16
|
+
* `~/.intutic/events/`. {@link sideLogSightings} reads the end of those files
|
|
17
|
+
* for the same two facts.
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
export declare const GATE_SIGHTINGS_RELATIVE_PATH: string;
|
|
22
|
+
export interface GateSighting {
|
|
23
|
+
/** Newest event of any kind; `tool_allowed` counts, which is the point. */
|
|
24
|
+
lastEventAt: string;
|
|
25
|
+
/** Newest `guards_disabled` event: the gate ran with `INTUTIC_GUARD_DISABLE=1`. */
|
|
26
|
+
guardsDisabledAt?: string;
|
|
27
|
+
}
|
|
28
|
+
/** Every sighting recorded so far, keyed by harness type. Empty when none or unreadable. */
|
|
29
|
+
export declare function readGateSightings(workspaceRoot: string): Promise<Record<string, GateSighting>>;
|
|
30
|
+
/**
|
|
31
|
+
* Folds a batch of drained hook events into the sightings file, keeping the
|
|
32
|
+
* newest time per harness. Records without a `harnessType` say nothing about
|
|
33
|
+
* a gate and are skipped. Never throws: liveness bookkeeping must not be able
|
|
34
|
+
* to stop a drain.
|
|
35
|
+
*/
|
|
36
|
+
export declare function recordGateSightings(workspaceRoot: string, records: readonly unknown[], now?: Date): Promise<void>;
|
|
37
|
+
/** Gates that keep their own event log instead of the drained one, by harness. */
|
|
38
|
+
export declare const SIDE_EVENT_LOGS: Readonly<Record<string, string>>;
|
|
39
|
+
/**
|
|
40
|
+
* The newest event and newest `guards_disabled` event in each side log under
|
|
41
|
+
* `home`, read from the last {@link SIDE_LOG_TAIL_BYTES} only. A missing or
|
|
42
|
+
* unreadable log is no sighting.
|
|
43
|
+
*/
|
|
44
|
+
export declare function sideLogSightings(home: string, now?: Date): Promise<Record<string, GateSighting>>;
|
|
45
|
+
/** The later of two sightings of the same gate, field by field. */
|
|
46
|
+
export declare function mergeSightings(a: GateSighting | undefined, b: GateSighting | undefined): GateSighting | undefined;
|
|
47
|
+
//# sourceMappingURL=gateSightings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateSightings.d.ts","sourceRoot":"","sources":["../../src/harness/gateSightings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,eAAO,MAAM,4BAA4B,QAA8D,CAAA;AAEvG,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAeD,4FAA4F;AAC5F,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAmBpG;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,GAAG,GAAE,IAAiB,GACrB,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,kFAAkF;AAClF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAG5D,CAAA;AAKD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAmClH;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,GAAG,SAAS,EAAE,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAIjH"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gateSightings.ts — when this machine's gate for each harness last wrote an event.
|
|
3
|
+
*
|
|
4
|
+
* The control plane's silent-gate check (`gateLivenessService.ts`) keys its
|
|
5
|
+
* sightings on workspace and harness, so it can say a harness's gate is alive
|
|
6
|
+
* somewhere in the workspace but not on which machine. The daemon can: every
|
|
7
|
+
* event it drains from `.intutic/events/hook-events.jsonl` was written by a gate
|
|
8
|
+
* on this machine. The drain records the newest event per harness here before
|
|
9
|
+
* it truncates the log, and the AI inventory reports it per device.
|
|
10
|
+
*
|
|
11
|
+
* Kept in `.intutic/events/gate-sightings.json`, next to the log it summarises,
|
|
12
|
+
* so a daemon restart does not make every gate look silent.
|
|
13
|
+
*
|
|
14
|
+
* Two gates never write to that log: Cline's and n8n's post their events to
|
|
15
|
+
* the control plane themselves and keep a local copy in their own file under
|
|
16
|
+
* `~/.intutic/events/`. {@link sideLogSightings} reads the end of those files
|
|
17
|
+
* for the same two facts.
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
import * as node_fs from 'node:fs/promises';
|
|
22
|
+
import * as node_path from 'node:path';
|
|
23
|
+
export const GATE_SIGHTINGS_RELATIVE_PATH = node_path.join('.intutic', 'events', 'gate-sightings.json');
|
|
24
|
+
/** A gate's clock running ahead must not make it look alive for days. */
|
|
25
|
+
const MAX_CLOCK_SKEW_MS = 5 * 60 * 1000;
|
|
26
|
+
function eventTime(raw, now) {
|
|
27
|
+
if (typeof raw === 'string') {
|
|
28
|
+
const ms = Date.parse(raw);
|
|
29
|
+
if (Number.isFinite(ms) && ms <= now.getTime() + MAX_CLOCK_SKEW_MS)
|
|
30
|
+
return new Date(ms).toISOString();
|
|
31
|
+
}
|
|
32
|
+
return now.toISOString();
|
|
33
|
+
}
|
|
34
|
+
const later = (a, b) => (a !== undefined && a >= b ? a : b);
|
|
35
|
+
/** Every sighting recorded so far, keyed by harness type. Empty when none or unreadable. */
|
|
36
|
+
export async function readGateSightings(workspaceRoot) {
|
|
37
|
+
try {
|
|
38
|
+
const parsed = JSON.parse(await node_fs.readFile(node_path.join(workspaceRoot, GATE_SIGHTINGS_RELATIVE_PATH), 'utf-8'));
|
|
39
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
|
|
40
|
+
return {};
|
|
41
|
+
const out = {};
|
|
42
|
+
for (const [harness, value] of Object.entries(parsed)) {
|
|
43
|
+
const v = value;
|
|
44
|
+
if (typeof v?.lastEventAt !== 'string')
|
|
45
|
+
continue;
|
|
46
|
+
out[harness] = {
|
|
47
|
+
lastEventAt: v.lastEventAt,
|
|
48
|
+
...(typeof v.guardsDisabledAt === 'string' ? { guardsDisabledAt: v.guardsDisabledAt } : {}),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return out;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return {};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Folds a batch of drained hook events into the sightings file, keeping the
|
|
59
|
+
* newest time per harness. Records without a `harnessType` say nothing about
|
|
60
|
+
* a gate and are skipped. Never throws: liveness bookkeeping must not be able
|
|
61
|
+
* to stop a drain.
|
|
62
|
+
*/
|
|
63
|
+
export async function recordGateSightings(workspaceRoot, records, now = new Date()) {
|
|
64
|
+
const seen = await readGateSightings(workspaceRoot);
|
|
65
|
+
let changed = false;
|
|
66
|
+
for (const record of records) {
|
|
67
|
+
if (typeof record !== 'object' || record === null)
|
|
68
|
+
continue;
|
|
69
|
+
const r = record;
|
|
70
|
+
if (typeof r.harnessType !== 'string' || r.harnessType === '')
|
|
71
|
+
continue;
|
|
72
|
+
const at = eventTime(r.timestamp, now);
|
|
73
|
+
const prev = seen[r.harnessType];
|
|
74
|
+
const next = {
|
|
75
|
+
lastEventAt: later(prev?.lastEventAt, at),
|
|
76
|
+
...(prev?.guardsDisabledAt ? { guardsDisabledAt: prev.guardsDisabledAt } : {}),
|
|
77
|
+
};
|
|
78
|
+
if (r.event === 'guards_disabled')
|
|
79
|
+
next.guardsDisabledAt = later(prev?.guardsDisabledAt, at);
|
|
80
|
+
if (next.lastEventAt !== prev?.lastEventAt || next.guardsDisabledAt !== prev?.guardsDisabledAt) {
|
|
81
|
+
seen[r.harnessType] = next;
|
|
82
|
+
changed = true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (!changed)
|
|
86
|
+
return;
|
|
87
|
+
try {
|
|
88
|
+
const file = node_path.join(workspaceRoot, GATE_SIGHTINGS_RELATIVE_PATH);
|
|
89
|
+
await node_fs.mkdir(node_path.dirname(file), { recursive: true });
|
|
90
|
+
const tmp = `${file}.intutic-tmp`;
|
|
91
|
+
await node_fs.writeFile(tmp, JSON.stringify(seen, null, 2) + '\n', 'utf-8');
|
|
92
|
+
await node_fs.rename(tmp, file);
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// The sighting is late until the gate's next event; the drain itself carries on.
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/** Gates that keep their own event log instead of the drained one, by harness. */
|
|
99
|
+
export const SIDE_EVENT_LOGS = {
|
|
100
|
+
cline: node_path.join('.intutic', 'events', 'cline-hook-events.jsonl'),
|
|
101
|
+
n8n: node_path.join('.intutic', 'events', 'n8n-hook-events.jsonl'),
|
|
102
|
+
};
|
|
103
|
+
/** How much of the end of a side log is read: these files are never truncated. */
|
|
104
|
+
const SIDE_LOG_TAIL_BYTES = 64 * 1024;
|
|
105
|
+
/**
|
|
106
|
+
* The newest event and newest `guards_disabled` event in each side log under
|
|
107
|
+
* `home`, read from the last {@link SIDE_LOG_TAIL_BYTES} only. A missing or
|
|
108
|
+
* unreadable log is no sighting.
|
|
109
|
+
*/
|
|
110
|
+
export async function sideLogSightings(home, now = new Date()) {
|
|
111
|
+
const out = {};
|
|
112
|
+
for (const [harness, rel] of Object.entries(SIDE_EVENT_LOGS)) {
|
|
113
|
+
let tail;
|
|
114
|
+
try {
|
|
115
|
+
const handle = await node_fs.open(node_path.join(home, rel), 'r');
|
|
116
|
+
try {
|
|
117
|
+
const { size } = await handle.stat();
|
|
118
|
+
const length = Math.min(size, SIDE_LOG_TAIL_BYTES);
|
|
119
|
+
const buffer = Buffer.alloc(length);
|
|
120
|
+
await handle.read(buffer, 0, length, size - length);
|
|
121
|
+
tail = buffer.toString('utf-8');
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
await handle.close();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
let sighting;
|
|
131
|
+
// The first line may be cut by the tail window; it fails to parse and is skipped.
|
|
132
|
+
for (const line of tail.split('\n')) {
|
|
133
|
+
let record;
|
|
134
|
+
try {
|
|
135
|
+
record = JSON.parse(line);
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (typeof record !== 'object' || record === null)
|
|
141
|
+
continue;
|
|
142
|
+
const at = eventTime(record.timestamp, now);
|
|
143
|
+
sighting = { ...sighting, lastEventAt: later(sighting?.lastEventAt, at) };
|
|
144
|
+
if (record.event === 'guards_disabled')
|
|
145
|
+
sighting.guardsDisabledAt = later(sighting.guardsDisabledAt, at);
|
|
146
|
+
}
|
|
147
|
+
if (sighting)
|
|
148
|
+
out[harness] = sighting;
|
|
149
|
+
}
|
|
150
|
+
return out;
|
|
151
|
+
}
|
|
152
|
+
/** The later of two sightings of the same gate, field by field. */
|
|
153
|
+
export function mergeSightings(a, b) {
|
|
154
|
+
if (!a || !b)
|
|
155
|
+
return a ?? b;
|
|
156
|
+
const disabled = [a.guardsDisabledAt, b.guardsDisabledAt].filter((t) => t !== undefined).sort().at(-1);
|
|
157
|
+
return { lastEventAt: later(a.lastEventAt, b.lastEventAt), ...(disabled ? { guardsDisabledAt: disabled } : {}) };
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=gateSightings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateSightings.js","sourceRoot":"","sources":["../../src/harness/gateSightings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubCopilotHooks.d.ts","sourceRoot":"","sources":["../../src/harness/githubCopilotHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;
|
|
1
|
+
{"version":3,"file":"githubCopilotHooks.d.ts","sourceRoot":"","sources":["../../src/harness/githubCopilotHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAyJH;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
|
|
@@ -44,6 +44,7 @@ import * as os from 'node:os';
|
|
|
44
44
|
import { createLogger } from '@intutic/logger';
|
|
45
45
|
import { writeOwnedFile } from '../disconnect/originals.js';
|
|
46
46
|
import { newIso } from '@intutic/id';
|
|
47
|
+
import { HOOK_TIMEOUT_SECONDS } from '@intutic/shared-types';
|
|
47
48
|
import { emitJsGate, emitJsFailClosedPrelude } from './gateBody.js';
|
|
48
49
|
const log = createLogger('sync-github-copilot-hooks');
|
|
49
50
|
/**
|
|
@@ -91,6 +92,9 @@ function logEvent(verdict, toolName, reason) {
|
|
|
91
92
|
try {
|
|
92
93
|
const ts = new Date().toISOString();
|
|
93
94
|
const incidentId = crypto.createHash('sha1').update(ts + toolName + _intuticWsId).digest('hex').slice(0, 16);
|
|
95
|
+
// The event's id: random, made once here, and resent with the line it is
|
|
96
|
+
// written into, so the control plane processes the event once.
|
|
97
|
+
const eventId = crypto.randomBytes(16).toString('hex');
|
|
94
98
|
const entry = JSON.stringify({
|
|
95
99
|
// Passed through, not collapsed to two values: the advisory tier emits
|
|
96
100
|
// 'tool_flagged', and a ternary here silently recorded it as an allow.
|
|
@@ -100,6 +104,7 @@ function logEvent(verdict, toolName, reason) {
|
|
|
100
104
|
harnessType: 'github-copilot',
|
|
101
105
|
timestamp: ts,
|
|
102
106
|
incidentId,
|
|
107
|
+
eventId,
|
|
103
108
|
...(_intuticSessionId ? { sessionId: _intuticSessionId } : {}),
|
|
104
109
|
}) + '\\n';
|
|
105
110
|
fs.appendFileSync(${JSON.stringify(hookEventsLog)}, entry, { flag: 'a' });
|
|
@@ -172,7 +177,8 @@ function buildHookConfig(hookScriptPath) {
|
|
|
172
177
|
// Catch-all: the gate decides from the arguments, so a tool name
|
|
173
178
|
// nobody anticipated is still evaluated.
|
|
174
179
|
matcher: '.*',
|
|
175
|
-
|
|
180
|
+
// \`timeout\` is VS Code's key and the Copilot CLI's alias for \`timeoutSec\`.
|
|
181
|
+
hooks: [{ type: 'command', command: `node "${hookScriptPath}"`, timeout: HOOK_TIMEOUT_SECONDS }],
|
|
176
182
|
},
|
|
177
183
|
],
|
|
178
184
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubCopilotHooks.js","sourceRoot":"","sources":["../../src/harness/githubCopilotHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAEnE,MAAM,GAAG,GAAG,YAAY,CAAC,2BAA2B,CAAC,CAAA;AAErD;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAgB,EAAE,aAAqB,EAAE,WAAmB;IACnF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAA;IACzF,OAAO;;;;;;;;;YASG,QAAQ;gBACJ,MAAM,EAAE;;EAEtB,uBAAuB,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;;;;;;;;;gFASK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;;;;;;EAWzG,UAAU,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"githubCopilotHooks.js","sourceRoot":"","sources":["../../src/harness/githubCopilotHooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
* If a file is immutable but has been tampered with, a governance_override_attempt
|
|
12
12
|
* incident is emitted to the control plane instead of a silent restore.
|
|
13
13
|
*
|
|
14
|
-
* LLD #14 — Phase 3 cross-harness defence
|
|
15
14
|
* HLD §3.14 — Three-Tier Defense Cascade
|
|
16
15
|
*
|
|
17
16
|
* @module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gooseHardener.d.ts","sourceRoot":"","sources":["../../src/harness/gooseHardener.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gooseHardener.d.ts","sourceRoot":"","sources":["../../src/harness/gooseHardener.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxE;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB9D;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBpE"}
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
* If a file is immutable but has been tampered with, a governance_override_attempt
|
|
12
12
|
* incident is emitted to the control plane instead of a silent restore.
|
|
13
13
|
*
|
|
14
|
-
* LLD #14 — Phase 3 cross-harness defence
|
|
15
14
|
* HLD §3.14 — Three-Tier Defense Cascade
|
|
16
15
|
*
|
|
17
16
|
* @module
|
|
@@ -32,6 +31,7 @@ const execFileAsync = promisify(execFile);
|
|
|
32
31
|
*/
|
|
33
32
|
export async function hardenGoosePlugin(pluginDir) {
|
|
34
33
|
const targets = [
|
|
34
|
+
path.join(pluginDir, 'plugin.json'),
|
|
35
35
|
path.join(pluginDir, 'hooks', 'hooks.json'),
|
|
36
36
|
path.join(pluginDir, 'scripts', 'intutic-check.sh'),
|
|
37
37
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gooseHardener.js","sourceRoot":"","sources":["../../src/harness/gooseHardener.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gooseHardener.js","sourceRoot":"","sources":["../../src/harness/gooseHardener.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,17 +2,30 @@
|
|
|
2
2
|
* gooseHooks.ts — Goose PreToolUse governance plugin injection.
|
|
3
3
|
*
|
|
4
4
|
* Writes the Intutic governance plugin to the Goose plugin directory:
|
|
5
|
+
* ~/.agents/plugins/intutic-governance/plugin.json
|
|
5
6
|
* ~/.agents/plugins/intutic-governance/hooks/hooks.json
|
|
6
7
|
* ~/.agents/plugins/intutic-governance/scripts/intutic-check.sh
|
|
7
8
|
*
|
|
8
9
|
* Also merges the Intutic proxy URL into ~/.config/goose/config.yaml.
|
|
9
10
|
* After writing, calls gooseHardener to apply chmod 444 + immutable flags.
|
|
10
11
|
*
|
|
11
|
-
* LLD #14 — Phase 3 cross-harness defence
|
|
12
12
|
* HLD §3.14 — Three-Tier Defense Cascade
|
|
13
13
|
*
|
|
14
14
|
* @module
|
|
15
15
|
*/
|
|
16
|
+
/** The plugin manifest Goose identifies the plugin by. */
|
|
17
|
+
export declare function gooseManifest(): Record<string, unknown>;
|
|
18
|
+
/**
|
|
19
|
+
* The plugin's `hooks/hooks.json`, in Goose's schema: each event a list of
|
|
20
|
+
* rules, each rule a list of command actions. Every tool call goes to the
|
|
21
|
+
* gate (no matcher). \`on_failure: "block"\` makes Goose deny a call whose
|
|
22
|
+
* gate fails — times out, crashes, or answers nothing it reads — where the
|
|
23
|
+
* default would run it; \`timeout\` replaces Goose's 30 s default, and the gate
|
|
24
|
+
* refuses at its own deadline inside it. A PostToolUse action cannot block,
|
|
25
|
+
* so it carries neither. The shape used before (\`{PreToolUse: {command,
|
|
26
|
+
* failClosed}}\`) is not one Goose loads: it skipped the file with a warning.
|
|
27
|
+
*/
|
|
28
|
+
export declare function gooseHooksConfig(scriptPath: string): Record<string, unknown>;
|
|
16
29
|
/**
|
|
17
30
|
* Write Goose governance plugin and harden it.
|
|
18
31
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gooseHooks.d.ts","sourceRoot":"","sources":["../../src/harness/gooseHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"gooseHooks.d.ts","sourceRoot":"","sources":["../../src/harness/gooseHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,0DAA0D;AAC1D,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAU5E;AAOD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,SAAe,EAAE,WAAW,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHrH;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcrG"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* gooseHooks.ts — Goose PreToolUse governance plugin injection.
|
|
3
3
|
*
|
|
4
4
|
* Writes the Intutic governance plugin to the Goose plugin directory:
|
|
5
|
+
* ~/.agents/plugins/intutic-governance/plugin.json
|
|
5
6
|
* ~/.agents/plugins/intutic-governance/hooks/hooks.json
|
|
6
7
|
* ~/.agents/plugins/intutic-governance/scripts/intutic-check.sh
|
|
7
8
|
*
|
|
8
9
|
* Also merges the Intutic proxy URL into ~/.config/goose/config.yaml.
|
|
9
10
|
* After writing, calls gooseHardener to apply chmod 444 + immutable flags.
|
|
10
11
|
*
|
|
11
|
-
* LLD #14 — Phase 3 cross-harness defence
|
|
12
12
|
* HLD §3.14 — Three-Tier Defense Cascade
|
|
13
13
|
*
|
|
14
14
|
* @module
|
|
@@ -20,11 +20,45 @@ import { createLogger } from '@intutic/logger';
|
|
|
20
20
|
import { keepOriginal, noteWritten } from '../disconnect/originals.js';
|
|
21
21
|
import { newIso } from '@intutic/id';
|
|
22
22
|
import { hardenGoosePlugin, unharden } from './gooseHardener.js';
|
|
23
|
-
import {
|
|
23
|
+
import { HOOK_TIMEOUT_SECONDS } from '@intutic/shared-types';
|
|
24
|
+
import { emitShellGate, SHELL_EXTRACT, emitShellFailClosed, REVIEW_REQUESTS_BASENAME } from './gateBody.js';
|
|
24
25
|
import { parseDocument, isMap, isScalar } from 'yaml';
|
|
25
26
|
const log = createLogger('sync-goose-hooks');
|
|
26
27
|
const PLUGIN_DIR = path.join(os.homedir(), '.agents', 'plugins', 'intutic-governance');
|
|
27
28
|
const GOOSE_CONFIG = path.join(os.homedir(), '.config', 'goose', 'config.yaml');
|
|
29
|
+
/** The plugin manifest Goose identifies the plugin by. */
|
|
30
|
+
export function gooseManifest() {
|
|
31
|
+
return {
|
|
32
|
+
name: 'intutic-governance',
|
|
33
|
+
version: '1.0.0',
|
|
34
|
+
description: 'Intutic governance gate — auto-generated. DO NOT EDIT.',
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The plugin's `hooks/hooks.json`, in Goose's schema: each event a list of
|
|
39
|
+
* rules, each rule a list of command actions. Every tool call goes to the
|
|
40
|
+
* gate (no matcher). \`on_failure: "block"\` makes Goose deny a call whose
|
|
41
|
+
* gate fails — times out, crashes, or answers nothing it reads — where the
|
|
42
|
+
* default would run it; \`timeout\` replaces Goose's 30 s default, and the gate
|
|
43
|
+
* refuses at its own deadline inside it. A PostToolUse action cannot block,
|
|
44
|
+
* so it carries neither. The shape used before (\`{PreToolUse: {command,
|
|
45
|
+
* failClosed}}\`) is not one Goose loads: it skipped the file with a warning.
|
|
46
|
+
*/
|
|
47
|
+
export function gooseHooksConfig(scriptPath) {
|
|
48
|
+
const command = shellQuote(scriptPath);
|
|
49
|
+
return {
|
|
50
|
+
_comment: 'Intutic governance plugin — auto-generated. DO NOT EDIT.',
|
|
51
|
+
_lastSync: newIso(),
|
|
52
|
+
hooks: {
|
|
53
|
+
PreToolUse: [{ hooks: [{ type: 'command', command, timeout: HOOK_TIMEOUT_SECONDS, on_failure: 'block' }] }],
|
|
54
|
+
PostToolUse: [{ hooks: [{ type: 'command', command: `${command} --event post`, timeout: HOOK_TIMEOUT_SECONDS }] }],
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** Single-quotes a path for the shell Goose runs a command through. */
|
|
59
|
+
function shellQuote(s) {
|
|
60
|
+
return `'${s.replace(/'/g, `'\\''`)}'`;
|
|
61
|
+
}
|
|
28
62
|
/**
|
|
29
63
|
* Write Goose governance plugin and harden it.
|
|
30
64
|
*
|
|
@@ -35,35 +69,23 @@ const GOOSE_CONFIG = path.join(os.homedir(), '.config', 'goose', 'config.yaml');
|
|
|
35
69
|
export async function writeGooseHooks(proxyUrl, workspaceRoot = os.homedir(), workspaceId = '') {
|
|
36
70
|
const hooksDir = path.join(PLUGIN_DIR, 'hooks');
|
|
37
71
|
const scriptsDir = path.join(PLUGIN_DIR, 'scripts');
|
|
72
|
+
await keepOriginal(path.join(PLUGIN_DIR, 'plugin.json'), workspaceRoot);
|
|
38
73
|
await keepOriginal(path.join(hooksDir, 'hooks.json'), workspaceRoot);
|
|
39
74
|
await keepOriginal(path.join(scriptsDir, 'intutic-check.sh'), workspaceRoot);
|
|
40
75
|
await fs.mkdir(hooksDir, { recursive: true });
|
|
41
76
|
await fs.mkdir(scriptsDir, { recursive: true });
|
|
42
|
-
// ── hooks.json
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
command: path.join(scriptsDir, 'intutic-check.sh --event post'),
|
|
55
|
-
failClosed: false,
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
const hooksJsonPath = path.join(hooksDir, 'hooks.json');
|
|
60
|
-
// Unharden before writing (in case we're refreshing an existing install)
|
|
61
|
-
await unharden(hooksJsonPath);
|
|
62
|
-
const hooksJson = JSON.stringify(hooksConfig, null, 2) + '\n';
|
|
63
|
-
const tmpHooks = hooksJsonPath + '.intutic-tmp';
|
|
64
|
-
await fs.writeFile(tmpHooks, hooksJson, 'utf-8');
|
|
65
|
-
await fs.rename(tmpHooks, hooksJsonPath);
|
|
66
|
-
await noteWritten(hooksJsonPath, workspaceRoot, hooksJson);
|
|
77
|
+
// ── plugin.json + hooks.json ────────────────────────────────────────
|
|
78
|
+
for (const [file, content] of [
|
|
79
|
+
[path.join(PLUGIN_DIR, 'plugin.json'), JSON.stringify(gooseManifest(), null, 2) + '\n'],
|
|
80
|
+
[path.join(hooksDir, 'hooks.json'), JSON.stringify(gooseHooksConfig(path.join(scriptsDir, 'intutic-check.sh')), null, 2) + '\n'],
|
|
81
|
+
]) {
|
|
82
|
+
// Unharden before writing (in case we're refreshing an existing install)
|
|
83
|
+
await unharden(file);
|
|
84
|
+
const tmp = file + '.intutic-tmp';
|
|
85
|
+
await fs.writeFile(tmp, content, 'utf-8');
|
|
86
|
+
await fs.rename(tmp, file);
|
|
87
|
+
await noteWritten(file, workspaceRoot, content);
|
|
88
|
+
}
|
|
67
89
|
// ── intutic-check.sh ─────────────────────────────────────────────────
|
|
68
90
|
const checkScriptPath = path.join(scriptsDir, 'intutic-check.sh');
|
|
69
91
|
await unharden(checkScriptPath);
|
|
@@ -76,7 +98,7 @@ export async function writeGooseHooks(proxyUrl, workspaceRoot = os.homedir(), wo
|
|
|
76
98
|
# Proxy: ${proxyUrl}
|
|
77
99
|
# Generated: ${newIso()}
|
|
78
100
|
set -euo pipefail
|
|
79
|
-
${
|
|
101
|
+
${emitShellFailClosed('goose')}
|
|
80
102
|
EVENT="\${1:-pre}"
|
|
81
103
|
INPUT="\$(cat)"
|
|
82
104
|
${SHELL_EXTRACT}
|
|
@@ -117,7 +139,11 @@ log_event() {
|
|
|
117
139
|
ws="\${ws//\\\\/\\\\\\\\}"; ws="\${ws//\\"/\\\\\\"}"; ws="\${ws//[\$'\\x01'-\$'\\x1f']/ }"
|
|
118
140
|
local ts; ts="\$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
119
141
|
local incident_id; incident_id="\$(printf '%s' "\${ts}\${tool}\${INTUTIC_WORKSPACE_ID}" | sha1sum 2>/dev/null | cut -c1-16 || echo \"\$(date +%s)\")"
|
|
120
|
-
|
|
142
|
+
# The event's id: random, made once here, and resent with the line it is
|
|
143
|
+
# written into, so the control plane processes the event once.
|
|
144
|
+
local event_id; event_id="\$(od -An -N16 -tx1 /dev/urandom 2>/dev/null | tr -d ' \\n' || true)"
|
|
145
|
+
[ -n "\$event_id" ] || event_id="\$(date +%s)\$\$\${RANDOM}\${RANDOM}\${RANDOM}"
|
|
146
|
+
local entry="{\\"event\\":\\"\${verdict}\\",\\"toolName\\":\\"\${tool}\\",\\"reason\\":\\"\${reason}\\",\\"workspaceId\\":\\"\${ws}\\",\\"harnessType\\":\\"goose\\",\\"timestamp\\":\\"\${ts}\\",\\"incidentId\\":\\"\${incident_id}\\",\\"eventId\\":\\"\${event_id}\\"}"
|
|
121
147
|
# Path B: reliable file append
|
|
122
148
|
printf '%s\\n' "\$entry" >> "\$HOOK_EVENTS_LOG" 2>/dev/null || true
|
|
123
149
|
# Path A: fire-and-forget HTTP (non-blocking, near-real-time)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gooseHooks.js","sourceRoot":"","sources":["../../src/harness/gooseHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"gooseHooks.js","sourceRoot":"","sources":["../../src/harness/gooseHooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
* policy-snapshot evaluation), and — this is the part that is independently
|
|
21
21
|
* confirmed, unlike Muse Code's — signals a block by writing
|
|
22
22
|
* `{"decision":"deny","reason":"..."}` as JSON on **stdout** and exiting 0.
|
|
23
|
-
* That is a *different* stdout shape from Cline
|
|
24
|
-
* — Grok Build does not recognise `cancel`, and Cline
|
|
23
|
+
* That is a *different* stdout shape from Cline's `{"cancel":true}`
|
|
24
|
+
* — Grok Build does not recognise `cancel`, and Cline does not
|
|
25
25
|
* recognise `decision` — so this writer uses its own `BlockContract` value,
|
|
26
26
|
* `'stdout-decision-deny'` (see gateBody.ts's module doc for why the two
|
|
27
27
|
* stdout shapes are not folded into one contract), rather than reusing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grokHooks.d.ts","sourceRoot":"","sources":["../../src/harness/grokHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;
|
|
1
|
+
{"version":3,"file":"grokHooks.d.ts","sourceRoot":"","sources":["../../src/harness/grokHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAiSH;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
|