@intutic/cli 1.9.0 → 1.10.1
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 @@
|
|
|
1
|
+
{"version":3,"file":"crewai.js","sourceRoot":"","sources":["../../src/harness/crewai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;IAC/C,IAAI,EAAE,WAAW,CAAC,MAAM;IACxB,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,UAAU,EAAE,wBAAwB;IACpC,UAAU,EAAE,yDAAyD;IACrE,YAAY,EACV,mFAAmF;QACnF,iBAAiB;IACnB,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Harness detector — auto-detect which AI harnesses are present.
|
|
3
3
|
*
|
|
4
|
-
* Instantiates all
|
|
4
|
+
* Instantiates all 40 adapters and checks each for presence in
|
|
5
5
|
* the workspace. Returns a DetectedHarness array for reporting.
|
|
6
6
|
*
|
|
7
7
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/harness/detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/harness/detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AA4CjD,uCAAuC;AACvC,eAAO,MAAM,YAAY,EAAE,eAAe,EA0CzC,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAgBvF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEpE"}
|
package/dist/harness/detector.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Harness detector — auto-detect which AI harnesses are present.
|
|
3
3
|
*
|
|
4
|
-
* Instantiates all
|
|
4
|
+
* Instantiates all 40 adapters and checks each for presence in
|
|
5
5
|
* the workspace. Returns a DetectedHarness array for reporting.
|
|
6
6
|
*
|
|
7
7
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
@@ -26,6 +26,29 @@ import { openclawAdapter } from './openclaw.js';
|
|
|
26
26
|
import { piAdapter } from './pi.js';
|
|
27
27
|
import { hermesAdapter } from './hermes.js';
|
|
28
28
|
import { githubCopilotAdapter } from './githubCopilot.js';
|
|
29
|
+
import { langgraphAdapter } from './langgraph.js';
|
|
30
|
+
import { museAdapter } from './muse.js';
|
|
31
|
+
import { grokAdapter } from './grok.js';
|
|
32
|
+
import { opencodeAdapter } from './opencode.js';
|
|
33
|
+
import { dshAdapter } from './dsh.js';
|
|
34
|
+
import { xirpAdapter } from './xirp.js';
|
|
35
|
+
import { agenticOrchestratorAdapter } from './agenticOrchestrator.js';
|
|
36
|
+
import { langchainAdapter } from './langchain.js';
|
|
37
|
+
import { crewaiAdapter } from './crewai.js';
|
|
38
|
+
import { autogenAdapter } from './autogen.js';
|
|
39
|
+
import { ag2Adapter } from './ag2.js';
|
|
40
|
+
import { googleAdkAdapter } from './googleAdk.js';
|
|
41
|
+
import { openaiAgentsAdapter } from './openaiAgents.js';
|
|
42
|
+
import { pydanticAiAdapter } from './pydanticAi.js';
|
|
43
|
+
import { smolagentsAdapter } from './smolagents.js';
|
|
44
|
+
import { strandsAdapter } from './strands.js';
|
|
45
|
+
import { mastraAdapter } from './mastra.js';
|
|
46
|
+
import { vercelAiSdkAdapter } from './vercelAiSdk.js';
|
|
47
|
+
import { eveAdapter } from './eve.js';
|
|
48
|
+
import { trueforgeAdapter } from './trueforge.js';
|
|
49
|
+
import { aiSdkHarnessAdapter } from './aiSdkHarness.js';
|
|
50
|
+
import { aiSdkWorkflowAdapter } from './aiSdkWorkflow.js';
|
|
51
|
+
import { agentcoreAdapter } from './agentcore.js';
|
|
29
52
|
import { join } from 'node:path';
|
|
30
53
|
/** All registered harness adapters. */
|
|
31
54
|
export const ALL_ADAPTERS = [
|
|
@@ -47,6 +70,29 @@ export const ALL_ADAPTERS = [
|
|
|
47
70
|
piAdapter,
|
|
48
71
|
hermesAdapter,
|
|
49
72
|
githubCopilotAdapter,
|
|
73
|
+
langgraphAdapter,
|
|
74
|
+
museAdapter,
|
|
75
|
+
grokAdapter,
|
|
76
|
+
opencodeAdapter,
|
|
77
|
+
dshAdapter,
|
|
78
|
+
xirpAdapter,
|
|
79
|
+
agenticOrchestratorAdapter,
|
|
80
|
+
langchainAdapter,
|
|
81
|
+
crewaiAdapter,
|
|
82
|
+
autogenAdapter,
|
|
83
|
+
ag2Adapter,
|
|
84
|
+
googleAdkAdapter,
|
|
85
|
+
openaiAgentsAdapter,
|
|
86
|
+
pydanticAiAdapter,
|
|
87
|
+
smolagentsAdapter,
|
|
88
|
+
strandsAdapter,
|
|
89
|
+
mastraAdapter,
|
|
90
|
+
vercelAiSdkAdapter,
|
|
91
|
+
eveAdapter,
|
|
92
|
+
trueforgeAdapter,
|
|
93
|
+
aiSdkHarnessAdapter,
|
|
94
|
+
aiSdkWorkflowAdapter,
|
|
95
|
+
agentcoreAdapter,
|
|
50
96
|
];
|
|
51
97
|
/**
|
|
52
98
|
* Detect which harnesses are present in a workspace.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/harness/detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,SAAS;IACT,aAAa;IACb,oBAAoB;
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/harness/detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,SAAS;IACT,aAAa;IACb,oBAAoB;IACpB,gBAAgB;IAChB,WAAW;IACX,WAAW;IACX,eAAe;IACf,UAAU;IACV,WAAW;IACX,0BAA0B;IAC1B,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,UAAU;IACV,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,cAAc;IACd,aAAa;IACb,kBAAkB;IAClB,UAAU;IACV,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,gBAAgB;CACjB,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,aAAqB;IACzD,MAAM,OAAO,GAAsB,EAAE,CAAA;IAErC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACpD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,cAAc;gBAChC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC;gBAC7C,CAAC,CAAC,EAAE;YACN,QAAQ;YACR,WAAW,EAAE,IAAI;SAClB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAClD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dsh.ts — DeepSeek "dsh" adapter (binary `dsh`, `@deepseek-ai/dsh`,
|
|
3
|
+
* developer preview since 2026-08-13).
|
|
4
|
+
*
|
|
5
|
+
* dsh is plugin-first (Cordis) and has no workspace-relative rules file this
|
|
6
|
+
* adapter could write governance text into (see `types.ts`'s
|
|
7
|
+
* `HARNESS_CONFIG_FILES.dsh`). The governance-critical half — the
|
|
8
|
+
* `tools/pre-execute` Cordis plugin registration (`cordis.patch.yml` per
|
|
9
|
+
* profile), the profile's `@intutic/gate` dependency, and the `settings.yaml`
|
|
10
|
+
* `llm-pi-ai` proxy route — is delegated entirely to
|
|
11
|
+
* `@intutic/sync-daemon`'s `dshHooks.ts`, the same split Goose/Muse Code's
|
|
12
|
+
* adapters use for their own plugin installation.
|
|
13
|
+
*
|
|
14
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
import type { IHarnessAdapter } from './types.js';
|
|
18
|
+
export declare const dshAdapter: IHarnessAdapter;
|
|
19
|
+
//# sourceMappingURL=dsh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsh.d.ts","sourceRoot":"","sources":["../../src/harness/dsh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAGjD,eAAO,MAAM,UAAU,EAAE,eA2ExB,CAAA"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dsh.ts — DeepSeek "dsh" adapter (binary `dsh`, `@deepseek-ai/dsh`,
|
|
3
|
+
* developer preview since 2026-08-13).
|
|
4
|
+
*
|
|
5
|
+
* dsh is plugin-first (Cordis) and has no workspace-relative rules file this
|
|
6
|
+
* adapter could write governance text into (see `types.ts`'s
|
|
7
|
+
* `HARNESS_CONFIG_FILES.dsh`). The governance-critical half — the
|
|
8
|
+
* `tools/pre-execute` Cordis plugin registration (`cordis.patch.yml` per
|
|
9
|
+
* profile), the profile's `@intutic/gate` dependency, and the `settings.yaml`
|
|
10
|
+
* `llm-pi-ai` proxy route — is delegated entirely to
|
|
11
|
+
* `@intutic/sync-daemon`'s `dshHooks.ts`, the same split Goose/Muse Code's
|
|
12
|
+
* adapters use for their own plugin installation.
|
|
13
|
+
*
|
|
14
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
import { access } from 'node:fs/promises';
|
|
18
|
+
import { join } from 'node:path';
|
|
19
|
+
import { HarnessType } from '@intutic/shared-types';
|
|
20
|
+
import { writeDshHooks, resolveDshHome, listDshProfileDirs } from '@intutic/sync-daemon/harness/dshHooks';
|
|
21
|
+
export const dshAdapter = {
|
|
22
|
+
type: HarnessType.DEEPSEEK_HARNESS,
|
|
23
|
+
// No canonical workspace-relative config file — see types.ts's comment on
|
|
24
|
+
// this harness's HARNESS_CONFIG_FILES entry. detect/writeConfig/
|
|
25
|
+
// readCurrentHash below resolve dsh's real, $DSH_HOME-anchored paths
|
|
26
|
+
// directly, the same way goose.ts bypasses configFileName's
|
|
27
|
+
// workspaceRoot-join for its own home-anchored config.
|
|
28
|
+
configFileName: '',
|
|
29
|
+
async detect(_workspaceRoot) {
|
|
30
|
+
const dshHome = resolveDshHome();
|
|
31
|
+
// 1. `$DSH_HOME`/`~/.dsh` exists at all (settings.yaml, .credentials.yaml,
|
|
32
|
+
// or profiles/ — any one of them means dsh has been run here before).
|
|
33
|
+
for (const marker of ['settings.yaml', '.credentials.yaml', 'profiles']) {
|
|
34
|
+
try {
|
|
35
|
+
await access(join(dshHome, marker));
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
/* not here */
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// 2. `@deepseek-ai/dsh` on PATH (npm/pnpm global bin) or a local npx
|
|
43
|
+
// cache entry — the same PATH-scan convention grok.ts/muse.ts use.
|
|
44
|
+
const pathDirs = (process.env.PATH ?? '').split(process.platform === 'win32' ? ';' : ':');
|
|
45
|
+
try {
|
|
46
|
+
const { accessSync } = await import('node:fs');
|
|
47
|
+
for (const dir of pathDirs) {
|
|
48
|
+
try {
|
|
49
|
+
accessSync(join(dir, 'dsh'));
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
/* not here */
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
/* ignore */
|
|
59
|
+
}
|
|
60
|
+
// 3. npx's package cache (`~/.npm/_npx/*/node_modules/@deepseek-ai/dsh`) —
|
|
61
|
+
// a developer who has only ever run `npx @deepseek-ai/dsh` without a
|
|
62
|
+
// global install still leaves this behind. Best-effort: npx caches by
|
|
63
|
+
// a content hash directory name this adapter cannot predict, so this
|
|
64
|
+
// only catches the common `~/.npm/_npx` root existing AND dsh already
|
|
65
|
+
// having created `$DSH_HOME` (marker 1 above already covers the
|
|
66
|
+
// "actually run at least once" case) — listed for completeness with
|
|
67
|
+
// the CLI adapters this mirrors, not as an independent signal.
|
|
68
|
+
return false;
|
|
69
|
+
},
|
|
70
|
+
async writeConfig(workspaceRoot, _sops, proxyUrl) {
|
|
71
|
+
// No rules/markdown file for dsh — `sops` are not consulted here (same
|
|
72
|
+
// "no text-rules file" posture as goose.ts's own adapter). The plugin
|
|
73
|
+
// registration + settings.yaml merge is the entirety of what this
|
|
74
|
+
// harness gets, and it happens for every existing profile, not one file.
|
|
75
|
+
await writeDshHooks(workspaceRoot, proxyUrl, '');
|
|
76
|
+
const dshHome = resolveDshHome();
|
|
77
|
+
const profiles = await listDshProfileDirs(dshHome);
|
|
78
|
+
// Representative path for the connect-summary UI, matching the "return
|
|
79
|
+
// the path written" contract every other adapter follows — the first
|
|
80
|
+
// profile's patch file when one exists, otherwise the $DSH_HOME root
|
|
81
|
+
// itself (nothing was written yet; the next sync cycle picks it up once
|
|
82
|
+
// a profile exists, per dshHooks.ts's own module doc).
|
|
83
|
+
return profiles.length > 0 ? join(profiles[0], 'cordis.patch.yml') : dshHome;
|
|
84
|
+
},
|
|
85
|
+
async readCurrentHash(_workspaceRoot) {
|
|
86
|
+
// No single canonical file to hash — dsh may have zero, one, or several
|
|
87
|
+
// profiles, each with its own cordis.patch.yml. Matching goose.ts/
|
|
88
|
+
// cline.ts's own "no rules file" precedent, this reports no hash rather
|
|
89
|
+
// than picking one arbitrary profile's file to represent all of them.
|
|
90
|
+
return null;
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=dsh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsh.js","sourceRoot":"","sources":["../../src/harness/dsh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;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,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAEzG,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,IAAI,EAAE,WAAW,CAAC,gBAAgB;IAClC,0EAA0E;IAC1E,iEAAiE;IACjE,qEAAqE;IACrE,4DAA4D;IAC5D,uDAAuD;IACvD,cAAc,EAAE,EAAE;IAElB,KAAK,CAAC,MAAM,CAAC,cAAsB;QACjC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAEhC,2EAA2E;QAC3E,yEAAyE;QACzE,KAAK,MAAM,MAAM,IAAI,CAAC,eAAe,EAAE,mBAAmB,EAAE,UAAU,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;gBACnC,OAAO,IAAI,CAAA;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,sEAAsE;QACtE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACzF,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;YAC9C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;oBAC5B,OAAO,IAAI,CAAA;gBACb,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,mEAAmE;QACnE,uEAAuE;QACvE,kEAAkE;QAClE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,KAAqB,EAAE,QAAgB;QAC9E,uEAAuE;QACvE,sEAAsE;QACtE,kEAAkE;QAClE,yEAAyE;QACzE,MAAM,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QAEhD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAClD,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,wEAAwE;QACxE,uDAAuD;QACvD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAC/E,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,wEAAwE;QACxE,mEAAmE;QACnE,wEAAwE;QACxE,sEAAsE;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* eve.ts — Vercel "eve" adapter (env-file config, SDK-side gate).
|
|
3
|
+
*
|
|
4
|
+
* Same family as mastra.ts/vercelAiSdk.ts (see jsSdkGatedAdapter.ts), with
|
|
5
|
+
* one difference the shared builder cannot express: detection is a COMPOUND
|
|
6
|
+
* check. The npm package name `eve` is short and generic enough that a
|
|
7
|
+
* dependency check alone over-detects, and `agent/` is a directory name half
|
|
8
|
+
* the JS ecosystem uses for something — so this adapter requires BOTH the
|
|
9
|
+
* `eve` dependency in `package.json` AND the framework's characteristic
|
|
10
|
+
* `agent/` directory at the workspace root (eve is filesystem-first: the
|
|
11
|
+
* agent IS that directory — `agent/instructions.md`, `agent/tools/*.ts`,
|
|
12
|
+
* `agent/hooks/`, ... — per eve's own getting-started layout). Implemented
|
|
13
|
+
* by wrapping the builder's adapter and tightening its `detect`, rather
|
|
14
|
+
* than growing the builder a one-consumer knob.
|
|
15
|
+
*
|
|
16
|
+
* No version floor: eve is pre-1.0 (0.39.x at integration time) and the
|
|
17
|
+
* `approval` surface `@intutic/gate/eve` targets has no known major-version
|
|
18
|
+
* boundary to gate on — the churn risk is handled by the gate package's own
|
|
19
|
+
* pinned devDependency verification instead (TD-410).
|
|
20
|
+
*
|
|
21
|
+
* PREVIEW-CHURN NOTE (same shield the dsh integration established): eve is a
|
|
22
|
+
* fast-moving preview product. `@intutic/gate/eve` was verified against
|
|
23
|
+
* eve@0.39.1's shipped `.d.ts` — see that module's doc for exactly what was
|
|
24
|
+
* confirmed vs. assumed, and docs/TECH_DEBT.md TD-410/TD-411/TD-412.
|
|
25
|
+
*
|
|
26
|
+
* LLM-egress note carried into the generated `.env.intutic`: eve routes
|
|
27
|
+
* models through the Vercel AI Gateway by default, whose wire protocol the
|
|
28
|
+
* Intutic proxy does not parse — and like the plain Vercel AI SDK it is
|
|
29
|
+
* built on, eve has no env-var base-URL override. Only the in-code
|
|
30
|
+
* direct-provider path (`defineAgent({ model: withIntuticProxy(...)(...) })`)
|
|
31
|
+
* routes through the proxy. See TD-412 and
|
|
32
|
+
* `apps/docs/integrations/eve.md`.
|
|
33
|
+
*
|
|
34
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
35
|
+
* @module
|
|
36
|
+
*/
|
|
37
|
+
import type { IHarnessAdapter } from './types.js';
|
|
38
|
+
/** Vercel eve adapter — the builder's adapter with a compound `detect`. */
|
|
39
|
+
export declare const eveAdapter: IHarnessAdapter;
|
|
40
|
+
//# sourceMappingURL=eve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eve.d.ts","sourceRoot":"","sources":["../../src/harness/eve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAiBjD,2EAA2E;AAC3E,eAAO,MAAM,UAAU,EAAE,eAWxB,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* eve.ts — Vercel "eve" adapter (env-file config, SDK-side gate).
|
|
3
|
+
*
|
|
4
|
+
* Same family as mastra.ts/vercelAiSdk.ts (see jsSdkGatedAdapter.ts), with
|
|
5
|
+
* one difference the shared builder cannot express: detection is a COMPOUND
|
|
6
|
+
* check. The npm package name `eve` is short and generic enough that a
|
|
7
|
+
* dependency check alone over-detects, and `agent/` is a directory name half
|
|
8
|
+
* the JS ecosystem uses for something — so this adapter requires BOTH the
|
|
9
|
+
* `eve` dependency in `package.json` AND the framework's characteristic
|
|
10
|
+
* `agent/` directory at the workspace root (eve is filesystem-first: the
|
|
11
|
+
* agent IS that directory — `agent/instructions.md`, `agent/tools/*.ts`,
|
|
12
|
+
* `agent/hooks/`, ... — per eve's own getting-started layout). Implemented
|
|
13
|
+
* by wrapping the builder's adapter and tightening its `detect`, rather
|
|
14
|
+
* than growing the builder a one-consumer knob.
|
|
15
|
+
*
|
|
16
|
+
* No version floor: eve is pre-1.0 (0.39.x at integration time) and the
|
|
17
|
+
* `approval` surface `@intutic/gate/eve` targets has no known major-version
|
|
18
|
+
* boundary to gate on — the churn risk is handled by the gate package's own
|
|
19
|
+
* pinned devDependency verification instead (TD-410).
|
|
20
|
+
*
|
|
21
|
+
* PREVIEW-CHURN NOTE (same shield the dsh integration established): eve is a
|
|
22
|
+
* fast-moving preview product. `@intutic/gate/eve` was verified against
|
|
23
|
+
* eve@0.39.1's shipped `.d.ts` — see that module's doc for exactly what was
|
|
24
|
+
* confirmed vs. assumed, and docs/TECH_DEBT.md TD-410/TD-411/TD-412.
|
|
25
|
+
*
|
|
26
|
+
* LLM-egress note carried into the generated `.env.intutic`: eve routes
|
|
27
|
+
* models through the Vercel AI Gateway by default, whose wire protocol the
|
|
28
|
+
* Intutic proxy does not parse — and like the plain Vercel AI SDK it is
|
|
29
|
+
* built on, eve has no env-var base-URL override. Only the in-code
|
|
30
|
+
* direct-provider path (`defineAgent({ model: withIntuticProxy(...)(...) })`)
|
|
31
|
+
* routes through the proxy. See TD-412 and
|
|
32
|
+
* `apps/docs/integrations/eve.md`.
|
|
33
|
+
*
|
|
34
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
35
|
+
* @module
|
|
36
|
+
*/
|
|
37
|
+
import { join } from 'node:path';
|
|
38
|
+
import { stat } from 'node:fs/promises';
|
|
39
|
+
import { HarnessType } from '@intutic/shared-types';
|
|
40
|
+
import { makeJsSdkGatedAdapter } from './jsSdkGatedAdapter.js';
|
|
41
|
+
const base = makeJsSdkGatedAdapter({
|
|
42
|
+
type: HarnessType.EVE,
|
|
43
|
+
label: 'eve',
|
|
44
|
+
requires: [{ name: 'eve' }],
|
|
45
|
+
npmInstall: '@intutic/gate',
|
|
46
|
+
importLine: "import { intuticApproval, intuticAuditHooks } from '@intutic/gate/eve'",
|
|
47
|
+
usageSummary: "defineTool({ ..., approval: intuticApproval() }) per tool (and intuticConnectionApproval() " +
|
|
48
|
+
'per MCP/OpenAPI connection) — eve has no agent-level default approval field. NOTE: ' +
|
|
49
|
+
"eve's default AI Gateway model routing is NOT proxy-governable; the vars above only " +
|
|
50
|
+
'reach a direct-provider model built in code via withIntuticProxy(...). PREVIEW product.',
|
|
51
|
+
docsSlug: 'eve',
|
|
52
|
+
});
|
|
53
|
+
/** Vercel eve adapter — the builder's adapter with a compound `detect`. */
|
|
54
|
+
export const eveAdapter = {
|
|
55
|
+
...base,
|
|
56
|
+
async detect(workspaceRoot) {
|
|
57
|
+
if (!(await base.detect(workspaceRoot)))
|
|
58
|
+
return false;
|
|
59
|
+
try {
|
|
60
|
+
return (await stat(join(workspaceRoot, 'agent'))).isDirectory();
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return false; // no agent/ directory — an `eve` dep alone is not an eve app
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=eve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eve.js","sourceRoot":"","sources":["../../src/harness/eve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACjC,IAAI,EAAE,WAAW,CAAC,GAAG;IACrB,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3B,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,wEAAwE;IACpF,YAAY,EACV,6FAA6F;QAC7F,qFAAqF;QACrF,sFAAsF;QACtF,yFAAyF;IAC3F,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAA;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,GAAG,IAAI;IAEP,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;QACrD,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA,CAAC,6DAA6D;QAC5E,CAAC;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* googleAdk.ts — Google Agent Development Kit (ADK) adapter (env-file
|
|
3
|
+
* config, SDK-side gate).
|
|
4
|
+
*
|
|
5
|
+
* Same shape as langgraph.ts (see sdkGatedAdapter.ts). ADK tools run as
|
|
6
|
+
* plain Python callables inside the agent's own process — no on-disk
|
|
7
|
+
* hook/config file exists to gate a call, so the blocking gate ships
|
|
8
|
+
* SDK-side via `intutic_clawde.gate.adapters.google_adk.IntuticPlugin`,
|
|
9
|
+
* whose `before_tool_callback` is ADK's own documented veto point: when it
|
|
10
|
+
* returns a non-None dict, the real tool call is skipped and that dict
|
|
11
|
+
* becomes the (synthetic) tool result (verified live against
|
|
12
|
+
* google-adk==2.7.1).
|
|
13
|
+
*
|
|
14
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
export declare const googleAdkAdapter: import("./types.js").IHarnessAdapter;
|
|
18
|
+
//# sourceMappingURL=googleAdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"googleAdk.d.ts","sourceRoot":"","sources":["../../src/harness/googleAdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,eAAO,MAAM,gBAAgB,sCAU3B,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* googleAdk.ts — Google Agent Development Kit (ADK) adapter (env-file
|
|
3
|
+
* config, SDK-side gate).
|
|
4
|
+
*
|
|
5
|
+
* Same shape as langgraph.ts (see sdkGatedAdapter.ts). ADK tools run as
|
|
6
|
+
* plain Python callables inside the agent's own process — no on-disk
|
|
7
|
+
* hook/config file exists to gate a call, so the blocking gate ships
|
|
8
|
+
* SDK-side via `intutic_clawde.gate.adapters.google_adk.IntuticPlugin`,
|
|
9
|
+
* whose `before_tool_callback` is ADK's own documented veto point: when it
|
|
10
|
+
* returns a non-None dict, the real tool call is skipped and that dict
|
|
11
|
+
* becomes the (synthetic) tool result (verified live against
|
|
12
|
+
* google-adk==2.7.1).
|
|
13
|
+
*
|
|
14
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
import { HarnessType } from '@intutic/shared-types';
|
|
18
|
+
import { makeSdkGatedAdapter } from './sdkGatedAdapter.js';
|
|
19
|
+
export const googleAdkAdapter = makeSdkGatedAdapter({
|
|
20
|
+
type: HarnessType.GOOGLE_ADK,
|
|
21
|
+
label: 'Google ADK',
|
|
22
|
+
keywords: ['google-adk'],
|
|
23
|
+
pipInstall: 'intutic-clawde[google-adk]',
|
|
24
|
+
importLine: 'from intutic_clawde.gate.adapters.google_adk import IntuticPlugin',
|
|
25
|
+
usageSummary: 'IntuticPlugin.before_tool_callback (App(plugins=[...]) — or the per-agent ' +
|
|
26
|
+
'before_tool_callback fallback) refuses denied calls before the tool body runs.',
|
|
27
|
+
docsSlug: 'google-adk',
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=googleAdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"googleAdk.js","sourceRoot":"","sources":["../../src/harness/googleAdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;IAClD,IAAI,EAAE,WAAW,CAAC,UAAU;IAC5B,KAAK,EAAE,YAAY;IACnB,QAAQ,EAAE,CAAC,YAAY,CAAC;IACxB,UAAU,EAAE,4BAA4B;IACxC,UAAU,EAAE,mEAAmE;IAC/E,YAAY,EACV,4EAA4E;QAC5E,gFAAgF;IAClF,QAAQ,EAAE,YAAY;CACvB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goose.d.ts","sourceRoot":"","sources":["../../src/harness/goose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"goose.d.ts","sourceRoot":"","sources":["../../src/harness/goose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAOjD,eAAO,MAAM,YAAY,EAAE,eA8B1B,CAAA"}
|
package/dist/harness/goose.js
CHANGED
|
@@ -28,7 +28,11 @@ export const gooseAdapter = {
|
|
|
28
28
|
return false;
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
-
|
|
31
|
+
// `_sops` is unused by design, unlike every markdown adapter: Goose has no
|
|
32
|
+
// text-rules file to write them to — `HARNESS_CONFIG_FILES.goose` is empty,
|
|
33
|
+
// and its governance is the PreToolUse plugin, whose gate is compiled from
|
|
34
|
+
// the shared protected-path list rather than from this array.
|
|
35
|
+
async writeConfig(_workspaceRoot, _sops, proxyUrl) {
|
|
32
36
|
// Write governance plugin + config proxy URL (gooseHooks handles both)
|
|
33
37
|
await writeGooseHooks(proxyUrl);
|
|
34
38
|
return GOOSE_CONFIG;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goose.js","sourceRoot":"","sources":["../../src/harness/goose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"goose.js","sourceRoot":"","sources":["../../src/harness/goose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;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;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAEzE,MAAM,WAAW,GAAG,2BAA2B,CAAA;AAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,WAAW,CAAC,KAAK;IACvB,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,cAAsB;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;YAC1B,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,8DAA8D;IAC9D,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,KAAqB,EAAE,QAAgB;QAC/E,uEAAuE;QACvE,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC/B,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* grok.ts — xAI Grok Build adapter (binary `grok`, GA 2026-05, open-sourced
|
|
3
|
+
* 2026-07-15).
|
|
4
|
+
*
|
|
5
|
+
* Detects the Grok Build CLI, writes AGENTS.md governance text (the same
|
|
6
|
+
* cross-tool rules-file convention Codex/Amp read), and injects the Intutic
|
|
7
|
+
* governance hook (`grokHooks.ts` — PreToolUse, no matcher, confirmed
|
|
8
|
+
* `{"decision":"deny","reason":"..."}` stdout contract) plus the
|
|
9
|
+
* `config.toml` `[model.*]` `base_url` merge.
|
|
10
|
+
*
|
|
11
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import type { IHarnessAdapter } from './types.js';
|
|
15
|
+
export declare const grokAdapter: IHarnessAdapter;
|
|
16
|
+
//# sourceMappingURL=grok.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../src/harness/grok.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAOjD,eAAO,MAAM,WAAW,EAAE,eA0CzB,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* grok.ts — xAI Grok Build adapter (binary `grok`, GA 2026-05, open-sourced
|
|
3
|
+
* 2026-07-15).
|
|
4
|
+
*
|
|
5
|
+
* Detects the Grok Build CLI, writes AGENTS.md governance text (the same
|
|
6
|
+
* cross-tool rules-file convention Codex/Amp read), and injects the Intutic
|
|
7
|
+
* governance hook (`grokHooks.ts` — PreToolUse, no matcher, confirmed
|
|
8
|
+
* `{"decision":"deny","reason":"..."}` stdout contract) plus the
|
|
9
|
+
* `config.toml` `[model.*]` `base_url` merge.
|
|
10
|
+
*
|
|
11
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import { access, writeFile, rename, mkdir } from 'node:fs/promises';
|
|
15
|
+
import { join, dirname } from 'node:path';
|
|
16
|
+
import { homedir } from 'node:os';
|
|
17
|
+
import { HarnessType } from '@intutic/shared-types';
|
|
18
|
+
import { hashFile } from '../lib/hash.js';
|
|
19
|
+
import { buildMarkdownContent } from './base.js';
|
|
20
|
+
import { writeGrokHooks } from '@intutic/sync-daemon/harness/grokHooks';
|
|
21
|
+
const CONFIG_FILE = 'AGENTS.md';
|
|
22
|
+
export const grokAdapter = {
|
|
23
|
+
type: HarnessType.GROK,
|
|
24
|
+
configFileName: CONFIG_FILE,
|
|
25
|
+
async detect(workspaceRoot) {
|
|
26
|
+
// Workspace-local `.grok/` (project config/hooks dir) or AGENTS.md.
|
|
27
|
+
for (const marker of ['.grok', CONFIG_FILE]) {
|
|
28
|
+
try {
|
|
29
|
+
await access(join(workspaceRoot, marker));
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
catch { /* fall through */ }
|
|
33
|
+
}
|
|
34
|
+
// `~/.grok` (user has Grok Build installed and has run it at least once).
|
|
35
|
+
try {
|
|
36
|
+
await access(join(homedir(), '.grok'));
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
catch { /* fall through */ }
|
|
40
|
+
// `grok` on PATH — same PATH-scan convention codex.ts uses.
|
|
41
|
+
const pathDirs = (process.env.PATH ?? '').split(process.platform === 'win32' ? ';' : ':');
|
|
42
|
+
try {
|
|
43
|
+
const { accessSync } = await import('node:fs');
|
|
44
|
+
for (const dir of pathDirs) {
|
|
45
|
+
try {
|
|
46
|
+
accessSync(join(dir, 'grok'));
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
catch { /* not here */ }
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch { /* ignore */ }
|
|
53
|
+
return false;
|
|
54
|
+
},
|
|
55
|
+
async writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
56
|
+
// 1. AGENTS.md — governance rules text, same markdown formatter every
|
|
57
|
+
// other `---`-separated rules file in this codebase shares.
|
|
58
|
+
const filePath = join(workspaceRoot, CONFIG_FILE);
|
|
59
|
+
const content = buildMarkdownContent(sops, proxyUrl);
|
|
60
|
+
await mkdir(dirname(filePath), { recursive: true });
|
|
61
|
+
const tmp = filePath + '.intutic-tmp';
|
|
62
|
+
await writeFile(tmp, content, 'utf-8');
|
|
63
|
+
await rename(tmp, filePath);
|
|
64
|
+
// 2. PreToolUse gate (project + user level) + config.toml model base_url
|
|
65
|
+
// merge (project + user level).
|
|
66
|
+
await writeGrokHooks(workspaceRoot, proxyUrl, '');
|
|
67
|
+
return filePath;
|
|
68
|
+
},
|
|
69
|
+
async readCurrentHash(workspaceRoot) {
|
|
70
|
+
try {
|
|
71
|
+
return await hashFile(join(workspaceRoot, CONFIG_FILE));
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=grok.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grok.js","sourceRoot":"","sources":["../../src/harness/grok.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* jsSdkGatedAdapter.ts — shared builder for harness adapters whose blocking
|
|
3
|
+
* gate ships SDK-side in `@intutic/gate` (packages/gate-js), with no on-disk
|
|
4
|
+
* hook/config file to write a tool-call gate into.
|
|
5
|
+
*
|
|
6
|
+
* The JS/TS-native counterpart of `sdkGatedAdapter.ts` (Wave 1's Python
|
|
7
|
+
* builder — see its module doc for why a shared factory exists instead of
|
|
8
|
+
* hand-copying one adapter per framework: the same defect-generator argument
|
|
9
|
+
* applies here). Two differences from the Python version drive most of this
|
|
10
|
+
* file's shape:
|
|
11
|
+
*
|
|
12
|
+
* 1. **Manifest format.** Python's manifests (`pyproject.toml`,
|
|
13
|
+
* `requirements.txt`, `uv.lock`) are scanned as raw text for a
|
|
14
|
+
* case-insensitive substring/regex match. `package.json` is scanned as
|
|
15
|
+
* structured JSON — `dependencies`/`devDependencies`/`peerDependencies`
|
|
16
|
+
* — because a JS/TS framework detection needs a VERSION check (the
|
|
17
|
+
* Vercel AI SDK's `toolApproval` veto point is a v6+ API; the same
|
|
18
|
+
* package name existed at lower majors with a materially different
|
|
19
|
+
* surface), which a plain substring test cannot express.
|
|
20
|
+
* 2. **The pointer comment.** Python frameworks point at
|
|
21
|
+
* `pip install intutic-clawde[...]` and a `from intutic_clawde...`
|
|
22
|
+
* import. These point at `npm install @intutic/gate` and an
|
|
23
|
+
* `import { ... } from '@intutic/gate/<subpath>'` line instead — the
|
|
24
|
+
* env file's prose says "your own Node.js process", not "your own
|
|
25
|
+
* Python process".
|
|
26
|
+
*
|
|
27
|
+
* @module
|
|
28
|
+
*/
|
|
29
|
+
import type { HarnessType } from '@intutic/shared-types';
|
|
30
|
+
import type { IHarnessAdapter } from './types.js';
|
|
31
|
+
/** One package.json dependency this framework requires to be detected.
|
|
32
|
+
* `minMajor`, when set, requires the declared range's leading version
|
|
33
|
+
* digits to be `>= minMajor` — a range this loose (`^7.0.0`, `~7.2.0`,
|
|
34
|
+
* `>=7.0.0`, a bare `7.0.0`) is exactly what real `package.json` files
|
|
35
|
+
* declare; anything the leading-digit scan cannot parse (`workspace:*`,
|
|
36
|
+
* `latest`, a git URL) is treated as NOT satisfying a `minMajor`
|
|
37
|
+
* requirement — silently assuming a floor is met is worse than asking the
|
|
38
|
+
* operator to pin a real version. */
|
|
39
|
+
export interface JsPackageRequirement {
|
|
40
|
+
name: string;
|
|
41
|
+
minMajor?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface JsSdkGatedFrameworkSpec {
|
|
44
|
+
/** HarnessType enum value this adapter detects/configures. */
|
|
45
|
+
type: HarnessType;
|
|
46
|
+
/** Display name used in the generated comment, e.g. "Mastra". */
|
|
47
|
+
label: string;
|
|
48
|
+
/** ALL of these must be present (and satisfy their `minMajor`, if set). */
|
|
49
|
+
requires: readonly JsPackageRequirement[];
|
|
50
|
+
/**
|
|
51
|
+
* Additionally require at least one dependency whose name starts with
|
|
52
|
+
* this prefix (e.g. `"@ai-sdk/"` for the Vercel AI SDK's provider
|
|
53
|
+
* packages) — `ai` alone declares the tool-loop surface but ships no
|
|
54
|
+
* model provider, so a workspace with `ai` and no `@ai-sdk/*` package
|
|
55
|
+
* cannot actually call a model yet.
|
|
56
|
+
*/
|
|
57
|
+
requiresPrefix?: string;
|
|
58
|
+
/**
|
|
59
|
+
* OR-semantics variant of `requiresPrefix`, for frameworks whose presence
|
|
60
|
+
* is signalled by any one of SEVERAL package families rather than one
|
|
61
|
+
* required package plus one prefix: at least one dependency must start
|
|
62
|
+
* with at least one of these prefixes (an exact package name works too —
|
|
63
|
+
* a name is a prefix of itself). Used by `@ai-sdk/harness` detection,
|
|
64
|
+
* where `@ai-sdk/harness`, any `@ai-sdk/harness-*` adapter, or any
|
|
65
|
+
* `@ai-sdk/sandbox-*` provider each independently indicate the framework.
|
|
66
|
+
* Evaluated IN ADDITION to `requires`/`requiresPrefix` when both are set.
|
|
67
|
+
*/
|
|
68
|
+
requiresAnyPrefix?: readonly string[];
|
|
69
|
+
/** `npm install <npmInstall>` shown in the generated comment. */
|
|
70
|
+
npmInstall: string;
|
|
71
|
+
/**
|
|
72
|
+
* Replaces the default preamble lines of the generated comment block
|
|
73
|
+
* (`These env vars govern LLM egress only. <label> tools run in your own
|
|
74
|
+
* Node.js process, ...`) — each entry is one line, rendered with a leading
|
|
75
|
+
* `# `. For frameworks whose execution model makes the default prose
|
|
76
|
+
* FALSE rather than merely generic: `@ai-sdk/harness` tools execute
|
|
77
|
+
* server-side in Vercel Sandbox microVMs, so neither "tools run in your
|
|
78
|
+
* own Node.js process" nor an unqualified "these vars govern LLM egress"
|
|
79
|
+
* holds there. Omit for the standard in-process frameworks.
|
|
80
|
+
*/
|
|
81
|
+
envPreamble?: readonly string[];
|
|
82
|
+
/** The `@intutic/gate/<subpath>` import line shown in the comment. */
|
|
83
|
+
importLine: string;
|
|
84
|
+
/** One line (no leading "# ") summarising how the imported symbol vetoes a call. */
|
|
85
|
+
usageSummary: string;
|
|
86
|
+
/** apps/docs/integrations/<slug> */
|
|
87
|
+
docsSlug: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Leading major version from a semver range string, without regex — plain
|
|
91
|
+
* linear scans over the (short, locally-authored) range string, matching
|
|
92
|
+
* `gate.ts`'s `trimTrailingSlashes`/`trimLeadingSlashes` style rather than
|
|
93
|
+
* an unbounded-quantifier regex. Handles the common range prefixes
|
|
94
|
+
* (`^`, `~`, `>=`, `<=`, `>`, `<`, `=`, a leading `v`, whitespace) by simply
|
|
95
|
+
* skipping every non-digit character before the first digit run. Returns
|
|
96
|
+
* `null` when no leading digit run exists at all (`"workspace:*"`,
|
|
97
|
+
* `"latest"`, `"*"`, a git/URL range).
|
|
98
|
+
*/
|
|
99
|
+
export declare function leadingMajorVersion(range: string): number | null;
|
|
100
|
+
/** Builds an `IHarnessAdapter` for one JS/TS SDK-gated framework from its spec. */
|
|
101
|
+
export declare function makeJsSdkGatedAdapter(spec: JsSdkGatedFrameworkSpec): IHarnessAdapter;
|
|
102
|
+
//# sourceMappingURL=jsSdkGatedAdapter.d.ts.map
|