@intutic/cli 2.0.0 → 2.1.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/dist/cli.js +120 -128
- package/dist/cli.js.map +1 -1
- package/dist/commands/attenuate.d.ts.map +1 -1
- package/dist/commands/attenuate.js +4 -2
- package/dist/commands/attenuate.js.map +1 -1
- package/dist/commands/budget.d.ts.map +1 -1
- package/dist/commands/budget.js +2 -2
- package/dist/commands/budget.js.map +1 -1
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +20 -9
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/doctor.d.ts +19 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +33 -41
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/enforce.d.ts +10 -0
- package/dist/commands/enforce.d.ts.map +1 -1
- package/dist/commands/enforce.js +36 -0
- package/dist/commands/enforce.js.map +1 -1
- package/dist/commands/exec.d.ts +7 -8
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +59 -60
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +3 -1
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/guardrails.d.ts.map +1 -1
- package/dist/commands/guardrails.js +18 -1
- package/dist/commands/guardrails.js.map +1 -1
- package/dist/commands/init.d.ts +5 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +36 -22
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-daemon.d.ts +1 -1
- package/dist/commands/install-daemon.d.ts.map +1 -1
- package/dist/commands/install-daemon.js +5 -3
- package/dist/commands/install-daemon.js.map +1 -1
- package/dist/commands/integrity.d.ts +31 -2
- package/dist/commands/integrity.d.ts.map +1 -1
- package/dist/commands/integrity.js +109 -3
- package/dist/commands/integrity.js.map +1 -1
- package/dist/commands/judge.d.ts +8 -4
- package/dist/commands/judge.d.ts.map +1 -1
- package/dist/commands/judge.js +41 -21
- package/dist/commands/judge.js.map +1 -1
- package/dist/commands/login.d.ts +1 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +16 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/setup.d.ts +1 -2
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +11 -68
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/skill.d.ts +1 -0
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +17 -3
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +5 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/syncContext.d.ts.map +1 -1
- package/dist/commands/syncContext.js +15 -5
- package/dist/commands/syncContext.js.map +1 -1
- package/dist/config/paths.d.ts +25 -3
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +47 -7
- package/dist/config/paths.js.map +1 -1
- package/dist/harness/agentFramework.d.ts +25 -0
- package/dist/harness/agentFramework.d.ts.map +1 -0
- package/dist/harness/agentFramework.js +37 -0
- package/dist/harness/agentFramework.js.map +1 -0
- package/dist/harness/agentcore.d.ts +6 -3
- package/dist/harness/agentcore.d.ts.map +1 -1
- package/dist/harness/agentcore.js +7 -4
- package/dist/harness/agentcore.js.map +1 -1
- package/dist/harness/aiSdkHarness.d.ts +1 -1
- package/dist/harness/aiSdkHarness.js +1 -1
- package/dist/harness/aiSdkWorkflow.d.ts +1 -1
- package/dist/harness/aiSdkWorkflow.d.ts.map +1 -1
- package/dist/harness/aiSdkWorkflow.js +5 -3
- package/dist/harness/aiSdkWorkflow.js.map +1 -1
- package/dist/harness/aider.d.ts +4 -3
- package/dist/harness/aider.d.ts.map +1 -1
- package/dist/harness/aider.js +7 -6
- package/dist/harness/aider.js.map +1 -1
- package/dist/harness/antigravity.d.ts +4 -2
- package/dist/harness/antigravity.d.ts.map +1 -1
- package/dist/harness/antigravity.js +14 -12
- package/dist/harness/antigravity.js.map +1 -1
- package/dist/harness/cline.d.ts +10 -4
- package/dist/harness/cline.d.ts.map +1 -1
- package/dist/harness/cline.js +39 -32
- package/dist/harness/cline.js.map +1 -1
- package/dist/harness/codex.d.ts +10 -4
- package/dist/harness/codex.d.ts.map +1 -1
- package/dist/harness/codex.js +28 -26
- package/dist/harness/codex.js.map +1 -1
- package/dist/harness/continue.d.ts +8 -5
- package/dist/harness/continue.d.ts.map +1 -1
- package/dist/harness/continue.js +27 -63
- package/dist/harness/continue.js.map +1 -1
- package/dist/harness/detector.d.ts +1 -1
- package/dist/harness/detector.d.ts.map +1 -1
- package/dist/harness/detector.js +3 -1
- package/dist/harness/detector.js.map +1 -1
- package/dist/harness/dsh.d.ts +2 -2
- package/dist/harness/dsh.js +3 -3
- package/dist/harness/dsh.js.map +1 -1
- package/dist/harness/eve.d.ts +1 -1
- package/dist/harness/eve.js +1 -1
- package/dist/harness/githubCopilot.d.ts +4 -2
- package/dist/harness/githubCopilot.d.ts.map +1 -1
- package/dist/harness/githubCopilot.js +10 -2
- package/dist/harness/githubCopilot.js.map +1 -1
- package/dist/harness/jsSdkGatedAdapter.d.ts.map +1 -1
- package/dist/harness/jsSdkGatedAdapter.js +4 -3
- package/dist/harness/jsSdkGatedAdapter.js.map +1 -1
- package/dist/harness/langgraph.js +4 -4
- package/dist/harness/langgraph.js.map +1 -1
- package/dist/harness/n8n.d.ts +5 -2
- package/dist/harness/n8n.d.ts.map +1 -1
- package/dist/harness/n8n.js +12 -3
- package/dist/harness/n8n.js.map +1 -1
- package/dist/harness/openWebUI.d.ts +7 -2
- package/dist/harness/openWebUI.d.ts.map +1 -1
- package/dist/harness/openWebUI.js +15 -4
- package/dist/harness/openWebUI.js.map +1 -1
- package/dist/harness/opencode.d.ts +3 -2
- package/dist/harness/opencode.d.ts.map +1 -1
- package/dist/harness/opencode.js +3 -2
- package/dist/harness/opencode.js.map +1 -1
- package/dist/harness/openhands.d.ts +3 -2
- package/dist/harness/openhands.d.ts.map +1 -1
- package/dist/harness/openhands.js +27 -26
- package/dist/harness/openhands.js.map +1 -1
- package/dist/harness/rooCode.d.ts +6 -5
- package/dist/harness/rooCode.d.ts.map +1 -1
- package/dist/harness/rooCode.js +9 -12
- package/dist/harness/rooCode.js.map +1 -1
- package/dist/harness/sdkGatedAdapter.d.ts.map +1 -1
- package/dist/harness/sdkGatedAdapter.js +4 -3
- package/dist/harness/sdkGatedAdapter.js.map +1 -1
- package/dist/harness/trueforge.js +2 -2
- package/dist/harness/trueforge.js.map +1 -1
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js +3 -0
- package/dist/harness/types.js.map +1 -1
- package/dist/harness/windsurf.d.ts +4 -2
- package/dist/harness/windsurf.d.ts.map +1 -1
- package/dist/harness/windsurf.js +12 -5
- package/dist/harness/windsurf.js.map +1 -1
- package/dist/lib/localProxy.d.ts +19 -0
- package/dist/lib/localProxy.d.ts.map +1 -0
- package/dist/lib/localProxy.js +33 -0
- package/dist/lib/localProxy.js.map +1 -0
- package/dist/lib/onboarding.d.ts +1 -1
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +21 -27
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/sandbox/image.d.ts +27 -0
- package/dist/lib/sandbox/image.d.ts.map +1 -0
- package/dist/lib/sandbox/image.js +54 -0
- package/dist/lib/sandbox/image.js.map +1 -0
- package/dist/lib/sandbox/oci.d.ts +1 -0
- package/dist/lib/sandbox/oci.d.ts.map +1 -1
- package/dist/lib/sandbox/oci.js +4 -0
- package/dist/lib/sandbox/oci.js.map +1 -1
- package/dist/lib/sandbox/types.d.ts +5 -0
- package/dist/lib/sandbox/types.d.ts.map +1 -1
- package/package.json +6 -5
- package/resources/sandbox/Dockerfile +30 -0
- package/resources/sandbox/entrypoint.sh +108 -0
- package/resources/sandbox/firecracker-launch.sh +120 -0
- package/dist/harness/vscodeSettingsWriter.d.ts +0 -40
- package/dist/harness/vscodeSettingsWriter.d.ts.map +0 -1
- package/dist/harness/vscodeSettingsWriter.js +0 -116
- package/dist/harness/vscodeSettingsWriter.js.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentFramework.ts — Microsoft Agent Framework adapter (env-file config,
|
|
3
|
+
* SDK-side gate).
|
|
4
|
+
*
|
|
5
|
+
* Same shape as langgraph.ts (see sdkGatedAdapter.ts). Agent Framework (the
|
|
6
|
+
* AutoGen + Semantic Kernel successor, `agent-framework` /
|
|
7
|
+
* `agent-framework-core` on PyPI, imported as `agent_framework`) is a separate
|
|
8
|
+
* framework from AutoGen (autogen.ts), so it has its own adapter (TD-375).
|
|
9
|
+
* Its tools run in the agent's own Python process, so the blocking gate ships
|
|
10
|
+
* SDK-side via
|
|
11
|
+
* `intutic_clawde.gate.adapters.agent_framework.IntuticFunctionMiddleware`, a
|
|
12
|
+
* `FunctionMiddleware` that skips `call_next()` on a deny (verified live
|
|
13
|
+
* against agent-framework-core==1.20.0).
|
|
14
|
+
*
|
|
15
|
+
* "agent-framework" is a generic phrase, so detection anchors the start of the
|
|
16
|
+
* name: it must not follow a letter, digit, `-`, `_` or `.`. That matches
|
|
17
|
+
* `agent-framework`, `agent-framework-core`, `agent-framework-openai` and the
|
|
18
|
+
* `agent_framework` spelling, but not some other project's
|
|
19
|
+
* `my-agent-framework`.
|
|
20
|
+
*
|
|
21
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
import { HarnessType } from '@intutic/shared-types';
|
|
25
|
+
import { makeSdkGatedAdapter } from './sdkGatedAdapter.js';
|
|
26
|
+
const AGENT_FRAMEWORK_TOKEN = /(?:^|[^a-z0-9_.-])agent[-_]framework(?![a-z0-9])/m;
|
|
27
|
+
export const agentFrameworkAdapter = makeSdkGatedAdapter({
|
|
28
|
+
type: HarnessType.AGENT_FRAMEWORK,
|
|
29
|
+
label: 'Microsoft Agent Framework',
|
|
30
|
+
keywords: [AGENT_FRAMEWORK_TOKEN],
|
|
31
|
+
pipInstall: 'intutic-clawde[agent-framework]',
|
|
32
|
+
importLine: 'from intutic_clawde.gate.adapters.agent_framework import IntuticFunctionMiddleware',
|
|
33
|
+
usageSummary: 'Agent(middleware=[IntuticFunctionMiddleware()]) skips call_next() on a denied tool call, ' +
|
|
34
|
+
'so the tool never runs and the model receives the refusal as the tool result.',
|
|
35
|
+
docsSlug: 'microsoft-agent-framework',
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=agentFramework.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentFramework.js","sourceRoot":"","sources":["../../src/harness/agentFramework.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,qBAAqB,GAAG,mDAAmD,CAAA;AAEjF,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;IACvD,IAAI,EAAE,WAAW,CAAC,eAAe;IACjC,KAAK,EAAE,2BAA2B;IAClC,QAAQ,EAAE,CAAC,qBAAqB,CAAC;IACjC,UAAU,EAAE,iCAAiC;IAC7C,UAAU,EAAE,oFAAoF;IAChG,YAAY,EACV,2FAA2F;QAC3F,+EAA+E;IACjF,QAAQ,EAAE,2BAA2B;CACtC,CAAC,CAAA"}
|
|
@@ -40,9 +40,12 @@
|
|
|
40
40
|
* commands write (confirmed via `bedrock_agentcore_starter_toolkit/cli/
|
|
41
41
|
* runtime/_configure_impl.py` and every other CLI subcommand module that
|
|
42
42
|
* reads it).
|
|
43
|
-
* 5. `agentcore/agentcore.json` or `aws-targets.json`
|
|
44
|
-
*
|
|
45
|
-
*
|
|
43
|
+
* 5. `agentcore/agentcore.json` or `agentcore/aws-targets.json` — the config
|
|
44
|
+
* files the npm `@aws/agentcore` CLI writes. Both live in the project's
|
|
45
|
+
* `agentcore/` directory, not at the root: confirmed by running
|
|
46
|
+
* `agentcore create` (0.31.1) offline with no AWS credentials, whose real
|
|
47
|
+
* output is vendored in `__fixtures__/agentcore-cli-0.31.1/`, and by the
|
|
48
|
+
* `${root}/agentcore/aws-targets.json` paths in the 0.27.0 bundle.
|
|
46
49
|
*
|
|
47
50
|
* No ReDoS surface: every check below is a plain substring/property test
|
|
48
51
|
* over locally-read files, never a regex over untrusted network input.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentcore.d.ts","sourceRoot":"","sources":["../../src/harness/agentcore.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agentcore.d.ts","sourceRoot":"","sources":["../../src/harness/agentcore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAiDjD,eAAO,MAAM,gBAAgB,EAAE,eAuB9B,CAAA"}
|
|
@@ -40,9 +40,12 @@
|
|
|
40
40
|
* commands write (confirmed via `bedrock_agentcore_starter_toolkit/cli/
|
|
41
41
|
* runtime/_configure_impl.py` and every other CLI subcommand module that
|
|
42
42
|
* reads it).
|
|
43
|
-
* 5. `agentcore/agentcore.json` or `aws-targets.json`
|
|
44
|
-
*
|
|
45
|
-
*
|
|
43
|
+
* 5. `agentcore/agentcore.json` or `agentcore/aws-targets.json` — the config
|
|
44
|
+
* files the npm `@aws/agentcore` CLI writes. Both live in the project's
|
|
45
|
+
* `agentcore/` directory, not at the root: confirmed by running
|
|
46
|
+
* `agentcore create` (0.31.1) offline with no AWS credentials, whose real
|
|
47
|
+
* output is vendored in `__fixtures__/agentcore-cli-0.31.1/`, and by the
|
|
48
|
+
* `${root}/agentcore/aws-targets.json` paths in the 0.27.0 bundle.
|
|
46
49
|
*
|
|
47
50
|
* No ReDoS surface: every check below is a plain substring/property test
|
|
48
51
|
* over locally-read files, never a regex over untrusted network input.
|
|
@@ -56,7 +59,7 @@ import { HarnessType } from '@intutic/shared-types';
|
|
|
56
59
|
/** Python manifests scanned for the SDK/toolkit package names. */
|
|
57
60
|
const PYTHON_MANIFESTS = ['pyproject.toml', 'requirements.txt', 'uv.lock'];
|
|
58
61
|
/** Config files the `agentcore` CLIs (npm + Python starter toolkit) write. */
|
|
59
|
-
const CONFIG_FILE_SIGNALS = ['.bedrock_agentcore.yaml', 'agentcore/agentcore.json', 'aws-targets.json'];
|
|
62
|
+
const CONFIG_FILE_SIGNALS = ['.bedrock_agentcore.yaml', 'agentcore/agentcore.json', 'agentcore/aws-targets.json'];
|
|
60
63
|
async function hasAnyConfigFile(workspaceRoot) {
|
|
61
64
|
for (const rel of CONFIG_FILE_SIGNALS) {
|
|
62
65
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentcore.js","sourceRoot":"","sources":["../../src/harness/agentcore.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agentcore.js","sourceRoot":"","sources":["../../src/harness/agentcore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,kEAAkE;AAClE,MAAM,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,CAAU,CAAA;AAEnF,8EAA8E;AAC9E,MAAM,mBAAmB,GAAG,CAAC,yBAAyB,EAAE,0BAA0B,EAAE,4BAA4B,CAAU,CAAA;AAE1H,KAAK,UAAU,gBAAgB,CAAC,aAAqB;IACnD,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAA;YACtC,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,aAAqB;IAC1D,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YACtF,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAAE,OAAO,IAAI,CAAA;QACjG,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAQD,KAAK,UAAU,qBAAqB,CAAC,aAAqB;IACxD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAA;QACnD,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,gBAAgB,EAAE,GAAG,QAAQ,CAAC,eAAe,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAA;QACpG,OAAO,mBAAmB,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,CAAA;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA,CAAC,kCAAkC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC/C,IAAI,EAAE,WAAW,CAAC,iBAAiB;IACnC,mEAAmE;IACnE,yEAAyE;IACzE,mEAAmE;IACnE,cAAc,EAAE,EAAE;IAElB,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,IAAI,MAAM,gBAAgB,CAAC,aAAa,CAAC;YAAE,OAAO,IAAI,CAAA;QACtD,IAAI,MAAM,uBAAuB,CAAC,aAAa,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7D,OAAO,qBAAqB,CAAC,aAAa,CAAC,CAAA;IAC7C,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,2DAA2D;IAC3D,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,KAAqB,EAAE,SAAiB;QAChF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* framework, hence `requiresAnyPrefix` rather than a single required package.
|
|
11
11
|
*
|
|
12
12
|
* TWO DOCUMENTED LIMITATIONS carried into the generated `.env.intutic`
|
|
13
|
-
* (both confirmed against `@ai-sdk/harness@1.0.75`'s shipped types — see
|
|
13
|
+
* (both confirmed against `@ai-sdk/harness@1.0.75`'s shipped types, re-read on 1.0.138 — see
|
|
14
14
|
* `@intutic/gate/harness`'s module doc for the full record):
|
|
15
15
|
*
|
|
16
16
|
* 1. Tool execution is SERVER-SIDE, in Vercel Sandbox microVMs — the
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* framework, hence `requiresAnyPrefix` rather than a single required package.
|
|
11
11
|
*
|
|
12
12
|
* TWO DOCUMENTED LIMITATIONS carried into the generated `.env.intutic`
|
|
13
|
-
* (both confirmed against `@ai-sdk/harness@1.0.75`'s shipped types — see
|
|
13
|
+
* (both confirmed against `@ai-sdk/harness@1.0.75`'s shipped types, re-read on 1.0.138 — see
|
|
14
14
|
* `@intutic/gate/harness`'s module doc for the full record):
|
|
15
15
|
*
|
|
16
16
|
* 1. Tool execution is SERVER-SIDE, in Vercel Sandbox microVMs — the
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* with both declares `@ai-sdk/workflow` anyway, which is the trigger.
|
|
14
14
|
*
|
|
15
15
|
* DOCUMENTED SEMANTICS carried into the generated `.env.intutic` (confirmed
|
|
16
|
-
* against `@ai-sdk/workflow@1.0.69` + `workflow@4.8.3
|
|
16
|
+
* against `@ai-sdk/workflow@1.0.69` + `workflow@4.8.3`, re-verified on 2.0.58 + 5.0.1 — see
|
|
17
17
|
* `@intutic/gate/workflow`'s module doc for the full record): WorkflowAgent
|
|
18
18
|
* has no agent-level approval option; the veto surface is per-tool
|
|
19
19
|
* `needsApproval`, and a refusal thrown from it must be FatalError-compatible
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiSdkWorkflow.d.ts","sourceRoot":"","sources":["../../src/harness/aiSdkWorkflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"aiSdkWorkflow.d.ts","sourceRoot":"","sources":["../../src/harness/aiSdkWorkflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,eAAO,MAAM,oBAAoB,sCAc/B,CAAA"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* with both declares `@ai-sdk/workflow` anyway, which is the trigger.
|
|
14
14
|
*
|
|
15
15
|
* DOCUMENTED SEMANTICS carried into the generated `.env.intutic` (confirmed
|
|
16
|
-
* against `@ai-sdk/workflow@1.0.69` + `workflow@4.8.3
|
|
16
|
+
* against `@ai-sdk/workflow@1.0.69` + `workflow@4.8.3`, re-verified on 2.0.58 + 5.0.1 — see
|
|
17
17
|
* `@intutic/gate/workflow`'s module doc for the full record): WorkflowAgent
|
|
18
18
|
* has no agent-level approval option; the veto surface is per-tool
|
|
19
19
|
* `needsApproval`, and a refusal thrown from it must be FatalError-compatible
|
|
@@ -29,8 +29,10 @@ export const aiSdkWorkflowAdapter = makeJsSdkGatedAdapter({
|
|
|
29
29
|
label: 'AI SDK Workflow',
|
|
30
30
|
requires: [{ name: '@ai-sdk/workflow' }],
|
|
31
31
|
npmInstall: '@intutic/gate',
|
|
32
|
-
importLine: "import {
|
|
33
|
-
usageSummary: 'new WorkflowAgent({ ..., tools: withIntuticApproval(tools
|
|
32
|
+
importLine: "import { intuticApprovalStep, withIntuticApproval } from '@intutic/gate/workflow'",
|
|
33
|
+
usageSummary: 'new WorkflowAgent({ ..., tools: withIntuticApproval(tools, { step: intuticGate }) }), where ' +
|
|
34
|
+
"intuticGate is your own \"use step\" function returning intuticApprovalStep(toolName, input, { gate }) " +
|
|
35
|
+
'(needsApproval runs in the workflow sandbox, which has no Node.js). Attaches an async needsApproval ' +
|
|
34
36
|
'per tool (WorkflowAgent itself has no approval option). BLOCK throws a FatalError-compatible ' +
|
|
35
37
|
'refusal so the durable runtime aborts instead of retry-looping the denial; ALLOW resolves ' +
|
|
36
38
|
"false (or true with { onAllow: 'human' } to keep the durable human-approval pause).",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiSdkWorkflow.js","sourceRoot":"","sources":["../../src/harness/aiSdkWorkflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;IACxD,IAAI,EAAE,WAAW,CAAC,eAAe;IACjC,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACxC,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"aiSdkWorkflow.js","sourceRoot":"","sources":["../../src/harness/aiSdkWorkflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;IACxD,IAAI,EAAE,WAAW,CAAC,eAAe;IACjC,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACxC,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,mFAAmF;IAC/F,YAAY,EACV,8FAA8F;QAC9F,yGAAyG;QACzG,sGAAsG;QACtG,+FAA+F;QAC/F,4FAA4F;QAC5F,qFAAqF;IACvF,QAAQ,EAAE,iBAAiB;CAC5B,CAAC,CAAA"}
|
package/dist/harness/aider.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* aider.ts — Aider adapter (full implementation with safe YAML merge).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* which
|
|
6
|
-
* (test-cmd, lint-cmd) that Aider auto-executes on startup
|
|
4
|
+
* Merges proxy routing into .aider.conf.yml using the aiderConfigMerger,
|
|
5
|
+
* which keeps the user's own keys, strips dangerous auto-exec keys
|
|
6
|
+
* (test-cmd, lint-cmd) that Aider auto-executes on startup, and lists the
|
|
7
|
+
* SOP text as a read-only context file (.intutic/aider-sops.md).
|
|
7
8
|
*
|
|
8
9
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
9
10
|
* @module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aider.d.ts","sourceRoot":"","sources":["../../src/harness/aider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"aider.d.ts","sourceRoot":"","sources":["../../src/harness/aider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAMjD,eAAO,MAAM,YAAY,EAAE,eAiC1B,CAAA"}
|
package/dist/harness/aider.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* aider.ts — Aider adapter (full implementation with safe YAML merge).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* which
|
|
6
|
-
* (test-cmd, lint-cmd) that Aider auto-executes on startup
|
|
4
|
+
* Merges proxy routing into .aider.conf.yml using the aiderConfigMerger,
|
|
5
|
+
* which keeps the user's own keys, strips dangerous auto-exec keys
|
|
6
|
+
* (test-cmd, lint-cmd) that Aider auto-executes on startup, and lists the
|
|
7
|
+
* SOP text as a read-only context file (.intutic/aider-sops.md).
|
|
7
8
|
*
|
|
8
9
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
9
10
|
* @module
|
|
@@ -32,9 +33,9 @@ export const aiderAdapter = {
|
|
|
32
33
|
? sops.map((sop) => `## ${sop.title}\n\n${sop.content}`).join('\n\n---\n\n')
|
|
33
34
|
: undefined;
|
|
34
35
|
// Safe merge: strips test-cmd/lint-cmd, preserves all other user keys,
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
return filePath;
|
|
36
|
+
// routes OpenAI (openai-api-base) and Anthropic (set-env) models through
|
|
37
|
+
// the proxy and lists the SOPs as a read-only context file.
|
|
38
|
+
return (await mergeAiderConfig(filePath, proxyUrl, sopsText)) ? filePath : null;
|
|
38
39
|
},
|
|
39
40
|
async readCurrentHash(workspaceRoot) {
|
|
40
41
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aider.js","sourceRoot":"","sources":["../../src/harness/aider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"aider.js","sourceRoot":"","sources":["../../src/harness/aider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AAEjF,MAAM,WAAW,GAAG,iBAAiB,CAAA;AAErC,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,WAAW,CAAC,KAAK;IACvB,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;YAC9C,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,IAAoB,EAAE,QAAgB;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;QAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;YAC5E,CAAC,CAAC,SAAS,CAAA;QAEb,uEAAuE;QACvE,yEAAyE;QACzE,4DAA4D;QAC5D,OAAO,CAAC,MAAM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,aAAqB;QACzC,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Antigravity adapter — .gemini/settings.json
|
|
3
3
|
*
|
|
4
|
-
* Merges SOP content into the customInstructions field of the
|
|
5
|
-
* Gemini settings JSON file
|
|
4
|
+
* Merges SOP content into the customInstructions field of the workspace's
|
|
5
|
+
* Gemini settings JSON file, and installs the Gemini CLI `BeforeTool` gate in
|
|
6
|
+
* `~/.gemini/settings.json` (see antigravityHooks.ts). A settings file that is
|
|
7
|
+
* not a plain JSON object is left alone and reported.
|
|
6
8
|
*
|
|
7
9
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
8
10
|
* @module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../src/harness/antigravity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../src/harness/antigravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQjD,eAAO,MAAM,kBAAkB,EAAE,eAqDhC,CAAA"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Antigravity adapter — .gemini/settings.json
|
|
3
3
|
*
|
|
4
|
-
* Merges SOP content into the customInstructions field of the
|
|
5
|
-
* Gemini settings JSON file
|
|
4
|
+
* Merges SOP content into the customInstructions field of the workspace's
|
|
5
|
+
* Gemini settings JSON file, and installs the Gemini CLI `BeforeTool` gate in
|
|
6
|
+
* `~/.gemini/settings.json` (see antigravityHooks.ts). A settings file that is
|
|
7
|
+
* not a plain JSON object is left alone and reported.
|
|
6
8
|
*
|
|
7
9
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
8
10
|
* @module
|
|
9
11
|
*/
|
|
10
12
|
import { join } from 'node:path';
|
|
11
|
-
import { access,
|
|
13
|
+
import { access, writeFile, rename, mkdir } from 'node:fs/promises';
|
|
12
14
|
import { dirname } from 'node:path';
|
|
13
15
|
import { HarnessType } from '@intutic/shared-types';
|
|
14
16
|
import { hashFile } from '../lib/hash.js';
|
|
15
17
|
import { newIso } from '@intutic/id';
|
|
18
|
+
import { loadCredentials } from '../config/store.js';
|
|
19
|
+
import { readJsonObjectForMerge, writeAntigravityHooks } from '@intutic/sync-daemon';
|
|
16
20
|
const CONFIG_FILE = '.gemini/settings.json';
|
|
17
21
|
export const antigravityAdapter = {
|
|
18
22
|
type: HarnessType.ANTIGRAVITY,
|
|
@@ -27,19 +31,17 @@ export const antigravityAdapter = {
|
|
|
27
31
|
}
|
|
28
32
|
},
|
|
29
33
|
async writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
34
|
+
// The gate is installed even with zero SOPs: it is what refuses tool
|
|
35
|
+
// calls, and the built-in protections apply without any SOP.
|
|
36
|
+
const creds = await loadCredentials();
|
|
37
|
+
await writeAntigravityHooks(workspaceRoot, proxyUrl, creds?.workspaceId || 'local');
|
|
30
38
|
if (sops.length === 0)
|
|
31
39
|
return null;
|
|
32
40
|
const filePath = join(workspaceRoot, CONFIG_FILE);
|
|
33
41
|
const tmpPath = filePath + '.intutic-tmp';
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const existing = await readFile(filePath, 'utf-8');
|
|
38
|
-
settings = JSON.parse(existing);
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
// No existing file — start fresh
|
|
42
|
-
}
|
|
42
|
+
const settings = await readJsonObjectForMerge(filePath);
|
|
43
|
+
if (settings === null)
|
|
44
|
+
return null;
|
|
43
45
|
// Merge governance instructions
|
|
44
46
|
const instructions = sops
|
|
45
47
|
.map((sop) => `## ${sop.title}\n\n${sop.content}`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/harness/antigravity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/harness/antigravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAEpF,MAAM,WAAW,GAAG,uBAAuB,CAAA;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,IAAI,EAAE,WAAW,CAAC,WAAW;IAC7B,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,IAAoB,EAAE,QAAgB;QAC7E,qEAAqE;QACrE,6DAA6D;QAC7D,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;QACrC,MAAM,qBAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,IAAI,OAAO,CAAC,CAAA;QAEnF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAA;QAEzC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QACvD,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAElC,gCAAgC;QAChC,MAAM,YAAY,GAAG,IAAI;aACtB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;aACjD,IAAI,CAAC,aAAa,CAAC,CAAA;QAEtB,QAAQ,CAAC,kBAAkB,GAAG;YAC5B,6CAA6C;YAC7C,gDAAgD;YAChD,gBAAgB,MAAM,EAAE,EAAE;YAC1B,gBAAgB,QAAQ,EAAE;YAC1B,EAAE;YACF,YAAY;SACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3E,MAAM,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,aAAqB;QACzC,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA"}
|
package/dist/harness/cline.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* cline.ts — Cline adapter
|
|
2
|
+
* cline.ts — Cline adapter.
|
|
3
3
|
*
|
|
4
|
-
* Detects the Cline VS Code extension, writes Intutic governance rules
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Detects the Cline VS Code extension, writes Intutic governance rules to
|
|
5
|
+
* `.clinerules/intutic-governance.md` and installs the PreToolUse gate at
|
|
6
|
+
* `.clinerules/hooks/PreToolUse` (see clineHooks.ts — `.clinerules` is a
|
|
7
|
+
* directory so both fit; a flat `.clinerules` an earlier version wrote is
|
|
8
|
+
* converted, one the user wrote is left alone).
|
|
9
|
+
*
|
|
10
|
+
* Cline keeps its API provider and base URL in its own settings panel, not in
|
|
11
|
+
* any file this adapter can write, so routing Cline through the proxy is a
|
|
12
|
+
* manual step (see the Cline integration page).
|
|
7
13
|
*
|
|
8
14
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
9
15
|
* @module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cline.d.ts","sourceRoot":"","sources":["../../src/harness/cline.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cline.d.ts","sourceRoot":"","sources":["../../src/harness/cline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQjD,eAAO,MAAM,YAAY,EAAE,eA4D1B,CAAA"}
|
package/dist/harness/cline.js
CHANGED
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* cline.ts — Cline adapter
|
|
2
|
+
* cline.ts — Cline adapter.
|
|
3
3
|
*
|
|
4
|
-
* Detects the Cline VS Code extension, writes Intutic governance rules
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Detects the Cline VS Code extension, writes Intutic governance rules to
|
|
5
|
+
* `.clinerules/intutic-governance.md` and installs the PreToolUse gate at
|
|
6
|
+
* `.clinerules/hooks/PreToolUse` (see clineHooks.ts — `.clinerules` is a
|
|
7
|
+
* directory so both fit; a flat `.clinerules` an earlier version wrote is
|
|
8
|
+
* converted, one the user wrote is left alone).
|
|
9
|
+
*
|
|
10
|
+
* Cline keeps its API provider and base URL in its own settings panel, not in
|
|
11
|
+
* any file this adapter can write, so routing Cline through the proxy is a
|
|
12
|
+
* manual step (see the Cline integration page).
|
|
7
13
|
*
|
|
8
14
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
9
15
|
* @module
|
|
10
16
|
*/
|
|
11
|
-
import { access, readdir, writeFile, rename
|
|
12
|
-
import { join
|
|
17
|
+
import { access, readdir, writeFile, rename } from 'node:fs/promises';
|
|
18
|
+
import { join } from 'node:path';
|
|
13
19
|
import { homedir } from 'node:os';
|
|
14
20
|
import { HarnessType } from '@intutic/shared-types';
|
|
15
21
|
import { hashFile } from '../lib/hash.js';
|
|
22
|
+
import { loadCredentials } from '../config/store.js';
|
|
16
23
|
import { newIso } from '@intutic/id';
|
|
17
|
-
import { writeClineHooks } from '@intutic/sync-daemon/harness/clineHooks';
|
|
18
|
-
|
|
19
|
-
const CONFIG_FILE = '.clinerules';
|
|
24
|
+
import { writeClineHooks, ensureClinerulesDirectory } from '@intutic/sync-daemon/harness/clineHooks';
|
|
25
|
+
const CONFIG_FILE = '.clinerules/intutic-governance.md';
|
|
20
26
|
export const clineAdapter = {
|
|
21
27
|
type: HarnessType.CLINE,
|
|
22
28
|
configFileName: CONFIG_FILE,
|
|
23
29
|
async detect(workspaceRoot) {
|
|
24
|
-
// Check for .clinerules in workspace
|
|
30
|
+
// Check for .clinerules (file or directory) in workspace
|
|
25
31
|
try {
|
|
26
|
-
await access(join(workspaceRoot,
|
|
32
|
+
await access(join(workspaceRoot, '.clinerules'));
|
|
27
33
|
return true;
|
|
28
34
|
}
|
|
29
35
|
catch {
|
|
@@ -40,27 +46,28 @@ export const clineAdapter = {
|
|
|
40
46
|
}
|
|
41
47
|
},
|
|
42
48
|
async writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
43
|
-
// 1.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
//
|
|
63
|
-
await
|
|
49
|
+
// 1. Rules, as one file in the .clinerules directory Cline reads.
|
|
50
|
+
let filePath = null;
|
|
51
|
+
if (await ensureClinerulesDirectory(workspaceRoot)) {
|
|
52
|
+
filePath = join(workspaceRoot, CONFIG_FILE);
|
|
53
|
+
const instructions = sops.length > 0
|
|
54
|
+
? sops.map((sop) => `## ${sop.title}\n\n${sop.content}`).join('\n\n---\n\n')
|
|
55
|
+
: '# Intutic governance active — no SOP rules configured yet.';
|
|
56
|
+
const content = [
|
|
57
|
+
'# Intutic Governance Rules (auto-generated)',
|
|
58
|
+
'# DO NOT EDIT — managed by intutic sync daemon',
|
|
59
|
+
`# Last sync: ${newIso()}`,
|
|
60
|
+
'',
|
|
61
|
+
instructions,
|
|
62
|
+
'',
|
|
63
|
+
].join('\n');
|
|
64
|
+
const tmp = filePath + '.intutic-tmp';
|
|
65
|
+
await writeFile(tmp, content, 'utf-8');
|
|
66
|
+
await rename(tmp, filePath);
|
|
67
|
+
}
|
|
68
|
+
// 2. The PreToolUse gate in .clinerules/hooks/.
|
|
69
|
+
const creds = await loadCredentials();
|
|
70
|
+
await writeClineHooks(workspaceRoot, proxyUrl, creds?.workspaceId || 'local');
|
|
64
71
|
return filePath;
|
|
65
72
|
},
|
|
66
73
|
async readCurrentHash(workspaceRoot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cline.js","sourceRoot":"","sources":["../../src/harness/cline.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cline.js","sourceRoot":"","sources":["../../src/harness/cline.ts"],"names":[],"mappings":"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"}
|
package/dist/harness/codex.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* codex.ts — Codex adapter
|
|
2
|
+
* codex.ts — Codex adapter.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Writes three things:
|
|
5
|
+
* - `.env.intutic` in the workspace, with the proxy base URLs for shells and
|
|
6
|
+
* scripts that source it;
|
|
7
|
+
* - `openai_base_url` in Codex's user config (`$CODEX_HOME/config.toml`,
|
|
8
|
+
* `~/.codex/config.toml` by default), merged into the user's file, so Codex
|
|
9
|
+
* routes LLM calls through the proxy without sourcing anything — see
|
|
10
|
+
* codexConfigMerger.ts;
|
|
11
|
+
* - the PreToolUse gate, registered in `~/.codex/hooks.json` and the
|
|
12
|
+
* project's `.codex/hooks.json` — see codexHooks.ts.
|
|
7
13
|
*
|
|
8
14
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
9
15
|
* @module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/harness/codex.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/harness/codex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAcjD,eAAO,MAAM,YAAY,EAAE,eAwD1B,CAAA"}
|
package/dist/harness/codex.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* codex.ts — Codex adapter
|
|
2
|
+
* codex.ts — Codex adapter.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Writes three things:
|
|
5
|
+
* - `.env.intutic` in the workspace, with the proxy base URLs for shells and
|
|
6
|
+
* scripts that source it;
|
|
7
|
+
* - `openai_base_url` in Codex's user config (`$CODEX_HOME/config.toml`,
|
|
8
|
+
* `~/.codex/config.toml` by default), merged into the user's file, so Codex
|
|
9
|
+
* routes LLM calls through the proxy without sourcing anything — see
|
|
10
|
+
* codexConfigMerger.ts;
|
|
11
|
+
* - the PreToolUse gate, registered in `~/.codex/hooks.json` and the
|
|
12
|
+
* project's `.codex/hooks.json` — see codexHooks.ts.
|
|
7
13
|
*
|
|
8
14
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
9
15
|
* @module
|
|
@@ -11,11 +17,17 @@
|
|
|
11
17
|
import { join, dirname } from 'node:path';
|
|
12
18
|
import { writeFile, rename, mkdir } from 'node:fs/promises';
|
|
13
19
|
import { homedir } from 'node:os';
|
|
14
|
-
import { HarnessType } from '@intutic/shared-types';
|
|
20
|
+
import { HarnessType, anthropicBaseUrl, openaiBaseUrl, proxyHost } from '@intutic/shared-types';
|
|
15
21
|
import { hashFile } from '../lib/hash.js';
|
|
22
|
+
import { loadCredentials } from '../config/store.js';
|
|
16
23
|
import { newIso } from '@intutic/id';
|
|
24
|
+
import { writeCodexHooks, mergeCodexConfig } from '@intutic/sync-daemon';
|
|
17
25
|
const CONFIG_FILE = '.env.intutic';
|
|
18
|
-
|
|
26
|
+
/** Codex's user config directory, resolved at call time so CODEX_HOME and
|
|
27
|
+
* HOME changes (and tests that move them) are honoured. */
|
|
28
|
+
function codexHome() {
|
|
29
|
+
return process.env.CODEX_HOME || join(homedir(), '.codex');
|
|
30
|
+
}
|
|
19
31
|
export const codexAdapter = {
|
|
20
32
|
type: HarnessType.CODEX,
|
|
21
33
|
configFileName: CONFIG_FILE,
|
|
@@ -45,9 +57,9 @@ export const codexAdapter = {
|
|
|
45
57
|
`# Last sync: ${newIso()}`,
|
|
46
58
|
'# Source this file: source .env.intutic',
|
|
47
59
|
'',
|
|
48
|
-
`export ANTHROPIC_BASE_URL="${proxyUrl}"`,
|
|
49
|
-
`export OPENAI_BASE_URL="${proxyUrl}"`,
|
|
50
|
-
`export INTUTIC_PROXY_URL="${proxyUrl}"`,
|
|
60
|
+
`export ANTHROPIC_BASE_URL="${anthropicBaseUrl(proxyUrl)}"`,
|
|
61
|
+
`export OPENAI_BASE_URL="${openaiBaseUrl(proxyUrl)}"`,
|
|
62
|
+
`export INTUTIC_PROXY_URL="${proxyHost(proxyUrl)}"`,
|
|
51
63
|
`export INTUTIC_SOP_COUNT=${sops.length}`,
|
|
52
64
|
'',
|
|
53
65
|
].join('\n');
|
|
@@ -55,23 +67,13 @@ export const codexAdapter = {
|
|
|
55
67
|
const tmpEnv = filePath + '.intutic-tmp';
|
|
56
68
|
await writeFile(tmpEnv, envContent, 'utf-8');
|
|
57
69
|
await rename(tmpEnv, filePath);
|
|
58
|
-
// 2.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
`base_url = "${proxyUrl}"`,
|
|
66
|
-
'',
|
|
67
|
-
'[model_providers.openai]',
|
|
68
|
-
`base_url = "${proxyUrl}"`,
|
|
69
|
-
'',
|
|
70
|
-
].join('\n');
|
|
71
|
-
await mkdir(dirname(CODEX_CONFIG), { recursive: true });
|
|
72
|
-
const tmpToml = CODEX_CONFIG + '.intutic-tmp';
|
|
73
|
-
await writeFile(tmpToml, codexToml, 'utf-8');
|
|
74
|
-
await rename(tmpToml, CODEX_CONFIG);
|
|
70
|
+
// 2. Codex user config — persists proxy routing across sessions without
|
|
71
|
+
// env sourcing. Merged; a config.toml that does not parse is left alone.
|
|
72
|
+
await mergeCodexConfig(join(codexHome(), 'config.toml'), openaiBaseUrl(proxyUrl));
|
|
73
|
+
// 3. The PreToolUse gate. The routing above governs LLM egress only; the
|
|
74
|
+
// gate is what refuses tool calls.
|
|
75
|
+
const creds = await loadCredentials();
|
|
76
|
+
await writeCodexHooks(workspaceRoot, proxyUrl, creds?.workspaceId || 'local');
|
|
75
77
|
return filePath;
|
|
76
78
|
},
|
|
77
79
|
async readCurrentHash(workspaceRoot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/harness/codex.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/harness/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* continue.ts — Continue adapter
|
|
2
|
+
* continue.ts — Continue adapter.
|
|
3
3
|
*
|
|
4
|
-
* Detects the Continue AI coding assistant and
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Detects the Continue AI coding assistant and:
|
|
5
|
+
* - sets `apiBase` on each OpenAI/Anthropic model in `~/.continue/config.yaml`
|
|
6
|
+
* so its LLM calls reach the proxy (merged; see continueConfigMerger.ts);
|
|
7
|
+
* - installs the Continue CLI (`cn`) PreToolUse gate in
|
|
8
|
+
* `~/.continue/settings.json` and `<repo>/.continue/settings.json` (see
|
|
9
|
+
* continueHooks.ts). The IDE extension has no hook system, so for it proxy
|
|
10
|
+
* routing is the only mechanism.
|
|
8
11
|
*
|
|
9
12
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
10
13
|
* @module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continue.d.ts","sourceRoot":"","sources":["../../src/harness/continue.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"continue.d.ts","sourceRoot":"","sources":["../../src/harness/continue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAWjD,eAAO,MAAM,eAAe,EAAE,eA6B7B,CAAA"}
|