@agent-vm/agent-vm 0.0.31 → 0.0.33

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 (190) hide show
  1. package/dist/backup/backup-create-operation.d.ts +3 -1
  2. package/dist/backup/backup-create-operation.d.ts.map +1 -1
  3. package/dist/backup/backup-create-operation.js +49 -14
  4. package/dist/backup/backup-create-operation.js.map +1 -1
  5. package/dist/backup/backup-manager.d.ts +8 -6
  6. package/dist/backup/backup-manager.d.ts.map +1 -1
  7. package/dist/backup/backup-manager.js +7 -5
  8. package/dist/backup/backup-manager.js.map +1 -1
  9. package/dist/backup/backup-restore-operation.d.ts +1 -1
  10. package/dist/backup/backup-restore-operation.d.ts.map +1 -1
  11. package/dist/backup/backup-restore-operation.js +13 -9
  12. package/dist/backup/backup-restore-operation.js.map +1 -1
  13. package/dist/build/docker-image-builder.d.ts.map +1 -1
  14. package/dist/build/docker-image-builder.js +12 -6
  15. package/dist/build/docker-image-builder.js.map +1 -1
  16. package/dist/cli/backup-commands.d.ts.map +1 -1
  17. package/dist/cli/backup-commands.js +4 -2
  18. package/dist/cli/backup-commands.js.map +1 -1
  19. package/dist/cli/commands/controller-definition.d.ts +96 -78
  20. package/dist/cli/commands/controller-definition.d.ts.map +1 -1
  21. package/dist/cli/commands/controller-definition.js +20 -0
  22. package/dist/cli/commands/controller-definition.js.map +1 -1
  23. package/dist/cli/commands/create-app.d.ts +96 -78
  24. package/dist/cli/commands/create-app.d.ts.map +1 -1
  25. package/dist/cli/commands/init-definition.d.ts.map +1 -1
  26. package/dist/cli/commands/init-definition.js +3 -1
  27. package/dist/cli/commands/init-definition.js.map +1 -1
  28. package/dist/cli/commands/paths-definition.d.ts.map +1 -1
  29. package/dist/cli/commands/paths-definition.js +9 -4
  30. package/dist/cli/commands/paths-definition.js.map +1 -1
  31. package/dist/cli/controller-operation-commands.d.ts.map +1 -1
  32. package/dist/cli/controller-operation-commands.js +70 -11
  33. package/dist/cli/controller-operation-commands.js.map +1 -1
  34. package/dist/cli/init-command.d.ts.map +1 -1
  35. package/dist/cli/init-command.js +57 -35
  36. package/dist/cli/init-command.js.map +1 -1
  37. package/dist/cli/lease-commands.d.ts.map +1 -1
  38. package/dist/cli/lease-commands.js +8 -0
  39. package/dist/cli/lease-commands.js.map +1 -1
  40. package/dist/cli/run-task.js +1 -1
  41. package/dist/cli/vm-host-system-templates.d.ts +1 -0
  42. package/dist/cli/vm-host-system-templates.d.ts.map +1 -1
  43. package/dist/cli/vm-host-system-templates.js +2 -2
  44. package/dist/cli/vm-host-system-templates.js.map +1 -1
  45. package/dist/config/system-config.d.ts +57 -13
  46. package/dist/config/system-config.d.ts.map +1 -1
  47. package/dist/config/system-config.js +181 -32
  48. package/dist/config/system-config.js.map +1 -1
  49. package/dist/controller/active-task-registry.d.ts +18 -3
  50. package/dist/controller/active-task-registry.d.ts.map +1 -1
  51. package/dist/controller/active-task-registry.js +33 -2
  52. package/dist/controller/active-task-registry.js.map +1 -1
  53. package/dist/controller/controller-runtime-operations.d.ts +15 -31
  54. package/dist/controller/controller-runtime-operations.d.ts.map +1 -1
  55. package/dist/controller/controller-runtime-operations.js +17 -92
  56. package/dist/controller/controller-runtime-operations.js.map +1 -1
  57. package/dist/controller/controller-runtime-types.d.ts +16 -11
  58. package/dist/controller/controller-runtime-types.d.ts.map +1 -1
  59. package/dist/controller/controller-runtime.d.ts.map +1 -1
  60. package/dist/controller/controller-runtime.js +126 -231
  61. package/dist/controller/controller-runtime.js.map +1 -1
  62. package/dist/controller/git-pull-default-operations.d.ts +101 -9
  63. package/dist/controller/git-pull-default-operations.d.ts.map +1 -1
  64. package/dist/controller/git-pull-default-operations.js +405 -68
  65. package/dist/controller/git-pull-default-operations.js.map +1 -1
  66. package/dist/controller/git-push-operations.d.ts +2 -0
  67. package/dist/controller/git-push-operations.d.ts.map +1 -1
  68. package/dist/controller/git-push-operations.js +267 -76
  69. package/dist/controller/git-push-operations.js.map +1 -1
  70. package/dist/controller/git-retry-support.d.ts +21 -0
  71. package/dist/controller/git-retry-support.d.ts.map +1 -0
  72. package/dist/controller/git-retry-support.js +60 -0
  73. package/dist/controller/git-retry-support.js.map +1 -0
  74. package/dist/controller/http/controller-client.d.ts +2 -0
  75. package/dist/controller/http/controller-client.d.ts.map +1 -1
  76. package/dist/controller/http/controller-client.js +13 -0
  77. package/dist/controller/http/controller-client.js.map +1 -1
  78. package/dist/controller/http/controller-http-route-support.d.ts +9 -4
  79. package/dist/controller/http/controller-http-route-support.d.ts.map +1 -1
  80. package/dist/controller/http/controller-http-route-support.js +17 -1
  81. package/dist/controller/http/controller-http-route-support.js.map +1 -1
  82. package/dist/controller/http/controller-http-routes.d.ts +10 -3
  83. package/dist/controller/http/controller-http-routes.d.ts.map +1 -1
  84. package/dist/controller/http/controller-http-routes.js +88 -15
  85. package/dist/controller/http/controller-http-routes.js.map +1 -1
  86. package/dist/controller/http/controller-lease-response-types.d.ts +17 -0
  87. package/dist/controller/http/controller-lease-response-types.d.ts.map +1 -0
  88. package/dist/controller/http/controller-lease-response-types.js +16 -0
  89. package/dist/controller/http/controller-lease-response-types.js.map +1 -0
  90. package/dist/controller/http/controller-request-schemas.d.ts +84 -13
  91. package/dist/controller/http/controller-request-schemas.d.ts.map +1 -1
  92. package/dist/controller/http/controller-request-schemas.js +110 -9
  93. package/dist/controller/http/controller-request-schemas.js.map +1 -1
  94. package/dist/controller/http/controller-zone-operation-routes.d.ts.map +1 -1
  95. package/dist/controller/http/controller-zone-operation-routes.js +140 -14
  96. package/dist/controller/http/controller-zone-operation-routes.js.map +1 -1
  97. package/dist/controller/leases/agent-sandbox-seeding.d.ts +55 -0
  98. package/dist/controller/leases/agent-sandbox-seeding.d.ts.map +1 -0
  99. package/dist/controller/leases/agent-sandbox-seeding.js +178 -0
  100. package/dist/controller/leases/agent-sandbox-seeding.js.map +1 -0
  101. package/dist/controller/leases/idle-reaper.d.ts +7 -2
  102. package/dist/controller/leases/idle-reaper.d.ts.map +1 -1
  103. package/dist/controller/leases/idle-reaper.js +19 -7
  104. package/dist/controller/leases/idle-reaper.js.map +1 -1
  105. package/dist/controller/leases/lease-idle-policy.d.ts +12 -0
  106. package/dist/controller/leases/lease-idle-policy.d.ts.map +1 -0
  107. package/dist/controller/leases/lease-idle-policy.js +28 -0
  108. package/dist/controller/leases/lease-idle-policy.js.map +1 -0
  109. package/dist/controller/leases/lease-manager.d.ts +21 -12
  110. package/dist/controller/leases/lease-manager.d.ts.map +1 -1
  111. package/dist/controller/leases/lease-manager.js +155 -57
  112. package/dist/controller/leases/lease-manager.js.map +1 -1
  113. package/dist/controller/leases/lease-scope.d.ts +12 -0
  114. package/dist/controller/leases/lease-scope.d.ts.map +1 -0
  115. package/dist/controller/leases/lease-scope.js +19 -0
  116. package/dist/controller/leases/lease-scope.js.map +1 -0
  117. package/dist/controller/leases/lease-workspace-paths.d.ts +14 -0
  118. package/dist/controller/leases/lease-workspace-paths.d.ts.map +1 -0
  119. package/dist/controller/leases/lease-workspace-paths.js +104 -0
  120. package/dist/controller/leases/lease-workspace-paths.js.map +1 -0
  121. package/dist/controller/runtime-instructions-builder.d.ts +1 -2
  122. package/dist/controller/runtime-instructions-builder.d.ts.map +1 -1
  123. package/dist/controller/runtime-instructions-builder.js +8 -9
  124. package/dist/controller/runtime-instructions-builder.js.map +1 -1
  125. package/dist/controller/task-config-builder.d.ts +2 -1
  126. package/dist/controller/task-config-builder.d.ts.map +1 -1
  127. package/dist/controller/task-config-builder.js +2 -1
  128. package/dist/controller/task-config-builder.js.map +1 -1
  129. package/dist/controller/worker-task-runner.d.ts +10 -4
  130. package/dist/controller/worker-task-runner.d.ts.map +1 -1
  131. package/dist/controller/worker-task-runner.js +147 -44
  132. package/dist/controller/worker-task-runner.js.map +1 -1
  133. package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts +30 -0
  134. package/dist/controller/zone-runtimes/openclaw-zone-runtime.d.ts.map +1 -0
  135. package/dist/controller/zone-runtimes/openclaw-zone-runtime.js +110 -0
  136. package/dist/controller/zone-runtimes/openclaw-zone-runtime.js.map +1 -0
  137. package/dist/controller/zone-runtimes/worker-zone-runtime.d.ts +33 -0
  138. package/dist/controller/zone-runtimes/worker-zone-runtime.d.ts.map +1 -0
  139. package/dist/controller/zone-runtimes/worker-zone-runtime.js +224 -0
  140. package/dist/controller/zone-runtimes/worker-zone-runtime.js.map +1 -0
  141. package/dist/controller/zone-runtimes/zone-runtime-errors.d.ts +51 -0
  142. package/dist/controller/zone-runtimes/zone-runtime-errors.d.ts.map +1 -0
  143. package/dist/controller/zone-runtimes/zone-runtime-errors.js +94 -0
  144. package/dist/controller/zone-runtimes/zone-runtime-errors.js.map +1 -0
  145. package/dist/controller/zone-runtimes/zone-runtime-registry.d.ts +26 -0
  146. package/dist/controller/zone-runtimes/zone-runtime-registry.d.ts.map +1 -0
  147. package/dist/controller/zone-runtimes/zone-runtime-registry.js +84 -0
  148. package/dist/controller/zone-runtimes/zone-runtime-registry.js.map +1 -0
  149. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts +89 -0
  150. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts.map +1 -0
  151. package/dist/controller/zone-runtimes/zone-runtime-types.js +2 -0
  152. package/dist/controller/zone-runtimes/zone-runtime-types.js.map +1 -0
  153. package/dist/gateway/gateway-zone-orchestrator.d.ts.map +1 -1
  154. package/dist/gateway/gateway-zone-orchestrator.js +4 -2
  155. package/dist/gateway/gateway-zone-orchestrator.js.map +1 -1
  156. package/dist/gateway/gateway-zone-support.d.ts.map +1 -1
  157. package/dist/gateway/gateway-zone-support.js +22 -11
  158. package/dist/gateway/gateway-zone-support.js.map +1 -1
  159. package/dist/index.d.ts +1 -0
  160. package/dist/index.d.ts.map +1 -1
  161. package/dist/index.js +1 -0
  162. package/dist/index.js.map +1 -1
  163. package/dist/operations/config-validation.d.ts +1 -0
  164. package/dist/operations/config-validation.d.ts.map +1 -1
  165. package/dist/operations/config-validation.js +55 -5
  166. package/dist/operations/config-validation.js.map +1 -1
  167. package/dist/operations/controller-status.d.ts +13 -8
  168. package/dist/operations/controller-status.d.ts.map +1 -1
  169. package/dist/operations/controller-status.js +13 -10
  170. package/dist/operations/controller-status.js.map +1 -1
  171. package/dist/operations/destroy-zone.d.ts.map +1 -1
  172. package/dist/operations/destroy-zone.js +8 -1
  173. package/dist/operations/destroy-zone.js.map +1 -1
  174. package/dist/operations/doctor.d.ts +4 -0
  175. package/dist/operations/doctor.d.ts.map +1 -1
  176. package/dist/operations/doctor.js +187 -6
  177. package/dist/operations/doctor.js.map +1 -1
  178. package/dist/operations/runtime-config-paths.d.ts +4 -0
  179. package/dist/operations/runtime-config-paths.d.ts.map +1 -0
  180. package/dist/operations/runtime-config-paths.js +6 -0
  181. package/dist/operations/runtime-config-paths.js.map +1 -0
  182. package/dist/perf/gondolin-vfs-benchmark-support.d.ts +28 -0
  183. package/dist/perf/gondolin-vfs-benchmark-support.d.ts.map +1 -0
  184. package/dist/perf/gondolin-vfs-benchmark-support.js +50 -0
  185. package/dist/perf/gondolin-vfs-benchmark-support.js.map +1 -0
  186. package/dist/tool-vm/tool-vm-lifecycle.d.ts +7 -9
  187. package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
  188. package/dist/tool-vm/tool-vm-lifecycle.js +32 -27
  189. package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -1
  190. package/package.json +7 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-zone-runtime.js","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/openclaw-zone-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,0BAA0B,IAAI,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AAC1H,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAE9E,OAAO,EAAE,+BAA+B,IAAI,sCAAsC,EAAE,MAAM,yCAAyC,CAAC;AACpI,OAAO,EAAE,oBAAoB,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,EAAE,oBAAoB,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,EAAE,iBAAiB,IAAI,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9F,OAAO,EACN,+BAA+B,EAC/B,qCAAqC,GACrC,MAAM,0BAA0B,CAAC;AAyBlC,SAAS,kBAAkB,CAAC,KAAc;IACzC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,yBAAyB,CACxC,OAAyC;IAEzC,IAAI,OAA6C,CAAC;IAClD,IAAI,QAA4B,CAAC;IACjC,IAAI,SAA6B,CAAC;IAElC,MAAM,YAAY,GAAG,KAAK,IAAqC,EAAE,CAChE,OAAO,CAAC,kBAAkB;QACzB,CAAC,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,CAAC,CAAC,MAAM,gBAAgB,CAAC;YACvB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;SACvB,CAAC,CAAC;IAEN,MAAM,cAAc,GAAG,GAA6B,EAAE;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,qCAAqC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACtC,MAAM,aAAa,GAAG,OAAO,CAAC;QAC9B,OAAO,GAAG,SAAS,CAAC;QACpB,QAAQ,GAAG,SAAS,CAAC;QACrB,SAAS,GAAG,SAAS,CAAC;QACtB,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,0BAA0B,IAAI,iCAAiC,CAAC,CAC9E,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAC7B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACvC,IAAI,CAAC;YACJ,MAAM,cAAc,GAAG,MAAM,YAAY,EAAE,CAAC;YAC5C,OAAO,GAAG,cAAc,CAAC;YACzB,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACjD,SAAS,GAAG,SAAS,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,GAAG,SAAS,CAAC;YACpB,QAAQ,GAAG,SAAS,CAAC;YACrB,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,IAAI,+BAA+B,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACzC,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,KAAK,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACN,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,OAAO,CAAC,oBAAoB,IAAI,2BAA2B,CAAC,CAClE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EACtE;YACC,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACnC,MAAM,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,YAAY;qBAClB,UAAU,EAAE;qBACZ,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,MAAM,CAAC;qBACtD,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CACzE,CAAC;YACH,CAAC;YACD,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;SACzC,CACD;QACF,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,cAAc,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE;QAC5D,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,cAAc,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;QAChE,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,aAAa,GAAG,cAAc,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,OAAO,CAAC,iBAAiB,IAAI,wBAAwB,CAAC,CACnE,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAC3B;gBACC,eAAe,EAAE,KAAK,IAAI,EAAE,CAC3B,CACC,MAAM,aAAa,CAAC,EAAE,CAAC,IAAI,CAC1B,OAAO,aAAa,CAAC,WAAW,CAAC,OAAO,yBAAyB,CACjE,CACD,CAAC,MAAM;aACT,CACD,CAAC;QACH,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YACjB,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO;oBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,OAAO,EAAE;wBACR,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE;qBACzB;oBACD,cAAc,EAAE,SAAS;iBACzB,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;QAC5F,CAAC;QACD,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAC9B,MAAM,CAAC,OAAO,CAAC,+BAA+B,IAAI,sCAAsC,CAAC,CACxF,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAC3B;YACC,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACpC,MAAM,kBAAkB,CAAC;oBACxB,cAAc,EAAE,OAAO,CAAC,cAAc;oBACtC,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,MAAM;iBACN,CAAC,CAAC;YACJ,CAAC;YACD,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,EAAE;SAC/C,CACD;QACF,OAAO;QACP,QAAQ,EAAE,IAAI;QACd,KAAK;QACL,IAAI;QACJ,OAAO,EAAE,KAAK,IAAI,EAAE,CACnB,MAAM,CAAC,OAAO,CAAC,oBAAoB,IAAI,2BAA2B,CAAC,CAClE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAC/D;YACC,mBAAmB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACnC,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,EAAE;SAC/C,CACD;QACF,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;KACvB,CAAC;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { SecretResolver } from '@agent-vm/gondolin-adapter';
2
+ import type { LoadedSystemConfig } from '../../config/system-config.js';
3
+ import { runControllerDestroy as runControllerDestroyDefault } from '../../operations/destroy-zone.js';
4
+ import type { ActiveTaskRegistry, ActiveWorkerTask } from '../active-task-registry.js';
5
+ import type { RequestHeartbeatRegistry } from '../request-heartbeat-registry.js';
6
+ import { executeWorkerTask as executeWorkerTaskDefault, prepareWorkerTask as prepareWorkerTaskDefault, type PreparedWorkerTask, type WorkerTaskResult } from '../worker-task-runner.js';
7
+ import type { ControllerZoneConfig, WorkerZoneRuntime } from './zone-runtime-types.js';
8
+ type WorkerZoneConfig = ControllerZoneConfig & {
9
+ readonly gateway: Extract<ControllerZoneConfig['gateway'], {
10
+ readonly type: 'worker';
11
+ }>;
12
+ };
13
+ export interface CreateWorkerZoneRuntimeOptions {
14
+ readonly activeTaskRegistry: Pick<ActiveTaskRegistry, 'activateReservation' | 'beginZoneDestroy' | 'clear' | 'countOccupiedForZone' | 'endZoneDestroy' | 'get' | 'listForZone' | 'releaseReservation' | 'setWorkerIngress' | 'tryReserve'>;
15
+ readonly controllerGithubToken: string | null;
16
+ readonly callerUrl?: string;
17
+ readonly executeWorkerTask?: (prepared: PreparedWorkerTask, dependencies: Parameters<typeof executeWorkerTaskDefault>[1]) => Promise<WorkerTaskResult>;
18
+ readonly onWorkerTaskFinished?: (zoneId: string, taskId: string) => void | Promise<void>;
19
+ readonly onWorkerTaskIngress?: (zoneId: string, taskId: string, workerIngress: {
20
+ readonly host: string;
21
+ readonly port: number;
22
+ }) => void | Promise<void>;
23
+ readonly onWorkerTaskPrepared?: (task: ActiveWorkerTask) => void | Promise<void>;
24
+ readonly prepareWorkerTask?: typeof prepareWorkerTaskDefault;
25
+ readonly requestHeartbeatRegistry: Pick<RequestHeartbeatRegistry, 'acquire' | 'release'>;
26
+ readonly runControllerDestroy?: typeof runControllerDestroyDefault;
27
+ readonly secretResolver: SecretResolver;
28
+ readonly systemConfig: LoadedSystemConfig;
29
+ readonly zone: WorkerZoneConfig;
30
+ }
31
+ export declare function createWorkerZoneRuntime(options: CreateWorkerZoneRuntimeOptions): WorkerZoneRuntime;
32
+ export {};
33
+ //# sourceMappingURL=worker-zone-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-zone-runtime.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/worker-zone-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,oBAAoB,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAOvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EACN,iBAAiB,IAAI,wBAAwB,EAC7C,iBAAiB,IAAI,wBAAwB,EAC7C,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACrB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAIvF,KAAK,gBAAgB,GAAG,oBAAoB,GAAG;IAC9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;CACxF,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAChC,kBAAkB,EAChB,qBAAqB,GACrB,kBAAkB,GAClB,OAAO,GACP,sBAAsB,GACtB,gBAAgB,GAChB,KAAK,GACL,aAAa,GACb,oBAAoB,GACpB,kBAAkB,GAClB,YAAY,CACd,CAAC;IACF,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAC5B,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAAC,KACxD,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,aAAa,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAC3D,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,wBAAwB,CAAC;IAC7D,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IACzF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,2BAA2B,CAAC;IACnE,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CAChC;AA+CD,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,8BAA8B,GACrC,iBAAiB,CAwMnB"}
@@ -0,0 +1,224 @@
1
+ import { appendEvent } from '@agent-vm/agent-vm-worker';
2
+ import { runControllerDestroy as runControllerDestroyDefault } from '../../operations/destroy-zone.js';
3
+ import { pullDefaultForTask } from '../git-pull-default-operations.js';
4
+ import { pushBranchesForTask } from '../git-push-operations.js';
5
+ import { ControllerRuntimeAtCapacityError, ControllerTaskNotReadyError, } from '../http/controller-http-route-support.js';
6
+ import { createTaskStateReader } from '../task-state-reader.js';
7
+ import { executeWorkerTask as executeWorkerTaskDefault, prepareWorkerTask as prepareWorkerTaskDefault, } from '../worker-task-runner.js';
8
+ import { ControllerZoneConfigurationError, ControllerZoneTaskNotFoundError, ControllerZoneTaskNotReadyError, ControllerZoneWorkerCloseAggregateError, ControllerZoneWorkerCloseError, } from './zone-runtime-errors.js';
9
+ const MAX_ACTIVE_TASKS_PER_RUNTIME = 1;
10
+ async function recordActiveTaskEvent(options) {
11
+ await appendEvent(options.eventLogPath, options.event);
12
+ }
13
+ function writeWorkerZoneRuntimeLog(message) {
14
+ process.stderr.write(`[worker-zone-runtime] ${message}\n`);
15
+ }
16
+ async function closeActiveWorkerTask(activeTask) {
17
+ if (!activeTask.workerIngress) {
18
+ throw new ControllerZoneTaskNotReadyError(activeTask.zoneId, activeTask.taskId, `Task '${activeTask.taskId}' in zone '${activeTask.zoneId}' is still preparing and cannot be destroyed safely yet.`);
19
+ }
20
+ try {
21
+ const response = await fetch(`http://${activeTask.workerIngress.host}:${String(activeTask.workerIngress.port)}/tasks/${activeTask.taskId}/close`, { method: 'POST' });
22
+ if (!response.ok) {
23
+ throw new ControllerZoneWorkerCloseError({
24
+ body: await response.text(),
25
+ httpStatus: response.status,
26
+ taskId: activeTask.taskId,
27
+ zoneId: activeTask.zoneId,
28
+ });
29
+ }
30
+ }
31
+ catch (error) {
32
+ if (error instanceof ControllerZoneWorkerCloseError) {
33
+ throw error;
34
+ }
35
+ throw new ControllerZoneWorkerCloseError({
36
+ body: error instanceof Error ? error.message : String(error),
37
+ httpStatus: 0,
38
+ taskId: activeTask.taskId,
39
+ zoneId: activeTask.zoneId,
40
+ });
41
+ }
42
+ }
43
+ export function createWorkerZoneRuntime(options) {
44
+ const readTaskState = createTaskStateReader({ systemConfig: options.systemConfig }).read;
45
+ return {
46
+ closeTaskForZone: async (taskId) => {
47
+ const activeTask = options.activeTaskRegistry.get(options.zone.id, taskId);
48
+ if (!activeTask) {
49
+ throw new ControllerZoneTaskNotFoundError(options.zone.id, taskId);
50
+ }
51
+ if (!activeTask.workerIngress) {
52
+ throw new ControllerTaskNotReadyError(`Task '${taskId}' in zone '${options.zone.id}' does not have a worker ingress yet.`);
53
+ }
54
+ await closeActiveWorkerTask(activeTask);
55
+ return { status: 'closed' };
56
+ },
57
+ destroy: async (purge) => {
58
+ let destroyGateAcquired = false;
59
+ try {
60
+ options.activeTaskRegistry.beginZoneDestroy(options.zone.id);
61
+ destroyGateAcquired = true;
62
+ return await (options.runControllerDestroy ?? runControllerDestroyDefault)({ purge, systemConfig: options.systemConfig, zoneId: options.zone.id }, {
63
+ releaseZoneLeases: async () => { },
64
+ stopGatewayZone: async (zoneId) => {
65
+ const activeTasks = options.activeTaskRegistry.listForZone(zoneId);
66
+ const occupiedTaskCount = options.activeTaskRegistry.countOccupiedForZone(zoneId);
67
+ if (occupiedTaskCount > activeTasks.length) {
68
+ const message = `Zone '${zoneId}' has ${String(occupiedTaskCount - activeTasks.length)} worker task reservation(s) still preparing and cannot be destroyed safely yet.`;
69
+ writeWorkerZoneRuntimeLog(`destroy refused: ${message}`);
70
+ throw new ControllerZoneTaskNotReadyError(zoneId, null, message);
71
+ }
72
+ const preparingTask = activeTasks.find((activeTask) => !activeTask.workerIngress);
73
+ if (preparingTask) {
74
+ const message = `Task '${preparingTask.taskId}' in zone '${zoneId}' is still preparing and cannot be destroyed safely yet.`;
75
+ writeWorkerZoneRuntimeLog(`destroy refused: ${message}`);
76
+ throw new ControllerZoneTaskNotReadyError(zoneId, preparingTask.taskId, message);
77
+ }
78
+ const closeResults = await Promise.allSettled(activeTasks.map(async (activeTask) => await closeActiveWorkerTask(activeTask)));
79
+ const closeFailures = closeResults.flatMap((result, index) => {
80
+ const activeTask = activeTasks[index];
81
+ if (result.status === 'fulfilled') {
82
+ if (activeTask) {
83
+ options.activeTaskRegistry.clear(activeTask.zoneId, activeTask.taskId);
84
+ }
85
+ return [];
86
+ }
87
+ if (result.reason instanceof ControllerZoneWorkerCloseError) {
88
+ return [result.reason];
89
+ }
90
+ return activeTask
91
+ ? [
92
+ new ControllerZoneWorkerCloseError({
93
+ body: result.reason instanceof Error
94
+ ? result.reason.message
95
+ : String(result.reason),
96
+ httpStatus: 0,
97
+ taskId: activeTask.taskId,
98
+ zoneId: activeTask.zoneId,
99
+ }),
100
+ ]
101
+ : [];
102
+ });
103
+ if (closeFailures.length === 1) {
104
+ throw closeFailures[0];
105
+ }
106
+ if (closeFailures.length > 1) {
107
+ throw new ControllerZoneWorkerCloseAggregateError(zoneId, closeFailures);
108
+ }
109
+ },
110
+ });
111
+ }
112
+ finally {
113
+ if (destroyGateAcquired) {
114
+ options.activeTaskRegistry.endZoneDestroy(options.zone.id);
115
+ }
116
+ }
117
+ },
118
+ executeWorkerTask: async (prepared) => {
119
+ let heartbeatAcquired = false;
120
+ try {
121
+ if (options.callerUrl) {
122
+ options.requestHeartbeatRegistry.acquire(prepared.input.requestTaskId, options.callerUrl);
123
+ heartbeatAcquired = true;
124
+ }
125
+ return await (options.executeWorkerTask ?? executeWorkerTaskDefault)(prepared, {
126
+ onTaskFinished: async (finishedZoneId, taskId) => {
127
+ options.activeTaskRegistry.clear(finishedZoneId, taskId);
128
+ await options.onWorkerTaskFinished?.(finishedZoneId, taskId);
129
+ },
130
+ onWorkerTaskIngress: async (zoneId, taskId, workerIngress) => {
131
+ options.activeTaskRegistry.setWorkerIngress(zoneId, taskId, workerIngress);
132
+ await options.onWorkerTaskIngress?.(zoneId, taskId, workerIngress);
133
+ },
134
+ secretResolver: options.secretResolver,
135
+ systemConfig: options.systemConfig,
136
+ });
137
+ }
138
+ catch (error) {
139
+ if (options.activeTaskRegistry.get(prepared.zoneId, prepared.taskId)) {
140
+ options.activeTaskRegistry.clear(prepared.zoneId, prepared.taskId);
141
+ }
142
+ throw error;
143
+ }
144
+ finally {
145
+ if (heartbeatAcquired) {
146
+ options.requestHeartbeatRegistry.release(prepared.input.requestTaskId);
147
+ }
148
+ }
149
+ },
150
+ gatewayType: 'worker',
151
+ getSnapshot: () => ({
152
+ lifecycleState: options.activeTaskRegistry.listForZone(options.zone.id).length > 0 ? 'running' : 'stopped',
153
+ }),
154
+ getTaskState: async (taskId) => await readTaskState(options.zone.id, taskId),
155
+ prepareWorkerTask: async (input) => {
156
+ const reservationId = options.activeTaskRegistry.tryReserve(options.zone.id, MAX_ACTIVE_TASKS_PER_RUNTIME);
157
+ if (!reservationId) {
158
+ throw new ControllerRuntimeAtCapacityError(`Worker pod for zone '${options.zone.id}' is at capacity.`);
159
+ }
160
+ try {
161
+ return await (options.prepareWorkerTask ?? prepareWorkerTaskDefault)({
162
+ ...(options.controllerGithubToken ? { githubToken: options.controllerGithubToken } : {}),
163
+ input,
164
+ onTaskPrepared: async (task) => {
165
+ options.activeTaskRegistry.activateReservation(options.zone.id, reservationId, task);
166
+ await options.onWorkerTaskPrepared?.(task);
167
+ },
168
+ systemConfig: options.systemConfig,
169
+ zoneId: options.zone.id,
170
+ });
171
+ }
172
+ catch (error) {
173
+ options.activeTaskRegistry.releaseReservation(options.zone.id, reservationId);
174
+ throw error;
175
+ }
176
+ },
177
+ pullDefaultForTask: async (taskId, input) => {
178
+ const activeTask = options.activeTaskRegistry.get(options.zone.id, taskId);
179
+ if (!activeTask) {
180
+ throw new ControllerZoneTaskNotFoundError(options.zone.id, taskId);
181
+ }
182
+ if (!options.controllerGithubToken) {
183
+ throw new ControllerZoneConfigurationError(options.zone.id, 'Controller GitHub token is not configured. Set host.githubToken or process.env.GITHUB_TOKEN.');
184
+ }
185
+ return await pullDefaultForTask({
186
+ activeTask,
187
+ ...(input.currentBranch !== undefined ? { currentBranch: input.currentBranch } : {}),
188
+ ...(input.currentHead !== undefined ? { currentHead: input.currentHead } : {}),
189
+ githubToken: options.controllerGithubToken,
190
+ recordEvent: async (event) => {
191
+ await recordActiveTaskEvent({
192
+ event,
193
+ eventLogPath: activeTask.eventLogPath,
194
+ });
195
+ },
196
+ repoUrl: input.repoUrl,
197
+ ...(input.worktreeDirty !== undefined ? { worktreeDirty: input.worktreeDirty } : {}),
198
+ });
199
+ },
200
+ pushTaskBranches: async (taskId, input) => {
201
+ const activeTask = options.activeTaskRegistry.get(options.zone.id, taskId);
202
+ if (!activeTask) {
203
+ throw new ControllerZoneTaskNotFoundError(options.zone.id, taskId);
204
+ }
205
+ if (!options.controllerGithubToken) {
206
+ throw new ControllerZoneConfigurationError(options.zone.id, 'Controller GitHub token is not configured. Set host.githubToken or process.env.GITHUB_TOKEN.');
207
+ }
208
+ return await pushBranchesForTask({
209
+ activeTask,
210
+ branches: input.branches,
211
+ githubToken: options.controllerGithubToken,
212
+ recordEvent: async (event) => {
213
+ await recordActiveTaskEvent({
214
+ event,
215
+ eventLogPath: activeTask.eventLogPath,
216
+ });
217
+ },
218
+ });
219
+ },
220
+ shutdown: async () => { },
221
+ zoneId: options.zone.id,
222
+ };
223
+ }
224
+ //# sourceMappingURL=worker-zone-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-zone-runtime.js","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/worker-zone-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ export declare class ControllerZoneNotFoundError extends Error {
2
+ readonly zoneId: string;
3
+ constructor(zoneId: string);
4
+ }
5
+ export declare class ControllerZoneOperationUnsupportedError extends Error {
6
+ readonly gatewayType: string;
7
+ readonly operationName: string;
8
+ readonly zoneId: string;
9
+ constructor(zoneId: string, operationName: string, gatewayType: string);
10
+ }
11
+ export declare class ControllerZoneConfigurationError extends Error {
12
+ readonly zoneId: string;
13
+ constructor(zoneId: string, message: string);
14
+ }
15
+ export declare class ControllerZoneTaskNotFoundError extends Error {
16
+ readonly taskId: string;
17
+ readonly zoneId: string;
18
+ constructor(zoneId: string, taskId: string);
19
+ }
20
+ export declare class ControllerZoneTaskNotReadyError extends Error {
21
+ readonly taskId: string | null;
22
+ readonly zoneId: string;
23
+ constructor(zoneId: string, taskId: string | null, message: string);
24
+ }
25
+ export declare class ControllerZoneWorkerCloseError extends Error {
26
+ readonly body: string;
27
+ readonly httpStatus: number;
28
+ readonly taskId: string;
29
+ readonly zoneId: string;
30
+ constructor(options: {
31
+ readonly body: string;
32
+ readonly httpStatus: number;
33
+ readonly taskId: string;
34
+ readonly zoneId: string;
35
+ });
36
+ }
37
+ export declare class ControllerZoneWorkerCloseAggregateError extends AggregateError {
38
+ readonly failures: readonly ControllerZoneWorkerCloseError[];
39
+ readonly zoneId: string;
40
+ constructor(zoneId: string, failures: readonly ControllerZoneWorkerCloseError[]);
41
+ }
42
+ export declare class ControllerZoneRuntimeUnavailableError extends Error {
43
+ readonly lastError: string | undefined;
44
+ readonly zoneId: string;
45
+ constructor(zoneId: string, lastError?: string);
46
+ }
47
+ export declare class ControllerZoneRuntimeStartError extends Error {
48
+ readonly zoneId: string;
49
+ constructor(zoneId: string, cause: unknown);
50
+ }
51
+ //# sourceMappingURL=zone-runtime-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-runtime-errors.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/zone-runtime-errors.ts"],"names":[],"mappings":"AAAA,qBAAa,2BAA4B,SAAQ,KAAK;IACrD,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM;CAKjC;AAED,qBAAa,uCAAwC,SAAQ,KAAK;IACjE,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAO7E;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IAC1D,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKlD;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACzD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAMjD;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACzD,SAAgB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM;CAMzE;AAED,qBAAa,8BAA+B,SAAQ,KAAK;IACxD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE;QAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB;CAQD;AAED,qBAAa,uCAAwC,SAAQ,cAAc;IAC1E,SAAgB,QAAQ,EAAE,SAAS,8BAA8B,EAAE,CAAC;IACpE,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,8BAA8B,EAAE;CAStF;AAED,qBAAa,qCAAsC,SAAQ,KAAK;IAC/D,SAAgB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAUrD;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACzD,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAMjD"}
@@ -0,0 +1,94 @@
1
+ export class ControllerZoneNotFoundError extends Error {
2
+ zoneId;
3
+ constructor(zoneId) {
4
+ super(`Unknown zone '${zoneId}'.`);
5
+ this.name = 'ControllerZoneNotFoundError';
6
+ this.zoneId = zoneId;
7
+ }
8
+ }
9
+ export class ControllerZoneOperationUnsupportedError extends Error {
10
+ gatewayType;
11
+ operationName;
12
+ zoneId;
13
+ constructor(zoneId, operationName, gatewayType) {
14
+ super(`Zone '${zoneId}' with gateway type '${gatewayType}' does not support ${operationName}.`);
15
+ this.name = 'ControllerZoneOperationUnsupportedError';
16
+ this.gatewayType = gatewayType;
17
+ this.operationName = operationName;
18
+ this.zoneId = zoneId;
19
+ }
20
+ }
21
+ export class ControllerZoneConfigurationError extends Error {
22
+ zoneId;
23
+ constructor(zoneId, message) {
24
+ super(message);
25
+ this.name = 'ControllerZoneConfigurationError';
26
+ this.zoneId = zoneId;
27
+ }
28
+ }
29
+ export class ControllerZoneTaskNotFoundError extends Error {
30
+ taskId;
31
+ zoneId;
32
+ constructor(zoneId, taskId) {
33
+ super(`Task '${taskId}' is not active for zone '${zoneId}'.`);
34
+ this.name = 'ControllerZoneTaskNotFoundError';
35
+ this.zoneId = zoneId;
36
+ this.taskId = taskId;
37
+ }
38
+ }
39
+ export class ControllerZoneTaskNotReadyError extends Error {
40
+ taskId;
41
+ zoneId;
42
+ constructor(zoneId, taskId, message) {
43
+ super(message);
44
+ this.name = 'ControllerZoneTaskNotReadyError';
45
+ this.zoneId = zoneId;
46
+ this.taskId = taskId;
47
+ }
48
+ }
49
+ export class ControllerZoneWorkerCloseError extends Error {
50
+ body;
51
+ httpStatus;
52
+ taskId;
53
+ zoneId;
54
+ constructor(options) {
55
+ super(`worker close returned HTTP ${String(options.httpStatus)} for task '${options.taskId}'`);
56
+ this.name = 'ControllerZoneWorkerCloseError';
57
+ this.body = options.body;
58
+ this.httpStatus = options.httpStatus;
59
+ this.taskId = options.taskId;
60
+ this.zoneId = options.zoneId;
61
+ }
62
+ }
63
+ export class ControllerZoneWorkerCloseAggregateError extends AggregateError {
64
+ failures;
65
+ zoneId;
66
+ constructor(zoneId, failures) {
67
+ super(failures, `Failed to close ${String(failures.length)} worker task(s) for zone '${zoneId}'.`);
68
+ this.name = 'ControllerZoneWorkerCloseAggregateError';
69
+ this.zoneId = zoneId;
70
+ this.failures = failures;
71
+ }
72
+ }
73
+ export class ControllerZoneRuntimeUnavailableError extends Error {
74
+ lastError;
75
+ zoneId;
76
+ constructor(zoneId, lastError) {
77
+ super(lastError
78
+ ? `Gateway runtime for zone '${zoneId}' is unavailable. Last error: ${lastError}`
79
+ : `Gateway runtime for zone '${zoneId}' is unavailable.`);
80
+ this.name = 'ControllerZoneRuntimeUnavailableError';
81
+ this.lastError = lastError;
82
+ this.zoneId = zoneId;
83
+ }
84
+ }
85
+ export class ControllerZoneRuntimeStartError extends Error {
86
+ zoneId;
87
+ constructor(zoneId, cause) {
88
+ const message = cause instanceof Error ? cause.message : String(cause);
89
+ super(`Failed to start zone '${zoneId}': ${message}`, { cause });
90
+ this.name = 'ControllerZoneRuntimeStartError';
91
+ this.zoneId = zoneId;
92
+ }
93
+ }
94
+ //# sourceMappingURL=zone-runtime-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-runtime-errors.js","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/zone-runtime-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { LoadedSystemConfig } from '../../config/system-config.js';
2
+ import type { ControllerZoneRuntime, ControllerZoneRuntimeSnapshot, OpenClawZoneRuntime, WorkerZoneRuntime } from './zone-runtime-types.js';
3
+ export interface ZoneRuntimeRegistry {
4
+ readonly selectedZoneIds: readonly string[];
5
+ destroyZone(zoneId: string, purge: boolean): Promise<{
6
+ readonly ok: true;
7
+ readonly purged: boolean;
8
+ readonly zoneId: string;
9
+ }>;
10
+ getOpenClawRuntime(zoneId: string): OpenClawZoneRuntime;
11
+ getSnapshotByZone(): Readonly<Record<string, ControllerZoneRuntimeSnapshot>>;
12
+ getWorkerRuntime(zoneId: string): WorkerZoneRuntime;
13
+ startSelectedZones(): Promise<void>;
14
+ stopAllZones(): Promise<void>;
15
+ }
16
+ export declare function createZoneRuntimeRegistry(options: {
17
+ readonly createRuntimeForZone: (zone: LoadedSystemConfig['zones'][number]) => ControllerZoneRuntime;
18
+ readonly startupFailures?: readonly {
19
+ readonly lastError: string;
20
+ readonly zoneId: string;
21
+ }[];
22
+ readonly systemConfig: LoadedSystemConfig;
23
+ readonly zoneIds?: readonly string[];
24
+ readonly writeLog?: (message: string) => void;
25
+ }): ZoneRuntimeRegistry;
26
+ //# sourceMappingURL=zone-runtime-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-runtime-registry.d.ts","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/zone-runtime-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAKxE,OAAO,KAAK,EACX,qBAAqB,EACrB,6BAA6B,EAC7B,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,WAAW,CACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC;QACV,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACxD,iBAAiB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAC7E,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACpD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,oBAAoB,EAAE,CAC9B,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KACrC,qBAAqB,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS;QACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,GAAG,mBAAmB,CA2GtB"}
@@ -0,0 +1,84 @@
1
+ import { ControllerZoneNotFoundError, ControllerZoneOperationUnsupportedError, } from './zone-runtime-errors.js';
2
+ export function createZoneRuntimeRegistry(options) {
3
+ const runtimeZoneIds = options.zoneIds ?? options.systemConfig.zones.map((zone) => zone.id);
4
+ const startupFailuresByZoneId = new Map((options.startupFailures ?? []).map((failure) => [failure.zoneId, failure]));
5
+ const selectedZoneIds = [...new Set([...runtimeZoneIds, ...startupFailuresByZoneId.keys()])];
6
+ const runtimesByZoneId = new Map();
7
+ const writeLog = options.writeLog ??
8
+ ((message) => {
9
+ process.stderr.write(`[zone-runtime-registry] ${message}\n`);
10
+ });
11
+ for (const zoneId of runtimeZoneIds) {
12
+ const zone = options.systemConfig.zones.find((candidateZone) => candidateZone.id === zoneId);
13
+ if (!zone) {
14
+ throw new ControllerZoneNotFoundError(zoneId);
15
+ }
16
+ runtimesByZoneId.set(zoneId, options.createRuntimeForZone(zone));
17
+ }
18
+ const getRuntime = (zoneId) => {
19
+ const runtime = runtimesByZoneId.get(zoneId);
20
+ if (!runtime) {
21
+ throw new ControllerZoneNotFoundError(zoneId);
22
+ }
23
+ return runtime;
24
+ };
25
+ return {
26
+ selectedZoneIds,
27
+ async destroyZone(zoneId, purge) {
28
+ return await getRuntime(zoneId).destroy(purge);
29
+ },
30
+ getOpenClawRuntime(zoneId) {
31
+ const runtime = getRuntime(zoneId);
32
+ if (runtime.gatewayType !== 'openclaw') {
33
+ throw new ControllerZoneOperationUnsupportedError(zoneId, 'OpenClaw operations', runtime.gatewayType);
34
+ }
35
+ return runtime;
36
+ },
37
+ getSnapshotByZone() {
38
+ return {
39
+ ...Object.fromEntries([...startupFailuresByZoneId.entries()].map(([zoneId, failure]) => [
40
+ zoneId,
41
+ {
42
+ lastError: failure.lastError,
43
+ lifecycleState: 'failed',
44
+ },
45
+ ])),
46
+ ...Object.fromEntries([...runtimesByZoneId.entries()].map(([zoneId, runtime]) => [
47
+ zoneId,
48
+ runtime.getSnapshot(),
49
+ ])),
50
+ };
51
+ },
52
+ getWorkerRuntime(zoneId) {
53
+ const runtime = getRuntime(zoneId);
54
+ if (runtime.gatewayType !== 'worker') {
55
+ throw new ControllerZoneOperationUnsupportedError(zoneId, 'worker operations', runtime.gatewayType);
56
+ }
57
+ return runtime;
58
+ },
59
+ async startSelectedZones() {
60
+ await Promise.all([...runtimesByZoneId.values()]
61
+ .filter((runtime) => runtime.gatewayType === 'openclaw')
62
+ .map(async (runtime) => {
63
+ try {
64
+ await runtime.start();
65
+ }
66
+ catch (error) {
67
+ const message = error instanceof Error ? error.message : String(error);
68
+ writeLog(`Failed to start zone '${runtime.zoneId}': ${message}`);
69
+ // Partial start: failed runtimes retain their own failed snapshot.
70
+ }
71
+ }));
72
+ },
73
+ async stopAllZones() {
74
+ const stopResults = await Promise.allSettled([...runtimesByZoneId.values()].map(async (runtime) => await runtime.shutdown()));
75
+ const stopErrors = stopResults
76
+ .filter((result) => result.status === 'rejected')
77
+ .map((result) => result.reason instanceof Error ? result.reason : new Error(String(result.reason)));
78
+ if (stopErrors.length > 0) {
79
+ throw new AggregateError(stopErrors, `Failed to stop one or more gateway zones: ${stopErrors.map((error) => error.message).join('; ')}`);
80
+ }
81
+ },
82
+ };
83
+ }
84
+ //# sourceMappingURL=zone-runtime-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-runtime-registry.js","sourceRoot":"","sources":["../../../src/controller/zone-runtimes/zone-runtime-registry.ts"],"names":[],"mappings":"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"}