devchain-cli 0.24.2 → 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 (878) hide show
  1. package/README.md +11 -2
  2. package/dist/build-info.json +2 -2
  3. package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
  4. package/dist/host-install/pins.json +3 -2
  5. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +7 -4
  6. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts.map +1 -1
  7. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js +1 -0
  8. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -1
  9. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +26 -26
  10. package/dist/node_modules/@devchain/shared/schemas/host-provider-clis.d.ts +6 -6
  11. package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts +3855 -3855
  12. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  13. package/dist/server/common/config/env.config.d.ts +3 -0
  14. package/dist/server/common/config/env.config.js +7 -0
  15. package/dist/server/common/config/env.config.js.map +1 -1
  16. package/dist/server/common/config/host-image.json +3 -3
  17. package/dist/server/common/config/integration-admission.d.ts +1 -0
  18. package/dist/server/common/config/integration-admission.js +6 -2
  19. package/dist/server/common/config/integration-admission.js.map +1 -1
  20. package/dist/server/common/http/browser-request-guard.d.ts +8 -0
  21. package/dist/server/common/http/browser-request-guard.js +61 -0
  22. package/dist/server/common/http/browser-request-guard.js.map +1 -0
  23. package/dist/server/common/test/fake-docker-engine.server.d.ts +8 -0
  24. package/dist/server/common/test/fake-docker-engine.server.js +34 -1
  25. package/dist/server/common/test/fake-docker-engine.server.js.map +1 -1
  26. package/dist/server/common/test/tls-fixture.d.ts +2 -1
  27. package/dist/server/common/test/tls-fixture.js +47 -5
  28. package/dist/server/common/test/tls-fixture.js.map +1 -1
  29. package/dist/server/modules/agents/agents.module.js +1 -8
  30. package/dist/server/modules/agents/agents.module.js.map +1 -1
  31. package/dist/server/modules/agents/controllers/agents.controller.d.ts +4 -4
  32. package/dist/server/modules/agents/controllers/agents.controller.js +6 -10
  33. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
  34. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js +7 -7
  35. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js.map +1 -1
  36. package/dist/server/modules/cloud/services/cloud-session-manager.service.d.ts +12 -0
  37. package/dist/server/modules/cloud/services/cloud-session-manager.service.js +78 -9
  38. package/dist/server/modules/cloud/services/cloud-session-manager.service.js.map +1 -1
  39. package/dist/server/modules/cloud/services/notification-recipient-resolver.service.d.ts +2 -2
  40. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js +9 -3
  41. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
  42. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js +2 -2
  43. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js.map +1 -1
  44. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.d.ts +4 -4
  45. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js +6 -6
  46. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js.map +1 -1
  47. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +2 -2
  48. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
  49. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.d.ts +3 -0
  50. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +1 -0
  51. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js.map +1 -1
  52. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.d.ts +2 -2
  53. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -1
  54. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js +3 -2
  55. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js.map +1 -1
  56. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.d.ts +14 -3
  57. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +54 -14
  58. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
  59. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js.map +1 -1
  60. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.d.ts +2 -2
  61. package/dist/server/modules/core/controllers/docker-archive-owners.d.ts +29 -0
  62. package/dist/server/modules/core/controllers/docker-archive-owners.js +226 -0
  63. package/dist/server/modules/core/controllers/docker-archive-owners.js.map +1 -0
  64. package/dist/server/modules/core/controllers/docker-engine.client.d.ts +4 -0
  65. package/dist/server/modules/core/controllers/docker-engine.client.js +38 -0
  66. package/dist/server/modules/core/controllers/docker-engine.client.js.map +1 -1
  67. package/dist/server/modules/core/controllers/health.controller.d.ts +7 -6
  68. package/dist/server/modules/core/controllers/health.controller.js +1 -1
  69. package/dist/server/modules/core/controllers/health.controller.js.map +1 -1
  70. package/dist/server/modules/core/controllers/runtime.controller.d.ts +2 -56
  71. package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
  72. package/dist/server/modules/core/services/preflight.service.d.ts +2 -2
  73. package/dist/server/modules/core/services/preflight.service.js +4 -3
  74. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  75. package/dist/server/modules/e2ee/services/e2ee-device-store.service.d.ts +3 -0
  76. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +12 -4
  77. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
  78. package/dist/server/modules/e2ee/services/e2ee-pairing.service.d.ts +1 -0
  79. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js +4 -0
  80. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js.map +1 -1
  81. package/dist/server/modules/e2ee/services/e2ee-trust.service.d.ts +6 -2
  82. package/dist/server/modules/e2ee/services/e2ee-trust.service.js +16 -5
  83. package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
  84. package/dist/server/modules/epic-time/epic-time.module.js +0 -2
  85. package/dist/server/modules/epic-time/epic-time.module.js.map +1 -1
  86. package/dist/server/modules/epic-time/services/agent-time-accounting.service.d.ts +3 -3
  87. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js +12 -12
  88. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js.map +1 -1
  89. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +2 -2
  90. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
  91. package/dist/server/modules/epic-time/services/epic-time.service.d.ts +3 -3
  92. package/dist/server/modules/epic-time/services/epic-time.service.js +7 -7
  93. package/dist/server/modules/epic-time/services/epic-time.service.js.map +1 -1
  94. package/dist/server/modules/epics/epics.module.js +0 -2
  95. package/dist/server/modules/epics/epics.module.js.map +1 -1
  96. package/dist/server/modules/epics/services/epic-relations.service.d.ts +1 -4
  97. package/dist/server/modules/epics/services/epic-relations.service.js +2 -22
  98. package/dist/server/modules/epics/services/epic-relations.service.js.map +1 -1
  99. package/dist/server/modules/epics/services/epics.service.d.ts +4 -4
  100. package/dist/server/modules/epics/services/epics.service.js +11 -19
  101. package/dist/server/modules/epics/services/epics.service.js.map +1 -1
  102. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +2 -2
  103. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +3 -3
  104. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
  105. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.d.ts +2 -2
  106. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js +2 -2
  107. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js.map +1 -1
  108. package/dist/server/modules/events/catalog/on-catalog-event.d.ts +5 -0
  109. package/dist/server/modules/events/catalog/on-catalog-event.js +8 -0
  110. package/dist/server/modules/events/catalog/on-catalog-event.js.map +1 -0
  111. package/dist/server/modules/events/signals/session-turn-signals.js.map +1 -0
  112. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.d.ts +0 -5
  113. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js +8 -44
  114. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js.map +1 -1
  115. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.d.ts +0 -5
  116. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js +9 -45
  117. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js.map +1 -1
  118. package/dist/server/modules/external-integrations/adapters/vendor-shared.d.ts +7 -2
  119. package/dist/server/modules/external-integrations/adapters/vendor-shared.js +36 -0
  120. package/dist/server/modules/external-integrations/adapters/vendor-shared.js.map +1 -1
  121. package/dist/server/modules/external-integrations/connections/integration-connections.service.d.ts +2 -2
  122. package/dist/server/modules/external-integrations/connections/integration-connections.service.js.map +1 -1
  123. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -2
  124. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
  125. package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +2 -2
  126. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
  127. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.d.ts +2 -2
  128. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
  129. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.d.ts +2 -2
  130. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js.map +1 -1
  131. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.d.ts +2 -2
  132. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js.map +1 -1
  133. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js +1 -2
  134. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js.map +1 -1
  135. package/dist/server/modules/file-sync/file-sync.dto.d.ts +19 -6
  136. package/dist/server/modules/file-sync/file-sync.dto.js +8 -1
  137. package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
  138. package/dist/server/modules/file-sync/file-sync.module.js +0 -2
  139. package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
  140. package/dist/server/modules/file-sync/file-sync.service.d.ts +3 -1
  141. package/dist/server/modules/file-sync/file-sync.service.js +8 -4
  142. package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
  143. package/dist/server/modules/file-sync/git-guard.dto.d.ts +2 -2
  144. package/dist/server/modules/file-sync/home-git-guard.service.d.ts +1 -1
  145. package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
  146. package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +4 -5
  147. package/dist/server/modules/file-sync/host-git-guard.controller.js +3 -3
  148. package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -1
  149. package/dist/server/modules/file-sync/host-git-index.controller.d.ts +3 -2
  150. package/dist/server/modules/file-sync/host-git-index.controller.js +2 -2
  151. package/dist/server/modules/file-sync/host-git-index.controller.js.map +1 -1
  152. package/dist/server/modules/file-sync/host-sync.controller.d.ts +18 -21
  153. package/dist/server/modules/file-sync/host-sync.controller.js +21 -29
  154. package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
  155. package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +3 -0
  156. package/dist/server/modules/file-sync/ignore-pattern-matcher.js +58 -14
  157. package/dist/server/modules/file-sync/ignore-pattern-matcher.js.map +1 -1
  158. package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +11 -27
  159. package/dist/server/modules/file-sync/sync-path-inspection.dto.js +1 -9
  160. package/dist/server/modules/file-sync/sync-path-inspection.dto.js.map +1 -1
  161. package/dist/server/modules/file-sync/sync-path-inspector.d.ts +1 -1
  162. package/dist/server/modules/file-sync/sync-path-inspector.js +20 -4
  163. package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -1
  164. package/dist/server/modules/file-sync/syncthing-launcher.d.ts +4 -0
  165. package/dist/server/modules/file-sync/syncthing-launcher.js +21 -1
  166. package/dist/server/modules/file-sync/syncthing-launcher.js.map +1 -1
  167. package/dist/server/modules/file-sync/syncthing-manager.service.d.ts +2 -0
  168. package/dist/server/modules/file-sync/syncthing-manager.service.js +27 -11
  169. package/dist/server/modules/file-sync/syncthing-manager.service.js.map +1 -1
  170. package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +5 -2
  171. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +3 -0
  172. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
  173. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.d.ts +3 -0
  174. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js +11 -0
  175. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js.map +1 -1
  176. package/dist/server/modules/git/dtos/git.dto.d.ts +4 -4
  177. package/dist/server/modules/git/services/git.service.d.ts +3 -2
  178. package/dist/server/modules/git/services/git.service.js +12 -0
  179. package/dist/server/modules/git/services/git.service.js.map +1 -1
  180. package/dist/server/modules/guests/guests.module.js +1 -1
  181. package/dist/server/modules/guests/guests.module.js.map +1 -1
  182. package/dist/server/modules/guests/services/guest-health.service.d.ts +3 -1
  183. package/dist/server/modules/guests/services/guest-health.service.js +15 -5
  184. package/dist/server/modules/guests/services/guest-health.service.js.map +1 -1
  185. package/dist/server/modules/guests/services/guests.service.d.ts +2 -2
  186. package/dist/server/modules/guests/services/guests.service.js +0 -2
  187. package/dist/server/modules/guests/services/guests.service.js.map +1 -1
  188. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +4 -4
  189. package/dist/server/modules/hooks/services/hooks.service.js +1 -1
  190. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  191. package/dist/server/modules/hooks/services/pending-ask-user-question.service.d.ts +3 -6
  192. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js +3 -3
  193. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js.map +1 -1
  194. package/dist/server/modules/mcp/mcp-full.module.js +0 -2
  195. package/dist/server/modules/mcp/mcp-full.module.js.map +1 -1
  196. package/dist/server/modules/mcp/services/handlers/chat-context.d.ts +2 -2
  197. package/dist/server/modules/mcp/services/handlers/chat-tools.js +1 -1
  198. package/dist/server/modules/mcp/services/handlers/chat-tools.js.map +1 -1
  199. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +3 -4
  200. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +4 -4
  201. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
  202. package/dist/server/modules/mcp/services/mcp.service.d.ts +2 -2
  203. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  204. package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +4 -4
  205. package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
  206. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js +1 -1
  207. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js.map +1 -1
  208. package/dist/server/modules/profiles/controllers/profiles.controller.d.ts +7 -31
  209. package/dist/server/modules/profiles/controllers/profiles.controller.js +10 -13
  210. package/dist/server/modules/profiles/controllers/profiles.controller.js.map +1 -1
  211. package/dist/server/modules/profiles/dto.d.ts +17 -0
  212. package/dist/server/modules/profiles/dto.js.map +1 -1
  213. package/dist/server/modules/profiles/profiles.module.js +1 -2
  214. package/dist/server/modules/profiles/profiles.module.js.map +1 -1
  215. package/dist/server/modules/profiles/services/provider-configs.service.d.ts +1 -4
  216. package/dist/server/modules/profiles/services/provider-configs.service.js +3 -12
  217. package/dist/server/modules/profiles/services/provider-configs.service.js.map +1 -1
  218. package/dist/server/modules/project-communication/project-communication.module.js +1 -2
  219. package/dist/server/modules/project-communication/project-communication.module.js.map +1 -1
  220. package/dist/server/modules/project-communication/project-communication.service.d.ts +4 -4
  221. package/dist/server/modules/project-communication/project-communication.service.js +8 -8
  222. package/dist/server/modules/project-communication/project-communication.service.js.map +1 -1
  223. package/dist/server/modules/projects/controllers/projects.controller.d.ts +4 -17
  224. package/dist/server/modules/projects/controllers/projects.controller.js +2 -9
  225. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  226. package/dist/server/modules/projects/dtos/project-presets.dto.d.ts +5 -0
  227. package/dist/server/modules/projects/dtos/project-presets.dto.js +3 -0
  228. package/dist/server/modules/projects/dtos/project-presets.dto.js.map +1 -0
  229. package/dist/server/modules/projects/helpers/project-export.d.ts +2 -2
  230. package/dist/server/modules/projects/helpers/project-export.js.map +1 -1
  231. package/dist/server/modules/projects/helpers/project-import.d.ts +3 -2
  232. package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
  233. package/dist/server/modules/projects/helpers/project-presets.helpers.d.ts +2 -2
  234. package/dist/server/modules/projects/helpers/project-presets.helpers.js.map +1 -1
  235. package/dist/server/modules/projects/helpers/template-loader.d.ts +3 -2
  236. package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
  237. package/dist/server/modules/projects/projects.module.js +0 -2
  238. package/dist/server/modules/projects/projects.module.js.map +1 -1
  239. package/dist/server/modules/projects/services/project-provider-provisioning.service.d.ts +2 -2
  240. package/dist/server/modules/projects/services/project-provider-provisioning.service.js.map +1 -1
  241. package/dist/server/modules/projects/services/project-registry-import.service.d.ts +2 -2
  242. package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
  243. package/dist/server/modules/projects/services/project-template-upgrade.service.d.ts +3 -3
  244. package/dist/server/modules/projects/services/project-template-upgrade.service.js +6 -7
  245. package/dist/server/modules/projects/services/project-template-upgrade.service.js.map +1 -1
  246. package/dist/server/modules/projects/services/projects.service.d.ts +4 -4
  247. package/dist/server/modules/projects/services/projects.service.js +7 -9
  248. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  249. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.d.ts +2 -2
  250. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.js.map +1 -1
  251. package/dist/server/modules/projects/template-codec/codecs/teams.codec.d.ts +2 -2
  252. package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
  253. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.d.ts +1 -1
  254. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js.map +1 -1
  255. package/dist/server/modules/projects/template-codec/template-section-codec.d.ts +3 -3
  256. package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +1 -3
  257. package/dist/server/modules/prompts/controllers/prompts.controller.js +3 -8
  258. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
  259. package/dist/server/modules/prompts/prompts.module.js +1 -2
  260. package/dist/server/modules/prompts/prompts.module.js.map +1 -1
  261. package/dist/server/modules/providers/adapters/antigravity.adapter.d.ts +1 -1
  262. package/dist/server/modules/providers/adapters/antigravity.adapter.js +2 -1
  263. package/dist/server/modules/providers/adapters/antigravity.adapter.js.map +1 -1
  264. package/dist/server/modules/providers/adapters/antigravity.traits.d.ts +2 -0
  265. package/dist/server/modules/providers/adapters/antigravity.traits.js +9 -0
  266. package/dist/server/modules/providers/adapters/antigravity.traits.js.map +1 -0
  267. package/dist/server/modules/providers/adapters/capabilities/hook.capability.d.ts +0 -1
  268. package/dist/server/modules/providers/adapters/capabilities/project-provisioning.capability.d.ts +0 -1
  269. package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +0 -1
  270. package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
  271. package/dist/server/modules/providers/adapters/claude.adapter.d.ts +1 -3
  272. package/dist/server/modules/providers/adapters/claude.adapter.js +5 -8
  273. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
  274. package/dist/server/modules/providers/adapters/claude.traits.d.ts +2 -0
  275. package/dist/server/modules/providers/adapters/claude.traits.js +9 -0
  276. package/dist/server/modules/providers/adapters/claude.traits.js.map +1 -0
  277. package/dist/server/modules/providers/adapters/codex.adapter.d.ts +1 -2
  278. package/dist/server/modules/providers/adapters/codex.adapter.js +3 -5
  279. package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
  280. package/dist/server/modules/providers/adapters/codex.traits.d.ts +2 -0
  281. package/dist/server/modules/providers/adapters/codex.traits.js +9 -0
  282. package/dist/server/modules/providers/adapters/codex.traits.js.map +1 -0
  283. package/dist/server/modules/providers/adapters/copilot.adapter.d.ts +1 -3
  284. package/dist/server/modules/providers/adapters/copilot.adapter.js +3 -6
  285. package/dist/server/modules/providers/adapters/copilot.adapter.js.map +1 -1
  286. package/dist/server/modules/providers/adapters/copilot.traits.d.ts +2 -0
  287. package/dist/server/modules/providers/adapters/copilot.traits.js +9 -0
  288. package/dist/server/modules/providers/adapters/copilot.traits.js.map +1 -0
  289. package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +1 -1
  290. package/dist/server/modules/providers/adapters/opencode.adapter.js +3 -4
  291. package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -1
  292. package/dist/server/modules/providers/adapters/opencode.traits.d.ts +2 -0
  293. package/dist/server/modules/providers/adapters/opencode.traits.js +9 -0
  294. package/dist/server/modules/providers/adapters/opencode.traits.js.map +1 -0
  295. package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +2 -2
  296. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
  297. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +2 -0
  298. package/dist/server/modules/providers/adapters/provider-traits.d.ts +9 -0
  299. package/dist/server/modules/providers/adapters/provider-traits.js +28 -0
  300. package/dist/server/modules/providers/adapters/provider-traits.js.map +1 -0
  301. package/dist/server/modules/providers/controllers/provider-efforts.controller.d.ts +9 -7
  302. package/dist/server/modules/providers/controllers/provider-efforts.controller.js.map +1 -1
  303. package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +1 -1
  304. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
  305. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.d.ts +2 -2
  306. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.js.map +1 -1
  307. package/dist/server/modules/providers/controllers/providers.controller.d.ts +1 -1
  308. package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
  309. package/dist/server/modules/providers/provider-traits.types.d.ts +5 -0
  310. package/dist/server/modules/providers/provider-traits.types.js +3 -0
  311. package/dist/server/modules/providers/provider-traits.types.js.map +1 -0
  312. package/dist/server/modules/providers/providers.module.js +0 -2
  313. package/dist/server/modules/providers/providers.module.js.map +1 -1
  314. package/dist/server/modules/providers/services/mcp-provider-registration.service.d.ts +2 -2
  315. package/dist/server/modules/providers/services/mcp-provider-registration.service.js +2 -1
  316. package/dist/server/modules/providers/services/mcp-provider-registration.service.js.map +1 -1
  317. package/dist/server/modules/providers/services/provider-cli-installer.service.d.ts +1 -1
  318. package/dist/server/modules/providers/services/provider-cli-installer.service.js.map +1 -1
  319. package/dist/server/modules/providers/services/provider-discovery.service.d.ts +1 -1
  320. package/dist/server/modules/providers/services/provider-discovery.service.js.map +1 -1
  321. package/dist/server/modules/providers/services/provider-effort-seeding.service.d.ts +1 -1
  322. package/dist/server/modules/providers/services/provider-effort-seeding.service.js.map +1 -1
  323. package/dist/server/modules/providers/services/provider-mcp-ensure.service.d.ts +4 -4
  324. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js +8 -7
  325. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js.map +1 -1
  326. package/dist/server/modules/providers/services/provider-plugin-policy.service.d.ts +2 -2
  327. package/dist/server/modules/providers/services/provider-plugin-policy.service.js.map +1 -1
  328. package/dist/server/modules/providers/services/provider-plugins.service.d.ts +1 -1
  329. package/dist/server/modules/providers/services/provider-plugins.service.js.map +1 -1
  330. package/dist/server/modules/providers/services/provider-project-sync.service.d.ts +4 -4
  331. package/dist/server/modules/providers/services/provider-project-sync.service.js +6 -6
  332. package/dist/server/modules/providers/services/provider-project-sync.service.js.map +1 -1
  333. package/dist/server/modules/providers/services/provider-state-manager.service.d.ts +2 -2
  334. package/dist/server/modules/providers/services/provider-state-manager.service.js +1 -1
  335. package/dist/server/modules/providers/services/provider-state-manager.service.js.map +1 -1
  336. package/dist/server/modules/providers/utils/claude-config.js.map +1 -0
  337. package/dist/server/modules/providers/utils/codex-config.js.map +1 -0
  338. package/dist/server/modules/providers/utils/env-builder.js.map +1 -0
  339. package/dist/server/modules/{sessions → providers}/utils/profile-options.d.ts +1 -1
  340. package/dist/server/modules/providers/utils/profile-options.js.map +1 -0
  341. package/dist/server/modules/registry/controllers/registry.controller.d.ts +2 -2
  342. package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
  343. package/dist/server/modules/registry/controllers/templates.controller.d.ts +3 -3
  344. package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +3 -1
  345. package/dist/server/modules/registry/services/registry-orchestration.service.js +14 -2
  346. package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
  347. package/dist/server/modules/remotes/admission/project-write-admission.module.js +3 -5
  348. package/dist/server/modules/remotes/admission/project-write-admission.module.js.map +1 -1
  349. package/dist/server/modules/remotes/admission/project-write-admission.service.d.ts +6 -17
  350. package/dist/server/modules/remotes/admission/project-write-admission.service.js +11 -62
  351. package/dist/server/modules/remotes/admission/project-write-admission.service.js.map +1 -1
  352. package/dist/server/modules/remotes/contract/host-routes.d.ts +27536 -0
  353. package/dist/server/modules/remotes/contract/host-routes.js +405 -0
  354. package/dist/server/modules/remotes/contract/host-routes.js.map +1 -0
  355. package/dist/server/modules/remotes/docker/docker-compose-user-fix.d.ts +3 -0
  356. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js +212 -0
  357. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js.map +1 -0
  358. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.d.ts +27 -0
  359. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js +185 -0
  360. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js.map +1 -0
  361. package/dist/server/modules/remotes/docker/docker-copy-back.d.ts +15 -1
  362. package/dist/server/modules/remotes/docker/docker-copy-back.dto.d.ts +8 -1
  363. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js +3 -1
  364. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js.map +1 -1
  365. package/dist/server/modules/remotes/docker/docker-copy-back.js +751 -149
  366. package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
  367. package/dist/server/modules/remotes/docker/docker-data-groups.d.ts +3 -3
  368. package/dist/server/modules/remotes/docker/docker-data-groups.js +20 -6
  369. package/dist/server/modules/remotes/docker/docker-data-groups.js.map +1 -1
  370. package/dist/server/modules/remotes/docker/docker-data-representation.d.ts +9 -0
  371. package/dist/server/modules/remotes/docker/docker-data-representation.js +85 -0
  372. package/dist/server/modules/remotes/docker/docker-data-representation.js.map +1 -0
  373. package/dist/server/modules/remotes/docker/docker-handoff.d.ts +7 -4
  374. package/dist/server/modules/remotes/docker/docker-handoff.js +258 -32
  375. package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
  376. package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +37 -7
  377. package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
  378. package/dist/server/modules/remotes/docker/docker-ownership.d.ts +26 -0
  379. package/dist/server/modules/remotes/docker/docker-ownership.js +182 -0
  380. package/dist/server/modules/remotes/docker/docker-ownership.js.map +1 -0
  381. package/dist/server/modules/remotes/docker/docker-plan-files.d.ts +1 -0
  382. package/dist/server/modules/remotes/docker/docker-plan-files.js +4 -0
  383. package/dist/server/modules/remotes/docker/docker-plan-files.js.map +1 -1
  384. package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +3 -3
  385. package/dist/server/modules/remotes/docker/docker-plan-fit.js +7 -2
  386. package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
  387. package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +1 -1
  388. package/dist/server/modules/remotes/docker/docker-plan-policy.js +105 -14
  389. package/dist/server/modules/remotes/docker/docker-plan-policy.js.map +1 -1
  390. package/dist/server/modules/remotes/docker/docker-plan-source.service.d.ts +7 -2
  391. package/dist/server/modules/remotes/docker/docker-plan-source.service.js +215 -14
  392. package/dist/server/modules/remotes/docker/docker-plan-source.service.js.map +1 -1
  393. package/dist/server/modules/remotes/docker/docker-plan.controller.d.ts +3 -1
  394. package/dist/server/modules/remotes/docker/docker-plan.controller.js +39 -0
  395. package/dist/server/modules/remotes/docker/docker-plan.controller.js.map +1 -1
  396. package/dist/server/modules/remotes/docker/docker-plan.dto.d.ts +112 -14
  397. package/dist/server/modules/remotes/docker/docker-plan.dto.js +11 -2
  398. package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
  399. package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +6 -3
  400. package/dist/server/modules/remotes/docker/docker-plan.service.js +207 -9
  401. package/dist/server/modules/remotes/docker/docker-plan.service.js.map +1 -1
  402. package/dist/server/modules/remotes/docker/docker-project-compose.d.ts +1 -1
  403. package/dist/server/modules/remotes/docker/docker-project-compose.js +2 -3
  404. package/dist/server/modules/remotes/docker/docker-project-compose.js.map +1 -1
  405. package/dist/server/modules/remotes/docker/docker-project-resources.d.ts +14 -0
  406. package/dist/server/modules/remotes/docker/docker-project-resources.js +33 -0
  407. package/dist/server/modules/remotes/docker/docker-project-resources.js.map +1 -0
  408. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js +3 -3
  409. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js.map +1 -1
  410. package/dist/server/modules/remotes/host/host-api-key.module.js +3 -2
  411. package/dist/server/modules/remotes/host/host-api-key.module.js.map +1 -1
  412. package/dist/server/modules/remotes/host/host-api-key.service.d.ts +6 -4
  413. package/dist/server/modules/remotes/host/host-api-key.service.js +30 -10
  414. package/dist/server/modules/remotes/host/host-api-key.service.js.map +1 -1
  415. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.d.ts +14 -0
  416. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js +91 -0
  417. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js.map +1 -0
  418. package/dist/server/modules/remotes/host/host-docker.dto.d.ts +41 -0
  419. package/dist/server/modules/remotes/host/host-docker.dto.js +12 -2
  420. package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
  421. package/dist/server/modules/remotes/host/host-docker.service.d.ts +9 -2
  422. package/dist/server/modules/remotes/host/host-docker.service.js +174 -78
  423. package/dist/server/modules/remotes/host/host-docker.service.js.map +1 -1
  424. package/dist/server/modules/remotes/host/host-helper.dto.d.ts +46 -0
  425. package/dist/server/modules/remotes/host/host-helper.dto.js +56 -0
  426. package/dist/server/modules/remotes/host/host-helper.dto.js.map +1 -0
  427. package/dist/server/modules/remotes/host/host-helper.module.d.ts +2 -0
  428. package/dist/server/modules/remotes/host/host-helper.module.js +23 -0
  429. package/dist/server/modules/remotes/host/host-helper.module.js.map +1 -0
  430. package/dist/server/modules/remotes/host/host-helper.service.d.ts +1 -39
  431. package/dist/server/modules/remotes/host/host-helper.service.js +5 -18
  432. package/dist/server/modules/remotes/host/host-helper.service.js.map +1 -1
  433. package/dist/server/modules/remotes/host/host-provider-auth.controller.d.ts +4 -2
  434. package/dist/server/modules/remotes/host/host-provider-auth.controller.js +3 -29
  435. package/dist/server/modules/remotes/host/host-provider-auth.controller.js.map +1 -1
  436. package/dist/server/modules/remotes/host/host-provider-auth.dto.d.ts +67 -0
  437. package/dist/server/modules/remotes/host/host-provider-auth.dto.js +32 -0
  438. package/dist/server/modules/remotes/host/host-provider-auth.dto.js.map +1 -0
  439. package/dist/server/modules/remotes/host/host-provider-auth.service.d.ts +1 -8
  440. package/dist/server/modules/remotes/host/host-provider-auth.service.js.map +1 -1
  441. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.d.ts +5 -37
  442. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js +5 -5
  443. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js.map +1 -1
  444. package/dist/server/modules/remotes/host/host-skill-settings.controller.d.ts +5 -9
  445. package/dist/server/modules/remotes/host/host-skill-settings.controller.js +2 -1
  446. package/dist/server/modules/remotes/host/host-skill-settings.controller.js.map +1 -1
  447. package/dist/server/modules/remotes/host/host-skill-settings.service.d.ts +2 -2
  448. package/dist/server/modules/remotes/host/host-skill-settings.service.js.map +1 -1
  449. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js +2 -4
  450. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js.map +1 -1
  451. package/dist/server/modules/remotes/host/host-ssh-keys.dto.d.ts +8 -0
  452. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js +7 -0
  453. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js.map +1 -0
  454. package/dist/server/modules/remotes/host/host-transcripts.controller.d.ts +3 -2
  455. package/dist/server/modules/remotes/host/host-transcripts.controller.js +2 -1
  456. package/dist/server/modules/remotes/host/host-transcripts.controller.js.map +1 -1
  457. package/dist/server/modules/remotes/host/host-update.controller.d.ts +6 -11
  458. package/dist/server/modules/remotes/host/host-update.controller.js +5 -42
  459. package/dist/server/modules/remotes/host/host-update.controller.js.map +1 -1
  460. package/dist/server/modules/remotes/host/host.controller.d.ts +10 -14
  461. package/dist/server/modules/remotes/host/host.controller.js.map +1 -1
  462. package/dist/server/modules/remotes/host/project-freeze.service.d.ts +4 -5
  463. package/dist/server/modules/remotes/host/project-freeze.service.js +14 -20
  464. package/dist/server/modules/remotes/host/project-freeze.service.js.map +1 -1
  465. package/dist/server/modules/remotes/host/provider-baseline.service.js +1 -1
  466. package/dist/server/modules/remotes/host/provider-baseline.service.js.map +1 -1
  467. package/dist/server/modules/remotes/operations/detach.operation.d.ts +5 -1
  468. package/dist/server/modules/remotes/operations/detach.operation.js +12 -2
  469. package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
  470. package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +732 -5
  471. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +41 -5
  472. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js.map +1 -1
  473. package/dist/server/modules/remotes/operations/remote-host.client.d.ts +22 -530
  474. package/dist/server/modules/remotes/operations/remote-host.client.js +145 -497
  475. package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
  476. package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +19 -12
  477. package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +2 -0
  478. package/dist/server/modules/remotes/operations/remote-operation.runner.js +22 -6
  479. package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
  480. package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +2 -2
  481. package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
  482. package/dist/server/modules/remotes/operations/update-logins.operation.d.ts +1 -1
  483. package/dist/server/modules/remotes/operations/vm-operations.dto.d.ts +7 -7
  484. package/dist/server/modules/remotes/remotes.module.js +6 -2
  485. package/dist/server/modules/remotes/remotes.module.js.map +1 -1
  486. package/dist/server/modules/remotes/services/remote-skill-settings.service.d.ts +2 -2
  487. package/dist/server/modules/remotes/services/remote-skill-settings.service.js.map +1 -1
  488. package/dist/server/modules/remotes/sync/file-sync-failures.service.js +0 -2
  489. package/dist/server/modules/remotes/sync/file-sync-failures.service.js.map +1 -1
  490. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.d.ts +4 -2
  491. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +38 -4
  492. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js.map +1 -1
  493. package/dist/server/modules/remotes/sync/project-file-sync.controller.d.ts +0 -2
  494. package/dist/server/modules/remotes/sync/project-file-sync.controller.js +1 -15
  495. package/dist/server/modules/remotes/sync/project-file-sync.controller.js.map +1 -1
  496. package/dist/server/modules/remotes/sync/remote-file-sync.dto.d.ts +0 -2
  497. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js.map +1 -1
  498. package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +5 -6
  499. package/dist/server/modules/remotes/sync/remote-file-sync.service.js +62 -121
  500. package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
  501. package/dist/server/modules/remotes/time/project-time-settler.dto.d.ts +21 -0
  502. package/dist/server/modules/remotes/time/project-time-settler.dto.js +12 -0
  503. package/dist/server/modules/remotes/time/project-time-settler.dto.js.map +1 -0
  504. package/dist/server/modules/remotes/time/project-time-settler.service.d.ts +2 -21
  505. package/dist/server/modules/remotes/time/project-time-settler.service.js +1 -9
  506. package/dist/server/modules/remotes/time/project-time-settler.service.js.map +1 -1
  507. package/dist/server/modules/remotes/transcripts/transcript-transfer.dto.d.ts +4 -4
  508. package/dist/server/modules/remotes/transport/host-transport.d.ts +27 -0
  509. package/dist/server/modules/remotes/transport/host-transport.js +105 -0
  510. package/dist/server/modules/remotes/transport/host-transport.js.map +1 -0
  511. package/dist/server/modules/remotes/vm-user-identity.d.ts +1 -0
  512. package/dist/server/modules/remotes/vm-user-identity.js +8 -1
  513. package/dist/server/modules/remotes/vm-user-identity.js.map +1 -1
  514. package/dist/server/modules/reviews/reviews.module.js +1 -9
  515. package/dist/server/modules/reviews/reviews.module.js.map +1 -1
  516. package/dist/server/modules/reviews/services/review-suggestion-applier.service.d.ts +4 -4
  517. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js +6 -6
  518. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js.map +1 -1
  519. package/dist/server/modules/reviews/services/reviews.service.d.ts +4 -4
  520. package/dist/server/modules/reviews/services/reviews.service.js +7 -12
  521. package/dist/server/modules/reviews/services/reviews.service.js.map +1 -1
  522. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js +2 -2
  523. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js.map +1 -1
  524. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.d.ts +11 -12
  525. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js +37 -25
  526. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js.map +1 -1
  527. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.d.ts +11 -9
  528. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +43 -1
  529. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
  530. package/dist/server/modules/runtime-context-capture/index.d.ts +3 -2
  531. package/dist/server/modules/runtime-context-capture/index.js.map +1 -1
  532. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.d.ts +41 -0
  533. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js +3 -0
  534. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js.map +1 -0
  535. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js +1 -2
  536. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js.map +1 -1
  537. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.d.ts +4 -4
  538. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js +6 -6
  539. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js.map +1 -1
  540. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.d.ts +2 -3
  541. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js +9 -12
  542. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js.map +1 -1
  543. package/dist/server/modules/seeders/services/data-seeder.service.d.ts +2 -3
  544. package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
  545. package/dist/server/modules/seeders/types/seeder.types.d.ts +2 -2
  546. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +1 -1
  547. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +4 -2
  548. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +3 -0
  549. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  550. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +4 -2
  551. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +3 -0
  552. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  553. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +1 -1
  554. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +2 -0
  555. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
  556. package/dist/server/modules/session-reader/data/pricing.json +1943 -1777
  557. package/dist/server/modules/session-reader/services/transcript-persistence.listener.d.ts +8 -18
  558. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +89 -172
  559. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -1
  560. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +12 -12
  561. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  562. package/dist/server/modules/session-reader/session-reader.module.js +2 -0
  563. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
  564. package/dist/server/modules/session-terminal-runtime/dtos/active-session-info.dto.js.map +1 -0
  565. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js +2 -1
  566. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js.map +1 -1
  567. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.d.ts +8 -4
  568. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js +47 -18
  569. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js.map +1 -1
  570. package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +3 -5
  571. package/dist/server/modules/sessions/controllers/sessions.controller.js +8 -11
  572. package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
  573. package/dist/server/modules/sessions/services/active-session-lookup.service.d.ts +4 -5
  574. package/dist/server/modules/sessions/services/active-session-lookup.service.js +9 -66
  575. package/dist/server/modules/sessions/services/active-session-lookup.service.js.map +1 -1
  576. package/dist/server/modules/sessions/services/message-pool.types.d.ts +1 -1
  577. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +2 -2
  578. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +2 -2
  579. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
  580. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.d.ts +3 -5
  581. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +56 -95
  582. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -1
  583. package/dist/server/modules/sessions/services/session-launcher-facade.service.d.ts +1 -1
  584. package/dist/server/modules/sessions/services/session-launcher-facade.service.js +1 -1
  585. package/dist/server/modules/sessions/services/session-launcher-facade.service.js.map +1 -1
  586. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.d.ts +3 -3
  587. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js +8 -8
  588. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js.map +1 -1
  589. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +4 -0
  590. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +10 -2
  591. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  592. package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.d.ts +1 -1
  593. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.d.ts +7 -7
  594. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +30 -29
  595. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  596. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +4 -2
  597. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +8 -9
  598. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  599. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.d.ts +3 -3
  600. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js +7 -7
  601. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js.map +1 -1
  602. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +4 -7
  603. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +111 -211
  604. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  605. package/dist/server/modules/sessions/services/sessions.service.d.ts +8 -10
  606. package/dist/server/modules/sessions/services/sessions.service.js +26 -158
  607. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  608. package/dist/server/modules/sessions/sessions-lifecycle.module.js +2 -2
  609. package/dist/server/modules/sessions/sessions-lifecycle.module.js.map +1 -1
  610. package/dist/server/modules/sessions/sessions-read.module.js +2 -2
  611. package/dist/server/modules/sessions/sessions-read.module.js.map +1 -1
  612. package/dist/server/modules/sessions/sessions.module.js +7 -5
  613. package/dist/server/modules/sessions/sessions.module.js.map +1 -1
  614. package/dist/server/modules/settings/controllers/settings.controller.d.ts +3 -4
  615. package/dist/server/modules/settings/controllers/settings.controller.js +6 -31
  616. package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -1
  617. package/dist/server/modules/settings/dtos/settings.dto.d.ts +12 -12
  618. package/dist/server/modules/settings/local/delegates/core-settings.delegate.d.ts +5 -0
  619. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +36 -2
  620. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
  621. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.d.ts +4 -0
  622. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js +30 -23
  623. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js.map +1 -1
  624. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.d.ts +2 -0
  625. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js +2 -0
  626. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js.map +1 -1
  627. package/dist/server/modules/settings/services/settings.service.d.ts +2 -1
  628. package/dist/server/modules/settings/services/settings.service.js +8 -4
  629. package/dist/server/modules/settings/services/settings.service.js.map +1 -1
  630. package/dist/server/modules/settings/settings.module.js +1 -2
  631. package/dist/server/modules/settings/settings.module.js.map +1 -1
  632. package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +2 -2
  633. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
  634. package/dist/server/modules/skills/services/skills.service.d.ts +3 -1
  635. package/dist/server/modules/skills/services/skills.service.js +15 -2
  636. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  637. package/dist/server/modules/statuses/controllers/statuses.controller.d.ts +3 -3
  638. package/dist/server/modules/statuses/controllers/statuses.controller.js +8 -10
  639. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
  640. package/dist/server/modules/statuses/statuses.module.js +1 -2
  641. package/dist/server/modules/statuses/statuses.module.js.map +1 -1
  642. package/dist/server/modules/storage/db/db-file-permissions.d.ts +1 -0
  643. package/dist/server/modules/storage/db/db-file-permissions.js +24 -0
  644. package/dist/server/modules/storage/db/db-file-permissions.js.map +1 -0
  645. package/dist/server/modules/storage/db/db.provider.js +2 -0
  646. package/dist/server/modules/storage/db/db.provider.js.map +1 -1
  647. package/dist/server/modules/storage/db/migrate.js +2 -0
  648. package/dist/server/modules/storage/db/migrate.js.map +1 -1
  649. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +0 -1
  650. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  651. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.d.ts +2 -2
  652. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js.map +1 -1
  653. package/dist/server/modules/storage/local/delegates/agent.delegate.d.ts +2 -2
  654. package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -1
  655. package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +5 -6
  656. package/dist/server/modules/storage/local/delegates/epic.delegate.js +3 -9
  657. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
  658. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +16 -15
  659. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +13 -13
  660. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
  661. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.d.ts +11 -10
  662. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +9 -9
  663. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
  664. package/dist/server/modules/storage/local/delegates/guest.delegate.d.ts +2 -1
  665. package/dist/server/modules/storage/local/delegates/guest.delegate.js.map +1 -1
  666. package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +3 -4
  667. package/dist/server/modules/storage/local/delegates/integration.delegate.js +1 -1
  668. package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
  669. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.d.ts +3 -16
  670. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js.map +1 -1
  671. package/dist/server/modules/storage/local/delegates/project-host.delegate.d.ts +2 -2
  672. package/dist/server/modules/storage/local/delegates/project-host.delegate.js.map +1 -1
  673. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.d.ts +2 -2
  674. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js +1 -1
  675. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js.map +1 -1
  676. package/dist/server/modules/storage/local/delegates/project-replica.delegate.d.ts +2 -2
  677. package/dist/server/modules/storage/local/delegates/project-replica.delegate.js.map +1 -1
  678. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.d.ts +2 -1
  679. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.js.map +1 -1
  680. package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +4 -2
  681. package/dist/server/modules/storage/local/delegates/project.delegate.js +4 -0
  682. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  683. package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +3 -2
  684. package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -1
  685. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.d.ts +2 -1
  686. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.js.map +1 -1
  687. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.d.ts +2 -1
  688. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.js.map +1 -1
  689. package/dist/server/modules/storage/local/delegates/provider-model.delegate.d.ts +2 -1
  690. package/dist/server/modules/storage/local/delegates/provider-model.delegate.js.map +1 -1
  691. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.d.ts +2 -1
  692. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.js.map +1 -1
  693. package/dist/server/modules/storage/local/delegates/provider.delegate.d.ts +3 -3
  694. package/dist/server/modules/storage/local/delegates/provider.delegate.js +9 -23
  695. package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -1
  696. package/dist/server/modules/storage/local/delegates/record.delegate.d.ts +2 -2
  697. package/dist/server/modules/storage/local/delegates/remote.delegate.d.ts +2 -2
  698. package/dist/server/modules/storage/local/delegates/remote.delegate.js.map +1 -1
  699. package/dist/server/modules/storage/local/delegates/review.delegate.d.ts +2 -2
  700. package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -1
  701. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.d.ts +2 -2
  702. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js.map +1 -1
  703. package/dist/server/modules/storage/local/delegates/session.delegate.d.ts +2 -1
  704. package/dist/server/modules/storage/local/delegates/session.delegate.js.map +1 -1
  705. package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +7 -3
  706. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +24 -11
  707. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
  708. package/dist/server/modules/storage/local/delegates/status.delegate.d.ts +2 -2
  709. package/dist/server/modules/storage/local/delegates/subscriber.delegate.d.ts +2 -1
  710. package/dist/server/modules/storage/local/delegates/subscriber.delegate.js.map +1 -1
  711. package/dist/server/modules/storage/local/delegates/tag.delegate.d.ts +2 -2
  712. package/dist/server/modules/storage/local/delegates/watcher.delegate.d.ts +2 -1
  713. package/dist/server/modules/storage/local/delegates/watcher.delegate.js.map +1 -1
  714. package/dist/server/modules/storage/local/helpers/device-revocation-history.js.map +1 -0
  715. package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -361
  716. package/dist/server/modules/storage/local/local-storage.service.js +119 -908
  717. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  718. package/dist/server/modules/storage/local/storage-routes.d.ts +1170 -0
  719. package/dist/server/modules/storage/local/storage-routes.js +465 -0
  720. package/dist/server/modules/storage/local/storage-routes.js.map +1 -0
  721. package/dist/server/modules/storage/sessions/session-row.store.d.ts +42 -0
  722. package/dist/server/modules/storage/sessions/session-row.store.js +383 -0
  723. package/dist/server/modules/storage/sessions/session-row.store.js.map +1 -0
  724. package/dist/server/modules/storage/sessions/session-rows.module.d.ts +2 -0
  725. package/dist/server/modules/storage/sessions/session-rows.module.js +19 -0
  726. package/dist/server/modules/storage/sessions/session-rows.module.js.map +1 -0
  727. package/dist/server/modules/storage/sessions/session-transcript.types.d.ts +45 -0
  728. package/dist/server/modules/storage/sessions/session-transcript.types.js +3 -0
  729. package/dist/server/modules/storage/sessions/session-transcript.types.js.map +1 -0
  730. package/dist/server/modules/storage/storage.module.d.ts +3 -0
  731. package/dist/server/modules/storage/storage.module.js +15 -2
  732. package/dist/server/modules/storage/storage.module.js.map +1 -1
  733. package/dist/server/modules/storage/write-gate/project-write-gate.d.ts +32 -0
  734. package/dist/server/modules/storage/write-gate/project-write-gate.js +117 -0
  735. package/dist/server/modules/storage/write-gate/project-write-gate.js.map +1 -0
  736. package/dist/server/modules/storage/write-gate/storage-write-scope.d.ts +45 -0
  737. package/dist/server/modules/storage/write-gate/storage-write-scope.js +103 -0
  738. package/dist/server/modules/storage/write-gate/storage-write-scope.js.map +1 -0
  739. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.d.ts +3 -0
  740. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js +13 -0
  741. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js.map +1 -0
  742. package/dist/server/modules/subscribers/actions/action.interface.d.ts +2 -2
  743. package/dist/server/modules/subscribers/actions/terminate-session.action.d.ts +7 -0
  744. package/dist/server/modules/subscribers/actions/terminate-session.action.js +58 -6
  745. package/dist/server/modules/subscribers/actions/terminate-session.action.js.map +1 -1
  746. package/dist/server/modules/subscribers/services/subscriber-executor.service.d.ts +5 -4
  747. package/dist/server/modules/subscribers/services/subscriber-executor.service.js +6 -6
  748. package/dist/server/modules/subscribers/services/subscriber-executor.service.js.map +1 -1
  749. package/dist/server/modules/subscribers/services/subscribers.service.d.ts +1 -3
  750. package/dist/server/modules/subscribers/services/subscribers.service.js +2 -8
  751. package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -1
  752. package/dist/server/modules/subscribers/subscribers.module.js +0 -2
  753. package/dist/server/modules/subscribers/subscribers.module.js.map +1 -1
  754. package/dist/server/modules/teams/controllers/teams.controller.d.ts +2 -2
  755. package/dist/server/modules/teams/controllers/teams.controller.js.map +1 -1
  756. package/dist/server/modules/teams/services/teams.service.d.ts +4 -4
  757. package/dist/server/modules/teams/services/teams.service.js +8 -18
  758. package/dist/server/modules/teams/services/teams.service.js.map +1 -1
  759. package/dist/server/modules/teams/services/teams.validators.d.ts +4 -4
  760. package/dist/server/modules/teams/services/teams.validators.js.map +1 -1
  761. package/dist/server/modules/teams/storage/teams.store.d.ts +4 -1
  762. package/dist/server/modules/teams/storage/teams.store.js +20 -2
  763. package/dist/server/modules/teams/storage/teams.store.js.map +1 -1
  764. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.d.ts +2 -2
  765. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js +2 -2
  766. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js.map +1 -1
  767. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js +3 -3
  768. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js.map +1 -1
  769. package/dist/server/modules/teams/teams.module.js +1 -8
  770. package/dist/server/modules/teams/teams.module.js.map +1 -1
  771. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +8 -29
  772. package/dist/server/modules/terminal/gateways/terminal.gateway.js +34 -88
  773. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  774. package/dist/server/modules/terminal/services/guest-delivery.service.js +1 -0
  775. package/dist/server/modules/terminal/services/guest-delivery.service.js.map +1 -1
  776. package/dist/server/modules/terminal/services/human-prompt-input.service.d.ts +30 -0
  777. package/dist/server/modules/terminal/services/human-prompt-input.service.js +69 -0
  778. package/dist/server/modules/terminal/services/human-prompt-input.service.js.map +1 -0
  779. package/dist/server/modules/terminal/services/human-prompt-state.service.js +3 -2
  780. package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
  781. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.d.ts +6 -0
  782. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js +23 -1
  783. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js.map +1 -1
  784. package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +4 -2
  785. package/dist/server/modules/terminal/services/terminal-activity.service.js +26 -44
  786. package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
  787. package/dist/server/modules/terminal/services/terminal-delivery.types.d.ts +1 -1
  788. package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +9 -3
  789. package/dist/server/modules/terminal/services/terminal-io/delivery.js +65 -28
  790. package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
  791. package/dist/server/modules/terminal/services/terminal-io/foreground.d.ts +7 -0
  792. package/dist/server/modules/terminal/services/terminal-io/foreground.js +35 -0
  793. package/dist/server/modules/terminal/services/terminal-io/foreground.js.map +1 -0
  794. package/dist/server/modules/terminal/services/terminal-io/monitoring.d.ts +3 -0
  795. package/dist/server/modules/terminal/services/terminal-io/monitoring.js +36 -0
  796. package/dist/server/modules/terminal/services/terminal-io/monitoring.js.map +1 -1
  797. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.d.ts +3 -0
  798. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +80 -19
  799. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
  800. package/dist/server/modules/terminal/services/terminal-io/types.d.ts +1 -0
  801. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.d.ts +6 -11
  802. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +12 -43
  803. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
  804. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js +1 -1
  805. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js.map +1 -1
  806. package/dist/server/modules/terminal/services/terminal-seed.service.js +0 -4
  807. package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
  808. package/dist/server/modules/terminal/terminal-delivery.module.js +3 -0
  809. package/dist/server/modules/terminal/terminal-delivery.module.js.map +1 -1
  810. package/dist/server/modules/terminal/terminal.module.js +2 -0
  811. package/dist/server/modules/terminal/terminal.module.js.map +1 -1
  812. package/dist/server/modules/watchers/services/watcher-runner.service.d.ts +2 -2
  813. package/dist/server/modules/watchers/services/watcher-runner.service.js +0 -3
  814. package/dist/server/modules/watchers/services/watcher-runner.service.js.map +1 -1
  815. package/dist/server/modules/watchers/services/watchers.service.d.ts +3 -3
  816. package/dist/server/modules/watchers/services/watchers.service.js +6 -9
  817. package/dist/server/modules/watchers/services/watchers.service.js.map +1 -1
  818. package/dist/server/modules/watchers/watchers.module.js +1 -8
  819. package/dist/server/modules/watchers/watchers.module.js.map +1 -1
  820. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.d.ts +2 -2
  821. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.js.map +1 -1
  822. package/dist/server/modules/workspaces/services/workspaces.service.d.ts +3 -3
  823. package/dist/server/modules/workspaces/services/workspaces.service.js +7 -7
  824. package/dist/server/modules/workspaces/services/workspaces.service.js.map +1 -1
  825. package/dist/server/modules/workspaces/workspaces.module.js +1 -2
  826. package/dist/server/modules/workspaces/workspaces.module.js.map +1 -1
  827. package/dist/server/templates/teams-dev.json +274 -258
  828. package/dist/server/tsconfig.build.tsbuildinfo +1 -0
  829. package/dist/server/ui/assets/{ExternalRichEditor-CIZPhssf.js → ExternalRichEditor-CB-LjWox.js} +1 -1
  830. package/dist/server/ui/assets/{ReviewDetailPage-winyLSQ7.js → ReviewDetailPage-CpMMjYet.js} +1 -1
  831. package/dist/server/ui/assets/{ReviewsPage-BYKBReMp.js → ReviewsPage-Cw17_agp.js} +1 -1
  832. package/dist/server/ui/assets/index-BwuNu70G.css +32 -0
  833. package/dist/server/ui/assets/index-DmRXRpSy.js +1192 -0
  834. package/dist/server/ui/assets/{useReviewSubscription-v3Cto0y4.js → useReviewSubscription-wd5iHNQy.js} +26 -26
  835. package/dist/server/ui/index.html +2 -2
  836. package/dist/templates/teams-dev.json +274 -258
  837. package/package.json +11 -347
  838. package/dist/server/common/test/remote-project.fixture.d.ts +0 -32
  839. package/dist/server/common/test/remote-project.fixture.js +0 -328
  840. package/dist/server/common/test/remote-project.fixture.js.map +0 -1
  841. package/dist/server/common/test/two-instance.fixture.d.ts +0 -48
  842. package/dist/server/common/test/two-instance.fixture.js +0 -269
  843. package/dist/server/common/test/two-instance.fixture.js.map +0 -1
  844. package/dist/server/modules/e2ee/services/device-revocation-history.js.map +0 -1
  845. package/dist/server/modules/file-sync/sync-chown.dto.d.ts +0 -99
  846. package/dist/server/modules/file-sync/sync-chown.dto.js +0 -46
  847. package/dist/server/modules/file-sync/sync-chown.dto.js.map +0 -1
  848. package/dist/server/modules/file-sync/sync-chown.service.d.ts +0 -12
  849. package/dist/server/modules/file-sync/sync-chown.service.js +0 -230
  850. package/dist/server/modules/file-sync/sync-chown.service.js.map +0 -1
  851. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +0 -5
  852. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +0 -8
  853. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +0 -1
  854. package/dist/server/modules/session-reader/services/transcript-turn-state.d.ts +0 -4
  855. package/dist/server/modules/session-reader/services/transcript-turn-state.js +0 -20
  856. package/dist/server/modules/session-reader/services/transcript-turn-state.js.map +0 -1
  857. package/dist/server/modules/sessions/dtos/active-session-info.dto.js.map +0 -1
  858. package/dist/server/modules/sessions/utils/claude-config.js.map +0 -1
  859. package/dist/server/modules/sessions/utils/codex-config.js.map +0 -1
  860. package/dist/server/modules/sessions/utils/env-builder.js.map +0 -1
  861. package/dist/server/modules/sessions/utils/profile-options.js.map +0 -1
  862. package/dist/server/modules/terminal/services/session-turn-signals.js.map +0 -1
  863. package/dist/server/tsconfig.tsbuildinfo +0 -1
  864. package/dist/server/ui/assets/index-CiDJX6Hn.js +0 -1191
  865. package/dist/server/ui/assets/index-f1WOAqXB.css +0 -32
  866. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.d.ts +0 -0
  867. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.js +0 -0
  868. /package/dist/server/modules/{sessions → providers}/utils/claude-config.d.ts +0 -0
  869. /package/dist/server/modules/{sessions → providers}/utils/claude-config.js +0 -0
  870. /package/dist/server/modules/{sessions → providers}/utils/codex-config.d.ts +0 -0
  871. /package/dist/server/modules/{sessions → providers}/utils/codex-config.js +0 -0
  872. /package/dist/server/modules/{sessions → providers}/utils/env-builder.d.ts +0 -0
  873. /package/dist/server/modules/{sessions → providers}/utils/env-builder.js +0 -0
  874. /package/dist/server/modules/{sessions → providers}/utils/profile-options.js +0 -0
  875. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.d.ts +0 -0
  876. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.js +0 -0
  877. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.d.ts +0 -0
  878. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.js +0 -0
@@ -13,7 +13,9 @@ exports.DockerHandoff = void 0;
13
13
  exports.dockerSelection = dockerSelection;
14
14
  exports.buildRecord = buildRecord;
15
15
  exports.captureSettings = captureSettings;
16
- const docker_project_compose_1 = require("./docker-project-compose");
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");
17
19
  const docker_data_groups_1 = require("./docker-data-groups");
18
20
  const common_1 = require("@nestjs/common");
19
21
  const node_crypto_1 = require("node:crypto");
@@ -24,11 +26,14 @@ const error_types_1 = require("../../../common/errors/error-types");
24
26
  const logger_1 = require("../../../common/logging/logger");
25
27
  const docker_archive_journal_1 = require("../../core/controllers/docker-archive-journal");
26
28
  const docker_archive_1 = require("../../core/controllers/docker-archive");
29
+ const docker_archive_owners_1 = require("../../core/controllers/docker-archive-owners");
27
30
  const docker_image_metadata_1 = require("../../core/controllers/docker-image-metadata");
28
31
  const docker_engine_client_1 = require("../../core/controllers/docker-engine.client");
29
32
  const docker_settings_1 = require("../../core/controllers/docker-settings");
30
33
  const file_sync_dto_1 = require("../../file-sync/file-sync.dto");
34
+ const file_sync_service_1 = require("../../file-sync/file-sync.service");
31
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");
32
37
  const docker_import_inventory_store_1 = require("../operations/docker-import-inventory.store");
33
38
  const remote_host_client_1 = require("../operations/remote-host.client");
34
39
  const remote_operation_errors_1 = require("../operations/remote-operation.errors");
@@ -74,9 +79,10 @@ let DockerHandoff = class DockerHandoff {
74
79
  exclusions;
75
80
  inventory;
76
81
  choices;
82
+ files;
77
83
  active = new Map();
78
84
  rollbackLimits = { vmCleanupMs: 10 * 60_000, homeConnectMs: 30_000, homeStartMs: 60_000 };
79
- constructor(plans, source, host, store, journal, exclusions, inventory, choices) {
85
+ constructor(plans, source, host, store, journal, exclusions, inventory, choices, files) {
80
86
  this.plans = plans;
81
87
  this.source = source;
82
88
  this.host = host;
@@ -85,6 +91,7 @@ let DockerHandoff = class DockerHandoff {
85
91
  this.exclusions = exclusions;
86
92
  this.inventory = inventory;
87
93
  this.choices = choices;
94
+ this.files = files;
88
95
  }
89
96
  interrupt(operationId) {
90
97
  this.active.get(operationId)?.abort();
@@ -95,7 +102,7 @@ let DockerHandoff = class DockerHandoff {
95
102
  const selection = dockerSelection(run.details);
96
103
  if (!selection)
97
104
  return;
98
- 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 });
99
106
  if (!plan.availability.available || !plan.apiVersion)
100
107
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('DOCKER_PLAN_REFUSED', plan.availability.reason?.message ?? 'Docker is unavailable.', { reason: plan.availability.reason?.code ?? null });
101
108
  this.choices.recordPlan(projectId, run.operation.remoteId, plan.items);
@@ -111,18 +118,24 @@ let DockerHandoff = class DockerHandoff {
111
118
  ];
112
119
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('DOCKER_PLAN_REFUSED', reasons.join(' ') || 'The Docker import cannot proceed.', { fit: plan.fit });
113
120
  }
114
- const record = buildRecord(plan.items, selected, plan.apiVersion, await this.plans.projectRoot(projectId), plan.networks);
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));
115
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);
116
126
  record.inventoryBefore =
117
127
  previousRecord?.inventoryBefore !== undefined
118
128
  ? previousRecord.inventoryBefore
119
129
  : this.inventory.get(projectId, run.operation.remoteId);
120
130
  for (const kept of record.keptInventory ?? []) {
121
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;
122
135
  if (prior?.vmImageId && prior.imageId === kept.imageId)
123
136
  kept.vmImageId = prior.vmImageId;
124
137
  }
125
- const managed = (0, docker_import_inventory_store_1.connectExclusions)(plan, this.inventory.get(projectId, run.operation.remoteId));
138
+ const managed = (0, docker_import_inventory_store_1.connectExclusions)(plan, this.inventory.get(projectId, run.operation.remoteId), await this.plans.projectRoot(projectId));
126
139
  if (managed.length > file_sync_dto_1.IGNORE_PATTERNS_MAX)
127
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 });
128
141
  await this.store.write(run.operation.id, record);
@@ -280,6 +293,7 @@ let DockerHandoff = class DockerHandoff {
280
293
  const restore = restoresData(record, volume.name);
281
294
  progress.item(volume.name, 'volume', restore ? volume.sizeBytes : 0);
282
295
  if (!restore &&
296
+ !record.items.some((item) => item.resetData && item.volumes.includes(volume.name)) &&
283
297
  existing.has(volume.name) &&
284
298
  !record.created.volumes.includes(volume.name)) {
285
299
  record.verified.volumes.push(volume.name);
@@ -293,7 +307,7 @@ let DockerHandoff = class DockerHandoff {
293
307
  await this.store.write(run.operation.id, record);
294
308
  await this.host.dockerCreateVolume(remoteId, { projectId, name: volume.name, labels }, options);
295
309
  if (restore) {
296
- 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 ?? []));
297
311
  (record.copiedData ??= { volumes: [], binds: [] }).volumes.push(volume.name);
298
312
  }
299
313
  record.verified.volumes.push(volume.name);
@@ -318,6 +332,41 @@ let DockerHandoff = class DockerHandoff {
318
332
  .ensureBinds.slice(offset, offset + 64)
319
333
  .map((path) => ({ path, replace: false })),
320
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
+ }
321
370
  const binds = record.binds.filter((b) => !record.verified.binds.includes(b.path));
322
371
  const files = new Set();
323
372
  for (const bind of binds)
@@ -337,8 +386,7 @@ let DockerHandoff = class DockerHandoff {
337
386
  const vm = await this.host.dockerScan(remoteId, [bind.path], options, []);
338
387
  for (const holder of vm.containers)
339
388
  if ((0, docker_data_groups_1.overlapsData)((0, docker_data_groups_1.mountedData)(holder.mounts), { volumes: [], bindPaths: [bind.path] }) &&
340
- (holder.labels[host_docker_dto_1.DOCKER_PROJECT_LABEL] === projectId ||
341
- (0, docker_project_compose_1.projectCompose)(holder.labels, record.projectRoot, projectId)) &&
389
+ (0, docker_project_resources_1.projectContainer)(holder, record.projectRoot, projectId, vm.volumes) &&
342
390
  holder.metadata?.running !== false)
343
391
  await this.host.dockerStopContainer(remoteId, holder.id, projectId, {
344
392
  ...options,
@@ -364,12 +412,12 @@ let DockerHandoff = class DockerHandoff {
364
412
  }
365
413
  for (const bind of binds) {
366
414
  progress.item(bind.path, 'bind', bind.sizeBytes);
367
- await this.copy(client, progress, remoteId, {
415
+ bind.alreadyTargetEntries = await this.copy(client, progress, remoteId, {
368
416
  projectId,
369
417
  image: bind.helperImage,
370
418
  mountType: files.has(bind.path) ? 'file' : 'bind',
371
419
  source: bind.path,
372
- }, vmImageId(record, bind.helperImage), options);
420
+ }, vmImageId(record, bind.helperImage), options, (0, docker_data_representation_1.recordedDataRepresentation)({ volumes: [], bindPaths: [bind.path] }, record.dataGroups ?? []));
373
421
  (record.copiedData ??= { volumes: [], binds: [] }).binds.push(bind.path);
374
422
  record.verified.binds.push(bind.path);
375
423
  await this.store.write(run.operation.id, record);
@@ -427,7 +475,7 @@ let DockerHandoff = class DockerHandoff {
427
475
  projectId,
428
476
  name: item.name,
429
477
  config: {
430
- ...captured.config,
478
+ ...(0, docker_ownership_1.dockerTargetConfig)(captured.config, item.ownership),
431
479
  Image: vmImageId(record, String(captured.config.Image)),
432
480
  },
433
481
  }, options);
@@ -444,6 +492,12 @@ let DockerHandoff = class DockerHandoff {
444
492
  !record.keptInventory?.some((kept) => kept.name === item.name))
445
493
  .map((item) => ({
446
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
+ : {}),
447
501
  imageId: item.imageIds[0] ?? item.id,
448
502
  ...vmPair(item.imageIds[0] ?? item.id),
449
503
  volumes: item.volumes.map((name) => ({
@@ -471,22 +525,36 @@ let DockerHandoff = class DockerHandoff {
471
525
  .every((i) => i.targetAction !== 'leave-as-is' && i.mode !== 'without-data') &&
472
526
  group.volumes.every((v) => record.copiedData?.volumes.includes(v)) &&
473
527
  group.bindPaths.every((p) => record.copiedData?.binds.some((copied) => (0, docker_plan_files_1.within)(copied, p))))
474
- .map(({ volumes, bindPaths }) => ({
475
- volumes,
476
- bindPaths,
528
+ .map((group) => ({
529
+ volumes: group.volumes,
530
+ bindPaths: group.bindPaths,
531
+ ...recordedOwners(group),
477
532
  lastSyncedAt: record.inventoryStampedAt,
478
533
  lastSyncDirection: 'to-vm',
479
534
  }));
480
535
  const preserved = new Map((record.inventoryBefore?.groups ?? []).map((g) => [(0, docker_data_groups_1.dataGroupIdentity)(g), g]));
481
- for (const { volumes, bindPaths } of record.discardedHomeGroups ?? []) {
482
- 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);
483
538
  preserved.set(key, {
484
539
  ...preserved.get(key),
485
- volumes,
486
- bindPaths,
540
+ volumes: group.volumes,
541
+ bindPaths: group.bindPaths,
487
542
  homeDiscardedAt: record.inventoryStampedAt,
543
+ ...recordedOwners(group),
488
544
  });
489
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
+ });
490
558
  this.inventory.set(projectId, remoteId, {
491
559
  groups: (0, docker_data_groups_1.supersedeGroupRecords)([...preserved.values()], stamped),
492
560
  importedAt: record.inventoryStampedAt,
@@ -500,11 +568,34 @@ let DockerHandoff = class DockerHandoff {
500
568
  result: {
501
569
  withoutData: record.items.filter((i) => i.mode === 'without-data').map((i) => i.name),
502
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),
503
575
  },
504
576
  },
505
577
  });
506
578
  });
507
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
+ }
508
599
  stopHost(run) {
509
600
  return this.step(run, async (signal) => {
510
601
  const projectId = (0, remote_operation_types_1.requireProjectId)(run.operation);
@@ -639,16 +730,35 @@ let DockerHandoff = class DockerHandoff {
639
730
  return false;
640
731
  }
641
732
  }
642
- async copy(client, progress, remoteId, request, vmImage, options) {
733
+ async copy(client, progress, remoteId, request, vmImage, options, representation) {
643
734
  const layout = (0, docker_archive_1.dockerArchiveLayout)(request.mountType, request.source);
644
735
  const helper = await this.journal.create(client, request.image, [{ ...layout.mount, ReadOnly: true }], options.signal);
645
736
  try {
646
737
  const archive = await (0, docker_archive_1.readDockerArchive)(client, helper.id, options.signal, layout.readPath);
647
738
  const hash = (0, node_crypto_1.createHash)('sha256');
648
- const body = progress.count(archive, (chunk) => hash.update(chunk));
649
- const { sha256 } = await this.host.dockerWriteArchive(remoteId, { ...request, image: vmImage }, body, options);
650
- if (sha256 !== hash.digest('hex'))
651
- 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
+ }
652
762
  }
653
763
  finally {
654
764
  await this.journal.cleanup(client, helper);
@@ -665,9 +775,27 @@ exports.DockerHandoff = DockerHandoff = __decorate([
665
775
  docker_archive_journal_1.DockerArchiveJournal,
666
776
  file_sync_managed_exclusions_store_1.FileSyncManagedExclusionsStore,
667
777
  docker_import_inventory_store_1.DockerImportInventoryStore,
668
- connect_choices_store_1.ConnectChoicesStore])
778
+ connect_choices_store_1.ConnectChoicesStore,
779
+ file_sync_service_1.FileSyncService])
669
780
  ], DockerHandoff);
670
- function buildRecord(all, selected, apiVersion, projectRoot, networks = []) {
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) {
671
799
  const moving = selected.filter(docker_plan_fit_1.movesToVm);
672
800
  const copiedImages = selected
673
801
  .filter((item) => (0, docker_plan_fit_1.copiesImages)(item, projectRoot))
@@ -716,9 +844,19 @@ function buildRecord(all, selected, apiVersion, projectRoot, networks = []) {
716
844
  }
717
845
  const items = selected.map((item) => {
718
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;
719
851
  return {
720
852
  id: item.id,
721
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 } : {}),
722
860
  kind: item.kind,
723
861
  mode: item.selectedMode,
724
862
  temporary: item.temporary,
@@ -734,25 +872,64 @@ function buildRecord(all, selected, apiVersion, projectRoot, networks = []) {
734
872
  ...emptyVolumes(item),
735
873
  ]),
736
874
  ],
737
- 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
+ ],
738
881
  sizeBytes: mounts.some((m) => m.size.unknown)
739
882
  ? null
740
883
  : mounts.reduce((sum, m) => sum + m.size.bytes, 0),
741
884
  };
742
885
  });
743
- 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
+ }
744
907
  const keptGroups = dataGroups.filter((g) => selected.some((i) => g.itemIds.includes(i.id) && i.dataAction === 'keep-vm'));
745
908
  const keptItems = selected.filter((i) => i.dataAction === 'keep-vm');
746
909
  return {
747
910
  dataGroups,
748
911
  keptGroups,
749
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),
750
914
  ensureVolumes: [...new Set(keptItems.flatMap((i) => i.missingData?.volumes ?? []))],
751
915
  ensureBinds: [...new Set(keptItems.flatMap((i) => i.missingData?.bindPaths ?? []))],
752
916
  keptInventory: keptItems.map((i) => {
753
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));
754
919
  return {
755
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
+ : {}),
756
933
  imageId: i.images[0]?.id ?? i.id,
757
934
  volumes: mounts
758
935
  .filter((m) => (0, docker_plan_dto_1.isVolumeMount)(m.kind))
@@ -784,18 +961,52 @@ function buildRecord(all, selected, apiVersion, projectRoot, networks = []) {
784
961
  bytesTotal: totalBytes(images, volumes, binds),
785
962
  };
786
963
  }
964
+ function startsEmpty(item) {
965
+ return ((item.selectedMode === 'without-data' || item.dataAction === 'start-empty') &&
966
+ item.dataAction !== 'keep-vm');
967
+ }
787
968
  function emptyVolumes(item) {
788
- if (item.selectedMode !== 'without-data' || item.dataAction === 'keep-vm')
969
+ if (!startsEmpty(item))
789
970
  return [];
790
971
  return item.mounts
791
972
  .filter((m) => (0, docker_plan_dto_1.isVolumeMount)(m.kind) && m.driver === 'local')
792
973
  .map((m) => m.source);
793
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
+ }
794
1005
  function totalBytes(...lists) {
795
1006
  return lists.reduce((sum, list) => sum + list.reduce((s, entry) => s + entry.sizeBytes, 0), 0);
796
1007
  }
797
1008
  function restoresData(record, volume) {
798
- 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));
799
1010
  }
800
1011
  function captureSettings(inspect, name, socketPath) {
801
1012
  const config = (0, docker_settings_1.projectDockerCreate)(inspect, socketPath);
@@ -894,6 +1105,18 @@ function loadedVmId(homeId, homeLayers, reported, tags) {
894
1105
  function isFile(path) {
895
1106
  return (0, promises_1.stat)(path).then((stats) => stats.isFile(), () => false);
896
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
+ }
897
1120
  function vmImageId(record, homeId) {
898
1121
  return record.images.find((image) => image.id === homeId)?.vmId ?? homeId;
899
1122
  }
@@ -931,15 +1154,18 @@ class TransferProgress {
931
1154
  this.add(0);
932
1155
  }
933
1156
  count(source, observe) {
934
- 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({
935
1163
  transform: (chunk, _encoding, callback) => {
936
1164
  observe?.(chunk);
937
1165
  this.add(chunk.length);
938
1166
  callback(null, chunk);
939
1167
  },
940
1168
  });
941
- (0, promises_2.pipeline)(source, counter).catch(() => undefined);
942
- return counter;
943
1169
  }
944
1170
  async finish() {
945
1171
  this.details.item = null;