devchain-cli 0.24.1 → 0.25.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 (1063) hide show
  1. package/README.md +11 -2
  2. package/dist/build-info.json +2 -2
  3. package/dist/cli.js +40 -10
  4. package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
  5. package/dist/host-install/pins.json +32 -2
  6. package/dist/lib/exclusive-run.js +51 -3
  7. package/dist/lib/git-owner.js +284 -0
  8. package/dist/lib/host-install.js +19 -151
  9. package/dist/lib/local-api.js +175 -0
  10. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +7 -4
  11. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts.map +1 -1
  12. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js +1 -0
  13. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -1
  14. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +26 -26
  15. package/dist/node_modules/@devchain/shared/schemas/host-provider-clis.d.ts +6 -6
  16. package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts +3855 -3855
  17. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  18. package/dist/server/common/config/env.config.d.ts +6 -0
  19. package/dist/server/common/config/env.config.js +8 -0
  20. package/dist/server/common/config/env.config.js.map +1 -1
  21. package/dist/server/common/config/host-image.json +3 -3
  22. package/dist/server/common/config/integration-admission.d.ts +1 -0
  23. package/dist/server/common/config/integration-admission.js +6 -2
  24. package/dist/server/common/config/integration-admission.js.map +1 -1
  25. package/dist/server/common/constants/syncthing-markers.d.ts +1 -0
  26. package/dist/server/common/constants/syncthing-markers.js +6 -1
  27. package/dist/server/common/constants/syncthing-markers.js.map +1 -1
  28. package/dist/server/common/filesystem/vm-home-path.d.ts +11 -0
  29. package/dist/server/common/filesystem/vm-home-path.js +48 -0
  30. package/dist/server/common/filesystem/vm-home-path.js.map +1 -0
  31. package/dist/server/common/http/browser-request-guard.d.ts +8 -0
  32. package/dist/server/common/http/browser-request-guard.js +61 -0
  33. package/dist/server/common/http/browser-request-guard.js.map +1 -0
  34. package/dist/server/common/process-ids-env.d.ts +1 -0
  35. package/dist/server/common/process-ids-env.js +13 -0
  36. package/dist/server/common/process-ids-env.js.map +1 -0
  37. package/dist/server/common/test/api-test-app.d.ts +12 -0
  38. package/dist/server/common/test/api-test-app.js +76 -0
  39. package/dist/server/common/test/api-test-app.js.map +1 -0
  40. package/dist/server/common/test/app-bootstrap.helper.js +8 -1
  41. package/dist/server/common/test/app-bootstrap.helper.js.map +1 -1
  42. package/dist/server/common/test/fake-bootstrap.server.js +3 -2
  43. package/dist/server/common/test/fake-bootstrap.server.js.map +1 -1
  44. package/dist/server/common/test/fake-docker-engine.server.d.ts +25 -6
  45. package/dist/server/common/test/fake-docker-engine.server.js +111 -34
  46. package/dist/server/common/test/fake-docker-engine.server.js.map +1 -1
  47. package/dist/server/common/test/fake-proxmox.server.js +4 -4
  48. package/dist/server/common/test/fake-ssh.server.js +6 -6
  49. package/dist/server/common/test/fake-ssh.server.js.map +1 -1
  50. package/dist/server/common/test/test-database.helper.d.ts +6 -0
  51. package/dist/server/common/test/test-database.helper.js +29 -0
  52. package/dist/server/common/test/test-database.helper.js.map +1 -0
  53. package/dist/server/common/test/tls-fixture.d.ts +2 -1
  54. package/dist/server/common/test/tls-fixture.js +47 -5
  55. package/dist/server/common/test/tls-fixture.js.map +1 -1
  56. package/dist/server/modules/agents/agents.module.js +1 -8
  57. package/dist/server/modules/agents/agents.module.js.map +1 -1
  58. package/dist/server/modules/agents/controllers/agents.controller.d.ts +4 -4
  59. package/dist/server/modules/agents/controllers/agents.controller.js +6 -10
  60. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
  61. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js +7 -7
  62. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js.map +1 -1
  63. package/dist/server/modules/cloud/services/cloud-session-manager.service.d.ts +12 -0
  64. package/dist/server/modules/cloud/services/cloud-session-manager.service.js +78 -9
  65. package/dist/server/modules/cloud/services/cloud-session-manager.service.js.map +1 -1
  66. package/dist/server/modules/cloud/services/notification-recipient-resolver.service.d.ts +2 -2
  67. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js +9 -3
  68. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
  69. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js +2 -2
  70. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js.map +1 -1
  71. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.d.ts +4 -4
  72. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js +6 -6
  73. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js.map +1 -1
  74. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +2 -2
  75. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
  76. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.d.ts +3 -0
  77. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +1 -0
  78. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js.map +1 -1
  79. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.d.ts +2 -2
  80. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -1
  81. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js +3 -2
  82. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js.map +1 -1
  83. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.d.ts +14 -3
  84. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +54 -14
  85. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
  86. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js.map +1 -1
  87. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.d.ts +2 -2
  88. package/dist/server/modules/core/controllers/docker-archive-owners.d.ts +29 -0
  89. package/dist/server/modules/core/controllers/docker-archive-owners.js +226 -0
  90. package/dist/server/modules/core/controllers/docker-archive-owners.js.map +1 -0
  91. package/dist/server/modules/core/controllers/docker-archive.js +1 -1
  92. package/dist/server/modules/core/controllers/docker-archive.js.map +1 -1
  93. package/dist/server/modules/core/controllers/docker-engine.client.d.ts +6 -1
  94. package/dist/server/modules/core/controllers/docker-engine.client.js +46 -4
  95. package/dist/server/modules/core/controllers/docker-engine.client.js.map +1 -1
  96. package/dist/server/modules/core/controllers/docker-image-metadata.d.ts +248 -0
  97. package/dist/server/modules/core/controllers/docker-image-metadata.js +161 -0
  98. package/dist/server/modules/core/controllers/docker-image-metadata.js.map +1 -0
  99. package/dist/server/modules/core/controllers/docker-settings.d.ts +13 -2
  100. package/dist/server/modules/core/controllers/docker-settings.js +49 -11
  101. package/dist/server/modules/core/controllers/docker-settings.js.map +1 -1
  102. package/dist/server/modules/core/controllers/health.controller.d.ts +7 -6
  103. package/dist/server/modules/core/controllers/health.controller.js +1 -1
  104. package/dist/server/modules/core/controllers/health.controller.js.map +1 -1
  105. package/dist/server/modules/core/controllers/host-user-identity.d.ts +34 -0
  106. package/dist/server/modules/core/controllers/host-user-identity.js +23 -0
  107. package/dist/server/modules/core/controllers/host-user-identity.js.map +1 -0
  108. package/dist/server/modules/core/controllers/runtime.controller.d.ts +2 -49
  109. package/dist/server/modules/core/controllers/runtime.controller.js +2 -0
  110. package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
  111. package/dist/server/modules/core/services/preflight.service.d.ts +2 -2
  112. package/dist/server/modules/core/services/preflight.service.js +4 -3
  113. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  114. package/dist/server/modules/e2ee/services/e2ee-device-store.service.d.ts +3 -0
  115. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +12 -4
  116. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
  117. package/dist/server/modules/e2ee/services/e2ee-pairing.service.d.ts +1 -0
  118. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js +4 -0
  119. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js.map +1 -1
  120. package/dist/server/modules/e2ee/services/e2ee-trust.service.d.ts +6 -2
  121. package/dist/server/modules/e2ee/services/e2ee-trust.service.js +16 -5
  122. package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
  123. package/dist/server/modules/epic-time/epic-time.module.js +0 -2
  124. package/dist/server/modules/epic-time/epic-time.module.js.map +1 -1
  125. package/dist/server/modules/epic-time/services/agent-time-accounting.service.d.ts +3 -3
  126. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js +12 -12
  127. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js.map +1 -1
  128. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +2 -2
  129. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
  130. package/dist/server/modules/epic-time/services/epic-time.service.d.ts +3 -3
  131. package/dist/server/modules/epic-time/services/epic-time.service.js +7 -7
  132. package/dist/server/modules/epic-time/services/epic-time.service.js.map +1 -1
  133. package/dist/server/modules/epics/epics.module.js +0 -2
  134. package/dist/server/modules/epics/epics.module.js.map +1 -1
  135. package/dist/server/modules/epics/services/epic-relations.service.d.ts +1 -4
  136. package/dist/server/modules/epics/services/epic-relations.service.js +2 -22
  137. package/dist/server/modules/epics/services/epic-relations.service.js.map +1 -1
  138. package/dist/server/modules/epics/services/epics.service.d.ts +4 -4
  139. package/dist/server/modules/epics/services/epics.service.js +11 -19
  140. package/dist/server/modules/epics/services/epics.service.js.map +1 -1
  141. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +2 -2
  142. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +3 -3
  143. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
  144. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.d.ts +2 -2
  145. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js +2 -2
  146. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js.map +1 -1
  147. package/dist/server/modules/events/catalog/on-catalog-event.d.ts +5 -0
  148. package/dist/server/modules/events/catalog/on-catalog-event.js +8 -0
  149. package/dist/server/modules/events/catalog/on-catalog-event.js.map +1 -0
  150. package/dist/server/modules/events/signals/session-turn-signals.js.map +1 -0
  151. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.d.ts +0 -5
  152. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js +8 -44
  153. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js.map +1 -1
  154. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.d.ts +0 -5
  155. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js +9 -45
  156. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js.map +1 -1
  157. package/dist/server/modules/external-integrations/adapters/vendor-shared.d.ts +7 -2
  158. package/dist/server/modules/external-integrations/adapters/vendor-shared.js +36 -0
  159. package/dist/server/modules/external-integrations/adapters/vendor-shared.js.map +1 -1
  160. package/dist/server/modules/external-integrations/connections/integration-connections.service.d.ts +2 -2
  161. package/dist/server/modules/external-integrations/connections/integration-connections.service.js.map +1 -1
  162. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -2
  163. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
  164. package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +2 -2
  165. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
  166. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.d.ts +2 -2
  167. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
  168. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.d.ts +2 -2
  169. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js.map +1 -1
  170. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.d.ts +2 -2
  171. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js.map +1 -1
  172. package/dist/server/modules/file-sync/build-exclusion-suggestions.d.ts +15 -0
  173. package/dist/server/modules/file-sync/build-exclusion-suggestions.js +402 -0
  174. package/dist/server/modules/file-sync/build-exclusion-suggestions.js.map +1 -0
  175. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.d.ts +102 -0
  176. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js +21 -0
  177. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js.map +1 -0
  178. package/dist/server/modules/file-sync/file-sync-auto-fix.store.d.ts +12 -0
  179. package/dist/server/modules/file-sync/file-sync-auto-fix.store.js +73 -0
  180. package/dist/server/modules/file-sync/file-sync-auto-fix.store.js.map +1 -0
  181. package/dist/server/modules/file-sync/file-sync-conflicts.d.ts +3 -0
  182. package/dist/server/modules/file-sync/file-sync-conflicts.js +191 -0
  183. package/dist/server/modules/file-sync/file-sync-conflicts.js.map +1 -0
  184. package/dist/server/modules/file-sync/file-sync-ignores.store.d.ts +5 -1
  185. package/dist/server/modules/file-sync/file-sync-ignores.store.js +39 -8
  186. package/dist/server/modules/file-sync/file-sync-ignores.store.js.map +1 -1
  187. package/dist/server/modules/file-sync/file-sync.controller.d.ts +1 -3
  188. package/dist/server/modules/file-sync/file-sync.controller.js +5 -14
  189. package/dist/server/modules/file-sync/file-sync.controller.js.map +1 -1
  190. package/dist/server/modules/file-sync/file-sync.dto.d.ts +233 -1
  191. package/dist/server/modules/file-sync/file-sync.dto.js +77 -4
  192. package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
  193. package/dist/server/modules/file-sync/file-sync.module.js +14 -1
  194. package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
  195. package/dist/server/modules/file-sync/file-sync.service.d.ts +21 -5
  196. package/dist/server/modules/file-sync/file-sync.service.js +174 -38
  197. package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
  198. package/dist/server/modules/file-sync/git-guard.dto.d.ts +61 -0
  199. package/dist/server/modules/file-sync/git-guard.dto.js +26 -0
  200. package/dist/server/modules/file-sync/git-guard.dto.js.map +1 -0
  201. package/dist/server/modules/file-sync/home-git-guard.service.d.ts +5 -3
  202. package/dist/server/modules/file-sync/home-git-guard.service.js +50 -25
  203. package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
  204. package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +9 -0
  205. package/dist/server/modules/file-sync/host-git-guard.controller.js +64 -0
  206. package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -0
  207. package/dist/server/modules/file-sync/host-git-index.controller.d.ts +10 -0
  208. package/dist/server/modules/file-sync/host-git-index.controller.js +67 -0
  209. package/dist/server/modules/file-sync/host-git-index.controller.js.map +1 -0
  210. package/dist/server/modules/file-sync/host-sync.controller.d.ts +20 -10
  211. package/dist/server/modules/file-sync/host-sync.controller.js +117 -17
  212. package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
  213. package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +33 -0
  214. package/dist/server/modules/file-sync/ignore-pattern-matcher.js +227 -0
  215. package/dist/server/modules/file-sync/ignore-pattern-matcher.js.map +1 -0
  216. package/dist/server/modules/file-sync/project-repository.d.ts +2 -0
  217. package/dist/server/modules/file-sync/project-repository.js +20 -0
  218. package/dist/server/modules/file-sync/project-repository.js.map +1 -0
  219. package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +610 -0
  220. package/dist/server/modules/file-sync/sync-path-inspection.dto.js +100 -0
  221. package/dist/server/modules/file-sync/sync-path-inspection.dto.js.map +1 -0
  222. package/dist/server/modules/file-sync/sync-path-inspector.d.ts +12 -0
  223. package/dist/server/modules/file-sync/sync-path-inspector.js +429 -0
  224. package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -0
  225. package/dist/server/modules/file-sync/syncthing-launcher.d.ts +4 -0
  226. package/dist/server/modules/file-sync/syncthing-launcher.js +21 -1
  227. package/dist/server/modules/file-sync/syncthing-launcher.js.map +1 -1
  228. package/dist/server/modules/file-sync/syncthing-manager.service.d.ts +2 -0
  229. package/dist/server/modules/file-sync/syncthing-manager.service.js +27 -11
  230. package/dist/server/modules/file-sync/syncthing-manager.service.js.map +1 -1
  231. package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +30 -4
  232. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +69 -4
  233. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
  234. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.d.ts +3 -0
  235. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js +11 -0
  236. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js.map +1 -1
  237. package/dist/server/modules/file-sync/translate-git-ignore-rule.d.ts +3 -0
  238. package/dist/server/modules/file-sync/translate-git-ignore-rule.js +30 -0
  239. package/dist/server/modules/file-sync/translate-git-ignore-rule.js.map +1 -0
  240. package/dist/server/modules/git/dtos/git.dto.d.ts +4 -4
  241. package/dist/server/modules/git/services/git.service.d.ts +3 -2
  242. package/dist/server/modules/git/services/git.service.js +12 -0
  243. package/dist/server/modules/git/services/git.service.js.map +1 -1
  244. package/dist/server/modules/guests/guests.module.js +1 -1
  245. package/dist/server/modules/guests/guests.module.js.map +1 -1
  246. package/dist/server/modules/guests/services/guest-health.service.d.ts +3 -1
  247. package/dist/server/modules/guests/services/guest-health.service.js +15 -5
  248. package/dist/server/modules/guests/services/guest-health.service.js.map +1 -1
  249. package/dist/server/modules/guests/services/guests.service.d.ts +2 -2
  250. package/dist/server/modules/guests/services/guests.service.js +0 -2
  251. package/dist/server/modules/guests/services/guests.service.js.map +1 -1
  252. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +4 -4
  253. package/dist/server/modules/hooks/services/hooks.service.js +1 -1
  254. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  255. package/dist/server/modules/hooks/services/pending-ask-user-question.service.d.ts +3 -6
  256. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js +3 -3
  257. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js.map +1 -1
  258. package/dist/server/modules/mcp/mcp-full.module.js +0 -2
  259. package/dist/server/modules/mcp/mcp-full.module.js.map +1 -1
  260. package/dist/server/modules/mcp/services/handlers/chat-context.d.ts +2 -2
  261. package/dist/server/modules/mcp/services/handlers/chat-tools.js +1 -1
  262. package/dist/server/modules/mcp/services/handlers/chat-tools.js.map +1 -1
  263. package/dist/server/modules/mcp/services/handlers/skill-tools.js +2 -2
  264. package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -1
  265. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +3 -4
  266. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +4 -4
  267. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
  268. package/dist/server/modules/mcp/services/mcp.service.d.ts +2 -2
  269. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  270. package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +4 -4
  271. package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
  272. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js +1 -1
  273. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js.map +1 -1
  274. package/dist/server/modules/profiles/controllers/profiles.controller.d.ts +7 -31
  275. package/dist/server/modules/profiles/controllers/profiles.controller.js +10 -13
  276. package/dist/server/modules/profiles/controllers/profiles.controller.js.map +1 -1
  277. package/dist/server/modules/profiles/dto.d.ts +17 -0
  278. package/dist/server/modules/profiles/dto.js.map +1 -1
  279. package/dist/server/modules/profiles/profiles.module.js +1 -2
  280. package/dist/server/modules/profiles/profiles.module.js.map +1 -1
  281. package/dist/server/modules/profiles/services/provider-configs.service.d.ts +1 -4
  282. package/dist/server/modules/profiles/services/provider-configs.service.js +3 -12
  283. package/dist/server/modules/profiles/services/provider-configs.service.js.map +1 -1
  284. package/dist/server/modules/project-communication/project-communication.module.js +1 -2
  285. package/dist/server/modules/project-communication/project-communication.module.js.map +1 -1
  286. package/dist/server/modules/project-communication/project-communication.service.d.ts +4 -4
  287. package/dist/server/modules/project-communication/project-communication.service.js +8 -8
  288. package/dist/server/modules/project-communication/project-communication.service.js.map +1 -1
  289. package/dist/server/modules/projects/controllers/projects.controller.d.ts +4 -17
  290. package/dist/server/modules/projects/controllers/projects.controller.js +2 -9
  291. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  292. package/dist/server/modules/projects/dtos/project-presets.dto.d.ts +5 -0
  293. package/dist/server/modules/projects/dtos/project-presets.dto.js +3 -0
  294. package/dist/server/modules/projects/dtos/project-presets.dto.js.map +1 -0
  295. package/dist/server/modules/projects/helpers/project-export.d.ts +2 -2
  296. package/dist/server/modules/projects/helpers/project-export.js.map +1 -1
  297. package/dist/server/modules/projects/helpers/project-import.d.ts +3 -2
  298. package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
  299. package/dist/server/modules/projects/helpers/project-presets.helpers.d.ts +2 -2
  300. package/dist/server/modules/projects/helpers/project-presets.helpers.js.map +1 -1
  301. package/dist/server/modules/projects/helpers/template-loader.d.ts +3 -2
  302. package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
  303. package/dist/server/modules/projects/projects.module.js +0 -2
  304. package/dist/server/modules/projects/projects.module.js.map +1 -1
  305. package/dist/server/modules/projects/services/project-provider-provisioning.service.d.ts +2 -2
  306. package/dist/server/modules/projects/services/project-provider-provisioning.service.js.map +1 -1
  307. package/dist/server/modules/projects/services/project-registry-import.service.d.ts +2 -2
  308. package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
  309. package/dist/server/modules/projects/services/project-template-upgrade.service.d.ts +3 -3
  310. package/dist/server/modules/projects/services/project-template-upgrade.service.js +6 -7
  311. package/dist/server/modules/projects/services/project-template-upgrade.service.js.map +1 -1
  312. package/dist/server/modules/projects/services/projects.service.d.ts +4 -4
  313. package/dist/server/modules/projects/services/projects.service.js +7 -9
  314. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  315. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.d.ts +2 -2
  316. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.js.map +1 -1
  317. package/dist/server/modules/projects/template-codec/codecs/teams.codec.d.ts +2 -2
  318. package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
  319. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.d.ts +1 -1
  320. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js.map +1 -1
  321. package/dist/server/modules/projects/template-codec/template-section-codec.d.ts +3 -3
  322. package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +1 -3
  323. package/dist/server/modules/prompts/controllers/prompts.controller.js +3 -8
  324. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
  325. package/dist/server/modules/prompts/prompts.module.js +1 -2
  326. package/dist/server/modules/prompts/prompts.module.js.map +1 -1
  327. package/dist/server/modules/providers/adapters/antigravity.adapter.d.ts +1 -1
  328. package/dist/server/modules/providers/adapters/antigravity.adapter.js +2 -1
  329. package/dist/server/modules/providers/adapters/antigravity.adapter.js.map +1 -1
  330. package/dist/server/modules/providers/adapters/antigravity.traits.d.ts +2 -0
  331. package/dist/server/modules/providers/adapters/antigravity.traits.js +9 -0
  332. package/dist/server/modules/providers/adapters/antigravity.traits.js.map +1 -0
  333. package/dist/server/modules/providers/adapters/capabilities/hook.capability.d.ts +0 -1
  334. package/dist/server/modules/providers/adapters/capabilities/project-provisioning.capability.d.ts +0 -1
  335. package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +0 -1
  336. package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
  337. package/dist/server/modules/providers/adapters/claude.adapter.d.ts +1 -3
  338. package/dist/server/modules/providers/adapters/claude.adapter.js +5 -8
  339. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
  340. package/dist/server/modules/providers/adapters/claude.traits.d.ts +2 -0
  341. package/dist/server/modules/providers/adapters/claude.traits.js +9 -0
  342. package/dist/server/modules/providers/adapters/claude.traits.js.map +1 -0
  343. package/dist/server/modules/providers/adapters/codex.adapter.d.ts +1 -2
  344. package/dist/server/modules/providers/adapters/codex.adapter.js +3 -5
  345. package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
  346. package/dist/server/modules/providers/adapters/codex.traits.d.ts +2 -0
  347. package/dist/server/modules/providers/adapters/codex.traits.js +9 -0
  348. package/dist/server/modules/providers/adapters/codex.traits.js.map +1 -0
  349. package/dist/server/modules/providers/adapters/copilot.adapter.d.ts +1 -3
  350. package/dist/server/modules/providers/adapters/copilot.adapter.js +3 -6
  351. package/dist/server/modules/providers/adapters/copilot.adapter.js.map +1 -1
  352. package/dist/server/modules/providers/adapters/copilot.traits.d.ts +2 -0
  353. package/dist/server/modules/providers/adapters/copilot.traits.js +9 -0
  354. package/dist/server/modules/providers/adapters/copilot.traits.js.map +1 -0
  355. package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +1 -1
  356. package/dist/server/modules/providers/adapters/opencode.adapter.js +3 -4
  357. package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -1
  358. package/dist/server/modules/providers/adapters/opencode.traits.d.ts +2 -0
  359. package/dist/server/modules/providers/adapters/opencode.traits.js +9 -0
  360. package/dist/server/modules/providers/adapters/opencode.traits.js.map +1 -0
  361. package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +2 -2
  362. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
  363. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +2 -0
  364. package/dist/server/modules/providers/adapters/provider-traits.d.ts +9 -0
  365. package/dist/server/modules/providers/adapters/provider-traits.js +28 -0
  366. package/dist/server/modules/providers/adapters/provider-traits.js.map +1 -0
  367. package/dist/server/modules/providers/controllers/provider-efforts.controller.d.ts +9 -7
  368. package/dist/server/modules/providers/controllers/provider-efforts.controller.js.map +1 -1
  369. package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +1 -1
  370. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
  371. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.d.ts +2 -2
  372. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.js.map +1 -1
  373. package/dist/server/modules/providers/controllers/providers.controller.d.ts +1 -1
  374. package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
  375. package/dist/server/modules/providers/provider-traits.types.d.ts +5 -0
  376. package/dist/server/modules/providers/provider-traits.types.js +3 -0
  377. package/dist/server/modules/providers/provider-traits.types.js.map +1 -0
  378. package/dist/server/modules/providers/providers.module.js +0 -2
  379. package/dist/server/modules/providers/providers.module.js.map +1 -1
  380. package/dist/server/modules/providers/services/mcp-provider-registration.service.d.ts +2 -2
  381. package/dist/server/modules/providers/services/mcp-provider-registration.service.js +2 -1
  382. package/dist/server/modules/providers/services/mcp-provider-registration.service.js.map +1 -1
  383. package/dist/server/modules/providers/services/provider-cli-installer.service.d.ts +1 -1
  384. package/dist/server/modules/providers/services/provider-cli-installer.service.js.map +1 -1
  385. package/dist/server/modules/providers/services/provider-discovery.service.d.ts +1 -1
  386. package/dist/server/modules/providers/services/provider-discovery.service.js.map +1 -1
  387. package/dist/server/modules/providers/services/provider-effort-seeding.service.d.ts +1 -1
  388. package/dist/server/modules/providers/services/provider-effort-seeding.service.js.map +1 -1
  389. package/dist/server/modules/providers/services/provider-mcp-ensure.service.d.ts +4 -4
  390. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js +8 -7
  391. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js.map +1 -1
  392. package/dist/server/modules/providers/services/provider-plugin-policy.service.d.ts +2 -2
  393. package/dist/server/modules/providers/services/provider-plugin-policy.service.js.map +1 -1
  394. package/dist/server/modules/providers/services/provider-plugins.service.d.ts +1 -1
  395. package/dist/server/modules/providers/services/provider-plugins.service.js.map +1 -1
  396. package/dist/server/modules/providers/services/provider-project-sync.service.d.ts +4 -4
  397. package/dist/server/modules/providers/services/provider-project-sync.service.js +6 -6
  398. package/dist/server/modules/providers/services/provider-project-sync.service.js.map +1 -1
  399. package/dist/server/modules/providers/services/provider-state-manager.service.d.ts +2 -2
  400. package/dist/server/modules/providers/services/provider-state-manager.service.js +1 -1
  401. package/dist/server/modules/providers/services/provider-state-manager.service.js.map +1 -1
  402. package/dist/server/modules/providers/utils/claude-config.js.map +1 -0
  403. package/dist/server/modules/providers/utils/codex-config.js.map +1 -0
  404. package/dist/server/modules/providers/utils/env-builder.js.map +1 -0
  405. package/dist/server/modules/{sessions → providers}/utils/profile-options.d.ts +1 -1
  406. package/dist/server/modules/providers/utils/profile-options.js.map +1 -0
  407. package/dist/server/modules/registry/controllers/registry.controller.d.ts +2 -2
  408. package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
  409. package/dist/server/modules/registry/controllers/templates.controller.d.ts +3 -3
  410. package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +3 -1
  411. package/dist/server/modules/registry/services/registry-orchestration.service.js +14 -2
  412. package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
  413. package/dist/server/modules/remotes/admission/project-write-admission.module.js +3 -5
  414. package/dist/server/modules/remotes/admission/project-write-admission.module.js.map +1 -1
  415. package/dist/server/modules/remotes/admission/project-write-admission.service.d.ts +6 -17
  416. package/dist/server/modules/remotes/admission/project-write-admission.service.js +11 -62
  417. package/dist/server/modules/remotes/admission/project-write-admission.service.js.map +1 -1
  418. package/dist/server/modules/remotes/connect-choices.controller.d.ts +9 -0
  419. package/dist/server/modules/remotes/connect-choices.controller.js +54 -0
  420. package/dist/server/modules/remotes/connect-choices.controller.js.map +1 -0
  421. package/dist/server/modules/remotes/connect-choices.dto.d.ts +52 -0
  422. package/dist/server/modules/remotes/connect-choices.dto.js +19 -0
  423. package/dist/server/modules/remotes/connect-choices.dto.js.map +1 -0
  424. package/dist/server/modules/remotes/connect-choices.store.d.ts +12 -0
  425. package/dist/server/modules/remotes/connect-choices.store.js +95 -0
  426. package/dist/server/modules/remotes/connect-choices.store.js.map +1 -0
  427. package/dist/server/modules/remotes/contract/host-routes.d.ts +27536 -0
  428. package/dist/server/modules/remotes/contract/host-routes.js +405 -0
  429. package/dist/server/modules/remotes/contract/host-routes.js.map +1 -0
  430. package/dist/server/modules/remotes/controllers/remotes.controller.d.ts +3 -0
  431. package/dist/server/modules/remotes/controllers/remotes.controller.js +9 -1
  432. package/dist/server/modules/remotes/controllers/remotes.controller.js.map +1 -1
  433. package/dist/server/modules/remotes/docker/docker-compose-user-fix.d.ts +3 -0
  434. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js +212 -0
  435. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js.map +1 -0
  436. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.d.ts +27 -0
  437. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js +185 -0
  438. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js.map +1 -0
  439. package/dist/server/modules/remotes/docker/docker-copy-back.d.ts +15 -1
  440. package/dist/server/modules/remotes/docker/docker-copy-back.dto.d.ts +8 -1
  441. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js +3 -1
  442. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js.map +1 -1
  443. package/dist/server/modules/remotes/docker/docker-copy-back.js +770 -144
  444. package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
  445. package/dist/server/modules/remotes/docker/docker-data-groups.d.ts +3 -3
  446. package/dist/server/modules/remotes/docker/docker-data-groups.js +20 -6
  447. package/dist/server/modules/remotes/docker/docker-data-groups.js.map +1 -1
  448. package/dist/server/modules/remotes/docker/docker-data-representation.d.ts +9 -0
  449. package/dist/server/modules/remotes/docker/docker-data-representation.js +85 -0
  450. package/dist/server/modules/remotes/docker/docker-data-representation.js.map +1 -0
  451. package/dist/server/modules/remotes/docker/docker-handoff.d.ts +9 -4
  452. package/dist/server/modules/remotes/docker/docker-handoff.js +396 -66
  453. package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
  454. package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +40 -7
  455. package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
  456. package/dist/server/modules/remotes/docker/docker-ownership.d.ts +26 -0
  457. package/dist/server/modules/remotes/docker/docker-ownership.js +182 -0
  458. package/dist/server/modules/remotes/docker/docker-ownership.js.map +1 -0
  459. package/dist/server/modules/remotes/docker/docker-plan-files.d.ts +1 -0
  460. package/dist/server/modules/remotes/docker/docker-plan-files.js +4 -0
  461. package/dist/server/modules/remotes/docker/docker-plan-files.js.map +1 -1
  462. package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +6 -3
  463. package/dist/server/modules/remotes/docker/docker-plan-fit.js +26 -8
  464. package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
  465. package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +7 -3
  466. package/dist/server/modules/remotes/docker/docker-plan-policy.js +287 -43
  467. package/dist/server/modules/remotes/docker/docker-plan-policy.js.map +1 -1
  468. package/dist/server/modules/remotes/docker/docker-plan-source.service.d.ts +57 -8
  469. package/dist/server/modules/remotes/docker/docker-plan-source.service.js +477 -53
  470. package/dist/server/modules/remotes/docker/docker-plan-source.service.js.map +1 -1
  471. package/dist/server/modules/remotes/docker/docker-plan.controller.d.ts +4 -1
  472. package/dist/server/modules/remotes/docker/docker-plan.controller.js +53 -0
  473. package/dist/server/modules/remotes/docker/docker-plan.controller.js.map +1 -1
  474. package/dist/server/modules/remotes/docker/docker-plan.dto.d.ts +158 -15
  475. package/dist/server/modules/remotes/docker/docker-plan.dto.js +12 -2
  476. package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
  477. package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +16 -7
  478. package/dist/server/modules/remotes/docker/docker-plan.service.js +261 -19
  479. package/dist/server/modules/remotes/docker/docker-plan.service.js.map +1 -1
  480. package/dist/server/modules/remotes/docker/docker-project-compose.d.ts +7 -0
  481. package/dist/server/modules/remotes/docker/docker-project-compose.js +29 -0
  482. package/dist/server/modules/remotes/docker/docker-project-compose.js.map +1 -0
  483. package/dist/server/modules/remotes/docker/docker-project-resources.d.ts +14 -0
  484. package/dist/server/modules/remotes/docker/docker-project-resources.js +33 -0
  485. package/dist/server/modules/remotes/docker/docker-project-resources.js.map +1 -0
  486. package/dist/server/modules/remotes/dtos/remote.dto.d.ts +2 -0
  487. package/dist/server/modules/remotes/dtos/remote.dto.js.map +1 -1
  488. package/dist/server/modules/remotes/git-owner.store.d.ts +13 -0
  489. package/dist/server/modules/remotes/git-owner.store.js +69 -0
  490. package/dist/server/modules/remotes/git-owner.store.js.map +1 -0
  491. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js +3 -3
  492. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js.map +1 -1
  493. package/dist/server/modules/remotes/host/host-api-key.module.js +3 -2
  494. package/dist/server/modules/remotes/host/host-api-key.module.js.map +1 -1
  495. package/dist/server/modules/remotes/host/host-api-key.service.d.ts +6 -4
  496. package/dist/server/modules/remotes/host/host-api-key.service.js +30 -10
  497. package/dist/server/modules/remotes/host/host-api-key.service.js.map +1 -1
  498. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.d.ts +14 -0
  499. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js +91 -0
  500. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js.map +1 -0
  501. package/dist/server/modules/remotes/host/host-docker.controller.d.ts +8 -0
  502. package/dist/server/modules/remotes/host/host-docker.controller.js +22 -6
  503. package/dist/server/modules/remotes/host/host-docker.controller.js.map +1 -1
  504. package/dist/server/modules/remotes/host/host-docker.dto.d.ts +647 -0
  505. package/dist/server/modules/remotes/host/host-docker.dto.js +58 -8
  506. package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
  507. package/dist/server/modules/remotes/host/host-docker.service.d.ts +24 -5
  508. package/dist/server/modules/remotes/host/host-docker.service.js +317 -146
  509. package/dist/server/modules/remotes/host/host-docker.service.js.map +1 -1
  510. package/dist/server/modules/remotes/host/host-helper.dto.d.ts +46 -0
  511. package/dist/server/modules/remotes/host/host-helper.dto.js +56 -0
  512. package/dist/server/modules/remotes/host/host-helper.dto.js.map +1 -0
  513. package/dist/server/modules/remotes/host/host-helper.module.d.ts +2 -0
  514. package/dist/server/modules/remotes/host/host-helper.module.js +23 -0
  515. package/dist/server/modules/remotes/host/host-helper.module.js.map +1 -0
  516. package/dist/server/modules/remotes/host/host-helper.service.d.ts +1 -39
  517. package/dist/server/modules/remotes/host/host-helper.service.js +5 -18
  518. package/dist/server/modules/remotes/host/host-helper.service.js.map +1 -1
  519. package/dist/server/modules/remotes/host/host-ipv4-routes.d.ts +4 -0
  520. package/dist/server/modules/remotes/host/host-ipv4-routes.js +43 -0
  521. package/dist/server/modules/remotes/host/host-ipv4-routes.js.map +1 -0
  522. package/dist/server/modules/remotes/host/host-provider-auth.controller.d.ts +4 -2
  523. package/dist/server/modules/remotes/host/host-provider-auth.controller.js +3 -29
  524. package/dist/server/modules/remotes/host/host-provider-auth.controller.js.map +1 -1
  525. package/dist/server/modules/remotes/host/host-provider-auth.dto.d.ts +67 -0
  526. package/dist/server/modules/remotes/host/host-provider-auth.dto.js +32 -0
  527. package/dist/server/modules/remotes/host/host-provider-auth.dto.js.map +1 -0
  528. package/dist/server/modules/remotes/host/host-provider-auth.service.d.ts +1 -8
  529. package/dist/server/modules/remotes/host/host-provider-auth.service.js.map +1 -1
  530. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.d.ts +5 -37
  531. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js +5 -5
  532. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js.map +1 -1
  533. package/dist/server/modules/remotes/host/host-skill-settings.controller.d.ts +5 -9
  534. package/dist/server/modules/remotes/host/host-skill-settings.controller.js +2 -1
  535. package/dist/server/modules/remotes/host/host-skill-settings.controller.js.map +1 -1
  536. package/dist/server/modules/remotes/host/host-skill-settings.service.d.ts +2 -2
  537. package/dist/server/modules/remotes/host/host-skill-settings.service.js.map +1 -1
  538. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js +2 -4
  539. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js.map +1 -1
  540. package/dist/server/modules/remotes/host/host-ssh-keys.dto.d.ts +8 -0
  541. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js +7 -0
  542. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js.map +1 -0
  543. package/dist/server/modules/remotes/host/host-transcripts.controller.d.ts +3 -2
  544. package/dist/server/modules/remotes/host/host-transcripts.controller.js +2 -1
  545. package/dist/server/modules/remotes/host/host-transcripts.controller.js.map +1 -1
  546. package/dist/server/modules/remotes/host/host-update.controller.d.ts +6 -11
  547. package/dist/server/modules/remotes/host/host-update.controller.js +5 -42
  548. package/dist/server/modules/remotes/host/host-update.controller.js.map +1 -1
  549. package/dist/server/modules/remotes/host/host.controller.d.ts +10 -14
  550. package/dist/server/modules/remotes/host/host.controller.js.map +1 -1
  551. package/dist/server/modules/remotes/host/project-freeze.service.d.ts +4 -5
  552. package/dist/server/modules/remotes/host/project-freeze.service.js +14 -20
  553. package/dist/server/modules/remotes/host/project-freeze.service.js.map +1 -1
  554. package/dist/server/modules/remotes/host/provider-baseline.service.js +1 -1
  555. package/dist/server/modules/remotes/host/provider-baseline.service.js.map +1 -1
  556. package/dist/server/modules/remotes/host-image.d.ts +1 -1
  557. package/dist/server/modules/remotes/host-image.js +1 -1
  558. package/dist/server/modules/remotes/host-install/host-install-block.d.ts +1 -0
  559. package/dist/server/modules/remotes/host-install/host-install-block.js +76 -2
  560. package/dist/server/modules/remotes/host-install/host-install-block.js.map +1 -1
  561. package/dist/server/modules/remotes/host-install/host-install.service.d.ts +0 -1
  562. package/dist/server/modules/remotes/host-install/host-install.service.js +9 -26
  563. package/dist/server/modules/remotes/host-install/host-install.service.js.map +1 -1
  564. package/dist/server/modules/remotes/operations/attach.operation.d.ts +5 -1
  565. package/dist/server/modules/remotes/operations/attach.operation.js +40 -5
  566. package/dist/server/modules/remotes/operations/attach.operation.js.map +1 -1
  567. package/dist/server/modules/remotes/operations/claim.operation.d.ts +1 -0
  568. package/dist/server/modules/remotes/operations/claim.operation.js +6 -1
  569. package/dist/server/modules/remotes/operations/claim.operation.js.map +1 -1
  570. package/dist/server/modules/remotes/operations/detach.operation.d.ts +9 -2
  571. package/dist/server/modules/remotes/operations/detach.operation.js +22 -4
  572. package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
  573. package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +735 -4
  574. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +48 -1
  575. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js.map +1 -1
  576. package/dist/server/modules/remotes/operations/file-sync-handoff.d.ts +29 -3
  577. package/dist/server/modules/remotes/operations/file-sync-handoff.js +477 -50
  578. package/dist/server/modules/remotes/operations/file-sync-handoff.js.map +1 -1
  579. package/dist/server/modules/remotes/operations/force-sync.operation.d.ts +39 -0
  580. package/dist/server/modules/remotes/operations/force-sync.operation.js +177 -0
  581. package/dist/server/modules/remotes/operations/force-sync.operation.js.map +1 -0
  582. package/dist/server/modules/remotes/operations/git-owner.dto.d.ts +83 -0
  583. package/dist/server/modules/remotes/operations/git-owner.dto.js +25 -0
  584. package/dist/server/modules/remotes/operations/git-owner.dto.js.map +1 -0
  585. package/dist/server/modules/remotes/operations/git-owner.operation.d.ts +35 -0
  586. package/dist/server/modules/remotes/operations/git-owner.operation.js +216 -0
  587. package/dist/server/modules/remotes/operations/git-owner.operation.js.map +1 -0
  588. package/dist/server/modules/remotes/operations/remote-host.client.d.ts +47 -491
  589. package/dist/server/modules/remotes/operations/remote-host.client.js +192 -414
  590. package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
  591. package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +38 -12
  592. package/dist/server/modules/remotes/operations/remote-operation.dto.js +5 -1
  593. package/dist/server/modules/remotes/operations/remote-operation.dto.js.map +1 -1
  594. package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +5 -1
  595. package/dist/server/modules/remotes/operations/remote-operation.runner.js +74 -27
  596. package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
  597. package/dist/server/modules/remotes/operations/remote-operation.types.d.ts +4 -1
  598. package/dist/server/modules/remotes/operations/remote-operation.types.js.map +1 -1
  599. package/dist/server/modules/remotes/operations/remote-operations.controller.d.ts +5 -0
  600. package/dist/server/modules/remotes/operations/remote-operations.controller.js +56 -0
  601. package/dist/server/modules/remotes/operations/remote-operations.controller.js.map +1 -1
  602. package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +17 -2
  603. package/dist/server/modules/remotes/operations/remote-operations.service.js +155 -5
  604. package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
  605. package/dist/server/modules/remotes/operations/update-logins.operation.d.ts +2 -4
  606. package/dist/server/modules/remotes/operations/update-logins.operation.js +3 -18
  607. package/dist/server/modules/remotes/operations/update-logins.operation.js.map +1 -1
  608. package/dist/server/modules/remotes/operations/vm-operations.dto.d.ts +7 -7
  609. package/dist/server/modules/remotes/ports/remote-health.port.d.ts +2 -0
  610. package/dist/server/modules/remotes/ports/remote-health.port.js.map +1 -1
  611. package/dist/server/modules/remotes/remotes.module.js +24 -2
  612. package/dist/server/modules/remotes/remotes.module.js.map +1 -1
  613. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.d.ts +2 -2
  614. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js +2 -13
  615. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js.map +1 -1
  616. package/dist/server/modules/remotes/services/remote-health.service.js +5 -0
  617. package/dist/server/modules/remotes/services/remote-health.service.js.map +1 -1
  618. package/dist/server/modules/remotes/services/remote-skill-settings.service.d.ts +2 -2
  619. package/dist/server/modules/remotes/services/remote-skill-settings.service.js.map +1 -1
  620. package/dist/server/modules/remotes/sync/file-sync-failures.service.d.ts +18 -0
  621. package/dist/server/modules/remotes/sync/file-sync-failures.service.js +155 -0
  622. package/dist/server/modules/remotes/sync/file-sync-failures.service.js.map +1 -0
  623. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.d.ts +14 -0
  624. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js +99 -0
  625. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js.map +1 -0
  626. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.d.ts +17 -0
  627. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +124 -0
  628. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js.map +1 -0
  629. package/dist/server/modules/remotes/sync/project-file-sync.controller.d.ts +27 -0
  630. package/dist/server/modules/remotes/sync/project-file-sync.controller.js +146 -0
  631. package/dist/server/modules/remotes/sync/project-file-sync.controller.js.map +1 -0
  632. package/dist/server/modules/remotes/sync/remote-file-sync.dto.d.ts +70 -0
  633. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js +16 -0
  634. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js.map +1 -0
  635. package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +31 -1
  636. package/dist/server/modules/remotes/sync/remote-file-sync.service.js +440 -38
  637. package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
  638. package/dist/server/modules/remotes/sync/remote-live-sync.service.d.ts +2 -0
  639. package/dist/server/modules/remotes/sync/remote-live-sync.service.js +26 -12
  640. package/dist/server/modules/remotes/sync/remote-live-sync.service.js.map +1 -1
  641. package/dist/server/modules/remotes/time/project-time-settler.dto.d.ts +21 -0
  642. package/dist/server/modules/remotes/time/project-time-settler.dto.js +12 -0
  643. package/dist/server/modules/remotes/time/project-time-settler.dto.js.map +1 -0
  644. package/dist/server/modules/remotes/time/project-time-settler.service.d.ts +2 -21
  645. package/dist/server/modules/remotes/time/project-time-settler.service.js +1 -9
  646. package/dist/server/modules/remotes/time/project-time-settler.service.js.map +1 -1
  647. package/dist/server/modules/remotes/transcripts/transcript-transfer.dto.d.ts +4 -4
  648. package/dist/server/modules/remotes/transport/host-transport.d.ts +27 -0
  649. package/dist/server/modules/remotes/transport/host-transport.js +105 -0
  650. package/dist/server/modules/remotes/transport/host-transport.js.map +1 -0
  651. package/dist/server/modules/remotes/vm-user-identity.d.ts +30 -0
  652. package/dist/server/modules/remotes/vm-user-identity.js +52 -0
  653. package/dist/server/modules/remotes/vm-user-identity.js.map +1 -0
  654. package/dist/server/modules/reviews/reviews.module.js +1 -9
  655. package/dist/server/modules/reviews/reviews.module.js.map +1 -1
  656. package/dist/server/modules/reviews/services/review-suggestion-applier.service.d.ts +4 -4
  657. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js +6 -6
  658. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js.map +1 -1
  659. package/dist/server/modules/reviews/services/reviews.service.d.ts +4 -4
  660. package/dist/server/modules/reviews/services/reviews.service.js +7 -12
  661. package/dist/server/modules/reviews/services/reviews.service.js.map +1 -1
  662. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js +2 -2
  663. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js.map +1 -1
  664. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.d.ts +11 -12
  665. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js +37 -25
  666. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js.map +1 -1
  667. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.d.ts +11 -9
  668. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +48 -2
  669. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
  670. package/dist/server/modules/runtime-context-capture/index.d.ts +3 -2
  671. package/dist/server/modules/runtime-context-capture/index.js.map +1 -1
  672. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.d.ts +41 -0
  673. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js +3 -0
  674. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js.map +1 -0
  675. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js +1 -2
  676. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js.map +1 -1
  677. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.d.ts +4 -4
  678. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js +6 -6
  679. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js.map +1 -1
  680. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.d.ts +2 -3
  681. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js +9 -12
  682. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js.map +1 -1
  683. package/dist/server/modules/seeders/services/data-seeder.service.d.ts +2 -3
  684. package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
  685. package/dist/server/modules/seeders/types/seeder.types.d.ts +2 -2
  686. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +1 -1
  687. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +4 -2
  688. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +3 -0
  689. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  690. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +4 -2
  691. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +3 -0
  692. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  693. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +1 -1
  694. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +2 -0
  695. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
  696. package/dist/server/modules/session-reader/data/pricing.json +3228 -3014
  697. package/dist/server/modules/session-reader/services/transcript-persistence.listener.d.ts +8 -18
  698. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +89 -172
  699. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -1
  700. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +12 -12
  701. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  702. package/dist/server/modules/session-reader/session-reader.module.js +2 -0
  703. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
  704. package/dist/server/modules/session-terminal-runtime/dtos/active-session-info.dto.js.map +1 -0
  705. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js +2 -1
  706. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js.map +1 -1
  707. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.d.ts +8 -4
  708. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js +47 -18
  709. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js.map +1 -1
  710. package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +3 -5
  711. package/dist/server/modules/sessions/controllers/sessions.controller.js +8 -11
  712. package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
  713. package/dist/server/modules/sessions/services/active-session-lookup.service.d.ts +4 -5
  714. package/dist/server/modules/sessions/services/active-session-lookup.service.js +9 -66
  715. package/dist/server/modules/sessions/services/active-session-lookup.service.js.map +1 -1
  716. package/dist/server/modules/sessions/services/message-pool.types.d.ts +1 -1
  717. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +2 -2
  718. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +7 -2
  719. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
  720. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.d.ts +3 -5
  721. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +56 -95
  722. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -1
  723. package/dist/server/modules/sessions/services/session-launcher-facade.service.d.ts +1 -1
  724. package/dist/server/modules/sessions/services/session-launcher-facade.service.js +1 -1
  725. package/dist/server/modules/sessions/services/session-launcher-facade.service.js.map +1 -1
  726. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.d.ts +3 -3
  727. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js +8 -8
  728. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js.map +1 -1
  729. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +4 -0
  730. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +10 -2
  731. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  732. package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.d.ts +1 -1
  733. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.d.ts +7 -7
  734. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +30 -29
  735. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  736. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +4 -2
  737. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +8 -9
  738. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  739. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.d.ts +3 -3
  740. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js +7 -7
  741. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js.map +1 -1
  742. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +4 -7
  743. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +111 -211
  744. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  745. package/dist/server/modules/sessions/services/sessions.service.d.ts +8 -10
  746. package/dist/server/modules/sessions/services/sessions.service.js +26 -158
  747. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  748. package/dist/server/modules/sessions/sessions-lifecycle.module.js +2 -2
  749. package/dist/server/modules/sessions/sessions-lifecycle.module.js.map +1 -1
  750. package/dist/server/modules/sessions/sessions-read.module.js +2 -2
  751. package/dist/server/modules/sessions/sessions-read.module.js.map +1 -1
  752. package/dist/server/modules/sessions/sessions.module.js +7 -5
  753. package/dist/server/modules/sessions/sessions.module.js.map +1 -1
  754. package/dist/server/modules/settings/controllers/settings.controller.d.ts +3 -4
  755. package/dist/server/modules/settings/controllers/settings.controller.js +6 -31
  756. package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -1
  757. package/dist/server/modules/settings/dtos/settings.dto.d.ts +12 -12
  758. package/dist/server/modules/settings/local/delegates/core-settings.delegate.d.ts +5 -0
  759. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +36 -2
  760. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
  761. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.d.ts +4 -0
  762. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js +30 -23
  763. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js.map +1 -1
  764. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.d.ts +2 -0
  765. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js +2 -0
  766. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js.map +1 -1
  767. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.d.ts +6 -0
  768. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js +26 -0
  769. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js.map +1 -1
  770. package/dist/server/modules/settings/services/settings.service.d.ts +5 -2
  771. package/dist/server/modules/settings/services/settings.service.js +14 -4
  772. package/dist/server/modules/settings/services/settings.service.js.map +1 -1
  773. package/dist/server/modules/settings/settings.module.js +1 -2
  774. package/dist/server/modules/settings/settings.module.js.map +1 -1
  775. package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js +5 -5
  776. package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js.map +1 -1
  777. package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js +5 -5
  778. package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js.map +1 -1
  779. package/dist/server/modules/skills/adapters/github-skill-source.base.js +4 -3
  780. package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
  781. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +5 -5
  782. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -1
  783. package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js +5 -5
  784. package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js.map +1 -1
  785. package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js +5 -5
  786. package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js.map +1 -1
  787. package/dist/server/modules/skills/adapters/skill-source.adapter.d.ts +5 -0
  788. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.d.ts +5 -0
  789. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js +75 -0
  790. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js.map +1 -0
  791. package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js +5 -5
  792. package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js.map +1 -1
  793. package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js +5 -5
  794. package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js.map +1 -1
  795. package/dist/server/modules/skills/controllers/skills.controller.js +2 -2
  796. package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
  797. package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +5 -5
  798. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js +9 -4
  799. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
  800. package/dist/server/modules/skills/services/skill-sync.service.d.ts +3 -3
  801. package/dist/server/modules/skills/services/skill-sync.service.js +32 -6
  802. package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
  803. package/dist/server/modules/skills/services/skill-sync.types.d.ts +3 -0
  804. package/dist/server/modules/skills/services/skills.service.d.ts +3 -1
  805. package/dist/server/modules/skills/services/skills.service.js +15 -2
  806. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  807. package/dist/server/modules/statuses/controllers/statuses.controller.d.ts +3 -3
  808. package/dist/server/modules/statuses/controllers/statuses.controller.js +8 -10
  809. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
  810. package/dist/server/modules/statuses/statuses.module.js +1 -2
  811. package/dist/server/modules/statuses/statuses.module.js.map +1 -1
  812. package/dist/server/modules/storage/db/db-file-permissions.d.ts +1 -0
  813. package/dist/server/modules/storage/db/db-file-permissions.js +24 -0
  814. package/dist/server/modules/storage/db/db-file-permissions.js.map +1 -0
  815. package/dist/server/modules/storage/db/db.provider.js +2 -0
  816. package/dist/server/modules/storage/db/db.provider.js.map +1 -1
  817. package/dist/server/modules/storage/db/migrate.js +2 -0
  818. package/dist/server/modules/storage/db/migrate.js.map +1 -1
  819. package/dist/server/modules/storage/db/schema.d.ts +2 -2
  820. package/dist/server/modules/storage/db/schema.js +2 -0
  821. package/dist/server/modules/storage/db/schema.js.map +1 -1
  822. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +0 -1
  823. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  824. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.d.ts +2 -2
  825. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js.map +1 -1
  826. package/dist/server/modules/storage/local/delegates/agent.delegate.d.ts +2 -2
  827. package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -1
  828. package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +5 -6
  829. package/dist/server/modules/storage/local/delegates/epic.delegate.js +3 -9
  830. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
  831. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +16 -15
  832. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +13 -13
  833. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
  834. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.d.ts +11 -10
  835. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +9 -9
  836. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
  837. package/dist/server/modules/storage/local/delegates/guest.delegate.d.ts +2 -1
  838. package/dist/server/modules/storage/local/delegates/guest.delegate.js.map +1 -1
  839. package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +3 -4
  840. package/dist/server/modules/storage/local/delegates/integration.delegate.js +1 -1
  841. package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
  842. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.d.ts +3 -16
  843. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js.map +1 -1
  844. package/dist/server/modules/storage/local/delegates/project-host.delegate.d.ts +2 -2
  845. package/dist/server/modules/storage/local/delegates/project-host.delegate.js.map +1 -1
  846. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.d.ts +2 -2
  847. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js +1 -1
  848. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js.map +1 -1
  849. package/dist/server/modules/storage/local/delegates/project-replica.delegate.d.ts +2 -2
  850. package/dist/server/modules/storage/local/delegates/project-replica.delegate.js.map +1 -1
  851. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.d.ts +2 -1
  852. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.js.map +1 -1
  853. package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +4 -2
  854. package/dist/server/modules/storage/local/delegates/project.delegate.js +4 -0
  855. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  856. package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +3 -2
  857. package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -1
  858. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.d.ts +2 -1
  859. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.js.map +1 -1
  860. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.d.ts +2 -1
  861. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.js.map +1 -1
  862. package/dist/server/modules/storage/local/delegates/provider-model.delegate.d.ts +2 -1
  863. package/dist/server/modules/storage/local/delegates/provider-model.delegate.js.map +1 -1
  864. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.d.ts +2 -1
  865. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.js.map +1 -1
  866. package/dist/server/modules/storage/local/delegates/provider.delegate.d.ts +3 -3
  867. package/dist/server/modules/storage/local/delegates/provider.delegate.js +9 -23
  868. package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -1
  869. package/dist/server/modules/storage/local/delegates/record.delegate.d.ts +2 -2
  870. package/dist/server/modules/storage/local/delegates/remote.delegate.d.ts +2 -2
  871. package/dist/server/modules/storage/local/delegates/remote.delegate.js.map +1 -1
  872. package/dist/server/modules/storage/local/delegates/review.delegate.d.ts +2 -2
  873. package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -1
  874. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.d.ts +2 -2
  875. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js.map +1 -1
  876. package/dist/server/modules/storage/local/delegates/session.delegate.d.ts +2 -1
  877. package/dist/server/modules/storage/local/delegates/session.delegate.js.map +1 -1
  878. package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +7 -3
  879. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +24 -11
  880. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
  881. package/dist/server/modules/storage/local/delegates/status.delegate.d.ts +2 -2
  882. package/dist/server/modules/storage/local/delegates/subscriber.delegate.d.ts +2 -1
  883. package/dist/server/modules/storage/local/delegates/subscriber.delegate.js.map +1 -1
  884. package/dist/server/modules/storage/local/delegates/tag.delegate.d.ts +2 -2
  885. package/dist/server/modules/storage/local/delegates/watcher.delegate.d.ts +2 -1
  886. package/dist/server/modules/storage/local/delegates/watcher.delegate.js.map +1 -1
  887. package/dist/server/modules/storage/local/helpers/device-revocation-history.js.map +1 -0
  888. package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -361
  889. package/dist/server/modules/storage/local/local-storage.service.js +119 -908
  890. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  891. package/dist/server/modules/storage/local/storage-routes.d.ts +1170 -0
  892. package/dist/server/modules/storage/local/storage-routes.js +465 -0
  893. package/dist/server/modules/storage/local/storage-routes.js.map +1 -0
  894. package/dist/server/modules/storage/models/domain.models.d.ts +1 -1
  895. package/dist/server/modules/storage/models/domain.models.js +2 -0
  896. package/dist/server/modules/storage/models/domain.models.js.map +1 -1
  897. package/dist/server/modules/storage/sessions/session-row.store.d.ts +42 -0
  898. package/dist/server/modules/storage/sessions/session-row.store.js +383 -0
  899. package/dist/server/modules/storage/sessions/session-row.store.js.map +1 -0
  900. package/dist/server/modules/storage/sessions/session-rows.module.d.ts +2 -0
  901. package/dist/server/modules/storage/sessions/session-rows.module.js +19 -0
  902. package/dist/server/modules/storage/sessions/session-rows.module.js.map +1 -0
  903. package/dist/server/modules/storage/sessions/session-transcript.types.d.ts +45 -0
  904. package/dist/server/modules/storage/sessions/session-transcript.types.js +3 -0
  905. package/dist/server/modules/storage/sessions/session-transcript.types.js.map +1 -0
  906. package/dist/server/modules/storage/storage.module.d.ts +3 -0
  907. package/dist/server/modules/storage/storage.module.js +15 -2
  908. package/dist/server/modules/storage/storage.module.js.map +1 -1
  909. package/dist/server/modules/storage/write-gate/project-write-gate.d.ts +32 -0
  910. package/dist/server/modules/storage/write-gate/project-write-gate.js +117 -0
  911. package/dist/server/modules/storage/write-gate/project-write-gate.js.map +1 -0
  912. package/dist/server/modules/storage/write-gate/storage-write-scope.d.ts +45 -0
  913. package/dist/server/modules/storage/write-gate/storage-write-scope.js +103 -0
  914. package/dist/server/modules/storage/write-gate/storage-write-scope.js.map +1 -0
  915. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.d.ts +3 -0
  916. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js +13 -0
  917. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js.map +1 -0
  918. package/dist/server/modules/subscribers/actions/action.interface.d.ts +2 -2
  919. package/dist/server/modules/subscribers/actions/terminate-session.action.d.ts +7 -0
  920. package/dist/server/modules/subscribers/actions/terminate-session.action.js +58 -6
  921. package/dist/server/modules/subscribers/actions/terminate-session.action.js.map +1 -1
  922. package/dist/server/modules/subscribers/services/subscriber-executor.service.d.ts +5 -4
  923. package/dist/server/modules/subscribers/services/subscriber-executor.service.js +6 -6
  924. package/dist/server/modules/subscribers/services/subscriber-executor.service.js.map +1 -1
  925. package/dist/server/modules/subscribers/services/subscribers.service.d.ts +1 -3
  926. package/dist/server/modules/subscribers/services/subscribers.service.js +2 -8
  927. package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -1
  928. package/dist/server/modules/subscribers/subscribers.module.js +0 -2
  929. package/dist/server/modules/subscribers/subscribers.module.js.map +1 -1
  930. package/dist/server/modules/teams/controllers/teams.controller.d.ts +2 -2
  931. package/dist/server/modules/teams/controllers/teams.controller.js.map +1 -1
  932. package/dist/server/modules/teams/services/teams.service.d.ts +4 -4
  933. package/dist/server/modules/teams/services/teams.service.js +8 -18
  934. package/dist/server/modules/teams/services/teams.service.js.map +1 -1
  935. package/dist/server/modules/teams/services/teams.validators.d.ts +4 -4
  936. package/dist/server/modules/teams/services/teams.validators.js.map +1 -1
  937. package/dist/server/modules/teams/storage/teams.store.d.ts +4 -1
  938. package/dist/server/modules/teams/storage/teams.store.js +20 -2
  939. package/dist/server/modules/teams/storage/teams.store.js.map +1 -1
  940. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.d.ts +2 -2
  941. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js +2 -2
  942. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js.map +1 -1
  943. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js +3 -3
  944. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js.map +1 -1
  945. package/dist/server/modules/teams/teams.module.js +1 -8
  946. package/dist/server/modules/teams/teams.module.js.map +1 -1
  947. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +10 -29
  948. package/dist/server/modules/terminal/gateways/terminal.gateway.js +40 -89
  949. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  950. package/dist/server/modules/terminal/services/guest-delivery.service.js +1 -0
  951. package/dist/server/modules/terminal/services/guest-delivery.service.js.map +1 -1
  952. package/dist/server/modules/terminal/services/human-prompt-input.service.d.ts +30 -0
  953. package/dist/server/modules/terminal/services/human-prompt-input.service.js +69 -0
  954. package/dist/server/modules/terminal/services/human-prompt-input.service.js.map +1 -0
  955. package/dist/server/modules/terminal/services/human-prompt-state.service.js +3 -2
  956. package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
  957. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.d.ts +6 -0
  958. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js +23 -1
  959. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js.map +1 -1
  960. package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +4 -3
  961. package/dist/server/modules/terminal/services/terminal-activity.service.js +26 -47
  962. package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
  963. package/dist/server/modules/terminal/services/terminal-delivery.types.d.ts +1 -1
  964. package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +9 -3
  965. package/dist/server/modules/terminal/services/terminal-io/delivery.js +65 -28
  966. package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
  967. package/dist/server/modules/terminal/services/terminal-io/foreground.d.ts +7 -0
  968. package/dist/server/modules/terminal/services/terminal-io/foreground.js +35 -0
  969. package/dist/server/modules/terminal/services/terminal-io/foreground.js.map +1 -0
  970. package/dist/server/modules/terminal/services/terminal-io/lifecycle.js +15 -3
  971. package/dist/server/modules/terminal/services/terminal-io/lifecycle.js.map +1 -1
  972. package/dist/server/modules/terminal/services/terminal-io/monitoring.d.ts +3 -0
  973. package/dist/server/modules/terminal/services/terminal-io/monitoring.js +36 -0
  974. package/dist/server/modules/terminal/services/terminal-io/monitoring.js.map +1 -1
  975. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.d.ts +3 -0
  976. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +80 -19
  977. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
  978. package/dist/server/modules/terminal/services/terminal-io/types.d.ts +1 -0
  979. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.d.ts +6 -11
  980. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +12 -43
  981. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
  982. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js +1 -1
  983. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js.map +1 -1
  984. package/dist/server/modules/terminal/services/terminal-seed.service.js +0 -4
  985. package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
  986. package/dist/server/modules/terminal/terminal-delivery.module.js +3 -0
  987. package/dist/server/modules/terminal/terminal-delivery.module.js.map +1 -1
  988. package/dist/server/modules/terminal/terminal.module.js +2 -0
  989. package/dist/server/modules/terminal/terminal.module.js.map +1 -1
  990. package/dist/server/modules/terminal/utils/ansi-sanitizer.d.ts +0 -1
  991. package/dist/server/modules/terminal/utils/ansi-sanitizer.js +0 -4
  992. package/dist/server/modules/terminal/utils/ansi-sanitizer.js.map +1 -1
  993. package/dist/server/modules/watchers/services/watcher-runner.service.d.ts +2 -2
  994. package/dist/server/modules/watchers/services/watcher-runner.service.js +0 -3
  995. package/dist/server/modules/watchers/services/watcher-runner.service.js.map +1 -1
  996. package/dist/server/modules/watchers/services/watchers.service.d.ts +3 -3
  997. package/dist/server/modules/watchers/services/watchers.service.js +6 -9
  998. package/dist/server/modules/watchers/services/watchers.service.js.map +1 -1
  999. package/dist/server/modules/watchers/watchers.module.js +1 -8
  1000. package/dist/server/modules/watchers/watchers.module.js.map +1 -1
  1001. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.d.ts +2 -2
  1002. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.js.map +1 -1
  1003. package/dist/server/modules/workspaces/services/workspaces.service.d.ts +3 -3
  1004. package/dist/server/modules/workspaces/services/workspaces.service.js +7 -7
  1005. package/dist/server/modules/workspaces/services/workspaces.service.js.map +1 -1
  1006. package/dist/server/modules/workspaces/workspaces.module.js +1 -2
  1007. package/dist/server/modules/workspaces/workspaces.module.js.map +1 -1
  1008. package/dist/server/templates/teams-dev.json +277 -261
  1009. package/dist/server/test-setup-node.js +4 -3
  1010. package/dist/server/test-setup-node.js.map +1 -1
  1011. package/dist/server/test-setup.js +7 -0
  1012. package/dist/server/test-setup.js.map +1 -1
  1013. package/dist/server/tsconfig.build.tsbuildinfo +1 -0
  1014. package/dist/server/ui/assets/{ExternalRichEditor-DtNvrV0F.js → ExternalRichEditor-CB-LjWox.js} +24 -24
  1015. package/dist/server/ui/assets/ReviewDetailPage-CpMMjYet.js +6 -0
  1016. package/dist/server/ui/assets/ReviewsPage-Cw17_agp.js +6 -0
  1017. package/dist/server/ui/assets/index-BwuNu70G.css +32 -0
  1018. package/dist/server/ui/assets/index-DmRXRpSy.js +1192 -0
  1019. package/dist/server/ui/assets/useReviewSubscription-wd5iHNQy.js +69 -0
  1020. package/dist/server/ui/index.html +2 -2
  1021. package/dist/templates/teams-dev.json +277 -261
  1022. package/package.json +18 -347
  1023. package/dist/server/common/test/remote-project.fixture.d.ts +0 -32
  1024. package/dist/server/common/test/remote-project.fixture.js +0 -328
  1025. package/dist/server/common/test/remote-project.fixture.js.map +0 -1
  1026. package/dist/server/common/test/two-instance.fixture.d.ts +0 -48
  1027. package/dist/server/common/test/two-instance.fixture.js +0 -269
  1028. package/dist/server/common/test/two-instance.fixture.js.map +0 -1
  1029. package/dist/server/modules/e2ee/services/device-revocation-history.js.map +0 -1
  1030. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +0 -5
  1031. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +0 -8
  1032. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +0 -1
  1033. package/dist/server/modules/reviews/utils/notification-formatter.d.ts +0 -12
  1034. package/dist/server/modules/reviews/utils/notification-formatter.js +0 -60
  1035. package/dist/server/modules/reviews/utils/notification-formatter.js.map +0 -1
  1036. package/dist/server/modules/session-reader/services/transcript-turn-state.d.ts +0 -4
  1037. package/dist/server/modules/session-reader/services/transcript-turn-state.js +0 -20
  1038. package/dist/server/modules/session-reader/services/transcript-turn-state.js.map +0 -1
  1039. package/dist/server/modules/sessions/dtos/active-session-info.dto.js.map +0 -1
  1040. package/dist/server/modules/sessions/utils/claude-config.js.map +0 -1
  1041. package/dist/server/modules/sessions/utils/codex-config.js.map +0 -1
  1042. package/dist/server/modules/sessions/utils/env-builder.js.map +0 -1
  1043. package/dist/server/modules/sessions/utils/profile-options.js.map +0 -1
  1044. package/dist/server/modules/terminal/services/session-turn-signals.js.map +0 -1
  1045. package/dist/server/tsconfig.tsbuildinfo +0 -1
  1046. package/dist/server/ui/assets/ReviewDetailPage-DJzEoM0x.js +0 -6
  1047. package/dist/server/ui/assets/ReviewsPage-z2O8MNEw.js +0 -6
  1048. package/dist/server/ui/assets/index-CC4P3V8L.js +0 -994
  1049. package/dist/server/ui/assets/index-LsJe1ZTS.css +0 -32
  1050. package/dist/server/ui/assets/useReviewSubscription-B7AdJBO2.js +0 -69
  1051. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.d.ts +0 -0
  1052. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.js +0 -0
  1053. /package/dist/server/modules/{sessions → providers}/utils/claude-config.d.ts +0 -0
  1054. /package/dist/server/modules/{sessions → providers}/utils/claude-config.js +0 -0
  1055. /package/dist/server/modules/{sessions → providers}/utils/codex-config.d.ts +0 -0
  1056. /package/dist/server/modules/{sessions → providers}/utils/codex-config.js +0 -0
  1057. /package/dist/server/modules/{sessions → providers}/utils/env-builder.d.ts +0 -0
  1058. /package/dist/server/modules/{sessions → providers}/utils/env-builder.js +0 -0
  1059. /package/dist/server/modules/{sessions → providers}/utils/profile-options.js +0 -0
  1060. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.d.ts +0 -0
  1061. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.js +0 -0
  1062. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.d.ts +0 -0
  1063. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.js +0 -0
@@ -13,6 +13,9 @@ exports.DockerHandoff = void 0;
13
13
  exports.dockerSelection = dockerSelection;
14
14
  exports.buildRecord = buildRecord;
15
15
  exports.captureSettings = captureSettings;
16
+ const docker_ownership_1 = require("./docker-ownership");
17
+ const docker_data_representation_1 = require("./docker-data-representation");
18
+ const docker_project_resources_1 = require("./docker-project-resources");
16
19
  const docker_data_groups_1 = require("./docker-data-groups");
17
20
  const common_1 = require("@nestjs/common");
18
21
  const node_crypto_1 = require("node:crypto");
@@ -23,24 +26,29 @@ const error_types_1 = require("../../../common/errors/error-types");
23
26
  const logger_1 = require("../../../common/logging/logger");
24
27
  const docker_archive_journal_1 = require("../../core/controllers/docker-archive-journal");
25
28
  const docker_archive_1 = require("../../core/controllers/docker-archive");
29
+ const docker_archive_owners_1 = require("../../core/controllers/docker-archive-owners");
30
+ const docker_image_metadata_1 = require("../../core/controllers/docker-image-metadata");
26
31
  const docker_engine_client_1 = require("../../core/controllers/docker-engine.client");
27
32
  const docker_settings_1 = require("../../core/controllers/docker-settings");
28
33
  const file_sync_dto_1 = require("../../file-sync/file-sync.dto");
34
+ const file_sync_service_1 = require("../../file-sync/file-sync.service");
29
35
  const file_sync_managed_exclusions_store_1 = require("../../file-sync/file-sync-managed-exclusions.store");
36
+ const ignore_pattern_matcher_1 = require("../../file-sync/ignore-pattern-matcher");
30
37
  const docker_import_inventory_store_1 = require("../operations/docker-import-inventory.store");
31
38
  const remote_host_client_1 = require("../operations/remote-host.client");
32
39
  const remote_operation_errors_1 = require("../operations/remote-operation.errors");
33
40
  const remote_operation_types_1 = require("../operations/remote-operation.types");
41
+ const host_docker_dto_1 = require("../host/host-docker.dto");
34
42
  const docker_plan_fit_1 = require("./docker-plan-fit");
35
43
  const docker_plan_files_1 = require("./docker-plan-files");
36
44
  const docker_plan_dto_1 = require("./docker-plan.dto");
37
45
  const docker_plan_policy_1 = require("./docker-plan-policy");
38
46
  const docker_plan_service_1 = require("./docker-plan.service");
47
+ const connect_choices_store_1 = require("../connect-choices.store");
39
48
  const docker_plan_source_service_1 = require("./docker-plan-source.service");
40
49
  const docker_handoff_store_1 = require("./docker-handoff.store");
41
50
  const logger = (0, logger_1.createLogger)('DockerHandoff');
42
51
  const RATE_WARMUP_MS = 5_000;
43
- const DEFAULT_NETWORKS = new Set(['bridge', 'host', 'none', 'default']);
44
52
  function dockerSelection(details) {
45
53
  const selection = details.dockerSelection;
46
54
  return selection?.items?.length ? selection : null;
@@ -70,9 +78,11 @@ let DockerHandoff = class DockerHandoff {
70
78
  journal;
71
79
  exclusions;
72
80
  inventory;
81
+ choices;
82
+ files;
73
83
  active = new Map();
74
84
  rollbackLimits = { vmCleanupMs: 10 * 60_000, homeConnectMs: 30_000, homeStartMs: 60_000 };
75
- constructor(plans, source, host, store, journal, exclusions, inventory) {
85
+ constructor(plans, source, host, store, journal, exclusions, inventory, choices, files) {
76
86
  this.plans = plans;
77
87
  this.source = source;
78
88
  this.host = host;
@@ -80,6 +90,8 @@ let DockerHandoff = class DockerHandoff {
80
90
  this.journal = journal;
81
91
  this.exclusions = exclusions;
82
92
  this.inventory = inventory;
93
+ this.choices = choices;
94
+ this.files = files;
83
95
  }
84
96
  interrupt(operationId) {
85
97
  this.active.get(operationId)?.abort();
@@ -90,9 +102,10 @@ let DockerHandoff = class DockerHandoff {
90
102
  const selection = dockerSelection(run.details);
91
103
  if (!selection)
92
104
  return;
93
- const plan = await this.plans.plan(projectId, { remoteId: run.operation.remoteId, items: selection.items }, signal, { estimate: false });
105
+ const plan = await this.plans.plan(projectId, { remoteId: run.operation.remoteId, items: selection.items }, signal, { estimate: false, reuse: false });
94
106
  if (!plan.availability.available || !plan.apiVersion)
95
107
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('DOCKER_PLAN_REFUSED', plan.availability.reason?.message ?? 'Docker is unavailable.', { reason: plan.availability.reason?.code ?? null });
108
+ this.choices.recordPlan(projectId, run.operation.remoteId, plan.items);
96
109
  const selected = plan.items.filter((item) => item.selectedMode);
97
110
  if (!plan.canConnect) {
98
111
  const reasons = [
@@ -105,25 +118,24 @@ let DockerHandoff = class DockerHandoff {
105
118
  ];
106
119
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('DOCKER_PLAN_REFUSED', reasons.join(' ') || 'The Docker import cannot proceed.', { fit: plan.fit });
107
120
  }
108
- const record = buildRecord(plan.items, selected, plan.apiVersion, await this.plans.projectRoot(projectId));
121
+ const record = buildRecord(plan.items, selected, plan.apiVersion, await this.plans.projectRoot(projectId), plan.networks, plan.dataGroups, { uid: this.source.uid() ?? 0, gid: this.source.gid() ?? 0 }, this.inventory.get(projectId, run.operation.remoteId));
109
122
  const previousRecord = await this.store.read(run.operation.id);
123
+ for (const bind of record.emptyBinds ?? [])
124
+ if (bind.reset)
125
+ bind.file = await resetBindIsFile(bind.path, true);
110
126
  record.inventoryBefore =
111
127
  previousRecord?.inventoryBefore !== undefined
112
128
  ? previousRecord.inventoryBefore
113
129
  : this.inventory.get(projectId, run.operation.remoteId);
114
130
  for (const kept of record.keptInventory ?? []) {
115
131
  const prior = record.inventoryBefore?.items.find((item) => item.name === kept.name);
132
+ if (prior?.ownership &&
133
+ record.items.find((item) => item.name === kept.name)?.targetAction === 'leave-as-is')
134
+ kept.ownership = prior.ownership;
116
135
  if (prior?.vmImageId && prior.imageId === kept.imageId)
117
136
  kept.vmImageId = prior.vmImageId;
118
137
  }
119
- const managed = [
120
- ...new Set([
121
- ...plan.managedExclusions,
122
- ...(this.inventory
123
- .get(projectId, run.operation.remoteId)
124
- ?.items.flatMap((item) => item.bindPaths) ?? []),
125
- ]),
126
- ];
138
+ const managed = (0, docker_import_inventory_store_1.connectExclusions)(plan, this.inventory.get(projectId, run.operation.remoteId), await this.plans.projectRoot(projectId));
127
139
  if (managed.length > file_sync_dto_1.IGNORE_PATTERNS_MAX)
128
140
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('DOCKER_TOO_MANY_DATA_FOLDERS', `The Docker data folders need ${managed.length} file-sync exclusions; at most ${file_sync_dto_1.IGNORE_PATTERNS_MAX} are supported.`, { count: managed.length });
129
141
  await this.store.write(run.operation.id, record);
@@ -200,18 +212,62 @@ let DockerHandoff = class DockerHandoff {
200
212
  const present = pendingImages.length
201
213
  ? (await this.host.dockerImagesPresent(remoteId, [...new Set([...candidates.values()].flat())], options)).ids
202
214
  : [];
215
+ const verify = async (image, vmId) => {
216
+ image.vmId = vmId;
217
+ record.verified.images.push(image.id);
218
+ await this.store.write(run.operation.id, record);
219
+ };
220
+ let matchUnsupported = false;
221
+ const missing = [];
203
222
  for (const image of pendingImages) {
223
+ let vmId = candidates.get(image.id).find((id) => present.includes(id));
224
+ if (!vmId) {
225
+ const inspect = await client.json('GET', `/images/${encodeURIComponent(image.id)}/json`, undefined, { signal });
226
+ const tags = inspect.RepoTags;
227
+ if (tags?.length && !matchUnsupported) {
228
+ try {
229
+ const { images } = await this.host.dockerMatchImages(remoteId, tags, options);
230
+ vmId = (0, docker_image_metadata_1.vmImageIdForTags)(inspect, tags, images);
231
+ }
232
+ catch (error) {
233
+ if (!(error instanceof remote_host_client_1.RemoteHostRequestError && error.status === 404))
234
+ throw error;
235
+ matchUnsupported = true;
236
+ }
237
+ }
238
+ if (!vmId) {
239
+ missing.push({ image, tags: tags ?? [], layers: inspect.RootFS?.Layers ?? null });
240
+ continue;
241
+ }
242
+ }
204
243
  progress.item(image.id, 'image', image.sizeBytes);
205
- const vmId = candidates.get(image.id).find((id) => present.includes(id));
206
- if (vmId)
207
- image.vmId = vmId;
208
- else {
244
+ await verify(image, vmId);
245
+ progress.complete();
246
+ }
247
+ let supportsReferences = true;
248
+ for (const group of groupImages(missing)) {
249
+ progress.item(group.length === 1 ? group[0].image.id : `${group.length} images`, 'image', group.reduce((total, entry) => total + entry.image.sizeBytes, 0));
250
+ if (group.length > 1 && supportsReferences) {
251
+ const archive = await saveImages(client, group.flatMap((entry) => entry.tags), signal);
252
+ const loaded = await this.host.dockerLoadImage(remoteId, progress.count(archive), options);
253
+ supportsReferences = hasReferences(loaded);
254
+ if (supportsReferences) {
255
+ const vmIds = group.map((entry) => loadedVmId(entry.image.id, entry.layers, loaded.images, entry.tags));
256
+ for (const [index, entry] of group.entries()) {
257
+ entry.image.vmId = vmIds[index];
258
+ record.verified.images.push(entry.image.id);
259
+ }
260
+ await this.store.write(run.operation.id, record);
261
+ progress.complete();
262
+ continue;
263
+ }
264
+ }
265
+ for (const { image } of group) {
209
266
  const saved = await saveImage(client, image.id, signal);
210
267
  const loaded = await this.host.dockerLoadImage(remoteId, progress.count(saved.archive), options);
211
- image.vmId = loadedVmId(image.id, saved.layers, loaded.images);
268
+ supportsReferences &&= hasReferences(loaded);
269
+ await verify(image, loadedVmId(image.id, saved.layers, loaded.images));
212
270
  }
213
- record.verified.images.push(image.id);
214
- await this.store.write(run.operation.id, record);
215
271
  progress.complete();
216
272
  }
217
273
  const presentKeptVolumes = record.ensureVolumes?.length
@@ -237,6 +293,7 @@ let DockerHandoff = class DockerHandoff {
237
293
  const restore = restoresData(record, volume.name);
238
294
  progress.item(volume.name, 'volume', restore ? volume.sizeBytes : 0);
239
295
  if (!restore &&
296
+ !record.items.some((item) => item.resetData && item.volumes.includes(volume.name)) &&
240
297
  existing.has(volume.name) &&
241
298
  !record.created.volumes.includes(volume.name)) {
242
299
  record.verified.volumes.push(volume.name);
@@ -250,7 +307,7 @@ let DockerHandoff = class DockerHandoff {
250
307
  await this.store.write(run.operation.id, record);
251
308
  await this.host.dockerCreateVolume(remoteId, { projectId, name: volume.name, labels }, options);
252
309
  if (restore) {
253
- await this.copy(client, progress, remoteId, { projectId, image: volume.helperImage, mountType: 'volume', source: volume.name }, vmImageId(record, volume.helperImage), options);
310
+ volume.alreadyTargetEntries = await this.copy(client, progress, remoteId, { projectId, image: volume.helperImage, mountType: 'volume', source: volume.name }, vmImageId(record, volume.helperImage), options, (0, docker_data_representation_1.recordedDataRepresentation)({ volumes: [volume.name], bindPaths: [] }, record.dataGroups ?? []));
254
311
  (record.copiedData ??= { volumes: [], binds: [] }).volumes.push(volume.name);
255
312
  }
256
313
  record.verified.volumes.push(volume.name);
@@ -275,6 +332,41 @@ let DockerHandoff = class DockerHandoff {
275
332
  .ensureBinds.slice(offset, offset + 64)
276
333
  .map((path) => ({ path, replace: false })),
277
334
  }, options);
335
+ for (const bind of record.emptyBinds ?? []) {
336
+ if (bind.prepared)
337
+ continue;
338
+ if (bind.reset) {
339
+ if (bind.file === undefined) {
340
+ bind.file = await resetBindIsFile(bind.path, false);
341
+ await this.store.write(run.operation.id, record);
342
+ }
343
+ const vm = await this.host.dockerScan(remoteId, [bind.path], options, []);
344
+ for (const holder of vm.containers)
345
+ if ((0, docker_data_groups_1.overlapsData)((0, docker_data_groups_1.mountedData)(holder.mounts), { volumes: [], bindPaths: [bind.path] })) {
346
+ if (!(0, docker_project_resources_1.projectContainer)(holder, record.projectRoot, projectId, vm.volumes))
347
+ throw new DockerHandoffError(`An unrelated VM container holds ${bind.path}.`);
348
+ await this.host.dockerStopContainer(remoteId, holder.id, projectId, {
349
+ ...options,
350
+ projectRoot: record.projectRoot,
351
+ });
352
+ }
353
+ await this.confirmResetExclusion(projectId, remoteId, record.projectRoot, bind.path, signal);
354
+ }
355
+ await this.host.dockerPrepareBinds(remoteId, {
356
+ projectId,
357
+ paths: [
358
+ {
359
+ path: bind.path,
360
+ replace: bind.reset,
361
+ image: vmImageId(record, bind.image),
362
+ ...(bind.file ? { file: true } : {}),
363
+ ...(bind.owner ? { owner: bind.owner } : {}),
364
+ },
365
+ ],
366
+ }, options);
367
+ bind.prepared = true;
368
+ await this.store.write(run.operation.id, record);
369
+ }
278
370
  const binds = record.binds.filter((b) => !record.verified.binds.includes(b.path));
279
371
  const files = new Set();
280
372
  for (const bind of binds)
@@ -291,6 +383,15 @@ let DockerHandoff = class DockerHandoff {
291
383
  }, options);
292
384
  for (const bind of binds.filter((b) => b.replace)) {
293
385
  try {
386
+ const vm = await this.host.dockerScan(remoteId, [bind.path], options, []);
387
+ for (const holder of vm.containers)
388
+ if ((0, docker_data_groups_1.overlapsData)((0, docker_data_groups_1.mountedData)(holder.mounts), { volumes: [], bindPaths: [bind.path] }) &&
389
+ (0, docker_project_resources_1.projectContainer)(holder, record.projectRoot, projectId, vm.volumes) &&
390
+ holder.metadata?.running !== false)
391
+ await this.host.dockerStopContainer(remoteId, holder.id, projectId, {
392
+ ...options,
393
+ projectRoot: record.projectRoot,
394
+ });
294
395
  await this.host.dockerPrepareBinds(remoteId, {
295
396
  projectId,
296
397
  paths: [
@@ -311,33 +412,51 @@ let DockerHandoff = class DockerHandoff {
311
412
  }
312
413
  for (const bind of binds) {
313
414
  progress.item(bind.path, 'bind', bind.sizeBytes);
314
- await this.copy(client, progress, remoteId, {
415
+ bind.alreadyTargetEntries = await this.copy(client, progress, remoteId, {
315
416
  projectId,
316
417
  image: bind.helperImage,
317
418
  mountType: files.has(bind.path) ? 'file' : 'bind',
318
419
  source: bind.path,
319
- }, vmImageId(record, bind.helperImage), options);
420
+ }, vmImageId(record, bind.helperImage), options, (0, docker_data_representation_1.recordedDataRepresentation)({ volumes: [], bindPaths: [bind.path] }, record.dataGroups ?? []));
320
421
  (record.copiedData ??= { volumes: [], binds: [] }).binds.push(bind.path);
321
422
  record.verified.binds.push(bind.path);
322
423
  await this.store.write(run.operation.id, record);
323
424
  progress.complete();
324
425
  }
325
- for (const network of record.networks) {
426
+ const settings = await this.store.readSettings(run.operation.id);
427
+ const automaticNetworks = new Set(record.automaticRangeNetworks);
428
+ const networks = record.networks
429
+ .map((network) => ({
430
+ ...network,
431
+ ipam: automaticNetworks.has(network.name) ? undefined : network.ipam,
432
+ }))
433
+ .sort((a, b) => Number(!!b.ipam) - Number(!!a.ipam));
434
+ for (const network of networks) {
326
435
  progress.item(network.name, 'network');
327
- const { created } = await this.host.dockerCreateNetwork(remoteId, {
328
- projectId,
329
- name: network.name,
330
- labels: network.labels,
331
- internal: network.internal,
332
- attachable: network.attachable,
333
- options: network.options,
334
- }, options);
335
- if (created && !record.created.networks.includes(network.name)) {
436
+ const shared = !network.labels[host_docker_dto_1.COMPOSE_PROJECT_LABEL];
437
+ let created;
438
+ try {
439
+ ({ created } = await this.host.dockerCreateNetwork(remoteId, {
440
+ projectId,
441
+ name: network.name,
442
+ labels: network.labels,
443
+ internal: network.internal,
444
+ attachable: network.attachable,
445
+ options: network.options,
446
+ ...(network.ipam ? { ipam: network.ipam } : {}),
447
+ ...(shared ? { shared: true } : {}),
448
+ }, options));
449
+ }
450
+ catch (error) {
451
+ if (!(error instanceof error_types_1.AppError))
452
+ throw error;
453
+ throw new DockerHandoffError(`Network ${network.name}: ${error.message}`, error.code);
454
+ }
455
+ if (created && !shared && !record.created.networks.includes(network.name)) {
336
456
  record.created.networks.push(network.name);
337
457
  await this.store.write(run.operation.id, record);
338
458
  }
339
459
  }
340
- const settings = await this.store.readSettings(run.operation.id);
341
460
  for (const item of record.items.filter((i) => i.createsContainer)) {
342
461
  if (record.verified.containers.includes(item.name))
343
462
  continue;
@@ -346,14 +465,17 @@ let DockerHandoff = class DockerHandoff {
346
465
  throw new DockerHandoffError(`The captured settings of ${item.name} are missing.`);
347
466
  progress.item(item.name, 'container');
348
467
  if (item.targetAction === 'replace' || record.created.containers.includes(item.name))
349
- await this.deleteIfPresent(remoteId, 'containers', item.name, projectId, options);
468
+ await this.deleteIfPresent(remoteId, 'containers', item.name, projectId, {
469
+ ...options,
470
+ projectRoot: record.projectRoot,
471
+ });
350
472
  record.created.containers.push(item.name);
351
473
  await this.store.write(run.operation.id, record);
352
474
  await this.host.dockerCreateContainer(remoteId, {
353
475
  projectId,
354
476
  name: item.name,
355
477
  config: {
356
- ...captured.config,
478
+ ...(0, docker_ownership_1.dockerTargetConfig)(captured.config, item.ownership),
357
479
  Image: vmImageId(record, String(captured.config.Image)),
358
480
  },
359
481
  }, options);
@@ -370,6 +492,12 @@ let DockerHandoff = class DockerHandoff {
370
492
  !record.keptInventory?.some((kept) => kept.name === item.name))
371
493
  .map((item) => ({
372
494
  name: item.name,
495
+ ...(item.ownership
496
+ ? {
497
+ ownership: (0, docker_ownership_1.ownershipRecord)(item.ownership, item.targetUser ?? settings[item.id]?.config.User),
498
+ dataRepresentations: itemDataRepresentations(record, item.id),
499
+ }
500
+ : {}),
373
501
  imageId: item.imageIds[0] ?? item.id,
374
502
  ...vmPair(item.imageIds[0] ?? item.id),
375
503
  volumes: item.volumes.map((name) => ({
@@ -397,22 +525,36 @@ let DockerHandoff = class DockerHandoff {
397
525
  .every((i) => i.targetAction !== 'leave-as-is' && i.mode !== 'without-data') &&
398
526
  group.volumes.every((v) => record.copiedData?.volumes.includes(v)) &&
399
527
  group.bindPaths.every((p) => record.copiedData?.binds.some((copied) => (0, docker_plan_files_1.within)(copied, p))))
400
- .map(({ volumes, bindPaths }) => ({
401
- volumes,
402
- bindPaths,
528
+ .map((group) => ({
529
+ volumes: group.volumes,
530
+ bindPaths: group.bindPaths,
531
+ ...recordedOwners(group),
403
532
  lastSyncedAt: record.inventoryStampedAt,
404
533
  lastSyncDirection: 'to-vm',
405
534
  }));
406
535
  const preserved = new Map((record.inventoryBefore?.groups ?? []).map((g) => [(0, docker_data_groups_1.dataGroupIdentity)(g), g]));
407
- for (const { volumes, bindPaths } of record.discardedHomeGroups ?? []) {
408
- const key = (0, docker_data_groups_1.dataGroupIdentity)({ volumes, bindPaths });
536
+ for (const group of record.discardedHomeGroups ?? []) {
537
+ const key = (0, docker_data_groups_1.dataGroupIdentity)(group);
409
538
  preserved.set(key, {
410
539
  ...preserved.get(key),
411
- volumes,
412
- bindPaths,
540
+ volumes: group.volumes,
541
+ bindPaths: group.bindPaths,
413
542
  homeDiscardedAt: record.inventoryStampedAt,
543
+ ...recordedOwners(group),
414
544
  });
415
545
  }
546
+ const emptyGroups = (record.dataGroups ?? []).filter((group) => record.items.some((item) => group.itemIds.includes(item.id) &&
547
+ (item.resetData ||
548
+ (item.mode === 'without-data' &&
549
+ item.ownership &&
550
+ item.targetAction !== 'leave-as-is'))));
551
+ for (const group of emptyGroups)
552
+ preserved.set((0, docker_data_groups_1.dataGroupIdentity)(group), {
553
+ volumes: group.volumes,
554
+ bindPaths: group.bindPaths,
555
+ vmDiscardedAt: record.inventoryStampedAt,
556
+ ...recordedOwners(group),
557
+ });
416
558
  this.inventory.set(projectId, remoteId, {
417
559
  groups: (0, docker_data_groups_1.supersedeGroupRecords)([...preserved.values()], stamped),
418
560
  importedAt: record.inventoryStampedAt,
@@ -426,11 +568,34 @@ let DockerHandoff = class DockerHandoff {
426
568
  result: {
427
569
  withoutData: record.items.filter((i) => i.mode === 'without-data').map((i) => i.name),
428
570
  dataOnly: record.items.filter((i) => i.mode === 'data-only').map((i) => i.name),
571
+ alreadyTargetEntries: [
572
+ ...record.volumes.filter((volume) => record.copiedData?.volumes.includes(volume.name)),
573
+ ...record.binds.filter((bind) => record.copiedData?.binds.includes(bind.path)),
574
+ ].reduce((sum, resource) => sum + (resource.alreadyTargetEntries ?? 0), 0),
429
575
  },
430
576
  },
431
577
  });
432
578
  });
433
579
  }
580
+ async confirmResetExclusion(projectId, remoteId, root, path, signal) {
581
+ const code = 'DOCKER_RESET_EXCLUSIONS_UNCONFIRMED';
582
+ let installed;
583
+ try {
584
+ const folder = (0, file_sync_service_1.codeFolderId)(projectId);
585
+ installed = await Promise.all([
586
+ this.files.installedIgnores(folder),
587
+ this.host.syncFolderIgnores(remoteId, folder),
588
+ ]);
589
+ }
590
+ catch {
591
+ signal.throwIfAborted();
592
+ throw new DockerHandoffError(`The file-sync exclusions for ${path} could not be read on both peers. Retry before resetting the VM data.`, code);
593
+ }
594
+ signal.throwIfAborted();
595
+ if (!(0, docker_plan_files_1.strictlyWithin)(root, path) ||
596
+ !installed.every((peer) => (0, ignore_pattern_matcher_1.ignoreListExcludesSubtree)(peer.ignore, (0, docker_plan_files_1.projectAnchoredPath)(root, path).slice(1))))
597
+ throw new DockerHandoffError(`The file-sync exclusions do not cover all of ${path} on both peers. Reinstall the exclusions before resetting the VM data.`, code);
598
+ }
434
599
  stopHost(run) {
435
600
  return this.step(run, async (signal) => {
436
601
  const projectId = (0, remote_operation_types_1.requireProjectId)(run.operation);
@@ -533,7 +698,10 @@ let DockerHandoff = class DockerHandoff {
533
698
  const { holders } = await this.host.dockerVolumeHolders(remoteId, volume.name, options);
534
699
  for (const holder of holders) {
535
700
  try {
536
- await this.host.dockerDelete(remoteId, 'containers', holder.id, projectId, options);
701
+ await this.host.dockerDelete(remoteId, 'containers', holder.id, projectId, {
702
+ ...options,
703
+ projectRoot: record.projectRoot,
704
+ });
537
705
  }
538
706
  catch (error) {
539
707
  if (notFound(error))
@@ -562,16 +730,35 @@ let DockerHandoff = class DockerHandoff {
562
730
  return false;
563
731
  }
564
732
  }
565
- async copy(client, progress, remoteId, request, vmImage, options) {
733
+ async copy(client, progress, remoteId, request, vmImage, options, representation) {
566
734
  const layout = (0, docker_archive_1.dockerArchiveLayout)(request.mountType, request.source);
567
735
  const helper = await this.journal.create(client, request.image, [{ ...layout.mount, ReadOnly: true }], options.signal);
568
736
  try {
569
737
  const archive = await (0, docker_archive_1.readDockerArchive)(client, helper.id, options.signal, layout.readPath);
570
738
  const hash = (0, node_crypto_1.createHash)('sha256');
571
- const body = progress.count(archive, (chunk) => hash.update(chunk));
572
- const { sha256 } = await this.host.dockerWriteArchive(remoteId, { ...request, image: vmImage }, body, options);
573
- if (sha256 !== hash.digest('hex'))
574
- throw new DockerHandoffError('The copied data did not match on the VM; retry the copy.');
739
+ const owners = representation?.kind === 'mapped'
740
+ ? new docker_archive_owners_1.DockerArchiveOwnerTransform({ from: representation.home, to: representation.vm })
741
+ : null;
742
+ const body = new node_stream_1.PassThrough();
743
+ const sent = (0, promises_2.pipeline)([
744
+ archive,
745
+ ...(owners ? [owners] : []),
746
+ progress.counter((chunk) => hash.update(chunk)),
747
+ body,
748
+ ], { signal: options.signal });
749
+ try {
750
+ const [{ sha256 }] = await Promise.all([
751
+ this.host.dockerWriteArchive(remoteId, { ...request, image: vmImage }, body, options),
752
+ sent,
753
+ ]);
754
+ if (sha256 !== hash.digest('hex'))
755
+ throw new DockerHandoffError('The copied data did not match on the VM; retry the copy.');
756
+ return owners?.result?.alreadyTargetEntries ?? 0;
757
+ }
758
+ finally {
759
+ body.destroy();
760
+ await sent.catch(() => undefined);
761
+ }
575
762
  }
576
763
  finally {
577
764
  await this.journal.cleanup(client, helper);
@@ -587,12 +774,34 @@ exports.DockerHandoff = DockerHandoff = __decorate([
587
774
  docker_handoff_store_1.DockerHandoffStore,
588
775
  docker_archive_journal_1.DockerArchiveJournal,
589
776
  file_sync_managed_exclusions_store_1.FileSyncManagedExclusionsStore,
590
- docker_import_inventory_store_1.DockerImportInventoryStore])
777
+ docker_import_inventory_store_1.DockerImportInventoryStore,
778
+ connect_choices_store_1.ConnectChoicesStore,
779
+ file_sync_service_1.FileSyncService])
591
780
  ], DockerHandoff);
592
- function buildRecord(all, selected, apiVersion, projectRoot) {
781
+ function recordedOwners({ ownership, representation, }) {
782
+ return {
783
+ ...(ownership ? { ownership: (0, docker_ownership_1.ownershipRecord)(ownership) } : {}),
784
+ ...(representation ? { representation } : {}),
785
+ };
786
+ }
787
+ function itemDataRepresentations(record, id) {
788
+ const item = record.items.find((entry) => entry.id === id);
789
+ return (record.dataGroups ?? [])
790
+ .filter((group) => group.itemIds.includes(id))
791
+ .map(({ volumes, bindPaths, representation }) => ({
792
+ volumes: volumes.filter((volume) => item.volumes.includes(volume)),
793
+ bindPaths: bindPaths.filter((path) => item.binds.some((parent) => (0, docker_plan_files_1.within)(parent, path))),
794
+ ...(representation ? { representation } : {}),
795
+ }))
796
+ .filter((group) => group.volumes.length || group.bindPaths.length);
797
+ }
798
+ function buildRecord(all, selected, apiVersion, projectRoot, networks = [], plannedGroups, fallbackOwner, inventory) {
593
799
  const moving = selected.filter(docker_plan_fit_1.movesToVm);
800
+ const copiedImages = selected
801
+ .filter((item) => (0, docker_plan_fit_1.copiesImages)(item, projectRoot))
802
+ .flatMap((item) => item.images);
594
803
  const helperImage = (item) => {
595
- const image = item.images[0]?.id ?? moving.flatMap((i) => i.images)[0]?.id;
804
+ const image = item.images[0]?.id ?? copiedImages[0]?.id;
596
805
  if (!image)
597
806
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('DOCKER_PLAN_REFUSED', `${item.name}: no local image is available to copy its data.`);
598
807
  return image;
@@ -619,7 +828,10 @@ function buildRecord(all, selected, apiVersion, projectRoot) {
619
828
  for (const name of emptyVolumes(item))
620
829
  if (!volumes.some((v) => v.name === name))
621
830
  volumes.push({ name, helperImage: helperImage(item), sizeBytes: 0 });
622
- const images = [...new Map(moving.flatMap((i) => i.images).map((i) => [i.id, i])).values()].map((image) => ({ id: image.id, sizeBytes: image.size.bytes }));
831
+ const images = [...new Map(copiedImages.map((i) => [i.id, i])).values()].map((image) => ({
832
+ id: image.id,
833
+ sizeBytes: image.size.bytes,
834
+ }));
623
835
  const containerIds = new Set(all.filter((i) => i.kind === 'container').map((i) => i.id));
624
836
  const stopIds = new Set();
625
837
  for (const item of moving) {
@@ -632,9 +844,19 @@ function buildRecord(all, selected, apiVersion, projectRoot) {
632
844
  }
633
845
  const items = selected.map((item) => {
634
846
  const mounts = copied.get(item);
847
+ const { retainedOwnership } = item;
848
+ const ownership = retainedOwnership
849
+ ? { class: retainedOwnership.class, home: retainedOwnership.home, vm: retainedOwnership.vm }
850
+ : item.ownership;
635
851
  return {
636
852
  id: item.id,
637
853
  name: item.name,
854
+ ...(ownership ? { ownership } : {}),
855
+ targetUser: item.targetAction === 'leave-as-is'
856
+ ? (item.vmUser ?? item.runtimeUser)
857
+ : (0, docker_ownership_1.dockerTargetUser)(item),
858
+ ...(item.retainedOwnership ? { retainedOwnership: item.retainedOwnership } : {}),
859
+ ...(item.dataAction === 'start-empty' ? { resetData: true } : {}),
638
860
  kind: item.kind,
639
861
  mode: item.selectedMode,
640
862
  temporary: item.temporary,
@@ -650,25 +872,64 @@ function buildRecord(all, selected, apiVersion, projectRoot) {
650
872
  ...emptyVolumes(item),
651
873
  ]),
652
874
  ],
653
- binds: mounts.filter((m) => !(0, docker_plan_dto_1.isVolumeMount)(m.kind)).map((m) => m.source),
875
+ binds: [
876
+ ...new Set([
877
+ ...mounts.filter((m) => !(0, docker_plan_dto_1.isVolumeMount)(m.kind)).map((m) => m.source),
878
+ ...emptyBindMounts(item).map((mount) => mount.source),
879
+ ]),
880
+ ],
654
881
  sizeBytes: mounts.some((m) => m.size.unknown)
655
882
  ? null
656
883
  : mounts.reduce((sum, m) => sum + m.size.bytes, 0),
657
884
  };
658
885
  });
659
- const dataGroups = (0, docker_data_groups_1.groupDockerData)(all, projectRoot).filter((g) => g.itemIds.some((id) => selected.some((i) => i.id === id)));
886
+ const dataGroups = (plannedGroups ?? (0, docker_data_groups_1.groupDockerData)(all, projectRoot))
887
+ .filter((g) => g.itemIds.some((id) => selected.some((i) => i.id === id)))
888
+ .flatMap((group) => (0, docker_data_representation_1.splitDataRepresentations)(group, selected.some((item) => group.itemIds.includes(item.id) && item.dataAction === 'keep-vm')
889
+ ? (inventory?.groups ?? [])
890
+ : undefined));
891
+ for (const group of dataGroups) {
892
+ const resetting = selected.filter((item) => group.itemIds.includes(item.id) && item.dataAction === 'start-empty');
893
+ const controller = resetting.find((item) => item.ownership?.class === 'follows-user') ?? resetting[0];
894
+ if (!controller)
895
+ continue;
896
+ const entry = items.find((item) => item.id === controller.id);
897
+ for (const name of group.volumes) {
898
+ if (!entry.volumes.includes(name))
899
+ entry.volumes.push(name);
900
+ if (!volumes.some((volume) => volume.name === name))
901
+ volumes.push({ name, helperImage: helperImage(controller), sizeBytes: 0 });
902
+ }
903
+ for (const path of group.bindPaths.filter((path) => (0, docker_plan_files_1.strictlyWithin)(projectRoot, path)))
904
+ if (!entry.binds.includes(path))
905
+ entry.binds.push(path);
906
+ }
660
907
  const keptGroups = dataGroups.filter((g) => selected.some((i) => g.itemIds.includes(i.id) && i.dataAction === 'keep-vm'));
661
908
  const keptItems = selected.filter((i) => i.dataAction === 'keep-vm');
662
909
  return {
663
910
  dataGroups,
664
911
  keptGroups,
665
912
  discardedHomeGroups: keptGroups.filter((g) => selected.some((i) => g.itemIds.includes(i.id) && i.dataChoice === 'keep-vm')),
913
+ emptyBinds: emptyBindRecords(moving, items, projectRoot, helperImage, fallbackOwner),
666
914
  ensureVolumes: [...new Set(keptItems.flatMap((i) => i.missingData?.volumes ?? []))],
667
915
  ensureBinds: [...new Set(keptItems.flatMap((i) => i.missingData?.bindPaths ?? []))],
668
916
  keptInventory: keptItems.map((i) => {
669
917
  const mounts = (0, docker_plan_fit_1.potentialDataMounts)(i, projectRoot);
918
+ const ownership = i.retainedOwnership ?? (0, docker_ownership_1.ownershipRecord)(i.ownership, (0, docker_ownership_1.dockerTargetUser)(i));
670
919
  return {
671
920
  name: i.name,
921
+ ...(ownership ? { ownership } : {}),
922
+ ...(i.ownership
923
+ ? {
924
+ dataRepresentations: dataGroups
925
+ .filter((group) => group.itemIds.includes(i.id))
926
+ .map(({ volumes, bindPaths, representation }) => ({
927
+ volumes,
928
+ bindPaths,
929
+ ...(representation ? { representation } : {}),
930
+ })),
931
+ }
932
+ : {}),
672
933
  imageId: i.images[0]?.id ?? i.id,
673
934
  volumes: mounts
674
935
  .filter((m) => (0, docker_plan_dto_1.isVolumeMount)(m.kind))
@@ -691,24 +952,61 @@ function buildRecord(all, selected, apiVersion, projectRoot) {
691
952
  stopIds: [...stopIds],
692
953
  stopped: [],
693
954
  networks: [],
955
+ automaticRangeNetworks: networks
956
+ .filter((network) => network.kind === 'automatic-range')
957
+ .map((network) => network.name),
694
958
  verified: { images: [], volumes: [], binds: [], containers: [] },
695
959
  created: { volumes: [], networks: [], containers: [] },
696
960
  replaced: [],
697
961
  bytesTotal: totalBytes(images, volumes, binds),
698
962
  };
699
963
  }
964
+ function startsEmpty(item) {
965
+ return ((item.selectedMode === 'without-data' || item.dataAction === 'start-empty') &&
966
+ item.dataAction !== 'keep-vm');
967
+ }
700
968
  function emptyVolumes(item) {
701
- if (item.selectedMode !== 'without-data' || item.dataAction === 'keep-vm')
969
+ if (!startsEmpty(item))
702
970
  return [];
703
971
  return item.mounts
704
972
  .filter((m) => (0, docker_plan_dto_1.isVolumeMount)(m.kind) && m.driver === 'local')
705
973
  .map((m) => m.source);
706
974
  }
975
+ function emptyBindMounts(item) {
976
+ if (!startsEmpty(item))
977
+ return [];
978
+ return item.mounts.filter((mount) => mount.kind === 'project-bind');
979
+ }
980
+ function emptyBindOwner(item, fallbackOwner) {
981
+ const user = (0, docker_ownership_1.dockerTargetUser)(item);
982
+ const vm = item.ownership?.vm ?? fallbackOwner;
983
+ const uid = (0, docker_ownership_1.dockerNumericUid)(user);
984
+ const gid = user?.split(':')[1];
985
+ if (uid === null || (gid !== undefined && !/^\d+$/.test(gid)))
986
+ return vm;
987
+ return { uid, gid: gid === undefined ? (vm?.gid ?? uid) : Number(gid) };
988
+ }
989
+ function emptyBindRecords(moving, items, projectRoot, helperImage, fallbackOwner) {
990
+ const binds = new Map();
991
+ const ordered = [...moving].sort((a, b) => Number(a.ownership?.class === 'follows-user') - Number(b.ownership?.class === 'follows-user'));
992
+ for (const item of ordered) {
993
+ const reset = item.dataAction === 'start-empty';
994
+ const paths = reset
995
+ ? items
996
+ .find((entry) => entry.id === item.id)
997
+ .binds.filter((path) => (0, docker_plan_files_1.strictlyWithin)(projectRoot, path))
998
+ : emptyBindMounts(item).map((mount) => mount.source);
999
+ const owner = emptyBindOwner(item, fallbackOwner);
1000
+ for (const path of paths)
1001
+ binds.set(path, { path, image: helperImage(item), reset, ...(owner ? { owner } : {}) });
1002
+ }
1003
+ return [...binds.values()];
1004
+ }
707
1005
  function totalBytes(...lists) {
708
1006
  return lists.reduce((sum, list) => sum + list.reduce((s, entry) => s + entry.sizeBytes, 0), 0);
709
1007
  }
710
1008
  function restoresData(record, volume) {
711
- return record.items.some((i) => i.mode !== 'without-data' && i.volumes.includes(volume));
1009
+ return record.items.some((i) => i.mode !== 'without-data' && !i.resetData && i.volumes.includes(volume));
712
1010
  }
713
1011
  function captureSettings(inspect, name, socketPath) {
714
1012
  const config = (0, docker_settings_1.projectDockerCreate)(inspect, socketPath);
@@ -749,38 +1047,55 @@ function captureSettings(inspect, name, socketPath) {
749
1047
  host.Mounts = mounts;
750
1048
  return { name, config };
751
1049
  }
1050
+ function endpoints(config) {
1051
+ return (config?.NetworkingConfig
1052
+ ?.EndpointsConfig ?? {});
1053
+ }
752
1054
  function networkNames(config) {
753
- const endpoints = config.NetworkingConfig
754
- ?.EndpointsConfig;
755
- return Object.keys(endpoints ?? {}).filter((name) => !DEFAULT_NETWORKS.has(name));
1055
+ return Object.keys(endpoints(config)).filter((name) => !docker_settings_1.DEFAULT_NETWORKS.has(name));
756
1056
  }
757
1057
  async function homeNetwork(client, name, signal) {
758
1058
  const network = await client.json('GET', `/networks/${encodeURIComponent(name)}`, undefined, { signal });
759
1059
  if (network.Driver !== 'bridge')
760
1060
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('DOCKER_PLAN_REFUSED', `Network ${name} uses the ${network.Driver} driver; only bridge networks move.`);
1061
+ const ranges = (0, docker_settings_1.ipv4Ranges)(network.IPAM?.Config);
761
1062
  return {
762
1063
  name,
763
1064
  labels: network.Labels ?? {},
764
1065
  internal: network.Internal === true,
765
1066
  attachable: network.Attachable === true,
766
1067
  options: network.Options ?? {},
1068
+ ...(ranges.length ? { ipam: { Config: ranges } } : {}),
767
1069
  };
768
1070
  }
769
1071
  async function homeVolumeLabels(client, name, signal) {
770
1072
  const volume = await client.json('GET', `/volumes/${encodeURIComponent(name)}`, undefined, { signal });
771
1073
  return volume.Labels ?? {};
772
1074
  }
1075
+ function groupImages(images) {
1076
+ const groups = new Map();
1077
+ for (const image of images) {
1078
+ const key = image.tags.length && image.layers ? JSON.stringify(image.layers) : image.image.id;
1079
+ groups.set(key, [...(groups.get(key) ?? []), image]);
1080
+ }
1081
+ return [...groups.values()];
1082
+ }
1083
+ const hasReferences = (loaded) => loaded.images.every((image) => image.references !== undefined);
1084
+ function saveImages(client, names, signal) {
1085
+ const query = [...new Set(names)].map((name) => `names=${encodeURIComponent(name)}`).join('&');
1086
+ return client.stream('GET', `/images/get?${query}`, { signal });
1087
+ }
773
1088
  async function saveImage(client, id, signal) {
774
1089
  const image = await client.json('GET', `/images/${encodeURIComponent(id)}/json`, undefined, { signal });
775
1090
  const names = image.RepoTags?.length ? image.RepoTags : [id];
776
- const query = names.map((n) => `names=${encodeURIComponent(n)}`).join('&');
777
1091
  return {
778
- archive: await client.stream('GET', `/images/get?${query}`, { signal }),
1092
+ archive: await saveImages(client, names, signal),
779
1093
  layers: image.RootFS?.Layers ?? [],
780
1094
  };
781
1095
  }
782
- function loadedVmId(homeId, homeLayers, reported) {
783
- const matches = reported.filter((image) => image.layers.length === homeLayers.length &&
1096
+ function loadedVmId(homeId, homeLayers, reported, tags) {
1097
+ const matches = reported.filter((image) => (tags === undefined || image.references?.some((reference) => tags.includes(reference))) &&
1098
+ image.layers.length === homeLayers.length &&
784
1099
  image.layers.every((layer, index) => layer === homeLayers[index]));
785
1100
  const match = matches.find((image) => image.id === homeId) ?? matches[0];
786
1101
  if (!match)
@@ -790,6 +1105,18 @@ function loadedVmId(homeId, homeLayers, reported) {
790
1105
  function isFile(path) {
791
1106
  return (0, promises_1.stat)(path).then((stats) => stats.isFile(), () => false);
792
1107
  }
1108
+ async function resetBindIsFile(path, allowMissing) {
1109
+ try {
1110
+ const info = await (0, promises_1.stat)(path);
1111
+ if (info.isFile() || info.isDirectory())
1112
+ return info.isFile();
1113
+ }
1114
+ catch (error) {
1115
+ if (allowMissing && error.code === 'ENOENT')
1116
+ return false;
1117
+ }
1118
+ throw new DockerHandoffError('The home bind layout could not be determined safely. Create a fresh Connect plan before resetting its data.', 'DOCKER_BIND_LAYOUT_UNAVAILABLE');
1119
+ }
793
1120
  function vmImageId(record, homeId) {
794
1121
  return record.images.find((image) => image.id === homeId)?.vmId ?? homeId;
795
1122
  }
@@ -827,15 +1154,18 @@ class TransferProgress {
827
1154
  this.add(0);
828
1155
  }
829
1156
  count(source, observe) {
830
- const counter = new node_stream_1.Transform({
1157
+ const counter = this.counter(observe);
1158
+ (0, promises_2.pipeline)(source, counter).catch(() => undefined);
1159
+ return counter;
1160
+ }
1161
+ counter(observe) {
1162
+ return new node_stream_1.Transform({
831
1163
  transform: (chunk, _encoding, callback) => {
832
1164
  observe?.(chunk);
833
1165
  this.add(chunk.length);
834
1166
  callback(null, chunk);
835
1167
  },
836
1168
  });
837
- (0, promises_2.pipeline)(source, counter).catch(() => undefined);
838
- return counter;
839
1169
  }
840
1170
  async finish() {
841
1171
  this.details.item = null;