@intutic/cli 2.8.0 → 2.9.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 +20 -10
- package/dist/cli.js +100 -51
- package/dist/cli.js.map +1 -1
- package/dist/commands/budget.d.ts.map +1 -1
- package/dist/commands/budget.js +6 -7
- package/dist/commands/budget.js.map +1 -1
- package/dist/commands/connect.d.ts +2 -26
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +5 -54
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/disconnect.d.ts +7 -4
- package/dist/commands/disconnect.d.ts.map +1 -1
- package/dist/commands/disconnect.js +28 -15
- package/dist/commands/disconnect.js.map +1 -1
- package/dist/commands/doctor.d.ts +14 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +84 -19
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/exec.js +1 -1
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/gates.d.ts +26 -0
- package/dist/commands/gates.d.ts.map +1 -0
- package/dist/commands/gates.js +121 -0
- package/dist/commands/gates.js.map +1 -0
- package/dist/commands/init.d.ts +6 -3
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +35 -5
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +7 -2
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.d.ts +10 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +74 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +15 -5
- package/dist/commands/status.js.map +1 -1
- package/dist/config/paths.d.ts +17 -1
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +25 -4
- package/dist/config/paths.js.map +1 -1
- package/dist/harness/aider.d.ts.map +1 -1
- package/dist/harness/aider.js +3 -2
- package/dist/harness/aider.js.map +1 -1
- package/dist/harness/codex.d.ts.map +1 -1
- package/dist/harness/codex.js +3 -2
- package/dist/harness/codex.js.map +1 -1
- package/dist/harness/continue.d.ts.map +1 -1
- package/dist/harness/continue.js +4 -1
- package/dist/harness/continue.js.map +1 -1
- package/dist/harness/dsh.d.ts.map +1 -1
- package/dist/harness/dsh.js +2 -2
- package/dist/harness/dsh.js.map +1 -1
- package/dist/harness/goose.d.ts.map +1 -1
- package/dist/harness/goose.js +2 -2
- package/dist/harness/goose.js.map +1 -1
- package/dist/harness/grok.d.ts.map +1 -1
- package/dist/harness/grok.js +2 -2
- package/dist/harness/grok.js.map +1 -1
- package/dist/harness/hermes.d.ts.map +1 -1
- package/dist/harness/hermes.js +2 -2
- package/dist/harness/hermes.js.map +1 -1
- package/dist/harness/openhands.d.ts.map +1 -1
- package/dist/harness/openhands.js +5 -3
- package/dist/harness/openhands.js.map +1 -1
- package/dist/harness/pi.d.ts.map +1 -1
- package/dist/harness/pi.js +2 -2
- package/dist/harness/pi.js.map +1 -1
- package/dist/harness/types.d.ts +15 -4
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/windsurf.d.ts.map +1 -1
- package/dist/harness/windsurf.js +2 -2
- package/dist/harness/windsurf.js.map +1 -1
- package/dist/harness/writeHarnessConfigs.d.ts +41 -0
- package/dist/harness/writeHarnessConfigs.d.ts.map +1 -0
- package/dist/harness/writeHarnessConfigs.js +69 -0
- package/dist/harness/writeHarnessConfigs.js.map +1 -0
- package/dist/lib/gitHooks.d.ts.map +1 -1
- package/dist/lib/gitHooks.js +10 -7
- package/dist/lib/gitHooks.js.map +1 -1
- package/dist/lib/localGates.d.ts +62 -0
- package/dist/lib/localGates.d.ts.map +1 -0
- package/dist/lib/localGates.js +145 -0
- package/dist/lib/localGates.js.map +1 -0
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +4 -2
- package/dist/lib/onboarding.js.map +1 -1
- package/package.json +5 -5
package/dist/harness/pi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/harness/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,kFAAkF;AAClF,MAAM,WAAW,GAAG,KAAK,CAAA;AAEzB,MAAM,CAAC,MAAM,SAAS,GAAoB;IACxC,IAAI,EAAE,WAAW,CAAC,EAAE;IACpB,cAAc,EAAE,SAAS;IAEzB,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;QAChD,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAA;YACrC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,QAAgB;
|
|
1
|
+
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/harness/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,kFAAkF;AAClF,MAAM,WAAW,GAAG,KAAK,CAAA;AAEzB,MAAM,CAAC,MAAM,SAAS,GAAoB;IACxC,IAAI,EAAE,WAAW,CAAC,EAAE;IACpB,cAAc,EAAE,SAAS;IAEzB,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;QAChD,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAA;YACrC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,QAAgB,EAAE,IAA0B;QACnF,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;QACrC,MAAM,YAAY,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,CAAA;IACrG,CAAC;IAED,WAAW,CAAC,aAAqB,EAAE,IAAoB,EAAE,QAAgB;QACvE,OAAO,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACrD,CAAC;IAED,eAAe,CAAC,aAAqB;QACnC,OAAO,YAAY,CAAC,aAAa,CAAC,CAAA;IACpC,CAAC;CACF,CAAA"}
|
package/dist/harness/types.d.ts
CHANGED
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
import type { HarnessType, SyncSopEntry } from '@intutic/shared-types';
|
|
11
|
+
/** How an adapter writes, beyond what to write. */
|
|
12
|
+
export interface HarnessWriteOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Also point the harness's LLM traffic at the proxy (base URLs, HTTP proxy
|
|
15
|
+
* settings). Default true, which is what `intutic connect` does. False
|
|
16
|
+
* (`intutic gates install` without `--route`) writes the gate and the rules
|
|
17
|
+
* only, so a harness keeps working when no proxy is running.
|
|
18
|
+
*/
|
|
19
|
+
routing?: boolean;
|
|
20
|
+
}
|
|
11
21
|
/** Contract implemented by each harness adapter. */
|
|
12
22
|
export interface IHarnessAdapter {
|
|
13
23
|
/** Harness type identifier. */
|
|
@@ -27,17 +37,18 @@ export interface IHarnessAdapter {
|
|
|
27
37
|
* enforces the built-in protections, the destructive-command tier, group
|
|
28
38
|
* rules and holds, none of which need a rule set, so `intutic connect` runs
|
|
29
39
|
* this for every configured harness. Absent when the harness has no gate
|
|
30
|
-
* Intutic installs.
|
|
40
|
+
* Intutic installs. With `opts.routing` false, the routing is left out.
|
|
31
41
|
*/
|
|
32
|
-
installGate?(workspaceRoot: string, proxyUrl: string): Promise<void>;
|
|
42
|
+
installGate?(workspaceRoot: string, proxyUrl: string, opts?: HarnessWriteOptions): Promise<void>;
|
|
33
43
|
/**
|
|
34
44
|
* Write the rule sets into the file the harness reads as standing
|
|
35
45
|
* instructions — the one `HARNESS_RULES_FILES` names, and no other.
|
|
36
46
|
* `intutic connect` calls it only when a rule set targets the harness, or
|
|
37
47
|
* on a forced sync. Returns the absolute path written, or null if nothing
|
|
38
|
-
* was.
|
|
48
|
+
* was. With `opts.routing` false, a config that also carries routing (Aider,
|
|
49
|
+
* OpenHands) is written without it.
|
|
39
50
|
*/
|
|
40
|
-
writeConfig(workspaceRoot: string, sops: SyncSopEntry[], proxyUrl: string): Promise<string | null>;
|
|
51
|
+
writeConfig(workspaceRoot: string, sops: SyncSopEntry[], proxyUrl: string, opts?: HarnessWriteOptions): Promise<string | null>;
|
|
41
52
|
/** Read SHA-256 hash of current config file content. Returns null if file doesn't exist. */
|
|
42
53
|
readCurrentHash(workspaceRoot: string): Promise<string | null>;
|
|
43
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEtE,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEtE,mDAAmD;AACnD,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChG;;;;;;;OAOG;IACH,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC9H,4FAA4F;IAC5F,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CAC/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windsurf.d.ts","sourceRoot":"","sources":["../../src/harness/windsurf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"windsurf.d.ts","sourceRoot":"","sources":["../../src/harness/windsurf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,YAAY,CAAA;AAUtE,eAAO,MAAM,eAAe,EAAE,eA6B7B,CAAA"}
|
package/dist/harness/windsurf.js
CHANGED
|
@@ -50,10 +50,10 @@ export const windsurfAdapter = {
|
|
|
50
50
|
* The proxy serves HTTP CONNECT on the same listener as its API, so the
|
|
51
51
|
* port is the one `intutic connect` and `start` run it on: the port of
|
|
52
52
|
* INTUTIC_PROXY_URL, 4000 by default. `PORT` is not read. */
|
|
53
|
-
async installGate(workspaceRoot, proxyUrl) {
|
|
53
|
+
async installGate(workspaceRoot, proxyUrl, opts) {
|
|
54
54
|
const proxyPort = localProxyPort();
|
|
55
55
|
const creds = await loadCredentials();
|
|
56
|
-
await writeWindsurfHooks(workspaceRoot, proxyUrl, proxyPort, creds?.workspaceId || 'local');
|
|
56
|
+
await writeWindsurfHooks(workspaceRoot, proxyUrl, proxyPort, creds?.workspaceId || 'local', opts?.routing !== false);
|
|
57
57
|
},
|
|
58
58
|
async writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
59
59
|
await retireLegacyRulesFile(workspaceRoot, LEGACY_FILE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/harness/windsurf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAE5F,MAAM,WAAW,GAAG,uCAAuC,CAAA;AAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAA;AACpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,KAAK,MAAM,MAAM,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAAC,OAAO,IAAI,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAA;QAAC,CAAC;IAC7E,CAAC;IAED;;;kEAG8D;IAC9D,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,QAAgB;
|
|
1
|
+
{"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/harness/windsurf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAE5F,MAAM,WAAW,GAAG,uCAAuC,CAAA;AAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAA;AACpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,KAAK,MAAM,MAAM,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAAC,OAAO,IAAI,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAA;QAAC,CAAC;IAC7E,CAAC;IAED;;;kEAG8D;IAC9D,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,QAAgB,EAAE,IAA0B;QACnF,MAAM,SAAS,GAAG,cAAc,EAAE,CAAA;QAClC,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;QACrC,MAAM,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,CAAA;IACtH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,IAAoB,EAAE,QAAgB;QAC7E,MAAM,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;QACvD,OAAO,iBAAiB,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC,CAAA;IAC5I,CAAC;IAED,eAAe,CAAC,aAAqB;QACnC,OAAO,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IACrD,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The harness writer `intutic connect` and `intutic gates install` share:
|
|
3
|
+
* each configured harness's gate, and its rules file.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import type { SyncSopEntry } from '@intutic/shared-types';
|
|
8
|
+
import type { HarnessWriteOptions } from './types.js';
|
|
9
|
+
export interface WriteHarnessConfigsOptions extends HarnessWriteOptions {
|
|
10
|
+
/** Called with each rules file an adapter wrote. */
|
|
11
|
+
onRulesFile?: (path: string) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Applies a synced configuration to each configured harness.
|
|
15
|
+
*
|
|
16
|
+
* The gate is installed whatever rule sets the workspace has: it enforces the
|
|
17
|
+
* built-in protections, the destructive-command tier, group rules and holds,
|
|
18
|
+
* none of which need a rule set. Gating it on rule sets left a workspace with
|
|
19
|
+
* none, or with none targeting a harness, with that harness ungoverned. The
|
|
20
|
+
* rules file is written only when a rule set targets the harness, or on a
|
|
21
|
+
* forced sync.
|
|
22
|
+
*
|
|
23
|
+
* Harnesses that read the same file (Codex, Grok Build, OpenCode, Muse Code
|
|
24
|
+
* and others all read `AGENTS.md`) each get every rule set aimed at any of
|
|
25
|
+
* them that is configured here: one section, the same for every writer, so
|
|
26
|
+
* the last writer no longer replaces the others' rules.
|
|
27
|
+
*
|
|
28
|
+
* Claude Code reads its own `.claude/rules/` file at every launch, and also
|
|
29
|
+
* the workspace's `AGENTS.md` when there is no `CLAUDE.md` on the path (or
|
|
30
|
+
* the user chose `claude-md-and-agents-md`; see claudeAgentsMd.ts). When it
|
|
31
|
+
* does, a rule set aimed at both Claude Code and an `AGENTS.md` reader
|
|
32
|
+
* reaches it through `AGENTS.md`, so its own file leaves that rule set out
|
|
33
|
+
* rather than load it twice.
|
|
34
|
+
*
|
|
35
|
+
* `opts.routing` (default true) also points each harness's LLM traffic at
|
|
36
|
+
* `proxyUrl`; false writes gates and rules only.
|
|
37
|
+
*
|
|
38
|
+
* @returns how many rule sets were written into rules files.
|
|
39
|
+
*/
|
|
40
|
+
export declare function writeHarnessConfigs(harnesses: readonly string[], workspaceRoot: string, sops: readonly SyncSopEntry[], proxyUrl: string, force: boolean, opts?: WriteHarnessConfigsOptions): Promise<number>;
|
|
41
|
+
//# sourceMappingURL=writeHarnessConfigs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeHarnessConfigs.d.ts","sourceRoot":"","sources":["../../src/harness/writeHarnessConfigs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE,oDAAoD;IACpD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The harness writer `intutic connect` and `intutic gates install` share:
|
|
3
|
+
* each configured harness's gate, and its rules file.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import { HarnessType, rulesFileOf } from '@intutic/shared-types';
|
|
8
|
+
import { claudeCodeReadsAgentsMd } from '@intutic/sync-daemon';
|
|
9
|
+
import { getAdapter } from './detector.js';
|
|
10
|
+
/**
|
|
11
|
+
* Applies a synced configuration to each configured harness.
|
|
12
|
+
*
|
|
13
|
+
* The gate is installed whatever rule sets the workspace has: it enforces the
|
|
14
|
+
* built-in protections, the destructive-command tier, group rules and holds,
|
|
15
|
+
* none of which need a rule set. Gating it on rule sets left a workspace with
|
|
16
|
+
* none, or with none targeting a harness, with that harness ungoverned. The
|
|
17
|
+
* rules file is written only when a rule set targets the harness, or on a
|
|
18
|
+
* forced sync.
|
|
19
|
+
*
|
|
20
|
+
* Harnesses that read the same file (Codex, Grok Build, OpenCode, Muse Code
|
|
21
|
+
* and others all read `AGENTS.md`) each get every rule set aimed at any of
|
|
22
|
+
* them that is configured here: one section, the same for every writer, so
|
|
23
|
+
* the last writer no longer replaces the others' rules.
|
|
24
|
+
*
|
|
25
|
+
* Claude Code reads its own `.claude/rules/` file at every launch, and also
|
|
26
|
+
* the workspace's `AGENTS.md` when there is no `CLAUDE.md` on the path (or
|
|
27
|
+
* the user chose `claude-md-and-agents-md`; see claudeAgentsMd.ts). When it
|
|
28
|
+
* does, a rule set aimed at both Claude Code and an `AGENTS.md` reader
|
|
29
|
+
* reaches it through `AGENTS.md`, so its own file leaves that rule set out
|
|
30
|
+
* rather than load it twice.
|
|
31
|
+
*
|
|
32
|
+
* `opts.routing` (default true) also points each harness's LLM traffic at
|
|
33
|
+
* `proxyUrl`; false writes gates and rules only.
|
|
34
|
+
*
|
|
35
|
+
* @returns how many rule sets were written into rules files.
|
|
36
|
+
*/
|
|
37
|
+
export async function writeHarnessConfigs(harnesses, workspaceRoot, sops, proxyUrl, force, opts = {}) {
|
|
38
|
+
const writeOpts = { routing: opts.routing !== false };
|
|
39
|
+
let written = 0;
|
|
40
|
+
const writtenFiles = new Set();
|
|
41
|
+
const agentsMdReaders = harnesses.filter((h) => rulesFileOf(h) === 'AGENTS.md');
|
|
42
|
+
const claudeFromAgentsMd = harnesses.includes(HarnessType.CLAUDE_CODE) && agentsMdReaders.length > 0 && (await claudeCodeReadsAgentsMd(workspaceRoot));
|
|
43
|
+
for (const harnessType of harnesses) {
|
|
44
|
+
const adapter = getAdapter(harnessType);
|
|
45
|
+
if (!adapter)
|
|
46
|
+
continue;
|
|
47
|
+
await adapter.installGate?.(workspaceRoot, proxyUrl, writeOpts);
|
|
48
|
+
const file = rulesFileOf(harnessType);
|
|
49
|
+
const readers = file === null ? [harnessType] : harnesses.filter((h) => rulesFileOf(h) === file);
|
|
50
|
+
const aimed = sops.filter((sop) => sop.harnessTargets.some((t) => readers.includes(t)));
|
|
51
|
+
const viaAgentsMd = harnessType === HarnessType.CLAUDE_CODE && claudeFromAgentsMd;
|
|
52
|
+
const targetSops = viaAgentsMd ? aimed.filter((sop) => !sop.harnessTargets.some((t) => agentsMdReaders.includes(t))) : aimed;
|
|
53
|
+
// Claude Code's own file is rewritten even when every rule set aimed at
|
|
54
|
+
// it now comes through AGENTS.md, so it stops carrying them.
|
|
55
|
+
if (aimed.length === 0 && !force)
|
|
56
|
+
continue;
|
|
57
|
+
const path = await adapter.writeConfig(workspaceRoot, targetSops, proxyUrl, writeOpts);
|
|
58
|
+
if (!path)
|
|
59
|
+
continue;
|
|
60
|
+
opts.onRulesFile?.(path);
|
|
61
|
+
// A shared file counts once, however many of its readers wrote it.
|
|
62
|
+
if (file === null || !writtenFiles.has(file))
|
|
63
|
+
written += targetSops.length;
|
|
64
|
+
if (file !== null)
|
|
65
|
+
writtenFiles.add(file);
|
|
66
|
+
}
|
|
67
|
+
return written;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=writeHarnessConfigs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeHarnessConfigs.js","sourceRoot":"","sources":["../../src/harness/writeHarnessConfigs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitHooks.d.ts","sourceRoot":"","sources":["../../src/lib/gitHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"gitHooks.d.ts","sourceRoot":"","sources":["../../src/lib/gitHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiJH;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoG7E"}
|
package/dist/lib/gitHooks.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import * as node_fs from 'node:fs/promises';
|
|
12
12
|
import * as node_path from 'node:path';
|
|
13
|
-
import { secretPatternAlternation } from '@intutic/shared-types';
|
|
13
|
+
import { CONTROL_PLANE_PRODUCT_RELEASED, secretPatternAlternation } from '@intutic/shared-types';
|
|
14
|
+
import { loadCredentials } from '../config/store.js';
|
|
14
15
|
import { writeFileAtomic } from '@intutic/sync-daemon/lib/atomicWrite';
|
|
15
16
|
import { log } from './logger.js';
|
|
16
17
|
/** Marker line identifying a post-commit/post-checkout hook as ours — the overwrite guard. */
|
|
@@ -150,6 +151,11 @@ async function writeHookIfOursOrAbsent(hooksDir, name, content, marker, warnMess
|
|
|
150
151
|
*/
|
|
151
152
|
export async function installGitHooks(workspaceRoot) {
|
|
152
153
|
const gitDir = node_path.join(workspaceRoot, '.git');
|
|
154
|
+
// `intutic sync-context` sends what these hooks record to a control plane.
|
|
155
|
+
// With none, it is not a workaround worth naming.
|
|
156
|
+
const workaround = CONTROL_PLANE_PRODUCT_RELEASED || (await loadCredentials()) !== null
|
|
157
|
+
? (why) => `${why}; run \`intutic sync-context\` manually as a workaround, or add Intutic's sync call to your own hook.`
|
|
158
|
+
: () => 'It only records context for a control plane, so nothing is lost without one.';
|
|
153
159
|
try {
|
|
154
160
|
const stat = await node_fs.stat(gitDir);
|
|
155
161
|
if (!stat.isDirectory()) {
|
|
@@ -171,11 +177,9 @@ export async function installGitHooks(workspaceRoot) {
|
|
|
171
177
|
// submodule sync script) was silently replaced on install. Now a foreign
|
|
172
178
|
// hook is left standing, and the operator is told so.
|
|
173
179
|
const postCommitInstalled = await writeHookIfOursOrAbsent(hooksDir, 'post-commit', gitContextSyncContent(), GIT_CONTEXT_MARKER, "A post-commit hook already exists and is not Intutic's — left untouched. " +
|
|
174
|
-
'Branch/commit context will not sync automatically on commit;
|
|
175
|
-
'`intutic sync-context` manually as a workaround, or add Intutic\'s sync call to your own hook.');
|
|
180
|
+
workaround('Branch/commit context will not sync automatically on commit'));
|
|
176
181
|
const postCheckoutInstalled = await writeHookIfOursOrAbsent(hooksDir, 'post-checkout', gitContextSyncContent(), GIT_CONTEXT_MARKER, "A post-checkout hook already exists and is not Intutic's — left untouched. " +
|
|
177
|
-
'Branch/commit context will not sync automatically on checkout;
|
|
178
|
-
'`intutic sync-context` manually as a workaround, or add Intutic\'s sync call to your own hook.');
|
|
182
|
+
workaround('Branch/commit context will not sync automatically on checkout'));
|
|
179
183
|
// Pre-commit secret scan. Unlike the two tracking hooks above, this one
|
|
180
184
|
// must NOT clobber blindly: pre-commit is where husky/lint-staged and
|
|
181
185
|
// hand-written hooks live, and silently replacing a team's hook to
|
|
@@ -195,8 +199,7 @@ export async function installGitHooks(workspaceRoot) {
|
|
|
195
199
|
// original addition, since changing existing-install behavior needed its
|
|
196
200
|
// own review).
|
|
197
201
|
const postMergeInstalled = await writeHookIfOursOrAbsent(hooksDir, 'post-merge', postMergeContent(), POST_MERGE_MARKER, "A post-merge hook already exists and is not Intutic's — left untouched. " +
|
|
198
|
-
|
|
199
|
-
'`intutic sync-context` manually as a workaround if you need it sooner.');
|
|
202
|
+
workaround("The governed decisions log will still refresh on the daemon's normal poll cycle"));
|
|
200
203
|
// Summary log line, kept honest: only name a hook as installed if it
|
|
201
204
|
// actually was. A hook skipped because a foreign hook already exists at
|
|
202
205
|
// that path already got its own `log.warn` above — this line must never
|
package/dist/lib/gitHooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitHooks.js","sourceRoot":"","sources":["../../src/lib/gitHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"gitHooks.js","sourceRoot":"","sources":["../../src/lib/gitHooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Harness gates and rules files with no control plane: what
|
|
3
|
+
* `intutic gates install` writes, and `intutic start` refreshes.
|
|
4
|
+
*
|
|
5
|
+
* The same writers `intutic connect` runs, fed from this machine only: the
|
|
6
|
+
* local `.intutic/sops` for the rules files and the `review_before:` tokens,
|
|
7
|
+
* and a policy snapshot compiled from no workspace policy
|
|
8
|
+
* (`writeLocalPolicySnapshot`), which still carries the destructive-command
|
|
9
|
+
* and skill tiers. Nothing here fetches, drains or reports; no MCP server is
|
|
10
|
+
* wrapped and no file is made immutable. The harnesses' LLM traffic is
|
|
11
|
+
* pointed at the local proxy only with `routing`, since a harness routed at a
|
|
12
|
+
* proxy that is not running stops working.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import type { GateKind } from '@intutic/shared-types';
|
|
17
|
+
/** The hook events log is rotated past this size; nothing drains it without a control plane. */
|
|
18
|
+
export declare const HOOK_EVENTS_ROTATE_BYTES: number;
|
|
19
|
+
export interface LocalGatesOptions {
|
|
20
|
+
workspaceRoot: string;
|
|
21
|
+
/** The harnesses to install for: recorded ones, less any disconnected. */
|
|
22
|
+
harnesses: readonly string[];
|
|
23
|
+
/** Also point each harness's LLM traffic at the local proxy. */
|
|
24
|
+
routing: boolean;
|
|
25
|
+
/** Compute and report, write nothing. */
|
|
26
|
+
dryRun?: boolean;
|
|
27
|
+
/** Where warnings go. */
|
|
28
|
+
warn?: (line: string) => void;
|
|
29
|
+
}
|
|
30
|
+
export interface LocalGate {
|
|
31
|
+
harness: string;
|
|
32
|
+
kind: GateKind;
|
|
33
|
+
/** The gate file on disk, for a `hook` gate; null when there is none. */
|
|
34
|
+
path: string | null;
|
|
35
|
+
}
|
|
36
|
+
export interface LocalGatesResult {
|
|
37
|
+
/** Files written (on a dry run, the files that would be). */
|
|
38
|
+
files: string[];
|
|
39
|
+
gates: LocalGate[];
|
|
40
|
+
/** The snapshot written; on a dry run, its rule count and no digest. */
|
|
41
|
+
snapshot: {
|
|
42
|
+
digest: string;
|
|
43
|
+
ruleCount: number;
|
|
44
|
+
};
|
|
45
|
+
/** The `review_before:` tokens compiled into refusals. */
|
|
46
|
+
holdTokens: string[];
|
|
47
|
+
/** The proxy the routing names, written or not. */
|
|
48
|
+
proxyUrl: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Who wrote the policy snapshot the gates read: `local` (this module, marked
|
|
52
|
+
* `source: local`), `connect` (any other snapshot), or `none`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function gatesSource(): Promise<'local' | 'connect' | 'none'>;
|
|
55
|
+
/** Whether the snapshot on this machine is one this module wrote. */
|
|
56
|
+
export declare function localGatesInstalled(): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Writes (or with `dryRun`, reports) the local gates. See the module note for
|
|
59
|
+
* what it does not do.
|
|
60
|
+
*/
|
|
61
|
+
export declare function installLocalGates(opts: LocalGatesOptions): Promise<LocalGatesResult>;
|
|
62
|
+
//# sourceMappingURL=localGates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localGates.d.ts","sourceRoot":"","sources":["../../src/lib/localGates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAmBrD,gGAAgG;AAChG,eAAO,MAAM,wBAAwB,QAAmB,CAAA;AAExD,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,0EAA0E;IAC1E,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAA;IAChB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yBAAyB;IACzB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;IACd,yEAAyE;IACzE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,wEAAwE;IACxE,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,0DAA0D;IAC1D,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;CACjB;AAMD;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,CAYzE;AAED,qEAAqE;AACrE,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5D;AAyBD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+D1F"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Harness gates and rules files with no control plane: what
|
|
3
|
+
* `intutic gates install` writes, and `intutic start` refreshes.
|
|
4
|
+
*
|
|
5
|
+
* The same writers `intutic connect` runs, fed from this machine only: the
|
|
6
|
+
* local `.intutic/sops` for the rules files and the `review_before:` tokens,
|
|
7
|
+
* and a policy snapshot compiled from no workspace policy
|
|
8
|
+
* (`writeLocalPolicySnapshot`), which still carries the destructive-command
|
|
9
|
+
* and skill tiers. Nothing here fetches, drains or reports; no MCP server is
|
|
10
|
+
* wrapped and no file is made immutable. The harnesses' LLM traffic is
|
|
11
|
+
* pointed at the local proxy only with `routing`, since a harness routed at a
|
|
12
|
+
* proxy that is not running stops working.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import * as node_fs from 'node:fs/promises';
|
|
17
|
+
import * as node_path from 'node:path';
|
|
18
|
+
import { homedir } from 'node:os';
|
|
19
|
+
import { gateKindForHarness, HarnessType } from '@intutic/shared-types';
|
|
20
|
+
import { buildSnapshotRules, findGateFile, loadLocalSopEntries, localHoldTokensFor, localResolvedPolicy, noteProxyUrl, SNAPSHOT_JSON, SNAPSHOT_RULES, updatePreToolUseHooks, writeLocalPolicySnapshot, writeRuntimeEnv, } from '@intutic/sync-daemon';
|
|
21
|
+
import { getAdapter } from '../harness/detector.js';
|
|
22
|
+
import { writeHarnessConfigs } from '../harness/writeHarnessConfigs.js';
|
|
23
|
+
import { loadCredentials } from '../config/store.js';
|
|
24
|
+
import { localProxyPort } from './localProxy.js';
|
|
25
|
+
/** The hook events log is rotated past this size; nothing drains it without a control plane. */
|
|
26
|
+
export const HOOK_EVENTS_ROTATE_BYTES = 10 * 1024 * 1024;
|
|
27
|
+
function snapshotDir() {
|
|
28
|
+
return node_path.join(homedir(), '.intutic', 'hooks');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Who wrote the policy snapshot the gates read: `local` (this module, marked
|
|
32
|
+
* `source: local`), `connect` (any other snapshot), or `none`.
|
|
33
|
+
*/
|
|
34
|
+
export async function gatesSource() {
|
|
35
|
+
let text;
|
|
36
|
+
try {
|
|
37
|
+
text = await node_fs.readFile(node_path.join(snapshotDir(), SNAPSHOT_JSON), 'utf-8');
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return 'none';
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
return JSON.parse(text).source === 'local' ? 'local' : 'connect';
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return 'connect';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** Whether the snapshot on this machine is one this module wrote. */
|
|
50
|
+
export async function localGatesInstalled() {
|
|
51
|
+
return (await gatesSource()) === 'local';
|
|
52
|
+
}
|
|
53
|
+
/** Whether `runtime.env` still holds an API key, from a control plane this machine no longer has a login for. */
|
|
54
|
+
async function staleRuntimeKey(envPath) {
|
|
55
|
+
let text;
|
|
56
|
+
try {
|
|
57
|
+
text = await node_fs.readFile(envPath, 'utf-8');
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return text.split('\n').some((line) => /^INTUTIC_API_KEY=\S/.test(line.trim()));
|
|
63
|
+
}
|
|
64
|
+
/** Keeps one previous log (`.1`) once the live one passes {@link HOOK_EVENTS_ROTATE_BYTES}. */
|
|
65
|
+
async function rotateHookEvents(workspaceRoot, dryRun) {
|
|
66
|
+
const log = node_path.join(workspaceRoot, '.intutic', 'events', 'hook-events.jsonl');
|
|
67
|
+
try {
|
|
68
|
+
if ((await node_fs.stat(log)).size <= HOOK_EVENTS_ROTATE_BYTES)
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
if (!dryRun)
|
|
75
|
+
await node_fs.rename(log, `${log}.1`);
|
|
76
|
+
return `${log}.1`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Writes (or with `dryRun`, reports) the local gates. See the module note for
|
|
80
|
+
* what it does not do.
|
|
81
|
+
*/
|
|
82
|
+
export async function installLocalGates(opts) {
|
|
83
|
+
const root = opts.workspaceRoot;
|
|
84
|
+
const harnesses = [...opts.harnesses];
|
|
85
|
+
const dryRun = Boolean(opts.dryRun);
|
|
86
|
+
const warn = opts.warn ?? (() => undefined);
|
|
87
|
+
const proxyUrl = `http://127.0.0.1:${localProxyPort()}`;
|
|
88
|
+
const home = homedir();
|
|
89
|
+
const files = [];
|
|
90
|
+
// The same reads connect makes: the rules files' SOPs (honouring the
|
|
91
|
+
// session's selection), and every local SOP's review_before: tokens.
|
|
92
|
+
const sops = await loadLocalSopEntries(root, harnesses, {
|
|
93
|
+
onError: (err) => warn(`Could not read every local SOP in .intutic/sops; the rules files are written without the ones that failed: ${err instanceof Error ? err.message : String(err)}`),
|
|
94
|
+
});
|
|
95
|
+
const holdTokens = await localHoldTokensFor(root, [], undefined, harnesses);
|
|
96
|
+
let snapshot;
|
|
97
|
+
if (dryRun) {
|
|
98
|
+
snapshot = { digest: '', ruleCount: buildSnapshotRules(localResolvedPolicy(), holdTokens, 'block').length };
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
snapshot = await writeLocalPolicySnapshot({ localHoldTokens: holdTokens, snapshotDir: snapshotDir() });
|
|
102
|
+
}
|
|
103
|
+
files.push(node_path.join(snapshotDir(), SNAPSHOT_RULES), node_path.join(snapshotDir(), SNAPSHOT_JSON));
|
|
104
|
+
if (dryRun) {
|
|
105
|
+
for (const h of harnesses) {
|
|
106
|
+
const file = getAdapter(h)?.configFileName;
|
|
107
|
+
if (file && sops.some((sop) => sop.harnessTargets.includes(h)))
|
|
108
|
+
files.push(node_path.resolve(root, file));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// disconnect recognises the base URLs it is written into by it.
|
|
113
|
+
if (opts.routing)
|
|
114
|
+
await noteProxyUrl(proxyUrl);
|
|
115
|
+
await writeHarnessConfigs(harnesses, root, sops, proxyUrl, false, {
|
|
116
|
+
routing: opts.routing,
|
|
117
|
+
onRulesFile: (path) => files.push(path),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
if (harnesses.includes(HarnessType.CLAUDE_CODE)) {
|
|
121
|
+
if (!dryRun)
|
|
122
|
+
await updatePreToolUseHooks(root, [], undefined);
|
|
123
|
+
files.push(node_path.join(root, '.claude', 'settings.json'));
|
|
124
|
+
if (!process.env['VITEST'] && !process.env['INTUTIC_SKIP_GLOBAL_HOOKS'])
|
|
125
|
+
files.push(node_path.join(home, '.claude', 'settings.json'));
|
|
126
|
+
}
|
|
127
|
+
// A key left by an earlier connect makes every gate post its events to that
|
|
128
|
+
// control plane. With no login here, nothing should.
|
|
129
|
+
const runtimeEnv = node_path.join(home, '.intutic', 'env', 'runtime.env');
|
|
130
|
+
if ((await loadCredentials()) === null && (await staleRuntimeKey(runtimeEnv))) {
|
|
131
|
+
if (!dryRun)
|
|
132
|
+
await writeRuntimeEnv({ controlPlaneUrl: '', apiKey: '', workspaceId: '', envPath: runtimeEnv });
|
|
133
|
+
files.push(runtimeEnv);
|
|
134
|
+
}
|
|
135
|
+
const rotated = await rotateHookEvents(root, dryRun);
|
|
136
|
+
if (rotated)
|
|
137
|
+
files.push(rotated);
|
|
138
|
+
const gates = [];
|
|
139
|
+
for (const harness of harnesses) {
|
|
140
|
+
const kind = gateKindForHarness(harness);
|
|
141
|
+
gates.push({ harness, kind, path: kind === 'hook' ? await findGateFile(harness, root, home) : null });
|
|
142
|
+
}
|
|
143
|
+
return { files: [...new Set(files)], gates, snapshot, holdTokens, proxyUrl };
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=localGates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localGates.js","sourceRoot":"","sources":["../../src/lib/localGates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6BH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6BH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAoOtF"}
|
package/dist/lib/onboarding.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import pc from 'picocolors';
|
|
9
9
|
import { log } from './logger.js';
|
|
10
|
-
import { anthropicBaseUrl, openaiBaseUrl } from '@intutic/shared-types';
|
|
10
|
+
import { anthropicBaseUrl, openaiBaseUrl, CONTROL_PLANE_PRODUCT_RELEASED } from '@intutic/shared-types';
|
|
11
11
|
/**
|
|
12
12
|
* Print tailored setup instructions for a list of harnesses.
|
|
13
13
|
*
|
|
@@ -229,7 +229,9 @@ export function printOnboardingGuide(harnesses, userAuthToken) {
|
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
writeCliOutput('');
|
|
232
|
-
log.info(
|
|
232
|
+
log.info(CONTROL_PLANE_PRODUCT_RELEASED
|
|
233
|
+
? `Start the sync daemon using: ${pc.bold('intutic connect')}`
|
|
234
|
+
: `Start the proxy using: ${pc.bold('intutic start')}`);
|
|
233
235
|
writeCliOutput('');
|
|
234
236
|
}
|
|
235
237
|
//# sourceMappingURL=onboarding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AAEvG;;;;;GAKG;AACH,SAAS,aAAa,CAAC,QAAiB;IACtC,IAAI,CAAC,QAAQ;QAAE,OAAO,yBAAyB,CAAA;IAC/C,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;AACnF,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,MAAc;IAClD,cAAc,CAAC,eAAe,OAAO,KAAK,MAAM,GAAG,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,MAAc,EAAE,MAAM,GAAG,CAAC;IAC/D,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAmB,EAAE,aAAsB;IAC9E,MAAM,gBAAgB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;IACrD,4EAA4E;IAC5E,6EAA6E;IAC7E,wEAAwE;IACxE,8CAA8C;IAC9C,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAE7D,cAAc,CAAC,EAAE,CAAC,CAAA;IAClB,GAAG,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAA;IACxD,cAAc,CAAC,gFAAgF,CAAC,CAAA;IAChG,cAAc,CAAC,mCAAmC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtE,IAAI,aAAa,EAAE,CAAC;QAClB,cAAc,CAAC,4BAA4B,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAC1E,CAAC;SAAM,CAAC;QACN,wEAAwE;QACxE,uCAAuC;QACvC,cAAc,CAAC,kFAAkF,CAAC,CAAA;IACpG,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,cAAc,CAAC,EAAE,CAAC,CAAA;QAClB,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;QACvE,cAAc,CAAC,kCAAkC,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,EAAE,CAAC,CAAA;QACpG,cAAc,CAAC,gEAAgE,CAAC,CAAA;QAChF,cAAc,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAA;QACtE,OAAM;IACR,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QAE3F,QAAQ,CAAC,EAAE,CAAC;YACV,KAAK,QAAQ;gBACX,cAAc,CAAC,8CAA8C,CAAC,CAAA;gBAC9D,cAAc,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBAChE,cAAc,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAA;gBAC9E,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;gBACpD,cAAc,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAA;gBAClF,cAAc,CAAC,+BAA+B,CAAC,CAAA;gBAC/C,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBAC3C,cAAc,CAAC,sDAAsD,CAAC,CAAA;gBACtE,MAAK;YAEP,KAAK,aAAa;gBAChB,cAAc,CAAC,+DAA+D,CAAC,CAAA;gBAC/E,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAA;gBAC3D,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpB,cAAc,CAAC,6EAA6E,CAAC,CAAA;gBAC7F,cAAc,CAAC,mCAAmC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACxE,WAAW,CAAC,mBAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBAC5D,MAAK;YAEP,KAAK,OAAO;gBACV,cAAc,CAAC,yDAAyD,CAAC,CAAA;gBACzE,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC,EAAE,CAAC,CAAA;gBAChF,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpB,cAAc,CAAC,qCAAqC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAA;gBACnG,cAAc,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;gBACnD,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;gBAChD,cAAc,CAAC,2BAA2B,CAAC,CAAA;gBAC3C,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpB,cAAc,CAAC,iDAAiD,CAAC,CAAA;gBACjE,cAAc,CAAC,gCAAgC,QAAQ,GAAG,CAAC,CAAA;gBAC3D,WAAW,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;gBAC/C,MAAK;YAEP,KAAK,UAAU;gBACb,cAAc,CAAC,kCAAkC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAA;gBACvF,cAAc,CAAC,cAAc,CAAC,CAAA;gBAC9B,cAAc,CAAC,gCAAgC,CAAC,CAAA;gBAChD,cAAc,CAAC,2BAA2B,CAAC,CAAA;gBAC3C,cAAc,CAAC,wBAAwB,CAAC,CAAA;gBACxC,cAAc,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAA;gBAC/C,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;gBAC3C,MAAK;YAEP,KAAK,OAAO;gBACV,cAAc,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;gBACrE,cAAc,CAAC,yCAAyC,CAAC,CAAA;gBACzD,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAA;gBAC3E,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBAC1E,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;gBACjE,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;gBACpD,cAAc,CAAC,wDAAwD,CAAC,CAAA;gBACxE,MAAK;YAEP,KAAK,UAAU;gBACb,cAAc,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;gBACxE,cAAc,CAAC,yCAAyC,CAAC,CAAA;gBACzD,cAAc,CAAC,gCAAgC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;gBAC3F,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBAC1E,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;gBACpD,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;gBACpD,cAAc,CAAC,wDAAwD,CAAC,CAAA;gBACxE,MAAK;YAEP,KAAK,OAAO;gBACV,cAAc,CAAC,yDAAyD,CAAC,CAAA;gBACzE,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAA;gBAC9D,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpB,cAAc,CAAC,mCAAmC,CAAC,CAAA;gBACnD,cAAc,CAAC,4BAA4B,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACjE,WAAW,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;gBAC/C,MAAK;YAEP,KAAK,UAAU;gBACb,cAAc,CAAC,uCAAuC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAA;gBAC9F,cAAc,CAAC,QAAQ,CAAC,CAAA;gBACxB,cAAc,CAAC,oBAAoB,CAAC,CAAA;gBACpC,cAAc,CAAC,yBAAyB,CAAC,CAAA;gBACzC,cAAc,CAAC,yBAAyB,CAAC,CAAA;gBACzC,cAAc,CAAC,4BAA4B,QAAQ,IAAI,CAAC,CAAA;gBACxD,cAAc,CAAC,8BAA8B,gBAAgB,IAAI,CAAC,CAAA;gBAClE,cAAc,CAAC,2CAA2C,CAAC,CAAA;gBAC3D,cAAc,CAAC,2EAA2E,CAAC,CAAA;gBAC3F,cAAc,CAAC,cAAc,CAAC,CAAA;gBAC9B,cAAc,CAAC,YAAY,CAAC,CAAA;gBAC5B,cAAc,CAAC,UAAU,CAAC,CAAA;gBAC1B,cAAc,CAAC,QAAQ,CAAC,CAAA;gBACxB,MAAK;YAEP,KAAK,OAAO;gBACV,cAAc,CAAC,uCAAuC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;gBACzF,cAAc,CAAC,uBAAuB,CAAC,CAAA;gBACvC,cAAc,CAAC,iCAAiC,CAAC,CAAA;gBACjD,cAAc,CAAC,gCAAgC,CAAC,CAAA;gBAChD,cAAc,CAAC,+BAA+B,CAAC,CAAA;gBAC/C,cAAc,CAAC,oBAAoB,QAAQ,GAAG,CAAC,CAAA;gBAC/C,cAAc,CAAC,kCAAkC,CAAC,CAAA;gBAClD,cAAc,CAAC,6BAA6B,CAAC,CAAA;gBAC7C,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpB,cAAc,CAAC,4BAA4B,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;gBACvE,cAAc,CAAC,oBAAoB,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAA;gBAC/D,MAAK;YAEP,KAAK,gBAAgB;gBACnB,cAAc,CAAC,iDAAiD,CAAC,CAAA;gBACjE,cAAc,CAAC,mEAAmE,CAAC,CAAA;gBACnF,cAAc,CAAC,sEAAsE,CAAC,CAAA;gBACtF,MAAK;YAEP,KAAK,YAAY;gBACf,cAAc,CAAC,oEAAoE,CAAC,CAAA;gBACpF,cAAc,CAAC,gCAAgC,QAAQ,GAAG,CAAC,CAAA;gBAC3D,cAAc,CAAC,sBAAsB,KAAK,KAAK,gBAAgB,GAAG,CAAC,CAAA;gBACnE,MAAK;YAEP,KAAK,KAAK;gBACR,cAAc,CAAC,8CAA8C,CAAC,CAAA;gBAC9D,cAAc,CAAC,oCAAoC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;gBAC7E,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBAC3C,cAAc,CAAC,kEAAkE,CAAC,CAAA;gBAClF,MAAK;YAEP,KAAK,UAAU;gBACb,cAAc,CAAC,gFAAgF,CAAC,CAAA;gBAChG,cAAc,CAAC,2EAA2E,CAAC,CAAA;gBAC3F,MAAK;YAEP,KAAK,KAAK;gBACR,cAAc,CAAC,wEAAwE,CAAC,CAAA;gBACxF,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,+BAA+B,CAAC,CAAA;gBAClH,cAAc,CAAC,yCAAyC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAA;gBACtG,cAAc,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,iDAAiD,CAAC,CAAA;gBACjG,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpB,cAAc,CAAC,4EAA4E,CAAC,CAAA;gBAC5F,cAAc,CAAC,4EAA4E,CAAC,CAAA;gBAC5F,cAAc,CAAC,+CAA+C,CAAC,CAAA;gBAC/D,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,+CAA+C,CAAC,EAAE,CAAC,CAAA;gBAClF,cAAc,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,CAAC,CAAA;gBACzG,cAAc,CAAC,IAAI,CAAC,CAAA;gBACpB,cAAc,CAAC,+EAA+E,CAAC,CAAA;gBAC/F,cAAc,CAAC,6BAA6B,CAAC,CAAA;gBAC7C,MAAK;YAEP,KAAK,MAAM;gBACT,mEAAmE;gBACnE,gEAAgE;gBAChE,8DAA8D;gBAC9D,gEAAgE;gBAChE,8CAA8C;gBAC9C,cAAc,CAAC,yEAAyE,CAAC,CAAA;gBACzF,cAAc,CAAC,2EAA2E,CAAC,CAAA;gBAC3F,cAAc,CAAC,6EAA6E,CAAC,CAAA;gBAC7F,cAAc,CAAC,8EAA8E,CAAC,CAAA;gBAC9F,cAAc,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAA;gBACrE,MAAK;YAEP,KAAK,UAAU;gBACb,sEAAsE;gBACtE,mDAAmD;gBACnD,cAAc,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,yCAAyC,CAAC,sBAAsB,CAAC,CAAA;gBAC5G,cAAc,CAAC,6EAA6E,CAAC,CAAA;gBAC7F,cAAc,CAAC,gDAAgD,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;gBAC3F,cAAc,CAAC,wDAAwD,QAAQ,SAAS,CAAC,CAAA;gBACzF,cAAc,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAA;gBACtI,MAAK;YAEP,KAAK,sBAAsB;gBACzB,iEAAiE;gBACjE,qEAAqE;gBACrE,mEAAmE;gBACnE,eAAe;gBACf,cAAc,CAAC,6EAA6E,CAAC,CAAA;gBAC7F,cAAc,CAAC,wEAAwE,CAAC,CAAA;gBACxF,cAAc,CAAC,6EAA6E,CAAC,CAAA;gBAC7F,cAAc,CAAC,0EAA0E,CAAC,CAAA;gBAC1F,cAAc,CAAC,8DAA8D,CAAC,CAAA;gBAC9E,cAAc,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,EAAE,CAAC,CAAA;gBACrF,MAAK;YAEP;gBACE,cAAc,CAAC,qDAAqD,CAAC,CAAA;gBACrE,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAA;gBACzE,cAAc,CAAC,4CAA4C,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBAChF,MAAK;QACT,CAAC;IACH,CAAC;IAED,cAAc,CAAC,EAAE,CAAC,CAAA;IAClB,GAAG,CAAC,IAAI,CACN,8BAA8B;QAC5B,CAAC,CAAC,gCAAgC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;QAC9D,CAAC,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CACzD,CAAA;IACD,cAAc,CAAC,EAAE,CAAC,CAAA;AACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intutic/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"description": "Intutic CLI — sync daemon, harness detection, and workspace management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"ioredis": "^5.11.1",
|
|
41
41
|
"picocolors": "^1",
|
|
42
42
|
"yaml": "^2.9.0",
|
|
43
|
-
"@intutic/shared-types": "2.
|
|
44
|
-
"@intutic/logger": "2.
|
|
45
|
-
"@intutic/
|
|
46
|
-
"@intutic/
|
|
43
|
+
"@intutic/shared-types": "2.9.0",
|
|
44
|
+
"@intutic/logger": "2.9.0",
|
|
45
|
+
"@intutic/sync-daemon": "2.9.0",
|
|
46
|
+
"@intutic/id": "2.9.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"typescript": "^5.5",
|