devchain-cli 0.24.2 → 0.26.0

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 (1341) hide show
  1. package/README.md +12 -3
  2. package/dist/build-info.json +2 -2
  3. package/dist/cli.js +34 -76
  4. package/dist/drizzle/0094_agent_worktree_lanes.sql +20 -0
  5. package/dist/drizzle/meta/0094_snapshot.json +7810 -0
  6. package/dist/drizzle/meta/_journal.json +7 -0
  7. package/dist/host-cli-pins.json +1 -1
  8. package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
  9. package/dist/host-install/pins.json +4 -2
  10. package/dist/lib/git-owner.js +30 -205
  11. package/dist/lib/git-shim.js +417 -0
  12. package/dist/lib/git-supervisor.js +289 -0
  13. package/dist/lib/host-api-key.js +75 -19
  14. package/dist/lib/local-api.js +4 -2
  15. package/dist/lib/local-app-process.js +77 -0
  16. package/dist/node_modules/@devchain/shared/index.d.ts +1 -0
  17. package/dist/node_modules/@devchain/shared/index.d.ts.map +1 -1
  18. package/dist/node_modules/@devchain/shared/index.js +1 -0
  19. package/dist/node_modules/@devchain/shared/index.js.map +1 -1
  20. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +511 -3
  21. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts.map +1 -1
  22. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js +56 -0
  23. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -1
  24. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +26 -26
  25. package/dist/node_modules/@devchain/shared/schemas/host-provider-clis.d.ts +6 -6
  26. package/dist/node_modules/@devchain/shared/schemas/index.d.ts +1 -0
  27. package/dist/node_modules/@devchain/shared/schemas/index.d.ts.map +1 -1
  28. package/dist/node_modules/@devchain/shared/schemas/index.js +1 -0
  29. package/dist/node_modules/@devchain/shared/schemas/index.js.map +1 -1
  30. package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts +3855 -3855
  31. package/dist/node_modules/@devchain/shared/schemas/provider-clis.js +1 -1
  32. package/dist/node_modules/@devchain/shared/schemas/provider-clis.js.map +1 -1
  33. package/dist/node_modules/@devchain/shared/schemas/provider-usage.d.ts +350 -0
  34. package/dist/node_modules/@devchain/shared/schemas/provider-usage.d.ts.map +1 -0
  35. package/dist/node_modules/@devchain/shared/schemas/provider-usage.js +71 -0
  36. package/dist/node_modules/@devchain/shared/schemas/provider-usage.js.map +1 -0
  37. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  38. package/dist/server/app.module.js +4 -0
  39. package/dist/server/app.module.js.map +1 -1
  40. package/dist/server/common/config/env.config.d.ts +6 -0
  41. package/dist/server/common/config/env.config.js +8 -0
  42. package/dist/server/common/config/env.config.js.map +1 -1
  43. package/dist/server/common/config/host-image.json +3 -3
  44. package/dist/server/common/config/integration-admission.d.ts +1 -0
  45. package/dist/server/common/config/integration-admission.js +6 -2
  46. package/dist/server/common/config/integration-admission.js.map +1 -1
  47. package/dist/server/common/config/vm-destroy-fence.d.ts +18 -0
  48. package/dist/server/common/config/vm-destroy-fence.js +38 -0
  49. package/dist/server/common/config/vm-destroy-fence.js.map +1 -0
  50. package/dist/server/common/errors/error-types.d.ts +3 -0
  51. package/dist/server/common/errors/error-types.js +10 -1
  52. package/dist/server/common/errors/error-types.js.map +1 -1
  53. package/dist/server/common/git-shim-paths.d.ts +4 -0
  54. package/dist/server/common/git-shim-paths.js +24 -0
  55. package/dist/server/common/git-shim-paths.js.map +1 -0
  56. package/dist/server/common/http/browser-request-guard.d.ts +8 -0
  57. package/dist/server/common/http/browser-request-guard.js +61 -0
  58. package/dist/server/common/http/browser-request-guard.js.map +1 -0
  59. package/dist/server/common/test/fake-bootstrap.server.d.ts +5 -0
  60. package/dist/server/common/test/fake-bootstrap.server.js +12 -3
  61. package/dist/server/common/test/fake-bootstrap.server.js.map +1 -1
  62. package/dist/server/common/test/fake-docker-engine.server.d.ts +8 -0
  63. package/dist/server/common/test/fake-docker-engine.server.js +34 -1
  64. package/dist/server/common/test/fake-docker-engine.server.js.map +1 -1
  65. package/dist/server/common/test/shared-vm.stub.d.ts +2 -0
  66. package/dist/server/common/test/shared-vm.stub.js +13 -0
  67. package/dist/server/common/test/shared-vm.stub.js.map +1 -0
  68. package/dist/server/common/test/tls-fixture.d.ts +2 -1
  69. package/dist/server/common/test/tls-fixture.js +47 -5
  70. package/dist/server/common/test/tls-fixture.js.map +1 -1
  71. package/dist/server/main.js +2 -0
  72. package/dist/server/main.js.map +1 -1
  73. package/dist/server/modules/agents/agents.module.js +1 -8
  74. package/dist/server/modules/agents/agents.module.js.map +1 -1
  75. package/dist/server/modules/agents/controllers/agents.controller.d.ts +4 -4
  76. package/dist/server/modules/agents/controllers/agents.controller.js +6 -10
  77. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
  78. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js +7 -7
  79. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js.map +1 -1
  80. package/dist/server/modules/cloud/services/cloud-session-manager.service.d.ts +12 -0
  81. package/dist/server/modules/cloud/services/cloud-session-manager.service.js +78 -9
  82. package/dist/server/modules/cloud/services/cloud-session-manager.service.js.map +1 -1
  83. package/dist/server/modules/cloud/services/notification-recipient-resolver.service.d.ts +2 -2
  84. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js +11 -3
  85. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
  86. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js +2 -2
  87. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js.map +1 -1
  88. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.d.ts +4 -4
  89. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js +6 -6
  90. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js.map +1 -1
  91. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +6 -2
  92. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js +11 -2
  93. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
  94. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.d.ts +509 -1
  95. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +57 -1
  96. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js.map +1 -1
  97. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.d.ts +3 -2
  98. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js +1 -0
  99. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -1
  100. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js +3 -2
  101. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js.map +1 -1
  102. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.d.ts +14 -3
  103. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +55 -14
  104. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
  105. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js.map +1 -1
  106. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.d.ts +2 -2
  107. package/dist/server/modules/core/controllers/docker-archive-owners.d.ts +29 -0
  108. package/dist/server/modules/core/controllers/docker-archive-owners.js +226 -0
  109. package/dist/server/modules/core/controllers/docker-archive-owners.js.map +1 -0
  110. package/dist/server/modules/core/controllers/docker-engine.client.d.ts +4 -0
  111. package/dist/server/modules/core/controllers/docker-engine.client.js +38 -0
  112. package/dist/server/modules/core/controllers/docker-engine.client.js.map +1 -1
  113. package/dist/server/modules/core/controllers/health.controller.d.ts +7 -6
  114. package/dist/server/modules/core/controllers/health.controller.js +1 -1
  115. package/dist/server/modules/core/controllers/health.controller.js.map +1 -1
  116. package/dist/server/modules/core/controllers/runtime.controller.d.ts +2 -56
  117. package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
  118. package/dist/server/modules/core/services/preflight.service.d.ts +2 -2
  119. package/dist/server/modules/core/services/preflight.service.js +4 -3
  120. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  121. package/dist/server/modules/e2ee/services/e2ee-device-store.service.d.ts +3 -0
  122. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +12 -4
  123. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
  124. package/dist/server/modules/e2ee/services/e2ee-pairing.service.d.ts +1 -0
  125. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js +4 -0
  126. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js.map +1 -1
  127. package/dist/server/modules/e2ee/services/e2ee-trust.service.d.ts +6 -2
  128. package/dist/server/modules/e2ee/services/e2ee-trust.service.js +16 -5
  129. package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
  130. package/dist/server/modules/epic-time/epic-time.module.js +0 -2
  131. package/dist/server/modules/epic-time/epic-time.module.js.map +1 -1
  132. package/dist/server/modules/epic-time/services/agent-time-accounting.service.d.ts +3 -3
  133. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js +12 -12
  134. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js.map +1 -1
  135. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +2 -2
  136. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
  137. package/dist/server/modules/epic-time/services/epic-time.service.d.ts +3 -3
  138. package/dist/server/modules/epic-time/services/epic-time.service.js +7 -7
  139. package/dist/server/modules/epic-time/services/epic-time.service.js.map +1 -1
  140. package/dist/server/modules/epics/epics.module.js +0 -2
  141. package/dist/server/modules/epics/epics.module.js.map +1 -1
  142. package/dist/server/modules/epics/services/epic-relations.service.d.ts +1 -4
  143. package/dist/server/modules/epics/services/epic-relations.service.js +2 -22
  144. package/dist/server/modules/epics/services/epic-relations.service.js.map +1 -1
  145. package/dist/server/modules/epics/services/epics.service.d.ts +4 -4
  146. package/dist/server/modules/epics/services/epics.service.js +11 -19
  147. package/dist/server/modules/epics/services/epics.service.js.map +1 -1
  148. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +2 -2
  149. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +3 -3
  150. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
  151. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.d.ts +2 -2
  152. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js +2 -2
  153. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js.map +1 -1
  154. package/dist/server/modules/events/catalog/broadcast-registry.js +8 -0
  155. package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
  156. package/dist/server/modules/events/catalog/index.d.ts +18 -11
  157. package/dist/server/modules/events/catalog/index.js +3 -0
  158. package/dist/server/modules/events/catalog/index.js.map +1 -1
  159. package/dist/server/modules/events/catalog/on-catalog-event.d.ts +5 -0
  160. package/dist/server/modules/events/catalog/on-catalog-event.js +8 -0
  161. package/dist/server/modules/events/catalog/on-catalog-event.js.map +1 -0
  162. package/dist/server/modules/events/catalog/provider-usage.updated.d.ts +12 -0
  163. package/dist/server/modules/events/catalog/provider-usage.updated.js +13 -0
  164. package/dist/server/modules/events/catalog/provider-usage.updated.js.map +1 -0
  165. package/dist/server/modules/events/catalog/review.comment.created.d.ts +2 -2
  166. package/dist/server/modules/events/catalog/review.created.d.ts +8 -8
  167. package/dist/server/modules/events/signals/session-turn-signals.js.map +1 -0
  168. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.d.ts +0 -5
  169. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js +8 -44
  170. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js.map +1 -1
  171. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.d.ts +0 -5
  172. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js +9 -45
  173. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js.map +1 -1
  174. package/dist/server/modules/external-integrations/adapters/vendor-shared.d.ts +7 -2
  175. package/dist/server/modules/external-integrations/adapters/vendor-shared.js +36 -0
  176. package/dist/server/modules/external-integrations/adapters/vendor-shared.js.map +1 -1
  177. package/dist/server/modules/external-integrations/connections/integration-connections.service.d.ts +2 -2
  178. package/dist/server/modules/external-integrations/connections/integration-connections.service.js.map +1 -1
  179. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -2
  180. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
  181. package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +2 -2
  182. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
  183. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.d.ts +2 -2
  184. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
  185. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.d.ts +2 -2
  186. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js.map +1 -1
  187. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.d.ts +2 -2
  188. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js.map +1 -1
  189. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js +1 -2
  190. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js.map +1 -1
  191. package/dist/server/modules/file-sync/file-sync.dto.d.ts +37 -6
  192. package/dist/server/modules/file-sync/file-sync.dto.js +19 -2
  193. package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
  194. package/dist/server/modules/file-sync/file-sync.module.js +17 -4
  195. package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
  196. package/dist/server/modules/file-sync/file-sync.service.d.ts +7 -1
  197. package/dist/server/modules/file-sync/file-sync.service.js +43 -4
  198. package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
  199. package/dist/server/modules/file-sync/git-guard.dto.d.ts +0 -21
  200. package/dist/server/modules/file-sync/git-guard.dto.js +1 -7
  201. package/dist/server/modules/file-sync/git-guard.dto.js.map +1 -1
  202. package/dist/server/modules/file-sync/home-git-guard.service.d.ts +4 -1
  203. package/dist/server/modules/file-sync/home-git-guard.service.js +128 -22
  204. package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
  205. package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +7 -6
  206. package/dist/server/modules/file-sync/host-git-guard.controller.js +13 -7
  207. package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -1
  208. package/dist/server/modules/file-sync/host-sync.controller.d.ts +22 -21
  209. package/dist/server/modules/file-sync/host-sync.controller.js +71 -46
  210. package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
  211. package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +3 -0
  212. package/dist/server/modules/file-sync/ignore-pattern-matcher.js +58 -14
  213. package/dist/server/modules/file-sync/ignore-pattern-matcher.js.map +1 -1
  214. package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +11 -27
  215. package/dist/server/modules/file-sync/sync-path-inspection.dto.js +1 -9
  216. package/dist/server/modules/file-sync/sync-path-inspection.dto.js.map +1 -1
  217. package/dist/server/modules/file-sync/sync-path-inspector.d.ts +1 -1
  218. package/dist/server/modules/file-sync/sync-path-inspector.js +20 -4
  219. package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -1
  220. package/dist/server/modules/file-sync/syncthing-launcher.d.ts +5 -0
  221. package/dist/server/modules/file-sync/syncthing-launcher.js +22 -1
  222. package/dist/server/modules/file-sync/syncthing-launcher.js.map +1 -1
  223. package/dist/server/modules/file-sync/syncthing-manager.service.d.ts +2 -0
  224. package/dist/server/modules/file-sync/syncthing-manager.service.js +27 -11
  225. package/dist/server/modules/file-sync/syncthing-manager.service.js.map +1 -1
  226. package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +6 -2
  227. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +9 -0
  228. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
  229. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.d.ts +3 -0
  230. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js +11 -0
  231. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js.map +1 -1
  232. package/dist/server/modules/git/services/git.service.d.ts +3 -2
  233. package/dist/server/modules/git/services/git.service.js +12 -0
  234. package/dist/server/modules/git/services/git.service.js.map +1 -1
  235. package/dist/server/modules/guests/guests.module.js +1 -1
  236. package/dist/server/modules/guests/guests.module.js.map +1 -1
  237. package/dist/server/modules/guests/services/guest-health.service.d.ts +3 -1
  238. package/dist/server/modules/guests/services/guest-health.service.js +15 -5
  239. package/dist/server/modules/guests/services/guest-health.service.js.map +1 -1
  240. package/dist/server/modules/guests/services/guests.service.d.ts +2 -2
  241. package/dist/server/modules/guests/services/guests.service.js +0 -2
  242. package/dist/server/modules/guests/services/guests.service.js.map +1 -1
  243. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +4 -4
  244. package/dist/server/modules/hooks/services/hooks.service.js +1 -1
  245. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  246. package/dist/server/modules/hooks/services/pending-ask-user-question.service.d.ts +3 -6
  247. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js +3 -3
  248. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js.map +1 -1
  249. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +95 -1
  250. package/dist/server/modules/mcp/dtos/mcp.dto.js +45 -2
  251. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
  252. package/dist/server/modules/mcp/mcp-full.module.js +2 -2
  253. package/dist/server/modules/mcp/mcp-full.module.js.map +1 -1
  254. package/dist/server/modules/mcp/services/handlers/chat-context.d.ts +2 -2
  255. package/dist/server/modules/mcp/services/handlers/chat-tools.js +1 -1
  256. package/dist/server/modules/mcp/services/handlers/chat-tools.js.map +1 -1
  257. package/dist/server/modules/mcp/services/handlers/epic-context.d.ts +2 -2
  258. package/dist/server/modules/mcp/services/handlers/epic-tools.js +16 -0
  259. package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -1
  260. package/dist/server/modules/mcp/services/handlers/teams-tools.d.ts +1 -0
  261. package/dist/server/modules/mcp/services/handlers/teams-tools.js +51 -0
  262. package/dist/server/modules/mcp/services/handlers/teams-tools.js.map +1 -1
  263. package/dist/server/modules/mcp/services/handlers/worktree-context.d.ts +6 -0
  264. package/dist/server/modules/mcp/services/handlers/worktree-context.js +3 -0
  265. package/dist/server/modules/mcp/services/handlers/worktree-context.js.map +1 -0
  266. package/dist/server/modules/mcp/services/handlers/worktree-tools.d.ts +7 -0
  267. package/dist/server/modules/mcp/services/handlers/worktree-tools.js +77 -0
  268. package/dist/server/modules/mcp/services/handlers/worktree-tools.js.map +1 -0
  269. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +4 -4
  270. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +8 -4
  271. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
  272. package/dist/server/modules/mcp/services/mcp.service.d.ts +2 -2
  273. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  274. package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +6 -4
  275. package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
  276. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js +1 -1
  277. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js.map +1 -1
  278. package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js +2 -2
  279. package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js.map +1 -1
  280. package/dist/server/modules/mcp/tool-descriptors/index.js +2 -0
  281. package/dist/server/modules/mcp/tool-descriptors/index.js.map +1 -1
  282. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js +2 -0
  283. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js.map +1 -1
  284. package/dist/server/modules/mcp/tool-descriptors/team.bindings.js +1 -0
  285. package/dist/server/modules/mcp/tool-descriptors/team.bindings.js.map +1 -1
  286. package/dist/server/modules/mcp/tool-descriptors/team.metadata.js +33 -0
  287. package/dist/server/modules/mcp/tool-descriptors/team.metadata.js.map +1 -1
  288. package/dist/server/modules/mcp/tool-descriptors/worktree.bindings.d.ts +1 -0
  289. package/dist/server/modules/mcp/tool-descriptors/worktree.bindings.js +20 -0
  290. package/dist/server/modules/mcp/tool-descriptors/worktree.bindings.js.map +1 -0
  291. package/dist/server/modules/mcp/tool-descriptors/worktree.metadata.d.ts +2 -0
  292. package/dist/server/modules/mcp/tool-descriptors/worktree.metadata.js +105 -0
  293. package/dist/server/modules/mcp/tool-descriptors/worktree.metadata.js.map +1 -0
  294. package/dist/server/modules/profiles/controllers/profiles.controller.d.ts +7 -31
  295. package/dist/server/modules/profiles/controllers/profiles.controller.js +10 -13
  296. package/dist/server/modules/profiles/controllers/profiles.controller.js.map +1 -1
  297. package/dist/server/modules/profiles/dto.d.ts +17 -0
  298. package/dist/server/modules/profiles/dto.js.map +1 -1
  299. package/dist/server/modules/profiles/profiles.module.js +1 -2
  300. package/dist/server/modules/profiles/profiles.module.js.map +1 -1
  301. package/dist/server/modules/profiles/services/provider-configs.service.d.ts +1 -4
  302. package/dist/server/modules/profiles/services/provider-configs.service.js +3 -12
  303. package/dist/server/modules/profiles/services/provider-configs.service.js.map +1 -1
  304. package/dist/server/modules/project-communication/project-communication.module.js +1 -2
  305. package/dist/server/modules/project-communication/project-communication.module.js.map +1 -1
  306. package/dist/server/modules/project-communication/project-communication.service.d.ts +4 -4
  307. package/dist/server/modules/project-communication/project-communication.service.js +8 -8
  308. package/dist/server/modules/project-communication/project-communication.service.js.map +1 -1
  309. package/dist/server/modules/projects/controllers/projects.controller.d.ts +4 -17
  310. package/dist/server/modules/projects/controllers/projects.controller.js +2 -9
  311. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  312. package/dist/server/modules/projects/dtos/project-presets.dto.d.ts +5 -0
  313. package/dist/server/modules/projects/dtos/project-presets.dto.js +3 -0
  314. package/dist/server/modules/projects/dtos/project-presets.dto.js.map +1 -0
  315. package/dist/server/modules/projects/helpers/project-export.d.ts +2 -2
  316. package/dist/server/modules/projects/helpers/project-export.js.map +1 -1
  317. package/dist/server/modules/projects/helpers/project-import.d.ts +3 -2
  318. package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
  319. package/dist/server/modules/projects/helpers/project-presets.helpers.d.ts +2 -2
  320. package/dist/server/modules/projects/helpers/project-presets.helpers.js.map +1 -1
  321. package/dist/server/modules/projects/helpers/template-loader.d.ts +3 -2
  322. package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
  323. package/dist/server/modules/projects/projects.module.js +0 -2
  324. package/dist/server/modules/projects/projects.module.js.map +1 -1
  325. package/dist/server/modules/projects/services/project-provider-provisioning.service.d.ts +2 -2
  326. package/dist/server/modules/projects/services/project-provider-provisioning.service.js.map +1 -1
  327. package/dist/server/modules/projects/services/project-registry-import.service.d.ts +2 -2
  328. package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
  329. package/dist/server/modules/projects/services/project-template-upgrade.service.d.ts +3 -3
  330. package/dist/server/modules/projects/services/project-template-upgrade.service.js +6 -7
  331. package/dist/server/modules/projects/services/project-template-upgrade.service.js.map +1 -1
  332. package/dist/server/modules/projects/services/projects.service.d.ts +4 -4
  333. package/dist/server/modules/projects/services/projects.service.js +7 -9
  334. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  335. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.d.ts +2 -2
  336. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.js.map +1 -1
  337. package/dist/server/modules/projects/template-codec/codecs/teams.codec.d.ts +2 -2
  338. package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
  339. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.d.ts +1 -1
  340. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js.map +1 -1
  341. package/dist/server/modules/projects/template-codec/template-section-codec.d.ts +3 -3
  342. package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +1 -3
  343. package/dist/server/modules/prompts/controllers/prompts.controller.js +3 -8
  344. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
  345. package/dist/server/modules/prompts/prompts.module.js +1 -2
  346. package/dist/server/modules/prompts/prompts.module.js.map +1 -1
  347. package/dist/server/modules/provider-auth/opencode-credential-family.v2.d.ts +4 -0
  348. package/dist/server/modules/provider-auth/opencode-credential-family.v2.js +41 -0
  349. package/dist/server/modules/provider-auth/opencode-credential-family.v2.js.map +1 -0
  350. package/dist/server/modules/provider-auth/opencode-credentials.d.ts +25 -0
  351. package/dist/server/modules/provider-auth/opencode-credentials.js +102 -0
  352. package/dist/server/modules/provider-auth/opencode-credentials.js.map +1 -0
  353. package/dist/server/modules/provider-auth/opencode-pc-logins.service.d.ts +11 -0
  354. package/dist/server/modules/provider-auth/opencode-pc-logins.service.js +62 -0
  355. package/dist/server/modules/provider-auth/opencode-pc-logins.service.js.map +1 -0
  356. package/dist/server/modules/provider-auth/opencode-pc-logins.v1.d.ts +1 -0
  357. package/dist/server/modules/provider-auth/opencode-pc-logins.v1.js +25 -0
  358. package/dist/server/modules/provider-auth/opencode-pc-logins.v1.js.map +1 -0
  359. package/dist/server/modules/provider-auth/opencode-pc-logins.v2.d.ts +3 -0
  360. package/dist/server/modules/provider-auth/opencode-pc-logins.v2.js +25 -0
  361. package/dist/server/modules/provider-auth/opencode-pc-logins.v2.js.map +1 -0
  362. package/dist/server/modules/provider-auth/provider-auth-adapters.d.ts +4 -1
  363. package/dist/server/modules/provider-auth/provider-auth-adapters.js +65 -33
  364. package/dist/server/modules/provider-auth/provider-auth-adapters.js.map +1 -1
  365. package/dist/server/modules/provider-auth/provider-auth-generator.service.d.ts +3 -1
  366. package/dist/server/modules/provider-auth/provider-auth-generator.service.js +12 -6
  367. package/dist/server/modules/provider-auth/provider-auth-generator.service.js.map +1 -1
  368. package/dist/server/modules/provider-auth/provider-auth-vault.service.d.ts +3 -2
  369. package/dist/server/modules/provider-auth/provider-auth-vault.service.js +8 -25
  370. package/dist/server/modules/provider-auth/provider-auth-vault.service.js.map +1 -1
  371. package/dist/server/modules/provider-auth/provider-auth-watcher.service.d.ts +5 -1
  372. package/dist/server/modules/provider-auth/provider-auth-watcher.service.js +32 -1
  373. package/dist/server/modules/provider-auth/provider-auth-watcher.service.js.map +1 -1
  374. package/dist/server/modules/provider-auth/provider-auth.module.js +4 -0
  375. package/dist/server/modules/provider-auth/provider-auth.module.js.map +1 -1
  376. package/dist/server/modules/provider-usage/checkers/agy.checker.d.ts +15 -0
  377. package/dist/server/modules/provider-usage/checkers/agy.checker.js +129 -0
  378. package/dist/server/modules/provider-usage/checkers/agy.checker.js.map +1 -0
  379. package/dist/server/modules/provider-usage/checkers/checker-helpers.d.ts +4 -0
  380. package/dist/server/modules/provider-usage/checkers/checker-helpers.js +12 -0
  381. package/dist/server/modules/provider-usage/checkers/checker-helpers.js.map +1 -0
  382. package/dist/server/modules/provider-usage/checkers/claude-login.checker.d.ts +10 -0
  383. package/dist/server/modules/provider-usage/checkers/claude-login.checker.js +92 -0
  384. package/dist/server/modules/provider-usage/checkers/claude-login.checker.js.map +1 -0
  385. package/dist/server/modules/provider-usage/checkers/claude-token.checker.d.ts +5 -0
  386. package/dist/server/modules/provider-usage/checkers/claude-token.checker.js +80 -0
  387. package/dist/server/modules/provider-usage/checkers/claude-token.checker.js.map +1 -0
  388. package/dist/server/modules/provider-usage/checkers/claude-usage-parser.d.ts +12 -0
  389. package/dist/server/modules/provider-usage/checkers/claude-usage-parser.js +113 -0
  390. package/dist/server/modules/provider-usage/checkers/claude-usage-parser.js.map +1 -0
  391. package/dist/server/modules/provider-usage/checkers/codex.checker.d.ts +7 -0
  392. package/dist/server/modules/provider-usage/checkers/codex.checker.js +159 -0
  393. package/dist/server/modules/provider-usage/checkers/codex.checker.js.map +1 -0
  394. package/dist/server/modules/provider-usage/checkers/private-cwd.d.ts +1 -0
  395. package/dist/server/modules/provider-usage/checkers/private-cwd.js +8 -0
  396. package/dist/server/modules/provider-usage/checkers/private-cwd.js.map +1 -0
  397. package/dist/server/modules/provider-usage/controllers/provider-usage.controller.d.ts +7 -0
  398. package/dist/server/modules/provider-usage/controllers/provider-usage.controller.js +51 -0
  399. package/dist/server/modules/provider-usage/controllers/provider-usage.controller.js.map +1 -0
  400. package/dist/server/modules/provider-usage/provider-usage.module.d.ts +2 -0
  401. package/dist/server/modules/provider-usage/provider-usage.module.js +58 -0
  402. package/dist/server/modules/provider-usage/provider-usage.module.js.map +1 -0
  403. package/dist/server/modules/provider-usage/provider-usage.types.d.ts +26 -0
  404. package/dist/server/modules/provider-usage/provider-usage.types.js +5 -0
  405. package/dist/server/modules/provider-usage/provider-usage.types.js.map +1 -0
  406. package/dist/server/modules/provider-usage/services/provider-usage-accounts.d.ts +5 -0
  407. package/dist/server/modules/provider-usage/services/provider-usage-accounts.js +94 -0
  408. package/dist/server/modules/provider-usage/services/provider-usage-accounts.js.map +1 -0
  409. package/dist/server/modules/provider-usage/services/provider-usage-accounts.service.d.ts +23 -0
  410. package/dist/server/modules/provider-usage/services/provider-usage-accounts.service.js +81 -0
  411. package/dist/server/modules/provider-usage/services/provider-usage-accounts.service.js.map +1 -0
  412. package/dist/server/modules/provider-usage/services/provider-usage.service.d.ts +37 -0
  413. package/dist/server/modules/provider-usage/services/provider-usage.service.js +262 -0
  414. package/dist/server/modules/provider-usage/services/provider-usage.service.js.map +1 -0
  415. package/dist/server/modules/providers/adapters/antigravity.adapter.d.ts +1 -1
  416. package/dist/server/modules/providers/adapters/antigravity.adapter.js +2 -1
  417. package/dist/server/modules/providers/adapters/antigravity.adapter.js.map +1 -1
  418. package/dist/server/modules/providers/adapters/antigravity.traits.d.ts +2 -0
  419. package/dist/server/modules/providers/adapters/antigravity.traits.js +9 -0
  420. package/dist/server/modules/providers/adapters/antigravity.traits.js.map +1 -0
  421. package/dist/server/modules/providers/adapters/capabilities/hook.capability.d.ts +0 -1
  422. package/dist/server/modules/providers/adapters/capabilities/index.d.ts +2 -2
  423. package/dist/server/modules/providers/adapters/capabilities/index.js +2 -1
  424. package/dist/server/modules/providers/adapters/capabilities/index.js.map +1 -1
  425. package/dist/server/modules/providers/adapters/capabilities/project-provisioning.capability.d.ts +0 -1
  426. package/dist/server/modules/providers/adapters/capabilities/provider-plugin.capability.d.ts +16 -2
  427. package/dist/server/modules/providers/adapters/capabilities/session-command.capability.d.ts +5 -0
  428. package/dist/server/modules/providers/adapters/capabilities/session-command.capability.js +3 -0
  429. package/dist/server/modules/providers/adapters/capabilities/session-command.capability.js.map +1 -0
  430. package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +4 -2
  431. package/dist/server/modules/providers/adapters/capabilities/type-guards.js +5 -3
  432. package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
  433. package/dist/server/modules/providers/adapters/claude.adapter.d.ts +7 -6
  434. package/dist/server/modules/providers/adapters/claude.adapter.js +12 -10
  435. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
  436. package/dist/server/modules/providers/adapters/claude.traits.d.ts +2 -0
  437. package/dist/server/modules/providers/adapters/claude.traits.js +9 -0
  438. package/dist/server/modules/providers/adapters/claude.traits.js.map +1 -0
  439. package/dist/server/modules/providers/adapters/codex.adapter.d.ts +7 -8
  440. package/dist/server/modules/providers/adapters/codex.adapter.js +50 -46
  441. package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
  442. package/dist/server/modules/providers/adapters/codex.traits.d.ts +2 -0
  443. package/dist/server/modules/providers/adapters/codex.traits.js +9 -0
  444. package/dist/server/modules/providers/adapters/codex.traits.js.map +1 -0
  445. package/dist/server/modules/providers/adapters/copilot.adapter.d.ts +1 -3
  446. package/dist/server/modules/providers/adapters/copilot.adapter.js +3 -6
  447. package/dist/server/modules/providers/adapters/copilot.adapter.js.map +1 -1
  448. package/dist/server/modules/providers/adapters/copilot.traits.d.ts +2 -0
  449. package/dist/server/modules/providers/adapters/copilot.traits.js +9 -0
  450. package/dist/server/modules/providers/adapters/copilot.traits.js.map +1 -0
  451. package/dist/server/modules/providers/adapters/opencode-cli-version.d.ts +13 -0
  452. package/dist/server/modules/providers/adapters/opencode-cli-version.js +24 -0
  453. package/dist/server/modules/providers/adapters/opencode-cli-version.js.map +1 -0
  454. package/dist/server/modules/providers/adapters/opencode-config-content.d.ts +1 -0
  455. package/dist/server/modules/providers/adapters/opencode-config-content.js +43 -0
  456. package/dist/server/modules/providers/adapters/opencode-config-content.js.map +1 -0
  457. package/dist/server/modules/providers/adapters/opencode-launch.v1.d.ts +4 -0
  458. package/dist/server/modules/providers/adapters/opencode-launch.v1.js +10 -0
  459. package/dist/server/modules/providers/adapters/opencode-launch.v1.js.map +1 -0
  460. package/dist/server/modules/providers/adapters/opencode-launch.v2.d.ts +2 -0
  461. package/dist/server/modules/providers/adapters/opencode-launch.v2.js +18 -0
  462. package/dist/server/modules/providers/adapters/opencode-launch.v2.js.map +1 -0
  463. package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +4 -5
  464. package/dist/server/modules/providers/adapters/opencode.adapter.js +13 -45
  465. package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -1
  466. package/dist/server/modules/providers/adapters/opencode.traits.d.ts +2 -0
  467. package/dist/server/modules/providers/adapters/opencode.traits.js +9 -0
  468. package/dist/server/modules/providers/adapters/opencode.traits.js.map +1 -0
  469. package/dist/server/modules/providers/adapters/plugin-catalog.utils.d.ts +3 -0
  470. package/dist/server/modules/providers/adapters/plugin-catalog.utils.js +10 -0
  471. package/dist/server/modules/providers/adapters/plugin-catalog.utils.js.map +1 -1
  472. package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +2 -2
  473. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
  474. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +11 -3
  475. package/dist/server/modules/providers/adapters/provider-cli-policy.d.ts +3 -0
  476. package/dist/server/modules/providers/adapters/provider-cli-policy.js +8 -0
  477. package/dist/server/modules/providers/adapters/provider-cli-policy.js.map +1 -1
  478. package/dist/server/modules/providers/adapters/provider-traits.d.ts +9 -0
  479. package/dist/server/modules/providers/adapters/provider-traits.js +28 -0
  480. package/dist/server/modules/providers/adapters/provider-traits.js.map +1 -0
  481. package/dist/server/modules/providers/controllers/provider-efforts.controller.d.ts +9 -7
  482. package/dist/server/modules/providers/controllers/provider-efforts.controller.js.map +1 -1
  483. package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +3 -1
  484. package/dist/server/modules/providers/controllers/provider-models.controller.js +18 -3
  485. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
  486. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.d.ts +2 -2
  487. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.js.map +1 -1
  488. package/dist/server/modules/providers/controllers/providers.controller.d.ts +1 -1
  489. package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
  490. package/dist/server/modules/providers/provider-traits.types.d.ts +5 -0
  491. package/dist/server/modules/providers/provider-traits.types.js +3 -0
  492. package/dist/server/modules/providers/provider-traits.types.js.map +1 -0
  493. package/dist/server/modules/providers/providers.module.js +5 -2
  494. package/dist/server/modules/providers/providers.module.js.map +1 -1
  495. package/dist/server/modules/providers/services/codex-app-server.client.d.ts +11 -0
  496. package/dist/server/modules/providers/services/codex-app-server.client.js +129 -0
  497. package/dist/server/modules/providers/services/codex-app-server.client.js.map +1 -0
  498. package/dist/server/modules/providers/services/mcp-provider-registration.service.d.ts +2 -2
  499. package/dist/server/modules/providers/services/mcp-provider-registration.service.js +2 -1
  500. package/dist/server/modules/providers/services/mcp-provider-registration.service.js.map +1 -1
  501. package/dist/server/modules/providers/services/provider-cli-installer.service.d.ts +1 -1
  502. package/dist/server/modules/providers/services/provider-cli-installer.service.js.map +1 -1
  503. package/dist/server/modules/providers/services/provider-cli-version-probe.module.d.ts +2 -0
  504. package/dist/server/modules/providers/services/provider-cli-version-probe.module.js +23 -0
  505. package/dist/server/modules/providers/services/provider-cli-version-probe.module.js.map +1 -0
  506. package/dist/server/modules/providers/services/provider-cli-version-probe.service.d.ts +8 -0
  507. package/dist/server/modules/providers/services/provider-cli-version-probe.service.js +65 -0
  508. package/dist/server/modules/providers/services/provider-cli-version-probe.service.js.map +1 -0
  509. package/dist/server/modules/providers/services/provider-discovery.service.d.ts +1 -1
  510. package/dist/server/modules/providers/services/provider-discovery.service.js.map +1 -1
  511. package/dist/server/modules/providers/services/provider-effort-seeding.service.d.ts +1 -1
  512. package/dist/server/modules/providers/services/provider-effort-seeding.service.js.map +1 -1
  513. package/dist/server/modules/providers/services/provider-mcp-ensure.service.d.ts +4 -4
  514. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js +8 -7
  515. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js.map +1 -1
  516. package/dist/server/modules/providers/services/provider-plugin-policy.service.d.ts +2 -2
  517. package/dist/server/modules/providers/services/provider-plugin-policy.service.js.map +1 -1
  518. package/dist/server/modules/providers/services/provider-plugins.service.d.ts +5 -1
  519. package/dist/server/modules/providers/services/provider-plugins.service.js +43 -16
  520. package/dist/server/modules/providers/services/provider-plugins.service.js.map +1 -1
  521. package/dist/server/modules/providers/services/provider-project-sync.service.d.ts +4 -4
  522. package/dist/server/modules/providers/services/provider-project-sync.service.js +6 -6
  523. package/dist/server/modules/providers/services/provider-project-sync.service.js.map +1 -1
  524. package/dist/server/modules/providers/services/provider-state-manager.service.d.ts +2 -2
  525. package/dist/server/modules/providers/services/provider-state-manager.service.js +1 -1
  526. package/dist/server/modules/providers/services/provider-state-manager.service.js.map +1 -1
  527. package/dist/server/modules/providers/utils/claude-config.js.map +1 -0
  528. package/dist/server/modules/{sessions → providers}/utils/codex-config.d.ts +9 -0
  529. package/dist/server/modules/{sessions → providers}/utils/codex-config.js +34 -16
  530. package/dist/server/modules/providers/utils/codex-config.js.map +1 -0
  531. package/dist/server/modules/providers/utils/env-builder.js.map +1 -0
  532. package/dist/server/modules/providers/utils/private-cwd.d.ts +1 -0
  533. package/dist/server/modules/providers/utils/private-cwd.js +12 -0
  534. package/dist/server/modules/providers/utils/private-cwd.js.map +1 -0
  535. package/dist/server/modules/{sessions → providers}/utils/profile-options.d.ts +1 -1
  536. package/dist/server/modules/providers/utils/profile-options.js.map +1 -0
  537. package/dist/server/modules/registry/controllers/registry.controller.d.ts +2 -2
  538. package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
  539. package/dist/server/modules/registry/controllers/templates.controller.d.ts +3 -3
  540. package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +3 -1
  541. package/dist/server/modules/registry/services/registry-orchestration.service.js +14 -2
  542. package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
  543. package/dist/server/modules/remotes/admission/project-write-admission.module.js +3 -5
  544. package/dist/server/modules/remotes/admission/project-write-admission.module.js.map +1 -1
  545. package/dist/server/modules/remotes/admission/project-write-admission.service.d.ts +6 -17
  546. package/dist/server/modules/remotes/admission/project-write-admission.service.js +11 -62
  547. package/dist/server/modules/remotes/admission/project-write-admission.service.js.map +1 -1
  548. package/dist/server/modules/remotes/contract/host-routes.d.ts +29681 -0
  549. package/dist/server/modules/remotes/contract/host-routes.js +557 -0
  550. package/dist/server/modules/remotes/contract/host-routes.js.map +1 -0
  551. package/dist/server/modules/remotes/controllers/home-shared-vm-notices.controller.d.ts +10 -0
  552. package/dist/server/modules/remotes/controllers/home-shared-vm-notices.controller.js +59 -0
  553. package/dist/server/modules/remotes/controllers/home-shared-vm-notices.controller.js.map +1 -0
  554. package/dist/server/modules/remotes/controllers/remotes.controller.js +1 -0
  555. package/dist/server/modules/remotes/controllers/remotes.controller.js.map +1 -1
  556. package/dist/server/modules/remotes/docker/docker-compose-user-fix.d.ts +3 -0
  557. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js +212 -0
  558. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js.map +1 -0
  559. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.d.ts +27 -0
  560. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js +185 -0
  561. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js.map +1 -0
  562. package/dist/server/modules/remotes/docker/docker-copy-back.d.ts +15 -1
  563. package/dist/server/modules/remotes/docker/docker-copy-back.dto.d.ts +8 -1
  564. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js +3 -1
  565. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js.map +1 -1
  566. package/dist/server/modules/remotes/docker/docker-copy-back.js +751 -149
  567. package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
  568. package/dist/server/modules/remotes/docker/docker-data-groups.d.ts +3 -3
  569. package/dist/server/modules/remotes/docker/docker-data-groups.js +20 -6
  570. package/dist/server/modules/remotes/docker/docker-data-groups.js.map +1 -1
  571. package/dist/server/modules/remotes/docker/docker-data-representation.d.ts +9 -0
  572. package/dist/server/modules/remotes/docker/docker-data-representation.js +85 -0
  573. package/dist/server/modules/remotes/docker/docker-data-representation.js.map +1 -0
  574. package/dist/server/modules/remotes/docker/docker-handoff.d.ts +7 -4
  575. package/dist/server/modules/remotes/docker/docker-handoff.js +258 -32
  576. package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
  577. package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +37 -7
  578. package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
  579. package/dist/server/modules/remotes/docker/docker-ownership.d.ts +26 -0
  580. package/dist/server/modules/remotes/docker/docker-ownership.js +182 -0
  581. package/dist/server/modules/remotes/docker/docker-ownership.js.map +1 -0
  582. package/dist/server/modules/remotes/docker/docker-plan-files.d.ts +1 -0
  583. package/dist/server/modules/remotes/docker/docker-plan-files.js +4 -0
  584. package/dist/server/modules/remotes/docker/docker-plan-files.js.map +1 -1
  585. package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +3 -3
  586. package/dist/server/modules/remotes/docker/docker-plan-fit.js +7 -2
  587. package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
  588. package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +1 -1
  589. package/dist/server/modules/remotes/docker/docker-plan-policy.js +105 -14
  590. package/dist/server/modules/remotes/docker/docker-plan-policy.js.map +1 -1
  591. package/dist/server/modules/remotes/docker/docker-plan-source.service.d.ts +7 -2
  592. package/dist/server/modules/remotes/docker/docker-plan-source.service.js +215 -14
  593. package/dist/server/modules/remotes/docker/docker-plan-source.service.js.map +1 -1
  594. package/dist/server/modules/remotes/docker/docker-plan.controller.d.ts +3 -1
  595. package/dist/server/modules/remotes/docker/docker-plan.controller.js +39 -0
  596. package/dist/server/modules/remotes/docker/docker-plan.controller.js.map +1 -1
  597. package/dist/server/modules/remotes/docker/docker-plan.dto.d.ts +112 -14
  598. package/dist/server/modules/remotes/docker/docker-plan.dto.js +11 -2
  599. package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
  600. package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +6 -3
  601. package/dist/server/modules/remotes/docker/docker-plan.service.js +207 -9
  602. package/dist/server/modules/remotes/docker/docker-plan.service.js.map +1 -1
  603. package/dist/server/modules/remotes/docker/docker-project-compose.d.ts +1 -1
  604. package/dist/server/modules/remotes/docker/docker-project-compose.js +2 -3
  605. package/dist/server/modules/remotes/docker/docker-project-compose.js.map +1 -1
  606. package/dist/server/modules/remotes/docker/docker-project-resources.d.ts +14 -0
  607. package/dist/server/modules/remotes/docker/docker-project-resources.js +33 -0
  608. package/dist/server/modules/remotes/docker/docker-project-resources.js.map +1 -0
  609. package/dist/server/modules/remotes/dtos/remote-notices.dto.d.ts +4 -0
  610. package/dist/server/modules/remotes/dtos/remote-notices.dto.js +3 -0
  611. package/dist/server/modules/remotes/dtos/remote-notices.dto.js.map +1 -0
  612. package/dist/server/modules/remotes/dtos/remote.dto.d.ts +2 -0
  613. package/dist/server/modules/remotes/dtos/remote.dto.js.map +1 -1
  614. package/dist/server/modules/remotes/dtos/shared-vm.dto.d.ts +488 -0
  615. package/dist/server/modules/remotes/dtos/shared-vm.dto.js +60 -0
  616. package/dist/server/modules/remotes/dtos/shared-vm.dto.js.map +1 -0
  617. package/dist/server/modules/remotes/git-coordinator/git-checkpoint.d.ts +5 -0
  618. package/dist/server/modules/remotes/git-coordinator/git-checkpoint.js +95 -0
  619. package/dist/server/modules/remotes/git-coordinator/git-checkpoint.js.map +1 -0
  620. package/dist/server/modules/remotes/git-coordinator/git-coordinator-index.service.d.ts +18 -0
  621. package/dist/server/modules/remotes/git-coordinator/git-coordinator-index.service.js +192 -0
  622. package/dist/server/modules/remotes/git-coordinator/git-coordinator-index.service.js.map +1 -0
  623. package/dist/server/modules/remotes/git-coordinator/git-coordinator.dto.d.ts +519 -0
  624. package/dist/server/modules/remotes/git-coordinator/git-coordinator.dto.js +104 -0
  625. package/dist/server/modules/remotes/git-coordinator/git-coordinator.dto.js.map +1 -0
  626. package/dist/server/modules/remotes/git-coordinator/git-coordinator.service.d.ts +66 -0
  627. package/dist/server/modules/remotes/git-coordinator/git-coordinator.service.js +555 -0
  628. package/dist/server/modules/remotes/git-coordinator/git-coordinator.service.js.map +1 -0
  629. package/dist/server/modules/remotes/git-coordinator/git-coordinator.store.d.ts +11 -0
  630. package/dist/server/modules/remotes/git-coordinator/git-coordinator.store.js +69 -0
  631. package/dist/server/modules/remotes/git-coordinator/git-coordinator.store.js.map +1 -0
  632. package/dist/server/modules/remotes/git-coordinator/git-process-identity.d.ts +3 -0
  633. package/dist/server/modules/remotes/git-coordinator/git-process-identity.js +71 -0
  634. package/dist/server/modules/remotes/git-coordinator/git-process-identity.js.map +1 -0
  635. package/dist/server/modules/remotes/git-coordinator/host-git-coordinator.controller.d.ts +19 -0
  636. package/dist/server/modules/remotes/git-coordinator/host-git-coordinator.controller.js +181 -0
  637. package/dist/server/modules/remotes/git-coordinator/host-git-coordinator.controller.js.map +1 -0
  638. package/dist/server/modules/remotes/git-coordinator/loopback.d.ts +2 -0
  639. package/dist/server/modules/remotes/git-coordinator/loopback.js +10 -0
  640. package/dist/server/modules/remotes/git-coordinator/loopback.js.map +1 -0
  641. package/dist/server/modules/remotes/git-coordinator/vm-git-coordinator.controller.d.ts +9 -0
  642. package/dist/server/modules/remotes/git-coordinator/vm-git-coordinator.controller.js +66 -0
  643. package/dist/server/modules/remotes/git-coordinator/vm-git-coordinator.controller.js.map +1 -0
  644. package/dist/server/modules/remotes/git-owner.store.d.ts +102 -1
  645. package/dist/server/modules/remotes/git-owner.store.js +37 -11
  646. package/dist/server/modules/remotes/git-owner.store.js.map +1 -1
  647. package/dist/server/modules/remotes/git-shim/git-shim-registry.service.d.ts +31 -0
  648. package/dist/server/modules/remotes/git-shim/git-shim-registry.service.js +175 -0
  649. package/dist/server/modules/remotes/git-shim/git-shim-registry.service.js.map +1 -0
  650. package/dist/server/modules/remotes/git-writes/change-barrier.d.ts +16 -0
  651. package/dist/server/modules/remotes/git-writes/change-barrier.js +40 -0
  652. package/dist/server/modules/remotes/git-writes/change-barrier.js.map +1 -0
  653. package/dist/server/modules/remotes/git-writes/home-git-handover.service.d.ts +42 -0
  654. package/dist/server/modules/remotes/git-writes/home-git-handover.service.js +349 -0
  655. package/dist/server/modules/remotes/git-writes/home-git-handover.service.js.map +1 -0
  656. package/dist/server/modules/remotes/git-writes/home-git-transitions.d.ts +16 -0
  657. package/dist/server/modules/remotes/git-writes/home-git-transitions.js +12 -0
  658. package/dist/server/modules/remotes/git-writes/home-git-transitions.js.map +1 -0
  659. package/dist/server/modules/remotes/git-writes/home-git-write.controller.d.ts +10 -0
  660. package/dist/server/modules/remotes/git-writes/home-git-write.controller.js +74 -0
  661. package/dist/server/modules/remotes/git-writes/home-git-write.controller.js.map +1 -0
  662. package/dist/server/modules/remotes/git-writes/home-git-write.service.d.ts +72 -0
  663. package/dist/server/modules/remotes/git-writes/home-git-write.service.js +481 -0
  664. package/dist/server/modules/remotes/git-writes/home-git-write.service.js.map +1 -0
  665. package/dist/server/modules/remotes/git-writes/home-git-write.store.d.ts +39 -0
  666. package/dist/server/modules/remotes/git-writes/home-git-write.store.js +78 -0
  667. package/dist/server/modules/remotes/git-writes/home-git-write.store.js.map +1 -0
  668. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js +3 -3
  669. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js.map +1 -1
  670. package/dist/server/modules/remotes/host/host-api-key.module.js +3 -2
  671. package/dist/server/modules/remotes/host/host-api-key.module.js.map +1 -1
  672. package/dist/server/modules/remotes/host/host-api-key.service.d.ts +6 -4
  673. package/dist/server/modules/remotes/host/host-api-key.service.js +30 -10
  674. package/dist/server/modules/remotes/host/host-api-key.service.js.map +1 -1
  675. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.d.ts +14 -0
  676. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js +91 -0
  677. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js.map +1 -0
  678. package/dist/server/modules/remotes/host/host-docker.dto.d.ts +41 -0
  679. package/dist/server/modules/remotes/host/host-docker.dto.js +12 -2
  680. package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
  681. package/dist/server/modules/remotes/host/host-docker.service.d.ts +9 -2
  682. package/dist/server/modules/remotes/host/host-docker.service.js +174 -78
  683. package/dist/server/modules/remotes/host/host-docker.service.js.map +1 -1
  684. package/dist/server/modules/remotes/host/host-helper.dto.d.ts +50 -0
  685. package/dist/server/modules/remotes/host/host-helper.dto.js +69 -0
  686. package/dist/server/modules/remotes/host/host-helper.dto.js.map +1 -0
  687. package/dist/server/modules/remotes/host/host-helper.module.d.ts +2 -0
  688. package/dist/server/modules/remotes/host/host-helper.module.js +23 -0
  689. package/dist/server/modules/remotes/host/host-helper.module.js.map +1 -0
  690. package/dist/server/modules/remotes/host/host-helper.service.d.ts +6 -40
  691. package/dist/server/modules/remotes/host/host-helper.service.js +13 -20
  692. package/dist/server/modules/remotes/host/host-helper.service.js.map +1 -1
  693. package/dist/server/modules/remotes/host/host-opencode-credentials.v2.d.ts +7 -0
  694. package/dist/server/modules/remotes/host/host-opencode-credentials.v2.js +46 -0
  695. package/dist/server/modules/remotes/host/host-opencode-credentials.v2.js.map +1 -0
  696. package/dist/server/modules/remotes/host/host-provider-auth.controller.d.ts +4 -2
  697. package/dist/server/modules/remotes/host/host-provider-auth.controller.js +3 -29
  698. package/dist/server/modules/remotes/host/host-provider-auth.controller.js.map +1 -1
  699. package/dist/server/modules/remotes/host/host-provider-auth.dto.d.ts +67 -0
  700. package/dist/server/modules/remotes/host/host-provider-auth.dto.js +32 -0
  701. package/dist/server/modules/remotes/host/host-provider-auth.dto.js.map +1 -0
  702. package/dist/server/modules/remotes/host/host-provider-auth.service.d.ts +12 -10
  703. package/dist/server/modules/remotes/host/host-provider-auth.service.js +92 -14
  704. package/dist/server/modules/remotes/host/host-provider-auth.service.js.map +1 -1
  705. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.d.ts +5 -37
  706. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js +5 -5
  707. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js.map +1 -1
  708. package/dist/server/modules/remotes/host/host-provider-usage-revision.d.ts +2 -0
  709. package/dist/server/modules/remotes/host/host-provider-usage-revision.js +11 -0
  710. package/dist/server/modules/remotes/host/host-provider-usage-revision.js.map +1 -0
  711. package/dist/server/modules/remotes/host/host-provider-usage-settings.controller.d.ts +11 -0
  712. package/dist/server/modules/remotes/host/host-provider-usage-settings.controller.js +62 -0
  713. package/dist/server/modules/remotes/host/host-provider-usage-settings.controller.js.map +1 -0
  714. package/dist/server/modules/remotes/host/host-provider-usage-settings.service.d.ts +9 -0
  715. package/dist/server/modules/remotes/host/host-provider-usage-settings.service.js +35 -0
  716. package/dist/server/modules/remotes/host/host-provider-usage-settings.service.js.map +1 -0
  717. package/dist/server/modules/remotes/host/host-shared-vm.controller.d.ts +24 -0
  718. package/dist/server/modules/remotes/host/host-shared-vm.controller.js +183 -0
  719. package/dist/server/modules/remotes/host/host-shared-vm.controller.js.map +1 -0
  720. package/dist/server/modules/remotes/host/host-shared-vm.service.d.ts +28 -0
  721. package/dist/server/modules/remotes/host/host-shared-vm.service.js +159 -0
  722. package/dist/server/modules/remotes/host/host-shared-vm.service.js.map +1 -0
  723. package/dist/server/modules/remotes/host/host-shared-vm.store.d.ts +18 -0
  724. package/dist/server/modules/remotes/host/host-shared-vm.store.js +105 -0
  725. package/dist/server/modules/remotes/host/host-shared-vm.store.js.map +1 -0
  726. package/dist/server/modules/remotes/host/host-skill-settings.controller.d.ts +5 -9
  727. package/dist/server/modules/remotes/host/host-skill-settings.controller.js +2 -1
  728. package/dist/server/modules/remotes/host/host-skill-settings.controller.js.map +1 -1
  729. package/dist/server/modules/remotes/host/host-skill-settings.service.d.ts +2 -2
  730. package/dist/server/modules/remotes/host/host-skill-settings.service.js.map +1 -1
  731. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js +2 -4
  732. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js.map +1 -1
  733. package/dist/server/modules/remotes/host/host-ssh-keys.dto.d.ts +8 -0
  734. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js +7 -0
  735. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js.map +1 -0
  736. package/dist/server/modules/remotes/host/host-transcripts.controller.d.ts +3 -2
  737. package/dist/server/modules/remotes/host/host-transcripts.controller.js +2 -1
  738. package/dist/server/modules/remotes/host/host-transcripts.controller.js.map +1 -1
  739. package/dist/server/modules/remotes/host/host-update.controller.d.ts +6 -11
  740. package/dist/server/modules/remotes/host/host-update.controller.js +7 -44
  741. package/dist/server/modules/remotes/host/host-update.controller.js.map +1 -1
  742. package/dist/server/modules/remotes/host/host.controller.d.ts +10 -14
  743. package/dist/server/modules/remotes/host/host.controller.js.map +1 -1
  744. package/dist/server/modules/remotes/host/host.service.d.ts +3 -1
  745. package/dist/server/modules/remotes/host/host.service.js +9 -2
  746. package/dist/server/modules/remotes/host/host.service.js.map +1 -1
  747. package/dist/server/modules/remotes/host/project-freeze.service.d.ts +4 -5
  748. package/dist/server/modules/remotes/host/project-freeze.service.js +14 -20
  749. package/dist/server/modules/remotes/host/project-freeze.service.js.map +1 -1
  750. package/dist/server/modules/remotes/host/provider-baseline.service.js +1 -1
  751. package/dist/server/modules/remotes/host/provider-baseline.service.js.map +1 -1
  752. package/dist/server/modules/remotes/host/shared-vm.contract.d.ts +184 -0
  753. package/dist/server/modules/remotes/host/shared-vm.contract.js +44 -0
  754. package/dist/server/modules/remotes/host/shared-vm.contract.js.map +1 -0
  755. package/dist/server/modules/remotes/host-install/host-install-block.d.ts +2 -0
  756. package/dist/server/modules/remotes/host-install/host-install-block.js +3 -2
  757. package/dist/server/modules/remotes/host-install/host-install-block.js.map +1 -1
  758. package/dist/server/modules/remotes/host-install/host-install.service.d.ts +2 -0
  759. package/dist/server/modules/remotes/host-install/host-install.service.js +10 -0
  760. package/dist/server/modules/remotes/host-install/host-install.service.js.map +1 -1
  761. package/dist/server/modules/remotes/host-install/host-join-block.d.ts +16 -0
  762. package/dist/server/modules/remotes/host-install/host-join-block.js +122 -0
  763. package/dist/server/modules/remotes/host-install/host-join-block.js.map +1 -0
  764. package/dist/server/modules/remotes/host-install/ssh-runner.d.ts +1 -0
  765. package/dist/server/modules/remotes/host-install/ssh-runner.js +2 -2
  766. package/dist/server/modules/remotes/host-install/ssh-runner.js.map +1 -1
  767. package/dist/server/modules/remotes/operations/attach.operation.d.ts +9 -2
  768. package/dist/server/modules/remotes/operations/attach.operation.js +38 -11
  769. package/dist/server/modules/remotes/operations/attach.operation.js.map +1 -1
  770. package/dist/server/modules/remotes/operations/claim.operation.d.ts +4 -0
  771. package/dist/server/modules/remotes/operations/claim.operation.js +15 -0
  772. package/dist/server/modules/remotes/operations/claim.operation.js.map +1 -1
  773. package/dist/server/modules/remotes/operations/claude-user-instructions.d.ts +2 -0
  774. package/dist/server/modules/remotes/operations/claude-user-instructions.js +23 -0
  775. package/dist/server/modules/remotes/operations/claude-user-instructions.js.map +1 -0
  776. package/dist/server/modules/remotes/operations/destroy-vm.operation.d.ts +4 -2
  777. package/dist/server/modules/remotes/operations/destroy-vm.operation.js +43 -23
  778. package/dist/server/modules/remotes/operations/destroy-vm.operation.js.map +1 -1
  779. package/dist/server/modules/remotes/operations/detach.operation.d.ts +17 -2
  780. package/dist/server/modules/remotes/operations/detach.operation.js +118 -31
  781. package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
  782. package/dist/server/modules/remotes/operations/disconnect-all.operation.d.ts +50 -0
  783. package/dist/server/modules/remotes/operations/disconnect-all.operation.js +222 -0
  784. package/dist/server/modules/remotes/operations/disconnect-all.operation.js.map +1 -0
  785. package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +732 -5
  786. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +41 -5
  787. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js.map +1 -1
  788. package/dist/server/modules/remotes/operations/file-sync-handoff.d.ts +3 -1
  789. package/dist/server/modules/remotes/operations/file-sync-handoff.js +69 -68
  790. package/dist/server/modules/remotes/operations/file-sync-handoff.js.map +1 -1
  791. package/dist/server/modules/remotes/operations/git-owner.dto.d.ts +10 -44
  792. package/dist/server/modules/remotes/operations/git-owner.dto.js +1 -12
  793. package/dist/server/modules/remotes/operations/git-owner.dto.js.map +1 -1
  794. package/dist/server/modules/remotes/operations/guarded-vm-destroy.d.ts +2 -0
  795. package/dist/server/modules/remotes/operations/guarded-vm-destroy.js +14 -0
  796. package/dist/server/modules/remotes/operations/guarded-vm-destroy.js.map +1 -1
  797. package/dist/server/modules/remotes/operations/install-host.operation.d.ts +21 -1
  798. package/dist/server/modules/remotes/operations/install-host.operation.js +285 -27
  799. package/dist/server/modules/remotes/operations/install-host.operation.js.map +1 -1
  800. package/dist/server/modules/remotes/operations/remote-host.client.d.ts +71 -540
  801. package/dist/server/modules/remotes/operations/remote-host.client.js +263 -509
  802. package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
  803. package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +180 -12
  804. package/dist/server/modules/remotes/operations/remote-operation.dto.js +12 -1
  805. package/dist/server/modules/remotes/operations/remote-operation.dto.js.map +1 -1
  806. package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +6 -2
  807. package/dist/server/modules/remotes/operations/remote-operation.runner.js +75 -15
  808. package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
  809. package/dist/server/modules/remotes/operations/remote-operation.types.d.ts +6 -3
  810. package/dist/server/modules/remotes/operations/remote-operation.types.js +10 -1
  811. package/dist/server/modules/remotes/operations/remote-operation.types.js.map +1 -1
  812. package/dist/server/modules/remotes/operations/remote-operations.controller.d.ts +2 -3
  813. package/dist/server/modules/remotes/operations/remote-operations.controller.js +20 -25
  814. package/dist/server/modules/remotes/operations/remote-operations.controller.js.map +1 -1
  815. package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +12 -10
  816. package/dist/server/modules/remotes/operations/remote-operations.service.js +123 -118
  817. package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
  818. package/dist/server/modules/remotes/operations/remote-worktree-guard.d.ts +16 -0
  819. package/dist/server/modules/remotes/operations/remote-worktree-guard.js +100 -0
  820. package/dist/server/modules/remotes/operations/remote-worktree-guard.js.map +1 -0
  821. package/dist/server/modules/remotes/operations/reset-vm.operation.d.ts +15 -2
  822. package/dist/server/modules/remotes/operations/reset-vm.operation.js +115 -15
  823. package/dist/server/modules/remotes/operations/reset-vm.operation.js.map +1 -1
  824. package/dist/server/modules/remotes/operations/update-host.operation.d.ts +2 -0
  825. package/dist/server/modules/remotes/operations/update-host.operation.js +11 -5
  826. package/dist/server/modules/remotes/operations/update-host.operation.js.map +1 -1
  827. package/dist/server/modules/remotes/operations/update-logins.operation.d.ts +1 -1
  828. package/dist/server/modules/remotes/operations/vm-operations.controller.d.ts +5 -1
  829. package/dist/server/modules/remotes/operations/vm-operations.controller.js +36 -2
  830. package/dist/server/modules/remotes/operations/vm-operations.controller.js.map +1 -1
  831. package/dist/server/modules/remotes/operations/vm-operations.dto.d.ts +157 -7
  832. package/dist/server/modules/remotes/operations/vm-operations.dto.js +9 -1
  833. package/dist/server/modules/remotes/operations/vm-operations.dto.js.map +1 -1
  834. package/dist/server/modules/remotes/operations/vm-operations.service.d.ts +3 -1
  835. package/dist/server/modules/remotes/operations/vm-operations.service.js +38 -15
  836. package/dist/server/modules/remotes/operations/vm-operations.service.js.map +1 -1
  837. package/dist/server/modules/remotes/ports/remote-health.port.d.ts +2 -0
  838. package/dist/server/modules/remotes/ports/remote-health.port.js.map +1 -1
  839. package/dist/server/modules/remotes/remotes.module.js +59 -4
  840. package/dist/server/modules/remotes/remotes.module.js.map +1 -1
  841. package/dist/server/modules/remotes/services/home-shared-vm-notices.service.d.ts +18 -0
  842. package/dist/server/modules/remotes/services/home-shared-vm-notices.service.js +81 -0
  843. package/dist/server/modules/remotes/services/home-shared-vm-notices.service.js.map +1 -0
  844. package/dist/server/modules/remotes/services/remote-forced-detach.service.d.ts +11 -0
  845. package/dist/server/modules/remotes/services/remote-forced-detach.service.js +69 -0
  846. package/dist/server/modules/remotes/services/remote-forced-detach.service.js.map +1 -0
  847. package/dist/server/modules/remotes/services/remote-forced-detach.store.d.ts +23 -0
  848. package/dist/server/modules/remotes/services/remote-forced-detach.store.js +73 -0
  849. package/dist/server/modules/remotes/services/remote-forced-detach.store.js.map +1 -0
  850. package/dist/server/modules/remotes/services/remote-health.service.d.ts +7 -1
  851. package/dist/server/modules/remotes/services/remote-health.service.js +41 -4
  852. package/dist/server/modules/remotes/services/remote-health.service.js.map +1 -1
  853. package/dist/server/modules/remotes/services/remote-provider-usage-settings.service.d.ts +13 -0
  854. package/dist/server/modules/remotes/services/remote-provider-usage-settings.service.js +57 -0
  855. package/dist/server/modules/remotes/services/remote-provider-usage-settings.service.js.map +1 -0
  856. package/dist/server/modules/remotes/services/remote-shared-vm.service.d.ts +37 -0
  857. package/dist/server/modules/remotes/services/remote-shared-vm.service.js +184 -0
  858. package/dist/server/modules/remotes/services/remote-shared-vm.service.js.map +1 -0
  859. package/dist/server/modules/remotes/services/remote-shared-vm.store.d.ts +11 -0
  860. package/dist/server/modules/remotes/services/remote-shared-vm.store.js +75 -0
  861. package/dist/server/modules/remotes/services/remote-shared-vm.store.js.map +1 -0
  862. package/dist/server/modules/remotes/services/remote-skill-settings.service.d.ts +2 -2
  863. package/dist/server/modules/remotes/services/remote-skill-settings.service.js.map +1 -1
  864. package/dist/server/modules/remotes/sync/file-sync-failures.service.js +0 -2
  865. package/dist/server/modules/remotes/sync/file-sync-failures.service.js.map +1 -1
  866. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.d.ts +4 -2
  867. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +38 -4
  868. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js.map +1 -1
  869. package/dist/server/modules/remotes/sync/project-file-sync.controller.d.ts +0 -2
  870. package/dist/server/modules/remotes/sync/project-file-sync.controller.js +1 -15
  871. package/dist/server/modules/remotes/sync/project-file-sync.controller.js.map +1 -1
  872. package/dist/server/modules/remotes/sync/remote-file-sync.dto.d.ts +0 -2
  873. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js.map +1 -1
  874. package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +10 -7
  875. package/dist/server/modules/remotes/sync/remote-file-sync.service.js +157 -162
  876. package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
  877. package/dist/server/modules/remotes/time/project-time-settler.dto.d.ts +21 -0
  878. package/dist/server/modules/remotes/time/project-time-settler.dto.js +12 -0
  879. package/dist/server/modules/remotes/time/project-time-settler.dto.js.map +1 -0
  880. package/dist/server/modules/remotes/time/project-time-settler.service.d.ts +2 -21
  881. package/dist/server/modules/remotes/time/project-time-settler.service.js +1 -9
  882. package/dist/server/modules/remotes/time/project-time-settler.service.js.map +1 -1
  883. package/dist/server/modules/remotes/transcripts/transcript-transfer.dto.d.ts +4 -4
  884. package/dist/server/modules/remotes/transport/host-transport.d.ts +29 -0
  885. package/dist/server/modules/remotes/transport/host-transport.js +112 -0
  886. package/dist/server/modules/remotes/transport/host-transport.js.map +1 -0
  887. package/dist/server/modules/remotes/vm-user-identity.d.ts +1 -0
  888. package/dist/server/modules/remotes/vm-user-identity.js +8 -1
  889. package/dist/server/modules/remotes/vm-user-identity.js.map +1 -1
  890. package/dist/server/modules/reviews/dtos/review.dto.d.ts +2 -2
  891. package/dist/server/modules/reviews/reviews.module.js +1 -9
  892. package/dist/server/modules/reviews/reviews.module.js.map +1 -1
  893. package/dist/server/modules/reviews/services/review-suggestion-applier.service.d.ts +4 -4
  894. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js +6 -6
  895. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js.map +1 -1
  896. package/dist/server/modules/reviews/services/reviews.service.d.ts +4 -4
  897. package/dist/server/modules/reviews/services/reviews.service.js +7 -12
  898. package/dist/server/modules/reviews/services/reviews.service.js.map +1 -1
  899. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js +2 -2
  900. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js.map +1 -1
  901. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.d.ts +11 -12
  902. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js +37 -25
  903. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js.map +1 -1
  904. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.d.ts +15 -9
  905. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +68 -6
  906. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
  907. package/dist/server/modules/runtime-context-capture/index.d.ts +3 -2
  908. package/dist/server/modules/runtime-context-capture/index.js.map +1 -1
  909. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.d.ts +41 -0
  910. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js +3 -0
  911. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js.map +1 -0
  912. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js +1 -2
  913. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js.map +1 -1
  914. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.d.ts +4 -4
  915. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js +6 -6
  916. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js.map +1 -1
  917. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.d.ts +2 -3
  918. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js +9 -12
  919. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js.map +1 -1
  920. package/dist/server/modules/seeders/services/data-seeder.service.d.ts +2 -3
  921. package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
  922. package/dist/server/modules/seeders/types/seeder.types.d.ts +2 -2
  923. package/dist/server/modules/session-reader/__fixtures__/opencode-fixture-db.d.ts +6 -4
  924. package/dist/server/modules/session-reader/__fixtures__/opencode-fixture-db.js +17 -20
  925. package/dist/server/modules/session-reader/__fixtures__/opencode-fixture-db.js.map +1 -1
  926. package/dist/server/modules/session-reader/__fixtures__/opencode-v2-fixture-db.d.ts +61 -0
  927. package/dist/server/modules/session-reader/__fixtures__/opencode-v2-fixture-db.js +250 -0
  928. package/dist/server/modules/session-reader/__fixtures__/opencode-v2-fixture-db.js.map +1 -0
  929. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +1 -1
  930. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +4 -2
  931. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +3 -0
  932. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  933. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +5 -2
  934. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +4 -0
  935. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  936. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +4 -2
  937. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js +34 -13
  938. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js.map +1 -1
  939. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +3 -0
  940. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
  941. package/dist/server/modules/session-reader/data/pricing.json +3214 -2807
  942. package/dist/server/modules/session-reader/readers/opencode-sqlite.db.d.ts +73 -0
  943. package/dist/server/modules/session-reader/readers/opencode-sqlite.db.js +176 -0
  944. package/dist/server/modules/session-reader/readers/opencode-sqlite.db.js.map +1 -0
  945. package/dist/server/modules/session-reader/readers/opencode-sqlite.v1.reader.d.ts +45 -0
  946. package/dist/server/modules/session-reader/readers/{opencode-sqlite.reader.js → opencode-sqlite.v1.reader.js} +171 -164
  947. package/dist/server/modules/session-reader/readers/opencode-sqlite.v1.reader.js.map +1 -0
  948. package/dist/server/modules/session-reader/readers/opencode-sqlite.v2.reader.d.ts +15 -0
  949. package/dist/server/modules/session-reader/readers/opencode-sqlite.v2.reader.js +474 -0
  950. package/dist/server/modules/session-reader/readers/opencode-sqlite.v2.reader.js.map +1 -0
  951. package/dist/server/modules/session-reader/services/pricing.interface.d.ts +1 -0
  952. package/dist/server/modules/session-reader/services/pricing.interface.js.map +1 -1
  953. package/dist/server/modules/session-reader/services/pricing.service.d.ts +1 -0
  954. package/dist/server/modules/session-reader/services/pricing.service.js +3 -0
  955. package/dist/server/modules/session-reader/services/pricing.service.js.map +1 -1
  956. package/dist/server/modules/session-reader/services/session-reader.service.js +6 -1
  957. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
  958. package/dist/server/modules/session-reader/services/transcript-persistence.listener.d.ts +8 -18
  959. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +89 -172
  960. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -1
  961. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +12 -12
  962. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  963. package/dist/server/modules/session-reader/session-reader.module.js +2 -0
  964. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
  965. package/dist/server/modules/session-terminal-runtime/dtos/active-session-info.dto.js.map +1 -0
  966. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js +2 -1
  967. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js.map +1 -1
  968. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.d.ts +8 -4
  969. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js +47 -18
  970. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js.map +1 -1
  971. package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +3 -5
  972. package/dist/server/modules/sessions/controllers/sessions.controller.js +8 -11
  973. package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
  974. package/dist/server/modules/sessions/services/active-session-lookup.service.d.ts +4 -5
  975. package/dist/server/modules/sessions/services/active-session-lookup.service.js +9 -66
  976. package/dist/server/modules/sessions/services/active-session-lookup.service.js.map +1 -1
  977. package/dist/server/modules/sessions/services/message-enqueue.service.d.ts +3 -0
  978. package/dist/server/modules/sessions/services/message-enqueue.service.js +1 -0
  979. package/dist/server/modules/sessions/services/message-enqueue.service.js.map +1 -1
  980. package/dist/server/modules/sessions/services/message-pool.types.d.ts +7 -1
  981. package/dist/server/modules/sessions/services/message-pool.types.js +6 -1
  982. package/dist/server/modules/sessions/services/message-pool.types.js.map +1 -1
  983. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +4 -2
  984. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +20 -3
  985. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
  986. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.d.ts +7 -5
  987. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +81 -96
  988. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -1
  989. package/dist/server/modules/sessions/services/session-launcher-facade.service.d.ts +1 -1
  990. package/dist/server/modules/sessions/services/session-launcher-facade.service.js +1 -1
  991. package/dist/server/modules/sessions/services/session-launcher-facade.service.js.map +1 -1
  992. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.d.ts +10 -5
  993. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js +12 -12
  994. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js.map +1 -1
  995. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +4 -0
  996. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +10 -2
  997. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  998. package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.d.ts +1 -1
  999. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.d.ts +7 -7
  1000. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +30 -29
  1001. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  1002. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +4 -2
  1003. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +8 -9
  1004. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  1005. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.d.ts +3 -3
  1006. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js +7 -7
  1007. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js.map +1 -1
  1008. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +5 -7
  1009. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +141 -211
  1010. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  1011. package/dist/server/modules/sessions/services/sessions.service.d.ts +8 -10
  1012. package/dist/server/modules/sessions/services/sessions.service.js +26 -158
  1013. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  1014. package/dist/server/modules/sessions/sessions-lifecycle.module.js +2 -2
  1015. package/dist/server/modules/sessions/sessions-lifecycle.module.js.map +1 -1
  1016. package/dist/server/modules/sessions/sessions-read.module.js +2 -2
  1017. package/dist/server/modules/sessions/sessions-read.module.js.map +1 -1
  1018. package/dist/server/modules/sessions/sessions.module.js +12 -5
  1019. package/dist/server/modules/sessions/sessions.module.js.map +1 -1
  1020. package/dist/server/modules/settings/controllers/settings.controller.d.ts +3 -4
  1021. package/dist/server/modules/settings/controllers/settings.controller.js +6 -31
  1022. package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -1
  1023. package/dist/server/modules/settings/dtos/settings.dto.d.ts +45 -12
  1024. package/dist/server/modules/settings/dtos/settings.dto.js +2 -0
  1025. package/dist/server/modules/settings/dtos/settings.dto.js.map +1 -1
  1026. package/dist/server/modules/settings/local/delegates/core-settings.delegate.d.ts +8 -0
  1027. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +71 -2
  1028. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
  1029. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.d.ts +4 -0
  1030. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js +30 -23
  1031. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js.map +1 -1
  1032. package/dist/server/modules/settings/local/delegates/provider-cli-settings.delegate.js +6 -1
  1033. package/dist/server/modules/settings/local/delegates/provider-cli-settings.delegate.js.map +1 -1
  1034. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.d.ts +2 -0
  1035. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js +2 -0
  1036. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js.map +1 -1
  1037. package/dist/server/modules/settings/services/settings.service.d.ts +4 -2
  1038. package/dist/server/modules/settings/services/settings.service.js +11 -4
  1039. package/dist/server/modules/settings/services/settings.service.js.map +1 -1
  1040. package/dist/server/modules/settings/settings.module.js +1 -2
  1041. package/dist/server/modules/settings/settings.module.js.map +1 -1
  1042. package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +2 -2
  1043. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
  1044. package/dist/server/modules/skills/services/skills.service.d.ts +3 -1
  1045. package/dist/server/modules/skills/services/skills.service.js +15 -2
  1046. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  1047. package/dist/server/modules/statuses/controllers/statuses.controller.d.ts +3 -3
  1048. package/dist/server/modules/statuses/controllers/statuses.controller.js +8 -10
  1049. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
  1050. package/dist/server/modules/statuses/statuses.module.js +1 -2
  1051. package/dist/server/modules/statuses/statuses.module.js.map +1 -1
  1052. package/dist/server/modules/storage/db/db-file-permissions.d.ts +1 -0
  1053. package/dist/server/modules/storage/db/db-file-permissions.js +24 -0
  1054. package/dist/server/modules/storage/db/db-file-permissions.js.map +1 -0
  1055. package/dist/server/modules/storage/db/db.provider.js +2 -0
  1056. package/dist/server/modules/storage/db/db.provider.js.map +1 -1
  1057. package/dist/server/modules/storage/db/migrate.js +2 -0
  1058. package/dist/server/modules/storage/db/migrate.js.map +1 -1
  1059. package/dist/server/modules/storage/db/schema.d.ts +235 -0
  1060. package/dist/server/modules/storage/db/schema.js +22 -1
  1061. package/dist/server/modules/storage/db/schema.js.map +1 -1
  1062. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +10 -3
  1063. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  1064. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.d.ts +2 -2
  1065. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js.map +1 -1
  1066. package/dist/server/modules/storage/local/delegates/agent.delegate.d.ts +2 -2
  1067. package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -1
  1068. package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +5 -6
  1069. package/dist/server/modules/storage/local/delegates/epic.delegate.js +3 -9
  1070. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
  1071. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +16 -15
  1072. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +13 -13
  1073. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
  1074. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.d.ts +11 -10
  1075. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +9 -9
  1076. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
  1077. package/dist/server/modules/storage/local/delegates/guest.delegate.d.ts +2 -1
  1078. package/dist/server/modules/storage/local/delegates/guest.delegate.js.map +1 -1
  1079. package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +3 -4
  1080. package/dist/server/modules/storage/local/delegates/integration.delegate.js +1 -1
  1081. package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
  1082. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.d.ts +3 -16
  1083. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js.map +1 -1
  1084. package/dist/server/modules/storage/local/delegates/project-host.delegate.d.ts +2 -2
  1085. package/dist/server/modules/storage/local/delegates/project-host.delegate.js.map +1 -1
  1086. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.d.ts +2 -2
  1087. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js +1 -1
  1088. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js.map +1 -1
  1089. package/dist/server/modules/storage/local/delegates/project-replica.delegate.d.ts +2 -2
  1090. package/dist/server/modules/storage/local/delegates/project-replica.delegate.js +7 -0
  1091. package/dist/server/modules/storage/local/delegates/project-replica.delegate.js.map +1 -1
  1092. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.d.ts +2 -1
  1093. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.js.map +1 -1
  1094. package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +4 -2
  1095. package/dist/server/modules/storage/local/delegates/project.delegate.js +4 -0
  1096. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  1097. package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +3 -2
  1098. package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -1
  1099. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.d.ts +2 -1
  1100. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.js.map +1 -1
  1101. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.d.ts +2 -1
  1102. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.js.map +1 -1
  1103. package/dist/server/modules/storage/local/delegates/provider-model.delegate.d.ts +2 -1
  1104. package/dist/server/modules/storage/local/delegates/provider-model.delegate.js.map +1 -1
  1105. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.d.ts +2 -1
  1106. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.js.map +1 -1
  1107. package/dist/server/modules/storage/local/delegates/provider.delegate.d.ts +3 -3
  1108. package/dist/server/modules/storage/local/delegates/provider.delegate.js +9 -23
  1109. package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -1
  1110. package/dist/server/modules/storage/local/delegates/record.delegate.d.ts +2 -2
  1111. package/dist/server/modules/storage/local/delegates/remote.delegate.d.ts +2 -2
  1112. package/dist/server/modules/storage/local/delegates/remote.delegate.js.map +1 -1
  1113. package/dist/server/modules/storage/local/delegates/review.delegate.d.ts +2 -2
  1114. package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -1
  1115. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.d.ts +2 -2
  1116. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js.map +1 -1
  1117. package/dist/server/modules/storage/local/delegates/session.delegate.d.ts +2 -1
  1118. package/dist/server/modules/storage/local/delegates/session.delegate.js.map +1 -1
  1119. package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +7 -3
  1120. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +24 -11
  1121. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
  1122. package/dist/server/modules/storage/local/delegates/status.delegate.d.ts +2 -2
  1123. package/dist/server/modules/storage/local/delegates/subscriber.delegate.d.ts +2 -1
  1124. package/dist/server/modules/storage/local/delegates/subscriber.delegate.js.map +1 -1
  1125. package/dist/server/modules/storage/local/delegates/tag.delegate.d.ts +2 -2
  1126. package/dist/server/modules/storage/local/delegates/watcher.delegate.d.ts +2 -1
  1127. package/dist/server/modules/storage/local/delegates/watcher.delegate.js.map +1 -1
  1128. package/dist/server/modules/storage/local/delegates/worktree.delegate.d.ts +14 -0
  1129. package/dist/server/modules/storage/local/delegates/worktree.delegate.js +89 -0
  1130. package/dist/server/modules/storage/local/delegates/worktree.delegate.js.map +1 -0
  1131. package/dist/server/modules/storage/local/helpers/device-revocation-history.js.map +1 -0
  1132. package/dist/server/modules/storage/local/helpers/host-abandoned-projects.d.ts +5 -0
  1133. package/dist/server/modules/storage/local/helpers/host-abandoned-projects.js +39 -0
  1134. package/dist/server/modules/storage/local/helpers/host-abandoned-projects.js.map +1 -0
  1135. package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -361
  1136. package/dist/server/modules/storage/local/local-storage.service.js +121 -908
  1137. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  1138. package/dist/server/modules/storage/local/storage-routes.d.ts +1196 -0
  1139. package/dist/server/modules/storage/local/storage-routes.js +474 -0
  1140. package/dist/server/modules/storage/local/storage-routes.js.map +1 -0
  1141. package/dist/server/modules/storage/models/domain.models.d.ts +20 -1
  1142. package/dist/server/modules/storage/models/domain.models.js +1 -0
  1143. package/dist/server/modules/storage/models/domain.models.js.map +1 -1
  1144. package/dist/server/modules/storage/sessions/session-row.store.d.ts +42 -0
  1145. package/dist/server/modules/storage/sessions/session-row.store.js +383 -0
  1146. package/dist/server/modules/storage/sessions/session-row.store.js.map +1 -0
  1147. package/dist/server/modules/storage/sessions/session-rows.module.d.ts +2 -0
  1148. package/dist/server/modules/storage/sessions/session-rows.module.js +19 -0
  1149. package/dist/server/modules/storage/sessions/session-rows.module.js.map +1 -0
  1150. package/dist/server/modules/storage/sessions/session-transcript.types.d.ts +45 -0
  1151. package/dist/server/modules/storage/sessions/session-transcript.types.js +3 -0
  1152. package/dist/server/modules/storage/sessions/session-transcript.types.js.map +1 -0
  1153. package/dist/server/modules/storage/storage.module.d.ts +3 -0
  1154. package/dist/server/modules/storage/storage.module.js +15 -2
  1155. package/dist/server/modules/storage/storage.module.js.map +1 -1
  1156. package/dist/server/modules/storage/write-gate/project-write-gate.d.ts +32 -0
  1157. package/dist/server/modules/storage/write-gate/project-write-gate.js +117 -0
  1158. package/dist/server/modules/storage/write-gate/project-write-gate.js.map +1 -0
  1159. package/dist/server/modules/storage/write-gate/storage-write-scope.d.ts +46 -0
  1160. package/dist/server/modules/storage/write-gate/storage-write-scope.js +104 -0
  1161. package/dist/server/modules/storage/write-gate/storage-write-scope.js.map +1 -0
  1162. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.d.ts +3 -0
  1163. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js +13 -0
  1164. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js.map +1 -0
  1165. package/dist/server/modules/subscribers/actions/action.interface.d.ts +2 -2
  1166. package/dist/server/modules/subscribers/actions/terminate-session.action.d.ts +7 -0
  1167. package/dist/server/modules/subscribers/actions/terminate-session.action.js +58 -6
  1168. package/dist/server/modules/subscribers/actions/terminate-session.action.js.map +1 -1
  1169. package/dist/server/modules/subscribers/services/subscriber-executor.service.d.ts +5 -4
  1170. package/dist/server/modules/subscribers/services/subscriber-executor.service.js +6 -6
  1171. package/dist/server/modules/subscribers/services/subscriber-executor.service.js.map +1 -1
  1172. package/dist/server/modules/subscribers/services/subscribers.service.d.ts +1 -3
  1173. package/dist/server/modules/subscribers/services/subscribers.service.js +2 -8
  1174. package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -1
  1175. package/dist/server/modules/subscribers/subscribers.module.js +0 -2
  1176. package/dist/server/modules/subscribers/subscribers.module.js.map +1 -1
  1177. package/dist/server/modules/teams/controllers/teams.controller.d.ts +2 -2
  1178. package/dist/server/modules/teams/controllers/teams.controller.js.map +1 -1
  1179. package/dist/server/modules/teams/services/teams.service.d.ts +49 -9
  1180. package/dist/server/modules/teams/services/teams.service.js +135 -24
  1181. package/dist/server/modules/teams/services/teams.service.js.map +1 -1
  1182. package/dist/server/modules/teams/services/teams.validators.d.ts +4 -4
  1183. package/dist/server/modules/teams/services/teams.validators.js.map +1 -1
  1184. package/dist/server/modules/teams/storage/teams.store.d.ts +4 -1
  1185. package/dist/server/modules/teams/storage/teams.store.js +20 -2
  1186. package/dist/server/modules/teams/storage/teams.store.js.map +1 -1
  1187. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.d.ts +2 -2
  1188. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js +2 -2
  1189. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js.map +1 -1
  1190. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js +3 -3
  1191. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js.map +1 -1
  1192. package/dist/server/modules/teams/teams.module.js +8 -2
  1193. package/dist/server/modules/teams/teams.module.js.map +1 -1
  1194. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +8 -29
  1195. package/dist/server/modules/terminal/gateways/terminal.gateway.js +34 -88
  1196. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  1197. package/dist/server/modules/terminal/services/guest-delivery.service.js +1 -0
  1198. package/dist/server/modules/terminal/services/guest-delivery.service.js.map +1 -1
  1199. package/dist/server/modules/terminal/services/human-prompt-input.service.d.ts +30 -0
  1200. package/dist/server/modules/terminal/services/human-prompt-input.service.js +69 -0
  1201. package/dist/server/modules/terminal/services/human-prompt-input.service.js.map +1 -0
  1202. package/dist/server/modules/terminal/services/human-prompt-state.service.js +3 -2
  1203. package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
  1204. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.d.ts +6 -0
  1205. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js +23 -1
  1206. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js.map +1 -1
  1207. package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +4 -2
  1208. package/dist/server/modules/terminal/services/terminal-activity.service.js +26 -44
  1209. package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
  1210. package/dist/server/modules/terminal/services/terminal-delivery.types.d.ts +1 -1
  1211. package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +9 -3
  1212. package/dist/server/modules/terminal/services/terminal-io/delivery.js +65 -28
  1213. package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
  1214. package/dist/server/modules/terminal/services/terminal-io/foreground.d.ts +7 -0
  1215. package/dist/server/modules/terminal/services/terminal-io/foreground.js +35 -0
  1216. package/dist/server/modules/terminal/services/terminal-io/foreground.js.map +1 -0
  1217. package/dist/server/modules/terminal/services/terminal-io/monitoring.d.ts +3 -0
  1218. package/dist/server/modules/terminal/services/terminal-io/monitoring.js +36 -0
  1219. package/dist/server/modules/terminal/services/terminal-io/monitoring.js.map +1 -1
  1220. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.d.ts +3 -0
  1221. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +80 -19
  1222. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
  1223. package/dist/server/modules/terminal/services/terminal-io/types.d.ts +1 -0
  1224. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.d.ts +6 -11
  1225. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +12 -43
  1226. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
  1227. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js +1 -1
  1228. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js.map +1 -1
  1229. package/dist/server/modules/terminal/services/terminal-seed.service.js +0 -4
  1230. package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
  1231. package/dist/server/modules/terminal/terminal-delivery.module.js +3 -0
  1232. package/dist/server/modules/terminal/terminal-delivery.module.js.map +1 -1
  1233. package/dist/server/modules/terminal/terminal.module.js +2 -0
  1234. package/dist/server/modules/terminal/terminal.module.js.map +1 -1
  1235. package/dist/server/modules/vm-providers/proxmox-vm.provider.d.ts +1 -0
  1236. package/dist/server/modules/vm-providers/proxmox-vm.provider.js +17 -0
  1237. package/dist/server/modules/vm-providers/proxmox-vm.provider.js.map +1 -1
  1238. package/dist/server/modules/watchers/services/watcher-runner.service.d.ts +2 -2
  1239. package/dist/server/modules/watchers/services/watcher-runner.service.js +0 -3
  1240. package/dist/server/modules/watchers/services/watcher-runner.service.js.map +1 -1
  1241. package/dist/server/modules/watchers/services/watchers.service.d.ts +3 -3
  1242. package/dist/server/modules/watchers/services/watchers.service.js +6 -9
  1243. package/dist/server/modules/watchers/services/watchers.service.js.map +1 -1
  1244. package/dist/server/modules/watchers/watchers.module.js +1 -8
  1245. package/dist/server/modules/watchers/watchers.module.js.map +1 -1
  1246. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.d.ts +2 -2
  1247. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.js.map +1 -1
  1248. package/dist/server/modules/workspaces/services/workspaces.service.d.ts +3 -3
  1249. package/dist/server/modules/workspaces/services/workspaces.service.js +7 -7
  1250. package/dist/server/modules/workspaces/services/workspaces.service.js.map +1 -1
  1251. package/dist/server/modules/workspaces/workspaces.module.js +1 -2
  1252. package/dist/server/modules/workspaces/workspaces.module.js.map +1 -1
  1253. package/dist/server/modules/worktrees/git-output.d.ts +5 -0
  1254. package/dist/server/modules/worktrees/git-output.js +53 -0
  1255. package/dist/server/modules/worktrees/git-output.js.map +1 -0
  1256. package/dist/server/modules/worktrees/host-worktrees.controller.d.ts +10 -0
  1257. package/dist/server/modules/worktrees/host-worktrees.controller.js +59 -0
  1258. package/dist/server/modules/worktrees/host-worktrees.controller.js.map +1 -0
  1259. package/dist/server/modules/worktrees/host-worktrees.dto.d.ts +40 -0
  1260. package/dist/server/modules/worktrees/host-worktrees.dto.js +9 -0
  1261. package/dist/server/modules/worktrees/host-worktrees.dto.js.map +1 -0
  1262. package/dist/server/modules/worktrees/project-git-mutex.d.ts +5 -0
  1263. package/dist/server/modules/worktrees/project-git-mutex.js +38 -0
  1264. package/dist/server/modules/worktrees/project-git-mutex.js.map +1 -0
  1265. package/dist/server/modules/worktrees/worktree-admission.service.d.ts +15 -0
  1266. package/dist/server/modules/worktrees/worktree-admission.service.js +87 -0
  1267. package/dist/server/modules/worktrees/worktree-admission.service.js.map +1 -0
  1268. package/dist/server/modules/worktrees/worktree-git-runner.d.ts +12 -0
  1269. package/dist/server/modules/worktrees/worktree-git-runner.js +57 -0
  1270. package/dist/server/modules/worktrees/worktree-git-runner.js.map +1 -0
  1271. package/dist/server/modules/worktrees/worktrees.errors.d.ts +5 -0
  1272. package/dist/server/modules/worktrees/worktrees.errors.js +11 -0
  1273. package/dist/server/modules/worktrees/worktrees.errors.js.map +1 -0
  1274. package/dist/server/modules/worktrees/worktrees.module.d.ts +2 -0
  1275. package/dist/server/modules/worktrees/worktrees.module.js +37 -0
  1276. package/dist/server/modules/worktrees/worktrees.module.js.map +1 -0
  1277. package/dist/server/modules/worktrees/worktrees.service.d.ts +50 -0
  1278. package/dist/server/modules/worktrees/worktrees.service.js +586 -0
  1279. package/dist/server/modules/worktrees/worktrees.service.js.map +1 -0
  1280. package/dist/server/modules/worktrees/worktrees.types.d.ts +58 -0
  1281. package/dist/server/modules/worktrees/worktrees.types.js +3 -0
  1282. package/dist/server/modules/worktrees/worktrees.types.js.map +1 -0
  1283. package/dist/server/templates/teams-dev.json +277 -261
  1284. package/dist/server/tsconfig.build.tsbuildinfo +1 -0
  1285. package/dist/server/ui/assets/{ExternalRichEditor-CIZPhssf.js → ExternalRichEditor-NpBNzn_X.js} +1 -1
  1286. package/dist/server/ui/assets/{ReviewDetailPage-winyLSQ7.js → ReviewDetailPage-DxVCE1zh.js} +1 -1
  1287. package/dist/server/ui/assets/{ReviewsPage-BYKBReMp.js → ReviewsPage-Bx6jkULr.js} +1 -1
  1288. package/dist/server/ui/assets/index-BZjQEWOy.css +32 -0
  1289. package/dist/server/ui/assets/index-CLPZxkZt.js +1192 -0
  1290. package/dist/server/ui/assets/{useReviewSubscription-v3Cto0y4.js → useReviewSubscription-BLuFzXjh.js} +26 -26
  1291. package/dist/server/ui/index.html +2 -2
  1292. package/dist/templates/teams-dev.json +277 -261
  1293. package/npm-shrinkwrap.json +6189 -0
  1294. package/package.json +28 -358
  1295. package/dist/server/common/test/remote-project.fixture.d.ts +0 -32
  1296. package/dist/server/common/test/remote-project.fixture.js +0 -328
  1297. package/dist/server/common/test/remote-project.fixture.js.map +0 -1
  1298. package/dist/server/common/test/two-instance.fixture.d.ts +0 -48
  1299. package/dist/server/common/test/two-instance.fixture.js +0 -269
  1300. package/dist/server/common/test/two-instance.fixture.js.map +0 -1
  1301. package/dist/server/modules/e2ee/services/device-revocation-history.js.map +0 -1
  1302. package/dist/server/modules/file-sync/host-git-index.controller.d.ts +0 -9
  1303. package/dist/server/modules/file-sync/host-git-index.controller.js +0 -67
  1304. package/dist/server/modules/file-sync/host-git-index.controller.js.map +0 -1
  1305. package/dist/server/modules/file-sync/sync-chown.dto.d.ts +0 -99
  1306. package/dist/server/modules/file-sync/sync-chown.dto.js +0 -46
  1307. package/dist/server/modules/file-sync/sync-chown.dto.js.map +0 -1
  1308. package/dist/server/modules/file-sync/sync-chown.service.d.ts +0 -12
  1309. package/dist/server/modules/file-sync/sync-chown.service.js +0 -230
  1310. package/dist/server/modules/file-sync/sync-chown.service.js.map +0 -1
  1311. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +0 -5
  1312. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +0 -8
  1313. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +0 -1
  1314. package/dist/server/modules/remotes/operations/git-owner.operation.d.ts +0 -35
  1315. package/dist/server/modules/remotes/operations/git-owner.operation.js +0 -216
  1316. package/dist/server/modules/remotes/operations/git-owner.operation.js.map +0 -1
  1317. package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.d.ts +0 -73
  1318. package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.js.map +0 -1
  1319. package/dist/server/modules/session-reader/services/transcript-turn-state.d.ts +0 -4
  1320. package/dist/server/modules/session-reader/services/transcript-turn-state.js +0 -20
  1321. package/dist/server/modules/session-reader/services/transcript-turn-state.js.map +0 -1
  1322. package/dist/server/modules/sessions/dtos/active-session-info.dto.js.map +0 -1
  1323. package/dist/server/modules/sessions/utils/claude-config.js.map +0 -1
  1324. package/dist/server/modules/sessions/utils/codex-config.js.map +0 -1
  1325. package/dist/server/modules/sessions/utils/env-builder.js.map +0 -1
  1326. package/dist/server/modules/sessions/utils/profile-options.js.map +0 -1
  1327. package/dist/server/modules/terminal/services/session-turn-signals.js.map +0 -1
  1328. package/dist/server/tsconfig.tsbuildinfo +0 -1
  1329. package/dist/server/ui/assets/index-CiDJX6Hn.js +0 -1191
  1330. package/dist/server/ui/assets/index-f1WOAqXB.css +0 -32
  1331. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.d.ts +0 -0
  1332. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.js +0 -0
  1333. /package/dist/server/modules/{sessions → providers}/utils/claude-config.d.ts +0 -0
  1334. /package/dist/server/modules/{sessions → providers}/utils/claude-config.js +0 -0
  1335. /package/dist/server/modules/{sessions → providers}/utils/env-builder.d.ts +0 -0
  1336. /package/dist/server/modules/{sessions → providers}/utils/env-builder.js +0 -0
  1337. /package/dist/server/modules/{sessions → providers}/utils/profile-options.js +0 -0
  1338. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.d.ts +0 -0
  1339. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.js +0 -0
  1340. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.d.ts +0 -0
  1341. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.js +0 -0
@@ -1,15 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RemoteSessionSchema = exports.GitOwnerStatusQuerySchema = exports.GitOwnerProjectSchema = void 0;
4
- exports.gitOwnerCommand = gitOwnerCommand;
3
+ exports.RemoteSessionSchema = exports.GitOwnerStatusQuerySchema = void 0;
5
4
  const zod_1 = require("zod");
6
- exports.GitOwnerProjectSchema = zod_1.z
7
- .object({
8
- projectId: zod_1.z.string().min(1),
9
- owner: zod_1.z.enum(['home', 'vm']),
10
- force: zod_1.z.boolean().default(false),
11
- })
12
- .strict();
13
5
  exports.GitOwnerStatusQuerySchema = zod_1.z.object({ projectId: zod_1.z.string().min(1) }).strict();
14
6
  exports.RemoteSessionSchema = zod_1.z.object({
15
7
  id: zod_1.z.string(),
@@ -19,7 +11,4 @@ exports.RemoteSessionSchema = zod_1.z.object({
19
11
  activityState: zod_1.z.enum(['busy', 'idle']).nullable().optional().default(null),
20
12
  busySince: zod_1.z.string().nullable().optional().default(null),
21
13
  });
22
- function gitOwnerCommand(owner, force) {
23
- return owner === 'home' ? `devchain git take${force ? ' --force' : ''}` : 'devchain git return';
24
- }
25
14
  //# sourceMappingURL=git-owner.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-owner.dto.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/git-owner.dto.ts"],"names":[],"mappings":";;;AAkEA,0CAEC;AApED,6BAAwB;AAKX,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,CAAC;IACN,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,KAAK,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAClC,CAAC;KACD,MAAM,EAAE,CAAC;AACC,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEhF,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,aAAa,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3E,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC1D,CAAC,CAAC;AA6CH,SAAgB,eAAe,CAAC,KAAe,EAAE,KAAc;IAC7D,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,oBAAoB,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;AAClG,CAAC"}
1
+ {"version":3,"file":"git-owner.dto.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/git-owner.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAIX,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEhF,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,aAAa,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3E,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC1D,CAAC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import type { RemoteStorage } from '../../storage/interfaces/storage.interface';
2
2
  import type { RemoteOperation } from '../../storage/models/domain.models';
3
3
  import type { VmProvidersService } from '../../vm-providers/vm-providers.service';
4
+ export declare function confirmedVmGone(providers: VmProvidersService, connectionId: string, vmIdentity: string): Promise<boolean>;
5
+ export declare function confirmedVmIdle(providers: VmProvidersService, connectionId: string, vmid: unknown): Promise<boolean>;
4
6
  export declare function destroyGuardedVm(input: {
5
7
  storage: RemoteStorage;
6
8
  providers: VmProvidersService;
@@ -1,8 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.confirmedVmGone = confirmedVmGone;
4
+ exports.confirmedVmIdle = confirmedVmIdle;
3
5
  exports.destroyGuardedVm = destroyGuardedVm;
4
6
  exports.destroyGuardedVmid = destroyGuardedVmid;
5
7
  const error_types_1 = require("../../../common/errors/error-types");
8
+ async function confirmedVmGone(providers, connectionId, vmIdentity) {
9
+ try {
10
+ await (await providers.forConnection(connectionId)).assertOwnedVmIdentity(vmIdentity);
11
+ }
12
+ catch (error) {
13
+ return error instanceof error_types_1.NotFoundError;
14
+ }
15
+ return false;
16
+ }
17
+ async function confirmedVmIdle(providers, connectionId, vmid) {
18
+ return (typeof vmid === 'number' && (await providers.forConnection(connectionId)).confirmsVmIdle(vmid));
19
+ }
6
20
  async function destroyGuardedVm(input) {
7
21
  const { storage, providers, operation, details, connectionId, vmIdentity, vmidKey, attemptKey } = input;
8
22
  const provider = await providers.forConnection(connectionId);
@@ -1 +1 @@
1
- {"version":3,"file":"guarded-vm-destroy.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/guarded-vm-destroy.ts"],"names":[],"mappings":";;AAMA,4CA2BC;AAED,gDAoBC;AAvDD,oEAAmE;AAM5D,KAAK,UAAU,gBAAgB,CAAC,KAStC;IACC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GAC7F,KAAK,CAAC;IACR,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC7D,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACzD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC3B,MAAM,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,KAAK,YAAY,2BAAa,CAAC;YAAE,MAAM,KAAK,CAAC;IAC7E,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,KAQxC;IACC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACzF,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACzD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC3B,MAAM,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,KAAK,YAAY,2BAAa,CAAC;YAAE,MAAM,KAAK,CAAC;IAC7E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"guarded-vm-destroy.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/guarded-vm-destroy.ts"],"names":[],"mappings":";;AAMA,0CAWC;AAGD,0CAQC;AAGD,4CA2BC;AAED,gDAoBC;AAhFD,oEAAmE;AAM5D,KAAK,UAAU,eAAe,CACnC,SAA6B,EAC7B,YAAoB,EACpB,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACxF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,YAAY,2BAAa,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAGM,KAAK,UAAU,eAAe,CACnC,SAA6B,EAC7B,YAAoB,EACpB,IAAa;IAEb,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAC/F,CAAC;AACJ,CAAC;AAGM,KAAK,UAAU,gBAAgB,CAAC,KAStC;IACC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GAC7F,KAAK,CAAC;IACR,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC7D,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACzD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC3B,MAAM,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,KAAK,YAAY,2BAAa,CAAC;YAAE,MAAM,KAAK,CAAC;IAC7E,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,KAQxC;IACC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACzF,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACzD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC3B,MAAM,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,KAAK,YAAY,2BAAa,CAAC;YAAE,MAAM,KAAK,CAAC;IAC7E,CAAC;AACH,CAAC"}
@@ -13,6 +13,10 @@ export interface InstallHostTiming {
13
13
  }
14
14
  export declare const INSTALL_HOST_TIMING: unique symbol;
15
15
  export interface InstallHostDetails extends ClaimDetails {
16
+ mode?: 'install' | 'join';
17
+ joinExpiresAt?: string;
18
+ joinInstallStarted?: boolean;
19
+ requestedPort?: number;
16
20
  address: string;
17
21
  sshUser: string;
18
22
  sshAuthKind: 'password' | 'key';
@@ -41,12 +45,16 @@ export declare class InstallHostOperation implements RemoteOperationDefinition {
41
45
  interrupt(operationId: string): Promise<void>;
42
46
  forget(operationId: string): void;
43
47
  completed(operation: RemoteOperation): Promise<void>;
44
- retryFrom(operation: RemoteOperation): string | null;
48
+ retryFrom(operation: RemoteOperation): Promise<string | null>;
49
+ resumeFrom(operation: RemoteOperation): string | null;
45
50
  rollback(operation: RemoteOperation): Promise<void>;
46
51
  private connect;
47
52
  private check;
48
53
  private probeSudo;
49
54
  private install;
55
+ private installJoin;
56
+ private saveJoinedAddress;
57
+ private joinCommand;
50
58
  private readCertificate;
51
59
  private installStatus;
52
60
  private waitForInstall;
@@ -57,3 +65,15 @@ export declare class InstallHostOperation implements RemoteOperationDefinition {
57
65
  private renderBlock;
58
66
  }
59
67
  export declare function accountHomeCheckCommand(userName: string, homePath: string): string;
68
+ export declare function joinedInstancePaths(userName: string): {
69
+ claim: string;
70
+ join: string;
71
+ prefix: string;
72
+ bootstrap: string;
73
+ unit: string;
74
+ };
75
+ export declare function installJobPaths(operationId: string): {
76
+ unit: string;
77
+ log: string;
78
+ exit: string;
79
+ };
@@ -14,6 +14,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.InstallHostOperation = exports.INSTALL_HOST_TIMING = exports.HOST_INSTALL_PREFLIGHT_TIMEOUT_MS = void 0;
16
16
  exports.accountHomeCheckCommand = accountHomeCheckCommand;
17
+ exports.joinedInstancePaths = joinedInstancePaths;
18
+ exports.installJobPaths = installJobPaths;
17
19
  const common_1 = require("@nestjs/common");
18
20
  const promises_1 = require("node:timers/promises");
19
21
  const logger_1 = require("../../../common/logging/logger");
@@ -28,9 +30,6 @@ const remote_host_client_1 = require("./remote-host.client");
28
30
  const remote_operation_errors_1 = require("./remote-operation.errors");
29
31
  const remote_operation_types_1 = require("./remote-operation.types");
30
32
  const logger = (0, logger_1.createLogger)('InstallHostOperation');
31
- const INSTALL_LOG = '/var/log/devchain-host-install.log';
32
- const INSTALL_EXIT = '/run/devchain-host-install.exit';
33
- const INSTALL_UNIT = 'devchain-host-install';
34
33
  const PEM_CERTIFICATE = /^-----BEGIN CERTIFICATE-----\r?\n[A-Za-z0-9+/=\r\n]+-----END CERTIFICATE-----$/;
35
34
  const SUDO_PASSWORD_FAILURE = /password is required|no password was provided|incorrect password|sorry, try again|authentication fail/i;
36
35
  exports.HOST_INSTALL_PREFLIGHT_TIMEOUT_MS = 12 * 60_000;
@@ -93,16 +92,41 @@ let InstallHostOperation = class InstallHostOperation {
93
92
  async completed(operation) {
94
93
  this.forget(operation.id);
95
94
  }
96
- retryFrom(operation) {
95
+ async retryFrom(operation) {
97
96
  this.cancellations.delete(operation.id);
97
+ const details = operation.details;
98
+ if (details.mode === 'join' && !details.claimed) {
99
+ if ((0, remote_operation_types_1.stepStarted)(operation, 'claim_claim') || !this.claim.hasJoinNonce(operation.id))
100
+ return 'install';
101
+ const runtime = details.tlsCertificate
102
+ ? await this.host.runtimeAt(details.bootstrapUrl, details.tlsCertificate).catch(() => null)
103
+ : null;
104
+ if (!runtime)
105
+ return 'install';
106
+ }
98
107
  const retry = this.claim.retryFrom(claimOperation(operation));
99
108
  return retry ? `claim_${retry}` : null;
100
109
  }
110
+ resumeFrom(operation) {
111
+ const details = operation.details;
112
+ return details.mode === 'join' && !details.claimed ? 'install' : null;
113
+ }
101
114
  async rollback(operation) {
102
115
  const details = operation.details;
103
116
  if (details.installStopRequired) {
104
117
  const credentials = this.requireCredentials(operation.id);
105
- await this.ssh.withSession({ host: details.address, credentials, expectedFingerprint: requireFingerprint(details) }, (session) => this.stopInstall(session, credentials, details));
118
+ await this.ssh.withSession({ host: details.address, credentials, expectedFingerprint: requireFingerprint(details) }, (session) => this.stopInstall(session, credentials, details, operation.id));
119
+ }
120
+ if (details.mode === 'join' && details.joinRequestId && details.joinInstallStarted) {
121
+ const credentials = this.requireCredentials(operation.id);
122
+ await this.ssh.withSession({ host: details.address, credentials, expectedFingerprint: requireFingerprint(details) }, async (session) => {
123
+ const ownClaim = await session.exec(privilegedCommand(credentials, `test ! -f ${(0, ssh_runner_1.shellQuote)(joinedInstancePaths(details.userName).claim)}`), sudoInput(credentials));
124
+ if (ownClaim.code !== 0)
125
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('CLAIM_STARTED', 'The joined instance is already claimed; cancelling it is refused.');
126
+ const result = await this.joinCommand(session, credentials, details, '--cancel-join');
127
+ if (result.code !== 0)
128
+ throw joinRefusal(result, 'HOST_JOIN_CANCEL_FAILED', 'Could not cancel the VM join; restore SSH access and cancel again.');
129
+ });
106
130
  }
107
131
  await this.claim.rollback(claimOperation(operation));
108
132
  this.forget(operation.id);
@@ -122,20 +146,45 @@ let InstallHostOperation = class InstallHostOperation {
122
146
  signal.throwIfAborted();
123
147
  install.checkWarnings = [];
124
148
  const credentials = this.requireCredentials(operation.id);
125
- const block = await this.renderBlock(install, true);
126
149
  const collidingHome = await this.ssh.withSession({
127
150
  host: install.address,
128
151
  credentials,
129
152
  expectedFingerprint: requireFingerprint(install),
130
153
  }, async (session) => {
131
154
  await this.probeSudo(session, credentials, signal);
155
+ const state = await session.exec(privilegedCommand(credentials, "sh -c 'if test -f /etc/devchain-host/claim.json; then printf __DEVCHAIN_HOST_STATE__claimed; else printf __DEVCHAIN_HOST_STATE__unclaimed; fi'"), sudoInput(credentials), { signal, capture: 'private' });
156
+ if (state.code !== 0 ||
157
+ !['__DEVCHAIN_HOST_STATE__claimed', '__DEVCHAIN_HOST_STATE__unclaimed'].includes(state.stdout.trim()))
158
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_CHECK_FAILED', 'Could not inspect the VM claim state.');
159
+ install.mode =
160
+ state.stdout.trim() === '__DEVCHAIN_HOST_STATE__claimed' ? 'join' : 'install';
161
+ if (install.mode === 'join') {
162
+ install.joinRequestId = operation.id;
163
+ install.requestedPort ??= install.port;
164
+ }
165
+ const block = await this.renderBlock(install, true);
132
166
  const path = await session.uploadTemp(block, { signal });
133
- const result = await session.exec(privilegedCommand(credentials, `bash ${(0, ssh_runner_1.shellQuote)(path)} --check`), sudoInput(credentials), { timeoutMs: exports.HOST_INSTALL_PREFLIGHT_TIMEOUT_MS, signal });
167
+ const result = await session.exec(privilegedCommand(credentials, `bash ${(0, ssh_runner_1.shellQuote)(path)} --check`), sudoInput(credentials), {
168
+ timeoutMs: exports.HOST_INSTALL_PREFLIGHT_TIMEOUT_MS,
169
+ signal,
170
+ ...(install.mode === 'join' ? { capture: 'private' } : {}),
171
+ });
134
172
  install.checkWarnings = `${result.stdout}\n${result.stderr}`
135
173
  .split(/\r?\n/)
136
174
  .filter((line) => line.startsWith('WARNING: '))
137
175
  .map((line) => line.slice('WARNING: '.length));
138
176
  if (result.code !== 0) {
177
+ if (install.mode === 'join') {
178
+ const refusal = parseJoinError(result);
179
+ if (refusal?.code === 'HOST_INSTALL_ACCOUNT_COLLISION')
180
+ return refusal.accountHome ?? 'another folder';
181
+ return {
182
+ joinError: refusal ?? {
183
+ code: 'HOST_JOIN_CHECK_FAILED',
184
+ message: 'The VM refused the join check.',
185
+ },
186
+ };
187
+ }
139
188
  const refusal = tail(`${result.stdout}\n${result.stderr}`.trim(), 2_000);
140
189
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_CHECK_FAILED', refusal || 'The VM refused the host installation check.');
141
190
  }
@@ -151,6 +200,8 @@ let InstallHostOperation = class InstallHostOperation {
151
200
  }
152
201
  return undefined;
153
202
  });
203
+ if (collidingHome && typeof collidingHome === 'object')
204
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError(collidingHome.joinError.code, collidingHome.joinError.message);
154
205
  if (collidingHome !== undefined) {
155
206
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_ACCOUNT_COLLISION', `The VM account ${install.userName} already uses the home folder ${collidingHome}. ` +
156
207
  `Correct that account's home folder to ${install.homePath}, or use a new VM.`);
@@ -176,6 +227,10 @@ let InstallHostOperation = class InstallHostOperation {
176
227
  async install({ operation, details, progress }) {
177
228
  const install = details;
178
229
  const credentials = this.requireCredentials(operation.id);
230
+ if (install.mode === 'join') {
231
+ await this.installJoin({ operation, details, progress }, credentials);
232
+ return;
233
+ }
179
234
  const block = await this.renderBlock(install, false);
180
235
  const { signal } = this.cancellation(operation.id);
181
236
  signal.throwIfAborted();
@@ -186,24 +241,24 @@ let InstallHostOperation = class InstallHostOperation {
186
241
  expectedFingerprint: requireFingerprint(install),
187
242
  }, async (session) => {
188
243
  try {
189
- const status = await this.installStatus(session, credentials, deadline, signal);
244
+ const status = await this.installStatus(session, credentials, deadline, signal, operation.id);
190
245
  if (status === 'absent') {
191
246
  const path = await session.uploadTemp(block, { deadlineAt: deadline, signal });
192
247
  signal.throwIfAborted();
193
- const start = await session.exec(privilegedCommand(credentials, detachedInstallCommand(path)), sudoInput(credentials), { deadlineAt: deadline, timeoutMs: 5_000 });
248
+ const start = await session.exec(privilegedCommand(credentials, detachedInstallCommand(path, operation.id)), sudoInput(credentials), { deadlineAt: deadline, timeoutMs: 5_000 });
194
249
  if (start.code !== 0) {
195
250
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_START_FAILED', tail(start.stderr || start.stdout, 2_000) ||
196
251
  'Could not start the host installation.');
197
252
  }
198
253
  }
199
- await this.waitForInstall(session, credentials, progress, deadline, signal);
254
+ await this.waitForInstall(session, credentials, progress, deadline, signal, operation.id);
200
255
  signal.throwIfAborted();
201
256
  return await this.readCertificate(session, credentials, signal);
202
257
  }
203
258
  catch (error) {
204
259
  if (signal.aborted) {
205
260
  install.installStopRequired = true;
206
- await this.stopInstall(session, credentials, install);
261
+ await this.stopInstall(session, credentials, install, operation.id);
207
262
  }
208
263
  throw error;
209
264
  }
@@ -211,16 +266,137 @@ let InstallHostOperation = class InstallHostOperation {
211
266
  await this.storage.updateRemoteTlsCertificate(operation.remoteId, certificate);
212
267
  install.tlsCertificate = certificate;
213
268
  }
269
+ async installJoin(run, credentials, deadline = Date.now() + this.timing.installTimeoutMs) {
270
+ const { operation, progress } = run;
271
+ const details = run.details;
272
+ const { signal } = this.cancellation(operation.id);
273
+ signal.throwIfAborted();
274
+ await this.ssh.withSession({ host: details.address, credentials, expectedFingerprint: requireFingerprint(details) }, async (session) => {
275
+ try {
276
+ if ((0, remote_operation_types_1.stepStarted)(operation, 'claim_claim')) {
277
+ const claimFile = joinedInstancePaths(details.userName).claim;
278
+ for (;;) {
279
+ signal.throwIfAborted();
280
+ const recorded = await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(`if test -f ${(0, ssh_runner_1.shellQuote)(claimFile)}; then cat ${(0, ssh_runner_1.shellQuote)(claimFile)}; fi`)}`), sudoInput(credentials), { signal, deadlineAt: deadline, capture: 'private' });
281
+ if (recorded.code !== 0)
282
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_STATE_FAILED', 'Could not inspect this instance after the earlier claim.');
283
+ if (recorded.stdout.trim()) {
284
+ const record = JSON.parse(recorded.stdout);
285
+ if (!isJoinRecord(record, details) ||
286
+ record.port !== details.port ||
287
+ record.version !== details.version)
288
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('INSTANCE_EXISTS', 'The existing instance does not match this join attempt.');
289
+ const started = await session.exec(privilegedCommand(credentials, `systemctl start --no-block ${(0, ssh_runner_1.shellQuote)(joinedInstancePaths(details.userName).unit)}`), sudoInput(credentials), { signal });
290
+ if (started.code !== 0)
291
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_START_FAILED', 'Could not start the recorded instance service.');
292
+ await this.saveJoinedAddress(operation.remoteId, details, session, credentials, signal);
293
+ details.claimed = true;
294
+ return;
295
+ }
296
+ const certificate = details.tlsCertificate ?? (await this.host.certificateOf(operation.remoteId));
297
+ const runtime = await this.host
298
+ .runtimeAt(details.bootstrapUrl, certificate)
299
+ .catch(() => null);
300
+ if (!claimInFlight(runtime))
301
+ break;
302
+ if (Date.now() >= deadline)
303
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_CLAIM_TIMEOUT', 'The earlier claim did not record this instance within the installation timeout.');
304
+ await (0, promises_1.setTimeout)(Math.min(this.timing.pollIntervalMs, deadline - Date.now()), undefined, { signal });
305
+ }
306
+ }
307
+ details.joinInstallStarted = true;
308
+ await progress({ joinInstallStarted: true }, { durable: true });
309
+ const status = await this.installStatus(session, credentials, deadline, signal, operation.id);
310
+ if (status === 'absent') {
311
+ const file = await session.uploadTemp(await this.renderBlock(details, false), {
312
+ signal,
313
+ deadlineAt: deadline,
314
+ });
315
+ const result = await session.exec(privilegedCommand(credentials, detachedInstallCommand(file, operation.id)), sudoInput(credentials), { deadlineAt: deadline, timeoutMs: 5_000 });
316
+ if (result.code !== 0)
317
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_START_FAILED', 'Could not start the detached VM join.');
318
+ }
319
+ await this.waitForInstall(session, credentials, progress, deadline, signal, operation.id, true);
320
+ signal.throwIfAborted();
321
+ const result = await this.joinCommand(session, credentials, details, '--reserve-join', signal);
322
+ if (result.code !== 0)
323
+ throw joinRefusal(result, 'HOST_JOIN_RESERVE_FAILED', 'Could not resume the join reservation.');
324
+ let reservation;
325
+ try {
326
+ reservation = JSON.parse(result.stdout);
327
+ }
328
+ catch {
329
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_RESERVATION_INVALID', 'The VM returned an invalid join reservation.');
330
+ }
331
+ if (!isJoinRecord(reservation, details) ||
332
+ typeof reservation.nonce !== 'string' ||
333
+ !/^[a-f0-9]{64}$/.test(reservation.nonce) ||
334
+ reservation.requestId !== details.joinRequestId ||
335
+ typeof reservation.expiresAt !== 'string' ||
336
+ !Number.isFinite(Date.parse(reservation.expiresAt)))
337
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_RESERVATION_INVALID', 'The VM returned a mismatched join reservation.');
338
+ this.claim.seedJoinNonce(operation.id, reservation.nonce);
339
+ details.port = reservation.port;
340
+ details.joinExpiresAt = reservation.expiresAt;
341
+ const url = new URL(details.bootstrapUrl);
342
+ url.port = String(reservation.port);
343
+ url.protocol = 'https:';
344
+ details.bootstrapUrl = url.origin;
345
+ await progress({
346
+ port: details.port,
347
+ bootstrapUrl: details.bootstrapUrl,
348
+ joinExpiresAt: details.joinExpiresAt,
349
+ }, { durable: true });
350
+ await this.saveJoinedAddress(operation.remoteId, details, session, credentials, signal);
351
+ }
352
+ catch (error) {
353
+ if (signal.aborted) {
354
+ details.installStopRequired = true;
355
+ await this.stopInstall(session, credentials, details, operation.id);
356
+ }
357
+ throw error;
358
+ }
359
+ });
360
+ }
361
+ async saveJoinedAddress(remoteId, details, session, credentials, signal) {
362
+ const certificate = await this.readCertificate(session, credentials, signal);
363
+ await this.storage.updateRemoteBaseUrl(remoteId, details.bootstrapUrl);
364
+ await this.storage.updateRemoteTlsCertificate(remoteId, certificate);
365
+ details.tlsCertificate = certificate;
366
+ }
367
+ async joinCommand(session, credentials, details, mode, signal) {
368
+ const input = {
369
+ userName: details.userName,
370
+ homePath: details.homePath,
371
+ port: details.requestedPort ?? details.port,
372
+ requestId: details.joinRequestId,
373
+ uid: details.uid,
374
+ gid: details.gid,
375
+ };
376
+ const file = await session.uploadTemp(JSON.stringify(input), { signal });
377
+ const own = joinedInstancePaths(details.userName);
378
+ const helper = own.bootstrap;
379
+ const cleanup = `test ! -f ${(0, ssh_runner_1.shellQuote)(own.claim)} && test ! -f ${(0, ssh_runner_1.shellQuote)(own.join)} || exit 3; rm -rf ${(0, ssh_runner_1.shellQuote)(own.prefix)}`;
380
+ const command = mode === '--cancel-join'
381
+ ? `if test -x ${(0, ssh_runner_1.shellQuote)(helper)}; then ${(0, ssh_runner_1.shellQuote)(helper)} ${mode} <${(0, ssh_runner_1.shellQuote)(file)} || exit $?; else printf '{"cancelled":true}\\n'; fi; flock --exclusive /etc/devchain-host/registry.lock sh -c ${(0, ssh_runner_1.shellQuote)(cleanup)}`
382
+ : `${(0, ssh_runner_1.shellQuote)(helper)} ${mode} <${(0, ssh_runner_1.shellQuote)(file)}`;
383
+ try {
384
+ return await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(command)}`), sudoInput(credentials), { signal, timeoutMs: ssh_runner_1.SSH_COMMAND_TIMEOUT_MS, capture: 'private' });
385
+ }
386
+ finally {
387
+ await session.exec(`rm -f ${(0, ssh_runner_1.shellQuote)(file)}`).catch(() => undefined);
388
+ }
389
+ }
214
390
  async readCertificate(session, credentials, signal) {
215
- const result = await session.exec(privilegedCommand(credentials, `cat ${(0, ssh_runner_1.shellQuote)(host_install_block_1.HOST_CERTIFICATE_PATH)}`), sudoInput(credentials), { timeoutMs: ssh_runner_1.SSH_COMMAND_TIMEOUT_MS, signal });
391
+ const result = await session.exec(privilegedCommand(credentials, `cat ${(0, ssh_runner_1.shellQuote)(host_install_block_1.HOST_CERTIFICATE_PATH)}`), sudoInput(credentials), { timeoutMs: ssh_runner_1.SSH_COMMAND_TIMEOUT_MS, signal, capture: 'private' });
216
392
  if (result.code !== 0) {
217
- throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_TLS_CERTIFICATE_UNREADABLE', `Could not read the VM certificate ${host_install_block_1.HOST_CERTIFICATE_PATH} over SSH` +
218
- (result.stderr.trim() ? `: ${tail(result.stderr.trim(), 300)}` : '.'));
393
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_TLS_CERTIFICATE_UNREADABLE', `Could not read the VM certificate ${host_install_block_1.HOST_CERTIFICATE_PATH} over SSH.`);
219
394
  }
220
395
  return parseVmCertificate(result.stdout);
221
396
  }
222
- async installStatus(session, credentials, deadline, signal) {
223
- const command = `if test -f ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}; then printf finished; elif systemctl is-active --quiet ${(0, ssh_runner_1.shellQuote)(INSTALL_UNIT)}; then printf active; else printf absent; fi`;
397
+ async installStatus(session, credentials, deadline, signal, operationId) {
398
+ const job = installJobPaths(operationId);
399
+ const command = `if test -f ${(0, ssh_runner_1.shellQuote)(job.exit)}; then printf finished; elif systemctl is-active --quiet ${(0, ssh_runner_1.shellQuote)(job.unit)}; then printf active; else printf absent; fi`;
224
400
  const result = await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(command)}`), sudoInput(credentials), { deadlineAt: deadline, signal });
225
401
  if (result.code !== 0) {
226
402
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_STATUS_FAILED', 'Could not read the detached installer status.');
@@ -228,10 +404,11 @@ let InstallHostOperation = class InstallHostOperation {
228
404
  const status = result.stdout.trim();
229
405
  return status === 'active' || status === 'finished' ? status : 'absent';
230
406
  }
231
- async waitForInstall(session, credentials, progress, deadline, signal) {
407
+ async waitForInstall(session, credentials, progress, deadline, signal, operationId, join = false) {
232
408
  for (;;) {
233
409
  signal.throwIfAborted();
234
- const command = `tail -n 80 ${(0, ssh_runner_1.shellQuote)(INSTALL_LOG)} 2>/dev/null || true; printf '\\n__DEVCHAIN_EXIT__'; test ! -f ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)} || cat ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}`;
410
+ const job = installJobPaths(operationId);
411
+ const command = `tail -n 80 ${(0, ssh_runner_1.shellQuote)(job.log)} 2>/dev/null || true; printf '\\n__DEVCHAIN_EXIT__'; test ! -f ${(0, ssh_runner_1.shellQuote)(job.exit)} || cat ${(0, ssh_runner_1.shellQuote)(job.exit)}`;
235
412
  const result = await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(command)}`), sudoInput(credentials), { deadlineAt: deadline, signal });
236
413
  if (result.code !== 0) {
237
414
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_STATUS_FAILED', 'Could not read the detached installer log and exit status.');
@@ -243,7 +420,9 @@ let InstallHostOperation = class InstallHostOperation {
243
420
  const exitCode = /^\d+$/.test(exitText.trim()) ? Number(exitText.trim()) : null;
244
421
  if (exitCode !== null) {
245
422
  if (exitCode !== 0) {
246
- await session.exec(privilegedCommand(credentials, `rm -f ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}`), sudoInput(credentials));
423
+ await session.exec(privilegedCommand(credentials, `rm -f ${(0, ssh_runner_1.shellQuote)(job.exit)}`), sudoInput(credentials));
424
+ if (join)
425
+ throw joinRefusal({ code: exitCode, stdout: logTail, stderr: '' }, 'HOST_JOIN_FAILED', 'The detached VM join failed.');
247
426
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_FAILED', logTail || `The detached installer failed with code ${exitCode}.`);
248
427
  }
249
428
  return;
@@ -256,11 +435,14 @@ let InstallHostOperation = class InstallHostOperation {
256
435
  });
257
436
  }
258
437
  }
259
- async waitBootstrap({ operation, details }) {
438
+ async waitBootstrap(run) {
439
+ const { operation, details } = run;
260
440
  const install = details;
261
441
  const { signal } = this.cancellation(operation.id);
262
442
  const certificate = install.tlsCertificate ?? (await this.host.certificateOf(operation.remoteId));
263
- const deadline = Date.now() + this.timing.bootstrapTimeoutMs;
443
+ const recoveringClaim = install.mode === 'join' && !install.claimed && (0, remote_operation_types_1.stepStarted)(operation, 'claim_claim');
444
+ let deadline = Date.now() +
445
+ (recoveringClaim ? this.timing.installTimeoutMs : this.timing.bootstrapTimeoutMs);
264
446
  for (;;) {
265
447
  signal.throwIfAborted();
266
448
  const runtime = await this.host
@@ -269,6 +451,16 @@ let InstallHostOperation = class InstallHostOperation {
269
451
  if (runtime?.state === 'unclaimed' && (0, host_image_1.isSupportedHostImage)(runtime.imageVersion)) {
270
452
  return;
271
453
  }
454
+ if (recoveringClaim && !install.claimed && Date.now() >= deadline)
455
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_CLAIM_TIMEOUT', 'The earlier claim did not record this instance within the installation timeout.');
456
+ if (recoveringClaim && !install.claimed && claimInFlight(runtime)) {
457
+ await this.installJoin(run, this.requireCredentials(operation.id), deadline);
458
+ if (install.claimed)
459
+ deadline = Date.now() + this.timing.bootstrapTimeoutMs;
460
+ continue;
461
+ }
462
+ if (install.mode === 'join' && install.claimed && runtime?.version === install.version)
463
+ return;
272
464
  if (Date.now() >= deadline) {
273
465
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_BOOTSTRAP_TIMEOUT', 'The installed host bootstrap did not become ready within 60 seconds.');
274
466
  }
@@ -285,9 +477,10 @@ let InstallHostOperation = class InstallHostOperation {
285
477
  }
286
478
  return controller;
287
479
  }
288
- async stopInstall(session, credentials, details) {
289
- const unit = (0, ssh_runner_1.shellQuote)(INSTALL_UNIT);
290
- const command = `systemctl kill --signal=SIGKILL ${unit}; systemctl stop ${unit} || { test "$(systemctl show ${unit} --property=LoadState --value)" = not-found || exit 1; }; rm -f ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}`;
480
+ async stopInstall(session, credentials, details, operationId) {
481
+ const job = installJobPaths(operationId);
482
+ const unit = (0, ssh_runner_1.shellQuote)(job.unit);
483
+ const command = `systemctl kill --signal=SIGKILL ${unit}; systemctl stop ${unit} || { test "$(systemctl show ${unit} --property=LoadState --value)" = not-found || exit 1; }; rm -f ${(0, ssh_runner_1.shellQuote)(job.exit)}`;
291
484
  const stopped = await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(command)}`), sudoInput(credentials), { timeoutMs: 5_000 });
292
485
  if (stopped.code !== 0) {
293
486
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_STOP_FAILED', 'Could not stop the detached installer and clear its status on the VM. Check SSH access and cancel again.');
@@ -302,6 +495,17 @@ let InstallHostOperation = class InstallHostOperation {
302
495
  return credentials;
303
496
  }
304
497
  renderBlock(details, checkOnly) {
498
+ if (details.mode === 'join')
499
+ return this.hostInstall.renderJoin({
500
+ minDiskGib: details.minDiskGib,
501
+ homePort: details.requestedPort ?? details.port,
502
+ homeUser: details.userName,
503
+ homePath: details.homePath,
504
+ uid: details.uid,
505
+ gid: details.gid,
506
+ requestId: details.joinRequestId ?? '',
507
+ checkOnly,
508
+ });
305
509
  return this.hostInstall.render({
306
510
  minDiskGib: details.minDiskGib,
307
511
  homePort: details.port,
@@ -329,9 +533,30 @@ function accountHomeCheckCommand(userName, homePath) {
329
533
  const script = `home=$(getent passwd ${(0, ssh_runner_1.shellQuote)(userName)}) || exit $?; home=$(printf '%s' "$home" | cut -d: -f6); [ "$home" = ${(0, ssh_runner_1.shellQuote)(homePath)} ] && exit 0; printf '%s' "$home"; exit ${ACCOUNT_HOME_MISMATCH_EXIT}`;
330
534
  return `sh -c ${(0, ssh_runner_1.shellQuote)(script)}`;
331
535
  }
332
- function detachedInstallCommand(path) {
333
- const run = `bash "$1"; code=$?; printf '%s\\n' "$code" > ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}; exit "$code"`;
334
- return `systemd-run --unit=${(0, ssh_runner_1.shellQuote)(INSTALL_UNIT)} --collect --no-block --property=${(0, ssh_runner_1.shellQuote)(`StandardOutput=append:${INSTALL_LOG}`)} --property=${(0, ssh_runner_1.shellQuote)(`StandardError=append:${INSTALL_LOG}`)} bash -c ${(0, ssh_runner_1.shellQuote)(run)} _ ${(0, ssh_runner_1.shellQuote)(path)}`;
536
+ function detachedInstallCommand(path, operationId) {
537
+ const job = installJobPaths(operationId);
538
+ const run = `bash "$1"; code=$?; printf '%s\\n' "$code" > ${(0, ssh_runner_1.shellQuote)(job.exit)}; exit "$code"`;
539
+ return `systemd-run --unit=${(0, ssh_runner_1.shellQuote)(job.unit)} --collect --no-block --property=${(0, ssh_runner_1.shellQuote)(`StandardOutput=append:${job.log}`)} --property=${(0, ssh_runner_1.shellQuote)(`StandardError=append:${job.log}`)} bash -c ${(0, ssh_runner_1.shellQuote)(run)} _ ${(0, ssh_runner_1.shellQuote)(path)}`;
540
+ }
541
+ function claimInFlight(runtime) {
542
+ return (runtime?.state === 'claiming' || runtime?.state === 'handover' || Boolean(runtime?.version));
543
+ }
544
+ function joinedInstancePaths(userName) {
545
+ const etc = `/etc/devchain-host/instances/${userName}`;
546
+ const prefix = `/opt/devchain-host/instances/${userName}`;
547
+ return {
548
+ claim: `${etc}/claim.json`,
549
+ join: `${etc}/join.json`,
550
+ prefix,
551
+ bootstrap: `${prefix}/helper/bin/devchain-bootstrap`,
552
+ unit: `devchain-user-${userName}.service`,
553
+ };
554
+ }
555
+ function installJobPaths(operationId) {
556
+ if (!/^[A-Za-z0-9_-]+$/.test(operationId))
557
+ throw new Error('Invalid SSH operation id.');
558
+ const unit = `devchain-host-install-${operationId}`;
559
+ return { unit, log: `/var/log/${unit}.log`, exit: `/run/${unit}.exit` };
335
560
  }
336
561
  function privilegedCommand(credentials, command) {
337
562
  return credentials.user === 'root' ? command : `sudo -S -p '' ${command}`;
@@ -364,4 +589,37 @@ function tail(value, max) {
364
589
  function claimOperation(operation) {
365
590
  return (0, remote_operation_types_1.withStepPrefix)(operation, 'claim_');
366
591
  }
592
+ function isJoinRecord(value, details) {
593
+ if (!value || typeof value !== 'object')
594
+ return false;
595
+ const record = value;
596
+ return (record.userName === details.userName &&
597
+ record.homePath === details.homePath &&
598
+ typeof record.port === 'number' &&
599
+ Number.isInteger(record.port) &&
600
+ record.port >= 1024 &&
601
+ record.port <= 65535);
602
+ }
603
+ function parseJoinError(result) {
604
+ for (const line of `${result.stdout}\n${result.stderr}`.split(/\r?\n/).reverse()) {
605
+ try {
606
+ const parsed = JSON.parse(line);
607
+ if (!parsed || typeof parsed !== 'object')
608
+ continue;
609
+ const error = parsed;
610
+ if (typeof error.code === 'string' && typeof error.message === 'string')
611
+ return {
612
+ code: error.code,
613
+ message: error.message.replace(/\b[a-f0-9]{64}\b/gi, '[REDACTED]'),
614
+ ...(typeof error.accountHome === 'string' ? { accountHome: error.accountHome } : {}),
615
+ };
616
+ }
617
+ catch { }
618
+ }
619
+ return null;
620
+ }
621
+ function joinRefusal(result, code, message) {
622
+ const error = parseJoinError(result);
623
+ return new remote_operation_errors_1.RemoteOperationStepRefusedError(error?.code ?? code, error?.message ?? message);
624
+ }
367
625
  //# sourceMappingURL=install-host.operation.js.map