@vibesdotdev/agent-execution 0.0.0-stage → 1.0.0-rc.2
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/LICENSE +18 -0
- package/README.md +53 -2
- package/dist/code-session/agent-code-session.consumer.descriptor.d.ts +68 -0
- package/dist/code-session/agent-code-session.consumer.descriptor.d.ts.map +1 -0
- package/dist/code-session/agent-code-session.consumer.descriptor.js +31 -0
- package/dist/code-session/agent-code-session.consumer.descriptor.js.map +1 -0
- package/dist/code-session/agent-code-session.consumer.plugin.d.ts +18 -0
- package/dist/code-session/agent-code-session.consumer.plugin.d.ts.map +1 -0
- package/dist/code-session/agent-code-session.consumer.plugin.js +47 -0
- package/dist/code-session/agent-code-session.consumer.plugin.js.map +1 -0
- package/dist/code-session/agent-code-session.descriptor.d.ts +163 -0
- package/dist/code-session/agent-code-session.descriptor.d.ts.map +1 -0
- package/dist/code-session/agent-code-session.descriptor.js +129 -0
- package/dist/code-session/agent-code-session.descriptor.js.map +1 -0
- package/dist/code-session/agent-code-session.impl.consumer.d.ts +224 -0
- package/dist/code-session/agent-code-session.impl.consumer.d.ts.map +1 -0
- package/dist/code-session/agent-code-session.impl.consumer.js +2131 -0
- package/dist/code-session/agent-code-session.impl.consumer.js.map +1 -0
- package/dist/code-session/agent-code-session.kind.d.ts +15 -0
- package/dist/code-session/agent-code-session.kind.d.ts.map +1 -0
- package/dist/code-session/agent-code-session.kind.js +17 -0
- package/dist/code-session/agent-code-session.kind.js.map +1 -0
- package/dist/code-session/agent-code-session.plugin.d.ts +17 -0
- package/dist/code-session/agent-code-session.plugin.d.ts.map +1 -0
- package/dist/code-session/agent-code-session.plugin.js +28 -0
- package/dist/code-session/agent-code-session.plugin.js.map +1 -0
- package/dist/code-session/billing/gates.d.ts +52 -0
- package/dist/code-session/billing/gates.d.ts.map +1 -0
- package/dist/code-session/billing/gates.js +75 -0
- package/dist/code-session/billing/gates.js.map +1 -0
- package/dist/code-session/client/index.d.ts +2 -0
- package/dist/code-session/client/index.d.ts.map +1 -0
- package/dist/code-session/client/index.js +2 -0
- package/dist/code-session/client/index.js.map +1 -0
- package/dist/code-session/client/resolve.d.ts +20 -0
- package/dist/code-session/client/resolve.d.ts.map +1 -0
- package/dist/code-session/client/resolve.js +145 -0
- package/dist/code-session/client/resolve.js.map +1 -0
- package/dist/code-session/docs/agent-code-session.docs.descriptor.d.ts +4 -0
- package/dist/code-session/docs/agent-code-session.docs.descriptor.d.ts.map +1 -0
- package/dist/code-session/docs/agent-code-session.docs.descriptor.js +109 -0
- package/dist/code-session/docs/agent-code-session.docs.descriptor.js.map +1 -0
- package/dist/code-session/git-credential.d.ts +87 -0
- package/dist/code-session/git-credential.d.ts.map +1 -0
- package/dist/code-session/git-credential.js +107 -0
- package/dist/code-session/git-credential.js.map +1 -0
- package/dist/code-session/host-target.d.ts +76 -0
- package/dist/code-session/host-target.d.ts.map +1 -0
- package/dist/code-session/host-target.js +81 -0
- package/dist/code-session/host-target.js.map +1 -0
- package/dist/code-session/index.d.ts +20 -0
- package/dist/code-session/index.d.ts.map +1 -0
- package/dist/code-session/index.js +20 -0
- package/dist/code-session/index.js.map +1 -0
- package/dist/code-session/interfaces/code-session.d.ts +448 -0
- package/dist/code-session/interfaces/code-session.d.ts.map +1 -0
- package/dist/code-session/interfaces/code-session.js +373 -0
- package/dist/code-session/interfaces/code-session.js.map +1 -0
- package/dist/code-session/operation-lease.d.ts +48 -0
- package/dist/code-session/operation-lease.d.ts.map +1 -0
- package/dist/code-session/operation-lease.js +73 -0
- package/dist/code-session/operation-lease.js.map +1 -0
- package/dist/code-session/remote-setup-custody.d.ts +59 -0
- package/dist/code-session/remote-setup-custody.d.ts.map +1 -0
- package/dist/code-session/remote-setup-custody.js +78 -0
- package/dist/code-session/remote-setup-custody.js.map +1 -0
- package/dist/code-session/remote-workspace-fs.d.ts +119 -0
- package/dist/code-session/remote-workspace-fs.d.ts.map +1 -0
- package/dist/code-session/remote-workspace-fs.js +257 -0
- package/dist/code-session/remote-workspace-fs.js.map +1 -0
- package/dist/code-session/session-metadata.d.ts +40 -0
- package/dist/code-session/session-metadata.d.ts.map +1 -0
- package/dist/code-session/session-metadata.js +69 -0
- package/dist/code-session/session-metadata.js.map +1 -0
- package/dist/code-session-relay/agent-code-session-relay.descriptor.d.ts +78 -0
- package/dist/code-session-relay/agent-code-session-relay.descriptor.d.ts.map +1 -0
- package/dist/code-session-relay/agent-code-session-relay.descriptor.js +38 -0
- package/dist/code-session-relay/agent-code-session-relay.descriptor.js.map +1 -0
- package/dist/code-session-relay/agent-code-session-relay.impl.d.ts +120 -0
- package/dist/code-session-relay/agent-code-session-relay.impl.d.ts.map +1 -0
- package/dist/code-session-relay/agent-code-session-relay.impl.js +1392 -0
- package/dist/code-session-relay/agent-code-session-relay.impl.js.map +1 -0
- package/dist/code-session-relay/agent-code-session-relay.plugin.d.ts +14 -0
- package/dist/code-session-relay/agent-code-session-relay.plugin.d.ts.map +1 -0
- package/dist/code-session-relay/agent-code-session-relay.plugin.js +25 -0
- package/dist/code-session-relay/agent-code-session-relay.plugin.js.map +1 -0
- package/dist/code-session-relay/index.d.ts +13 -0
- package/dist/code-session-relay/index.d.ts.map +1 -0
- package/dist/code-session-relay/index.js +13 -0
- package/dist/code-session-relay/index.js.map +1 -0
- package/dist/code-session-relay/relay-dial.d.ts +72 -0
- package/dist/code-session-relay/relay-dial.d.ts.map +1 -0
- package/dist/code-session-relay/relay-dial.js +177 -0
- package/dist/code-session-relay/relay-dial.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/sandbox/agent-sandbox.consumer.descriptor.d.ts +35 -0
- package/dist/sandbox/agent-sandbox.consumer.descriptor.d.ts.map +1 -0
- package/dist/sandbox/agent-sandbox.consumer.descriptor.js +19 -0
- package/dist/sandbox/agent-sandbox.consumer.descriptor.js.map +1 -0
- package/dist/sandbox/agent-sandbox.consumer.plugin.d.ts +9 -0
- package/dist/sandbox/agent-sandbox.consumer.plugin.d.ts.map +1 -0
- package/dist/sandbox/agent-sandbox.consumer.plugin.js +33 -0
- package/dist/sandbox/agent-sandbox.consumer.plugin.js.map +1 -0
- package/dist/sandbox/agent-sandbox.descriptor.d.ts +76 -0
- package/dist/sandbox/agent-sandbox.descriptor.d.ts.map +1 -0
- package/dist/sandbox/agent-sandbox.descriptor.js +57 -0
- package/dist/sandbox/agent-sandbox.descriptor.js.map +1 -0
- package/dist/sandbox/agent-sandbox.impl.consumer.d.ts +15 -0
- package/dist/sandbox/agent-sandbox.impl.consumer.d.ts.map +1 -0
- package/dist/sandbox/agent-sandbox.impl.consumer.js +23 -0
- package/dist/sandbox/agent-sandbox.impl.consumer.js.map +1 -0
- package/dist/sandbox/agent-sandbox.kind.d.ts +14 -0
- package/dist/sandbox/agent-sandbox.kind.d.ts.map +1 -0
- package/dist/sandbox/agent-sandbox.kind.js +16 -0
- package/dist/sandbox/agent-sandbox.kind.js.map +1 -0
- package/dist/sandbox/agent-sandbox.plugin.d.ts +15 -0
- package/dist/sandbox/agent-sandbox.plugin.d.ts.map +1 -0
- package/dist/sandbox/agent-sandbox.plugin.js +25 -0
- package/dist/sandbox/agent-sandbox.plugin.js.map +1 -0
- package/dist/sandbox/client/resolve.d.ts +21 -0
- package/dist/sandbox/client/resolve.d.ts.map +1 -0
- package/dist/sandbox/client/resolve.js +103 -0
- package/dist/sandbox/client/resolve.js.map +1 -0
- package/dist/sandbox/docs/agent-sandbox.docs.descriptor.d.ts +4 -0
- package/dist/sandbox/docs/agent-sandbox.docs.descriptor.d.ts.map +1 -0
- package/dist/sandbox/docs/agent-sandbox.docs.descriptor.js +75 -0
- package/dist/sandbox/docs/agent-sandbox.docs.descriptor.js.map +1 -0
- package/dist/sandbox/index.d.ts +15 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +14 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/sandbox/interfaces/sandbox.d.ts +61 -0
- package/dist/sandbox/interfaces/sandbox.d.ts.map +1 -0
- package/dist/sandbox/interfaces/sandbox.js +54 -0
- package/dist/sandbox/interfaces/sandbox.js.map +1 -0
- package/dist/schemas/code-session-resolution.d.ts +20 -0
- package/dist/schemas/code-session-resolution.d.ts.map +1 -0
- package/dist/schemas/code-session-resolution.js +11 -0
- package/dist/schemas/code-session-resolution.js.map +1 -0
- package/dist/schemas/session-operation.d.ts +73 -0
- package/dist/schemas/session-operation.d.ts.map +1 -0
- package/dist/schemas/session-operation.js +47 -0
- package/dist/schemas/session-operation.js.map +1 -0
- package/dist/schemas/voice.d.ts +87 -0
- package/dist/schemas/voice.d.ts.map +1 -0
- package/dist/schemas/voice.js +70 -0
- package/dist/schemas/voice.js.map +1 -0
- package/dist/voice/agent-voice.consumer.descriptor.d.ts +43 -0
- package/dist/voice/agent-voice.consumer.descriptor.d.ts.map +1 -0
- package/dist/voice/agent-voice.consumer.descriptor.js +20 -0
- package/dist/voice/agent-voice.consumer.descriptor.js.map +1 -0
- package/dist/voice/agent-voice.consumer.plugin.d.ts +4 -0
- package/dist/voice/agent-voice.consumer.plugin.d.ts.map +1 -0
- package/dist/voice/agent-voice.consumer.plugin.js +13 -0
- package/dist/voice/agent-voice.consumer.plugin.js.map +1 -0
- package/dist/voice/agent-voice.descriptor.d.ts +82 -0
- package/dist/voice/agent-voice.descriptor.d.ts.map +1 -0
- package/dist/voice/agent-voice.descriptor.js +79 -0
- package/dist/voice/agent-voice.descriptor.js.map +1 -0
- package/dist/voice/agent-voice.impl.consumer.d.ts +35 -0
- package/dist/voice/agent-voice.impl.consumer.d.ts.map +1 -0
- package/dist/voice/agent-voice.impl.consumer.js +50 -0
- package/dist/voice/agent-voice.impl.consumer.js.map +1 -0
- package/dist/voice/agent-voice.kind.d.ts +67 -0
- package/dist/voice/agent-voice.kind.d.ts.map +1 -0
- package/dist/voice/agent-voice.kind.js +26 -0
- package/dist/voice/agent-voice.kind.js.map +1 -0
- package/dist/voice/agent-voice.plugin.d.ts +4 -0
- package/dist/voice/agent-voice.plugin.d.ts.map +1 -0
- package/dist/voice/agent-voice.plugin.js +18 -0
- package/dist/voice/agent-voice.plugin.js.map +1 -0
- package/dist/voice/client.d.ts +38 -0
- package/dist/voice/client.d.ts.map +1 -0
- package/dist/voice/client.js +29 -0
- package/dist/voice/client.js.map +1 -0
- package/dist/voice/index.d.ts +14 -0
- package/dist/voice/index.d.ts.map +1 -0
- package/dist/voice/index.js +14 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/pipeline.d.ts +66 -0
- package/dist/voice/pipeline.d.ts.map +1 -0
- package/dist/voice/pipeline.js +330 -0
- package/dist/voice/pipeline.js.map +1 -0
- package/dist/voice/session.d.ts +29 -0
- package/dist/voice/session.d.ts.map +1 -0
- package/dist/voice/session.js +78 -0
- package/dist/voice/session.js.map +1 -0
- package/package.json +279 -4
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fleet-host `agent/code-session` descriptor instance.
|
|
3
|
+
*
|
|
4
|
+
* Backed by an enrolled machine's fleet daemon, reached through the HostRelay
|
|
5
|
+
* broker (the daemon dials OUT to the broker; NAT'd machines need no inbound
|
|
6
|
+
* path). Every operation is a `runtime/execution` invoke over the relay wire —
|
|
7
|
+
* the same L5-gated pipeline the daemon applies to every remote peer.
|
|
8
|
+
*
|
|
9
|
+
* `hardware: ['cloud']` — the IMPL runs in a cloud worker (it is the broker
|
|
10
|
+
* side of the wire); the SESSION runs on the machine, which is what
|
|
11
|
+
* `hostTarget: { kind: 'host' }` advertises to `resolveCodeSession`. The
|
|
12
|
+
* `hostId: 'relay'` here is a documentation placeholder exactly like the
|
|
13
|
+
* consumer descriptor's `'local'` — the REAL hostId arrives per-session via
|
|
14
|
+
* `CodeSessionInitializeInput.hostTarget` (validated + owner-checked by the
|
|
15
|
+
* platform route before the impl is ever reached).
|
|
16
|
+
*
|
|
17
|
+
* `trustLevel: '2b'` — writable-FS tier, same as the other two impls: the
|
|
18
|
+
* session edits a cloned repo on the owner's machine.
|
|
19
|
+
*/
|
|
20
|
+
declare const relayCodeSessionDescriptor: {
|
|
21
|
+
id: string;
|
|
22
|
+
kind: "agent/code-session";
|
|
23
|
+
name: string;
|
|
24
|
+
priority: number;
|
|
25
|
+
surfaces: ("agent" | "worker" | "direct")[];
|
|
26
|
+
timeoutMs: number;
|
|
27
|
+
memoryLimit: number;
|
|
28
|
+
trustLevel: "0" | "1" | "3" | "2a" | "2b";
|
|
29
|
+
os: ("linux" | "macos" | "windows")[];
|
|
30
|
+
arch: ("x64" | "arm64")[];
|
|
31
|
+
runtimeConfig: {
|
|
32
|
+
environmentName?: string | undefined;
|
|
33
|
+
node?: string | undefined;
|
|
34
|
+
bun?: string | undefined;
|
|
35
|
+
setupScript?: string | undefined;
|
|
36
|
+
};
|
|
37
|
+
exposedPorts: string[];
|
|
38
|
+
allowInteractiveShell: boolean;
|
|
39
|
+
billingGates: {
|
|
40
|
+
feature: string;
|
|
41
|
+
deniedMessage: string;
|
|
42
|
+
}[];
|
|
43
|
+
description?: string | undefined;
|
|
44
|
+
tags?: string[] | undefined;
|
|
45
|
+
hardware?: string[] | undefined;
|
|
46
|
+
enabled?: boolean | undefined;
|
|
47
|
+
capabilityId?: string | undefined;
|
|
48
|
+
requiredContext?: string[] | undefined;
|
|
49
|
+
optionalContext?: string[] | undefined;
|
|
50
|
+
config?: unknown;
|
|
51
|
+
retention?: string | {
|
|
52
|
+
reason: string;
|
|
53
|
+
maxAgeDays?: number | undefined;
|
|
54
|
+
maxEntries?: number | undefined;
|
|
55
|
+
maxBytes?: number | undefined;
|
|
56
|
+
cascadeFrom?: string | undefined;
|
|
57
|
+
ageField?: string | undefined;
|
|
58
|
+
enforcedBy?: string | undefined;
|
|
59
|
+
} | undefined;
|
|
60
|
+
hostTarget?: {
|
|
61
|
+
kind: "cloud";
|
|
62
|
+
} | {
|
|
63
|
+
kind: "host";
|
|
64
|
+
hostId: string;
|
|
65
|
+
} | {
|
|
66
|
+
kind: "provisioned";
|
|
67
|
+
adapter: string;
|
|
68
|
+
region?: string | undefined;
|
|
69
|
+
size?: string | undefined;
|
|
70
|
+
image?: string | undefined;
|
|
71
|
+
repo?: string | undefined;
|
|
72
|
+
branch?: string | undefined;
|
|
73
|
+
ttlHours?: number | undefined;
|
|
74
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
75
|
+
} | undefined;
|
|
76
|
+
};
|
|
77
|
+
export default relayCodeSessionDescriptor;
|
|
78
|
+
//# sourceMappingURL=agent-code-session-relay.descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-code-session-relay.descriptor.d.ts","sourceRoot":"","sources":["../../src/code-session-relay/agent-code-session-relay.descriptor.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgB9B,CAAC;AAEH,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createAgentCodeSessionDescriptor } from '@vibesdotdev/agent-execution/code-session/descriptor';
|
|
2
|
+
/**
|
|
3
|
+
* Fleet-host `agent/code-session` descriptor instance.
|
|
4
|
+
*
|
|
5
|
+
* Backed by an enrolled machine's fleet daemon, reached through the HostRelay
|
|
6
|
+
* broker (the daemon dials OUT to the broker; NAT'd machines need no inbound
|
|
7
|
+
* path). Every operation is a `runtime/execution` invoke over the relay wire —
|
|
8
|
+
* the same L5-gated pipeline the daemon applies to every remote peer.
|
|
9
|
+
*
|
|
10
|
+
* `hardware: ['cloud']` — the IMPL runs in a cloud worker (it is the broker
|
|
11
|
+
* side of the wire); the SESSION runs on the machine, which is what
|
|
12
|
+
* `hostTarget: { kind: 'host' }` advertises to `resolveCodeSession`. The
|
|
13
|
+
* `hostId: 'relay'` here is a documentation placeholder exactly like the
|
|
14
|
+
* consumer descriptor's `'local'` — the REAL hostId arrives per-session via
|
|
15
|
+
* `CodeSessionInitializeInput.hostTarget` (validated + owner-checked by the
|
|
16
|
+
* platform route before the impl is ever reached).
|
|
17
|
+
*
|
|
18
|
+
* `trustLevel: '2b'` — writable-FS tier, same as the other two impls: the
|
|
19
|
+
* session edits a cloned repo on the owner's machine.
|
|
20
|
+
*/
|
|
21
|
+
const relayCodeSessionDescriptor = createAgentCodeSessionDescriptor({
|
|
22
|
+
id: 'agent-code-session-relay',
|
|
23
|
+
name: 'Agent Code Session — Fleet Host (relay)',
|
|
24
|
+
description: 'Runs a persistent code session on an enrolled fleet machine over the HostRelay broker. Clones into the machine\'s declared session root (${runtime.localEnvironment.home}/code-sessions) and executes commands via the daemon-exposed runtime/execution kind (L5-gated).',
|
|
25
|
+
hardware: ['cloud'],
|
|
26
|
+
os: ['linux'],
|
|
27
|
+
arch: ['x64'],
|
|
28
|
+
priority: 100,
|
|
29
|
+
timeoutMs: 300_000,
|
|
30
|
+
memoryLimit: 1024,
|
|
31
|
+
trustLevel: '2b',
|
|
32
|
+
hostTarget: { kind: 'host', hostId: 'relay' },
|
|
33
|
+
runtimeConfig: {},
|
|
34
|
+
exposedPorts: [],
|
|
35
|
+
allowInteractiveShell: false
|
|
36
|
+
});
|
|
37
|
+
export default relayCodeSessionDescriptor;
|
|
38
|
+
//# sourceMappingURL=agent-code-session-relay.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-code-session-relay.descriptor.js","sourceRoot":"","sources":["../../src/code-session-relay/agent-code-session-relay.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,0BAA0B,GAAG,gCAAgC,CAAC;IACnE,EAAE,EAAE,0BAA0B;IAC9B,IAAI,EAAE,yCAAyC;IAC/C,WAAW,EACV,0QAA0Q;IAC3Q,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnB,EAAE,EAAE,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,CAAC,KAAK,CAAC;IACb,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAC7C,aAAa,EAAE,EAAE;IACjB,YAAY,EAAE,EAAE;IAChB,qBAAqB,EAAE,KAAK;CAC5B,CAAC,CAAC;AAEH,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fleet-host Agent Code Session — relay impl.
|
|
3
|
+
*
|
|
4
|
+
* Implements `CodeSessionInterface` against an enrolled machine's fleet daemon,
|
|
5
|
+
* reached through the HostRelay broker: `connectRelay` → `wireConsumer` → the
|
|
6
|
+
* daemon root's `runtime/execution` kind (the daemon's `LocalExecution`).
|
|
7
|
+
*
|
|
8
|
+
* Operations use the existing invoke/stream relay wire and pass the daemon's
|
|
9
|
+
* L5 pipeline (authz + friction) — the machine grants remote execution only
|
|
10
|
+
* when its daemon runs with `--labels sandbox:code-execution`, and the platform
|
|
11
|
+
* route has already owner-checked + label-checked the host before this impl is
|
|
12
|
+
* resolved.
|
|
13
|
+
*
|
|
14
|
+
* Every dial acts for the invocation's user (`runtime.scope.actor.userId`) and
|
|
15
|
+
* names that user to the broker on every leg, which authorizes the user against
|
|
16
|
+
* the host. Dials are cached per host AND user, so one user never rides another
|
|
17
|
+
* user's authorized connection. An invocation without a user fails with
|
|
18
|
+
* `AUTH_REQUIRED` before anything is dialed. The reverse leg (callbacks) is deliberately NOT wired: v1 needs no
|
|
19
|
+
* daemon→consumer invokes, so no reverse SSE channel is ever opened.
|
|
20
|
+
*
|
|
21
|
+
* workerd-safe: imports ONLY Node-free subpaths — the interface/descriptor from
|
|
22
|
+
* `@vibesdotdev/agent-execution/code-session`, the consumer transport from
|
|
23
|
+
* `@vibesdotdev/kernel-rpc(-relay)`, and the runner-agnostic git core from
|
|
24
|
+
* `@vibesdotdev/git-operations/core`. Never the Node-only consumer impl.
|
|
25
|
+
*
|
|
26
|
+
* Session ids are self-describing: `rly.<hostId>.<random>`. hostIds are
|
|
27
|
+
* platform-validated kebab-case (`[a-z0-9-]{2,64}` — never a dot), so parsing
|
|
28
|
+
* the machine back out of a sessionId is unambiguous. That makes `attach`/
|
|
29
|
+
* `runCommand`/etc. work from a fresh isolate with no session→host lookup —
|
|
30
|
+
* the same move the cloudflare impl makes by using the sessionId as the
|
|
31
|
+
* Sandbox DO name.
|
|
32
|
+
*
|
|
33
|
+
* Workspace: `<activeHome>/code-sessions/<sessionId>` on the receiving machine,
|
|
34
|
+
* using that runtime's canonical path roots. POSIX hosts only for
|
|
35
|
+
* now (commands run via the daemon's `sh`/`git`/`base64`).
|
|
36
|
+
*/
|
|
37
|
+
import { type AgentCodeSessionDescriptor } from '@vibesdotdev/agent-execution/code-session/descriptor';
|
|
38
|
+
import type { CodeSessionInterface, CodeSessionInitializeInput, CodeSessionCreateOrGetInput, CodeSessionHandle, RunCommandInput, RunCommandResult, PatchFileInput, GitApplyInput, GitApplyResult, GitStatusResult, GitCommitInput, GitCommitOptions, GitCommitResult, GitPushInput, ExposePortInput, ExposePortResult, PushCredentialResolver } from '@vibesdotdev/agent-execution/code-session/interface';
|
|
39
|
+
import { type KindContext, type RuntimeDescriptor, type RuntimeRef } from '@vibesdotdev/kernel';
|
|
40
|
+
import { type ResolveRelayBrokerOptions } from './relay-dial.ts';
|
|
41
|
+
/** Recover the machine a session lives on from its self-describing id. */
|
|
42
|
+
export declare function hostIdFromSessionId(sessionId: string): string;
|
|
43
|
+
export declare class RelayCodeSession implements CodeSessionInterface {
|
|
44
|
+
readonly descriptor: AgentCodeSessionDescriptor;
|
|
45
|
+
private readonly runtime;
|
|
46
|
+
private readonly dialOptions;
|
|
47
|
+
private pushCredentialResolver?;
|
|
48
|
+
/** sessionId -> repositoryId, recorded at initialize() for the push-credential fallback. */
|
|
49
|
+
private readonly sessionRepositoryIds;
|
|
50
|
+
/** (hostId, userId) -> in-flight/settled dial; evicted on close or DISCONNECTED. */
|
|
51
|
+
private readonly hosts;
|
|
52
|
+
private readonly pinnedRoots;
|
|
53
|
+
constructor(descriptor: AgentCodeSessionDescriptor, runtime: RuntimeRef, dialOptions?: ResolveRelayBrokerOptions);
|
|
54
|
+
/** This session's logger, on the runtime that owns it. */
|
|
55
|
+
private get log();
|
|
56
|
+
setPushCredentialResolver(resolver: PushCredentialResolver): void;
|
|
57
|
+
private dialHost;
|
|
58
|
+
private remoteHost;
|
|
59
|
+
/**
|
|
60
|
+
* Run `fn` against the machine's remote execution; on a DISCONNECTED wire
|
|
61
|
+
* (stale cached socket), evict + redial ONCE before giving up.
|
|
62
|
+
*/
|
|
63
|
+
private withHost;
|
|
64
|
+
private prepareEnvironment;
|
|
65
|
+
private withExecution;
|
|
66
|
+
private exec;
|
|
67
|
+
/** Run a compound shell script on the machine (paths pre-validated). */
|
|
68
|
+
private shell;
|
|
69
|
+
/** A foreground Git stage owns its remote process through exit and output EOF. */
|
|
70
|
+
private execGit;
|
|
71
|
+
private gitRunner;
|
|
72
|
+
/** Join required cleanup to the operation without masking either failure. */
|
|
73
|
+
private withRequiredCleanup;
|
|
74
|
+
private sessionRoot;
|
|
75
|
+
private sessionDir;
|
|
76
|
+
private metadataPath;
|
|
77
|
+
private persistSessionMetadata;
|
|
78
|
+
private readPersistedSessionMetadata;
|
|
79
|
+
private requireReadySessionMetadata;
|
|
80
|
+
private operationDirectory;
|
|
81
|
+
private operationRecordPath;
|
|
82
|
+
private readRemoteText;
|
|
83
|
+
private readOperationRecord;
|
|
84
|
+
private writeOperationRecord;
|
|
85
|
+
private prepareOperation;
|
|
86
|
+
/** Initial publication is serialized for both create-or-get and legacy adoption. */
|
|
87
|
+
private claimOperationRecord;
|
|
88
|
+
private withOperationLease;
|
|
89
|
+
/** Write a file at an ABSOLUTE machine path via base64 through the env (no quoting risk). */
|
|
90
|
+
private writeRemoteFile;
|
|
91
|
+
initialize(input: CodeSessionInitializeInput): Promise<CodeSessionHandle>;
|
|
92
|
+
createOrGet(input: CodeSessionCreateOrGetInput): Promise<CodeSessionHandle>;
|
|
93
|
+
attach(sessionId: string): Promise<CodeSessionHandle>;
|
|
94
|
+
/** Persist the paused flag; the remote workspace is kept and `runCommand` refuses until resume. */
|
|
95
|
+
pause(sessionId: string): Promise<CodeSessionHandle>;
|
|
96
|
+
resume(sessionId: string): Promise<CodeSessionHandle>;
|
|
97
|
+
runCommand(sessionId: string, input: RunCommandInput): Promise<RunCommandResult>;
|
|
98
|
+
listBackgroundProcesses(sessionId: string): Promise<[]>;
|
|
99
|
+
stopBackgroundProcess(sessionId: string, procId: string, signal?: string): Promise<boolean>;
|
|
100
|
+
readFile(sessionId: string, path: string): Promise<string>;
|
|
101
|
+
writeFile(sessionId: string, path: string, content: string): Promise<void>;
|
|
102
|
+
patchFile(sessionId: string, input: PatchFileInput): Promise<void>;
|
|
103
|
+
gitApply(sessionId: string, input: GitApplyInput): Promise<GitApplyResult>;
|
|
104
|
+
private applyDiff;
|
|
105
|
+
gitStatus(sessionId: string): Promise<GitStatusResult>;
|
|
106
|
+
gitCommit(sessionId: string, input: GitCommitInput, options?: GitCommitOptions): Promise<GitCommitResult>;
|
|
107
|
+
gitPush(sessionId: string, input?: GitPushInput): Promise<void>;
|
|
108
|
+
exposePort(sessionId: string, input: ExposePortInput): Promise<ExposePortResult>;
|
|
109
|
+
/** Find durable ownership without depending on metadata inside a deleting tree. */
|
|
110
|
+
private teardownOperation;
|
|
111
|
+
teardown(sessionId: string): Promise<void>;
|
|
112
|
+
/** Close every cached relay connection (tests + orderly shutdown). */
|
|
113
|
+
close(): Promise<void>;
|
|
114
|
+
}
|
|
115
|
+
declare class RelayCodeSessionImpl extends RelayCodeSession {
|
|
116
|
+
constructor(descriptor: RuntimeDescriptor, context: KindContext);
|
|
117
|
+
}
|
|
118
|
+
declare const _default: import("@vibesdotdev/kernel").RuntimeImplementationWrapper<typeof RelayCodeSessionImpl>;
|
|
119
|
+
export default _default;
|
|
120
|
+
//# sourceMappingURL=agent-code-session-relay.impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-code-session-relay.impl.d.ts","sourceRoot":"","sources":["../../src/code-session-relay/agent-code-session-relay.impl.ts"],"names":[],"mappings":"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"}
|