@shravansunder/agent-vm 0.0.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.
Files changed (245) hide show
  1. package/dist/backup/backup-archive-layout.d.ts +15 -0
  2. package/dist/backup/backup-archive-layout.d.ts.map +1 -0
  3. package/dist/backup/backup-archive-layout.js +34 -0
  4. package/dist/backup/backup-archive-layout.js.map +1 -0
  5. package/dist/backup/backup-create-operation.d.ts +9 -0
  6. package/dist/backup/backup-create-operation.d.ts.map +1 -0
  7. package/dist/backup/backup-create-operation.js +50 -0
  8. package/dist/backup/backup-create-operation.js.map +1 -0
  9. package/dist/backup/backup-encryption.d.ts +20 -0
  10. package/dist/backup/backup-encryption.d.ts.map +1 -0
  11. package/dist/backup/backup-encryption.js +71 -0
  12. package/dist/backup/backup-encryption.js.map +1 -0
  13. package/dist/backup/backup-manager.d.ts +42 -0
  14. package/dist/backup/backup-manager.d.ts.map +1 -0
  15. package/dist/backup/backup-manager.js +37 -0
  16. package/dist/backup/backup-manager.js.map +1 -0
  17. package/dist/backup/backup-restore-operation.d.ts +8 -0
  18. package/dist/backup/backup-restore-operation.d.ts.map +1 -0
  19. package/dist/backup/backup-restore-operation.js +53 -0
  20. package/dist/backup/backup-restore-operation.js.map +1 -0
  21. package/dist/build/docker-image-builder.d.ts +9 -0
  22. package/dist/build/docker-image-builder.d.ts.map +1 -0
  23. package/dist/build/docker-image-builder.js +24 -0
  24. package/dist/build/docker-image-builder.js.map +1 -0
  25. package/dist/build/gondolin-image-builder.d.ts +12 -0
  26. package/dist/build/gondolin-image-builder.d.ts.map +1 -0
  27. package/dist/build/gondolin-image-builder.js +23 -0
  28. package/dist/build/gondolin-image-builder.js.map +1 -0
  29. package/dist/build/stale-image-cleaner.d.ts +15 -0
  30. package/dist/build/stale-image-cleaner.d.ts.map +1 -0
  31. package/dist/build/stale-image-cleaner.js +46 -0
  32. package/dist/build/stale-image-cleaner.js.map +1 -0
  33. package/dist/cli/agent-vm-cli-support.d.ts +68 -0
  34. package/dist/cli/agent-vm-cli-support.d.ts.map +1 -0
  35. package/dist/cli/agent-vm-cli-support.js +72 -0
  36. package/dist/cli/agent-vm-cli-support.js.map +1 -0
  37. package/dist/cli/agent-vm-entrypoint.d.ts +9 -0
  38. package/dist/cli/agent-vm-entrypoint.d.ts.map +1 -0
  39. package/dist/cli/agent-vm-entrypoint.js +59 -0
  40. package/dist/cli/agent-vm-entrypoint.js.map +1 -0
  41. package/dist/cli/auth-interactive-command.d.ts +27 -0
  42. package/dist/cli/auth-interactive-command.d.ts.map +1 -0
  43. package/dist/cli/auth-interactive-command.js +83 -0
  44. package/dist/cli/auth-interactive-command.js.map +1 -0
  45. package/dist/cli/backup-commands.d.ts +11 -0
  46. package/dist/cli/backup-commands.d.ts.map +1 -0
  47. package/dist/cli/backup-commands.js +46 -0
  48. package/dist/cli/backup-commands.js.map +1 -0
  49. package/dist/cli/build-command.d.ts +22 -0
  50. package/dist/cli/build-command.d.ts.map +1 -0
  51. package/dist/cli/build-command.js +77 -0
  52. package/dist/cli/build-command.js.map +1 -0
  53. package/dist/cli/cache-commands.d.ts +29 -0
  54. package/dist/cli/cache-commands.d.ts.map +1 -0
  55. package/dist/cli/cache-commands.js +71 -0
  56. package/dist/cli/cache-commands.js.map +1 -0
  57. package/dist/cli/commands/auth-interactive-definition.d.ts +15 -0
  58. package/dist/cli/commands/auth-interactive-definition.d.ts.map +1 -0
  59. package/dist/cli/commands/auth-interactive-definition.js +36 -0
  60. package/dist/cli/commands/auth-interactive-definition.js.map +1 -0
  61. package/dist/cli/commands/backup-definition.d.ts +63 -0
  62. package/dist/cli/commands/backup-definition.d.ts.map +1 -0
  63. package/dist/cli/commands/backup-definition.js +73 -0
  64. package/dist/cli/commands/backup-definition.js.map +1 -0
  65. package/dist/cli/commands/build-definition.d.ts +13 -0
  66. package/dist/cli/commands/build-definition.d.ts.map +1 -0
  67. package/dist/cli/commands/build-definition.js +27 -0
  68. package/dist/cli/commands/build-definition.js.map +1 -0
  69. package/dist/cli/commands/cache-definition.d.ts +41 -0
  70. package/dist/cli/commands/cache-definition.d.ts.map +1 -0
  71. package/dist/cli/commands/cache-definition.js +41 -0
  72. package/dist/cli/commands/cache-definition.js.map +1 -0
  73. package/dist/cli/commands/command-definition-support.d.ts +25 -0
  74. package/dist/cli/commands/command-definition-support.d.ts.map +1 -0
  75. package/dist/cli/commands/command-definition-support.js +74 -0
  76. package/dist/cli/commands/command-definition-support.js.map +1 -0
  77. package/dist/cli/commands/controller-definition.d.ts +223 -0
  78. package/dist/cli/commands/controller-definition.d.ts.map +1 -0
  79. package/dist/cli/commands/controller-definition.js +200 -0
  80. package/dist/cli/commands/controller-definition.js.map +1 -0
  81. package/dist/cli/commands/create-app.d.ts +421 -0
  82. package/dist/cli/commands/create-app.d.ts.map +1 -0
  83. package/dist/cli/commands/create-app.js +26 -0
  84. package/dist/cli/commands/create-app.js.map +1 -0
  85. package/dist/cli/commands/doctor-definition.d.ts +11 -0
  86. package/dist/cli/commands/doctor-definition.d.ts.map +1 -0
  87. package/dist/cli/commands/doctor-definition.js +23 -0
  88. package/dist/cli/commands/doctor-definition.js.map +1 -0
  89. package/dist/cli/commands/init-definition.d.ts +13 -0
  90. package/dist/cli/commands/init-definition.d.ts.map +1 -0
  91. package/dist/cli/commands/init-definition.js +32 -0
  92. package/dist/cli/commands/init-definition.js.map +1 -0
  93. package/dist/cli/controller-operation-commands.d.ts +12 -0
  94. package/dist/cli/controller-operation-commands.d.ts.map +1 -0
  95. package/dist/cli/controller-operation-commands.js +74 -0
  96. package/dist/cli/controller-operation-commands.js.map +1 -0
  97. package/dist/cli/format-zod-error.d.ts +3 -0
  98. package/dist/cli/format-zod-error.d.ts.map +1 -0
  99. package/dist/cli/format-zod-error.js +18 -0
  100. package/dist/cli/format-zod-error.js.map +1 -0
  101. package/dist/cli/init-command.d.ts +29 -0
  102. package/dist/cli/init-command.d.ts.map +1 -0
  103. package/dist/cli/init-command.js +407 -0
  104. package/dist/cli/init-command.js.map +1 -0
  105. package/dist/cli/keychain-credential.d.ts +19 -0
  106. package/dist/cli/keychain-credential.d.ts.map +1 -0
  107. package/dist/cli/keychain-credential.js +52 -0
  108. package/dist/cli/keychain-credential.js.map +1 -0
  109. package/dist/cli/lease-commands.d.ts +11 -0
  110. package/dist/cli/lease-commands.d.ts.map +1 -0
  111. package/dist/cli/lease-commands.js +22 -0
  112. package/dist/cli/lease-commands.js.map +1 -0
  113. package/dist/cli/openclaw-plugin-bundle.d.ts +3 -0
  114. package/dist/cli/openclaw-plugin-bundle.d.ts.map +1 -0
  115. package/dist/cli/openclaw-plugin-bundle.js +30 -0
  116. package/dist/cli/openclaw-plugin-bundle.js.map +1 -0
  117. package/dist/cli/run-task.d.ts +4 -0
  118. package/dist/cli/run-task.d.ts.map +1 -0
  119. package/dist/cli/run-task.js +17 -0
  120. package/dist/cli/run-task.js.map +1 -0
  121. package/dist/cli/ssh-commands.d.ts +20 -0
  122. package/dist/cli/ssh-commands.d.ts.map +1 -0
  123. package/dist/cli/ssh-commands.js +72 -0
  124. package/dist/cli/ssh-commands.js.map +1 -0
  125. package/dist/config/system-config.d.ts +72 -0
  126. package/dist/config/system-config.d.ts.map +1 -0
  127. package/dist/config/system-config.js +121 -0
  128. package/dist/config/system-config.js.map +1 -0
  129. package/dist/controller/controller-runtime-operations.d.ts +62 -0
  130. package/dist/controller/controller-runtime-operations.d.ts.map +1 -0
  131. package/dist/controller/controller-runtime-operations.js +111 -0
  132. package/dist/controller/controller-runtime-operations.js.map +1 -0
  133. package/dist/controller/controller-runtime-support.d.ts +8 -0
  134. package/dist/controller/controller-runtime-support.d.ts.map +1 -0
  135. package/dist/controller/controller-runtime-support.js +15 -0
  136. package/dist/controller/controller-runtime-support.js.map +1 -0
  137. package/dist/controller/controller-runtime-types.d.ts +46 -0
  138. package/dist/controller/controller-runtime-types.d.ts.map +1 -0
  139. package/dist/controller/controller-runtime-types.js +2 -0
  140. package/dist/controller/controller-runtime-types.js.map +1 -0
  141. package/dist/controller/controller-runtime.d.ts +3 -0
  142. package/dist/controller/controller-runtime.d.ts.map +1 -0
  143. package/dist/controller/controller-runtime.js +135 -0
  144. package/dist/controller/controller-runtime.js.map +1 -0
  145. package/dist/controller/http/controller-client.d.ts +17 -0
  146. package/dist/controller/http/controller-client.d.ts.map +1 -0
  147. package/dist/controller/http/controller-client.js +76 -0
  148. package/dist/controller/http/controller-client.js.map +1 -0
  149. package/dist/controller/http/controller-http-route-support.d.ts +26 -0
  150. package/dist/controller/http/controller-http-route-support.d.ts.map +1 -0
  151. package/dist/controller/http/controller-http-route-support.js +21 -0
  152. package/dist/controller/http/controller-http-route-support.js.map +1 -0
  153. package/dist/controller/http/controller-http-routes.d.ts +20 -0
  154. package/dist/controller/http/controller-http-routes.d.ts.map +1 -0
  155. package/dist/controller/http/controller-http-routes.js +83 -0
  156. package/dist/controller/http/controller-http-routes.js.map +1 -0
  157. package/dist/controller/http/controller-http-server.d.ts +8 -0
  158. package/dist/controller/http/controller-http-server.d.ts.map +1 -0
  159. package/dist/controller/http/controller-http-server.js +21 -0
  160. package/dist/controller/http/controller-http-server.js.map +1 -0
  161. package/dist/controller/http/controller-request-schemas.d.ts +15 -0
  162. package/dist/controller/http/controller-request-schemas.d.ts.map +1 -0
  163. package/dist/controller/http/controller-request-schemas.js +15 -0
  164. package/dist/controller/http/controller-request-schemas.js.map +1 -0
  165. package/dist/controller/http/controller-zone-operation-routes.d.ts +4 -0
  166. package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -0
  167. package/dist/controller/http/controller-zone-operation-routes.js +54 -0
  168. package/dist/controller/http/controller-zone-operation-routes.js.map +1 -0
  169. package/dist/controller/leases/idle-reaper.d.ts +12 -0
  170. package/dist/controller/leases/idle-reaper.d.ts.map +1 -0
  171. package/dist/controller/leases/idle-reaper.js +15 -0
  172. package/dist/controller/leases/idle-reaper.js.map +1 -0
  173. package/dist/controller/leases/lease-manager.d.ts +57 -0
  174. package/dist/controller/leases/lease-manager.d.ts.map +1 -0
  175. package/dist/controller/leases/lease-manager.js +83 -0
  176. package/dist/controller/leases/lease-manager.js.map +1 -0
  177. package/dist/controller/leases/tcp-pool.d.ts +11 -0
  178. package/dist/controller/leases/tcp-pool.d.ts.map +1 -0
  179. package/dist/controller/leases/tcp-pool.js +26 -0
  180. package/dist/controller/leases/tcp-pool.js.map +1 -0
  181. package/dist/gateway/credential-manager.d.ts +8 -0
  182. package/dist/gateway/credential-manager.d.ts.map +1 -0
  183. package/dist/gateway/credential-manager.js +46 -0
  184. package/dist/gateway/credential-manager.js.map +1 -0
  185. package/dist/gateway/gateway-image-builder.d.ts +13 -0
  186. package/dist/gateway/gateway-image-builder.d.ts.map +1 -0
  187. package/dist/gateway/gateway-image-builder.js +19 -0
  188. package/dist/gateway/gateway-image-builder.js.map +1 -0
  189. package/dist/gateway/gateway-lifecycle-loader.d.ts +3 -0
  190. package/dist/gateway/gateway-lifecycle-loader.d.ts.map +1 -0
  191. package/dist/gateway/gateway-lifecycle-loader.js +10 -0
  192. package/dist/gateway/gateway-lifecycle-loader.js.map +1 -0
  193. package/dist/gateway/gateway-zone-orchestrator.d.ts +10 -0
  194. package/dist/gateway/gateway-zone-orchestrator.d.ts.map +1 -0
  195. package/dist/gateway/gateway-zone-orchestrator.js +92 -0
  196. package/dist/gateway/gateway-zone-orchestrator.js.map +1 -0
  197. package/dist/gateway/gateway-zone-support.d.ts +49 -0
  198. package/dist/gateway/gateway-zone-support.d.ts.map +1 -0
  199. package/dist/gateway/gateway-zone-support.js +8 -0
  200. package/dist/gateway/gateway-zone-support.js.map +1 -0
  201. package/dist/gateway-api-client/gateway-api-client.d.ts +34 -0
  202. package/dist/gateway-api-client/gateway-api-client.d.ts.map +1 -0
  203. package/dist/gateway-api-client/gateway-api-client.js +29 -0
  204. package/dist/gateway-api-client/gateway-api-client.js.map +1 -0
  205. package/dist/gateway-api-client/gateway-websocket-client.d.ts +45 -0
  206. package/dist/gateway-api-client/gateway-websocket-client.d.ts.map +1 -0
  207. package/dist/gateway-api-client/gateway-websocket-client.js +140 -0
  208. package/dist/gateway-api-client/gateway-websocket-client.js.map +1 -0
  209. package/dist/index.d.ts +15 -0
  210. package/dist/index.d.ts.map +1 -0
  211. package/dist/index.js +15 -0
  212. package/dist/index.js.map +1 -0
  213. package/dist/operations/controller-status.d.ts +13 -0
  214. package/dist/operations/controller-status.d.ts.map +1 -0
  215. package/dist/operations/controller-status.js +13 -0
  216. package/dist/operations/controller-status.js.map +1 -0
  217. package/dist/operations/credentials-refresh.d.ts +10 -0
  218. package/dist/operations/credentials-refresh.d.ts.map +1 -0
  219. package/dist/operations/credentials-refresh.js +9 -0
  220. package/dist/operations/credentials-refresh.js.map +1 -0
  221. package/dist/operations/destroy-zone.d.ts +14 -0
  222. package/dist/operations/destroy-zone.d.ts.map +1 -0
  223. package/dist/operations/destroy-zone.js +19 -0
  224. package/dist/operations/destroy-zone.js.map +1 -0
  225. package/dist/operations/doctor.d.ts +22 -0
  226. package/dist/operations/doctor.d.ts.map +1 -0
  227. package/dist/operations/doctor.js +83 -0
  228. package/dist/operations/doctor.js.map +1 -0
  229. package/dist/operations/upgrade-zone.d.ts +13 -0
  230. package/dist/operations/upgrade-zone.d.ts.map +1 -0
  231. package/dist/operations/upgrade-zone.js +11 -0
  232. package/dist/operations/upgrade-zone.js.map +1 -0
  233. package/dist/operations/zone-logs.d.ts +9 -0
  234. package/dist/operations/zone-logs.d.ts.map +1 -0
  235. package/dist/operations/zone-logs.js +7 -0
  236. package/dist/operations/zone-logs.js.map +1 -0
  237. package/dist/shared/run-task.d.ts +3 -0
  238. package/dist/shared/run-task.d.ts.map +1 -0
  239. package/dist/shared/run-task.js +12 -0
  240. package/dist/shared/run-task.js.map +1 -0
  241. package/dist/tool-vm/tool-vm-lifecycle.d.ts +27 -0
  242. package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -0
  243. package/dist/tool-vm/tool-vm-lifecycle.js +54 -0
  244. package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -0
  245. package/package.json +41 -0
@@ -0,0 +1,45 @@
1
+ interface WebSocketLike {
2
+ addEventListener(event: string, handler: (data: {
3
+ data: string;
4
+ }) => void): void;
5
+ close(): void;
6
+ send(data: string): void;
7
+ }
8
+ /** Options for the connect handshake sent to the gateway. */
9
+ export interface GatewayConnectOptions {
10
+ readonly token: string;
11
+ readonly clientId?: string;
12
+ readonly clientVersion?: string;
13
+ readonly platform?: string;
14
+ readonly role?: 'operator' | 'node';
15
+ readonly scopes?: readonly string[];
16
+ readonly protocolVersion?: number;
17
+ }
18
+ /** Successful connect response payload from the gateway. */
19
+ interface ConnectHelloOkPayload {
20
+ readonly type: 'hello-ok';
21
+ readonly protocol: number;
22
+ readonly policy?: {
23
+ readonly tickIntervalMs?: number;
24
+ };
25
+ readonly auth?: {
26
+ readonly deviceToken?: string;
27
+ readonly role?: string;
28
+ readonly scopes?: readonly string[];
29
+ };
30
+ }
31
+ export interface GatewayWebSocketClient {
32
+ /** Resolves when the connect handshake completes. Rejects if the gateway refuses. */
33
+ readonly connected: Promise<ConnectHelloOkPayload>;
34
+ chatSend(params: {
35
+ readonly session: string;
36
+ readonly text: string;
37
+ }): Promise<unknown>;
38
+ close(): void;
39
+ }
40
+ export declare function createGatewayWebSocketClient(options: {
41
+ readonly createSocket: () => WebSocketLike;
42
+ readonly connectOptions: GatewayConnectOptions;
43
+ }): GatewayWebSocketClient;
44
+ export {};
45
+ //# sourceMappingURL=gateway-websocket-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-websocket-client.d.ts","sourceRoot":"","sources":["../../src/gateway-api-client/gateway-websocket-client.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACtB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACjF,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA6DD,6DAA6D;AAC7D,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,4DAA4D;AAC5D,UAAU,qBAAqB;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE;QACf,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;CACF;AAWD,MAAM,WAAW,sBAAsB;IACtC,qFAAqF;IACrF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxF,KAAK,IAAI,IAAI,CAAC;CACd;AAID,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,aAAa,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;CAC/C,GAAG,sBAAsB,CA+GzB"}
@@ -0,0 +1,140 @@
1
+ function parseGatewayFrame(rawFrame) {
2
+ const parsed = JSON.parse(rawFrame);
3
+ if (typeof parsed !== 'object' || parsed === null) {
4
+ return null;
5
+ }
6
+ const candidate = parsed;
7
+ if (candidate.type !== 'req' && candidate.type !== 'res' && candidate.type !== 'event') {
8
+ return null;
9
+ }
10
+ const errorMessage = typeof candidate.error === 'object' &&
11
+ candidate.error !== null &&
12
+ typeof candidate.error.message === 'string'
13
+ ? candidate.error.message
14
+ : null;
15
+ return {
16
+ type: candidate.type,
17
+ ...(typeof candidate.id === 'string' ? { id: candidate.id } : {}),
18
+ ...(typeof candidate.method === 'string' ? { method: candidate.method } : {}),
19
+ ...(typeof candidate.ok === 'boolean' ? { ok: candidate.ok } : {}),
20
+ ...('payload' in candidate ? { payload: candidate.payload } : {}),
21
+ ...(typeof candidate.event === 'string' ? { event: candidate.event } : {}),
22
+ ...(errorMessage !== null ? { error: { message: errorMessage } } : {}),
23
+ };
24
+ }
25
+ function isConnectChallengePayload(value) {
26
+ return (typeof value === 'object' &&
27
+ value !== null &&
28
+ typeof value.nonce === 'string' &&
29
+ typeof value.ts === 'number');
30
+ }
31
+ function isConnectHelloOkPayload(value) {
32
+ return (typeof value === 'object' &&
33
+ value !== null &&
34
+ value.type === 'hello-ok' &&
35
+ typeof value.protocol === 'number');
36
+ }
37
+ const DEFAULT_PROTOCOL_VERSION = 3;
38
+ export function createGatewayWebSocketClient(options) {
39
+ const socket = options.createSocket();
40
+ const pending = new Map();
41
+ let nextId = 1;
42
+ /** Resolves when the connect handshake succeeds. */
43
+ let resolveConnected;
44
+ let rejectConnected;
45
+ const connected = new Promise((resolve, reject) => {
46
+ resolveConnected = resolve;
47
+ rejectConnected = reject;
48
+ });
49
+ /** Tracks whether the handshake has completed so we can gate outbound requests. */
50
+ let handshakeComplete = false;
51
+ socket.addEventListener('message', (event) => {
52
+ const message = parseGatewayFrame(event.data);
53
+ if (!message) {
54
+ return;
55
+ }
56
+ // --- Handle the connect.challenge event from the gateway ---
57
+ if (message.type === 'event' && message.event === 'connect.challenge') {
58
+ if (!isConnectChallengePayload(message.payload)) {
59
+ rejectConnected(new Error('Gateway sent invalid connect.challenge payload'));
60
+ return;
61
+ }
62
+ const challengePayload = message.payload;
63
+ const connectOpts = options.connectOptions;
64
+ const protocolVersion = connectOpts.protocolVersion ?? DEFAULT_PROTOCOL_VERSION;
65
+ const connectId = String(nextId);
66
+ nextId += 1;
67
+ pending.set(connectId, {
68
+ resolve: (payload) => {
69
+ if (!isConnectHelloOkPayload(payload)) {
70
+ rejectConnected(new Error('Gateway sent invalid hello-ok payload'));
71
+ return;
72
+ }
73
+ handshakeComplete = true;
74
+ resolveConnected(payload);
75
+ },
76
+ reject: (error) => {
77
+ rejectConnected(error);
78
+ },
79
+ });
80
+ socket.send(JSON.stringify({
81
+ type: 'req',
82
+ id: connectId,
83
+ method: 'connect',
84
+ params: {
85
+ minProtocol: protocolVersion,
86
+ maxProtocol: protocolVersion,
87
+ client: {
88
+ id: connectOpts.clientId ?? 'agent-vm',
89
+ version: connectOpts.clientVersion ?? '0.0.0',
90
+ platform: connectOpts.platform ?? 'node',
91
+ mode: connectOpts.role ?? 'operator',
92
+ },
93
+ role: connectOpts.role ?? 'operator',
94
+ scopes: connectOpts.scopes ?? ['operator.read', 'operator.write'],
95
+ caps: [],
96
+ commands: [],
97
+ permissions: {},
98
+ auth: { token: connectOpts.token },
99
+ device: {
100
+ nonce: challengePayload.nonce,
101
+ },
102
+ },
103
+ }));
104
+ return;
105
+ }
106
+ // --- Handle response frames ---
107
+ if (message.type === 'res' && message.id) {
108
+ const request = pending.get(message.id);
109
+ if (request) {
110
+ pending.delete(message.id);
111
+ if (message.ok) {
112
+ request.resolve(message.payload);
113
+ }
114
+ else {
115
+ request.reject(new Error(message.error?.message ?? 'Gateway WebSocket request failed'));
116
+ }
117
+ }
118
+ }
119
+ });
120
+ function sendRequest(method, params) {
121
+ const id = String(nextId);
122
+ nextId += 1;
123
+ return new Promise((resolve, reject) => {
124
+ pending.set(id, { resolve, reject });
125
+ socket.send(JSON.stringify({ type: 'req', id, method, params }));
126
+ });
127
+ }
128
+ return {
129
+ connected,
130
+ chatSend: async (params) => {
131
+ // Wait for the connect handshake to complete before sending requests.
132
+ if (!handshakeComplete) {
133
+ await connected;
134
+ }
135
+ return await sendRequest('chat.send', params);
136
+ },
137
+ close: () => socket.close(),
138
+ };
139
+ }
140
+ //# sourceMappingURL=gateway-websocket-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-websocket-client.js","sourceRoot":"","sources":["../../src/gateway-api-client/gateway-websocket-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export * from './controller/http/controller-client.js';
2
+ export * from './controller/http/controller-http-routes.js';
3
+ export * from './operations/credentials-refresh.js';
4
+ export * from './gateway/credential-manager.js';
5
+ export * from './operations/destroy-zone.js';
6
+ export * from './operations/doctor.js';
7
+ export * from './gateway/gateway-zone-orchestrator.js';
8
+ export * from './controller/leases/idle-reaper.js';
9
+ export * from './controller/leases/lease-manager.js';
10
+ export * from './operations/zone-logs.js';
11
+ export * from './operations/controller-status.js';
12
+ export * from './config/system-config.js';
13
+ export * from './controller/leases/tcp-pool.js';
14
+ export * from './operations/upgrade-zone.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ export * from './controller/http/controller-client.js';
2
+ export * from './controller/http/controller-http-routes.js';
3
+ export * from './operations/credentials-refresh.js';
4
+ export * from './gateway/credential-manager.js';
5
+ export * from './operations/destroy-zone.js';
6
+ export * from './operations/doctor.js';
7
+ export * from './gateway/gateway-zone-orchestrator.js';
8
+ export * from './controller/leases/idle-reaper.js';
9
+ export * from './controller/leases/lease-manager.js';
10
+ export * from './operations/zone-logs.js';
11
+ export * from './operations/controller-status.js';
12
+ export * from './config/system-config.js';
13
+ export * from './controller/leases/tcp-pool.js';
14
+ export * from './operations/upgrade-zone.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { SystemConfig } from '../config/system-config.js';
2
+ export interface ControllerStatusSummary {
3
+ readonly controllerPort: number;
4
+ readonly toolProfiles: string[];
5
+ readonly zones: {
6
+ readonly gatewayType: SystemConfig['zones'][number]['gateway']['type'];
7
+ readonly id: string;
8
+ readonly ingressPort: number;
9
+ readonly toolProfile: string;
10
+ }[];
11
+ }
12
+ export declare function buildControllerStatus(systemConfig: SystemConfig): ControllerStatusSummary;
13
+ //# sourceMappingURL=controller-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-status.d.ts","sourceRoot":"","sources":["../../src/operations/controller-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE;QACf,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;QACvE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC7B,EAAE,CAAC;CACJ;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,uBAAuB,CAWzF"}
@@ -0,0 +1,13 @@
1
+ export function buildControllerStatus(systemConfig) {
2
+ return {
3
+ controllerPort: systemConfig.host.controllerPort,
4
+ toolProfiles: Object.keys(systemConfig.toolProfiles),
5
+ zones: systemConfig.zones.map((zone) => ({
6
+ gatewayType: zone.gateway.type,
7
+ id: zone.id,
8
+ ingressPort: zone.gateway.port,
9
+ toolProfile: zone.toolProfile,
10
+ })),
11
+ };
12
+ }
13
+ //# sourceMappingURL=controller-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-status.js","sourceRoot":"","sources":["../../src/operations/controller-status.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,qBAAqB,CAAC,YAA0B;IAC/D,OAAO;QACN,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,cAAc;QAChD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QACpD,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC,CAAC;KACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare function runControllerCredentialsRefresh(options: {
2
+ readonly zoneId: string;
3
+ }, dependencies: {
4
+ readonly refreshZoneSecrets: (zoneId: string) => Promise<void>;
5
+ readonly restartGatewayZone: (zoneId: string) => Promise<void>;
6
+ }): Promise<{
7
+ readonly ok: true;
8
+ readonly zoneId: string;
9
+ }>;
10
+ //# sourceMappingURL=credentials-refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials-refresh.d.ts","sourceRoot":"","sources":["../../src/operations/credentials-refresh.ts"],"names":[],"mappings":"AAAA,wBAAsB,+BAA+B,CACpD,OAAO,EAAE;IACR,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,EAAE;IACb,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,GACC,OAAO,CAAC;IACV,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,CAAC,CAQD"}
@@ -0,0 +1,9 @@
1
+ export async function runControllerCredentialsRefresh(options, dependencies) {
2
+ await dependencies.refreshZoneSecrets(options.zoneId);
3
+ await dependencies.restartGatewayZone(options.zoneId);
4
+ return {
5
+ ok: true,
6
+ zoneId: options.zoneId,
7
+ };
8
+ }
9
+ //# sourceMappingURL=credentials-refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials-refresh.js","sourceRoot":"","sources":["../../src/operations/credentials-refresh.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACpD,OAEC,EACD,YAGC;IAKD,MAAM,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO;QACN,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { SystemConfig } from '../config/system-config.js';
2
+ export declare function runControllerDestroy(options: {
3
+ readonly purge: boolean;
4
+ readonly systemConfig: SystemConfig;
5
+ readonly zoneId: string;
6
+ }, dependencies: {
7
+ readonly releaseZoneLeases: (zoneId: string) => Promise<void>;
8
+ readonly stopGatewayZone: (zoneId: string) => Promise<void>;
9
+ }): Promise<{
10
+ readonly ok: true;
11
+ readonly purged: boolean;
12
+ readonly zoneId: string;
13
+ }>;
14
+ //# sourceMappingURL=destroy-zone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy-zone.d.ts","sourceRoot":"","sources":["../../src/operations/destroy-zone.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,wBAAsB,oBAAoB,CACzC,OAAO,EAAE;IACR,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,EAAE;IACb,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D,GACC,OAAO,CAAC;IACV,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,CAAC,CAqBD"}
@@ -0,0 +1,19 @@
1
+ import fs from 'node:fs/promises';
2
+ export async function runControllerDestroy(options, dependencies) {
3
+ const zone = options.systemConfig.zones.find((candidateZone) => candidateZone.id === options.zoneId);
4
+ if (!zone) {
5
+ throw new Error(`Unknown zone '${options.zoneId}'.`);
6
+ }
7
+ await dependencies.stopGatewayZone(options.zoneId);
8
+ await dependencies.releaseZoneLeases(options.zoneId);
9
+ if (options.purge) {
10
+ await fs.rm(zone.gateway.stateDir, { force: true, recursive: true });
11
+ await fs.rm(zone.gateway.workspaceDir, { force: true, recursive: true });
12
+ }
13
+ return {
14
+ ok: true,
15
+ purged: options.purge,
16
+ zoneId: options.zoneId,
17
+ };
18
+ }
19
+ //# sourceMappingURL=destroy-zone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy-zone.js","sourceRoot":"","sources":["../../src/operations/destroy-zone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIlC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,OAIC,EACD,YAGC;IAMD,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAC3C,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CACtD,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACN,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,OAAO,CAAC,KAAK;QACrB,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { SystemConfig } from '../config/system-config.js';
2
+ export interface DoctorCheck {
3
+ readonly name: string;
4
+ readonly ok: boolean;
5
+ readonly hint?: string;
6
+ readonly value?: number;
7
+ }
8
+ export interface RunControllerDoctorOptions {
9
+ readonly availableBinaries?: ReadonlySet<string>;
10
+ readonly diskFreeBytes?: number;
11
+ readonly env: NodeJS.ProcessEnv;
12
+ readonly occupiedPorts?: ReadonlySet<number>;
13
+ readonly nodeVersion: string;
14
+ readonly systemConfig: SystemConfig;
15
+ readonly totalMemoryBytes?: number;
16
+ }
17
+ export interface ControllerDoctorResult {
18
+ readonly ok: boolean;
19
+ readonly checks: DoctorCheck[];
20
+ }
21
+ export declare function runControllerDoctor(options: RunControllerDoctorOptions): ControllerDoctorResult;
22
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;CAC/B;AAeD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sBAAsB,CAoF/F"}
@@ -0,0 +1,83 @@
1
+ function checkBinary(name, binaryName, installHint, availableBinaries) {
2
+ return {
3
+ name,
4
+ ok: availableBinaries.has(binaryName),
5
+ ...(!availableBinaries.has(binaryName) ? { hint: installHint } : {}),
6
+ };
7
+ }
8
+ export function runControllerDoctor(options) {
9
+ const nodeMajorVersion = Number.parseInt(options.nodeVersion.replace(/^v/u, '').split('.')[0] ?? '0', 10);
10
+ const occupiedPorts = options.occupiedPorts ?? new Set();
11
+ const diskFreeBytes = options.diskFreeBytes ?? Number.POSITIVE_INFINITY;
12
+ const totalMemoryBytes = options.totalMemoryBytes ?? Number.POSITIVE_INFINITY;
13
+ const availableBinaries = options.availableBinaries ?? new Set();
14
+ const configuredGatewayBytes = options.systemConfig.zones.reduce((totalBytes, zone) => {
15
+ const memoryMatch = /^(\d+)([GgMm])$/u.exec(zone.gateway.memory);
16
+ if (!memoryMatch) {
17
+ return totalBytes;
18
+ }
19
+ const numericValue = Number.parseInt(memoryMatch[1] ?? '0', 10);
20
+ const multiplier = (memoryMatch[2] ?? '').toLowerCase() === 'g' ? 1024 * 1024 * 1024 : 1024 * 1024;
21
+ return totalBytes + numericValue * multiplier;
22
+ }, 0);
23
+ const tokenSource = options.systemConfig.host.secretsProvider.tokenSource;
24
+ const tokenSourceReady = (() => {
25
+ switch (tokenSource.type) {
26
+ case 'env': {
27
+ const envVar = tokenSource.envVar ?? 'OP_SERVICE_ACCOUNT_TOKEN';
28
+ return typeof options.env[envVar] === 'string' && options.env[envVar].length > 0;
29
+ }
30
+ case 'op-cli':
31
+ return availableBinaries.has('op');
32
+ case 'keychain':
33
+ return availableBinaries.has('security');
34
+ }
35
+ })();
36
+ const checks = [
37
+ {
38
+ name: 'node-version',
39
+ ok: nodeMajorVersion >= 24,
40
+ ...(nodeMajorVersion < 24 ? { hint: 'Requires Node.js >= 24. Install via nvm or fnm.' } : {}),
41
+ },
42
+ {
43
+ name: '1password-token-source',
44
+ ok: tokenSourceReady,
45
+ ...(!tokenSourceReady && tokenSource.type === 'env'
46
+ ? { hint: `Set ${tokenSource.envVar ?? 'OP_SERVICE_ACCOUNT_TOKEN'} environment variable` }
47
+ : {}),
48
+ ...(!tokenSourceReady && tokenSource.type === 'op-cli'
49
+ ? { hint: 'Install 1Password CLI: brew install 1password-cli' }
50
+ : {}),
51
+ },
52
+ checkBinary('qemu', 'qemu-system-aarch64', 'brew install qemu', availableBinaries),
53
+ checkBinary('age', 'age', 'brew install age', availableBinaries),
54
+ checkBinary('1password-cli', 'op', 'brew install 1password-cli', availableBinaries),
55
+ {
56
+ name: 'controller-port',
57
+ ok: options.systemConfig.host.controllerPort > 0 &&
58
+ !occupiedPorts.has(options.systemConfig.host.controllerPort),
59
+ value: options.systemConfig.host.controllerPort,
60
+ },
61
+ ...options.systemConfig.zones.map((zone) => ({
62
+ name: `gateway-port-${zone.id}`,
63
+ ok: zone.gateway.port > 0 && !occupiedPorts.has(zone.gateway.port),
64
+ value: zone.gateway.port,
65
+ })),
66
+ {
67
+ name: 'disk-space',
68
+ ok: diskFreeBytes >= 10 * 1024 * 1024 * 1024,
69
+ ...(diskFreeBytes < 10 * 1024 * 1024 * 1024
70
+ ? { hint: 'Need at least 10GB free disk space' }
71
+ : {}),
72
+ },
73
+ {
74
+ name: 'memory-budget',
75
+ ok: totalMemoryBytes >= configuredGatewayBytes,
76
+ },
77
+ ];
78
+ return {
79
+ ok: checks.every((check) => check.ok),
80
+ checks,
81
+ };
82
+ }
83
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/operations/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { SystemConfig } from '../config/system-config.js';
2
+ export declare function runControllerUpgrade(options: {
3
+ readonly systemConfig: SystemConfig;
4
+ readonly zoneId: string;
5
+ }, dependencies: {
6
+ readonly rebuildGatewayImage: (zoneId: string) => Promise<void>;
7
+ readonly restartGatewayZone: (zoneId: string) => Promise<void>;
8
+ readonly stopGatewayZone: (zoneId: string) => Promise<void>;
9
+ }): Promise<{
10
+ readonly ok: true;
11
+ readonly zoneId: string;
12
+ }>;
13
+ //# sourceMappingURL=upgrade-zone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-zone.d.ts","sourceRoot":"","sources":["../../src/operations/upgrade-zone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,wBAAsB,oBAAoB,CACzC,OAAO,EAAE;IACR,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,EAAE;IACb,QAAQ,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D,GACC,OAAO,CAAC;IACV,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,CAAC,CAUD"}
@@ -0,0 +1,11 @@
1
+ export async function runControllerUpgrade(options, dependencies) {
2
+ void options.systemConfig;
3
+ await dependencies.rebuildGatewayImage(options.zoneId);
4
+ await dependencies.stopGatewayZone(options.zoneId);
5
+ await dependencies.restartGatewayZone(options.zoneId);
6
+ return {
7
+ ok: true,
8
+ zoneId: options.zoneId,
9
+ };
10
+ }
11
+ //# sourceMappingURL=upgrade-zone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-zone.js","sourceRoot":"","sources":["../../src/operations/upgrade-zone.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,OAGC,EACD,YAIC;IAKD,KAAK,OAAO,CAAC,YAAY,CAAC;IAC1B,MAAM,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO;QACN,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function runControllerLogs(options: {
2
+ readonly zoneId: string;
3
+ }, dependencies: {
4
+ readonly readGatewayLogs: (zoneId: string) => Promise<string>;
5
+ }): Promise<{
6
+ readonly output: string;
7
+ readonly zoneId: string;
8
+ }>;
9
+ //# sourceMappingURL=zone-logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-logs.d.ts","sourceRoot":"","sources":["../../src/operations/zone-logs.ts"],"names":[],"mappings":"AAAA,wBAAsB,iBAAiB,CACtC,OAAO,EAAE;IACR,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,EAAE;IACb,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D,GACC,OAAO,CAAC;IACV,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,CAAC,CAKD"}
@@ -0,0 +1,7 @@
1
+ export async function runControllerLogs(options, dependencies) {
2
+ return {
3
+ output: await dependencies.readGatewayLogs(options.zoneId),
4
+ zoneId: options.zoneId,
5
+ };
6
+ }
7
+ //# sourceMappingURL=zone-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-logs.js","sourceRoot":"","sources":["../../src/operations/zone-logs.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,OAEC,EACD,YAEC;IAKD,OAAO;QACN,MAAM,EAAE,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1D,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type RunTaskFn = (title: string, fn: () => Promise<void>) => Promise<void>;
2
+ export declare function runTaskWithResult<TResult>(runTaskStep: RunTaskFn, title: string, fn: () => Promise<TResult>): Promise<TResult>;
3
+ //# sourceMappingURL=run-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-task.d.ts","sourceRoot":"","sources":["../../src/shared/run-task.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElF,wBAAsB,iBAAiB,CAAC,OAAO,EAC9C,WAAW,EAAE,SAAS,EACtB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GACxB,OAAO,CAAC,OAAO,CAAC,CAUlB"}
@@ -0,0 +1,12 @@
1
+ export async function runTaskWithResult(runTaskStep, title, fn) {
2
+ const noResult = Symbol(title);
3
+ let taskResult = noResult;
4
+ await runTaskStep(title, async () => {
5
+ taskResult = await fn();
6
+ });
7
+ if (taskResult === noResult) {
8
+ throw new Error(`Task '${title}' did not produce a result.`);
9
+ }
10
+ return taskResult;
11
+ }
12
+ //# sourceMappingURL=run-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-task.js","sourceRoot":"","sources":["../../src/shared/run-task.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,WAAsB,EACtB,KAAa,EACb,EAA0B;IAE1B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,UAAU,GAA8B,QAAQ,CAAC;IACrD,MAAM,WAAW,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACnC,UAAU,GAAG,MAAM,EAAE,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,6BAA6B,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { createManagedVm as createManagedVmFromCore, type ManagedVm } from '@shravansunder/agent-vm-gondolin-core';
2
+ import { buildGondolinImage as buildGondolinImageDefault } from '../build/gondolin-image-builder.js';
3
+ import type { SystemConfig } from '../config/system-config.js';
4
+ import type { ToolProfile } from '../controller/leases/lease-manager.js';
5
+ export interface ToolVmLifecycleDependencies {
6
+ readonly buildGondolinImage?: (options: {
7
+ readonly buildConfigPath: string;
8
+ readonly cacheDir: string;
9
+ readonly fullReset?: boolean;
10
+ }) => ReturnType<typeof buildGondolinImageDefault>;
11
+ readonly createManagedVm?: typeof createManagedVmFromCore;
12
+ }
13
+ export declare function resolveToolVmWorkspaceDirectory(options: {
14
+ readonly profile: ToolProfile;
15
+ readonly tcpSlot: number;
16
+ readonly zoneId: string;
17
+ }): string;
18
+ export declare function cleanToolVmWorkspace(workspaceDirectory: string): Promise<void>;
19
+ export declare function createToolVm(options: {
20
+ readonly cacheDir: string;
21
+ readonly profile: ToolProfile;
22
+ readonly systemConfig: SystemConfig;
23
+ readonly tcpSlot: number;
24
+ readonly workspaceDir: string;
25
+ readonly zoneId: string;
26
+ }, dependencies?: ToolVmLifecycleDependencies): Promise<ManagedVm>;
27
+ //# sourceMappingURL=tool-vm-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-vm-lifecycle.d.ts","sourceRoot":"","sources":["../../src/tool-vm/tool-vm-lifecycle.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,eAAe,IAAI,uBAAuB,EAC1C,KAAK,SAAS,EACd,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACrG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE;QACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;KAC7B,KAAK,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,uBAAuB,CAAC;CAC1D;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACxD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAET;AAED,wBAAsB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAepF;AAED,wBAAsB,YAAY,CACjC,OAAO,EAAE;IACR,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,GAAE,2BAAgC,GAC5C,OAAO,CAAC,SAAS,CAAC,CAgCpB"}