@intutic/cli 1.10.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/cli.js +868 -30
- package/dist/cli.js.map +1 -1
- package/dist/commands/attenuate.d.ts +39 -0
- package/dist/commands/attenuate.d.ts.map +1 -0
- package/dist/commands/attenuate.js +98 -0
- package/dist/commands/attenuate.js.map +1 -0
- package/dist/commands/budget.d.ts +80 -0
- package/dist/commands/budget.d.ts.map +1 -1
- package/dist/commands/budget.js +119 -3
- package/dist/commands/budget.js.map +1 -1
- package/dist/commands/connect.d.ts +10 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +358 -48
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/credentials.d.ts +31 -0
- package/dist/commands/credentials.d.ts.map +1 -0
- package/dist/commands/credentials.js +134 -0
- package/dist/commands/credentials.js.map +1 -0
- package/dist/commands/decision.d.ts +37 -0
- package/dist/commands/decision.d.ts.map +1 -0
- package/dist/commands/decision.js +56 -0
- package/dist/commands/decision.js.map +1 -0
- package/dist/commands/doctor.d.ts +38 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +228 -18
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/enforce.d.ts +33 -0
- package/dist/commands/enforce.d.ts.map +1 -0
- package/dist/commands/enforce.js +150 -0
- package/dist/commands/enforce.js.map +1 -0
- package/dist/commands/enterprise.d.ts +29 -0
- package/dist/commands/enterprise.d.ts.map +1 -0
- package/dist/commands/enterprise.js +141 -0
- package/dist/commands/enterprise.js.map +1 -0
- package/dist/commands/env.d.ts +7 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +55 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/exec.d.ts +38 -2
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +247 -10
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/findings.d.ts +84 -0
- package/dist/commands/findings.d.ts.map +1 -0
- package/dist/commands/findings.js +329 -0
- package/dist/commands/findings.js.map +1 -0
- package/dist/commands/gateway.d.ts +62 -0
- package/dist/commands/gateway.d.ts.map +1 -0
- package/dist/commands/gateway.js +298 -0
- package/dist/commands/gateway.js.map +1 -0
- package/dist/commands/guardrails.d.ts +81 -0
- package/dist/commands/guardrails.d.ts.map +1 -0
- package/dist/commands/guardrails.js +735 -0
- package/dist/commands/guardrails.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +14 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-daemon.d.ts +70 -3
- package/dist/commands/install-daemon.d.ts.map +1 -1
- package/dist/commands/install-daemon.js +482 -47
- package/dist/commands/install-daemon.js.map +1 -1
- package/dist/commands/integrity.d.ts +205 -0
- package/dist/commands/integrity.d.ts.map +1 -0
- package/dist/commands/integrity.js +620 -0
- package/dist/commands/integrity.js.map +1 -0
- package/dist/commands/judge.d.ts +31 -0
- package/dist/commands/judge.d.ts.map +1 -0
- package/dist/commands/judge.js +118 -0
- package/dist/commands/judge.js.map +1 -0
- package/dist/commands/org.d.ts +31 -0
- package/dist/commands/org.d.ts.map +1 -0
- package/dist/commands/org.js +159 -0
- package/dist/commands/org.js.map +1 -0
- package/dist/commands/policy.d.ts +138 -4
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +538 -97
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/predict-cost.d.ts +45 -0
- package/dist/commands/predict-cost.d.ts.map +1 -0
- package/dist/commands/predict-cost.js +123 -0
- package/dist/commands/predict-cost.js.map +1 -0
- package/dist/commands/rollback.d.ts +5 -0
- package/dist/commands/rollback.d.ts.map +1 -0
- package/dist/commands/rollback.js +142 -0
- package/dist/commands/rollback.js.map +1 -0
- package/dist/commands/routing.d.ts +62 -0
- package/dist/commands/routing.d.ts.map +1 -0
- package/dist/commands/routing.js +121 -0
- package/dist/commands/routing.js.map +1 -0
- package/dist/commands/setup.d.ts +62 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +238 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/skill.d.ts +268 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +744 -39
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/sops.d.ts +95 -0
- package/dist/commands/sops.d.ts.map +1 -1
- package/dist/commands/sops.js +334 -34
- package/dist/commands/sops.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +1 -18
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +44 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/team.d.ts +38 -0
- package/dist/commands/team.d.ts.map +1 -0
- package/dist/commands/team.js +140 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/commands/traces.d.ts +8 -1
- package/dist/commands/traces.d.ts.map +1 -1
- package/dist/commands/traces.js +114 -15
- package/dist/commands/traces.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +2 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config/keychain.d.ts +10 -2
- package/dist/config/keychain.d.ts.map +1 -1
- package/dist/config/keychain.js +83 -14
- package/dist/config/keychain.js.map +1 -1
- package/dist/config/paths.d.ts +27 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +37 -6
- package/dist/config/paths.js.map +1 -1
- package/dist/config/store.d.ts.map +1 -1
- package/dist/config/store.js +19 -3
- package/dist/config/store.js.map +1 -1
- package/dist/harness/ag2.d.ts +22 -0
- package/dist/harness/ag2.d.ts.map +1 -0
- package/dist/harness/ag2.js +34 -0
- package/dist/harness/ag2.js.map +1 -0
- package/dist/harness/agentcore.d.ts +55 -0
- package/dist/harness/agentcore.d.ts.map +1 -0
- package/dist/harness/agentcore.js +119 -0
- package/dist/harness/agentcore.js.map +1 -0
- package/dist/harness/agenticOrchestrator.d.ts +52 -0
- package/dist/harness/agenticOrchestrator.d.ts.map +1 -0
- package/dist/harness/agenticOrchestrator.js +115 -0
- package/dist/harness/agenticOrchestrator.js.map +1 -0
- package/dist/harness/aiSdkHarness.d.ts +30 -0
- package/dist/harness/aiSdkHarness.d.ts.map +1 -0
- package/dist/harness/aiSdkHarness.js +51 -0
- package/dist/harness/aiSdkHarness.js.map +1 -0
- package/dist/harness/aiSdkWorkflow.d.ts +26 -0
- package/dist/harness/aiSdkWorkflow.d.ts.map +1 -0
- package/dist/harness/aiSdkWorkflow.js +39 -0
- package/dist/harness/aiSdkWorkflow.js.map +1 -0
- package/dist/harness/autogen.d.ts +24 -0
- package/dist/harness/autogen.d.ts.map +1 -0
- package/dist/harness/autogen.js +36 -0
- package/dist/harness/autogen.js.map +1 -0
- package/dist/harness/base.js.map +1 -1
- package/dist/harness/continue.d.ts.map +1 -1
- package/dist/harness/continue.js +2 -1
- package/dist/harness/continue.js.map +1 -1
- package/dist/harness/crewai.d.ts +15 -0
- package/dist/harness/crewai.d.ts.map +1 -0
- package/dist/harness/crewai.js +26 -0
- package/dist/harness/crewai.js.map +1 -0
- package/dist/harness/detector.d.ts +1 -1
- package/dist/harness/detector.d.ts.map +1 -1
- package/dist/harness/detector.js +47 -1
- package/dist/harness/detector.js.map +1 -1
- package/dist/harness/dsh.d.ts +19 -0
- package/dist/harness/dsh.d.ts.map +1 -0
- package/dist/harness/dsh.js +93 -0
- package/dist/harness/dsh.js.map +1 -0
- package/dist/harness/eve.d.ts +40 -0
- package/dist/harness/eve.d.ts.map +1 -0
- package/dist/harness/eve.js +67 -0
- package/dist/harness/eve.js.map +1 -0
- package/dist/harness/googleAdk.d.ts +18 -0
- package/dist/harness/googleAdk.d.ts.map +1 -0
- package/dist/harness/googleAdk.js +29 -0
- package/dist/harness/googleAdk.js.map +1 -0
- package/dist/harness/goose.d.ts.map +1 -1
- package/dist/harness/goose.js +5 -1
- package/dist/harness/goose.js.map +1 -1
- package/dist/harness/grok.d.ts +16 -0
- package/dist/harness/grok.d.ts.map +1 -0
- package/dist/harness/grok.js +78 -0
- package/dist/harness/grok.js.map +1 -0
- package/dist/harness/jsSdkGatedAdapter.d.ts +102 -0
- package/dist/harness/jsSdkGatedAdapter.d.ts.map +1 -0
- package/dist/harness/jsSdkGatedAdapter.js +139 -0
- package/dist/harness/jsSdkGatedAdapter.js.map +1 -0
- package/dist/harness/langchain.d.ts +22 -0
- package/dist/harness/langchain.d.ts.map +1 -0
- package/dist/harness/langchain.js +33 -0
- package/dist/harness/langchain.js.map +1 -0
- package/dist/harness/langgraph.d.ts +22 -0
- package/dist/harness/langgraph.d.ts.map +1 -0
- package/dist/harness/langgraph.js +80 -0
- package/dist/harness/langgraph.js.map +1 -0
- package/dist/harness/mastra.d.ts +21 -0
- package/dist/harness/mastra.d.ts.map +1 -0
- package/dist/harness/mastra.js +33 -0
- package/dist/harness/mastra.js.map +1 -0
- package/dist/harness/muse.d.ts +22 -0
- package/dist/harness/muse.d.ts.map +1 -0
- package/dist/harness/muse.js +92 -0
- package/dist/harness/muse.js.map +1 -0
- package/dist/harness/n8n.d.ts.map +1 -1
- package/dist/harness/n8n.js +36 -11
- package/dist/harness/n8n.js.map +1 -1
- package/dist/harness/openaiAgents.d.ts +40 -0
- package/dist/harness/openaiAgents.d.ts.map +1 -0
- package/dist/harness/openaiAgents.js +107 -0
- package/dist/harness/openaiAgents.js.map +1 -0
- package/dist/harness/opencode.d.ts +24 -0
- package/dist/harness/opencode.d.ts.map +1 -0
- package/dist/harness/opencode.js +97 -0
- package/dist/harness/opencode.js.map +1 -0
- package/dist/harness/pydanticAi.d.ts +19 -0
- package/dist/harness/pydanticAi.d.ts.map +1 -0
- package/dist/harness/pydanticAi.js +30 -0
- package/dist/harness/pydanticAi.js.map +1 -0
- package/dist/harness/sdkGatedAdapter.d.ts +55 -0
- package/dist/harness/sdkGatedAdapter.d.ts.map +1 -0
- package/dist/harness/sdkGatedAdapter.js +85 -0
- package/dist/harness/sdkGatedAdapter.js.map +1 -0
- package/dist/harness/smolagents.d.ts +22 -0
- package/dist/harness/smolagents.d.ts.map +1 -0
- package/dist/harness/smolagents.js +33 -0
- package/dist/harness/smolagents.js.map +1 -0
- package/dist/harness/strands.d.ts +22 -0
- package/dist/harness/strands.d.ts.map +1 -0
- package/dist/harness/strands.js +35 -0
- package/dist/harness/strands.js.map +1 -0
- package/dist/harness/trueforge.d.ts +25 -0
- package/dist/harness/trueforge.d.ts.map +1 -0
- package/dist/harness/trueforge.js +40 -0
- package/dist/harness/trueforge.js.map +1 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js +70 -0
- package/dist/harness/types.js.map +1 -1
- package/dist/harness/vercelAiSdk.d.ts +31 -0
- package/dist/harness/vercelAiSdk.d.ts.map +1 -0
- package/dist/harness/vercelAiSdk.js +44 -0
- package/dist/harness/vercelAiSdk.js.map +1 -0
- package/dist/harness/xirp.d.ts +43 -0
- package/dist/harness/xirp.d.ts.map +1 -0
- package/dist/harness/xirp.js +95 -0
- package/dist/harness/xirp.js.map +1 -0
- package/dist/lib/api.d.ts +68 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +108 -67
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/authMessages.d.ts +19 -0
- package/dist/lib/authMessages.d.ts.map +1 -0
- package/dist/lib/authMessages.js +20 -0
- package/dist/lib/authMessages.js.map +1 -0
- package/dist/lib/binaryChecksum.d.ts +12 -0
- package/dist/lib/binaryChecksum.d.ts.map +1 -0
- package/dist/lib/binaryChecksum.js +45 -0
- package/dist/lib/binaryChecksum.js.map +1 -0
- package/dist/lib/binaryOnPath.d.ts +24 -0
- package/dist/lib/binaryOnPath.d.ts.map +1 -0
- package/dist/lib/binaryOnPath.js +31 -0
- package/dist/lib/binaryOnPath.js.map +1 -0
- package/dist/lib/caTrust.d.ts +69 -0
- package/dist/lib/caTrust.d.ts.map +1 -0
- package/dist/lib/caTrust.js +169 -0
- package/dist/lib/caTrust.js.map +1 -0
- package/dist/lib/ciscoScanner.d.ts +178 -0
- package/dist/lib/ciscoScanner.d.ts.map +1 -0
- package/dist/lib/ciscoScanner.js +292 -0
- package/dist/lib/ciscoScanner.js.map +1 -0
- package/dist/lib/decisionsLogRefresh.d.ts +28 -0
- package/dist/lib/decisionsLogRefresh.d.ts.map +1 -0
- package/dist/lib/decisionsLogRefresh.js +54 -0
- package/dist/lib/decisionsLogRefresh.js.map +1 -0
- package/dist/lib/deviceReport.d.ts +26 -0
- package/dist/lib/deviceReport.d.ts.map +1 -0
- package/dist/lib/deviceReport.js +55 -0
- package/dist/lib/deviceReport.js.map +1 -0
- package/dist/lib/elevation.d.ts +58 -0
- package/dist/lib/elevation.d.ts.map +1 -0
- package/dist/lib/elevation.js +83 -0
- package/dist/lib/elevation.js.map +1 -0
- package/dist/lib/enforcementState.d.ts +69 -0
- package/dist/lib/enforcementState.d.ts.map +1 -0
- package/dist/lib/enforcementState.js +113 -0
- package/dist/lib/enforcementState.js.map +1 -0
- package/dist/lib/ensureValkey.d.ts.map +1 -1
- package/dist/lib/ensureValkey.js +2 -2
- package/dist/lib/ensureValkey.js.map +1 -1
- package/dist/lib/envInjector.d.ts.map +1 -1
- package/dist/lib/envInjector.js +22 -4
- package/dist/lib/envInjector.js.map +1 -1
- package/dist/lib/gitHooks.d.ts +7 -2
- package/dist/lib/gitHooks.d.ts.map +1 -1
- package/dist/lib/gitHooks.js +180 -13
- package/dist/lib/gitHooks.js.map +1 -1
- package/dist/lib/gracefulShutdown.d.ts +37 -0
- package/dist/lib/gracefulShutdown.d.ts.map +1 -0
- package/dist/lib/gracefulShutdown.js +57 -0
- package/dist/lib/gracefulShutdown.js.map +1 -0
- package/dist/lib/graphIdentity.d.ts +80 -0
- package/dist/lib/graphIdentity.d.ts.map +1 -0
- package/dist/lib/graphIdentity.js +120 -0
- package/dist/lib/graphIdentity.js.map +1 -0
- package/dist/lib/localTraces.d.ts +61 -0
- package/dist/lib/localTraces.d.ts.map +1 -0
- package/dist/lib/localTraces.js +173 -0
- package/dist/lib/localTraces.js.map +1 -0
- package/dist/lib/mdmManifest.d.ts +73 -0
- package/dist/lib/mdmManifest.d.ts.map +1 -0
- package/dist/lib/mdmManifest.js +190 -0
- package/dist/lib/mdmManifest.js.map +1 -0
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +60 -1
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/otelPropagation.d.ts +26 -0
- package/dist/lib/otelPropagation.d.ts.map +1 -0
- package/dist/lib/otelPropagation.js +40 -0
- package/dist/lib/otelPropagation.js.map +1 -0
- package/dist/lib/policySnapshot.d.ts +92 -0
- package/dist/lib/policySnapshot.d.ts.map +1 -0
- package/dist/lib/policySnapshot.js +173 -0
- package/dist/lib/policySnapshot.js.map +1 -0
- package/dist/lib/process.d.ts.map +1 -1
- package/dist/lib/process.js +60 -0
- package/dist/lib/process.js.map +1 -1
- package/dist/lib/providerProbe.d.ts +28 -0
- package/dist/lib/providerProbe.d.ts.map +1 -0
- package/dist/lib/providerProbe.js +57 -0
- package/dist/lib/providerProbe.js.map +1 -0
- package/dist/lib/proxyBinary.d.ts +19 -0
- package/dist/lib/proxyBinary.d.ts.map +1 -0
- package/dist/lib/proxyBinary.js +30 -0
- package/dist/lib/proxyBinary.js.map +1 -0
- package/dist/lib/sandbox/firecracker.d.ts +89 -0
- package/dist/lib/sandbox/firecracker.d.ts.map +1 -0
- package/dist/lib/sandbox/firecracker.js +135 -0
- package/dist/lib/sandbox/firecracker.js.map +1 -0
- package/dist/lib/sandbox/index.d.ts +34 -0
- package/dist/lib/sandbox/index.d.ts.map +1 -0
- package/dist/lib/sandbox/index.js +54 -0
- package/dist/lib/sandbox/index.js.map +1 -0
- package/dist/lib/sandbox/oci.d.ts +38 -0
- package/dist/lib/sandbox/oci.d.ts.map +1 -0
- package/dist/lib/sandbox/oci.js +108 -0
- package/dist/lib/sandbox/oci.js.map +1 -0
- package/dist/lib/sandbox/types.d.ts +48 -0
- package/dist/lib/sandbox/types.d.ts.map +1 -0
- package/dist/lib/sandbox/types.js +12 -0
- package/dist/lib/sandbox/types.js.map +1 -0
- package/dist/lib/sopFrontMatter.d.ts +50 -0
- package/dist/lib/sopFrontMatter.d.ts.map +1 -0
- package/dist/lib/sopFrontMatter.js +129 -0
- package/dist/lib/sopFrontMatter.js.map +1 -0
- package/package.json +11 -6
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* trueforge.ts — TrueForge (embedded) adapter (env-file config, SDK-side gate).
|
|
3
|
+
*
|
|
4
|
+
* Same shape as mastra.ts/vercelAiSdk.ts (see jsSdkGatedAdapter.ts): detected
|
|
5
|
+
* via `@truefoundry/trueforge-core` in `package.json`, and points at
|
|
6
|
+
* `@intutic/gate/trueforge`'s `intuticApprovalResponder()` rather than an
|
|
7
|
+
* `intutic-clawde` import.
|
|
8
|
+
*
|
|
9
|
+
* Covers ONLY the embedded-library deployment mode — another team's Node
|
|
10
|
+
* process importing `@truefoundry/trueforge-core` directly. TrueForge run as
|
|
11
|
+
* its own standalone/hosted server (`npx @truefoundry/trueforge`, Docker
|
|
12
|
+
* Compose, or the Helm chart) is a separate, not-yet-built HarnessType and is
|
|
13
|
+
* NOT detected by this adapter.
|
|
14
|
+
*
|
|
15
|
+
* NOTE (confirmed against a real install, `@truefoundry/trueforge-core@0.1.4`):
|
|
16
|
+
* unlike Mastra's `beforeToolCall`/Vercel AI SDK's `toolApproval`, TrueForge
|
|
17
|
+
* has no synchronous in-process approval callback at all — the gate is a
|
|
18
|
+
* batch responder answering `tool.approval_required` turn pauses. See
|
|
19
|
+
* `@intutic/gate/trueforge`'s module doc for the full record.
|
|
20
|
+
*
|
|
21
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
export declare const trueforgeAdapter: import("./types.js").IHarnessAdapter;
|
|
25
|
+
//# sourceMappingURL=trueforge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trueforge.d.ts","sourceRoot":"","sources":["../../src/harness/trueforge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,eAAO,MAAM,gBAAgB,sCAc3B,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* trueforge.ts — TrueForge (embedded) adapter (env-file config, SDK-side gate).
|
|
3
|
+
*
|
|
4
|
+
* Same shape as mastra.ts/vercelAiSdk.ts (see jsSdkGatedAdapter.ts): detected
|
|
5
|
+
* via `@truefoundry/trueforge-core` in `package.json`, and points at
|
|
6
|
+
* `@intutic/gate/trueforge`'s `intuticApprovalResponder()` rather than an
|
|
7
|
+
* `intutic-clawde` import.
|
|
8
|
+
*
|
|
9
|
+
* Covers ONLY the embedded-library deployment mode — another team's Node
|
|
10
|
+
* process importing `@truefoundry/trueforge-core` directly. TrueForge run as
|
|
11
|
+
* its own standalone/hosted server (`npx @truefoundry/trueforge`, Docker
|
|
12
|
+
* Compose, or the Helm chart) is a separate, not-yet-built HarnessType and is
|
|
13
|
+
* NOT detected by this adapter.
|
|
14
|
+
*
|
|
15
|
+
* NOTE (confirmed against a real install, `@truefoundry/trueforge-core@0.1.4`):
|
|
16
|
+
* unlike Mastra's `beforeToolCall`/Vercel AI SDK's `toolApproval`, TrueForge
|
|
17
|
+
* has no synchronous in-process approval callback at all — the gate is a
|
|
18
|
+
* batch responder answering `tool.approval_required` turn pauses. See
|
|
19
|
+
* `@intutic/gate/trueforge`'s module doc for the full record.
|
|
20
|
+
*
|
|
21
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
import { HarnessType } from '@intutic/shared-types';
|
|
25
|
+
import { makeJsSdkGatedAdapter } from './jsSdkGatedAdapter.js';
|
|
26
|
+
export const trueforgeAdapter = makeJsSdkGatedAdapter({
|
|
27
|
+
type: HarnessType.TRUEFORGE,
|
|
28
|
+
label: 'TrueForge (embedded)',
|
|
29
|
+
requires: [{ name: '@truefoundry/trueforge-core' }],
|
|
30
|
+
npmInstall: '@intutic/gate',
|
|
31
|
+
importLine: "import { intuticApprovalResponder } from '@intutic/gate/trueforge'",
|
|
32
|
+
usageSummary: 'intuticApprovalResponder() answers tool.approval_required pauses with a real ' +
|
|
33
|
+
'Gate.guard() verdict, producing user.tool_approval items for your next ' +
|
|
34
|
+
"session.createTurn() call. NOTE: TrueForge has no synchronous approval callback to " +
|
|
35
|
+
'hang a function off — this is a batch responder, not a beforeToolCall/toolApproval ' +
|
|
36
|
+
'option. Covers embedded-library mode only; the standalone/hosted server is not yet ' +
|
|
37
|
+
'supported.',
|
|
38
|
+
docsSlug: 'trueforge',
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=trueforge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trueforge.js","sourceRoot":"","sources":["../../src/harness/trueforge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;IACpD,IAAI,EAAE,WAAW,CAAC,SAAS;IAC3B,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;IACnD,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,oEAAoE;IAChF,YAAY,EACV,+EAA+E;QAC/E,yEAAyE;QACzE,qFAAqF;QACrF,qFAAqF;QACrF,qFAAqF;QACrF,YAAY;IACd,QAAQ,EAAE,WAAW;CACtB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEtE,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C;;;OAGG;IACH,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAClG,4FAA4F;IAC5F,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CAC/D;AAED,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEtE,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C;;;OAGG;IACH,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAClG,4FAA4F;IAC5F,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CAC/D;AAED,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAyF5D,CAAA"}
|
package/dist/harness/types.js
CHANGED
|
@@ -28,5 +28,75 @@ export const HARNESS_CONFIG_FILES = {
|
|
|
28
28
|
'claude-desktop': '',
|
|
29
29
|
'goose': '',
|
|
30
30
|
'open-webui': '',
|
|
31
|
+
'langgraph': '.env.intutic',
|
|
32
|
+
// Muse Code reads AGENTS.md (falling back to CLAUDE.md) — see muse.ts.
|
|
33
|
+
'muse-code': 'AGENTS.md',
|
|
34
|
+
// AGENTS.md is Grok Build's native rules file — the same cross-tool
|
|
35
|
+
// convention Codex/Amp read. Delivered via the generic markdown formatter
|
|
36
|
+
// (`buildMarkdownContent`/`formatMarkdown`) every `---`-separated rules
|
|
37
|
+
// file in this codebase already shares (Cursor, Claude Code, Windsurf,
|
|
38
|
+
// GitHub Copilot) — not a bespoke format.
|
|
39
|
+
'grok': 'AGENTS.md',
|
|
40
|
+
// OpenCode reads AGENTS.md (CLAUDE.md fallback) — see opencode.ts. The gate
|
|
41
|
+
// is the plugin `openCodeHooks.ts` generates, not this file.
|
|
42
|
+
'opencode': 'AGENTS.md',
|
|
43
|
+
// dsh has no workspace-relative rules file in the research this phase could
|
|
44
|
+
// verify — its config lives entirely under $DSH_HOME (profiles/*/cordis.patch.yml,
|
|
45
|
+
// settings.yaml), not the project workspace. Empty, matching goose/cline/
|
|
46
|
+
// continue/claude-desktop/open-webui's precedent for "no single canonical
|
|
47
|
+
// file" harnesses; dsh.ts's own adapter resolves its real paths directly.
|
|
48
|
+
'dsh': '',
|
|
49
|
+
// Xirp writes no config of its own — see xirp.ts's module doc. It
|
|
50
|
+
// orchestrates other already-gated harnesses (Claude Code, Codex,
|
|
51
|
+
// Antigravity/Gemini CLI), whose own adapters do the real writing.
|
|
52
|
+
'xirp': '',
|
|
53
|
+
// Agentic Orchestrator writes no config of its own — see
|
|
54
|
+
// agenticOrchestrator.ts's module doc. It orchestrates other CLI backends
|
|
55
|
+
// (Claude Code, Codex, OpenCode), whose own adapters do the real writing.
|
|
56
|
+
'agentic-orchestrator': '',
|
|
57
|
+
// Wave 1 SDK-gated frameworks — same rationale as langgraph above: no
|
|
58
|
+
// on-disk hook/config file exists to gate tool calls, so each of these
|
|
59
|
+
// writes .env.intutic (proxy base-URL vars + an SDK-gate pointer comment).
|
|
60
|
+
'langchain': '.env.intutic',
|
|
61
|
+
'crewai': '.env.intutic',
|
|
62
|
+
'autogen': '.env.intutic',
|
|
63
|
+
'ag2': '.env.intutic',
|
|
64
|
+
'google-adk': '.env.intutic',
|
|
65
|
+
'openai-agents': '.env.intutic',
|
|
66
|
+
'pydantic-ai': '.env.intutic',
|
|
67
|
+
'smolagents': '.env.intutic',
|
|
68
|
+
// A4: AWS Strands Agents — same Python SDK-gated rationale as the Wave 1
|
|
69
|
+
// family above (gate ships in intutic_clawde.gate.adapters.strands).
|
|
70
|
+
'strands': '.env.intutic',
|
|
71
|
+
// T2: JS/TS SDK-gated frameworks — same rationale as the Wave 1 Python
|
|
72
|
+
// family above, but the blocking gate ships in @intutic/gate
|
|
73
|
+
// (packages/gate-js) rather than intutic-clawde.
|
|
74
|
+
'mastra': '.env.intutic',
|
|
75
|
+
'vercel-ai-sdk': '.env.intutic',
|
|
76
|
+
// eve (Vercel, PREVIEW) — same JS/TS SDK-gated family; detection is a
|
|
77
|
+
// compound `eve` dep + `agent/` directory check — see eve.ts.
|
|
78
|
+
'eve': '.env.intutic',
|
|
79
|
+
// TrueForge (embedded-library mode only — see trueforge.ts's module doc
|
|
80
|
+
// and the HarnessType.TRUEFORGE doc comment); same JS/TS SDK-gated family.
|
|
81
|
+
'trueforge': '.env.intutic',
|
|
82
|
+
// A3: Vercel platform-agent runtimes — same @intutic/gate family. Note the
|
|
83
|
+
// env vars are weaker still for ai-sdk-harness (tool execution is
|
|
84
|
+
// server-side in Vercel Sandbox microVMs; see aiSdkHarness.ts's module doc
|
|
85
|
+
// and the envPreamble override it carries).
|
|
86
|
+
'ai-sdk-harness': '.env.intutic',
|
|
87
|
+
'ai-sdk-workflow': '.env.intutic',
|
|
88
|
+
// B2: AWS Bedrock AgentCore Runtime — hosts the customer's own framework
|
|
89
|
+
// code unchanged; the actual tool-call gate belongs to whichever
|
|
90
|
+
// already-supported framework adapter that code uses (Strands, LangGraph,
|
|
91
|
+
// ...), same 'delegated'/no-file-of-its-own shape as xirp/
|
|
92
|
+
// agentic-orchestrator above. See agentcore.ts's module doc.
|
|
93
|
+
'agentcore-runtime': '',
|
|
94
|
+
// B3: TrueForge, standalone/hosted server (see the HarnessType.TRUEFORGE_SERVER
|
|
95
|
+
// doc comment) — no CLI adapter exists for this row at all: it is an
|
|
96
|
+
// operator-configured deployment, not a package.json dependency of
|
|
97
|
+
// whatever repo `intutic init` runs against, so there is nothing for this
|
|
98
|
+
// detector to find and no config file to write. Governed entirely by
|
|
99
|
+
// services/trueforge-bridge instead (GateKind: 'bridge').
|
|
100
|
+
'trueforge-server': '',
|
|
31
101
|
};
|
|
32
102
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqBH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAgC;IAC/D,QAAQ,EAAE,cAAc;IACxB,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,uBAAuB;IACtC,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,EAAE,EAAE,6CAA6C;IACxD,UAAU,EAAE,yBAAyB;IACrC,QAAQ,EAAE,qBAAqB;IAC/B,IAAI,EAAE,gBAAgB;IACtB,gBAAgB,EAAE,iCAAiC;IACnD,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,gBAAgB,EAAE,EAAE;IACpB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqBH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAgC;IAC/D,QAAQ,EAAE,cAAc;IACxB,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,uBAAuB;IACtC,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,EAAE,EAAE,6CAA6C;IACxD,UAAU,EAAE,yBAAyB;IACrC,QAAQ,EAAE,qBAAqB;IAC/B,IAAI,EAAE,gBAAgB;IACtB,gBAAgB,EAAE,iCAAiC;IACnD,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,gBAAgB,EAAE,EAAE;IACpB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,cAAc;IAC3B,uEAAuE;IACvE,WAAW,EAAE,WAAW;IACxB,oEAAoE;IACpE,0EAA0E;IAC1E,wEAAwE;IACxE,uEAAuE;IACvE,0CAA0C;IAC1C,MAAM,EAAE,WAAW;IACnB,4EAA4E;IAC5E,6DAA6D;IAC7D,UAAU,EAAE,WAAW;IACvB,4EAA4E;IAC5E,mFAAmF;IACnF,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,KAAK,EAAE,EAAE;IACT,kEAAkE;IAClE,kEAAkE;IAClE,mEAAmE;IACnE,MAAM,EAAE,EAAE;IACV,yDAAyD;IACzD,0EAA0E;IAC1E,0EAA0E;IAC1E,sBAAsB,EAAE,EAAE;IAC1B,sEAAsE;IACtE,uEAAuE;IACvE,2EAA2E;IAC3E,WAAW,EAAE,cAAc;IAC3B,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,cAAc;IACzB,KAAK,EAAE,cAAc;IACrB,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,cAAc;IAC/B,aAAa,EAAE,cAAc;IAC7B,YAAY,EAAE,cAAc;IAC5B,yEAAyE;IACzE,qEAAqE;IACrE,SAAS,EAAE,cAAc;IACzB,uEAAuE;IACvE,6DAA6D;IAC7D,iDAAiD;IACjD,QAAQ,EAAE,cAAc;IACxB,eAAe,EAAE,cAAc;IAC/B,sEAAsE;IACtE,8DAA8D;IAC9D,KAAK,EAAE,cAAc;IACrB,wEAAwE;IACxE,2EAA2E;IAC3E,WAAW,EAAE,cAAc;IAC3B,2EAA2E;IAC3E,kEAAkE;IAClE,2EAA2E;IAC3E,4CAA4C;IAC5C,gBAAgB,EAAE,cAAc;IAChC,iBAAiB,EAAE,cAAc;IACjC,yEAAyE;IACzE,iEAAiE;IACjE,0EAA0E;IAC1E,2DAA2D;IAC3D,6DAA6D;IAC7D,mBAAmB,EAAE,EAAE;IACvB,gFAAgF;IAChF,qEAAqE;IACrE,mEAAmE;IACnE,0EAA0E;IAC1E,qEAAqE;IACrE,0DAA0D;IAC1D,kBAAkB,EAAE,EAAE;CACvB,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vercelAiSdk.ts — Vercel AI SDK adapter (env-file config, SDK-side gate).
|
|
3
|
+
*
|
|
4
|
+
* Same shape as langgraph.ts's Python-side siblings (see
|
|
5
|
+
* jsSdkGatedAdapter.ts), but JS/TS-native: detected via `ai` at major
|
|
6
|
+
* version >= 6 (the `toolApproval` veto point this points at is a v6+ API —
|
|
7
|
+
* a bare `ai` presence check would false-positive on pre-6 workspaces whose
|
|
8
|
+
* tool-loop surface does not have this hook at all) PLUS at least one
|
|
9
|
+
* `@ai-sdk/*` provider package, since `ai` alone declares the tool-loop
|
|
10
|
+
* surface but ships no model provider.
|
|
11
|
+
*
|
|
12
|
+
* DOCUMENTED LIMITATION carried into the generated `.env.intutic`: unlike
|
|
13
|
+
* every other harness this env-file convention covers, the Vercel AI SDK
|
|
14
|
+
* has no environment-variable LLM-egress override — the written
|
|
15
|
+
* `ANTHROPIC_BASE_URL`/`OPENAI_BASE_URL`/`INTUTIC_PROXY_URL` vars are
|
|
16
|
+
* therefore INERT for this framework's own LLM calls (a plain `source
|
|
17
|
+
* .env.intutic` does nothing for `ai`) unless the caller's own provider
|
|
18
|
+
* construction reads them explicitly — routing requires in-code
|
|
19
|
+
* `createOpenAI({ baseURL })`/`createGateway({ baseURL })` via
|
|
20
|
+
* `@intutic/gate/vercel`'s `withIntuticProxy()`. The vars are still
|
|
21
|
+
* written (a workspace may run OTHER harnesses that DO honour them, or a
|
|
22
|
+
* caller may wire them in manually), but this is not a "zero-code" proxy
|
|
23
|
+
* hookup the way it is for `langchain`/`langgraph`. See
|
|
24
|
+
* `@intutic/gate/vercel`'s module doc and
|
|
25
|
+
* `apps/docs/integrations/vercel-ai-sdk.md`.
|
|
26
|
+
*
|
|
27
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
28
|
+
* @module
|
|
29
|
+
*/
|
|
30
|
+
export declare const vercelAiSdkAdapter: import("./types.js").IHarnessAdapter;
|
|
31
|
+
//# sourceMappingURL=vercelAiSdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercelAiSdk.d.ts","sourceRoot":"","sources":["../../src/harness/vercelAiSdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,eAAO,MAAM,kBAAkB,sCAY7B,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vercelAiSdk.ts — Vercel AI SDK adapter (env-file config, SDK-side gate).
|
|
3
|
+
*
|
|
4
|
+
* Same shape as langgraph.ts's Python-side siblings (see
|
|
5
|
+
* jsSdkGatedAdapter.ts), but JS/TS-native: detected via `ai` at major
|
|
6
|
+
* version >= 6 (the `toolApproval` veto point this points at is a v6+ API —
|
|
7
|
+
* a bare `ai` presence check would false-positive on pre-6 workspaces whose
|
|
8
|
+
* tool-loop surface does not have this hook at all) PLUS at least one
|
|
9
|
+
* `@ai-sdk/*` provider package, since `ai` alone declares the tool-loop
|
|
10
|
+
* surface but ships no model provider.
|
|
11
|
+
*
|
|
12
|
+
* DOCUMENTED LIMITATION carried into the generated `.env.intutic`: unlike
|
|
13
|
+
* every other harness this env-file convention covers, the Vercel AI SDK
|
|
14
|
+
* has no environment-variable LLM-egress override — the written
|
|
15
|
+
* `ANTHROPIC_BASE_URL`/`OPENAI_BASE_URL`/`INTUTIC_PROXY_URL` vars are
|
|
16
|
+
* therefore INERT for this framework's own LLM calls (a plain `source
|
|
17
|
+
* .env.intutic` does nothing for `ai`) unless the caller's own provider
|
|
18
|
+
* construction reads them explicitly — routing requires in-code
|
|
19
|
+
* `createOpenAI({ baseURL })`/`createGateway({ baseURL })` via
|
|
20
|
+
* `@intutic/gate/vercel`'s `withIntuticProxy()`. The vars are still
|
|
21
|
+
* written (a workspace may run OTHER harnesses that DO honour them, or a
|
|
22
|
+
* caller may wire them in manually), but this is not a "zero-code" proxy
|
|
23
|
+
* hookup the way it is for `langchain`/`langgraph`. See
|
|
24
|
+
* `@intutic/gate/vercel`'s module doc and
|
|
25
|
+
* `apps/docs/integrations/vercel-ai-sdk.md`.
|
|
26
|
+
*
|
|
27
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
28
|
+
* @module
|
|
29
|
+
*/
|
|
30
|
+
import { HarnessType } from '@intutic/shared-types';
|
|
31
|
+
import { makeJsSdkGatedAdapter } from './jsSdkGatedAdapter.js';
|
|
32
|
+
export const vercelAiSdkAdapter = makeJsSdkGatedAdapter({
|
|
33
|
+
type: HarnessType.VERCEL_AI_SDK,
|
|
34
|
+
label: 'Vercel AI SDK',
|
|
35
|
+
requires: [{ name: 'ai', minMajor: 6 }],
|
|
36
|
+
requiresPrefix: '@ai-sdk/',
|
|
37
|
+
npmInstall: '@intutic/gate',
|
|
38
|
+
importLine: "import { intuticToolApproval, withIntuticProxy } from '@intutic/gate/vercel'",
|
|
39
|
+
usageSummary: 'generateText({ ..., toolApproval: intuticToolApproval() }) — the toolApproval veto point. ' +
|
|
40
|
+
'NOTE: this framework has NO env-var LLM-egress routing; use withIntuticProxy(createOpenAI)( ' +
|
|
41
|
+
'...) or equivalent in code — the env vars above do not route this framework on their own.',
|
|
42
|
+
docsSlug: 'vercel-ai-sdk',
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=vercelAiSdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercelAiSdk.js","sourceRoot":"","sources":["../../src/harness/vercelAiSdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;IACtD,IAAI,EAAE,WAAW,CAAC,aAAa;IAC/B,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACvC,cAAc,EAAE,UAAU;IAC1B,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,8EAA8E;IAC1F,YAAY,EACV,4FAA4F;QAC5F,8FAA8F;QAC9F,2FAA2F;IAC7F,QAAQ,EAAE,eAAe;CAC1B,CAAC,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xirp.ts — Spotify "Xirp" adapter (macOS-only desktop orchestrator, beta
|
|
3
|
+
* since 2026-08-11).
|
|
4
|
+
*
|
|
5
|
+
* Xirp is NOT itself an AI agent — it is an orchestrator that spawns one or
|
|
6
|
+
* more ALREADY-INSTALLED CLI coding agents (Claude Code, Codex, Gemini CLI)
|
|
7
|
+
* each inside its own tmux session and `git worktree`, so a developer can run
|
|
8
|
+
* several parallel agent sessions against the same repository without their
|
|
9
|
+
* working-tree state colliding. Per Xirp's own public FAQ, it preserves each
|
|
10
|
+
* wrapped harness's NATIVE, UNMODIFIED configuration — it introduces no
|
|
11
|
+
* config format of its own for Intutic to parse or gate.
|
|
12
|
+
*
|
|
13
|
+
* That means this adapter exists for DETECTION/reporting only. `writeConfig`
|
|
14
|
+
* writes nothing: whatever Intutic already writes for the wrapped harness
|
|
15
|
+
* (`claudeCode.ts` / `codex.ts` / `antigravity.ts`'s own adapters) is what
|
|
16
|
+
* governs a tool call made inside a Xirp-managed session — PROVIDED those
|
|
17
|
+
* files actually reach the git worktree Xirp creates for that session, which
|
|
18
|
+
* they do not by default: a worktree checkout has its own independent
|
|
19
|
+
* working tree, and project-tier governance files are untracked. Part B of
|
|
20
|
+
* the phase that added this adapter (`services/sync-daemon/src/lib/
|
|
21
|
+
* gitWorktrees.ts` + its wiring into `syncLoop.ts`) is what closes that gap;
|
|
22
|
+
* this adapter's only job is recognising that a Xirp-managed workspace is
|
|
23
|
+
* present at all, so `intutic status`/`intutic init` can report it.
|
|
24
|
+
*
|
|
25
|
+
* See `services/sync-daemon/__tests__/harness/gateRegistry.ts`'s NO_GATE row
|
|
26
|
+
* for `xirp` for the full governance rationale, and
|
|
27
|
+
* `apps/docs/integrations/xirp.md` for user-facing docs.
|
|
28
|
+
*
|
|
29
|
+
* # Unconfirmed facts (flagged, not silently assumed)
|
|
30
|
+
*
|
|
31
|
+
* Xirp is a macOS-only beta app with no CLI/npm package and no public
|
|
32
|
+
* download available in this environment, so none of the detection paths
|
|
33
|
+
* below were live-verified against a real install — they follow this
|
|
34
|
+
* codebase's own convention for comparable tools (`~/.grok`, `~/.muse`,
|
|
35
|
+
* `<Name>.app` in `/Applications`) rather than a confirmed Xirp source. See
|
|
36
|
+
* TD-390.
|
|
37
|
+
*
|
|
38
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
39
|
+
* @module
|
|
40
|
+
*/
|
|
41
|
+
import type { IHarnessAdapter } from './types.js';
|
|
42
|
+
export declare const xirpAdapter: IHarnessAdapter;
|
|
43
|
+
//# sourceMappingURL=xirp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xirp.d.ts","sourceRoot":"","sources":["../../src/harness/xirp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAOjD,eAAO,MAAM,WAAW,EAAE,eAgDzB,CAAA"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xirp.ts — Spotify "Xirp" adapter (macOS-only desktop orchestrator, beta
|
|
3
|
+
* since 2026-08-11).
|
|
4
|
+
*
|
|
5
|
+
* Xirp is NOT itself an AI agent — it is an orchestrator that spawns one or
|
|
6
|
+
* more ALREADY-INSTALLED CLI coding agents (Claude Code, Codex, Gemini CLI)
|
|
7
|
+
* each inside its own tmux session and `git worktree`, so a developer can run
|
|
8
|
+
* several parallel agent sessions against the same repository without their
|
|
9
|
+
* working-tree state colliding. Per Xirp's own public FAQ, it preserves each
|
|
10
|
+
* wrapped harness's NATIVE, UNMODIFIED configuration — it introduces no
|
|
11
|
+
* config format of its own for Intutic to parse or gate.
|
|
12
|
+
*
|
|
13
|
+
* That means this adapter exists for DETECTION/reporting only. `writeConfig`
|
|
14
|
+
* writes nothing: whatever Intutic already writes for the wrapped harness
|
|
15
|
+
* (`claudeCode.ts` / `codex.ts` / `antigravity.ts`'s own adapters) is what
|
|
16
|
+
* governs a tool call made inside a Xirp-managed session — PROVIDED those
|
|
17
|
+
* files actually reach the git worktree Xirp creates for that session, which
|
|
18
|
+
* they do not by default: a worktree checkout has its own independent
|
|
19
|
+
* working tree, and project-tier governance files are untracked. Part B of
|
|
20
|
+
* the phase that added this adapter (`services/sync-daemon/src/lib/
|
|
21
|
+
* gitWorktrees.ts` + its wiring into `syncLoop.ts`) is what closes that gap;
|
|
22
|
+
* this adapter's only job is recognising that a Xirp-managed workspace is
|
|
23
|
+
* present at all, so `intutic status`/`intutic init` can report it.
|
|
24
|
+
*
|
|
25
|
+
* See `services/sync-daemon/__tests__/harness/gateRegistry.ts`'s NO_GATE row
|
|
26
|
+
* for `xirp` for the full governance rationale, and
|
|
27
|
+
* `apps/docs/integrations/xirp.md` for user-facing docs.
|
|
28
|
+
*
|
|
29
|
+
* # Unconfirmed facts (flagged, not silently assumed)
|
|
30
|
+
*
|
|
31
|
+
* Xirp is a macOS-only beta app with no CLI/npm package and no public
|
|
32
|
+
* download available in this environment, so none of the detection paths
|
|
33
|
+
* below were live-verified against a real install — they follow this
|
|
34
|
+
* codebase's own convention for comparable tools (`~/.grok`, `~/.muse`,
|
|
35
|
+
* `<Name>.app` in `/Applications`) rather than a confirmed Xirp source. See
|
|
36
|
+
* TD-390.
|
|
37
|
+
*
|
|
38
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
39
|
+
* @module
|
|
40
|
+
*/
|
|
41
|
+
import { access } from 'node:fs/promises';
|
|
42
|
+
import { join } from 'node:path';
|
|
43
|
+
import { homedir } from 'node:os';
|
|
44
|
+
import { HarnessType } from '@intutic/shared-types';
|
|
45
|
+
/** Best-effort assumed default — see module doc's "Unconfirmed facts". */
|
|
46
|
+
const XIRP_HOME_FRAGMENT = '.xirp';
|
|
47
|
+
/** Best-effort assumed default — see module doc's "Unconfirmed facts". */
|
|
48
|
+
const XIRP_APP_PATH = '/Applications/Xirp.app';
|
|
49
|
+
export const xirpAdapter = {
|
|
50
|
+
type: HarnessType.XIRP,
|
|
51
|
+
// No config file of its own — see module doc. Matches the goose/cline-
|
|
52
|
+
// style convention of an empty HARNESS_CONFIG_FILES entry for a harness
|
|
53
|
+
// whose governance-relevant writes are not a single named file (in Xirp's
|
|
54
|
+
// case: no writes of its own at all).
|
|
55
|
+
configFileName: '',
|
|
56
|
+
async detect(_workspaceRoot) {
|
|
57
|
+
// Xirp is macOS-only (per its own FAQ) — guard before touching any
|
|
58
|
+
// macOS-specific path so this adapter is a clean no-op elsewhere.
|
|
59
|
+
if (process.platform !== 'darwin')
|
|
60
|
+
return false;
|
|
61
|
+
// 1. `$XIRP_HOME` env var, if the user (or Xirp itself) has set one.
|
|
62
|
+
const envHome = process.env.XIRP_HOME;
|
|
63
|
+
if (envHome) {
|
|
64
|
+
try {
|
|
65
|
+
await access(envHome);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
catch { /* fall through */ }
|
|
69
|
+
}
|
|
70
|
+
// 2. `~/.xirp` — assumed default install/state directory.
|
|
71
|
+
try {
|
|
72
|
+
await access(join(homedir(), XIRP_HOME_FRAGMENT));
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
catch { /* fall through */ }
|
|
76
|
+
// 3. `Xirp.app` installed in /Applications.
|
|
77
|
+
try {
|
|
78
|
+
await access(XIRP_APP_PATH);
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
catch { /* fall through */ }
|
|
82
|
+
return false;
|
|
83
|
+
},
|
|
84
|
+
// Xirp introduces no config format of its own — see module doc. Nothing to
|
|
85
|
+
// write; the wrapped harness's own adapter is what writes real governance
|
|
86
|
+
// content, once per worktree Xirp creates (the sync daemon's worktree
|
|
87
|
+
// propagation, not this adapter).
|
|
88
|
+
async writeConfig(_workspaceRoot, _sops, _proxyUrl) {
|
|
89
|
+
return null;
|
|
90
|
+
},
|
|
91
|
+
async readCurrentHash(_workspaceRoot) {
|
|
92
|
+
return null;
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=xirp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xirp.js","sourceRoot":"","sources":["../../src/harness/xirp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,OAAO,CAAA;AAClC,0EAA0E;AAC1E,MAAM,aAAa,GAAG,wBAAwB,CAAA;AAE9C,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,uEAAuE;IACvE,wEAAwE;IACxE,0EAA0E;IAC1E,sCAAsC;IACtC,cAAc,EAAE,EAAE;IAElB,KAAK,CAAC,MAAM,CAAC,cAAsB;QACjC,mEAAmE;QACnE,kEAAkE;QAClE,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAA;QAE/C,qEAAqE;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;gBACrB,OAAO,IAAI,CAAA;YACb,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAA;YACjD,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAE9B,4CAA4C;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAE9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,kCAAkC;IAClC,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"}
|
package/dist/lib/api.d.ts
CHANGED
|
@@ -33,10 +33,49 @@ export interface ApiClient {
|
|
|
33
33
|
}>;
|
|
34
34
|
/** Generic GET request for arbitrary API paths. */
|
|
35
35
|
get<T>(path: string): Promise<T>;
|
|
36
|
+
/**
|
|
37
|
+
* GET that hands back the status instead of throwing on it.
|
|
38
|
+
*
|
|
39
|
+
* For endpoints where a non-2xx *is* the answer: `/api/v1/integrity/chain`
|
|
40
|
+
* returns 409 with the whole chain walk in the body when a root names a
|
|
41
|
+
* predecessor that is not there. `get()` throws on any non-2xx, which would
|
|
42
|
+
* leave the caller digging the break out of an error message.
|
|
43
|
+
*/
|
|
44
|
+
getWithStatus<T>(path: string): Promise<{
|
|
45
|
+
status: number;
|
|
46
|
+
body: T;
|
|
47
|
+
}>;
|
|
36
48
|
/** Generic POST request for arbitrary API paths. */
|
|
37
49
|
post<T>(path: string, body?: unknown): Promise<T>;
|
|
50
|
+
/**
|
|
51
|
+
* POST that hands back the status instead of throwing on it.
|
|
52
|
+
*
|
|
53
|
+
* Same rationale as `getWithStatus`: `POST /api/v1/wasm-rules/:id/replay`
|
|
54
|
+
* returns 422 with `{error: 'not_enough_traffic', contextCount, minRequired}`
|
|
55
|
+
* when the workspace has too little sampled history, and that body is the
|
|
56
|
+
* answer a caller needs to report, not a failure to unwrap and discard.
|
|
57
|
+
*/
|
|
58
|
+
postWithStatus<T>(path: string, body?: unknown): Promise<{
|
|
59
|
+
status: number;
|
|
60
|
+
body: T;
|
|
61
|
+
}>;
|
|
62
|
+
/**
|
|
63
|
+
* Multipart POST that hands back the status.
|
|
64
|
+
*
|
|
65
|
+
* `POST /api/v1/rule-candidates/:id/bundle` reads a `file` field and a
|
|
66
|
+
* `source_sha256` field; `post()` JSON-encodes, so it cannot carry either.
|
|
67
|
+
* The content type is left to `fetch`, which writes the boundary.
|
|
68
|
+
*/
|
|
69
|
+
postForm<T>(path: string, form: FormData): Promise<{
|
|
70
|
+
status: number;
|
|
71
|
+
body: T;
|
|
72
|
+
}>;
|
|
38
73
|
/** Generic PUT request for arbitrary API paths. */
|
|
39
74
|
put<T>(path: string, body?: unknown): Promise<T>;
|
|
75
|
+
/** Generic PATCH request for arbitrary API paths. */
|
|
76
|
+
patch<T>(path: string, body?: unknown): Promise<T>;
|
|
77
|
+
/** Generic DELETE request for arbitrary API paths. */
|
|
78
|
+
del<T>(path: string, body?: unknown): Promise<T>;
|
|
40
79
|
}
|
|
41
80
|
/**
|
|
42
81
|
* Create an API client bound to a control plane URL and API key.
|
|
@@ -45,4 +84,33 @@ export interface ApiClient {
|
|
|
45
84
|
* @param apiKey - API key (vk_*) or JWT access token
|
|
46
85
|
*/
|
|
47
86
|
export declare function createApiClient(controlPlaneUrl: string, apiKey: string): ApiClient;
|
|
87
|
+
/**
|
|
88
|
+
* Decodes a TOON payload, normalising "not TOON" to an empty list.
|
|
89
|
+
*
|
|
90
|
+
* The format lives in `@intutic/shared-types`, imported rather than copied. It
|
|
91
|
+
* used to be a private `splitCells` here, byte-identical to one in the dashboard
|
|
92
|
+
* and a third in the control plane, with a comment in each saying they must not
|
|
93
|
+
* diverge. They did — an escaping fix reached the encoder and the control
|
|
94
|
+
* plane's own decoder, which nothing calls, while these two kept the old code
|
|
95
|
+
* and a CRITICAL incident carried on printing as its trace id.
|
|
96
|
+
*
|
|
97
|
+
* The shared decoder returns `null` for input that is not TOON; this surface has
|
|
98
|
+
* always returned a list, and its caller assigns the result straight onto the
|
|
99
|
+
* response object, so the shape is preserved here rather than pushed outward.
|
|
100
|
+
*/
|
|
101
|
+
export declare function toonDecode(toon: string): Record<string, unknown>[];
|
|
102
|
+
/**
|
|
103
|
+
* Move a TOON-encoded list out of its envelope and onto `listProperty`.
|
|
104
|
+
*
|
|
105
|
+
* Extracted from `request` because it was inline and therefore untestable, and
|
|
106
|
+
* it was wrong: the old code assigned the decoded rows and only THEN deleted
|
|
107
|
+
* `data`. `listProperty` names where the rows should land, and for
|
|
108
|
+
* `/api/v1/incidents` that name IS `data` — so the rows were written and
|
|
109
|
+
* immediately deleted, and any incidents response over the 20-row TOON
|
|
110
|
+
* threshold arrived as `{meta:{total:22}}`. Zero rows, no error.
|
|
111
|
+
* `/api/v1/traces` escaped only because its listProperty is `traces`.
|
|
112
|
+
*
|
|
113
|
+
* Non-TOON bodies pass through untouched.
|
|
114
|
+
*/
|
|
115
|
+
export declare function unwrapToonEnvelope(data: unknown): unknown;
|
|
48
116
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACd,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACd,MAAM,uBAAuB,CAAA;AAI9B,kDAAkD;AAClD,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC5D,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpF,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpE,KAAK,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxF,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpJ,mDAAmD;IACnD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAChC;;;;;;;OAOG;IACH,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IACpE,oDAAoD;IACpD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACjD;;;;;;;OAOG;IACH,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IACrF;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IAC/E,mDAAmD;IACnD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAChD,qDAAqD;IACrD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAClD,sDAAsD;IACtD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACjD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAmHlF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAElE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAmBzD"}
|