@intutic/cli 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/dist/cli.d.ts +0 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +582 -21
- package/dist/cli.js.map +1 -1
- package/dist/commands/apiCommand.d.ts +40 -0
- package/dist/commands/apiCommand.d.ts.map +1 -0
- package/dist/commands/apiCommand.js +88 -0
- package/dist/commands/apiCommand.js.map +1 -0
- package/dist/commands/budget.d.ts +4 -0
- package/dist/commands/budget.d.ts.map +1 -1
- package/dist/commands/budget.js +8 -0
- package/dist/commands/budget.js.map +1 -1
- package/dist/commands/budgetLimits.d.ts +70 -0
- package/dist/commands/budgetLimits.d.ts.map +1 -0
- package/dist/commands/budgetLimits.js +223 -0
- package/dist/commands/budgetLimits.js.map +1 -0
- package/dist/commands/compliance.d.ts +122 -0
- package/dist/commands/compliance.d.ts.map +1 -0
- package/dist/commands/compliance.js +278 -0
- package/dist/commands/compliance.js.map +1 -0
- package/dist/commands/connect.d.ts +26 -1
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +109 -51
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/credentials.d.ts +6 -2
- package/dist/commands/credentials.d.ts.map +1 -1
- package/dist/commands/credentials.js +99 -10
- package/dist/commands/credentials.js.map +1 -1
- package/dist/commands/decision.d.ts +4 -4
- package/dist/commands/decision.js +4 -4
- package/dist/commands/disconnect.d.ts +4 -0
- package/dist/commands/disconnect.d.ts.map +1 -1
- package/dist/commands/disconnect.js +17 -3
- package/dist/commands/disconnect.js.map +1 -1
- package/dist/commands/doctor.d.ts +0 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +0 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/enforce.d.ts +1 -1
- package/dist/commands/enforce.js +1 -1
- package/dist/commands/enterprise.d.ts +3 -2
- package/dist/commands/enterprise.d.ts.map +1 -1
- package/dist/commands/enterprise.js +11 -3
- package/dist/commands/enterprise.js.map +1 -1
- package/dist/commands/env.js +1 -1
- package/dist/commands/exec.d.ts +2 -3
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +4 -5
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/gateLiveness.d.ts +15 -0
- package/dist/commands/gateLiveness.d.ts.map +1 -0
- package/dist/commands/gateLiveness.js +34 -0
- package/dist/commands/gateLiveness.js.map +1 -0
- package/dist/commands/gateway.d.ts +14 -4
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +34 -4
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/github.d.ts +20 -0
- package/dist/commands/github.d.ts.map +1 -0
- package/dist/commands/github.js +41 -0
- package/dist/commands/github.js.map +1 -0
- package/dist/commands/guardrails.d.ts +28 -2
- package/dist/commands/guardrails.d.ts.map +1 -1
- package/dist/commands/guardrails.js +233 -24
- package/dist/commands/guardrails.js.map +1 -1
- package/dist/commands/incidents.d.ts +32 -0
- package/dist/commands/incidents.d.ts.map +1 -0
- package/dist/commands/incidents.js +94 -0
- package/dist/commands/incidents.js.map +1 -0
- package/dist/commands/init.d.ts +1 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-daemon.d.ts +1 -1
- package/dist/commands/install-daemon.js +2 -2
- package/dist/commands/integrity.d.ts +10 -2
- package/dist/commands/integrity.d.ts.map +1 -1
- package/dist/commands/integrity.js +3 -3
- package/dist/commands/integrity.js.map +1 -1
- package/dist/commands/inventory.d.ts +60 -0
- package/dist/commands/inventory.d.ts.map +1 -0
- package/dist/commands/inventory.js +141 -0
- package/dist/commands/inventory.js.map +1 -0
- package/dist/commands/judge.d.ts +1 -1
- package/dist/commands/judge.js +2 -2
- package/dist/commands/judge.js.map +1 -1
- package/dist/commands/login.d.ts +0 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +0 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +0 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +0 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/mcp.d.ts +31 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +65 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/notifications.d.ts +54 -0
- package/dist/commands/notifications.d.ts.map +1 -0
- package/dist/commands/notifications.js +151 -0
- package/dist/commands/notifications.js.map +1 -0
- package/dist/commands/org.d.ts +3 -3
- package/dist/commands/org.js +3 -3
- package/dist/commands/policy.d.ts +6 -1
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +77 -37
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/rollback.d.ts.map +1 -1
- package/dist/commands/rollback.js +3 -1
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/routing.d.ts +1 -1
- package/dist/commands/routing.js +1 -1
- package/dist/commands/rules.d.ts +74 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +283 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/settings.d.ts +44 -0
- package/dist/commands/settings.d.ts.map +1 -0
- package/dist/commands/settings.js +110 -0
- package/dist/commands/settings.js.map +1 -0
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.js +1 -1
- package/dist/commands/siem.d.ts +53 -0
- package/dist/commands/siem.d.ts.map +1 -0
- package/dist/commands/siem.js +132 -0
- package/dist/commands/siem.js.map +1 -0
- package/dist/commands/skill.d.ts +5 -5
- package/dist/commands/skill.js +7 -7
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/status.d.ts +0 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +2 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/syncContext.d.ts +0 -1
- package/dist/commands/syncContext.d.ts.map +1 -1
- package/dist/commands/syncContext.js +0 -1
- package/dist/commands/syncContext.js.map +1 -1
- package/dist/commands/team.d.ts +2 -2
- package/dist/commands/team.js +2 -2
- package/dist/commands/traces.d.ts +0 -3
- package/dist/commands/traces.d.ts.map +1 -1
- package/dist/commands/traces.js +0 -3
- package/dist/commands/traces.js.map +1 -1
- package/dist/commands/usage.d.ts +41 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +129 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/whoami.d.ts +0 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +0 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config/keychain.d.ts +0 -1
- package/dist/config/keychain.d.ts.map +1 -1
- package/dist/config/keychain.js +0 -1
- package/dist/config/keychain.js.map +1 -1
- package/dist/config/paths.d.ts +0 -1
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +0 -1
- package/dist/config/paths.js.map +1 -1
- package/dist/config/store.d.ts +0 -1
- package/dist/config/store.d.ts.map +1 -1
- package/dist/config/store.js +0 -1
- package/dist/config/store.js.map +1 -1
- package/dist/harness/ag2.d.ts +1 -1
- package/dist/harness/ag2.js +1 -1
- package/dist/harness/agentFramework.d.ts +1 -1
- package/dist/harness/agentFramework.js +1 -1
- package/dist/harness/agenticOrchestrator.d.ts +1 -1
- package/dist/harness/agenticOrchestrator.js +2 -2
- package/dist/harness/agenticOrchestrator.js.map +1 -1
- package/dist/harness/agentsMd.d.ts +24 -0
- package/dist/harness/agentsMd.d.ts.map +1 -0
- package/dist/harness/agentsMd.js +28 -0
- package/dist/harness/agentsMd.js.map +1 -0
- package/dist/harness/aider.d.ts +3 -1
- package/dist/harness/aider.d.ts.map +1 -1
- package/dist/harness/aider.js +9 -7
- package/dist/harness/aider.js.map +1 -1
- package/dist/harness/antigravity.d.ts +23 -5
- package/dist/harness/antigravity.d.ts.map +1 -1
- package/dist/harness/antigravity.js +45 -55
- package/dist/harness/antigravity.js.map +1 -1
- package/dist/harness/autogen.d.ts +1 -1
- package/dist/harness/autogen.js +2 -2
- package/dist/harness/autogen.js.map +1 -1
- package/dist/harness/claudeCode.d.ts +22 -1
- package/dist/harness/claudeCode.d.ts.map +1 -1
- package/dist/harness/claudeCode.js +47 -3
- package/dist/harness/claudeCode.js.map +1 -1
- package/dist/harness/cline.d.ts.map +1 -1
- package/dist/harness/cline.js +14 -23
- package/dist/harness/cline.js.map +1 -1
- package/dist/harness/codex.d.ts +6 -1
- package/dist/harness/codex.d.ts.map +1 -1
- package/dist/harness/codex.js +23 -21
- package/dist/harness/codex.js.map +1 -1
- package/dist/harness/continue.d.ts +10 -4
- package/dist/harness/continue.d.ts.map +1 -1
- package/dist/harness/continue.js +22 -22
- package/dist/harness/continue.js.map +1 -1
- package/dist/harness/cursor.d.ts +5 -2
- package/dist/harness/cursor.d.ts.map +1 -1
- package/dist/harness/cursor.js +19 -23
- package/dist/harness/cursor.js.map +1 -1
- package/dist/harness/detector.d.ts +0 -1
- package/dist/harness/detector.d.ts.map +1 -1
- package/dist/harness/detector.js +0 -1
- package/dist/harness/detector.js.map +1 -1
- package/dist/harness/dsh.d.ts +5 -3
- package/dist/harness/dsh.d.ts.map +1 -1
- package/dist/harness/dsh.js +17 -29
- package/dist/harness/dsh.js.map +1 -1
- package/dist/harness/eve.d.ts +3 -4
- package/dist/harness/eve.d.ts.map +1 -1
- package/dist/harness/eve.js +3 -4
- package/dist/harness/eve.js.map +1 -1
- package/dist/harness/githubCopilot.d.ts +4 -1
- package/dist/harness/githubCopilot.d.ts.map +1 -1
- package/dist/harness/githubCopilot.js +12 -20
- package/dist/harness/githubCopilot.js.map +1 -1
- package/dist/harness/goose.d.ts +7 -3
- package/dist/harness/goose.d.ts.map +1 -1
- package/dist/harness/goose.js +18 -21
- package/dist/harness/goose.js.map +1 -1
- package/dist/harness/grok.d.ts +2 -2
- package/dist/harness/grok.d.ts.map +1 -1
- package/dist/harness/grok.js +13 -24
- package/dist/harness/grok.js.map +1 -1
- package/dist/harness/hermes.d.ts +6 -0
- package/dist/harness/hermes.d.ts.map +1 -1
- package/dist/harness/hermes.js +17 -16
- package/dist/harness/hermes.js.map +1 -1
- package/dist/harness/muse.d.ts +3 -7
- package/dist/harness/muse.d.ts.map +1 -1
- package/dist/harness/muse.js +15 -35
- package/dist/harness/muse.js.map +1 -1
- package/dist/harness/n8n.d.ts +13 -14
- package/dist/harness/n8n.d.ts.map +1 -1
- package/dist/harness/n8n.js +21 -181
- package/dist/harness/n8n.js.map +1 -1
- package/dist/harness/openWebUI.d.ts.map +1 -1
- package/dist/harness/openWebUI.js +5 -4
- package/dist/harness/openWebUI.js.map +1 -1
- package/dist/harness/openaiAgents.d.ts +1 -1
- package/dist/harness/openaiAgents.js +2 -2
- package/dist/harness/openaiAgents.js.map +1 -1
- package/dist/harness/openclaw.d.ts +8 -0
- package/dist/harness/openclaw.d.ts.map +1 -1
- package/dist/harness/openclaw.js +27 -12
- package/dist/harness/openclaw.js.map +1 -1
- package/dist/harness/opencode.d.ts +4 -5
- package/dist/harness/opencode.d.ts.map +1 -1
- package/dist/harness/opencode.js +15 -30
- package/dist/harness/opencode.js.map +1 -1
- package/dist/harness/openhands.d.ts +9 -3
- package/dist/harness/openhands.d.ts.map +1 -1
- package/dist/harness/openhands.js +30 -24
- package/dist/harness/openhands.js.map +1 -1
- package/dist/harness/pi.d.ts +7 -2
- package/dist/harness/pi.d.ts.map +1 -1
- package/dist/harness/pi.js +19 -18
- package/dist/harness/pi.js.map +1 -1
- package/dist/harness/rooCode.d.ts +12 -5
- package/dist/harness/rooCode.d.ts.map +1 -1
- package/dist/harness/rooCode.js +23 -39
- package/dist/harness/rooCode.js.map +1 -1
- package/dist/harness/rulesFiles.d.ts +53 -0
- package/dist/harness/rulesFiles.d.ts.map +1 -0
- package/dist/harness/rulesFiles.js +106 -0
- package/dist/harness/rulesFiles.js.map +1 -0
- package/dist/harness/smolagents.d.ts +2 -2
- package/dist/harness/smolagents.js +3 -3
- package/dist/harness/smolagents.js.map +1 -1
- package/dist/harness/types.d.ts +20 -6
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js +1 -95
- package/dist/harness/types.js.map +1 -1
- package/dist/harness/windsurf.d.ts +6 -1
- package/dist/harness/windsurf.d.ts.map +1 -1
- package/dist/harness/windsurf.js +21 -24
- package/dist/harness/windsurf.js.map +1 -1
- package/dist/harness/xirp.d.ts +1 -2
- package/dist/harness/xirp.d.ts.map +1 -1
- package/dist/harness/xirp.js +2 -3
- package/dist/harness/xirp.js.map +1 -1
- package/dist/lib/api.d.ts +27 -1
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +55 -18
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/ciscoScanner.d.ts +1 -1
- package/dist/lib/ciscoScanner.js +1 -1
- package/dist/lib/decisionsLogRefresh.d.ts.map +1 -1
- package/dist/lib/decisionsLogRefresh.js +6 -7
- package/dist/lib/decisionsLogRefresh.js.map +1 -1
- package/dist/lib/deviceReport.d.ts +15 -0
- package/dist/lib/deviceReport.d.ts.map +1 -1
- package/dist/lib/deviceReport.js +30 -0
- package/dist/lib/deviceReport.js.map +1 -1
- package/dist/lib/gitHooks.d.ts +0 -1
- package/dist/lib/gitHooks.d.ts.map +1 -1
- package/dist/lib/gitHooks.js +8 -9
- package/dist/lib/gitHooks.js.map +1 -1
- package/dist/lib/gracefulShutdown.d.ts +1 -1
- package/dist/lib/gracefulShutdown.js +1 -1
- package/dist/lib/hash.d.ts +0 -1
- package/dist/lib/hash.d.ts.map +1 -1
- package/dist/lib/hash.js +0 -1
- package/dist/lib/hash.js.map +1 -1
- package/dist/lib/inventory.d.ts +47 -0
- package/dist/lib/inventory.d.ts.map +1 -0
- package/dist/lib/inventory.js +106 -0
- package/dist/lib/inventory.js.map +1 -0
- package/dist/lib/logger.d.ts +0 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +0 -1
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/mdmManifest.d.ts +30 -2
- package/dist/lib/mdmManifest.d.ts.map +1 -1
- package/dist/lib/mdmManifest.js +50 -2
- package/dist/lib/mdmManifest.js.map +1 -1
- package/dist/lib/onboarding.d.ts +0 -1
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +1 -2
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/policySnapshot.d.ts +3 -2
- package/dist/lib/policySnapshot.d.ts.map +1 -1
- package/dist/lib/policySnapshot.js +6 -3
- package/dist/lib/policySnapshot.js.map +1 -1
- package/dist/lib/process.d.ts +5 -1
- package/dist/lib/process.d.ts.map +1 -1
- package/dist/lib/process.js +13 -4
- package/dist/lib/process.js.map +1 -1
- package/dist/lib/providerProbe.d.ts +3 -3
- package/dist/lib/providerProbe.d.ts.map +1 -1
- package/dist/lib/providerProbe.js +15 -7
- package/dist/lib/providerProbe.js.map +1 -1
- package/dist/lib/sandbox/firecracker.d.ts +3 -3
- package/dist/lib/sandbox/firecracker.js +3 -3
- package/dist/lib/sandbox/index.d.ts +2 -2
- package/dist/lib/sandbox/index.js +2 -2
- package/dist/lib/sandbox/oci.d.ts +1 -1
- package/dist/lib/sandbox/oci.js +1 -1
- package/dist/lib/sandbox/types.d.ts +1 -1
- package/dist/lib/sandbox/types.js +1 -1
- package/dist/lib/sopFrontMatter.d.ts +1 -1
- package/dist/lib/sopFrontMatter.js +1 -1
- package/package.json +6 -5
- package/resources/sandbox/Dockerfile +1 -1
- package/resources/sandbox/entrypoint.sh +4 -4
- package/resources/sandbox/firecracker-launch.sh +1 -1
- package/dist/harness/base.d.ts +0 -24
- package/dist/harness/base.d.ts.map +0 -1
- package/dist/harness/base.js +0 -74
- package/dist/harness/base.js.map +0 -1
|
@@ -1,72 +1,62 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Antigravity adapter — .
|
|
2
|
+
* Antigravity adapter — Google Antigravity and Gemini CLI.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `~/.gemini
|
|
7
|
-
*
|
|
4
|
+
* Google's terminal agent was Gemini CLI until Antigravity CLI replaced it
|
|
5
|
+
* for individual users in 2026; enterprise and API-key users keep Gemini
|
|
6
|
+
* CLI. Both live under `~/.gemini`, and this one harness governs both:
|
|
7
|
+
*
|
|
8
|
+
* - the Antigravity gate (app, IDE and CLI): a `PreToolUse` hook in
|
|
9
|
+
* `~/.gemini/config/hooks.json` (see antigravityCliHooks.ts);
|
|
10
|
+
* - the Gemini CLI gate: a `BeforeTool` hook in `~/.gemini/settings.json`
|
|
11
|
+
* (see antigravityHooks.ts);
|
|
12
|
+
* - rules: a marked section of the workspace's `GEMINI.md`, the context file
|
|
13
|
+
* both products load as persistent instructions (see rulesSection.ts).
|
|
14
|
+
* Gemini CLI reads `GEMINI.md` from the workspace up to the git root (its
|
|
15
|
+
* `context.fileName` setting can rename it); Antigravity reads `GEMINI.md`
|
|
16
|
+
* and `AGENTS.md` in every directory from the file it works on up to the
|
|
17
|
+
* workspace root. Neither reads a `customInstructions` key in
|
|
18
|
+
* `.gemini/settings.json`, where earlier versions put the rules;
|
|
19
|
+
* `intutic disconnect` removes that key.
|
|
20
|
+
*
|
|
21
|
+
* A hooks file that is not a plain JSON object is left alone and reported.
|
|
22
|
+
*
|
|
23
|
+
* The two gates report under their own gate ids, `antigravity` and
|
|
24
|
+
* `gemini-cli` (gateIdentity.ts in @intutic/shared-types), so the control
|
|
25
|
+
* plane can tell the products apart; the harness stays one.
|
|
8
26
|
*
|
|
9
27
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
10
28
|
* @module
|
|
11
29
|
*/
|
|
12
|
-
import { join } from 'node:path';
|
|
13
|
-
import { access, writeFile, rename, mkdir } from 'node:fs/promises';
|
|
14
|
-
import { dirname } from 'node:path';
|
|
15
30
|
import { HarnessType } from '@intutic/shared-types';
|
|
16
|
-
import { hashFile } from '../lib/hash.js';
|
|
17
|
-
import { newIso } from '@intutic/id';
|
|
18
31
|
import { loadCredentials } from '../config/store.js';
|
|
19
|
-
import {
|
|
20
|
-
|
|
32
|
+
import { antigravityGateIdentities, writeAntigravityCliHooks, writeAntigravityHooks } from '@intutic/sync-daemon';
|
|
33
|
+
import { rulesSectionHash, writeRulesSectionFile } from './rulesFiles.js';
|
|
34
|
+
const CONFIG_FILE = 'GEMINI.md';
|
|
21
35
|
export const antigravityAdapter = {
|
|
22
36
|
type: HarnessType.ANTIGRAVITY,
|
|
23
37
|
configFileName: CONFIG_FILE,
|
|
38
|
+
/**
|
|
39
|
+
* Either product, found the way the sync daemon finds it for the agent
|
|
40
|
+
* report and the AI inventory (antigravityProducts.ts): Antigravity's
|
|
41
|
+
* app-data directories or a project `.agents/hooks.json`; Gemini CLI's
|
|
42
|
+
* `gemini` on PATH, a project `.gemini` directory or its own
|
|
43
|
+
* `~/.gemini/settings.json`. A plain Gemini CLI install with no `.gemini`
|
|
44
|
+
* in the workspace is found by the binary and the settings file.
|
|
45
|
+
*/
|
|
24
46
|
async detect(workspaceRoot) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
47
|
+
return (await antigravityGateIdentities(workspaceRoot)).length > 0;
|
|
48
|
+
},
|
|
49
|
+
async installGate(workspaceRoot, proxyUrl) {
|
|
50
|
+
const workspaceId = (await loadCredentials())?.workspaceId || 'local';
|
|
51
|
+
await writeAntigravityCliHooks(workspaceRoot, proxyUrl, workspaceId);
|
|
52
|
+
await writeAntigravityHooks(workspaceRoot, proxyUrl, workspaceId);
|
|
32
53
|
},
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// calls, and the built-in protections apply without any SOP.
|
|
36
|
-
const creds = await loadCredentials();
|
|
37
|
-
await writeAntigravityHooks(workspaceRoot, proxyUrl, creds?.workspaceId || 'local');
|
|
38
|
-
if (sops.length === 0)
|
|
39
|
-
return null;
|
|
40
|
-
const filePath = join(workspaceRoot, CONFIG_FILE);
|
|
41
|
-
const tmpPath = filePath + '.intutic-tmp';
|
|
42
|
-
await keepOriginal(filePath, workspaceRoot);
|
|
43
|
-
const settings = await readJsonObjectForMerge(filePath);
|
|
44
|
-
if (settings === null)
|
|
45
|
-
return null;
|
|
46
|
-
// Merge governance instructions
|
|
47
|
-
const instructions = sops
|
|
48
|
-
.map((sop) => `## ${sop.title}\n\n${sop.content}`)
|
|
49
|
-
.join('\n\n---\n\n');
|
|
50
|
-
settings.customInstructions = [
|
|
51
|
-
'# Intutic Governance Rules (auto-generated)',
|
|
52
|
-
`# DO NOT EDIT — managed by intutic sync daemon`,
|
|
53
|
-
`# Last sync: ${newIso()}`,
|
|
54
|
-
`# Proxy URL: ${proxyUrl}`,
|
|
55
|
-
'',
|
|
56
|
-
instructions,
|
|
57
|
-
].join('\n');
|
|
58
|
-
await mkdir(dirname(filePath), { recursive: true });
|
|
59
|
-
await writeFile(tmpPath, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
|
|
60
|
-
await rename(tmpPath, filePath);
|
|
61
|
-
return filePath;
|
|
54
|
+
writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
55
|
+
return writeRulesSectionFile(workspaceRoot, CONFIG_FILE, sops, proxyUrl);
|
|
62
56
|
},
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
57
|
+
/** The section only: the user's own edits elsewhere in `GEMINI.md` are not drift. */
|
|
58
|
+
readCurrentHash(workspaceRoot) {
|
|
59
|
+
return rulesSectionHash(workspaceRoot, CONFIG_FILE);
|
|
70
60
|
},
|
|
71
61
|
};
|
|
72
62
|
//# sourceMappingURL=antigravity.js.map
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACjH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAEzE,MAAM,WAAW,GAAG,WAAW,CAAA;AAE/B,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,IAAI,EAAE,WAAW,CAAC,WAAW;IAC7B,cAAc,EAAE,WAAW;IAE3B;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,OAAO,CAAC,MAAM,yBAAyB,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,QAAgB;QACvD,MAAM,WAAW,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,EAAE,WAAW,IAAI,OAAO,CAAA;QACrE,MAAM,wBAAwB,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;QACpE,MAAM,qBAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IACnE,CAAC;IAED,WAAW,CAAC,aAAqB,EAAE,IAAoB,EAAE,QAAgB;QACvE,OAAO,qBAAqB,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC1E,CAAC;IAED,qFAAqF;IACrF,eAAe,CAAC,aAAqB;QACnC,OAAO,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IACrD,CAAC;CACF,CAAA"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* calls never go through the runtime at all, so for `AssistantAgent`-based
|
|
16
16
|
* code the framework-agnostic `@guard`/`guard_tools` helpers (governing the
|
|
17
17
|
* tool objects directly) remain the applicable coverage, same as before this
|
|
18
|
-
* adapter existed
|
|
18
|
+
* adapter existed.
|
|
19
19
|
*
|
|
20
20
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
21
21
|
* @module
|
package/dist/harness/autogen.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* calls never go through the runtime at all, so for `AssistantAgent`-based
|
|
16
16
|
* code the framework-agnostic `@guard`/`guard_tools` helpers (governing the
|
|
17
17
|
* tool objects directly) remain the applicable coverage, same as before this
|
|
18
|
-
* adapter existed
|
|
18
|
+
* adapter existed.
|
|
19
19
|
*
|
|
20
20
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
21
21
|
* @module
|
|
@@ -28,7 +28,7 @@ export const autogenAdapter = makeSdkGatedAdapter({
|
|
|
28
28
|
keywords: ['autogen-agentchat', 'autogen-core', 'autogen-ext'],
|
|
29
29
|
pipInstall: 'intutic-clawde[autogen]',
|
|
30
30
|
importLine: 'from intutic_clawde.gate.adapters.autogen import IntuticInterventionHandler',
|
|
31
|
-
usageSummary: 'IntuticInterventionHandler vetoes a runtime-routed FunctionCall via on_send (
|
|
31
|
+
usageSummary: 'IntuticInterventionHandler vetoes a runtime-routed FunctionCall via on_send (' +
|
|
32
32
|
'invisible to AssistantAgent\'s own tool calls — wrap those tools with @guard/guard_tools ' +
|
|
33
33
|
'instead).',
|
|
34
34
|
docsSlug: 'autogen',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autogen.js","sourceRoot":"","sources":["../../src/harness/autogen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,CAAC,MAAM,cAAc,GAAG,mBAAmB,CAAC;IAChD,IAAI,EAAE,WAAW,CAAC,OAAO;IACzB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,CAAC,mBAAmB,EAAE,cAAc,EAAE,aAAa,CAAC;IAC9D,UAAU,EAAE,yBAAyB;IACrC,UAAU,EAAE,6EAA6E;IACzF,YAAY,EACV
|
|
1
|
+
{"version":3,"file":"autogen.js","sourceRoot":"","sources":["../../src/harness/autogen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,CAAC,MAAM,cAAc,GAAG,mBAAmB,CAAC;IAChD,IAAI,EAAE,WAAW,CAAC,OAAO;IACzB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,CAAC,mBAAmB,EAAE,cAAc,EAAE,aAAa,CAAC;IAC9D,UAAU,EAAE,yBAAyB;IACrC,UAAU,EAAE,6EAA6E;IACzF,YAAY,EACV,+EAA+E;QAC/E,2FAA2F;QAC3F,WAAW;IACb,QAAQ,EAAE,SAAS;CACpB,CAAC,CAAA"}
|
|
@@ -1,2 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code adapter — rule sets in `.claude/rules/intutic-governance.md`.
|
|
3
|
+
*
|
|
4
|
+
* Claude Code loads every `.claude/rules/*.md` without `paths:` front matter
|
|
5
|
+
* at launch, with the priority of `.claude/CLAUDE.md`
|
|
6
|
+
* (https://code.claude.com/docs/en/memory). Not `CLAUDE.md` itself, which is
|
|
7
|
+
* usually the team's own: and under Claude Code's default setting a project
|
|
8
|
+
* `CLAUDE.md` stops it reading `AGENTS.md`, so creating one would hide a
|
|
9
|
+
* team's `AGENTS.md` from it. Earlier versions overwrote `CLAUDE.md`; the
|
|
10
|
+
* user's own copy comes back. The decisions log goes next to it, in
|
|
11
|
+
* `.claude/rules/intutic-decisions.md` (decisionsDigest.ts). A rule set that
|
|
12
|
+
* also reaches Claude Code through `AGENTS.md` is left out of its own file
|
|
13
|
+
* (`writeHarnessConfigs`), so Claude Code does not load it twice.
|
|
14
|
+
*
|
|
15
|
+
* The gate is installed by `intutic connect`'s own step, with the synced
|
|
16
|
+
* settings its deny rules need.
|
|
17
|
+
*
|
|
18
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
import type { IHarnessAdapter } from './types.js';
|
|
22
|
+
export declare const claudeCodeAdapter: IHarnessAdapter;
|
|
2
23
|
//# sourceMappingURL=claudeCode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeCode.d.ts","sourceRoot":"","sources":["../../src/harness/claudeCode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claudeCode.d.ts","sourceRoot":"","sources":["../../src/harness/claudeCode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAMjD,eAAO,MAAM,iBAAiB,EAAE,eA2B/B,CAAA"}
|
|
@@ -1,9 +1,53 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Claude Code adapter —
|
|
2
|
+
* Claude Code adapter — rule sets in `.claude/rules/intutic-governance.md`.
|
|
3
|
+
*
|
|
4
|
+
* Claude Code loads every `.claude/rules/*.md` without `paths:` front matter
|
|
5
|
+
* at launch, with the priority of `.claude/CLAUDE.md`
|
|
6
|
+
* (https://code.claude.com/docs/en/memory). Not `CLAUDE.md` itself, which is
|
|
7
|
+
* usually the team's own: and under Claude Code's default setting a project
|
|
8
|
+
* `CLAUDE.md` stops it reading `AGENTS.md`, so creating one would hide a
|
|
9
|
+
* team's `AGENTS.md` from it. Earlier versions overwrote `CLAUDE.md`; the
|
|
10
|
+
* user's own copy comes back. The decisions log goes next to it, in
|
|
11
|
+
* `.claude/rules/intutic-decisions.md` (decisionsDigest.ts). A rule set that
|
|
12
|
+
* also reaches Claude Code through `AGENTS.md` is left out of its own file
|
|
13
|
+
* (`writeHarnessConfigs`), so Claude Code does not load it twice.
|
|
14
|
+
*
|
|
15
|
+
* The gate is installed by `intutic connect`'s own step, with the synced
|
|
16
|
+
* settings its deny rules need.
|
|
17
|
+
*
|
|
3
18
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
4
19
|
* @module
|
|
5
20
|
*/
|
|
21
|
+
import { access } from 'node:fs/promises';
|
|
22
|
+
import { join } from 'node:path';
|
|
6
23
|
import { HarnessType } from '@intutic/shared-types';
|
|
7
|
-
import {
|
|
8
|
-
|
|
24
|
+
import { ownRulesFileHash, retireLegacyRulesFile, writeOwnRulesFile } from './rulesFiles.js';
|
|
25
|
+
const RULES_FILE = '.claude/rules/intutic-governance.md';
|
|
26
|
+
const LEGACY_FILE = 'CLAUDE.md';
|
|
27
|
+
export const claudeCodeAdapter = {
|
|
28
|
+
type: HarnessType.CLAUDE_CODE,
|
|
29
|
+
configFileName: RULES_FILE,
|
|
30
|
+
async detect(workspaceRoot) {
|
|
31
|
+
try {
|
|
32
|
+
await access(join(workspaceRoot, LEGACY_FILE));
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
/** With no rule set left for it (they all reach it through `AGENTS.md`;
|
|
40
|
+
* see `writeHarnessConfigs`), its own file goes rather than repeat them. */
|
|
41
|
+
async writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
42
|
+
await retireLegacyRulesFile(workspaceRoot, LEGACY_FILE);
|
|
43
|
+
if (sops.length === 0) {
|
|
44
|
+
await retireLegacyRulesFile(workspaceRoot, RULES_FILE);
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
return writeOwnRulesFile(workspaceRoot, RULES_FILE, sops, proxyUrl);
|
|
48
|
+
},
|
|
49
|
+
readCurrentHash(workspaceRoot) {
|
|
50
|
+
return ownRulesFileHash(workspaceRoot, RULES_FILE);
|
|
51
|
+
},
|
|
52
|
+
};
|
|
9
53
|
//# sourceMappingURL=claudeCode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeCode.js","sourceRoot":"","sources":["../../src/harness/claudeCode.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claudeCode.js","sourceRoot":"","sources":["../../src/harness/claudeCode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;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,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAE5F,MAAM,UAAU,GAAG,qCAAqC,CAAA;AACxD,MAAM,WAAW,GAAG,WAAW,CAAA;AAE/B,MAAM,CAAC,MAAM,iBAAiB,GAAoB;IAChD,IAAI,EAAE,WAAW,CAAC,WAAW;IAC7B,cAAc,EAAE,UAAU;IAE1B,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;iFAC6E;IAC7E,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,IAAoB,EAAE,QAAgB;QAC7E,MAAM,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;QACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,qBAAqB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;YACtD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,iBAAiB,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACrE,CAAC;IAED,eAAe,CAAC,aAAqB;QACnC,OAAO,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;IACpD,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
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;AASjD,eAAO,MAAM,YAAY,EAAE,
|
|
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;AASjD,eAAO,MAAM,YAAY,EAAE,eA8C1B,CAAA"}
|
package/dist/harness/cline.js
CHANGED
|
@@ -20,9 +20,9 @@ import { homedir } from 'node:os';
|
|
|
20
20
|
import { HarnessType } from '@intutic/shared-types';
|
|
21
21
|
import { hashFile } from '../lib/hash.js';
|
|
22
22
|
import { loadCredentials } from '../config/store.js';
|
|
23
|
-
import { newIso } from '@intutic/id';
|
|
24
23
|
import { writeClineHooks, ensureClinerulesDirectory } from '@intutic/sync-daemon/harness/clineHooks';
|
|
25
|
-
import { keepOriginal
|
|
24
|
+
import { keepOriginal } from '@intutic/sync-daemon';
|
|
25
|
+
import { writeOwnRulesFile } from './rulesFiles.js';
|
|
26
26
|
const CONFIG_FILE = '.clinerules/intutic-governance.md';
|
|
27
27
|
export const clineAdapter = {
|
|
28
28
|
type: HarnessType.CLINE,
|
|
@@ -46,30 +46,21 @@ export const clineAdapter = {
|
|
|
46
46
|
return false;
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
|
+
/** The PreToolUse gate in .clinerules/hooks/. */
|
|
50
|
+
async installGate(workspaceRoot, proxyUrl) {
|
|
51
|
+
const creds = await loadCredentials();
|
|
52
|
+
await writeClineHooks(workspaceRoot, proxyUrl, creds?.workspaceId || 'local');
|
|
53
|
+
},
|
|
54
|
+
/** Rules, as one file in the .clinerules directory Cline reads; every
|
|
55
|
+
* file there is applied (https://docs.cline.bot/features/cline-rules). */
|
|
49
56
|
async writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
50
|
-
|
|
51
|
-
|
|
57
|
+
if (sops.length === 0)
|
|
58
|
+
return null;
|
|
52
59
|
// Kept before `.clinerules` is created, so disconnect knows it made the directory.
|
|
53
60
|
await keepOriginal(join(workspaceRoot, CONFIG_FILE), workspaceRoot);
|
|
54
|
-
if (await ensureClinerulesDirectory(workspaceRoot))
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
? sops.map((sop) => `## ${sop.title}\n\n${sop.content}`).join('\n\n---\n\n')
|
|
58
|
-
: '# Intutic governance active — no SOP rules configured yet.';
|
|
59
|
-
const content = [
|
|
60
|
-
'# Intutic Governance Rules (auto-generated)',
|
|
61
|
-
'# DO NOT EDIT — managed by intutic sync daemon',
|
|
62
|
-
`# Last sync: ${newIso()}`,
|
|
63
|
-
'',
|
|
64
|
-
instructions,
|
|
65
|
-
'',
|
|
66
|
-
].join('\n');
|
|
67
|
-
await writeOwnedFile(filePath, workspaceRoot, content);
|
|
68
|
-
}
|
|
69
|
-
// 2. The PreToolUse gate in .clinerules/hooks/.
|
|
70
|
-
const creds = await loadCredentials();
|
|
71
|
-
await writeClineHooks(workspaceRoot, proxyUrl, creds?.workspaceId || 'local');
|
|
72
|
-
return filePath;
|
|
61
|
+
if (!(await ensureClinerulesDirectory(workspaceRoot)))
|
|
62
|
+
return null;
|
|
63
|
+
return writeOwnRulesFile(workspaceRoot, CONFIG_FILE, sops, proxyUrl);
|
|
73
64
|
},
|
|
74
65
|
async readCurrentHash(workspaceRoot) {
|
|
75
66
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cline.js","sourceRoot":"","sources":["../../src/harness/cline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cline.js","sourceRoot":"","sources":["../../src/harness/cline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,MAAM,WAAW,GAAG,mCAAmC,CAAA;AAEvD,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,WAAW,CAAC,KAAK;IACvB,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,yDAAyD;QACzD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;YAC9D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;YAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAA;QAC7E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,QAAgB;QACvD,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;QACrC,MAAM,eAAe,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,IAAI,OAAO,CAAC,CAAA;IAC/E,CAAC;IAED;+EAC2E;IAC3E,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,IAAoB,EAAE,QAAgB;QAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAClC,mFAAmF;QACnF,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CAAA;QACnE,IAAI,CAAC,CAAC,MAAM,yBAAyB,CAAC,aAAa,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAClE,OAAO,iBAAiB,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACtE,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/codex.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* codex.ts — Codex adapter.
|
|
3
3
|
*
|
|
4
|
-
* Writes
|
|
4
|
+
* Writes four things:
|
|
5
|
+
* - the rule sets, as the marked section of the workspace's `AGENTS.md`,
|
|
6
|
+
* which Codex reads before any work, merged from `~/.codex` and every
|
|
7
|
+
* directory from the project root down to where it runs
|
|
8
|
+
* (https://developers.openai.com/codex/guides/agents-md), through the
|
|
9
|
+
* shared writer (agentsMd.ts);
|
|
5
10
|
* - `.env.intutic` in the workspace, with the proxy base URLs for shells and
|
|
6
11
|
* scripts that source it;
|
|
7
12
|
* - `openai_base_url` in Codex's user config (`$CODEX_HOME/config.toml`,
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAcjD,eAAO,MAAM,YAAY,EAAE,eAkD1B,CAAA"}
|
package/dist/harness/codex.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* codex.ts — Codex adapter.
|
|
3
3
|
*
|
|
4
|
-
* Writes
|
|
4
|
+
* Writes four things:
|
|
5
|
+
* - the rule sets, as the marked section of the workspace's `AGENTS.md`,
|
|
6
|
+
* which Codex reads before any work, merged from `~/.codex` and every
|
|
7
|
+
* directory from the project root down to where it runs
|
|
8
|
+
* (https://developers.openai.com/codex/guides/agents-md), through the
|
|
9
|
+
* shared writer (agentsMd.ts);
|
|
5
10
|
* - `.env.intutic` in the workspace, with the proxy base URLs for shells and
|
|
6
11
|
* scripts that source it;
|
|
7
12
|
* - `openai_base_url` in Codex's user config (`$CODEX_HOME/config.toml`,
|
|
@@ -17,11 +22,11 @@
|
|
|
17
22
|
import { join } from 'node:path';
|
|
18
23
|
import { homedir } from 'node:os';
|
|
19
24
|
import { HarnessType, anthropicBaseUrl, openaiBaseUrl, proxyHost } from '@intutic/shared-types';
|
|
20
|
-
import { hashFile } from '../lib/hash.js';
|
|
21
25
|
import { loadCredentials } from '../config/store.js';
|
|
22
26
|
import { newIso } from '@intutic/id';
|
|
23
27
|
import { writeCodexHooks, mergeCodexConfig, writeOwnedFile } from '@intutic/sync-daemon';
|
|
24
|
-
|
|
28
|
+
import { AGENTS_MD, agentsMdHash, writeAgentsMd } from './agentsMd.js';
|
|
29
|
+
const ENV_FILE = '.env.intutic';
|
|
25
30
|
/** Codex's user config directory, resolved at call time so CODEX_HOME and
|
|
26
31
|
* HOME changes (and tests that move them) are honoured. */
|
|
27
32
|
function codexHome() {
|
|
@@ -29,7 +34,7 @@ function codexHome() {
|
|
|
29
34
|
}
|
|
30
35
|
export const codexAdapter = {
|
|
31
36
|
type: HarnessType.CODEX,
|
|
32
|
-
configFileName:
|
|
37
|
+
configFileName: AGENTS_MD,
|
|
33
38
|
async detect(_workspaceRoot) {
|
|
34
39
|
if (process.env.CODEX_HOME)
|
|
35
40
|
return true;
|
|
@@ -47,9 +52,18 @@ export const codexAdapter = {
|
|
|
47
52
|
catch { /* ignore */ }
|
|
48
53
|
return false;
|
|
49
54
|
},
|
|
55
|
+
async installGate(workspaceRoot, proxyUrl) {
|
|
56
|
+
// Codex user config — persists proxy routing across sessions without env
|
|
57
|
+
// sourcing. Merged; a config.toml that does not parse is left alone.
|
|
58
|
+
await mergeCodexConfig(join(codexHome(), 'config.toml'), openaiBaseUrl(proxyUrl));
|
|
59
|
+
// The PreToolUse gate. The routing above governs LLM egress only; the
|
|
60
|
+
// gate is what refuses tool calls.
|
|
61
|
+
const creds = await loadCredentials();
|
|
62
|
+
await writeCodexHooks(workspaceRoot, proxyUrl, creds?.workspaceId || 'local');
|
|
63
|
+
},
|
|
64
|
+
/** The `AGENTS.md` section, and the workspace `.env.intutic`. */
|
|
50
65
|
async writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
51
|
-
|
|
52
|
-
const filePath = join(workspaceRoot, CONFIG_FILE);
|
|
66
|
+
const filePath = join(workspaceRoot, ENV_FILE);
|
|
53
67
|
const envContent = [
|
|
54
68
|
'# Intutic Governance Rules (auto-generated)',
|
|
55
69
|
'# DO NOT EDIT — managed by intutic sync daemon',
|
|
@@ -63,22 +77,10 @@ export const codexAdapter = {
|
|
|
63
77
|
'',
|
|
64
78
|
].join('\n');
|
|
65
79
|
await writeOwnedFile(filePath, workspaceRoot, envContent);
|
|
66
|
-
|
|
67
|
-
// env sourcing. Merged; a config.toml that does not parse is left alone.
|
|
68
|
-
await mergeCodexConfig(join(codexHome(), 'config.toml'), openaiBaseUrl(proxyUrl));
|
|
69
|
-
// 3. The PreToolUse gate. The routing above governs LLM egress only; the
|
|
70
|
-
// gate is what refuses tool calls.
|
|
71
|
-
const creds = await loadCredentials();
|
|
72
|
-
await writeCodexHooks(workspaceRoot, proxyUrl, creds?.workspaceId || 'local');
|
|
73
|
-
return filePath;
|
|
80
|
+
return (await writeAgentsMd(workspaceRoot, sops, proxyUrl)) ?? filePath;
|
|
74
81
|
},
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return await hashFile(join(workspaceRoot, CONFIG_FILE));
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
+
readCurrentHash(workspaceRoot) {
|
|
83
|
+
return agentsMdHash(workspaceRoot);
|
|
82
84
|
},
|
|
83
85
|
};
|
|
84
86
|
//# sourceMappingURL=codex.js.map
|
|
@@ -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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"}
|
|
@@ -4,10 +4,16 @@
|
|
|
4
4
|
* Detects the Continue AI coding assistant and:
|
|
5
5
|
* - sets `apiBase` on each OpenAI/Anthropic model in `~/.continue/config.yaml`
|
|
6
6
|
* so its LLM calls reach the proxy (merged; see continueConfigMerger.ts);
|
|
7
|
-
* - installs the
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* - installs no tool-call gate: the CLI (`cn`) loads PreToolUse hooks from
|
|
8
|
+
* its settings but never fires them (`firePreToolUse` has no caller at
|
|
9
|
+
* continuedev/continue main 5522c6f), and the IDE extension has no hook
|
|
10
|
+
* system. The proxy and the rules below are what govern it;
|
|
11
|
+
* - writes the rule sets to `.continue/rules/intutic-governance.md` with
|
|
12
|
+
* `alwaysApply: true`. The IDE extension reads the workspace root's
|
|
13
|
+
* `.continue/rules/`, and the CLI the one in the directory it runs in,
|
|
14
|
+
* which keeps only always-apply rules
|
|
15
|
+
* (https://github.com/continuedev/continue/blob/5522c6f44ca0ac3528b37244818fbfa39b5af470/core/config/markdown/loadMarkdownRules.ts,
|
|
16
|
+
* https://github.com/continuedev/continue/blob/5522c6f44ca0ac3528b37244818fbfa39b5af470/extensions/cli/src/systemMessage.ts).
|
|
11
17
|
*
|
|
12
18
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
13
19
|
* @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;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAYjD,eAAO,MAAM,eAAe,EAAE,eA2B7B,CAAA"}
|
package/dist/harness/continue.js
CHANGED
|
@@ -4,10 +4,16 @@
|
|
|
4
4
|
* Detects the Continue AI coding assistant and:
|
|
5
5
|
* - sets `apiBase` on each OpenAI/Anthropic model in `~/.continue/config.yaml`
|
|
6
6
|
* so its LLM calls reach the proxy (merged; see continueConfigMerger.ts);
|
|
7
|
-
* - installs the
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* - installs no tool-call gate: the CLI (`cn`) loads PreToolUse hooks from
|
|
8
|
+
* its settings but never fires them (`firePreToolUse` has no caller at
|
|
9
|
+
* continuedev/continue main 5522c6f), and the IDE extension has no hook
|
|
10
|
+
* system. The proxy and the rules below are what govern it;
|
|
11
|
+
* - writes the rule sets to `.continue/rules/intutic-governance.md` with
|
|
12
|
+
* `alwaysApply: true`. The IDE extension reads the workspace root's
|
|
13
|
+
* `.continue/rules/`, and the CLI the one in the directory it runs in,
|
|
14
|
+
* which keeps only always-apply rules
|
|
15
|
+
* (https://github.com/continuedev/continue/blob/5522c6f44ca0ac3528b37244818fbfa39b5af470/core/config/markdown/loadMarkdownRules.ts,
|
|
16
|
+
* https://github.com/continuedev/continue/blob/5522c6f44ca0ac3528b37244818fbfa39b5af470/extensions/cli/src/systemMessage.ts).
|
|
11
17
|
*
|
|
12
18
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
13
19
|
* @module
|
|
@@ -15,10 +21,10 @@
|
|
|
15
21
|
import { access, readdir } from 'node:fs/promises';
|
|
16
22
|
import { join } from 'node:path';
|
|
17
23
|
import { homedir } from 'node:os';
|
|
18
|
-
import { HarnessType, openaiBaseUrl } from '@intutic/shared-types';
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
|
|
24
|
+
import { HarnessType, rulesFrontMatterOf, openaiBaseUrl } from '@intutic/shared-types';
|
|
25
|
+
import { mergeContinueConfig } from '@intutic/sync-daemon';
|
|
26
|
+
import { ownRulesFileHash, writeOwnRulesFile } from './rulesFiles.js';
|
|
27
|
+
const RULES_FILE = '.continue/rules/intutic-governance.md';
|
|
22
28
|
/** `~/.continue/<name>`, resolved at call time so HOME changes (and tests
|
|
23
29
|
* that move HOME) are honoured. */
|
|
24
30
|
function continuePath(name) {
|
|
@@ -26,7 +32,7 @@ function continuePath(name) {
|
|
|
26
32
|
}
|
|
27
33
|
export const continueAdapter = {
|
|
28
34
|
type: HarnessType.CONTINUE,
|
|
29
|
-
configFileName:
|
|
35
|
+
configFileName: RULES_FILE,
|
|
30
36
|
async detect(_workspaceRoot) {
|
|
31
37
|
for (const p of [continuePath('config.yaml'), continuePath('config.json')]) {
|
|
32
38
|
try {
|
|
@@ -43,20 +49,14 @@ export const continueAdapter = {
|
|
|
43
49
|
return false;
|
|
44
50
|
}
|
|
45
51
|
},
|
|
46
|
-
async
|
|
47
|
-
|
|
48
|
-
const routed = await mergeContinueConfig(configYaml, openaiBaseUrl(proxyUrl));
|
|
49
|
-
const creds = await loadCredentials();
|
|
50
|
-
await writeContinueHooks(workspaceRoot, proxyUrl, creds?.workspaceId || 'local');
|
|
51
|
-
return routed > 0 ? configYaml : null;
|
|
52
|
+
async installGate(workspaceRoot, proxyUrl) {
|
|
53
|
+
await mergeContinueConfig(continuePath('config.yaml'), openaiBaseUrl(proxyUrl));
|
|
52
54
|
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
55
|
+
writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
56
|
+
return writeOwnRulesFile(workspaceRoot, RULES_FILE, sops, proxyUrl, rulesFrontMatterOf(HarnessType.CONTINUE, 'Intutic governance rules'));
|
|
57
|
+
},
|
|
58
|
+
readCurrentHash(workspaceRoot) {
|
|
59
|
+
return ownRulesFileHash(workspaceRoot, RULES_FILE);
|
|
60
60
|
},
|
|
61
61
|
};
|
|
62
62
|
//# sourceMappingURL=continue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continue.js","sourceRoot":"","sources":["../../src/harness/continue.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"continue.js","sourceRoot":"","sources":["../../src/harness/continue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAErE,MAAM,UAAU,GAAG,uCAAuC,CAAA;AAE1D;oCACoC;AACpC,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,cAAc,EAAE,UAAU;IAE1B,KAAK,CAAC,MAAM,CAAC,cAAsB;QACjC,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;YACvE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,QAAgB;QACvD,MAAM,mBAAmB,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,WAAW,CAAC,aAAqB,EAAE,IAAoB,EAAE,QAAgB;QACvE,OAAO,iBAAiB,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC,CAAA;IAC3I,CAAC;IAED,eAAe,CAAC,aAAqB;QACnC,OAAO,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;IACpD,CAAC;CACF,CAAA"}
|
package/dist/harness/cursor.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* cursor.ts — Cursor adapter (full implementation with 3-level hooks).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* - Writes the rule sets to `.cursor/rules/intutic-governance.mdc`, a project
|
|
5
|
+
* rule with `alwaysApply: true`, which Cursor adds to every request
|
|
6
|
+
* (https://cursor.com/docs/context/rules; a plain `.md` there is ignored).
|
|
7
|
+
* Earlier versions overwrote `.cursorrules`, a single file the current docs
|
|
8
|
+
* no longer describe; the user's own copy of it comes back.
|
|
6
9
|
* - Injects hooks.json at project-level AND user-level
|
|
7
10
|
* - Enterprise system-level (/etc/cursor) is handled by the system administrator
|
|
8
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/harness/cursor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/harness/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAOjD,eAAO,MAAM,aAAa,EAAE,eA2B3B,CAAA"}
|