@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.
Files changed (191) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +53 -2
  3. package/dist/code-session/agent-code-session.consumer.descriptor.d.ts +68 -0
  4. package/dist/code-session/agent-code-session.consumer.descriptor.d.ts.map +1 -0
  5. package/dist/code-session/agent-code-session.consumer.descriptor.js +31 -0
  6. package/dist/code-session/agent-code-session.consumer.descriptor.js.map +1 -0
  7. package/dist/code-session/agent-code-session.consumer.plugin.d.ts +18 -0
  8. package/dist/code-session/agent-code-session.consumer.plugin.d.ts.map +1 -0
  9. package/dist/code-session/agent-code-session.consumer.plugin.js +47 -0
  10. package/dist/code-session/agent-code-session.consumer.plugin.js.map +1 -0
  11. package/dist/code-session/agent-code-session.descriptor.d.ts +163 -0
  12. package/dist/code-session/agent-code-session.descriptor.d.ts.map +1 -0
  13. package/dist/code-session/agent-code-session.descriptor.js +129 -0
  14. package/dist/code-session/agent-code-session.descriptor.js.map +1 -0
  15. package/dist/code-session/agent-code-session.impl.consumer.d.ts +224 -0
  16. package/dist/code-session/agent-code-session.impl.consumer.d.ts.map +1 -0
  17. package/dist/code-session/agent-code-session.impl.consumer.js +2131 -0
  18. package/dist/code-session/agent-code-session.impl.consumer.js.map +1 -0
  19. package/dist/code-session/agent-code-session.kind.d.ts +15 -0
  20. package/dist/code-session/agent-code-session.kind.d.ts.map +1 -0
  21. package/dist/code-session/agent-code-session.kind.js +17 -0
  22. package/dist/code-session/agent-code-session.kind.js.map +1 -0
  23. package/dist/code-session/agent-code-session.plugin.d.ts +17 -0
  24. package/dist/code-session/agent-code-session.plugin.d.ts.map +1 -0
  25. package/dist/code-session/agent-code-session.plugin.js +28 -0
  26. package/dist/code-session/agent-code-session.plugin.js.map +1 -0
  27. package/dist/code-session/billing/gates.d.ts +52 -0
  28. package/dist/code-session/billing/gates.d.ts.map +1 -0
  29. package/dist/code-session/billing/gates.js +75 -0
  30. package/dist/code-session/billing/gates.js.map +1 -0
  31. package/dist/code-session/client/index.d.ts +2 -0
  32. package/dist/code-session/client/index.d.ts.map +1 -0
  33. package/dist/code-session/client/index.js +2 -0
  34. package/dist/code-session/client/index.js.map +1 -0
  35. package/dist/code-session/client/resolve.d.ts +20 -0
  36. package/dist/code-session/client/resolve.d.ts.map +1 -0
  37. package/dist/code-session/client/resolve.js +145 -0
  38. package/dist/code-session/client/resolve.js.map +1 -0
  39. package/dist/code-session/docs/agent-code-session.docs.descriptor.d.ts +4 -0
  40. package/dist/code-session/docs/agent-code-session.docs.descriptor.d.ts.map +1 -0
  41. package/dist/code-session/docs/agent-code-session.docs.descriptor.js +109 -0
  42. package/dist/code-session/docs/agent-code-session.docs.descriptor.js.map +1 -0
  43. package/dist/code-session/git-credential.d.ts +87 -0
  44. package/dist/code-session/git-credential.d.ts.map +1 -0
  45. package/dist/code-session/git-credential.js +107 -0
  46. package/dist/code-session/git-credential.js.map +1 -0
  47. package/dist/code-session/host-target.d.ts +76 -0
  48. package/dist/code-session/host-target.d.ts.map +1 -0
  49. package/dist/code-session/host-target.js +81 -0
  50. package/dist/code-session/host-target.js.map +1 -0
  51. package/dist/code-session/index.d.ts +20 -0
  52. package/dist/code-session/index.d.ts.map +1 -0
  53. package/dist/code-session/index.js +20 -0
  54. package/dist/code-session/index.js.map +1 -0
  55. package/dist/code-session/interfaces/code-session.d.ts +448 -0
  56. package/dist/code-session/interfaces/code-session.d.ts.map +1 -0
  57. package/dist/code-session/interfaces/code-session.js +373 -0
  58. package/dist/code-session/interfaces/code-session.js.map +1 -0
  59. package/dist/code-session/operation-lease.d.ts +48 -0
  60. package/dist/code-session/operation-lease.d.ts.map +1 -0
  61. package/dist/code-session/operation-lease.js +73 -0
  62. package/dist/code-session/operation-lease.js.map +1 -0
  63. package/dist/code-session/remote-setup-custody.d.ts +59 -0
  64. package/dist/code-session/remote-setup-custody.d.ts.map +1 -0
  65. package/dist/code-session/remote-setup-custody.js +78 -0
  66. package/dist/code-session/remote-setup-custody.js.map +1 -0
  67. package/dist/code-session/remote-workspace-fs.d.ts +119 -0
  68. package/dist/code-session/remote-workspace-fs.d.ts.map +1 -0
  69. package/dist/code-session/remote-workspace-fs.js +257 -0
  70. package/dist/code-session/remote-workspace-fs.js.map +1 -0
  71. package/dist/code-session/session-metadata.d.ts +40 -0
  72. package/dist/code-session/session-metadata.d.ts.map +1 -0
  73. package/dist/code-session/session-metadata.js +69 -0
  74. package/dist/code-session/session-metadata.js.map +1 -0
  75. package/dist/code-session-relay/agent-code-session-relay.descriptor.d.ts +78 -0
  76. package/dist/code-session-relay/agent-code-session-relay.descriptor.d.ts.map +1 -0
  77. package/dist/code-session-relay/agent-code-session-relay.descriptor.js +38 -0
  78. package/dist/code-session-relay/agent-code-session-relay.descriptor.js.map +1 -0
  79. package/dist/code-session-relay/agent-code-session-relay.impl.d.ts +120 -0
  80. package/dist/code-session-relay/agent-code-session-relay.impl.d.ts.map +1 -0
  81. package/dist/code-session-relay/agent-code-session-relay.impl.js +1392 -0
  82. package/dist/code-session-relay/agent-code-session-relay.impl.js.map +1 -0
  83. package/dist/code-session-relay/agent-code-session-relay.plugin.d.ts +14 -0
  84. package/dist/code-session-relay/agent-code-session-relay.plugin.d.ts.map +1 -0
  85. package/dist/code-session-relay/agent-code-session-relay.plugin.js +25 -0
  86. package/dist/code-session-relay/agent-code-session-relay.plugin.js.map +1 -0
  87. package/dist/code-session-relay/index.d.ts +13 -0
  88. package/dist/code-session-relay/index.d.ts.map +1 -0
  89. package/dist/code-session-relay/index.js +13 -0
  90. package/dist/code-session-relay/index.js.map +1 -0
  91. package/dist/code-session-relay/relay-dial.d.ts +72 -0
  92. package/dist/code-session-relay/relay-dial.d.ts.map +1 -0
  93. package/dist/code-session-relay/relay-dial.js +177 -0
  94. package/dist/code-session-relay/relay-dial.js.map +1 -0
  95. package/dist/index.d.ts +10 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +10 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/sandbox/agent-sandbox.consumer.descriptor.d.ts +35 -0
  100. package/dist/sandbox/agent-sandbox.consumer.descriptor.d.ts.map +1 -0
  101. package/dist/sandbox/agent-sandbox.consumer.descriptor.js +19 -0
  102. package/dist/sandbox/agent-sandbox.consumer.descriptor.js.map +1 -0
  103. package/dist/sandbox/agent-sandbox.consumer.plugin.d.ts +9 -0
  104. package/dist/sandbox/agent-sandbox.consumer.plugin.d.ts.map +1 -0
  105. package/dist/sandbox/agent-sandbox.consumer.plugin.js +33 -0
  106. package/dist/sandbox/agent-sandbox.consumer.plugin.js.map +1 -0
  107. package/dist/sandbox/agent-sandbox.descriptor.d.ts +76 -0
  108. package/dist/sandbox/agent-sandbox.descriptor.d.ts.map +1 -0
  109. package/dist/sandbox/agent-sandbox.descriptor.js +57 -0
  110. package/dist/sandbox/agent-sandbox.descriptor.js.map +1 -0
  111. package/dist/sandbox/agent-sandbox.impl.consumer.d.ts +15 -0
  112. package/dist/sandbox/agent-sandbox.impl.consumer.d.ts.map +1 -0
  113. package/dist/sandbox/agent-sandbox.impl.consumer.js +23 -0
  114. package/dist/sandbox/agent-sandbox.impl.consumer.js.map +1 -0
  115. package/dist/sandbox/agent-sandbox.kind.d.ts +14 -0
  116. package/dist/sandbox/agent-sandbox.kind.d.ts.map +1 -0
  117. package/dist/sandbox/agent-sandbox.kind.js +16 -0
  118. package/dist/sandbox/agent-sandbox.kind.js.map +1 -0
  119. package/dist/sandbox/agent-sandbox.plugin.d.ts +15 -0
  120. package/dist/sandbox/agent-sandbox.plugin.d.ts.map +1 -0
  121. package/dist/sandbox/agent-sandbox.plugin.js +25 -0
  122. package/dist/sandbox/agent-sandbox.plugin.js.map +1 -0
  123. package/dist/sandbox/client/resolve.d.ts +21 -0
  124. package/dist/sandbox/client/resolve.d.ts.map +1 -0
  125. package/dist/sandbox/client/resolve.js +103 -0
  126. package/dist/sandbox/client/resolve.js.map +1 -0
  127. package/dist/sandbox/docs/agent-sandbox.docs.descriptor.d.ts +4 -0
  128. package/dist/sandbox/docs/agent-sandbox.docs.descriptor.d.ts.map +1 -0
  129. package/dist/sandbox/docs/agent-sandbox.docs.descriptor.js +75 -0
  130. package/dist/sandbox/docs/agent-sandbox.docs.descriptor.js.map +1 -0
  131. package/dist/sandbox/index.d.ts +15 -0
  132. package/dist/sandbox/index.d.ts.map +1 -0
  133. package/dist/sandbox/index.js +14 -0
  134. package/dist/sandbox/index.js.map +1 -0
  135. package/dist/sandbox/interfaces/sandbox.d.ts +61 -0
  136. package/dist/sandbox/interfaces/sandbox.d.ts.map +1 -0
  137. package/dist/sandbox/interfaces/sandbox.js +54 -0
  138. package/dist/sandbox/interfaces/sandbox.js.map +1 -0
  139. package/dist/schemas/code-session-resolution.d.ts +20 -0
  140. package/dist/schemas/code-session-resolution.d.ts.map +1 -0
  141. package/dist/schemas/code-session-resolution.js +11 -0
  142. package/dist/schemas/code-session-resolution.js.map +1 -0
  143. package/dist/schemas/session-operation.d.ts +73 -0
  144. package/dist/schemas/session-operation.d.ts.map +1 -0
  145. package/dist/schemas/session-operation.js +47 -0
  146. package/dist/schemas/session-operation.js.map +1 -0
  147. package/dist/schemas/voice.d.ts +87 -0
  148. package/dist/schemas/voice.d.ts.map +1 -0
  149. package/dist/schemas/voice.js +70 -0
  150. package/dist/schemas/voice.js.map +1 -0
  151. package/dist/voice/agent-voice.consumer.descriptor.d.ts +43 -0
  152. package/dist/voice/agent-voice.consumer.descriptor.d.ts.map +1 -0
  153. package/dist/voice/agent-voice.consumer.descriptor.js +20 -0
  154. package/dist/voice/agent-voice.consumer.descriptor.js.map +1 -0
  155. package/dist/voice/agent-voice.consumer.plugin.d.ts +4 -0
  156. package/dist/voice/agent-voice.consumer.plugin.d.ts.map +1 -0
  157. package/dist/voice/agent-voice.consumer.plugin.js +13 -0
  158. package/dist/voice/agent-voice.consumer.plugin.js.map +1 -0
  159. package/dist/voice/agent-voice.descriptor.d.ts +82 -0
  160. package/dist/voice/agent-voice.descriptor.d.ts.map +1 -0
  161. package/dist/voice/agent-voice.descriptor.js +79 -0
  162. package/dist/voice/agent-voice.descriptor.js.map +1 -0
  163. package/dist/voice/agent-voice.impl.consumer.d.ts +35 -0
  164. package/dist/voice/agent-voice.impl.consumer.d.ts.map +1 -0
  165. package/dist/voice/agent-voice.impl.consumer.js +50 -0
  166. package/dist/voice/agent-voice.impl.consumer.js.map +1 -0
  167. package/dist/voice/agent-voice.kind.d.ts +67 -0
  168. package/dist/voice/agent-voice.kind.d.ts.map +1 -0
  169. package/dist/voice/agent-voice.kind.js +26 -0
  170. package/dist/voice/agent-voice.kind.js.map +1 -0
  171. package/dist/voice/agent-voice.plugin.d.ts +4 -0
  172. package/dist/voice/agent-voice.plugin.d.ts.map +1 -0
  173. package/dist/voice/agent-voice.plugin.js +18 -0
  174. package/dist/voice/agent-voice.plugin.js.map +1 -0
  175. package/dist/voice/client.d.ts +38 -0
  176. package/dist/voice/client.d.ts.map +1 -0
  177. package/dist/voice/client.js +29 -0
  178. package/dist/voice/client.js.map +1 -0
  179. package/dist/voice/index.d.ts +14 -0
  180. package/dist/voice/index.d.ts.map +1 -0
  181. package/dist/voice/index.js +14 -0
  182. package/dist/voice/index.js.map +1 -0
  183. package/dist/voice/pipeline.d.ts +66 -0
  184. package/dist/voice/pipeline.d.ts.map +1 -0
  185. package/dist/voice/pipeline.js +330 -0
  186. package/dist/voice/pipeline.js.map +1 -0
  187. package/dist/voice/session.d.ts +29 -0
  188. package/dist/voice/session.d.ts.map +1 -0
  189. package/dist/voice/session.js +78 -0
  190. package/dist/voice/session.js.map +1 -0
  191. 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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"}