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
@@ -4,54 +4,62 @@ export interface DockerPresence {
4
4
  state: 'present' | 'absent' | 'unknown';
5
5
  }
6
6
  export declare const DockerSelectionModeSchema: z.ZodEnum<["container-and-data", "without-data", "data-only"]>;
7
- export declare const DockerDataChoiceSchema: z.ZodEnum<["keep-vm", "replace-home"]>;
7
+ export declare const DockerDataChoiceSchema: z.ZodEnum<["keep-vm", "replace-home", "start-empty"]>;
8
8
  export type DockerDataChoice = z.infer<typeof DockerDataChoiceSchema>;
9
9
  export declare const DockerSelectionItemSchema: z.ZodObject<{
10
10
  id: z.ZodString;
11
11
  mode: z.ZodEnum<["container-and-data", "without-data", "data-only"]>;
12
- dataChoice: z.ZodOptional<z.ZodEnum<["keep-vm", "replace-home"]>>;
12
+ dataChoice: z.ZodOptional<z.ZodEnum<["keep-vm", "replace-home", "start-empty"]>>;
13
13
  acceptPrivileged: z.ZodOptional<z.ZodLiteral<true>>;
14
+ moveWithoutUserFix: z.ZodOptional<z.ZodLiteral<true>>;
14
15
  }, "strict", z.ZodTypeAny, {
15
16
  mode: "container-and-data" | "without-data" | "data-only";
16
17
  id: string;
17
- dataChoice?: "keep-vm" | "replace-home" | undefined;
18
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
18
19
  acceptPrivileged?: true | undefined;
20
+ moveWithoutUserFix?: true | undefined;
19
21
  }, {
20
22
  mode: "container-and-data" | "without-data" | "data-only";
21
23
  id: string;
22
- dataChoice?: "keep-vm" | "replace-home" | undefined;
24
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
23
25
  acceptPrivileged?: true | undefined;
26
+ moveWithoutUserFix?: true | undefined;
24
27
  }>;
25
28
  export declare const DockerSelectionSchema: z.ZodObject<{
26
29
  items: z.ZodArray<z.ZodObject<{
27
30
  id: z.ZodString;
28
31
  mode: z.ZodEnum<["container-and-data", "without-data", "data-only"]>;
29
- dataChoice: z.ZodOptional<z.ZodEnum<["keep-vm", "replace-home"]>>;
32
+ dataChoice: z.ZodOptional<z.ZodEnum<["keep-vm", "replace-home", "start-empty"]>>;
30
33
  acceptPrivileged: z.ZodOptional<z.ZodLiteral<true>>;
34
+ moveWithoutUserFix: z.ZodOptional<z.ZodLiteral<true>>;
31
35
  }, "strict", z.ZodTypeAny, {
32
36
  mode: "container-and-data" | "without-data" | "data-only";
33
37
  id: string;
34
- dataChoice?: "keep-vm" | "replace-home" | undefined;
38
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
35
39
  acceptPrivileged?: true | undefined;
40
+ moveWithoutUserFix?: true | undefined;
36
41
  }, {
37
42
  mode: "container-and-data" | "without-data" | "data-only";
38
43
  id: string;
39
- dataChoice?: "keep-vm" | "replace-home" | undefined;
44
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
40
45
  acceptPrivileged?: true | undefined;
46
+ moveWithoutUserFix?: true | undefined;
41
47
  }>, "many">;
42
48
  }, "strict", z.ZodTypeAny, {
43
49
  items: {
44
50
  mode: "container-and-data" | "without-data" | "data-only";
45
51
  id: string;
46
- dataChoice?: "keep-vm" | "replace-home" | undefined;
52
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
47
53
  acceptPrivileged?: true | undefined;
54
+ moveWithoutUserFix?: true | undefined;
48
55
  }[];
49
56
  }, {
50
57
  items: {
51
58
  mode: "container-and-data" | "without-data" | "data-only";
52
59
  id: string;
53
- dataChoice?: "keep-vm" | "replace-home" | undefined;
60
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
54
61
  acceptPrivileged?: true | undefined;
62
+ moveWithoutUserFix?: true | undefined;
55
63
  }[];
56
64
  }>;
57
65
  export declare const DockerPlanRequestSchema: z.ZodObject<{
@@ -59,34 +67,39 @@ export declare const DockerPlanRequestSchema: z.ZodObject<{
59
67
  items: z.ZodOptional<z.ZodArray<z.ZodObject<{
60
68
  id: z.ZodString;
61
69
  mode: z.ZodEnum<["container-and-data", "without-data", "data-only"]>;
62
- dataChoice: z.ZodOptional<z.ZodEnum<["keep-vm", "replace-home"]>>;
70
+ dataChoice: z.ZodOptional<z.ZodEnum<["keep-vm", "replace-home", "start-empty"]>>;
63
71
  acceptPrivileged: z.ZodOptional<z.ZodLiteral<true>>;
72
+ moveWithoutUserFix: z.ZodOptional<z.ZodLiteral<true>>;
64
73
  }, "strict", z.ZodTypeAny, {
65
74
  mode: "container-and-data" | "without-data" | "data-only";
66
75
  id: string;
67
- dataChoice?: "keep-vm" | "replace-home" | undefined;
76
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
68
77
  acceptPrivileged?: true | undefined;
78
+ moveWithoutUserFix?: true | undefined;
69
79
  }, {
70
80
  mode: "container-and-data" | "without-data" | "data-only";
71
81
  id: string;
72
- dataChoice?: "keep-vm" | "replace-home" | undefined;
82
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
73
83
  acceptPrivileged?: true | undefined;
84
+ moveWithoutUserFix?: true | undefined;
74
85
  }>, "many">>;
75
86
  }, "strict", z.ZodTypeAny, {
76
87
  remoteId: string;
77
88
  items?: {
78
89
  mode: "container-and-data" | "without-data" | "data-only";
79
90
  id: string;
80
- dataChoice?: "keep-vm" | "replace-home" | undefined;
91
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
81
92
  acceptPrivileged?: true | undefined;
93
+ moveWithoutUserFix?: true | undefined;
82
94
  }[] | undefined;
83
95
  }, {
84
96
  remoteId: string;
85
97
  items?: {
86
98
  mode: "container-and-data" | "without-data" | "data-only";
87
99
  id: string;
88
- dataChoice?: "keep-vm" | "replace-home" | undefined;
100
+ dataChoice?: "keep-vm" | "replace-home" | "start-empty" | undefined;
89
101
  acceptPrivileged?: true | undefined;
102
+ moveWithoutUserFix?: true | undefined;
90
103
  }[] | undefined;
91
104
  }>;
92
105
  export type DockerPlanRequest = z.infer<typeof DockerPlanRequestSchema>;
@@ -121,7 +134,85 @@ export interface DockerNetworkRange {
121
134
  name: string;
122
135
  subnets: string[];
123
136
  }
137
+ export interface DockerUserIds {
138
+ uid: number;
139
+ gid: number;
140
+ }
141
+ export interface DockerOwnershipContext {
142
+ home: DockerUserIds;
143
+ vm: DockerUserIds;
144
+ }
145
+ export interface DockerComposeUserSource {
146
+ directory: string;
147
+ files: string[];
148
+ service: string;
149
+ }
150
+ export interface DockerUserFixProposal {
151
+ id: string;
152
+ service: string;
153
+ container: string | null;
154
+ file: string | null;
155
+ line: number | null;
156
+ oldUser: string | null;
157
+ newUser: string;
158
+ canApply: boolean;
159
+ reason?: string;
160
+ hint: string;
161
+ }
162
+ export declare const DockerUserFixApplySchema: z.ZodObject<{
163
+ remoteId: z.ZodString;
164
+ proposalId: z.ZodString;
165
+ confirmed: z.ZodLiteral<true>;
166
+ }, "strict", z.ZodTypeAny, {
167
+ remoteId: string;
168
+ confirmed: true;
169
+ proposalId: string;
170
+ }, {
171
+ remoteId: string;
172
+ confirmed: true;
173
+ proposalId: string;
174
+ }>;
175
+ export declare const DockerUserFixVerifySchema: z.ZodObject<{
176
+ remoteId: z.ZodString;
177
+ }, "strict", z.ZodTypeAny, {
178
+ remoteId: string;
179
+ }, {
180
+ remoteId: string;
181
+ }>;
182
+ export interface DockerUserFixApplyResult {
183
+ applied: true;
184
+ }
185
+ export interface DockerOwnershipDecision extends DockerOwnershipContext {
186
+ class: 'exact' | 'follows-user' | 'needs-user-fix' | 'image-user-hint';
187
+ target?: {
188
+ user: string;
189
+ groupAdd: string[];
190
+ };
191
+ compose?: DockerComposeUserSource;
192
+ fixProposal?: DockerUserFixProposal;
193
+ refusalReasons?: DockerPlanIssue[];
194
+ }
195
+ export interface DockerServiceOwnership {
196
+ service: string;
197
+ ownership: DockerOwnershipDecision;
198
+ }
199
+ export interface DockerOwnershipRecord extends DockerOwnershipContext {
200
+ class: DockerOwnershipDecision['class'];
201
+ targetUser?: string;
202
+ }
203
+ export interface DockerDataRepresentation extends DockerOwnershipContext {
204
+ kind: 'exact' | 'mapped';
205
+ }
206
+ export interface DockerDataRepresentationGroup extends DockerDataMembers {
207
+ representation?: DockerDataRepresentation;
208
+ }
124
209
  export interface DockerPlanItem {
210
+ runtimeUser?: string;
211
+ vmUser?: string;
212
+ retainedOwnership?: DockerOwnershipRecord;
213
+ dataChoices?: DockerDataChoice[];
214
+ ownership?: DockerOwnershipDecision;
215
+ serviceOwnership?: DockerServiceOwnership[];
125
216
  buildsFromProject?: boolean;
126
217
  privileged?: boolean;
127
218
  networks?: DockerNetworkRange[];
@@ -223,6 +314,7 @@ export interface DockerTransferDetails {
223
314
  result?: {
224
315
  withoutData: string[];
225
316
  dataOnly: string[];
317
+ alreadyTargetEntries?: number;
226
318
  };
227
319
  }
228
320
  export declare const DOCKER_WRITABLE_LAYER_NOTE = "Volume data is copied. Changes made inside the container itself are not; they are normally installed packages, not project data.";
@@ -232,6 +324,12 @@ export interface DockerDataMembers {
232
324
  bindPaths: string[];
233
325
  }
234
326
  export interface DockerDataGroup extends DockerDataMembers {
327
+ ownership?: DockerOwnershipDecision;
328
+ ownershipConsumers?: Array<DockerDataMembers & {
329
+ name: string;
330
+ itemId?: string;
331
+ ownership: DockerOwnershipDecision;
332
+ }>;
235
333
  itemIds: string[];
236
334
  }
237
335
  export type DockerDataState = 'in-sync' | 'vm-newer' | 'home-newer' | 'both-changed' | 'unknown' | 'no-record';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DOCKER_TEMPORARY_NOTE = exports.DOCKER_WRITABLE_LAYER_NOTE = exports.COPYABLE_MOUNT_KINDS = exports.DockerPlanRequestSchema = exports.DockerSelectionSchema = exports.DockerSelectionItemSchema = exports.DockerDataChoiceSchema = exports.DockerSelectionModeSchema = void 0;
3
+ exports.DOCKER_TEMPORARY_NOTE = exports.DOCKER_WRITABLE_LAYER_NOTE = exports.DockerUserFixVerifySchema = exports.DockerUserFixApplySchema = exports.COPYABLE_MOUNT_KINDS = exports.DockerPlanRequestSchema = exports.DockerSelectionSchema = exports.DockerSelectionItemSchema = exports.DockerDataChoiceSchema = exports.DockerSelectionModeSchema = void 0;
4
4
  exports.isVolumeMount = isVolumeMount;
5
5
  const zod_1 = require("zod");
6
6
  exports.DockerSelectionModeSchema = zod_1.z.enum([
@@ -8,13 +8,14 @@ exports.DockerSelectionModeSchema = zod_1.z.enum([
8
8
  'without-data',
9
9
  'data-only',
10
10
  ]);
11
- exports.DockerDataChoiceSchema = zod_1.z.enum(['keep-vm', 'replace-home']);
11
+ exports.DockerDataChoiceSchema = zod_1.z.enum(['keep-vm', 'replace-home', 'start-empty']);
12
12
  exports.DockerSelectionItemSchema = zod_1.z
13
13
  .object({
14
14
  id: zod_1.z.string().min(1).max(512),
15
15
  mode: exports.DockerSelectionModeSchema,
16
16
  dataChoice: exports.DockerDataChoiceSchema.optional(),
17
17
  acceptPrivileged: zod_1.z.literal(true).optional(),
18
+ moveWithoutUserFix: zod_1.z.literal(true).optional(),
18
19
  })
19
20
  .strict();
20
21
  exports.DockerSelectionSchema = zod_1.z
@@ -35,6 +36,14 @@ exports.COPYABLE_MOUNT_KINDS = [
35
36
  function isVolumeMount(kind) {
36
37
  return kind === 'named-volume' || kind === 'anonymous-volume';
37
38
  }
39
+ exports.DockerUserFixApplySchema = zod_1.z
40
+ .object({
41
+ remoteId: zod_1.z.string().uuid(),
42
+ proposalId: zod_1.z.string().uuid(),
43
+ confirmed: zod_1.z.literal(true),
44
+ })
45
+ .strict();
46
+ exports.DockerUserFixVerifySchema = zod_1.z.object({ remoteId: zod_1.z.string().uuid() }).strict();
38
47
  exports.DOCKER_WRITABLE_LAYER_NOTE = 'Volume data is copied. Changes made inside the container itself are not; they are normally installed packages, not project data.';
39
48
  exports.DOCKER_TEMPORARY_NOTE = 'temporary (`--rm`) container: only its named volumes move; Docker removes the container when it stops';
40
49
  //# sourceMappingURL=docker-plan.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker-plan.dto.js","sourceRoot":"","sources":["../../../../src/modules/remotes/docker/docker-plan.dto.ts"],"names":[],"mappings":";;;AAmEA,sCAEC;AArED,6BAAwB;AAOX,QAAA,yBAAyB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC9C,oBAAoB;IACpB,cAAc;IACd,WAAW;CACZ,CAAC,CAAC;AACU,QAAA,sBAAsB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;AAE7D,QAAA,yBAAyB,GAAG,OAAC;KACvC,MAAM,CAAC;IACN,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IAAI,EAAE,iCAAyB;IAC/B,UAAU,EAAE,8BAAsB,CAAC,QAAQ,EAAE;IAC7C,gBAAgB,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC;AAEC,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAyB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KAC/D,MAAM,EAAE,CAAC;AACC,QAAA,uBAAuB,GAAG,OAAC;KACrC,MAAM,CAAC;IACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,KAAK,EAAE,6BAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,MAAM,EAAE,CAAC;AA8BC,QAAA,oBAAoB,GAAuC;IACtE,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,WAAW;CACZ,CAAC;AACF,SAAgB,aAAa,CAAC,IAA6B;IACzD,OAAO,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,kBAAkB,CAAC;AAChE,CAAC;AAiHY,QAAA,0BAA0B,GACrC,kIAAkI,CAAC;AACxH,QAAA,qBAAqB,GAChC,uGAAuG,CAAC"}
1
+ {"version":3,"file":"docker-plan.dto.js","sourceRoot":"","sources":["../../../../src/modules/remotes/docker/docker-plan.dto.ts"],"names":[],"mappings":";;;AAoEA,sCAEC;AAtED,6BAAwB;AAOX,QAAA,yBAAyB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC9C,oBAAoB;IACpB,cAAc;IACd,WAAW;CACZ,CAAC,CAAC;AACU,QAAA,sBAAsB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;AAE5E,QAAA,yBAAyB,GAAG,OAAC;KACvC,MAAM,CAAC;IACN,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IAAI,EAAE,iCAAyB;IAC/B,UAAU,EAAE,8BAAsB,CAAC,QAAQ,EAAE;IAC7C,gBAAgB,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC5C,kBAAkB,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC;KACD,MAAM,EAAE,CAAC;AAEC,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAyB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KAC/D,MAAM,EAAE,CAAC;AACC,QAAA,uBAAuB,GAAG,OAAC;KACrC,MAAM,CAAC;IACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,KAAK,EAAE,6BAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,MAAM,EAAE,CAAC;AA8BC,QAAA,oBAAoB,GAAuC;IACtE,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,WAAW;CACZ,CAAC;AACF,SAAgB,aAAa,CAAC,IAA6B;IACzD,OAAO,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,kBAAkB,CAAC;AAChE,CAAC;AAqCY,QAAA,wBAAwB,GAAG,OAAC;KACtC,MAAM,CAAC;IACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC7B,SAAS,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CAC3B,CAAC;KACD,MAAM,EAAE,CAAC;AACC,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAuI/E,QAAA,0BAA0B,GACrC,kIAAkI,CAAC;AACxH,QAAA,qBAAqB,GAChC,uGAAuG,CAAC"}
@@ -3,10 +3,10 @@ import type { DockerScanResult } from '../host/host-docker.dto';
3
3
  import { DockerImportInventoryStore } from '../operations/docker-import-inventory.store';
4
4
  import { RemoteHostClient } from '../operations/remote-host.client';
5
5
  import { ConnectChoicesStore } from '../connect-choices.store';
6
- import { type DockerPlan, type DockerPresence } from './docker-plan.dto';
6
+ import { type DockerPlan, type DockerPresence, type DockerUserFixApplyResult } from './docker-plan.dto';
7
7
  import { DockerPlanSourceService } from './docker-plan-source.service';
8
8
  export declare function pagedDockerScan(paths: string[], scan: (page: string[], first: boolean) => Promise<DockerScanResult>): Promise<DockerScanResult>;
9
- interface DockerPlanOptions {
9
+ export interface DockerPlanOptions {
10
10
  estimate?: boolean;
11
11
  reuse?: boolean;
12
12
  dataBindPaths?: readonly string[];
@@ -18,10 +18,13 @@ export declare class DockerPlanService {
18
18
  private readonly inventory;
19
19
  private readonly choices;
20
20
  private readonly speeds;
21
+ private readonly userFixes;
21
22
  constructor(storage: ProjectStorage & RemoteStorage, source: DockerPlanSourceService, remote: RemoteHostClient, inventory: DockerImportInventoryStore, choices: ConnectChoicesStore);
22
23
  projectRoot(projectId: string): Promise<string>;
23
24
  presence(projectId: string, signal?: AbortSignal): Promise<DockerPresence>;
25
+ applyUserFix(projectId: string, input: unknown, signal?: AbortSignal): Promise<DockerUserFixApplyResult>;
26
+ verifyUserFix(projectId: string, input: unknown, signal?: AbortSignal): Promise<DockerPlan>;
24
27
  plan(projectId: string, input: unknown, signal?: AbortSignal, { estimate, reuse, dataBindPaths }?: DockerPlanOptions): Promise<DockerPlan>;
28
+ private userFixProposals;
25
29
  private copySpeeds;
26
30
  }
27
- export {};
@@ -15,7 +15,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DockerPlanService = void 0;
16
16
  exports.pagedDockerScan = pagedDockerScan;
17
17
  const docker_data_groups_1 = require("./docker-data-groups");
18
+ const docker_ownership_1 = require("./docker-ownership");
19
+ const docker_project_resources_1 = require("./docker-project-resources");
18
20
  const common_1 = require("@nestjs/common");
21
+ const node_crypto_1 = require("node:crypto");
19
22
  const node_stream_1 = require("node:stream");
20
23
  const node_path_1 = require("node:path");
21
24
  const error_types_1 = require("../../../common/errors/error-types");
@@ -26,6 +29,7 @@ const remote_host_client_1 = require("../operations/remote-host.client");
26
29
  const connect_choices_store_1 = require("../connect-choices.store");
27
30
  const vm_user_identity_1 = require("../vm-user-identity");
28
31
  const docker_plan_dto_1 = require("./docker-plan.dto");
32
+ const docker_compose_user_fix_1 = require("./docker-compose-user-fix");
29
33
  const docker_plan_fit_1 = require("./docker-plan-fit");
30
34
  const docker_plan_files_1 = require("./docker-plan-files");
31
35
  const docker_plan_policy_1 = require("./docker-plan-policy");
@@ -38,11 +42,15 @@ async function pagedDockerScan(paths, scan) {
38
42
  const original = result.containers.find((entry) => entry.id === c.id);
39
43
  if (original && c.metadata)
40
44
  original.metadata = c.metadata;
45
+ if (original && c.user !== undefined)
46
+ original.user = c.user;
41
47
  }
42
48
  result.paths.push(...more.paths);
43
49
  }
44
50
  return result;
45
51
  }
52
+ const USER_FIX_PROPOSAL_TTL_MS = 600_000;
53
+ const proposalExpired = (issued) => Date.now() - issued.at >= USER_FIX_PROPOSAL_TTL_MS;
46
54
  let DockerPlanService = class DockerPlanService {
47
55
  storage;
48
56
  source;
@@ -50,6 +58,7 @@ let DockerPlanService = class DockerPlanService {
50
58
  inventory;
51
59
  choices;
52
60
  speeds = new Map();
61
+ userFixes = new Map();
53
62
  constructor(storage, source, remote, inventory, choices) {
54
63
  this.storage = storage;
55
64
  this.source = source;
@@ -63,6 +72,50 @@ let DockerPlanService = class DockerPlanService {
63
72
  async presence(projectId, signal) {
64
73
  return this.source.presence(await this.projectRoot(projectId), signal);
65
74
  }
75
+ async applyUserFix(projectId, input, signal) {
76
+ const request = docker_plan_dto_1.DockerUserFixApplySchema.parse(input);
77
+ const issued = this.userFixes.get(request.proposalId);
78
+ if (!issued ||
79
+ issued.projectId !== projectId ||
80
+ issued.remoteId !== request.remoteId ||
81
+ proposalExpired(issued) ||
82
+ (await this.projectRoot(projectId)) !== issued.root)
83
+ throw new error_types_1.AppError('The Compose user proposal is unavailable. Get a fresh plan.', 'DOCKER_USER_FIX_STALE', 409);
84
+ if (issued.proposal.canApply) {
85
+ const fresh = await this.plan(projectId, { remoteId: request.remoteId }, signal, {
86
+ estimate: false,
87
+ reuse: false,
88
+ });
89
+ const fixes = issued.itemId
90
+ ? fresh.items
91
+ .filter((item) => item.id === issued.itemId)
92
+ .flatMap((item) => [
93
+ item.ownership?.fixProposal,
94
+ ...(item.serviceOwnership?.map((service) => service.ownership.fixProposal) ?? []),
95
+ ])
96
+ : (fresh.dataGroups?.flatMap((group) => group.ownershipConsumers?.map((consumer) => consumer.ownership.fixProposal) ?? []) ?? []);
97
+ const current = fixes.find((proposal) => proposal?.service === issued.proposal.service &&
98
+ proposal.file === issued.proposal.file &&
99
+ proposal.container === issued.proposal.container);
100
+ if (!current ||
101
+ current.oldUser !== issued.proposal.oldUser ||
102
+ current.newUser !== issued.proposal.newUser)
103
+ throw new error_types_1.AppError('The Compose service or user changed since the plan. Get a fresh plan.', 'DOCKER_USER_FIX_STALE', 409);
104
+ if (!current.canApply)
105
+ throw new error_types_1.AppError(current.reason ?? 'This proposal requires a manual edit, then Verify.', 'DOCKER_USER_FIX_SHOW_ONLY', 422);
106
+ }
107
+ signal?.throwIfAborted();
108
+ await (0, docker_compose_user_fix_1.applyComposeUserFix)(issued.root, issued.proposal);
109
+ this.source.invalidate();
110
+ for (const [id, fix] of this.userFixes)
111
+ if (fix.projectId === projectId && fix.proposal.file === issued.proposal.file)
112
+ this.userFixes.delete(id);
113
+ return { applied: true };
114
+ }
115
+ verifyUserFix(projectId, input, signal) {
116
+ const request = docker_plan_dto_1.DockerUserFixVerifySchema.parse(input);
117
+ return this.plan(projectId, request, signal, { estimate: false, reuse: false });
118
+ }
66
119
  async plan(projectId, input, signal, { estimate = true, reuse = false, dataBindPaths = [] } = {}) {
67
120
  const request = docker_plan_dto_1.DockerPlanRequestSchema.parse(input);
68
121
  const [project] = await Promise.all([
@@ -111,8 +164,14 @@ let DockerPlanService = class DockerPlanService {
111
164
  return unavailable(plan, 'remote', 'remote-unreachable', 'The VM is unavailable.');
112
165
  }
113
166
  const mismatch = (0, vm_user_identity_1.vmUserMismatch)(this.source.uid(), this.source.gid(), runtime);
114
- if (mismatch)
167
+ if (mismatch && (0, vm_user_identity_1.hasUnknownUserIds)(mismatch))
115
168
  return unavailable(plan, 'remote', 'vm-user-mismatch', (0, vm_user_identity_1.vmUserWarning)(mismatch), mismatch);
169
+ const ownership = mismatch
170
+ ? {
171
+ home: { uid: mismatch.homeUid, gid: mismatch.homeGid },
172
+ vm: { uid: mismatch.vmUid, gid: mismatch.vmGid },
173
+ }
174
+ : undefined;
116
175
  if (!runtime.docker?.installed)
117
176
  return unavailable(plan, 'remote', 'remote-no-docker', 'The VM reports no usable Docker engine and Compose installation.');
118
177
  try {
@@ -136,7 +195,8 @@ let DockerPlanService = class DockerPlanService {
136
195
  try {
137
196
  scanned = await this.source.scan(client, project.rootPath, scanSignal, {
138
197
  reuse,
139
- previousBindPaths: absolutePaths(inventory?.items.flatMap((item) => item.bindPaths) ?? []),
198
+ ownership,
199
+ previousBindPaths: absolutePaths((0, docker_import_inventory_store_1.inventoryBindPaths)(inventory, project.rootPath)),
140
200
  dataBindPaths: absolutePaths(dataBindPaths),
141
201
  });
142
202
  }
@@ -149,7 +209,12 @@ let DockerPlanService = class DockerPlanService {
149
209
  plan.codePaths = scanned.codePaths.map((path) => (0, node_path_1.resolve)(path) === (0, node_path_1.resolve)(project.rootPath)
150
210
  ? '/'
151
211
  : (0, docker_plan_files_1.projectAnchoredPath)(project.rootPath, path));
152
- const dataGroups = (0, docker_data_groups_1.groupDockerData)(plan.items, project.rootPath);
212
+ const records = inventory?.groups ?? [];
213
+ const dataGroups = (0, docker_data_groups_1.groupDockerData)(plan.items, project.rootPath, records.map((group) => ({
214
+ volumes: group.volumes,
215
+ bindPaths: group.bindPaths.filter((path) => (0, docker_plan_files_1.strictlyWithin)(project.rootPath, path) &&
216
+ !plan.codePaths.includes((0, docker_plan_files_1.projectAnchoredPath)(project.rootPath, path))),
217
+ })), scanned.ownershipConsumers);
153
218
  const holderVolumes = [...new Set(dataGroups.flatMap((g) => g.volumes))];
154
219
  const externalPaths = [
155
220
  ...new Set([
@@ -174,10 +239,88 @@ let DockerPlanService = class DockerPlanService {
174
239
  throw error;
175
240
  return unavailable(plan, 'remote', 'remote-docker-routes', VM_ROUTES_MESSAGE);
176
241
  }
177
- const records = inventory?.groups ?? [];
178
- plan.dataGroups = dataGroups.map((group) => (0, docker_data_groups_1.checkDockerDataGroup)(group, records, scanned.holders, target, projectId));
242
+ const consumers = scanned.ownershipConsumers ?? [];
243
+ const vmConsumers = new Map();
244
+ if (ownership) {
245
+ for (const container of target.containers) {
246
+ const consumer = {
247
+ name: `VM ${container.name}`,
248
+ user: container.user,
249
+ ownership: {
250
+ ...ownership,
251
+ class: ((0, docker_project_resources_1.projectContainer)(container, project.rootPath, projectId, target.volumes)
252
+ ? inventory?.items.find((item) => item.name === container.name.replace(/^\//, ''))
253
+ ?.ownership?.class
254
+ : undefined) ?? 'exact',
255
+ },
256
+ ...(0, docker_data_groups_1.mountedData)(container.mounts),
257
+ };
258
+ consumers.push(consumer);
259
+ vmConsumers.set(container.id, consumer);
260
+ }
261
+ }
262
+ const ownershipGroups = ownership
263
+ ? (0, docker_data_groups_1.groupDockerData)(plan.items, project.rootPath, dataGroups, consumers)
264
+ : dataGroups;
265
+ const extraPaths = ownershipGroups
266
+ .flatMap((group) => group.bindPaths)
267
+ .filter((path) => !externalPaths.includes(path));
268
+ const extraVolumes = ownershipGroups
269
+ .flatMap((group) => group.volumes)
270
+ .filter((volume) => !holderVolumes.includes(volume));
271
+ if (extraPaths.length || extraVolumes.length) {
272
+ try {
273
+ const extra = await pagedDockerScan([...new Set(extraPaths)], (paths) => this.remote.dockerScan(request.remoteId, paths, options, [
274
+ ...new Set([...holderVolumes, ...extraVolumes]),
275
+ ]));
276
+ target.paths.push(...extra.paths);
277
+ for (const container of extra.containers) {
278
+ const original = target.containers.find((entry) => entry.id === container.id);
279
+ if (original && container.metadata)
280
+ original.metadata = container.metadata;
281
+ }
282
+ }
283
+ catch (error) {
284
+ if (signal?.aborted)
285
+ throw error;
286
+ return unavailable(plan, 'remote', 'remote-docker-routes', VM_ROUTES_MESSAGE);
287
+ }
288
+ }
289
+ plan.dataGroups = ownershipGroups.map((group) => (0, docker_data_groups_1.checkDockerDataGroup)(group, records, scanned.holders, target, projectId, project.rootPath));
179
290
  (0, docker_plan_policy_1.applyDockerPolicy)(plan.items, request, target, projectId, runtime.homePath ?? null, project.rootPath, request.items === undefined ? this.choices.get(projectId)?.items : undefined);
180
- (0, docker_plan_policy_1.applyDockerDataPolicy)(plan.items, plan.dataGroups, request, target);
291
+ if (ownership) {
292
+ for (const container of target.containers) {
293
+ const counterpart = plan.items.find((item) => item.name === container.name.replace(/^\//, ''));
294
+ if (!counterpart?.selectedMode ||
295
+ !['replace', 'leave-as-is'].includes(counterpart.targetAction))
296
+ continue;
297
+ const group = plan.dataGroups.find((entry) => entry.itemIds.includes(counterpart.id));
298
+ if (!group ||
299
+ !consumers.some((consumer) => (0, docker_data_groups_1.overlapsData)(group, consumer) && consumer.ownership.class === 'follows-user'))
300
+ continue;
301
+ const consumer = vmConsumers.get(container.id);
302
+ if (consumer)
303
+ consumer.counterpart = true;
304
+ }
305
+ (0, docker_ownership_1.applyDockerGroupOwnership)(plan.dataGroups, plan.items, consumers, ownership);
306
+ await this.userFixProposals(plan, consumers, project.rootPath);
307
+ }
308
+ (0, docker_plan_policy_1.applyDockerDataPolicy)(plan.items, plan.dataGroups, request, target, inventory, project.rootPath, projectId);
309
+ const acceptedFixes = new Set(request.items?.filter((entry) => entry.moveWithoutUserFix).map((entry) => entry.id));
310
+ for (const item of plan.items) {
311
+ if (item.ownership?.class !== 'needs-user-fix' || !item.selectedMode)
312
+ continue;
313
+ if (acceptedFixes.has(item.id))
314
+ item.warnings.push({
315
+ code: 'user-fix-skipped',
316
+ message: 'Move without the fix: this container keeps the home user on the VM and cannot write project folders or read project files restricted to the VM user.',
317
+ });
318
+ else
319
+ item.blockers.push({
320
+ code: 'user-fix-not-accepted',
321
+ message: 'Apply and Verify the Compose user fix, choose Move without the fix, or deselect this item. Skipping its data does not fix project-folder access.',
322
+ });
323
+ }
181
324
  for (const item of plan.items) {
182
325
  if (item.selectedMode && (0, docker_plan_fit_1.skipsImageCopy)(item, project.rootPath)) {
183
326
  item.images = item.images.map((image) => ({ ...image, notCopied: true }));
@@ -247,9 +390,18 @@ let DockerPlanService = class DockerPlanService {
247
390
  .filter((i) => i.selectedMode && i.dataAction === 'keep-vm')
248
391
  .flatMap((i) => (0, docker_plan_fit_1.potentialDataMounts)(i, project.rootPath)),
249
392
  ];
250
- plan.managedExclusions = managedMounts
251
- .filter((m) => m.kind === 'project-bind')
252
- .map((m) => (0, docker_plan_files_1.projectAnchoredPath)(project.rootPath, m.source));
393
+ const resetBinds = plan.dataGroups
394
+ .filter((group) => plan.items.some((item) => group.itemIds.includes(item.id) &&
395
+ item.selectedMode &&
396
+ item.dataAction === 'start-empty'))
397
+ .flatMap((group) => group.bindPaths)
398
+ .filter((path) => (0, docker_plan_files_1.strictlyWithin)(project.rootPath, path));
399
+ plan.managedExclusions = [
400
+ ...new Set([
401
+ ...managedMounts.filter((m) => m.kind === 'project-bind').map((m) => m.source),
402
+ ...resetBinds,
403
+ ]),
404
+ ].map((path) => (0, docker_plan_files_1.projectAnchoredPath)(project.rootPath, path));
253
405
  plan.reconnect = (0, docker_plan_policy_1.dockerReconnect)(plan.items, this.inventory.get(projectId, request.remoteId), project.rootPath);
254
406
  if (!estimate)
255
407
  return plan;
@@ -271,6 +423,52 @@ let DockerPlanService = class DockerPlanService {
271
423
  }
272
424
  return plan;
273
425
  }
426
+ async userFixProposals(plan, consumers, root) {
427
+ for (const [id, issued] of this.userFixes)
428
+ if (proposalExpired(issued))
429
+ this.userFixes.delete(id);
430
+ const seen = new Set();
431
+ const proposals = new Map();
432
+ for (const consumer of consumers) {
433
+ const ownership = consumer.ownership;
434
+ const compose = ownership.compose;
435
+ if (seen.has(ownership) ||
436
+ !compose ||
437
+ !['needs-user-fix', 'image-user-hint'].includes(ownership.class))
438
+ continue;
439
+ seen.add(ownership);
440
+ const item = plan.items.find((entry) => entry.id === consumer.itemId);
441
+ const container = item?.kind === 'container'
442
+ ? item
443
+ : plan.items.find((entry) => entry.kind === 'container' &&
444
+ entry.ownership?.compose?.service === compose.service &&
445
+ entry.ownership.compose.directory === compose.directory &&
446
+ JSON.stringify(entry.ownership.compose.files) === JSON.stringify(compose.files));
447
+ const itemId = consumer.itemId ?? container?.id;
448
+ const key = JSON.stringify([itemId, ownership.class, compose, consumer.user]);
449
+ const proposal = proposals.get(key) ??
450
+ (await (0, docker_compose_user_fix_1.composeUserFixProposal)(root, ownership, container?.name ?? null, (0, node_crypto_1.randomUUID)(), consumer.user));
451
+ if (!proposal)
452
+ continue;
453
+ proposals.set(key, proposal);
454
+ ownership.fixProposal = proposal;
455
+ this.userFixes.set(proposal.id, {
456
+ at: Date.now(),
457
+ projectId: plan.projectId,
458
+ remoteId: plan.remoteId,
459
+ ...(itemId ? { itemId } : {}),
460
+ root,
461
+ proposal,
462
+ });
463
+ }
464
+ const current = new Set([...proposals.values()].map((proposal) => proposal.id));
465
+ for (const id of this.userFixes.keys()) {
466
+ if (this.userFixes.size <= 1000)
467
+ break;
468
+ if (!current.has(id))
469
+ this.userFixes.delete(id);
470
+ }
471
+ }
274
472
  async copySpeeds(remoteId, client, image, options, reuse) {
275
473
  const recent = this.speeds.get(remoteId);
276
474
  if (reuse && recent && (0, docker_plan_source_service_1.reusable)(recent.at) && (recent.exportRate !== null || !image))