@intutic/cli 2.4.0 → 2.5.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 +27 -16
- package/dist/cli.js +56 -12
- package/dist/cli.js.map +1 -1
- package/dist/commands/attenuate.d.ts +9 -8
- package/dist/commands/attenuate.d.ts.map +1 -1
- package/dist/commands/attenuate.js +18 -11
- package/dist/commands/attenuate.js.map +1 -1
- package/dist/commands/budget.d.ts.map +1 -1
- package/dist/commands/budget.js +3 -6
- package/dist/commands/budget.js.map +1 -1
- package/dist/commands/chaos.d.ts +40 -0
- package/dist/commands/chaos.d.ts.map +1 -0
- package/dist/commands/chaos.js +253 -0
- package/dist/commands/chaos.js.map +1 -0
- package/dist/commands/connect.d.ts +7 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +79 -31
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/disconnect.d.ts +11 -1
- package/dist/commands/disconnect.d.ts.map +1 -1
- package/dist/commands/disconnect.js +18 -3
- package/dist/commands/disconnect.js.map +1 -1
- package/dist/commands/doctor.d.ts +7 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +21 -17
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/enforce.d.ts +14 -1
- package/dist/commands/enforce.d.ts.map +1 -1
- package/dist/commands/enforce.js +21 -3
- package/dist/commands/enforce.js.map +1 -1
- package/dist/commands/exec.d.ts +29 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +72 -35
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +3 -3
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/guardrails.d.ts.map +1 -1
- package/dist/commands/guardrails.js +10 -8
- package/dist/commands/guardrails.js.map +1 -1
- package/dist/commands/integrity.d.ts.map +1 -1
- package/dist/commands/integrity.js +4 -1
- package/dist/commands/integrity.js.map +1 -1
- package/dist/commands/judge.d.ts.map +1 -1
- package/dist/commands/judge.js +6 -9
- package/dist/commands/judge.js.map +1 -1
- package/dist/commands/login.js +4 -4
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/policy.d.ts +16 -0
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +90 -8
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/siem.d.ts.map +1 -1
- package/dist/commands/siem.js.map +1 -1
- package/dist/commands/skill.d.ts +52 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +147 -40
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/sops.d.ts +61 -50
- package/dist/commands/sops.d.ts.map +1 -1
- package/dist/commands/sops.js +425 -166
- package/dist/commands/sops.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +2 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +2 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/traces.d.ts.map +1 -1
- package/dist/commands/traces.js +4 -3
- package/dist/commands/traces.js.map +1 -1
- package/dist/config/paths.d.ts +15 -9
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +24 -10
- package/dist/config/paths.js.map +1 -1
- package/dist/harness/ag2.d.ts +4 -2
- package/dist/harness/ag2.d.ts.map +1 -1
- package/dist/harness/ag2.js +4 -2
- package/dist/harness/ag2.js.map +1 -1
- package/dist/harness/autogen.d.ts +10 -11
- package/dist/harness/autogen.d.ts.map +1 -1
- package/dist/harness/autogen.js +14 -15
- package/dist/harness/autogen.js.map +1 -1
- package/dist/harness/detector.d.ts.map +1 -1
- package/dist/harness/detector.js +5 -2
- package/dist/harness/detector.js.map +1 -1
- package/dist/harness/openhands.d.ts.map +1 -1
- package/dist/harness/openhands.js +3 -4
- package/dist/harness/openhands.js.map +1 -1
- package/dist/harness/windsurf.d.ts.map +1 -1
- package/dist/harness/windsurf.js +4 -2
- package/dist/harness/windsurf.js.map +1 -1
- package/dist/lib/api.d.ts +7 -3
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/caTrust.d.ts +43 -1
- package/dist/lib/caTrust.d.ts.map +1 -1
- package/dist/lib/caTrust.js +109 -9
- package/dist/lib/caTrust.js.map +1 -1
- package/dist/lib/chaos/experiment.d.ts +18 -0
- package/dist/lib/chaos/experiment.d.ts.map +1 -0
- package/dist/lib/chaos/experiment.js +40 -0
- package/dist/lib/chaos/experiment.js.map +1 -0
- package/dist/lib/chaos/probes.d.ts +97 -0
- package/dist/lib/chaos/probes.d.ts.map +1 -0
- package/dist/lib/chaos/probes.js +191 -0
- package/dist/lib/chaos/probes.js.map +1 -0
- package/dist/lib/chaos/runner.d.ts +131 -0
- package/dist/lib/chaos/runner.d.ts.map +1 -0
- package/dist/lib/chaos/runner.js +340 -0
- package/dist/lib/chaos/runner.js.map +1 -0
- package/dist/lib/chaos/workspace.d.ts +70 -0
- package/dist/lib/chaos/workspace.d.ts.map +1 -0
- package/dist/lib/chaos/workspace.js +216 -0
- package/dist/lib/chaos/workspace.js.map +1 -0
- package/dist/lib/ciscoScanner.d.ts +9 -4
- package/dist/lib/ciscoScanner.d.ts.map +1 -1
- package/dist/lib/ciscoScanner.js +42 -8
- package/dist/lib/ciscoScanner.js.map +1 -1
- package/dist/lib/decisionsLogRefresh.d.ts.map +1 -1
- package/dist/lib/decisionsLogRefresh.js +6 -2
- package/dist/lib/decisionsLogRefresh.js.map +1 -1
- package/dist/lib/enforcementState.d.ts +7 -0
- package/dist/lib/enforcementState.d.ts.map +1 -1
- package/dist/lib/enforcementState.js +9 -0
- package/dist/lib/enforcementState.js.map +1 -1
- package/dist/lib/gitHooks.d.ts.map +1 -1
- package/dist/lib/gitHooks.js +6 -4
- package/dist/lib/gitHooks.js.map +1 -1
- package/dist/lib/mdmManifest.d.ts.map +1 -1
- package/dist/lib/mdmManifest.js +33 -3
- package/dist/lib/mdmManifest.js.map +1 -1
- package/dist/lib/proxyBinary.d.ts +11 -0
- package/dist/lib/proxyBinary.d.ts.map +1 -1
- package/dist/lib/proxyBinary.js +16 -0
- package/dist/lib/proxyBinary.js.map +1 -1
- package/dist/lib/sandbox/firecracker.d.ts.map +1 -1
- package/dist/lib/sandbox/firecracker.js +4 -1
- package/dist/lib/sandbox/firecracker.js.map +1 -1
- package/dist/lib/sandbox/image.d.ts +13 -4
- package/dist/lib/sandbox/image.d.ts.map +1 -1
- package/dist/lib/sandbox/image.js +25 -8
- package/dist/lib/sandbox/image.js.map +1 -1
- package/dist/lib/sandbox/oci.d.ts.map +1 -1
- package/dist/lib/sandbox/oci.js +18 -3
- package/dist/lib/sandbox/oci.js.map +1 -1
- package/dist/lib/sandbox/types.d.ts +6 -0
- package/dist/lib/sandbox/types.d.ts.map +1 -1
- package/dist/lib/sopFrontMatter.d.ts +35 -0
- package/dist/lib/sopFrontMatter.d.ts.map +1 -1
- package/dist/lib/sopFrontMatter.js +60 -0
- package/dist/lib/sopFrontMatter.js.map +1 -1
- package/package.json +6 -5
- package/resources/chaos/credential-revoked.yaml +28 -0
- package/resources/chaos/poisoned-readme.yaml +29 -0
- package/resources/chaos/registry-down.yaml +25 -0
- package/resources/sandbox/Dockerfile.node +19 -0
- package/resources/sandbox/firecracker-launch.sh +8 -7
|
@@ -6,24 +6,26 @@
|
|
|
6
6
|
* module doc on the dashboard side). This command is the mint/inspect half:
|
|
7
7
|
*
|
|
8
8
|
* - `intutic attenuate --parent-key <keyId> --caps <a,b,c> [--ttl <seconds>]`
|
|
9
|
-
* — `POST /api/v1/attenuate`, narrowing
|
|
10
|
-
*
|
|
11
|
-
* server-side).
|
|
9
|
+
* — `POST /api/v1/attenuate`, narrowing one of your `vk_*` keys to a child
|
|
10
|
+
* key with narrower scopes (each requested scope granted by the parent,
|
|
11
|
+
* enforced server-side).
|
|
12
12
|
* - `intutic attenuate chain <chainId>` — `GET /api/v1/attenuate/chain/:chainId`,
|
|
13
13
|
* resolving the full delegation lineage for audit purposes.
|
|
14
14
|
*
|
|
15
15
|
* @module
|
|
16
16
|
*/
|
|
17
|
+
import { API_SCOPE_NAMES, unknownApiKeyScopes } from '@intutic/shared-types';
|
|
17
18
|
import { log } from '../lib/logger.js';
|
|
18
19
|
import { getClient } from './skill.js';
|
|
19
20
|
/**
|
|
20
21
|
* `intutic attenuate --parent-key <keyId> --caps <a,b,c> [--ttl <seconds>]`
|
|
21
|
-
* — mints a child key narrowed to
|
|
22
|
+
* — mints a child key narrowed to scopes its parent grants.
|
|
22
23
|
*
|
|
23
|
-
* `--caps` is a comma-separated list
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
24
|
+
* `--caps` is a comma-separated list of API key scopes (`gateway:use`,
|
|
25
|
+
* `traces:read`, …), split, trimmed and checked against the registry
|
|
26
|
+
* client-side; the server checks each is granted by the parent (`*` grants
|
|
27
|
+
* all, `x:write` grants `x:read`) and returns `ATTENUATION_CAP_VIOLATION`
|
|
28
|
+
* (403) naming exactly which was not.
|
|
27
29
|
*/
|
|
28
30
|
export async function runAttenuate(opts) {
|
|
29
31
|
log.header('Intutic — Attenuate API Key');
|
|
@@ -36,7 +38,12 @@ export async function runAttenuate(opts) {
|
|
|
36
38
|
.map((cap) => cap.trim())
|
|
37
39
|
.filter(Boolean);
|
|
38
40
|
if (requestedCaps.length === 0) {
|
|
39
|
-
log.error('--caps is required and must list at least one
|
|
41
|
+
log.error('--caps is required and must list at least one scope');
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
const unknown = unknownApiKeyScopes(requestedCaps);
|
|
45
|
+
if (unknown.length > 0) {
|
|
46
|
+
log.error(`Unknown scope${unknown.length === 1 ? '' : 's'}: ${unknown.join(', ')}. Valid scopes: ${API_SCOPE_NAMES.join(', ')}`);
|
|
40
47
|
process.exit(1);
|
|
41
48
|
}
|
|
42
49
|
let ttlSeconds;
|
|
@@ -60,7 +67,7 @@ export async function runAttenuate(opts) {
|
|
|
60
67
|
log.field('Child Key', result.childKey);
|
|
61
68
|
log.field('Child Key ID', result.childKeyId);
|
|
62
69
|
log.field('Chain ID', result.attenuationChainId);
|
|
63
|
-
log.field('Granted
|
|
70
|
+
log.field('Granted Scopes', result.grantedCaps.join(', '));
|
|
64
71
|
log.field('Expires At', result.expiresAt);
|
|
65
72
|
log.dim('The child key is shown once and never stored — save it now.');
|
|
66
73
|
}
|
|
@@ -87,7 +94,7 @@ export async function runAttenuateChain(chainId, opts) {
|
|
|
87
94
|
log.field('Chain ID', link.chainId);
|
|
88
95
|
log.field('Parent Key', link.parentKeyId);
|
|
89
96
|
log.field('Child Key', link.childKeyId);
|
|
90
|
-
log.field('Granted
|
|
97
|
+
log.field('Granted Scopes', link.grantedCaps.join(', '));
|
|
91
98
|
log.field('Expires At', link.expiresAt);
|
|
92
99
|
log.field('Minted At', link.createdAt);
|
|
93
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attenuate.js","sourceRoot":"","sources":["../../src/commands/attenuate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAuBtC
|
|
1
|
+
{"version":3,"file":"attenuate.js","sourceRoot":"","sources":["../../src/commands/attenuate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/commands/budget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAS1D;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kFAAkF;IAClF,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,KAAO,CAAA;AAEhD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,IAAI,GAC/E,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAID;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAcpC;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE,kBAAkB,GAAG,yBAAyB,CAAC,GAAG,MAAM,CAKpH;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/commands/budget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAS1D;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kFAAkF;IAClF,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,KAAO,CAAA;AAEhD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,IAAI,GAC/E,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAID;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAcpC;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE,kBAAkB,GAAG,yBAAyB,CAAC,GAAG,MAAM,CAKpH;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEtE;AAID,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,iBAAiB,EAAE,MAAM,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAC3D,sBAAsB,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAClE,gBAAgB,EAAE,OAAO,EACzB,aAAa,EAAE,oBAAoB,GAAG,IAAI,GACzC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CActC;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC9F"}
|
package/dist/commands/budget.js
CHANGED
|
@@ -59,9 +59,8 @@ export async function runBudget(opts) {
|
|
|
59
59
|
log.header('Intutic — Budget & Loop Status');
|
|
60
60
|
const creds = await loadCredentials();
|
|
61
61
|
const config = loadConfig();
|
|
62
|
-
const devMode = opts.dev || config?.devMode || process.env.INTUTIC_DEV === '1';
|
|
63
62
|
if (creds) {
|
|
64
|
-
const controlPlaneUrl = resolveControlPlaneUrl(
|
|
63
|
+
const controlPlaneUrl = resolveControlPlaneUrl(opts.dev);
|
|
65
64
|
const client = createApiClient(controlPlaneUrl, creds.apiKey);
|
|
66
65
|
// 1. Fetch Cloud Budget Status
|
|
67
66
|
try {
|
|
@@ -98,7 +97,7 @@ export async function runBudget(opts) {
|
|
|
98
97
|
: '— (local proxy not running)');
|
|
99
98
|
// 3. Fetch Active Loops (requires connection)
|
|
100
99
|
if (creds) {
|
|
101
|
-
const controlPlaneUrl = resolveControlPlaneUrl(
|
|
100
|
+
const controlPlaneUrl = resolveControlPlaneUrl(opts.dev);
|
|
102
101
|
const client = createApiClient(controlPlaneUrl, creds.apiKey);
|
|
103
102
|
try {
|
|
104
103
|
const loopsRes = await client.get('/api/v1/loops');
|
|
@@ -162,9 +161,7 @@ export async function runBudgetWatch(opts) {
|
|
|
162
161
|
log.dim(' Printing one line per tick. Press Ctrl+C to stop.');
|
|
163
162
|
console.log('');
|
|
164
163
|
const creds = await loadCredentials();
|
|
165
|
-
const
|
|
166
|
-
const devMode = opts.dev || config?.devMode || process.env.INTUTIC_DEV === '1';
|
|
167
|
-
const client = creds ? createApiClient(resolveControlPlaneUrl(devMode), creds.apiKey) : null;
|
|
164
|
+
const client = creds ? createApiClient(resolveControlPlaneUrl(opts.dev), creds.apiKey) : null;
|
|
168
165
|
const intervalSeconds = (() => {
|
|
169
166
|
const parsed = Number(opts.interval);
|
|
170
167
|
return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_WATCH_INTERVAL_SECONDS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/commands/budget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAuB1D,0EAA0E;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAgF;IAEhF,OAAO,MAAM,EAAE,iBAAiB,IAAI,MAAM,EAAE,oBAAoB,IAAI,4BAA4B,CAAA;AAClG,CAAC;AAkBD,MAAM,sBAAsB,GAAG,KAAK,CAAA;AAEpC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAA0B,KAAK;IAE/B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAA;QAC5E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,mBAAmB,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;YACpG,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAA;YACxB,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAA;QACjD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAC,GAA+E;IAC1G,OAAO,GAAG,CAAC,uBAAuB;QAChC,CAAC,CAAC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,qDAAqD;YAClG,iFAAiF;QACrF,CAAC,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,iEAAiE,CAAA;AAC1G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAuB;IACrD,GAAG,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAA;IAE5C,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/commands/budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `intutic chaos` — run an agent with a known fault injected, check what it
|
|
3
|
+
* did, score it.
|
|
4
|
+
*
|
|
5
|
+
* - `validate <file>` checks an experiment file;
|
|
6
|
+
* - `list` prints the fault catalog;
|
|
7
|
+
* - `run <file>` runs the experiment in the sandbox (never on the host).
|
|
8
|
+
*
|
|
9
|
+
* The orchestration lives in lib/chaos/runner.ts; this file wires it to the
|
|
10
|
+
* real sandbox, proxy binary and git, and prints the result.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import { type RunVerdict } from '@intutic/shared-types';
|
|
15
|
+
import { type GraphIdentity } from '../lib/graphIdentity.js';
|
|
16
|
+
import { type ChaosReport } from '../lib/chaos/runner.js';
|
|
17
|
+
/** `intutic chaos validate <file>` */
|
|
18
|
+
export declare function runChaosValidate(file: string): Promise<void>;
|
|
19
|
+
/** `intutic chaos list` */
|
|
20
|
+
export declare function runChaosList(): void;
|
|
21
|
+
/** The example experiments shipped with the CLI (src/ and dist/ sit at the same depth). */
|
|
22
|
+
export declare function examplesDir(): string;
|
|
23
|
+
/** `intutic chaos run <file>` */
|
|
24
|
+
export declare function runChaosRun(file: string, opts: {
|
|
25
|
+
sandboxImage?: string;
|
|
26
|
+
out?: string;
|
|
27
|
+
keep?: boolean;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
/** 0 scored, 1 aborted, 2 invalid. */
|
|
30
|
+
export declare function exitCode(verdict: RunVerdict): number;
|
|
31
|
+
export declare function printSummary(report: ChaosReport): void;
|
|
32
|
+
/**
|
|
33
|
+
* The sandbox environment for a repetition. Never the workspace login: each
|
|
34
|
+
* repetition's proxy runs standalone, so it cannot resolve an Intutic key, and
|
|
35
|
+
* handing one to the agent in place of its provider keys would fail every
|
|
36
|
+
* model call (every baseline, so every run, invalid). The agent keeps its own
|
|
37
|
+
* provider keys, passed by name, and the standalone proxy forwards them.
|
|
38
|
+
*/
|
|
39
|
+
export declare function chaosSandboxEnv(identity: GraphIdentity, port: number): Record<string, string>;
|
|
40
|
+
//# sourceMappingURL=chaos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chaos.d.ts","sourceRoot":"","sources":["../../src/commands/chaos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAM5E,OAAO,EAA0C,KAAK,WAAW,EAAqB,MAAM,wBAAwB,CAAA;AASpH,sCAAsC;AACtC,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;AAED,2BAA2B;AAC3B,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED,2FAA2F;AAC3F,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,iCAAiC;AACjC,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5D,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAED,sCAAsC;AACtC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAuBtD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE7F"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `intutic chaos` — run an agent with a known fault injected, check what it
|
|
3
|
+
* did, score it.
|
|
4
|
+
*
|
|
5
|
+
* - `validate <file>` checks an experiment file;
|
|
6
|
+
* - `list` prints the fault catalog;
|
|
7
|
+
* - `run <file>` runs the experiment in the sandbox (never on the host).
|
|
8
|
+
*
|
|
9
|
+
* The orchestration lives in lib/chaos/runner.ts; this file wires it to the
|
|
10
|
+
* real sandbox, proxy binary and git, and prints the result.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import { spawn } from 'node:child_process';
|
|
15
|
+
import { randomBytes } from 'node:crypto';
|
|
16
|
+
import * as fs from 'node:fs';
|
|
17
|
+
import * as net from 'node:net';
|
|
18
|
+
import * as os from 'node:os';
|
|
19
|
+
import * as path from 'node:path';
|
|
20
|
+
import { fileURLToPath } from 'node:url';
|
|
21
|
+
import pc from 'picocolors';
|
|
22
|
+
import { FAULT_CATALOG, FAULT_IDS } from '@intutic/shared-types';
|
|
23
|
+
import { deriveIdentity } from '../lib/graphIdentity.js';
|
|
24
|
+
import { log } from '../lib/logger.js';
|
|
25
|
+
import { resolveProxyBinary, sandboxBindEnv } from '../lib/proxyBinary.js';
|
|
26
|
+
import { resolveSnapshotRulesPath } from '../lib/policySnapshot.js';
|
|
27
|
+
import { selectBackend } from '../lib/sandbox/index.js';
|
|
28
|
+
import { loadExperiment } from '../lib/chaos/experiment.js';
|
|
29
|
+
import { ChaosRefusal, runChaos } from '../lib/chaos/runner.js';
|
|
30
|
+
import { readySandbox, sandboxProxyEnv, sandboxSpec, SandboxUnavailableError, } from './exec.js';
|
|
31
|
+
/** `intutic chaos validate <file>` */
|
|
32
|
+
export async function runChaosValidate(file) {
|
|
33
|
+
const result = await loadExperiment(file);
|
|
34
|
+
if (!result.ok) {
|
|
35
|
+
log.error(`${file} is not a valid experiment:`);
|
|
36
|
+
for (const e of result.errors)
|
|
37
|
+
log.dim(` ${e}`);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
const x = result.experiment;
|
|
41
|
+
log.success(`${file} is valid: ${x.name} — ${x.faults.length} fault${x.faults.length > 1 ? 's' : ''}, ${x.repeat} baseline + ${x.repeat} faulted repetitions`);
|
|
42
|
+
}
|
|
43
|
+
/** `intutic chaos list` */
|
|
44
|
+
export function runChaosList() {
|
|
45
|
+
const width = Math.max(...FAULT_IDS.map((id) => id.length));
|
|
46
|
+
console.log(pc.bold(`${'FAULT'.padEnd(width)} ${'INJECTED BY'.padEnd(18)} SAFETY`));
|
|
47
|
+
for (const id of FAULT_IDS) {
|
|
48
|
+
const { injectedBy, safety } = FAULT_CATALOG[id];
|
|
49
|
+
console.log(`${id.padEnd(width)} ${injectedBy.join(', ').padEnd(18)} ${safety === 'mutating' ? pc.yellow(safety) : safety}`);
|
|
50
|
+
}
|
|
51
|
+
console.log('');
|
|
52
|
+
log.dim('fail_safe faults deny, delay or error; mutating faults change what the agent sees. Every fault runs only in the sandbox.');
|
|
53
|
+
log.dim(`Example experiments: ${examplesDir()}`);
|
|
54
|
+
}
|
|
55
|
+
/** The example experiments shipped with the CLI (src/ and dist/ sit at the same depth). */
|
|
56
|
+
export function examplesDir() {
|
|
57
|
+
return path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../resources/chaos');
|
|
58
|
+
}
|
|
59
|
+
/** `intutic chaos run <file>` */
|
|
60
|
+
export async function runChaosRun(file, opts) {
|
|
61
|
+
const result = await loadExperiment(file);
|
|
62
|
+
if (!result.ok) {
|
|
63
|
+
log.error(`${file} is not a valid experiment:`);
|
|
64
|
+
for (const e of result.errors)
|
|
65
|
+
log.dim(` ${e}`);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
const experiment = result.experiment;
|
|
69
|
+
const { DEFAULT_SANDBOX_IMAGE } = await import('../lib/sandbox/image.js');
|
|
70
|
+
const image = opts.sandboxImage ?? experiment.sandbox_image ?? DEFAULT_SANDBOX_IMAGE;
|
|
71
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
72
|
+
// Under the temp dir by default: a report in the project would dirty the
|
|
73
|
+
// tree the next run requires clean.
|
|
74
|
+
const outPath = path.resolve(opts.out ?? path.join(os.tmpdir(), 'intutic-chaos', `report-${experiment.name}-${stamp}.json`));
|
|
75
|
+
log.header(`Chaos run: ${experiment.name}`);
|
|
76
|
+
log.dim('Every repetition runs a real agent and spends real tokens; the cost ceiling in the experiment applies to each.');
|
|
77
|
+
let report;
|
|
78
|
+
try {
|
|
79
|
+
report = await runChaos({
|
|
80
|
+
experiment,
|
|
81
|
+
cwd: process.cwd(),
|
|
82
|
+
image,
|
|
83
|
+
outPath,
|
|
84
|
+
keep: Boolean(opts.keep),
|
|
85
|
+
// Where this machine's gates read them, as the gates resolve it.
|
|
86
|
+
snapshotRules: resolveSnapshotRulesPath(),
|
|
87
|
+
approvedBypasses: process.env.INTUTIC_APPROVED_BYPASSES || path.join(os.homedir(), '.intutic', 'hooks', 'approved-bypasses.jsonl'),
|
|
88
|
+
}, await defaultDeps());
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
if (err instanceof ChaosRefusal || err instanceof SandboxUnavailableError) {
|
|
92
|
+
log.error(`Refusing to run: ${err.message}`);
|
|
93
|
+
if (err instanceof SandboxUnavailableError) {
|
|
94
|
+
log.dim('A chaos run never falls back to the host. Start Docker (or Podman) and try again.');
|
|
95
|
+
}
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
throw err;
|
|
99
|
+
}
|
|
100
|
+
printSummary(report);
|
|
101
|
+
process.exit(exitCode(report.verdict));
|
|
102
|
+
}
|
|
103
|
+
/** 0 scored, 1 aborted, 2 invalid. */
|
|
104
|
+
export function exitCode(verdict) {
|
|
105
|
+
return verdict.kind === 'scored' ? 0 : verdict.kind === 'aborted' ? 1 : 2;
|
|
106
|
+
}
|
|
107
|
+
export function printSummary(report) {
|
|
108
|
+
const v = report.verdict;
|
|
109
|
+
log.header(`Result: ${report.experiment.name}`);
|
|
110
|
+
if (v.kind === 'invalid') {
|
|
111
|
+
log.error(`Invalid: ${v.reason}`);
|
|
112
|
+
log.dim('Fix the task (or its verify command) so it passes without faults; no score is given.');
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const label = v.kind === 'scored' ? pc.green('scored') : pc.yellow(`aborted (${v.reason})`);
|
|
116
|
+
log.field('Verdict', label);
|
|
117
|
+
log.field('Resilience score', `${pc.bold(String(v.score))} / 100`);
|
|
118
|
+
console.log('');
|
|
119
|
+
for (const p of report.probes) {
|
|
120
|
+
const rate = p.evaluated ? `${p.passes}/${p.evaluated} ${Math.round(p.passRate * 100)}%` : 'not evaluated';
|
|
121
|
+
const extra = p.allPassed !== undefined && p.evaluated ? ` pass^k: ${p.allPassed ? 'yes' : 'no'}` : '';
|
|
122
|
+
console.log(` ${p.id.padEnd(24)} ${rate.padEnd(16)} weight ${p.weight}${extra}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (report.warnings.length) {
|
|
126
|
+
console.log('');
|
|
127
|
+
for (const w of report.warnings)
|
|
128
|
+
log.warn(w);
|
|
129
|
+
}
|
|
130
|
+
console.log('');
|
|
131
|
+
log.field('Report', report.reportPath);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* The sandbox environment for a repetition. Never the workspace login: each
|
|
135
|
+
* repetition's proxy runs standalone, so it cannot resolve an Intutic key, and
|
|
136
|
+
* handing one to the agent in place of its provider keys would fail every
|
|
137
|
+
* model call (every baseline, so every run, invalid). The agent keeps its own
|
|
138
|
+
* provider keys, passed by name, and the standalone proxy forwards them.
|
|
139
|
+
*/
|
|
140
|
+
export function chaosSandboxEnv(identity, port) {
|
|
141
|
+
return sandboxProxyEnv(null, identity, String(port), []).env;
|
|
142
|
+
}
|
|
143
|
+
/** The real sandbox, proxy binary and git. */
|
|
144
|
+
async function defaultDeps() {
|
|
145
|
+
const identity = deriveIdentity();
|
|
146
|
+
const sandboxOpts = (image) => ({
|
|
147
|
+
kind: 'oci',
|
|
148
|
+
image,
|
|
149
|
+
memory: '2g',
|
|
150
|
+
cpus: '2',
|
|
151
|
+
pidsLimit: 512,
|
|
152
|
+
allow: [],
|
|
153
|
+
});
|
|
154
|
+
return {
|
|
155
|
+
async readySandbox(image) {
|
|
156
|
+
// OCI only: it mounts the repetition's worktree at /work, which the
|
|
157
|
+
// events path inside the sandbox depends on.
|
|
158
|
+
const backend = await readySandbox('oci', {}, image);
|
|
159
|
+
return { name: backend.name };
|
|
160
|
+
},
|
|
161
|
+
runInSandbox({ command, workdir, env, image, name, onStdout, signal }) {
|
|
162
|
+
const spec = sandboxSpec(command, workdir, env, sandboxOpts(image), { tty: false, name, onStdout, signal });
|
|
163
|
+
return selectBackend('oci', env).run(spec);
|
|
164
|
+
},
|
|
165
|
+
sandboxEnv: (port) => chaosSandboxEnv(identity, port),
|
|
166
|
+
startProxy: ({ port, env, logPath }) => startProxy(port, env, logPath),
|
|
167
|
+
async proxyHealthy(port) {
|
|
168
|
+
try {
|
|
169
|
+
const res = await fetch(`http://127.0.0.1:${port}/health`, { signal: AbortSignal.timeout(1000) });
|
|
170
|
+
return res.ok;
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
freePort,
|
|
177
|
+
git: {
|
|
178
|
+
status: (cwd) => git(cwd, ['status', '--porcelain']),
|
|
179
|
+
worktreeAdd: async (cwd, dir) => {
|
|
180
|
+
await git(cwd, ['worktree', 'add', '--detach', dir, 'HEAD']);
|
|
181
|
+
},
|
|
182
|
+
worktreeRemove: async (cwd, dir) => {
|
|
183
|
+
await git(cwd, ['worktree', 'remove', '--force', dir]);
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
makeTempDir: () => fs.promises.mkdtemp(path.join(os.tmpdir(), 'intutic-chaos-')),
|
|
187
|
+
randomHex: (bytes) => randomBytes(bytes).toString('hex'),
|
|
188
|
+
echo: (chunk) => {
|
|
189
|
+
process.stdout.write(chunk);
|
|
190
|
+
},
|
|
191
|
+
log,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* A dedicated proxy: the binary `intutic start` runs, on its own port, always
|
|
196
|
+
* standalone. It never reports to a control plane, so injected failures cannot
|
|
197
|
+
* reach a workspace's trust scores, incidents or rule promotion; local rules
|
|
198
|
+
* still apply.
|
|
199
|
+
*/
|
|
200
|
+
function startProxy(port, env, logPath) {
|
|
201
|
+
const out = fs.openSync(logPath, 'a');
|
|
202
|
+
const inherited = { ...process.env };
|
|
203
|
+
delete inherited.CONTROL_PLANE_URL;
|
|
204
|
+
const child = spawn(resolveProxyBinary(), [], {
|
|
205
|
+
stdio: ['ignore', out, out],
|
|
206
|
+
// The repetition's sandbox has to reach this proxy (sandboxBindEnv).
|
|
207
|
+
env: { ...inherited, ...sandboxBindEnv(inherited), INTUTIC_STANDALONE: '1', ...env },
|
|
208
|
+
});
|
|
209
|
+
fs.closeSync(out);
|
|
210
|
+
const exited = new Promise((resolve) => {
|
|
211
|
+
child.on('error', (err) => resolve(err.code === 'ENOENT' ? 'the intutic-proxy binary was not found; install it with npm install -g @intutic/proxy' : err.message));
|
|
212
|
+
child.on('exit', (code, signal) => resolve(signal ? `signal ${signal}` : `exit code ${code}; see ${logPath}`));
|
|
213
|
+
});
|
|
214
|
+
let done = false;
|
|
215
|
+
void exited.then(() => {
|
|
216
|
+
done = true;
|
|
217
|
+
});
|
|
218
|
+
return {
|
|
219
|
+
exited,
|
|
220
|
+
async stop() {
|
|
221
|
+
if (done)
|
|
222
|
+
return;
|
|
223
|
+
child.kill('SIGTERM');
|
|
224
|
+
const timeout = new Promise((r) => setTimeout(() => r('timeout'), 5000).unref());
|
|
225
|
+
if ((await Promise.race([exited, timeout])) === 'timeout')
|
|
226
|
+
child.kill('SIGKILL');
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
function freePort() {
|
|
231
|
+
return new Promise((resolve, reject) => {
|
|
232
|
+
const server = net.createServer();
|
|
233
|
+
server.unref();
|
|
234
|
+
server.on('error', reject);
|
|
235
|
+
server.listen(0, '127.0.0.1', () => {
|
|
236
|
+
const addr = server.address();
|
|
237
|
+
const port = typeof addr === 'object' && addr ? addr.port : 0;
|
|
238
|
+
server.close(() => (port ? resolve(port) : reject(new Error('no free port'))));
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
function git(cwd, args) {
|
|
243
|
+
return new Promise((resolve, reject) => {
|
|
244
|
+
const child = spawn('git', args, { cwd, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
245
|
+
let stdout = '';
|
|
246
|
+
let stderr = '';
|
|
247
|
+
child.stdout.on('data', (c) => (stdout += c));
|
|
248
|
+
child.stderr.on('data', (c) => (stderr += c));
|
|
249
|
+
child.on('error', reject);
|
|
250
|
+
child.on('exit', (code) => code === 0 ? resolve(stdout) : reject(new Error(stderr.trim() || `git ${args[0]} exited ${code}`)));
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=chaos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chaos.js","sourceRoot":"","sources":["../../src/commands/chaos.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,13 @@ export declare function writeHarnessConfigs(harnesses: readonly string[], worksp
|
|
|
45
45
|
* stubbing global process state.
|
|
46
46
|
*/
|
|
47
47
|
export declare function resolveProxyAssetName(platform?: NodeJS.Platform, arch?: string): string | null;
|
|
48
|
+
/**
|
|
49
|
+
* A proxy built in the workspace: `target/release`, then `target/debug`, at
|
|
50
|
+
* the repository root. The root `Cargo.toml` is a workspace with
|
|
51
|
+
* `packages/proxy` as a member, so cargo builds there — never into
|
|
52
|
+
* `packages/proxy/target`, which is where this used to look.
|
|
53
|
+
*/
|
|
54
|
+
export declare function findWorkspaceProxyBuild(workspaceRoot: string, platform?: NodeJS.Platform): Promise<string | null>;
|
|
48
55
|
export declare function runConnect(opts: {
|
|
49
56
|
dev?: boolean;
|
|
50
57
|
interval?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgCH,OAAO,KAAK,EAAkC,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAuEzF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,GAAE,MAAqB,GAC1B,MAAM,GAAG,IAAI,CAWf;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYxB;AA0DD,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,GAAG,OAAO,CAAC,IAAI,CAAC,CAivChB"}
|