@agent-vm/agent-vm 0.0.20

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 (366) hide show
  1. package/LICENSE +21 -0
  2. package/dist/backup/backup-archive-layout.d.ts +15 -0
  3. package/dist/backup/backup-archive-layout.d.ts.map +1 -0
  4. package/dist/backup/backup-archive-layout.js +34 -0
  5. package/dist/backup/backup-archive-layout.js.map +1 -0
  6. package/dist/backup/backup-create-operation.d.ts +9 -0
  7. package/dist/backup/backup-create-operation.d.ts.map +1 -0
  8. package/dist/backup/backup-create-operation.js +50 -0
  9. package/dist/backup/backup-create-operation.js.map +1 -0
  10. package/dist/backup/backup-encryption.d.ts +20 -0
  11. package/dist/backup/backup-encryption.d.ts.map +1 -0
  12. package/dist/backup/backup-encryption.js +93 -0
  13. package/dist/backup/backup-encryption.js.map +1 -0
  14. package/dist/backup/backup-manager.d.ts +42 -0
  15. package/dist/backup/backup-manager.d.ts.map +1 -0
  16. package/dist/backup/backup-manager.js +37 -0
  17. package/dist/backup/backup-manager.js.map +1 -0
  18. package/dist/backup/backup-restore-operation.d.ts +8 -0
  19. package/dist/backup/backup-restore-operation.d.ts.map +1 -0
  20. package/dist/backup/backup-restore-operation.js +53 -0
  21. package/dist/backup/backup-restore-operation.js.map +1 -0
  22. package/dist/build/docker-image-builder.d.ts +11 -0
  23. package/dist/build/docker-image-builder.d.ts.map +1 -0
  24. package/dist/build/docker-image-builder.js +24 -0
  25. package/dist/build/docker-image-builder.js.map +1 -0
  26. package/dist/build/gondolin-image-builder.d.ts +16 -0
  27. package/dist/build/gondolin-image-builder.d.ts.map +1 -0
  28. package/dist/build/gondolin-image-builder.js +52 -0
  29. package/dist/build/gondolin-image-builder.js.map +1 -0
  30. package/dist/build/runtime-versions.d.ts +13 -0
  31. package/dist/build/runtime-versions.d.ts.map +1 -0
  32. package/dist/build/runtime-versions.js +100 -0
  33. package/dist/build/runtime-versions.js.map +1 -0
  34. package/dist/build/stale-image-cleaner.d.ts +17 -0
  35. package/dist/build/stale-image-cleaner.d.ts.map +1 -0
  36. package/dist/build/stale-image-cleaner.js +70 -0
  37. package/dist/build/stale-image-cleaner.js.map +1 -0
  38. package/dist/cli/agent-vm-cli-support.d.ts +78 -0
  39. package/dist/cli/agent-vm-cli-support.d.ts.map +1 -0
  40. package/dist/cli/agent-vm-cli-support.js +77 -0
  41. package/dist/cli/agent-vm-cli-support.js.map +1 -0
  42. package/dist/cli/agent-vm-entrypoint.d.ts +9 -0
  43. package/dist/cli/agent-vm-entrypoint.d.ts.map +1 -0
  44. package/dist/cli/agent-vm-entrypoint.js +59 -0
  45. package/dist/cli/agent-vm-entrypoint.js.map +1 -0
  46. package/dist/cli/auth-interactive-command.d.ts +27 -0
  47. package/dist/cli/auth-interactive-command.d.ts.map +1 -0
  48. package/dist/cli/auth-interactive-command.js +83 -0
  49. package/dist/cli/auth-interactive-command.js.map +1 -0
  50. package/dist/cli/backup-commands.d.ts +11 -0
  51. package/dist/cli/backup-commands.d.ts.map +1 -0
  52. package/dist/cli/backup-commands.js +46 -0
  53. package/dist/cli/backup-commands.js.map +1 -0
  54. package/dist/cli/build-command.d.ts +24 -0
  55. package/dist/cli/build-command.d.ts.map +1 -0
  56. package/dist/cli/build-command.js +132 -0
  57. package/dist/cli/build-command.js.map +1 -0
  58. package/dist/cli/cache-commands.d.ts +32 -0
  59. package/dist/cli/cache-commands.d.ts.map +1 -0
  60. package/dist/cli/cache-commands.js +106 -0
  61. package/dist/cli/cache-commands.js.map +1 -0
  62. package/dist/cli/commands/auth-interactive-definition.d.ts +15 -0
  63. package/dist/cli/commands/auth-interactive-definition.d.ts.map +1 -0
  64. package/dist/cli/commands/auth-interactive-definition.js +36 -0
  65. package/dist/cli/commands/auth-interactive-definition.js.map +1 -0
  66. package/dist/cli/commands/backup-definition.d.ts +63 -0
  67. package/dist/cli/commands/backup-definition.d.ts.map +1 -0
  68. package/dist/cli/commands/backup-definition.js +73 -0
  69. package/dist/cli/commands/backup-definition.js.map +1 -0
  70. package/dist/cli/commands/build-definition.d.ts +13 -0
  71. package/dist/cli/commands/build-definition.d.ts.map +1 -0
  72. package/dist/cli/commands/build-definition.js +27 -0
  73. package/dist/cli/commands/build-definition.js.map +1 -0
  74. package/dist/cli/commands/cache-definition.d.ts +41 -0
  75. package/dist/cli/commands/cache-definition.d.ts.map +1 -0
  76. package/dist/cli/commands/cache-definition.js +41 -0
  77. package/dist/cli/commands/cache-definition.js.map +1 -0
  78. package/dist/cli/commands/command-definition-support.d.ts +26 -0
  79. package/dist/cli/commands/command-definition-support.d.ts.map +1 -0
  80. package/dist/cli/commands/command-definition-support.js +85 -0
  81. package/dist/cli/commands/command-definition-support.js.map +1 -0
  82. package/dist/cli/commands/config-definition.d.ts +27 -0
  83. package/dist/cli/commands/config-definition.d.ts.map +1 -0
  84. package/dist/cli/commands/config-definition.js +60 -0
  85. package/dist/cli/commands/config-definition.js.map +1 -0
  86. package/dist/cli/commands/controller-definition.d.ts +225 -0
  87. package/dist/cli/commands/controller-definition.d.ts.map +1 -0
  88. package/dist/cli/commands/controller-definition.js +211 -0
  89. package/dist/cli/commands/controller-definition.js.map +1 -0
  90. package/dist/cli/commands/create-app.d.ts +541 -0
  91. package/dist/cli/commands/create-app.d.ts.map +1 -0
  92. package/dist/cli/commands/create-app.js +32 -0
  93. package/dist/cli/commands/create-app.js.map +1 -0
  94. package/dist/cli/commands/doctor-definition.d.ts +11 -0
  95. package/dist/cli/commands/doctor-definition.d.ts.map +1 -0
  96. package/dist/cli/commands/doctor-definition.js +23 -0
  97. package/dist/cli/commands/doctor-definition.js.map +1 -0
  98. package/dist/cli/commands/init-definition.d.ts +34 -0
  99. package/dist/cli/commands/init-definition.d.ts.map +1 -0
  100. package/dist/cli/commands/init-definition.js +134 -0
  101. package/dist/cli/commands/init-definition.js.map +1 -0
  102. package/dist/cli/commands/resources-definition.d.ts +55 -0
  103. package/dist/cli/commands/resources-definition.d.ts.map +1 -0
  104. package/dist/cli/commands/resources-definition.js +93 -0
  105. package/dist/cli/commands/resources-definition.js.map +1 -0
  106. package/dist/cli/commands/validate-definition.d.ts +11 -0
  107. package/dist/cli/commands/validate-definition.d.ts.map +1 -0
  108. package/dist/cli/commands/validate-definition.js +20 -0
  109. package/dist/cli/commands/validate-definition.js.map +1 -0
  110. package/dist/cli/config-commands.d.ts +10 -0
  111. package/dist/cli/config-commands.d.ts.map +1 -0
  112. package/dist/cli/config-commands.js +103 -0
  113. package/dist/cli/config-commands.js.map +1 -0
  114. package/dist/cli/controller-operation-commands.d.ts +12 -0
  115. package/dist/cli/controller-operation-commands.d.ts.map +1 -0
  116. package/dist/cli/controller-operation-commands.js +133 -0
  117. package/dist/cli/controller-operation-commands.js.map +1 -0
  118. package/dist/cli/format-zod-error.d.ts +3 -0
  119. package/dist/cli/format-zod-error.d.ts.map +1 -0
  120. package/dist/cli/format-zod-error.js +18 -0
  121. package/dist/cli/format-zod-error.js.map +1 -0
  122. package/dist/cli/init-command.d.ts +52 -0
  123. package/dist/cli/init-command.d.ts.map +1 -0
  124. package/dist/cli/init-command.js +645 -0
  125. package/dist/cli/init-command.js.map +1 -0
  126. package/dist/cli/keychain-credential.d.ts +19 -0
  127. package/dist/cli/keychain-credential.d.ts.map +1 -0
  128. package/dist/cli/keychain-credential.js +52 -0
  129. package/dist/cli/keychain-credential.js.map +1 -0
  130. package/dist/cli/lease-commands.d.ts +11 -0
  131. package/dist/cli/lease-commands.d.ts.map +1 -0
  132. package/dist/cli/lease-commands.js +22 -0
  133. package/dist/cli/lease-commands.js.map +1 -0
  134. package/dist/cli/openclaw-plugin-bundle.d.ts +10 -0
  135. package/dist/cli/openclaw-plugin-bundle.d.ts.map +1 -0
  136. package/dist/cli/openclaw-plugin-bundle.js +37 -0
  137. package/dist/cli/openclaw-plugin-bundle.js.map +1 -0
  138. package/dist/cli/resource-contract-templates.d.ts +8 -0
  139. package/dist/cli/resource-contract-templates.d.ts.map +1 -0
  140. package/dist/cli/resource-contract-templates.js +157 -0
  141. package/dist/cli/resource-contract-templates.js.map +1 -0
  142. package/dist/cli/resources-commands.d.ts +19 -0
  143. package/dist/cli/resources-commands.d.ts.map +1 -0
  144. package/dist/cli/resources-commands.js +158 -0
  145. package/dist/cli/resources-commands.js.map +1 -0
  146. package/dist/cli/run-task.d.ts +4 -0
  147. package/dist/cli/run-task.d.ts.map +1 -0
  148. package/dist/cli/run-task.js +17 -0
  149. package/dist/cli/run-task.js.map +1 -0
  150. package/dist/cli/ssh-commands.d.ts +20 -0
  151. package/dist/cli/ssh-commands.d.ts.map +1 -0
  152. package/dist/cli/ssh-commands.js +72 -0
  153. package/dist/cli/ssh-commands.js.map +1 -0
  154. package/dist/cli/vm-host-system-templates.d.ts +12 -0
  155. package/dist/cli/vm-host-system-templates.d.ts.map +1 -0
  156. package/dist/cli/vm-host-system-templates.js +186 -0
  157. package/dist/cli/vm-host-system-templates.js.map +1 -0
  158. package/dist/config/resource-contracts/index.d.ts +3 -0
  159. package/dist/config/resource-contracts/index.d.ts.map +1 -0
  160. package/dist/config/resource-contracts/index.js +2 -0
  161. package/dist/config/resource-contracts/index.js.map +1 -0
  162. package/dist/config/resource-contracts/repo-resource-contract-types.d.ts +110 -0
  163. package/dist/config/resource-contracts/repo-resource-contract-types.d.ts.map +1 -0
  164. package/dist/config/resource-contracts/repo-resource-contract-types.js +2 -0
  165. package/dist/config/resource-contracts/repo-resource-contract-types.js.map +1 -0
  166. package/dist/config/resource-contracts/resource-contract-schemas.d.ts +198 -0
  167. package/dist/config/resource-contracts/resource-contract-schemas.d.ts.map +1 -0
  168. package/dist/config/resource-contracts/resource-contract-schemas.js +163 -0
  169. package/dist/config/resource-contracts/resource-contract-schemas.js.map +1 -0
  170. package/dist/config/system-cache-identifier.d.ts +22 -0
  171. package/dist/config/system-cache-identifier.d.ts.map +1 -0
  172. package/dist/config/system-cache-identifier.js +49 -0
  173. package/dist/config/system-cache-identifier.js.map +1 -0
  174. package/dist/config/system-config.d.ts +111 -0
  175. package/dist/config/system-config.d.ts.map +1 -0
  176. package/dist/config/system-config.js +267 -0
  177. package/dist/config/system-config.js.map +1 -0
  178. package/dist/controller/active-task-registry.d.ts +32 -0
  179. package/dist/controller/active-task-registry.d.ts.map +1 -0
  180. package/dist/controller/active-task-registry.js +83 -0
  181. package/dist/controller/active-task-registry.js.map +1 -0
  182. package/dist/controller/composite-secret-resolver.d.ts +3 -0
  183. package/dist/controller/composite-secret-resolver.d.ts.map +1 -0
  184. package/dist/controller/composite-secret-resolver.js +38 -0
  185. package/dist/controller/composite-secret-resolver.js.map +1 -0
  186. package/dist/controller/controller-runtime-operations.d.ts +62 -0
  187. package/dist/controller/controller-runtime-operations.d.ts.map +1 -0
  188. package/dist/controller/controller-runtime-operations.js +99 -0
  189. package/dist/controller/controller-runtime-operations.js.map +1 -0
  190. package/dist/controller/controller-runtime-support.d.ts +10 -0
  191. package/dist/controller/controller-runtime-support.d.ts.map +1 -0
  192. package/dist/controller/controller-runtime-support.js +36 -0
  193. package/dist/controller/controller-runtime-support.js.map +1 -0
  194. package/dist/controller/controller-runtime-types.d.ts +58 -0
  195. package/dist/controller/controller-runtime-types.d.ts.map +1 -0
  196. package/dist/controller/controller-runtime-types.js +2 -0
  197. package/dist/controller/controller-runtime-types.js.map +1 -0
  198. package/dist/controller/controller-runtime.d.ts +3 -0
  199. package/dist/controller/controller-runtime.d.ts.map +1 -0
  200. package/dist/controller/controller-runtime.js +326 -0
  201. package/dist/controller/controller-runtime.js.map +1 -0
  202. package/dist/controller/git-auth-support.d.ts +3 -0
  203. package/dist/controller/git-auth-support.d.ts.map +1 -0
  204. package/dist/controller/git-auth-support.js +11 -0
  205. package/dist/controller/git-auth-support.js.map +1 -0
  206. package/dist/controller/git-pull-default-operations.d.ts +34 -0
  207. package/dist/controller/git-pull-default-operations.d.ts.map +1 -0
  208. package/dist/controller/git-pull-default-operations.js +175 -0
  209. package/dist/controller/git-pull-default-operations.js.map +1 -0
  210. package/dist/controller/git-push-operations.d.ts +38 -0
  211. package/dist/controller/git-push-operations.d.ts.map +1 -0
  212. package/dist/controller/git-push-operations.js +247 -0
  213. package/dist/controller/git-push-operations.js.map +1 -0
  214. package/dist/controller/heartbeat-sender.d.ts +13 -0
  215. package/dist/controller/heartbeat-sender.d.ts.map +1 -0
  216. package/dist/controller/heartbeat-sender.js +94 -0
  217. package/dist/controller/heartbeat-sender.js.map +1 -0
  218. package/dist/controller/http/controller-client.d.ts +17 -0
  219. package/dist/controller/http/controller-client.d.ts.map +1 -0
  220. package/dist/controller/http/controller-client.js +76 -0
  221. package/dist/controller/http/controller-client.js.map +1 -0
  222. package/dist/controller/http/controller-http-route-support.d.ts +46 -0
  223. package/dist/controller/http/controller-http-route-support.d.ts.map +1 -0
  224. package/dist/controller/http/controller-http-route-support.js +25 -0
  225. package/dist/controller/http/controller-http-route-support.js.map +1 -0
  226. package/dist/controller/http/controller-http-routes.d.ts +22 -0
  227. package/dist/controller/http/controller-http-routes.d.ts.map +1 -0
  228. package/dist/controller/http/controller-http-routes.js +107 -0
  229. package/dist/controller/http/controller-http-routes.js.map +1 -0
  230. package/dist/controller/http/controller-http-server.d.ts +8 -0
  231. package/dist/controller/http/controller-http-server.d.ts.map +1 -0
  232. package/dist/controller/http/controller-http-server.js +21 -0
  233. package/dist/controller/http/controller-http-server.js.map +1 -0
  234. package/dist/controller/http/controller-request-schemas.d.ts +102 -0
  235. package/dist/controller/http/controller-request-schemas.d.ts.map +1 -0
  236. package/dist/controller/http/controller-request-schemas.js +66 -0
  237. package/dist/controller/http/controller-request-schemas.js.map +1 -0
  238. package/dist/controller/http/controller-zone-operation-routes.d.ts +4 -0
  239. package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -0
  240. package/dist/controller/http/controller-zone-operation-routes.js +223 -0
  241. package/dist/controller/http/controller-zone-operation-routes.js.map +1 -0
  242. package/dist/controller/leases/idle-reaper.d.ts +12 -0
  243. package/dist/controller/leases/idle-reaper.d.ts.map +1 -0
  244. package/dist/controller/leases/idle-reaper.js +15 -0
  245. package/dist/controller/leases/idle-reaper.js.map +1 -0
  246. package/dist/controller/leases/lease-manager.d.ts +58 -0
  247. package/dist/controller/leases/lease-manager.d.ts.map +1 -0
  248. package/dist/controller/leases/lease-manager.js +81 -0
  249. package/dist/controller/leases/lease-manager.js.map +1 -0
  250. package/dist/controller/leases/tcp-pool.d.ts +11 -0
  251. package/dist/controller/leases/tcp-pool.d.ts.map +1 -0
  252. package/dist/controller/leases/tcp-pool.js +26 -0
  253. package/dist/controller/leases/tcp-pool.js.map +1 -0
  254. package/dist/controller/request-heartbeat-registry.d.ts +15 -0
  255. package/dist/controller/request-heartbeat-registry.d.ts.map +1 -0
  256. package/dist/controller/request-heartbeat-registry.js +54 -0
  257. package/dist/controller/request-heartbeat-registry.js.map +1 -0
  258. package/dist/controller/task-config-builder.d.ts +14 -0
  259. package/dist/controller/task-config-builder.d.ts.map +1 -0
  260. package/dist/controller/task-config-builder.js +14 -0
  261. package/dist/controller/task-config-builder.js.map +1 -0
  262. package/dist/controller/task-state-reader.d.ts +17 -0
  263. package/dist/controller/task-state-reader.d.ts.map +1 -0
  264. package/dist/controller/task-state-reader.js +87 -0
  265. package/dist/controller/task-state-reader.js.map +1 -0
  266. package/dist/controller/worker-task-runner.d.ts +67 -0
  267. package/dist/controller/worker-task-runner.d.ts.map +1 -0
  268. package/dist/controller/worker-task-runner.js +497 -0
  269. package/dist/controller/worker-task-runner.js.map +1 -0
  270. package/dist/gateway/credential-manager.d.ts +8 -0
  271. package/dist/gateway/credential-manager.d.ts.map +1 -0
  272. package/dist/gateway/credential-manager.js +65 -0
  273. package/dist/gateway/credential-manager.js.map +1 -0
  274. package/dist/gateway/gateway-image-builder.d.ts +14 -0
  275. package/dist/gateway/gateway-image-builder.d.ts.map +1 -0
  276. package/dist/gateway/gateway-image-builder.js +33 -0
  277. package/dist/gateway/gateway-image-builder.js.map +1 -0
  278. package/dist/gateway/gateway-lifecycle-loader.d.ts +3 -0
  279. package/dist/gateway/gateway-lifecycle-loader.d.ts.map +1 -0
  280. package/dist/gateway/gateway-lifecycle-loader.js +10 -0
  281. package/dist/gateway/gateway-lifecycle-loader.js.map +1 -0
  282. package/dist/gateway/gateway-recovery.d.ts +19 -0
  283. package/dist/gateway/gateway-recovery.d.ts.map +1 -0
  284. package/dist/gateway/gateway-recovery.js +147 -0
  285. package/dist/gateway/gateway-recovery.js.map +1 -0
  286. package/dist/gateway/gateway-runtime-record.d.ts +33 -0
  287. package/dist/gateway/gateway-runtime-record.d.ts.map +1 -0
  288. package/dist/gateway/gateway-runtime-record.js +114 -0
  289. package/dist/gateway/gateway-runtime-record.js.map +1 -0
  290. package/dist/gateway/gateway-zone-orchestrator.d.ts +14 -0
  291. package/dist/gateway/gateway-zone-orchestrator.d.ts.map +1 -0
  292. package/dist/gateway/gateway-zone-orchestrator.js +161 -0
  293. package/dist/gateway/gateway-zone-orchestrator.js.map +1 -0
  294. package/dist/gateway/gateway-zone-support.d.ts +55 -0
  295. package/dist/gateway/gateway-zone-support.d.ts.map +1 -0
  296. package/dist/gateway/gateway-zone-support.js +42 -0
  297. package/dist/gateway/gateway-zone-support.js.map +1 -0
  298. package/dist/gateway-api-client/gateway-api-client.d.ts +34 -0
  299. package/dist/gateway-api-client/gateway-api-client.d.ts.map +1 -0
  300. package/dist/gateway-api-client/gateway-api-client.js +29 -0
  301. package/dist/gateway-api-client/gateway-api-client.js.map +1 -0
  302. package/dist/gateway-api-client/gateway-websocket-client.d.ts +45 -0
  303. package/dist/gateway-api-client/gateway-websocket-client.d.ts.map +1 -0
  304. package/dist/gateway-api-client/gateway-websocket-client.js +140 -0
  305. package/dist/gateway-api-client/gateway-websocket-client.js.map +1 -0
  306. package/dist/index.d.ts +17 -0
  307. package/dist/index.d.ts.map +1 -0
  308. package/dist/index.js +17 -0
  309. package/dist/index.js.map +1 -0
  310. package/dist/operations/config-validation.d.ts +15 -0
  311. package/dist/operations/config-validation.d.ts.map +1 -0
  312. package/dist/operations/config-validation.js +126 -0
  313. package/dist/operations/config-validation.js.map +1 -0
  314. package/dist/operations/controller-status.d.ts +13 -0
  315. package/dist/operations/controller-status.d.ts.map +1 -0
  316. package/dist/operations/controller-status.js +13 -0
  317. package/dist/operations/controller-status.js.map +1 -0
  318. package/dist/operations/credentials-refresh.d.ts +10 -0
  319. package/dist/operations/credentials-refresh.d.ts.map +1 -0
  320. package/dist/operations/credentials-refresh.js +9 -0
  321. package/dist/operations/credentials-refresh.js.map +1 -0
  322. package/dist/operations/destroy-zone.d.ts +14 -0
  323. package/dist/operations/destroy-zone.d.ts.map +1 -0
  324. package/dist/operations/destroy-zone.js +19 -0
  325. package/dist/operations/destroy-zone.js.map +1 -0
  326. package/dist/operations/doctor.d.ts +23 -0
  327. package/dist/operations/doctor.d.ts.map +1 -0
  328. package/dist/operations/doctor.js +148 -0
  329. package/dist/operations/doctor.js.map +1 -0
  330. package/dist/operations/upgrade-zone.d.ts +12 -0
  331. package/dist/operations/upgrade-zone.d.ts.map +1 -0
  332. package/dist/operations/upgrade-zone.js +10 -0
  333. package/dist/operations/upgrade-zone.js.map +1 -0
  334. package/dist/operations/zone-logs.d.ts +9 -0
  335. package/dist/operations/zone-logs.d.ts.map +1 -0
  336. package/dist/operations/zone-logs.js +7 -0
  337. package/dist/operations/zone-logs.js.map +1 -0
  338. package/dist/resources/repo-resource-contract-loader.d.ts +12 -0
  339. package/dist/resources/repo-resource-contract-loader.d.ts.map +1 -0
  340. package/dist/resources/repo-resource-contract-loader.js +100 -0
  341. package/dist/resources/repo-resource-contract-loader.js.map +1 -0
  342. package/dist/resources/repo-resource-provider-runner.d.ts +32 -0
  343. package/dist/resources/repo-resource-provider-runner.d.ts.map +1 -0
  344. package/dist/resources/repo-resource-provider-runner.js +415 -0
  345. package/dist/resources/repo-resource-provider-runner.js.map +1 -0
  346. package/dist/resources/resource-compiler.d.ts +18 -0
  347. package/dist/resources/resource-compiler.d.ts.map +1 -0
  348. package/dist/resources/resource-compiler.js +51 -0
  349. package/dist/resources/resource-compiler.js.map +1 -0
  350. package/dist/resources/resource-resolver.d.ts +25 -0
  351. package/dist/resources/resource-resolver.d.ts.map +1 -0
  352. package/dist/resources/resource-resolver.js +90 -0
  353. package/dist/resources/resource-resolver.js.map +1 -0
  354. package/dist/runtime/project-namespace.d.ts +5 -0
  355. package/dist/runtime/project-namespace.d.ts.map +1 -0
  356. package/dist/runtime/project-namespace.js +22 -0
  357. package/dist/runtime/project-namespace.js.map +1 -0
  358. package/dist/shared/run-task.d.ts +3 -0
  359. package/dist/shared/run-task.d.ts.map +1 -0
  360. package/dist/shared/run-task.js +12 -0
  361. package/dist/shared/run-task.js.map +1 -0
  362. package/dist/tool-vm/tool-vm-lifecycle.d.ts +28 -0
  363. package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -0
  364. package/dist/tool-vm/tool-vm-lifecycle.js +60 -0
  365. package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -0
  366. package/package.json +52 -0
@@ -0,0 +1,497 @@
1
+ import crypto from 'node:crypto';
2
+ import fs from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { appendEvent, computeTotalTaskTimeoutMs, resolveWorkerConfigInstructionReferences, workerConfigSchema, } from '@agent-vm/agent-vm-worker';
5
+ import { execa } from 'execa';
6
+ import { z } from 'zod';
7
+ import { workerTaskResourcesSchema, workerTaskControllerRequestSchema, } from '../config/resource-contracts/index.js';
8
+ import { startGatewayZone } from '../gateway/gateway-zone-orchestrator.js';
9
+ import { hasRepoResourceDescriptionContract, loadRepoResourceDescriptionContract, } from '../resources/repo-resource-contract-loader.js';
10
+ import { startRepoResourceProviders, stopRepoResourceProviders, } from '../resources/repo-resource-provider-runner.js';
11
+ import { compileResourceOverlay } from '../resources/resource-compiler.js';
12
+ import { resolveTaskResources } from '../resources/resource-resolver.js';
13
+ import { buildGithubAuthConfigArgs, scrubGithubTokenFromOutput } from './git-auth-support.js';
14
+ import { buildTaskConfigFromPreparedInput } from './task-config-builder.js';
15
+ function isPlainObject(value) {
16
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
17
+ }
18
+ function deepMerge(base, override) {
19
+ if (Array.isArray(base) || Array.isArray(override)) {
20
+ return override ?? base;
21
+ }
22
+ if (isPlainObject(base) && isPlainObject(override)) {
23
+ const keys = new Set([...Object.keys(base), ...Object.keys(override)]);
24
+ const mergedEntries = [...keys].map((key) => [key, deepMerge(base[key], override[key])]);
25
+ return Object.fromEntries(mergedEntries);
26
+ }
27
+ return override ?? base;
28
+ }
29
+ function writeStderr(message) {
30
+ process.stderr.write(`${message}\n`);
31
+ }
32
+ function toError(error) {
33
+ return error instanceof Error ? error : new Error(String(error));
34
+ }
35
+ const taskStatusResponseSchema = z
36
+ .object({
37
+ status: z.string(),
38
+ })
39
+ .passthrough();
40
+ const GIT_CLONE_TIMEOUT_MS = 120_000;
41
+ async function readJsonObjectFile(filePath, options) {
42
+ try {
43
+ const raw = await fs.readFile(filePath, 'utf8');
44
+ const parsed = JSON.parse(raw);
45
+ if (!isPlainObject(parsed)) {
46
+ throw new Error(`${options.label} must be a JSON object`);
47
+ }
48
+ return parsed;
49
+ }
50
+ catch (error) {
51
+ if (error && typeof error === 'object' && 'code' in error && error.code === 'ENOENT') {
52
+ return options.missingValue;
53
+ }
54
+ const message = error instanceof Error ? error.message : String(error);
55
+ throw new Error(`Invalid ${options.label}: ${message}`, { cause: error });
56
+ }
57
+ }
58
+ async function copyLocalWorkerTarballIfConfigured(stateDir) {
59
+ const localWorkerTarballPath = process.env.AGENT_VM_WORKER_TARBALL_PATH;
60
+ if (!localWorkerTarballPath) {
61
+ return;
62
+ }
63
+ await fs.copyFile(localWorkerTarballPath, path.join(stateDir, 'agent-vm-worker.tgz'));
64
+ }
65
+ function deriveRepoDirectoryName(repoUrl, usedNames) {
66
+ const cleanedUrl = repoUrl.replace(/\.git$/, '');
67
+ const baseName = cleanedUrl.split('/').pop()?.trim() ?? 'repo';
68
+ const sanitizedBaseName = baseName
69
+ .toLowerCase()
70
+ .replace(/[^a-z0-9_-]+/gu, '-')
71
+ .replace(/^-+|-+$/gu, '') || 'repo';
72
+ let candidate = sanitizedBaseName;
73
+ let counter = 2;
74
+ while (usedNames.has(candidate)) {
75
+ candidate = `${sanitizedBaseName}-${counter}`;
76
+ counter += 1;
77
+ }
78
+ usedNames.add(candidate);
79
+ return candidate;
80
+ }
81
+ export async function preStartGateway(taskInput, zoneConfig, options = {}) {
82
+ const parsedTaskInput = workerTaskControllerRequestSchema.parse(taskInput);
83
+ const taskId = crypto.randomUUID();
84
+ const taskRoot = path.join(zoneConfig.gateway.stateDir, 'tasks', taskId);
85
+ const workspaceDir = path.join(taskRoot, 'workspace');
86
+ const stateDir = path.join(taskRoot, 'state');
87
+ let startedResourceProviders = [];
88
+ try {
89
+ await fs.mkdir(workspaceDir, { recursive: true });
90
+ await fs.mkdir(stateDir, { recursive: true });
91
+ await copyLocalWorkerTarballIfConfigured(stateDir);
92
+ const usedRepoNames = new Set();
93
+ const preparedRepoTargets = parsedTaskInput.repos.map((repo) => {
94
+ const repoId = deriveRepoDirectoryName(repo.repoUrl, usedRepoNames);
95
+ const repoWorkspaceDir = path.join(workspaceDir, repoId);
96
+ return {
97
+ ...repo,
98
+ repoId,
99
+ hostWorkspacePath: repoWorkspaceDir,
100
+ workspacePath: `/workspace/${repoId}`,
101
+ };
102
+ });
103
+ const cloneResults = await Promise.allSettled(preparedRepoTargets.map(async (repo) => {
104
+ const authArgs = options.githubToken ? buildGithubAuthConfigArgs(options.githubToken) : [];
105
+ const cloneArgs = [
106
+ ...authArgs,
107
+ 'clone',
108
+ '--branch',
109
+ repo.baseBranch,
110
+ repo.repoUrl,
111
+ repo.hostWorkspacePath,
112
+ ];
113
+ let cloneResult;
114
+ try {
115
+ cloneResult = await execa('git', cloneArgs, {
116
+ reject: false,
117
+ timeout: GIT_CLONE_TIMEOUT_MS,
118
+ });
119
+ }
120
+ catch (error) {
121
+ const message = error instanceof Error ? error.message : String(error);
122
+ throw new Error(`git clone failed for ${repo.repoUrl}: ${scrubGithubTokenFromOutput(message)}`, { cause: error });
123
+ }
124
+ if ((cloneResult.exitCode ?? -1) !== 0) {
125
+ const errorDetail = scrubGithubTokenFromOutput(`${cloneResult.stdout}\n${cloneResult.stderr}`.trim());
126
+ throw new Error(`git clone failed for ${repo.repoUrl}: ${errorDetail}`.trim());
127
+ }
128
+ await Promise.all([
129
+ ['user.email', 'agent-vm-worker@agent-vm'],
130
+ ['user.name', 'agent-vm-worker'],
131
+ ['http.version', 'HTTP/1.1'],
132
+ ['commit.gpgsign', 'false'],
133
+ ].map(async ([key, value]) => await execa('git', ['-C', repo.hostWorkspacePath, 'config', key, value], {
134
+ reject: true,
135
+ timeout: 10_000,
136
+ })));
137
+ return {
138
+ repoId: repo.repoId,
139
+ repoUrl: repo.repoUrl,
140
+ baseBranch: repo.baseBranch,
141
+ hostWorkspacePath: repo.hostWorkspacePath,
142
+ workspacePath: repo.workspacePath,
143
+ };
144
+ }));
145
+ const rejectedCloneResult = cloneResults.find((result) => result.status === 'rejected');
146
+ if (rejectedCloneResult) {
147
+ throw rejectedCloneResult.reason;
148
+ }
149
+ const clonedRepos = cloneResults.map((result) => {
150
+ if (result.status === 'rejected') {
151
+ throw result.reason;
152
+ }
153
+ return result.value;
154
+ });
155
+ const primaryRepoWorkspaceDir = clonedRepos[0]?.hostWorkspacePath ?? workspaceDir;
156
+ const projectConfigPath = path.join(primaryRepoWorkspaceDir, '.agent-vm', 'config.json');
157
+ const projectConfig = await readJsonObjectFile(projectConfigPath, {
158
+ label: 'project config',
159
+ missingValue: {},
160
+ });
161
+ const baseConfig = await readJsonObjectFile(zoneConfig.gateway.config, {
162
+ label: 'gateway config',
163
+ missingValue: {},
164
+ });
165
+ const resolvedBaseConfig = await resolveWorkerConfigInstructionReferences(baseConfig, {
166
+ configPath: zoneConfig.gateway.config,
167
+ });
168
+ const effectiveConfig = workerConfigSchema.parse(deepMerge(resolvedBaseConfig, projectConfig));
169
+ await fs.writeFile(path.join(stateDir, 'effective-worker.json'), JSON.stringify(effectiveConfig, null, 2), { encoding: 'utf8', mode: 0o600 });
170
+ const repoResourceDescriptions = await Promise.all(clonedRepos.map(async (repo) => ({
171
+ repoId: repo.repoId,
172
+ repoUrl: repo.repoUrl,
173
+ hasContract: await hasRepoResourceDescriptionContract(repo.hostWorkspacePath),
174
+ description: await loadRepoResourceDescriptionContract({
175
+ repoDir: repo.hostWorkspacePath,
176
+ repoId: repo.repoId,
177
+ repoUrl: repo.repoUrl,
178
+ }),
179
+ })));
180
+ const resources = workerTaskResourcesSchema.parse(parsedTaskInput.resources);
181
+ const resolvedResources = resolveTaskResources({
182
+ allowRepoResources: zoneConfig.resources?.allowRepoResources ?? true,
183
+ externalResources: resources.externalResources,
184
+ repos: repoResourceDescriptions,
185
+ });
186
+ const repoById = new Map(clonedRepos.map((repo) => [repo.repoId, repo]));
187
+ const providerRun = await startRepoResourceProviders({
188
+ taskId,
189
+ repos: repoResourceDescriptions
190
+ .map((repoDescription) => {
191
+ if (!repoDescription.hasContract) {
192
+ return null;
193
+ }
194
+ const repo = repoById.get(repoDescription.repoId);
195
+ if (!repo) {
196
+ throw new Error(`Resource setup references unknown repo '${repoDescription.repoId}'.`);
197
+ }
198
+ return {
199
+ repoId: repoDescription.repoId,
200
+ repoUrl: repoDescription.repoUrl,
201
+ repoDir: repo.hostWorkspacePath,
202
+ outputDir: path.join(stateDir, 'resources', repoDescription.repoId),
203
+ setupCommand: repoDescription.description.setupCommand,
204
+ };
205
+ })
206
+ .filter((repo) => repo !== null),
207
+ providers: resolvedResources.selectedRepoProviders.map((provider) => {
208
+ const repo = repoById.get(provider.repoId);
209
+ if (!repo) {
210
+ throw new Error(`Resolved resource provider references unknown repo '${provider.repoId}'.`);
211
+ }
212
+ return {
213
+ ...provider,
214
+ repoDir: repo.hostWorkspacePath,
215
+ outputDir: path.join(stateDir, 'resources', provider.repoId),
216
+ };
217
+ }),
218
+ });
219
+ startedResourceProviders = providerRun.startedProviders;
220
+ const overlay = compileResourceOverlay({
221
+ externalResources: resolvedResources.externalResources,
222
+ repoFinalizations: providerRun.finalizations,
223
+ });
224
+ return {
225
+ taskId,
226
+ input: parsedTaskInput,
227
+ taskRoot,
228
+ workspaceDir,
229
+ stateDir,
230
+ startedResourceProviders: providerRun.startedProviders,
231
+ environment: overlay.environment,
232
+ tcpHosts: overlay.tcpHosts,
233
+ vfsMounts: overlay.vfsMounts,
234
+ repos: clonedRepos,
235
+ effectiveConfig,
236
+ };
237
+ }
238
+ catch (error) {
239
+ return await cleanupTaskRootAfterPreparationFailure({
240
+ primaryError: error,
241
+ startedProviders: startedResourceProviders,
242
+ taskId,
243
+ taskRoot,
244
+ });
245
+ }
246
+ }
247
+ export async function postStopGateway(taskId, zoneConfig, startedProviders = []) {
248
+ const taskRoot = path.join(zoneConfig.gateway.stateDir, 'tasks', taskId);
249
+ const workspaceDir = path.join(taskRoot, 'workspace');
250
+ const resourcesDir = path.join(taskRoot, 'state', 'resources');
251
+ let cleanupError = null;
252
+ let workspaceRemovalError = null;
253
+ let resourcesRemovalError = null;
254
+ try {
255
+ await stopRepoResourceProviders(startedProviders);
256
+ }
257
+ catch (error) {
258
+ cleanupError = error instanceof Error ? error : new Error(String(error));
259
+ }
260
+ try {
261
+ await fs.rm(resourcesDir, { recursive: true, force: true });
262
+ }
263
+ catch (error) {
264
+ resourcesRemovalError = error instanceof Error ? error : new Error(String(error));
265
+ }
266
+ try {
267
+ await fs.rm(workspaceDir, { recursive: true, force: true });
268
+ }
269
+ catch (error) {
270
+ workspaceRemovalError = error instanceof Error ? error : new Error(String(error));
271
+ }
272
+ const errors = [cleanupError, resourcesRemovalError, workspaceRemovalError].filter((error) => error !== null);
273
+ if (errors.length > 1) {
274
+ const aggregateError = new AggregateError(errors, `Failed to stop Docker services and prune task resources/workspace for ${taskId}.`);
275
+ aggregateError.cause = errors[0];
276
+ throw aggregateError;
277
+ }
278
+ if (errors.length === 1) {
279
+ throw errors[0];
280
+ }
281
+ }
282
+ async function cleanupTaskRootAfterPreparationFailure(options) {
283
+ const errors = [toError(options.primaryError)];
284
+ try {
285
+ await stopRepoResourceProviders(options.startedProviders);
286
+ }
287
+ catch (cleanupError) {
288
+ errors.push(toError(cleanupError));
289
+ }
290
+ try {
291
+ await fs.rm(options.taskRoot, { recursive: true, force: true });
292
+ }
293
+ catch (removeError) {
294
+ errors.push(toError(removeError));
295
+ }
296
+ if (errors.length === 1) {
297
+ throw errors[0];
298
+ }
299
+ const aggregateError = new AggregateError(errors, `Failed to clean up task ${options.taskId} after preparation failure.`);
300
+ aggregateError.cause = errors[0];
301
+ throw aggregateError;
302
+ }
303
+ async function fetchJson(url, init) {
304
+ const response = await fetch(url, init);
305
+ if (!response.ok) {
306
+ const responseBody = await response.text();
307
+ throw new Error(`${init?.method ?? 'GET'} ${url} failed with ${String(response.status)}: ${responseBody}`);
308
+ }
309
+ return await response.json();
310
+ }
311
+ export async function prepareWorkerTask(options) {
312
+ const zone = options.systemConfig.zones.find((candidateZone) => candidateZone.id === options.zoneId);
313
+ if (!zone) {
314
+ throw new Error(`Unknown zone '${options.zoneId}'.`);
315
+ }
316
+ if (zone.gateway.type !== 'worker') {
317
+ throw new Error(`Zone '${options.zoneId}' is not a worker zone.`);
318
+ }
319
+ const preStartOptions = options.githubToken ? { githubToken: options.githubToken } : {};
320
+ const preStartResult = await preStartGateway(options.input, zone, preStartOptions);
321
+ const parsedInput = preStartResult.input;
322
+ try {
323
+ const taskZoneConfig = {
324
+ ...zone,
325
+ gateway: {
326
+ ...zone.gateway,
327
+ workspaceDir: preStartResult.workspaceDir,
328
+ stateDir: preStartResult.stateDir,
329
+ },
330
+ };
331
+ const eventLogPath = path.join(preStartResult.stateDir, 'tasks', `${preStartResult.taskId}.jsonl`);
332
+ const recordEvent = async (event) => {
333
+ await appendEvent(eventLogPath, event);
334
+ };
335
+ await recordEvent({
336
+ event: 'task-accepted',
337
+ taskId: preStartResult.taskId,
338
+ config: buildTaskConfigFromPreparedInput({
339
+ taskId: preStartResult.taskId,
340
+ input: parsedInput,
341
+ repos: preStartResult.repos,
342
+ effectiveConfig: preStartResult.effectiveConfig,
343
+ }),
344
+ });
345
+ await options.onTaskPrepared?.({
346
+ taskId: preStartResult.taskId,
347
+ zoneId: options.zoneId,
348
+ taskRoot: preStartResult.taskRoot,
349
+ branchPrefix: preStartResult.effectiveConfig.branchPrefix,
350
+ repos: preStartResult.repos.map((repo) => ({
351
+ repoUrl: repo.repoUrl,
352
+ baseBranch: repo.baseBranch,
353
+ hostWorkspacePath: repo.hostWorkspacePath,
354
+ vmWorkspacePath: repo.workspacePath,
355
+ })),
356
+ workerIngress: null,
357
+ });
358
+ return {
359
+ taskId: preStartResult.taskId,
360
+ taskRoot: preStartResult.taskRoot,
361
+ zoneId: options.zoneId,
362
+ input: parsedInput,
363
+ preStartResult,
364
+ taskZoneConfig,
365
+ zone,
366
+ eventLogPath,
367
+ recordEvent,
368
+ };
369
+ }
370
+ catch (error) {
371
+ return await cleanupTaskRootAfterPreparationFailure({
372
+ primaryError: error,
373
+ startedProviders: preStartResult.startedResourceProviders,
374
+ taskId: preStartResult.taskId,
375
+ taskRoot: preStartResult.taskRoot,
376
+ });
377
+ }
378
+ }
379
+ export async function executeWorkerTask(prepared, options) {
380
+ let gateway;
381
+ let result;
382
+ let primaryError;
383
+ try {
384
+ gateway = await startGatewayZone({
385
+ environmentOverride: prepared.preStartResult.environment,
386
+ secretResolver: options.secretResolver,
387
+ systemConfig: options.systemConfig,
388
+ tcpHostsOverride: prepared.preStartResult.tcpHosts,
389
+ vfsMountsOverride: prepared.preStartResult.vfsMounts,
390
+ zoneId: prepared.zoneId,
391
+ zoneOverride: prepared.taskZoneConfig,
392
+ });
393
+ await options.onWorkerTaskIngress?.(prepared.zoneId, prepared.taskId, gateway.ingress);
394
+ const baseUrl = `http://${gateway.ingress.host}:${gateway.ingress.port}`;
395
+ await fetchJson(`${baseUrl}/tasks`, {
396
+ method: 'POST',
397
+ headers: { 'content-type': 'application/json' },
398
+ body: JSON.stringify({
399
+ taskId: prepared.taskId,
400
+ prompt: prepared.input.prompt,
401
+ repos: prepared.preStartResult.repos.map((repo) => ({
402
+ repoUrl: repo.repoUrl,
403
+ baseBranch: repo.baseBranch,
404
+ workspacePath: repo.workspacePath,
405
+ })),
406
+ context: prepared.input.context,
407
+ }),
408
+ });
409
+ const timeoutMs = options.timeoutMs ?? computeTotalTaskTimeoutMs(prepared.preStartResult.effectiveConfig);
410
+ const start = Date.now();
411
+ let consecutivePollFailures = 0;
412
+ while (Date.now() - start < timeoutMs) {
413
+ let state;
414
+ try {
415
+ // Polling task state is intentionally sequential because each request depends on prior status.
416
+ // oxlint-disable-next-line eslint/no-await-in-loop
417
+ const response = await fetchJson(`${baseUrl}/tasks/${prepared.taskId}`);
418
+ state = taskStatusResponseSchema.parse(response);
419
+ consecutivePollFailures = 0;
420
+ }
421
+ catch (error) {
422
+ if (error instanceof z.ZodError) {
423
+ throw new Error(`Worker task status response did not match the expected schema for task ${prepared.taskId}.`, { cause: error });
424
+ }
425
+ consecutivePollFailures += 1;
426
+ const message = error instanceof Error ? error.message : String(error);
427
+ writeStderr(`[worker-task-runner] Poll failure ${consecutivePollFailures} for task ${prepared.taskId}: ${message}`);
428
+ if (consecutivePollFailures >= 3) {
429
+ throw new Error(`Worker task status polling failed ${String(consecutivePollFailures)} consecutive times for task ${prepared.taskId}; last error: ${message}`, { cause: error });
430
+ }
431
+ }
432
+ if (!state) {
433
+ // Poll retry loop intentionally sleeps before the next serial attempt.
434
+ // oxlint-disable-next-line eslint/no-await-in-loop
435
+ await new Promise((resolve) => setTimeout(resolve, 1000));
436
+ continue;
437
+ }
438
+ if (state.status === 'completed' || state.status === 'failed' || state.status === 'closed') {
439
+ result = {
440
+ taskId: prepared.taskId,
441
+ finalState: state,
442
+ taskRoot: prepared.taskRoot,
443
+ };
444
+ break;
445
+ }
446
+ // The sleep is part of the serial poll loop and cannot be parallelized.
447
+ // oxlint-disable-next-line eslint/no-await-in-loop
448
+ await new Promise((resolve) => setTimeout(resolve, 1000));
449
+ }
450
+ if (!result) {
451
+ throw new Error(`Worker task timed out after ${timeoutMs}ms.`);
452
+ }
453
+ }
454
+ catch (error) {
455
+ primaryError = toError(error);
456
+ }
457
+ const cleanupErrors = [];
458
+ try {
459
+ await gateway?.vm.close();
460
+ }
461
+ catch (error) {
462
+ cleanupErrors.push(toError(error));
463
+ }
464
+ try {
465
+ await postStopGateway(prepared.taskId, prepared.zone, prepared.preStartResult.startedResourceProviders);
466
+ }
467
+ catch (error) {
468
+ cleanupErrors.push(toError(error));
469
+ }
470
+ try {
471
+ await options.onTaskFinished?.(prepared.zoneId, prepared.taskId);
472
+ }
473
+ catch (error) {
474
+ cleanupErrors.push(toError(error));
475
+ }
476
+ if (primaryError) {
477
+ if (cleanupErrors.length > 0) {
478
+ const aggregateError = new AggregateError([primaryError, ...cleanupErrors], `Worker task ${prepared.taskId} failed; cleanup also failed.`);
479
+ aggregateError.cause = primaryError;
480
+ throw aggregateError;
481
+ }
482
+ throw primaryError;
483
+ }
484
+ if (cleanupErrors.length === 1) {
485
+ throw cleanupErrors[0];
486
+ }
487
+ if (cleanupErrors.length > 1) {
488
+ const aggregateError = new AggregateError(cleanupErrors, `Failed to clean up worker task ${prepared.taskId}.`);
489
+ aggregateError.cause = cleanupErrors[0];
490
+ throw aggregateError;
491
+ }
492
+ if (!result) {
493
+ throw new Error(`Worker task ${prepared.taskId} exited without a terminal result.`);
494
+ }
495
+ return result;
496
+ }
497
+ //# sourceMappingURL=worker-task-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-task-runner.js","sourceRoot":"","sources":["../../src/controller/worker-task-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { SecretResolver } from '@agent-vm/gondolin-adapter';
2
+ import type { SystemConfig } from '../config/system-config.js';
3
+ export declare function resolveZoneSecrets(options: {
4
+ readonly systemConfig: SystemConfig;
5
+ readonly zoneId: string;
6
+ readonly secretResolver: SecretResolver;
7
+ }): Promise<Record<string, string>>;
8
+ //# sourceMappingURL=credential-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../../src/gateway/credential-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AA0B/D,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IACjD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACxC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAwDlC"}
@@ -0,0 +1,65 @@
1
+ function buildSuggestedSecretRef(zoneId, secretName) {
2
+ switch (secretName) {
3
+ case 'DISCORD_BOT_TOKEN':
4
+ return `op://agent-vm/${zoneId}-discord/bot-token`;
5
+ case 'PERPLEXITY_API_KEY':
6
+ return `op://agent-vm/${zoneId}-perplexity/credential`;
7
+ case 'OPENCLAW_GATEWAY_TOKEN':
8
+ return `op://agent-vm/${zoneId}-gateway-auth/password`;
9
+ case 'OPENAI_API_KEY':
10
+ return `op://agent-vm/${zoneId}-openai/credential`;
11
+ case 'ANTHROPIC_API_KEY':
12
+ return `op://agent-vm/${zoneId}-anthropic/credential`;
13
+ default:
14
+ return `op://agent-vm/${zoneId}-${secretName.toLowerCase().replace(/_/gu, '-')}/credential`;
15
+ }
16
+ }
17
+ function findZone(systemConfig, zoneId) {
18
+ return systemConfig.zones.find((zone) => zone.id === zoneId);
19
+ }
20
+ export async function resolveZoneSecrets(options) {
21
+ const zone = findZone(options.systemConfig, options.zoneId);
22
+ if (!zone) {
23
+ throw new Error(`Unknown zone '${options.zoneId}'.`);
24
+ }
25
+ const resolvedSecrets = {};
26
+ for (const [secretName, secretConfig] of Object.entries(zone.secrets)) {
27
+ let secretRef;
28
+ switch (secretConfig.source) {
29
+ case 'environment':
30
+ if (!secretConfig.envVar) {
31
+ throw new Error(`Zone '${zone.id}' secret '${secretName}' is missing 'envVar'. Add an explicit environment variable name.`);
32
+ }
33
+ secretRef = {
34
+ ref: secretConfig.envVar,
35
+ source: 'environment',
36
+ };
37
+ break;
38
+ case '1password':
39
+ if (!secretConfig.ref) {
40
+ throw new Error(`Zone '${zone.id}' secret '${secretName}' is missing 'ref'. Add an explicit 1Password reference such as '${buildSuggestedSecretRef(zone.id, secretName)}'.`);
41
+ }
42
+ secretRef = {
43
+ ref: secretConfig.ref,
44
+ source: '1password',
45
+ };
46
+ break;
47
+ default: {
48
+ const exhaustiveCheck = secretConfig;
49
+ throw new Error(`Unsupported secret config for '${secretName}': ${JSON.stringify(exhaustiveCheck)}`);
50
+ }
51
+ }
52
+ try {
53
+ // Sequential resolution gives the user exact secret context on failure.
54
+ // oxlint-disable-next-line eslint/no-await-in-loop
55
+ resolvedSecrets[secretName] = await options.secretResolver.resolve(secretRef);
56
+ }
57
+ catch (error) {
58
+ const message = error instanceof Error ? error.message : String(error);
59
+ const sourceReference = secretConfig.source === 'environment' ? secretConfig.envVar : secretConfig.ref;
60
+ throw new Error(`Failed to resolve secret '${secretName}' for zone '${zone.id}' from '${sourceReference}': ${message}`, { cause: error });
61
+ }
62
+ }
63
+ return resolvedSecrets;
64
+ }
65
+ //# sourceMappingURL=credential-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/gateway/credential-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { BuildImageResult } from '@agent-vm/gondolin-adapter';
2
+ import { type GondolinImageBuilderDependencies } from '../build/gondolin-image-builder.js';
3
+ import type { GatewayBuildImageOptions } from './gateway-zone-support.js';
4
+ export interface GatewayImageBuilderDependencies {
5
+ readonly buildImage?: (options: GatewayBuildImageOptions) => Promise<BuildImageResult>;
6
+ readonly buildGondolinImage?: GondolinImageBuilderDependencies['buildImage'];
7
+ readonly loadBuildConfig?: GondolinImageBuilderDependencies['loadBuildConfig'];
8
+ }
9
+ export declare function buildGatewayImage(options: {
10
+ readonly buildConfigPath: string;
11
+ readonly systemCacheIdentifierPath: string;
12
+ readonly cacheDir: string;
13
+ }, dependencies?: GatewayImageBuilderDependencies): Promise<BuildImageResult>;
14
+ //# sourceMappingURL=gateway-image-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-image-builder.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-image-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEhF,OAAO,EAEN,KAAK,gCAAgC,EACrC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,gCAAgC,CAAC,YAAY,CAAC,CAAC;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;CAC/E;AAMD,wBAAsB,iBAAiB,CACtC,OAAO,EAAE;IACR,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B,EACD,YAAY,GAAE,+BAAoC,GAChD,OAAO,CAAC,gBAAgB,CAAC,CAkC3B"}