devchain-cli 0.24.1 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1063) hide show
  1. package/README.md +11 -2
  2. package/dist/build-info.json +2 -2
  3. package/dist/cli.js +40 -10
  4. package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
  5. package/dist/host-install/pins.json +32 -2
  6. package/dist/lib/exclusive-run.js +51 -3
  7. package/dist/lib/git-owner.js +284 -0
  8. package/dist/lib/host-install.js +19 -151
  9. package/dist/lib/local-api.js +175 -0
  10. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +7 -4
  11. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts.map +1 -1
  12. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js +1 -0
  13. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -1
  14. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +26 -26
  15. package/dist/node_modules/@devchain/shared/schemas/host-provider-clis.d.ts +6 -6
  16. package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts +3855 -3855
  17. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  18. package/dist/server/common/config/env.config.d.ts +6 -0
  19. package/dist/server/common/config/env.config.js +8 -0
  20. package/dist/server/common/config/env.config.js.map +1 -1
  21. package/dist/server/common/config/host-image.json +3 -3
  22. package/dist/server/common/config/integration-admission.d.ts +1 -0
  23. package/dist/server/common/config/integration-admission.js +6 -2
  24. package/dist/server/common/config/integration-admission.js.map +1 -1
  25. package/dist/server/common/constants/syncthing-markers.d.ts +1 -0
  26. package/dist/server/common/constants/syncthing-markers.js +6 -1
  27. package/dist/server/common/constants/syncthing-markers.js.map +1 -1
  28. package/dist/server/common/filesystem/vm-home-path.d.ts +11 -0
  29. package/dist/server/common/filesystem/vm-home-path.js +48 -0
  30. package/dist/server/common/filesystem/vm-home-path.js.map +1 -0
  31. package/dist/server/common/http/browser-request-guard.d.ts +8 -0
  32. package/dist/server/common/http/browser-request-guard.js +61 -0
  33. package/dist/server/common/http/browser-request-guard.js.map +1 -0
  34. package/dist/server/common/process-ids-env.d.ts +1 -0
  35. package/dist/server/common/process-ids-env.js +13 -0
  36. package/dist/server/common/process-ids-env.js.map +1 -0
  37. package/dist/server/common/test/api-test-app.d.ts +12 -0
  38. package/dist/server/common/test/api-test-app.js +76 -0
  39. package/dist/server/common/test/api-test-app.js.map +1 -0
  40. package/dist/server/common/test/app-bootstrap.helper.js +8 -1
  41. package/dist/server/common/test/app-bootstrap.helper.js.map +1 -1
  42. package/dist/server/common/test/fake-bootstrap.server.js +3 -2
  43. package/dist/server/common/test/fake-bootstrap.server.js.map +1 -1
  44. package/dist/server/common/test/fake-docker-engine.server.d.ts +25 -6
  45. package/dist/server/common/test/fake-docker-engine.server.js +111 -34
  46. package/dist/server/common/test/fake-docker-engine.server.js.map +1 -1
  47. package/dist/server/common/test/fake-proxmox.server.js +4 -4
  48. package/dist/server/common/test/fake-ssh.server.js +6 -6
  49. package/dist/server/common/test/fake-ssh.server.js.map +1 -1
  50. package/dist/server/common/test/test-database.helper.d.ts +6 -0
  51. package/dist/server/common/test/test-database.helper.js +29 -0
  52. package/dist/server/common/test/test-database.helper.js.map +1 -0
  53. package/dist/server/common/test/tls-fixture.d.ts +2 -1
  54. package/dist/server/common/test/tls-fixture.js +47 -5
  55. package/dist/server/common/test/tls-fixture.js.map +1 -1
  56. package/dist/server/modules/agents/agents.module.js +1 -8
  57. package/dist/server/modules/agents/agents.module.js.map +1 -1
  58. package/dist/server/modules/agents/controllers/agents.controller.d.ts +4 -4
  59. package/dist/server/modules/agents/controllers/agents.controller.js +6 -10
  60. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
  61. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js +7 -7
  62. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js.map +1 -1
  63. package/dist/server/modules/cloud/services/cloud-session-manager.service.d.ts +12 -0
  64. package/dist/server/modules/cloud/services/cloud-session-manager.service.js +78 -9
  65. package/dist/server/modules/cloud/services/cloud-session-manager.service.js.map +1 -1
  66. package/dist/server/modules/cloud/services/notification-recipient-resolver.service.d.ts +2 -2
  67. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js +9 -3
  68. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
  69. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js +2 -2
  70. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js.map +1 -1
  71. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.d.ts +4 -4
  72. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js +6 -6
  73. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js.map +1 -1
  74. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +2 -2
  75. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
  76. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.d.ts +3 -0
  77. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +1 -0
  78. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js.map +1 -1
  79. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.d.ts +2 -2
  80. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -1
  81. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js +3 -2
  82. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js.map +1 -1
  83. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.d.ts +14 -3
  84. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +54 -14
  85. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
  86. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js.map +1 -1
  87. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.d.ts +2 -2
  88. package/dist/server/modules/core/controllers/docker-archive-owners.d.ts +29 -0
  89. package/dist/server/modules/core/controllers/docker-archive-owners.js +226 -0
  90. package/dist/server/modules/core/controllers/docker-archive-owners.js.map +1 -0
  91. package/dist/server/modules/core/controllers/docker-archive.js +1 -1
  92. package/dist/server/modules/core/controllers/docker-archive.js.map +1 -1
  93. package/dist/server/modules/core/controllers/docker-engine.client.d.ts +6 -1
  94. package/dist/server/modules/core/controllers/docker-engine.client.js +46 -4
  95. package/dist/server/modules/core/controllers/docker-engine.client.js.map +1 -1
  96. package/dist/server/modules/core/controllers/docker-image-metadata.d.ts +248 -0
  97. package/dist/server/modules/core/controllers/docker-image-metadata.js +161 -0
  98. package/dist/server/modules/core/controllers/docker-image-metadata.js.map +1 -0
  99. package/dist/server/modules/core/controllers/docker-settings.d.ts +13 -2
  100. package/dist/server/modules/core/controllers/docker-settings.js +49 -11
  101. package/dist/server/modules/core/controllers/docker-settings.js.map +1 -1
  102. package/dist/server/modules/core/controllers/health.controller.d.ts +7 -6
  103. package/dist/server/modules/core/controllers/health.controller.js +1 -1
  104. package/dist/server/modules/core/controllers/health.controller.js.map +1 -1
  105. package/dist/server/modules/core/controllers/host-user-identity.d.ts +34 -0
  106. package/dist/server/modules/core/controllers/host-user-identity.js +23 -0
  107. package/dist/server/modules/core/controllers/host-user-identity.js.map +1 -0
  108. package/dist/server/modules/core/controllers/runtime.controller.d.ts +2 -49
  109. package/dist/server/modules/core/controllers/runtime.controller.js +2 -0
  110. package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
  111. package/dist/server/modules/core/services/preflight.service.d.ts +2 -2
  112. package/dist/server/modules/core/services/preflight.service.js +4 -3
  113. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  114. package/dist/server/modules/e2ee/services/e2ee-device-store.service.d.ts +3 -0
  115. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +12 -4
  116. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
  117. package/dist/server/modules/e2ee/services/e2ee-pairing.service.d.ts +1 -0
  118. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js +4 -0
  119. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js.map +1 -1
  120. package/dist/server/modules/e2ee/services/e2ee-trust.service.d.ts +6 -2
  121. package/dist/server/modules/e2ee/services/e2ee-trust.service.js +16 -5
  122. package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
  123. package/dist/server/modules/epic-time/epic-time.module.js +0 -2
  124. package/dist/server/modules/epic-time/epic-time.module.js.map +1 -1
  125. package/dist/server/modules/epic-time/services/agent-time-accounting.service.d.ts +3 -3
  126. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js +12 -12
  127. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js.map +1 -1
  128. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +2 -2
  129. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
  130. package/dist/server/modules/epic-time/services/epic-time.service.d.ts +3 -3
  131. package/dist/server/modules/epic-time/services/epic-time.service.js +7 -7
  132. package/dist/server/modules/epic-time/services/epic-time.service.js.map +1 -1
  133. package/dist/server/modules/epics/epics.module.js +0 -2
  134. package/dist/server/modules/epics/epics.module.js.map +1 -1
  135. package/dist/server/modules/epics/services/epic-relations.service.d.ts +1 -4
  136. package/dist/server/modules/epics/services/epic-relations.service.js +2 -22
  137. package/dist/server/modules/epics/services/epic-relations.service.js.map +1 -1
  138. package/dist/server/modules/epics/services/epics.service.d.ts +4 -4
  139. package/dist/server/modules/epics/services/epics.service.js +11 -19
  140. package/dist/server/modules/epics/services/epics.service.js.map +1 -1
  141. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +2 -2
  142. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +3 -3
  143. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
  144. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.d.ts +2 -2
  145. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js +2 -2
  146. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js.map +1 -1
  147. package/dist/server/modules/events/catalog/on-catalog-event.d.ts +5 -0
  148. package/dist/server/modules/events/catalog/on-catalog-event.js +8 -0
  149. package/dist/server/modules/events/catalog/on-catalog-event.js.map +1 -0
  150. package/dist/server/modules/events/signals/session-turn-signals.js.map +1 -0
  151. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.d.ts +0 -5
  152. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js +8 -44
  153. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js.map +1 -1
  154. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.d.ts +0 -5
  155. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js +9 -45
  156. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js.map +1 -1
  157. package/dist/server/modules/external-integrations/adapters/vendor-shared.d.ts +7 -2
  158. package/dist/server/modules/external-integrations/adapters/vendor-shared.js +36 -0
  159. package/dist/server/modules/external-integrations/adapters/vendor-shared.js.map +1 -1
  160. package/dist/server/modules/external-integrations/connections/integration-connections.service.d.ts +2 -2
  161. package/dist/server/modules/external-integrations/connections/integration-connections.service.js.map +1 -1
  162. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -2
  163. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
  164. package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +2 -2
  165. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
  166. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.d.ts +2 -2
  167. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
  168. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.d.ts +2 -2
  169. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js.map +1 -1
  170. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.d.ts +2 -2
  171. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js.map +1 -1
  172. package/dist/server/modules/file-sync/build-exclusion-suggestions.d.ts +15 -0
  173. package/dist/server/modules/file-sync/build-exclusion-suggestions.js +402 -0
  174. package/dist/server/modules/file-sync/build-exclusion-suggestions.js.map +1 -0
  175. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.d.ts +102 -0
  176. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js +21 -0
  177. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js.map +1 -0
  178. package/dist/server/modules/file-sync/file-sync-auto-fix.store.d.ts +12 -0
  179. package/dist/server/modules/file-sync/file-sync-auto-fix.store.js +73 -0
  180. package/dist/server/modules/file-sync/file-sync-auto-fix.store.js.map +1 -0
  181. package/dist/server/modules/file-sync/file-sync-conflicts.d.ts +3 -0
  182. package/dist/server/modules/file-sync/file-sync-conflicts.js +191 -0
  183. package/dist/server/modules/file-sync/file-sync-conflicts.js.map +1 -0
  184. package/dist/server/modules/file-sync/file-sync-ignores.store.d.ts +5 -1
  185. package/dist/server/modules/file-sync/file-sync-ignores.store.js +39 -8
  186. package/dist/server/modules/file-sync/file-sync-ignores.store.js.map +1 -1
  187. package/dist/server/modules/file-sync/file-sync.controller.d.ts +1 -3
  188. package/dist/server/modules/file-sync/file-sync.controller.js +5 -14
  189. package/dist/server/modules/file-sync/file-sync.controller.js.map +1 -1
  190. package/dist/server/modules/file-sync/file-sync.dto.d.ts +233 -1
  191. package/dist/server/modules/file-sync/file-sync.dto.js +77 -4
  192. package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
  193. package/dist/server/modules/file-sync/file-sync.module.js +14 -1
  194. package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
  195. package/dist/server/modules/file-sync/file-sync.service.d.ts +21 -5
  196. package/dist/server/modules/file-sync/file-sync.service.js +174 -38
  197. package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
  198. package/dist/server/modules/file-sync/git-guard.dto.d.ts +61 -0
  199. package/dist/server/modules/file-sync/git-guard.dto.js +26 -0
  200. package/dist/server/modules/file-sync/git-guard.dto.js.map +1 -0
  201. package/dist/server/modules/file-sync/home-git-guard.service.d.ts +5 -3
  202. package/dist/server/modules/file-sync/home-git-guard.service.js +50 -25
  203. package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
  204. package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +9 -0
  205. package/dist/server/modules/file-sync/host-git-guard.controller.js +64 -0
  206. package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -0
  207. package/dist/server/modules/file-sync/host-git-index.controller.d.ts +10 -0
  208. package/dist/server/modules/file-sync/host-git-index.controller.js +67 -0
  209. package/dist/server/modules/file-sync/host-git-index.controller.js.map +1 -0
  210. package/dist/server/modules/file-sync/host-sync.controller.d.ts +20 -10
  211. package/dist/server/modules/file-sync/host-sync.controller.js +117 -17
  212. package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
  213. package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +33 -0
  214. package/dist/server/modules/file-sync/ignore-pattern-matcher.js +227 -0
  215. package/dist/server/modules/file-sync/ignore-pattern-matcher.js.map +1 -0
  216. package/dist/server/modules/file-sync/project-repository.d.ts +2 -0
  217. package/dist/server/modules/file-sync/project-repository.js +20 -0
  218. package/dist/server/modules/file-sync/project-repository.js.map +1 -0
  219. package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +610 -0
  220. package/dist/server/modules/file-sync/sync-path-inspection.dto.js +100 -0
  221. package/dist/server/modules/file-sync/sync-path-inspection.dto.js.map +1 -0
  222. package/dist/server/modules/file-sync/sync-path-inspector.d.ts +12 -0
  223. package/dist/server/modules/file-sync/sync-path-inspector.js +429 -0
  224. package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -0
  225. package/dist/server/modules/file-sync/syncthing-launcher.d.ts +4 -0
  226. package/dist/server/modules/file-sync/syncthing-launcher.js +21 -1
  227. package/dist/server/modules/file-sync/syncthing-launcher.js.map +1 -1
  228. package/dist/server/modules/file-sync/syncthing-manager.service.d.ts +2 -0
  229. package/dist/server/modules/file-sync/syncthing-manager.service.js +27 -11
  230. package/dist/server/modules/file-sync/syncthing-manager.service.js.map +1 -1
  231. package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +30 -4
  232. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +69 -4
  233. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
  234. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.d.ts +3 -0
  235. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js +11 -0
  236. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js.map +1 -1
  237. package/dist/server/modules/file-sync/translate-git-ignore-rule.d.ts +3 -0
  238. package/dist/server/modules/file-sync/translate-git-ignore-rule.js +30 -0
  239. package/dist/server/modules/file-sync/translate-git-ignore-rule.js.map +1 -0
  240. package/dist/server/modules/git/dtos/git.dto.d.ts +4 -4
  241. package/dist/server/modules/git/services/git.service.d.ts +3 -2
  242. package/dist/server/modules/git/services/git.service.js +12 -0
  243. package/dist/server/modules/git/services/git.service.js.map +1 -1
  244. package/dist/server/modules/guests/guests.module.js +1 -1
  245. package/dist/server/modules/guests/guests.module.js.map +1 -1
  246. package/dist/server/modules/guests/services/guest-health.service.d.ts +3 -1
  247. package/dist/server/modules/guests/services/guest-health.service.js +15 -5
  248. package/dist/server/modules/guests/services/guest-health.service.js.map +1 -1
  249. package/dist/server/modules/guests/services/guests.service.d.ts +2 -2
  250. package/dist/server/modules/guests/services/guests.service.js +0 -2
  251. package/dist/server/modules/guests/services/guests.service.js.map +1 -1
  252. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +4 -4
  253. package/dist/server/modules/hooks/services/hooks.service.js +1 -1
  254. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  255. package/dist/server/modules/hooks/services/pending-ask-user-question.service.d.ts +3 -6
  256. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js +3 -3
  257. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js.map +1 -1
  258. package/dist/server/modules/mcp/mcp-full.module.js +0 -2
  259. package/dist/server/modules/mcp/mcp-full.module.js.map +1 -1
  260. package/dist/server/modules/mcp/services/handlers/chat-context.d.ts +2 -2
  261. package/dist/server/modules/mcp/services/handlers/chat-tools.js +1 -1
  262. package/dist/server/modules/mcp/services/handlers/chat-tools.js.map +1 -1
  263. package/dist/server/modules/mcp/services/handlers/skill-tools.js +2 -2
  264. package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -1
  265. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +3 -4
  266. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +4 -4
  267. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
  268. package/dist/server/modules/mcp/services/mcp.service.d.ts +2 -2
  269. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  270. package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +4 -4
  271. package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
  272. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js +1 -1
  273. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js.map +1 -1
  274. package/dist/server/modules/profiles/controllers/profiles.controller.d.ts +7 -31
  275. package/dist/server/modules/profiles/controllers/profiles.controller.js +10 -13
  276. package/dist/server/modules/profiles/controllers/profiles.controller.js.map +1 -1
  277. package/dist/server/modules/profiles/dto.d.ts +17 -0
  278. package/dist/server/modules/profiles/dto.js.map +1 -1
  279. package/dist/server/modules/profiles/profiles.module.js +1 -2
  280. package/dist/server/modules/profiles/profiles.module.js.map +1 -1
  281. package/dist/server/modules/profiles/services/provider-configs.service.d.ts +1 -4
  282. package/dist/server/modules/profiles/services/provider-configs.service.js +3 -12
  283. package/dist/server/modules/profiles/services/provider-configs.service.js.map +1 -1
  284. package/dist/server/modules/project-communication/project-communication.module.js +1 -2
  285. package/dist/server/modules/project-communication/project-communication.module.js.map +1 -1
  286. package/dist/server/modules/project-communication/project-communication.service.d.ts +4 -4
  287. package/dist/server/modules/project-communication/project-communication.service.js +8 -8
  288. package/dist/server/modules/project-communication/project-communication.service.js.map +1 -1
  289. package/dist/server/modules/projects/controllers/projects.controller.d.ts +4 -17
  290. package/dist/server/modules/projects/controllers/projects.controller.js +2 -9
  291. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  292. package/dist/server/modules/projects/dtos/project-presets.dto.d.ts +5 -0
  293. package/dist/server/modules/projects/dtos/project-presets.dto.js +3 -0
  294. package/dist/server/modules/projects/dtos/project-presets.dto.js.map +1 -0
  295. package/dist/server/modules/projects/helpers/project-export.d.ts +2 -2
  296. package/dist/server/modules/projects/helpers/project-export.js.map +1 -1
  297. package/dist/server/modules/projects/helpers/project-import.d.ts +3 -2
  298. package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
  299. package/dist/server/modules/projects/helpers/project-presets.helpers.d.ts +2 -2
  300. package/dist/server/modules/projects/helpers/project-presets.helpers.js.map +1 -1
  301. package/dist/server/modules/projects/helpers/template-loader.d.ts +3 -2
  302. package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
  303. package/dist/server/modules/projects/projects.module.js +0 -2
  304. package/dist/server/modules/projects/projects.module.js.map +1 -1
  305. package/dist/server/modules/projects/services/project-provider-provisioning.service.d.ts +2 -2
  306. package/dist/server/modules/projects/services/project-provider-provisioning.service.js.map +1 -1
  307. package/dist/server/modules/projects/services/project-registry-import.service.d.ts +2 -2
  308. package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
  309. package/dist/server/modules/projects/services/project-template-upgrade.service.d.ts +3 -3
  310. package/dist/server/modules/projects/services/project-template-upgrade.service.js +6 -7
  311. package/dist/server/modules/projects/services/project-template-upgrade.service.js.map +1 -1
  312. package/dist/server/modules/projects/services/projects.service.d.ts +4 -4
  313. package/dist/server/modules/projects/services/projects.service.js +7 -9
  314. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  315. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.d.ts +2 -2
  316. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.js.map +1 -1
  317. package/dist/server/modules/projects/template-codec/codecs/teams.codec.d.ts +2 -2
  318. package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
  319. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.d.ts +1 -1
  320. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js.map +1 -1
  321. package/dist/server/modules/projects/template-codec/template-section-codec.d.ts +3 -3
  322. package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +1 -3
  323. package/dist/server/modules/prompts/controllers/prompts.controller.js +3 -8
  324. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
  325. package/dist/server/modules/prompts/prompts.module.js +1 -2
  326. package/dist/server/modules/prompts/prompts.module.js.map +1 -1
  327. package/dist/server/modules/providers/adapters/antigravity.adapter.d.ts +1 -1
  328. package/dist/server/modules/providers/adapters/antigravity.adapter.js +2 -1
  329. package/dist/server/modules/providers/adapters/antigravity.adapter.js.map +1 -1
  330. package/dist/server/modules/providers/adapters/antigravity.traits.d.ts +2 -0
  331. package/dist/server/modules/providers/adapters/antigravity.traits.js +9 -0
  332. package/dist/server/modules/providers/adapters/antigravity.traits.js.map +1 -0
  333. package/dist/server/modules/providers/adapters/capabilities/hook.capability.d.ts +0 -1
  334. package/dist/server/modules/providers/adapters/capabilities/project-provisioning.capability.d.ts +0 -1
  335. package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +0 -1
  336. package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
  337. package/dist/server/modules/providers/adapters/claude.adapter.d.ts +1 -3
  338. package/dist/server/modules/providers/adapters/claude.adapter.js +5 -8
  339. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
  340. package/dist/server/modules/providers/adapters/claude.traits.d.ts +2 -0
  341. package/dist/server/modules/providers/adapters/claude.traits.js +9 -0
  342. package/dist/server/modules/providers/adapters/claude.traits.js.map +1 -0
  343. package/dist/server/modules/providers/adapters/codex.adapter.d.ts +1 -2
  344. package/dist/server/modules/providers/adapters/codex.adapter.js +3 -5
  345. package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
  346. package/dist/server/modules/providers/adapters/codex.traits.d.ts +2 -0
  347. package/dist/server/modules/providers/adapters/codex.traits.js +9 -0
  348. package/dist/server/modules/providers/adapters/codex.traits.js.map +1 -0
  349. package/dist/server/modules/providers/adapters/copilot.adapter.d.ts +1 -3
  350. package/dist/server/modules/providers/adapters/copilot.adapter.js +3 -6
  351. package/dist/server/modules/providers/adapters/copilot.adapter.js.map +1 -1
  352. package/dist/server/modules/providers/adapters/copilot.traits.d.ts +2 -0
  353. package/dist/server/modules/providers/adapters/copilot.traits.js +9 -0
  354. package/dist/server/modules/providers/adapters/copilot.traits.js.map +1 -0
  355. package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +1 -1
  356. package/dist/server/modules/providers/adapters/opencode.adapter.js +3 -4
  357. package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -1
  358. package/dist/server/modules/providers/adapters/opencode.traits.d.ts +2 -0
  359. package/dist/server/modules/providers/adapters/opencode.traits.js +9 -0
  360. package/dist/server/modules/providers/adapters/opencode.traits.js.map +1 -0
  361. package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +2 -2
  362. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
  363. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +2 -0
  364. package/dist/server/modules/providers/adapters/provider-traits.d.ts +9 -0
  365. package/dist/server/modules/providers/adapters/provider-traits.js +28 -0
  366. package/dist/server/modules/providers/adapters/provider-traits.js.map +1 -0
  367. package/dist/server/modules/providers/controllers/provider-efforts.controller.d.ts +9 -7
  368. package/dist/server/modules/providers/controllers/provider-efforts.controller.js.map +1 -1
  369. package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +1 -1
  370. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
  371. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.d.ts +2 -2
  372. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.js.map +1 -1
  373. package/dist/server/modules/providers/controllers/providers.controller.d.ts +1 -1
  374. package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
  375. package/dist/server/modules/providers/provider-traits.types.d.ts +5 -0
  376. package/dist/server/modules/providers/provider-traits.types.js +3 -0
  377. package/dist/server/modules/providers/provider-traits.types.js.map +1 -0
  378. package/dist/server/modules/providers/providers.module.js +0 -2
  379. package/dist/server/modules/providers/providers.module.js.map +1 -1
  380. package/dist/server/modules/providers/services/mcp-provider-registration.service.d.ts +2 -2
  381. package/dist/server/modules/providers/services/mcp-provider-registration.service.js +2 -1
  382. package/dist/server/modules/providers/services/mcp-provider-registration.service.js.map +1 -1
  383. package/dist/server/modules/providers/services/provider-cli-installer.service.d.ts +1 -1
  384. package/dist/server/modules/providers/services/provider-cli-installer.service.js.map +1 -1
  385. package/dist/server/modules/providers/services/provider-discovery.service.d.ts +1 -1
  386. package/dist/server/modules/providers/services/provider-discovery.service.js.map +1 -1
  387. package/dist/server/modules/providers/services/provider-effort-seeding.service.d.ts +1 -1
  388. package/dist/server/modules/providers/services/provider-effort-seeding.service.js.map +1 -1
  389. package/dist/server/modules/providers/services/provider-mcp-ensure.service.d.ts +4 -4
  390. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js +8 -7
  391. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js.map +1 -1
  392. package/dist/server/modules/providers/services/provider-plugin-policy.service.d.ts +2 -2
  393. package/dist/server/modules/providers/services/provider-plugin-policy.service.js.map +1 -1
  394. package/dist/server/modules/providers/services/provider-plugins.service.d.ts +1 -1
  395. package/dist/server/modules/providers/services/provider-plugins.service.js.map +1 -1
  396. package/dist/server/modules/providers/services/provider-project-sync.service.d.ts +4 -4
  397. package/dist/server/modules/providers/services/provider-project-sync.service.js +6 -6
  398. package/dist/server/modules/providers/services/provider-project-sync.service.js.map +1 -1
  399. package/dist/server/modules/providers/services/provider-state-manager.service.d.ts +2 -2
  400. package/dist/server/modules/providers/services/provider-state-manager.service.js +1 -1
  401. package/dist/server/modules/providers/services/provider-state-manager.service.js.map +1 -1
  402. package/dist/server/modules/providers/utils/claude-config.js.map +1 -0
  403. package/dist/server/modules/providers/utils/codex-config.js.map +1 -0
  404. package/dist/server/modules/providers/utils/env-builder.js.map +1 -0
  405. package/dist/server/modules/{sessions → providers}/utils/profile-options.d.ts +1 -1
  406. package/dist/server/modules/providers/utils/profile-options.js.map +1 -0
  407. package/dist/server/modules/registry/controllers/registry.controller.d.ts +2 -2
  408. package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
  409. package/dist/server/modules/registry/controllers/templates.controller.d.ts +3 -3
  410. package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +3 -1
  411. package/dist/server/modules/registry/services/registry-orchestration.service.js +14 -2
  412. package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
  413. package/dist/server/modules/remotes/admission/project-write-admission.module.js +3 -5
  414. package/dist/server/modules/remotes/admission/project-write-admission.module.js.map +1 -1
  415. package/dist/server/modules/remotes/admission/project-write-admission.service.d.ts +6 -17
  416. package/dist/server/modules/remotes/admission/project-write-admission.service.js +11 -62
  417. package/dist/server/modules/remotes/admission/project-write-admission.service.js.map +1 -1
  418. package/dist/server/modules/remotes/connect-choices.controller.d.ts +9 -0
  419. package/dist/server/modules/remotes/connect-choices.controller.js +54 -0
  420. package/dist/server/modules/remotes/connect-choices.controller.js.map +1 -0
  421. package/dist/server/modules/remotes/connect-choices.dto.d.ts +52 -0
  422. package/dist/server/modules/remotes/connect-choices.dto.js +19 -0
  423. package/dist/server/modules/remotes/connect-choices.dto.js.map +1 -0
  424. package/dist/server/modules/remotes/connect-choices.store.d.ts +12 -0
  425. package/dist/server/modules/remotes/connect-choices.store.js +95 -0
  426. package/dist/server/modules/remotes/connect-choices.store.js.map +1 -0
  427. package/dist/server/modules/remotes/contract/host-routes.d.ts +27536 -0
  428. package/dist/server/modules/remotes/contract/host-routes.js +405 -0
  429. package/dist/server/modules/remotes/contract/host-routes.js.map +1 -0
  430. package/dist/server/modules/remotes/controllers/remotes.controller.d.ts +3 -0
  431. package/dist/server/modules/remotes/controllers/remotes.controller.js +9 -1
  432. package/dist/server/modules/remotes/controllers/remotes.controller.js.map +1 -1
  433. package/dist/server/modules/remotes/docker/docker-compose-user-fix.d.ts +3 -0
  434. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js +212 -0
  435. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js.map +1 -0
  436. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.d.ts +27 -0
  437. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js +185 -0
  438. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js.map +1 -0
  439. package/dist/server/modules/remotes/docker/docker-copy-back.d.ts +15 -1
  440. package/dist/server/modules/remotes/docker/docker-copy-back.dto.d.ts +8 -1
  441. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js +3 -1
  442. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js.map +1 -1
  443. package/dist/server/modules/remotes/docker/docker-copy-back.js +770 -144
  444. package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
  445. package/dist/server/modules/remotes/docker/docker-data-groups.d.ts +3 -3
  446. package/dist/server/modules/remotes/docker/docker-data-groups.js +20 -6
  447. package/dist/server/modules/remotes/docker/docker-data-groups.js.map +1 -1
  448. package/dist/server/modules/remotes/docker/docker-data-representation.d.ts +9 -0
  449. package/dist/server/modules/remotes/docker/docker-data-representation.js +85 -0
  450. package/dist/server/modules/remotes/docker/docker-data-representation.js.map +1 -0
  451. package/dist/server/modules/remotes/docker/docker-handoff.d.ts +9 -4
  452. package/dist/server/modules/remotes/docker/docker-handoff.js +396 -66
  453. package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
  454. package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +40 -7
  455. package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
  456. package/dist/server/modules/remotes/docker/docker-ownership.d.ts +26 -0
  457. package/dist/server/modules/remotes/docker/docker-ownership.js +182 -0
  458. package/dist/server/modules/remotes/docker/docker-ownership.js.map +1 -0
  459. package/dist/server/modules/remotes/docker/docker-plan-files.d.ts +1 -0
  460. package/dist/server/modules/remotes/docker/docker-plan-files.js +4 -0
  461. package/dist/server/modules/remotes/docker/docker-plan-files.js.map +1 -1
  462. package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +6 -3
  463. package/dist/server/modules/remotes/docker/docker-plan-fit.js +26 -8
  464. package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
  465. package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +7 -3
  466. package/dist/server/modules/remotes/docker/docker-plan-policy.js +287 -43
  467. package/dist/server/modules/remotes/docker/docker-plan-policy.js.map +1 -1
  468. package/dist/server/modules/remotes/docker/docker-plan-source.service.d.ts +57 -8
  469. package/dist/server/modules/remotes/docker/docker-plan-source.service.js +477 -53
  470. package/dist/server/modules/remotes/docker/docker-plan-source.service.js.map +1 -1
  471. package/dist/server/modules/remotes/docker/docker-plan.controller.d.ts +4 -1
  472. package/dist/server/modules/remotes/docker/docker-plan.controller.js +53 -0
  473. package/dist/server/modules/remotes/docker/docker-plan.controller.js.map +1 -1
  474. package/dist/server/modules/remotes/docker/docker-plan.dto.d.ts +158 -15
  475. package/dist/server/modules/remotes/docker/docker-plan.dto.js +12 -2
  476. package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
  477. package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +16 -7
  478. package/dist/server/modules/remotes/docker/docker-plan.service.js +261 -19
  479. package/dist/server/modules/remotes/docker/docker-plan.service.js.map +1 -1
  480. package/dist/server/modules/remotes/docker/docker-project-compose.d.ts +7 -0
  481. package/dist/server/modules/remotes/docker/docker-project-compose.js +29 -0
  482. package/dist/server/modules/remotes/docker/docker-project-compose.js.map +1 -0
  483. package/dist/server/modules/remotes/docker/docker-project-resources.d.ts +14 -0
  484. package/dist/server/modules/remotes/docker/docker-project-resources.js +33 -0
  485. package/dist/server/modules/remotes/docker/docker-project-resources.js.map +1 -0
  486. package/dist/server/modules/remotes/dtos/remote.dto.d.ts +2 -0
  487. package/dist/server/modules/remotes/dtos/remote.dto.js.map +1 -1
  488. package/dist/server/modules/remotes/git-owner.store.d.ts +13 -0
  489. package/dist/server/modules/remotes/git-owner.store.js +69 -0
  490. package/dist/server/modules/remotes/git-owner.store.js.map +1 -0
  491. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js +3 -3
  492. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js.map +1 -1
  493. package/dist/server/modules/remotes/host/host-api-key.module.js +3 -2
  494. package/dist/server/modules/remotes/host/host-api-key.module.js.map +1 -1
  495. package/dist/server/modules/remotes/host/host-api-key.service.d.ts +6 -4
  496. package/dist/server/modules/remotes/host/host-api-key.service.js +30 -10
  497. package/dist/server/modules/remotes/host/host-api-key.service.js.map +1 -1
  498. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.d.ts +14 -0
  499. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js +91 -0
  500. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js.map +1 -0
  501. package/dist/server/modules/remotes/host/host-docker.controller.d.ts +8 -0
  502. package/dist/server/modules/remotes/host/host-docker.controller.js +22 -6
  503. package/dist/server/modules/remotes/host/host-docker.controller.js.map +1 -1
  504. package/dist/server/modules/remotes/host/host-docker.dto.d.ts +647 -0
  505. package/dist/server/modules/remotes/host/host-docker.dto.js +58 -8
  506. package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
  507. package/dist/server/modules/remotes/host/host-docker.service.d.ts +24 -5
  508. package/dist/server/modules/remotes/host/host-docker.service.js +317 -146
  509. package/dist/server/modules/remotes/host/host-docker.service.js.map +1 -1
  510. package/dist/server/modules/remotes/host/host-helper.dto.d.ts +46 -0
  511. package/dist/server/modules/remotes/host/host-helper.dto.js +56 -0
  512. package/dist/server/modules/remotes/host/host-helper.dto.js.map +1 -0
  513. package/dist/server/modules/remotes/host/host-helper.module.d.ts +2 -0
  514. package/dist/server/modules/remotes/host/host-helper.module.js +23 -0
  515. package/dist/server/modules/remotes/host/host-helper.module.js.map +1 -0
  516. package/dist/server/modules/remotes/host/host-helper.service.d.ts +1 -39
  517. package/dist/server/modules/remotes/host/host-helper.service.js +5 -18
  518. package/dist/server/modules/remotes/host/host-helper.service.js.map +1 -1
  519. package/dist/server/modules/remotes/host/host-ipv4-routes.d.ts +4 -0
  520. package/dist/server/modules/remotes/host/host-ipv4-routes.js +43 -0
  521. package/dist/server/modules/remotes/host/host-ipv4-routes.js.map +1 -0
  522. package/dist/server/modules/remotes/host/host-provider-auth.controller.d.ts +4 -2
  523. package/dist/server/modules/remotes/host/host-provider-auth.controller.js +3 -29
  524. package/dist/server/modules/remotes/host/host-provider-auth.controller.js.map +1 -1
  525. package/dist/server/modules/remotes/host/host-provider-auth.dto.d.ts +67 -0
  526. package/dist/server/modules/remotes/host/host-provider-auth.dto.js +32 -0
  527. package/dist/server/modules/remotes/host/host-provider-auth.dto.js.map +1 -0
  528. package/dist/server/modules/remotes/host/host-provider-auth.service.d.ts +1 -8
  529. package/dist/server/modules/remotes/host/host-provider-auth.service.js.map +1 -1
  530. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.d.ts +5 -37
  531. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js +5 -5
  532. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js.map +1 -1
  533. package/dist/server/modules/remotes/host/host-skill-settings.controller.d.ts +5 -9
  534. package/dist/server/modules/remotes/host/host-skill-settings.controller.js +2 -1
  535. package/dist/server/modules/remotes/host/host-skill-settings.controller.js.map +1 -1
  536. package/dist/server/modules/remotes/host/host-skill-settings.service.d.ts +2 -2
  537. package/dist/server/modules/remotes/host/host-skill-settings.service.js.map +1 -1
  538. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js +2 -4
  539. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js.map +1 -1
  540. package/dist/server/modules/remotes/host/host-ssh-keys.dto.d.ts +8 -0
  541. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js +7 -0
  542. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js.map +1 -0
  543. package/dist/server/modules/remotes/host/host-transcripts.controller.d.ts +3 -2
  544. package/dist/server/modules/remotes/host/host-transcripts.controller.js +2 -1
  545. package/dist/server/modules/remotes/host/host-transcripts.controller.js.map +1 -1
  546. package/dist/server/modules/remotes/host/host-update.controller.d.ts +6 -11
  547. package/dist/server/modules/remotes/host/host-update.controller.js +5 -42
  548. package/dist/server/modules/remotes/host/host-update.controller.js.map +1 -1
  549. package/dist/server/modules/remotes/host/host.controller.d.ts +10 -14
  550. package/dist/server/modules/remotes/host/host.controller.js.map +1 -1
  551. package/dist/server/modules/remotes/host/project-freeze.service.d.ts +4 -5
  552. package/dist/server/modules/remotes/host/project-freeze.service.js +14 -20
  553. package/dist/server/modules/remotes/host/project-freeze.service.js.map +1 -1
  554. package/dist/server/modules/remotes/host/provider-baseline.service.js +1 -1
  555. package/dist/server/modules/remotes/host/provider-baseline.service.js.map +1 -1
  556. package/dist/server/modules/remotes/host-image.d.ts +1 -1
  557. package/dist/server/modules/remotes/host-image.js +1 -1
  558. package/dist/server/modules/remotes/host-install/host-install-block.d.ts +1 -0
  559. package/dist/server/modules/remotes/host-install/host-install-block.js +76 -2
  560. package/dist/server/modules/remotes/host-install/host-install-block.js.map +1 -1
  561. package/dist/server/modules/remotes/host-install/host-install.service.d.ts +0 -1
  562. package/dist/server/modules/remotes/host-install/host-install.service.js +9 -26
  563. package/dist/server/modules/remotes/host-install/host-install.service.js.map +1 -1
  564. package/dist/server/modules/remotes/operations/attach.operation.d.ts +5 -1
  565. package/dist/server/modules/remotes/operations/attach.operation.js +40 -5
  566. package/dist/server/modules/remotes/operations/attach.operation.js.map +1 -1
  567. package/dist/server/modules/remotes/operations/claim.operation.d.ts +1 -0
  568. package/dist/server/modules/remotes/operations/claim.operation.js +6 -1
  569. package/dist/server/modules/remotes/operations/claim.operation.js.map +1 -1
  570. package/dist/server/modules/remotes/operations/detach.operation.d.ts +9 -2
  571. package/dist/server/modules/remotes/operations/detach.operation.js +22 -4
  572. package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
  573. package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +735 -4
  574. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +48 -1
  575. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js.map +1 -1
  576. package/dist/server/modules/remotes/operations/file-sync-handoff.d.ts +29 -3
  577. package/dist/server/modules/remotes/operations/file-sync-handoff.js +477 -50
  578. package/dist/server/modules/remotes/operations/file-sync-handoff.js.map +1 -1
  579. package/dist/server/modules/remotes/operations/force-sync.operation.d.ts +39 -0
  580. package/dist/server/modules/remotes/operations/force-sync.operation.js +177 -0
  581. package/dist/server/modules/remotes/operations/force-sync.operation.js.map +1 -0
  582. package/dist/server/modules/remotes/operations/git-owner.dto.d.ts +83 -0
  583. package/dist/server/modules/remotes/operations/git-owner.dto.js +25 -0
  584. package/dist/server/modules/remotes/operations/git-owner.dto.js.map +1 -0
  585. package/dist/server/modules/remotes/operations/git-owner.operation.d.ts +35 -0
  586. package/dist/server/modules/remotes/operations/git-owner.operation.js +216 -0
  587. package/dist/server/modules/remotes/operations/git-owner.operation.js.map +1 -0
  588. package/dist/server/modules/remotes/operations/remote-host.client.d.ts +47 -491
  589. package/dist/server/modules/remotes/operations/remote-host.client.js +192 -414
  590. package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
  591. package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +38 -12
  592. package/dist/server/modules/remotes/operations/remote-operation.dto.js +5 -1
  593. package/dist/server/modules/remotes/operations/remote-operation.dto.js.map +1 -1
  594. package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +5 -1
  595. package/dist/server/modules/remotes/operations/remote-operation.runner.js +74 -27
  596. package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
  597. package/dist/server/modules/remotes/operations/remote-operation.types.d.ts +4 -1
  598. package/dist/server/modules/remotes/operations/remote-operation.types.js.map +1 -1
  599. package/dist/server/modules/remotes/operations/remote-operations.controller.d.ts +5 -0
  600. package/dist/server/modules/remotes/operations/remote-operations.controller.js +56 -0
  601. package/dist/server/modules/remotes/operations/remote-operations.controller.js.map +1 -1
  602. package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +17 -2
  603. package/dist/server/modules/remotes/operations/remote-operations.service.js +155 -5
  604. package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
  605. package/dist/server/modules/remotes/operations/update-logins.operation.d.ts +2 -4
  606. package/dist/server/modules/remotes/operations/update-logins.operation.js +3 -18
  607. package/dist/server/modules/remotes/operations/update-logins.operation.js.map +1 -1
  608. package/dist/server/modules/remotes/operations/vm-operations.dto.d.ts +7 -7
  609. package/dist/server/modules/remotes/ports/remote-health.port.d.ts +2 -0
  610. package/dist/server/modules/remotes/ports/remote-health.port.js.map +1 -1
  611. package/dist/server/modules/remotes/remotes.module.js +24 -2
  612. package/dist/server/modules/remotes/remotes.module.js.map +1 -1
  613. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.d.ts +2 -2
  614. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js +2 -13
  615. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js.map +1 -1
  616. package/dist/server/modules/remotes/services/remote-health.service.js +5 -0
  617. package/dist/server/modules/remotes/services/remote-health.service.js.map +1 -1
  618. package/dist/server/modules/remotes/services/remote-skill-settings.service.d.ts +2 -2
  619. package/dist/server/modules/remotes/services/remote-skill-settings.service.js.map +1 -1
  620. package/dist/server/modules/remotes/sync/file-sync-failures.service.d.ts +18 -0
  621. package/dist/server/modules/remotes/sync/file-sync-failures.service.js +155 -0
  622. package/dist/server/modules/remotes/sync/file-sync-failures.service.js.map +1 -0
  623. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.d.ts +14 -0
  624. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js +99 -0
  625. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js.map +1 -0
  626. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.d.ts +17 -0
  627. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +124 -0
  628. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js.map +1 -0
  629. package/dist/server/modules/remotes/sync/project-file-sync.controller.d.ts +27 -0
  630. package/dist/server/modules/remotes/sync/project-file-sync.controller.js +146 -0
  631. package/dist/server/modules/remotes/sync/project-file-sync.controller.js.map +1 -0
  632. package/dist/server/modules/remotes/sync/remote-file-sync.dto.d.ts +70 -0
  633. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js +16 -0
  634. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js.map +1 -0
  635. package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +31 -1
  636. package/dist/server/modules/remotes/sync/remote-file-sync.service.js +440 -38
  637. package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
  638. package/dist/server/modules/remotes/sync/remote-live-sync.service.d.ts +2 -0
  639. package/dist/server/modules/remotes/sync/remote-live-sync.service.js +26 -12
  640. package/dist/server/modules/remotes/sync/remote-live-sync.service.js.map +1 -1
  641. package/dist/server/modules/remotes/time/project-time-settler.dto.d.ts +21 -0
  642. package/dist/server/modules/remotes/time/project-time-settler.dto.js +12 -0
  643. package/dist/server/modules/remotes/time/project-time-settler.dto.js.map +1 -0
  644. package/dist/server/modules/remotes/time/project-time-settler.service.d.ts +2 -21
  645. package/dist/server/modules/remotes/time/project-time-settler.service.js +1 -9
  646. package/dist/server/modules/remotes/time/project-time-settler.service.js.map +1 -1
  647. package/dist/server/modules/remotes/transcripts/transcript-transfer.dto.d.ts +4 -4
  648. package/dist/server/modules/remotes/transport/host-transport.d.ts +27 -0
  649. package/dist/server/modules/remotes/transport/host-transport.js +105 -0
  650. package/dist/server/modules/remotes/transport/host-transport.js.map +1 -0
  651. package/dist/server/modules/remotes/vm-user-identity.d.ts +30 -0
  652. package/dist/server/modules/remotes/vm-user-identity.js +52 -0
  653. package/dist/server/modules/remotes/vm-user-identity.js.map +1 -0
  654. package/dist/server/modules/reviews/reviews.module.js +1 -9
  655. package/dist/server/modules/reviews/reviews.module.js.map +1 -1
  656. package/dist/server/modules/reviews/services/review-suggestion-applier.service.d.ts +4 -4
  657. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js +6 -6
  658. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js.map +1 -1
  659. package/dist/server/modules/reviews/services/reviews.service.d.ts +4 -4
  660. package/dist/server/modules/reviews/services/reviews.service.js +7 -12
  661. package/dist/server/modules/reviews/services/reviews.service.js.map +1 -1
  662. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js +2 -2
  663. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js.map +1 -1
  664. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.d.ts +11 -12
  665. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js +37 -25
  666. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js.map +1 -1
  667. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.d.ts +11 -9
  668. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +48 -2
  669. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
  670. package/dist/server/modules/runtime-context-capture/index.d.ts +3 -2
  671. package/dist/server/modules/runtime-context-capture/index.js.map +1 -1
  672. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.d.ts +41 -0
  673. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js +3 -0
  674. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js.map +1 -0
  675. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js +1 -2
  676. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js.map +1 -1
  677. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.d.ts +4 -4
  678. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js +6 -6
  679. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js.map +1 -1
  680. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.d.ts +2 -3
  681. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js +9 -12
  682. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js.map +1 -1
  683. package/dist/server/modules/seeders/services/data-seeder.service.d.ts +2 -3
  684. package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
  685. package/dist/server/modules/seeders/types/seeder.types.d.ts +2 -2
  686. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +1 -1
  687. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +4 -2
  688. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +3 -0
  689. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  690. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +4 -2
  691. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +3 -0
  692. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  693. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +1 -1
  694. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +2 -0
  695. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
  696. package/dist/server/modules/session-reader/data/pricing.json +3228 -3014
  697. package/dist/server/modules/session-reader/services/transcript-persistence.listener.d.ts +8 -18
  698. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +89 -172
  699. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -1
  700. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +12 -12
  701. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  702. package/dist/server/modules/session-reader/session-reader.module.js +2 -0
  703. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
  704. package/dist/server/modules/session-terminal-runtime/dtos/active-session-info.dto.js.map +1 -0
  705. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js +2 -1
  706. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js.map +1 -1
  707. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.d.ts +8 -4
  708. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js +47 -18
  709. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js.map +1 -1
  710. package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +3 -5
  711. package/dist/server/modules/sessions/controllers/sessions.controller.js +8 -11
  712. package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
  713. package/dist/server/modules/sessions/services/active-session-lookup.service.d.ts +4 -5
  714. package/dist/server/modules/sessions/services/active-session-lookup.service.js +9 -66
  715. package/dist/server/modules/sessions/services/active-session-lookup.service.js.map +1 -1
  716. package/dist/server/modules/sessions/services/message-pool.types.d.ts +1 -1
  717. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +2 -2
  718. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +7 -2
  719. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
  720. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.d.ts +3 -5
  721. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +56 -95
  722. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -1
  723. package/dist/server/modules/sessions/services/session-launcher-facade.service.d.ts +1 -1
  724. package/dist/server/modules/sessions/services/session-launcher-facade.service.js +1 -1
  725. package/dist/server/modules/sessions/services/session-launcher-facade.service.js.map +1 -1
  726. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.d.ts +3 -3
  727. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js +8 -8
  728. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js.map +1 -1
  729. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +4 -0
  730. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +10 -2
  731. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  732. package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.d.ts +1 -1
  733. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.d.ts +7 -7
  734. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +30 -29
  735. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  736. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +4 -2
  737. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +8 -9
  738. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  739. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.d.ts +3 -3
  740. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js +7 -7
  741. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js.map +1 -1
  742. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +4 -7
  743. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +111 -211
  744. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  745. package/dist/server/modules/sessions/services/sessions.service.d.ts +8 -10
  746. package/dist/server/modules/sessions/services/sessions.service.js +26 -158
  747. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  748. package/dist/server/modules/sessions/sessions-lifecycle.module.js +2 -2
  749. package/dist/server/modules/sessions/sessions-lifecycle.module.js.map +1 -1
  750. package/dist/server/modules/sessions/sessions-read.module.js +2 -2
  751. package/dist/server/modules/sessions/sessions-read.module.js.map +1 -1
  752. package/dist/server/modules/sessions/sessions.module.js +7 -5
  753. package/dist/server/modules/sessions/sessions.module.js.map +1 -1
  754. package/dist/server/modules/settings/controllers/settings.controller.d.ts +3 -4
  755. package/dist/server/modules/settings/controllers/settings.controller.js +6 -31
  756. package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -1
  757. package/dist/server/modules/settings/dtos/settings.dto.d.ts +12 -12
  758. package/dist/server/modules/settings/local/delegates/core-settings.delegate.d.ts +5 -0
  759. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +36 -2
  760. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
  761. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.d.ts +4 -0
  762. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js +30 -23
  763. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js.map +1 -1
  764. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.d.ts +2 -0
  765. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js +2 -0
  766. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js.map +1 -1
  767. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.d.ts +6 -0
  768. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js +26 -0
  769. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js.map +1 -1
  770. package/dist/server/modules/settings/services/settings.service.d.ts +5 -2
  771. package/dist/server/modules/settings/services/settings.service.js +14 -4
  772. package/dist/server/modules/settings/services/settings.service.js.map +1 -1
  773. package/dist/server/modules/settings/settings.module.js +1 -2
  774. package/dist/server/modules/settings/settings.module.js.map +1 -1
  775. package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js +5 -5
  776. package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js.map +1 -1
  777. package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js +5 -5
  778. package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js.map +1 -1
  779. package/dist/server/modules/skills/adapters/github-skill-source.base.js +4 -3
  780. package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
  781. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +5 -5
  782. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -1
  783. package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js +5 -5
  784. package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js.map +1 -1
  785. package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js +5 -5
  786. package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js.map +1 -1
  787. package/dist/server/modules/skills/adapters/skill-source.adapter.d.ts +5 -0
  788. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.d.ts +5 -0
  789. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js +75 -0
  790. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js.map +1 -0
  791. package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js +5 -5
  792. package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js.map +1 -1
  793. package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js +5 -5
  794. package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js.map +1 -1
  795. package/dist/server/modules/skills/controllers/skills.controller.js +2 -2
  796. package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
  797. package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +5 -5
  798. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js +9 -4
  799. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
  800. package/dist/server/modules/skills/services/skill-sync.service.d.ts +3 -3
  801. package/dist/server/modules/skills/services/skill-sync.service.js +32 -6
  802. package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
  803. package/dist/server/modules/skills/services/skill-sync.types.d.ts +3 -0
  804. package/dist/server/modules/skills/services/skills.service.d.ts +3 -1
  805. package/dist/server/modules/skills/services/skills.service.js +15 -2
  806. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  807. package/dist/server/modules/statuses/controllers/statuses.controller.d.ts +3 -3
  808. package/dist/server/modules/statuses/controllers/statuses.controller.js +8 -10
  809. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
  810. package/dist/server/modules/statuses/statuses.module.js +1 -2
  811. package/dist/server/modules/statuses/statuses.module.js.map +1 -1
  812. package/dist/server/modules/storage/db/db-file-permissions.d.ts +1 -0
  813. package/dist/server/modules/storage/db/db-file-permissions.js +24 -0
  814. package/dist/server/modules/storage/db/db-file-permissions.js.map +1 -0
  815. package/dist/server/modules/storage/db/db.provider.js +2 -0
  816. package/dist/server/modules/storage/db/db.provider.js.map +1 -1
  817. package/dist/server/modules/storage/db/migrate.js +2 -0
  818. package/dist/server/modules/storage/db/migrate.js.map +1 -1
  819. package/dist/server/modules/storage/db/schema.d.ts +2 -2
  820. package/dist/server/modules/storage/db/schema.js +2 -0
  821. package/dist/server/modules/storage/db/schema.js.map +1 -1
  822. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +0 -1
  823. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  824. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.d.ts +2 -2
  825. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js.map +1 -1
  826. package/dist/server/modules/storage/local/delegates/agent.delegate.d.ts +2 -2
  827. package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -1
  828. package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +5 -6
  829. package/dist/server/modules/storage/local/delegates/epic.delegate.js +3 -9
  830. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
  831. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +16 -15
  832. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +13 -13
  833. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
  834. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.d.ts +11 -10
  835. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +9 -9
  836. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
  837. package/dist/server/modules/storage/local/delegates/guest.delegate.d.ts +2 -1
  838. package/dist/server/modules/storage/local/delegates/guest.delegate.js.map +1 -1
  839. package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +3 -4
  840. package/dist/server/modules/storage/local/delegates/integration.delegate.js +1 -1
  841. package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
  842. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.d.ts +3 -16
  843. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js.map +1 -1
  844. package/dist/server/modules/storage/local/delegates/project-host.delegate.d.ts +2 -2
  845. package/dist/server/modules/storage/local/delegates/project-host.delegate.js.map +1 -1
  846. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.d.ts +2 -2
  847. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js +1 -1
  848. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js.map +1 -1
  849. package/dist/server/modules/storage/local/delegates/project-replica.delegate.d.ts +2 -2
  850. package/dist/server/modules/storage/local/delegates/project-replica.delegate.js.map +1 -1
  851. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.d.ts +2 -1
  852. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.js.map +1 -1
  853. package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +4 -2
  854. package/dist/server/modules/storage/local/delegates/project.delegate.js +4 -0
  855. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  856. package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +3 -2
  857. package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -1
  858. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.d.ts +2 -1
  859. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.js.map +1 -1
  860. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.d.ts +2 -1
  861. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.js.map +1 -1
  862. package/dist/server/modules/storage/local/delegates/provider-model.delegate.d.ts +2 -1
  863. package/dist/server/modules/storage/local/delegates/provider-model.delegate.js.map +1 -1
  864. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.d.ts +2 -1
  865. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.js.map +1 -1
  866. package/dist/server/modules/storage/local/delegates/provider.delegate.d.ts +3 -3
  867. package/dist/server/modules/storage/local/delegates/provider.delegate.js +9 -23
  868. package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -1
  869. package/dist/server/modules/storage/local/delegates/record.delegate.d.ts +2 -2
  870. package/dist/server/modules/storage/local/delegates/remote.delegate.d.ts +2 -2
  871. package/dist/server/modules/storage/local/delegates/remote.delegate.js.map +1 -1
  872. package/dist/server/modules/storage/local/delegates/review.delegate.d.ts +2 -2
  873. package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -1
  874. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.d.ts +2 -2
  875. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js.map +1 -1
  876. package/dist/server/modules/storage/local/delegates/session.delegate.d.ts +2 -1
  877. package/dist/server/modules/storage/local/delegates/session.delegate.js.map +1 -1
  878. package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +7 -3
  879. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +24 -11
  880. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
  881. package/dist/server/modules/storage/local/delegates/status.delegate.d.ts +2 -2
  882. package/dist/server/modules/storage/local/delegates/subscriber.delegate.d.ts +2 -1
  883. package/dist/server/modules/storage/local/delegates/subscriber.delegate.js.map +1 -1
  884. package/dist/server/modules/storage/local/delegates/tag.delegate.d.ts +2 -2
  885. package/dist/server/modules/storage/local/delegates/watcher.delegate.d.ts +2 -1
  886. package/dist/server/modules/storage/local/delegates/watcher.delegate.js.map +1 -1
  887. package/dist/server/modules/storage/local/helpers/device-revocation-history.js.map +1 -0
  888. package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -361
  889. package/dist/server/modules/storage/local/local-storage.service.js +119 -908
  890. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  891. package/dist/server/modules/storage/local/storage-routes.d.ts +1170 -0
  892. package/dist/server/modules/storage/local/storage-routes.js +465 -0
  893. package/dist/server/modules/storage/local/storage-routes.js.map +1 -0
  894. package/dist/server/modules/storage/models/domain.models.d.ts +1 -1
  895. package/dist/server/modules/storage/models/domain.models.js +2 -0
  896. package/dist/server/modules/storage/models/domain.models.js.map +1 -1
  897. package/dist/server/modules/storage/sessions/session-row.store.d.ts +42 -0
  898. package/dist/server/modules/storage/sessions/session-row.store.js +383 -0
  899. package/dist/server/modules/storage/sessions/session-row.store.js.map +1 -0
  900. package/dist/server/modules/storage/sessions/session-rows.module.d.ts +2 -0
  901. package/dist/server/modules/storage/sessions/session-rows.module.js +19 -0
  902. package/dist/server/modules/storage/sessions/session-rows.module.js.map +1 -0
  903. package/dist/server/modules/storage/sessions/session-transcript.types.d.ts +45 -0
  904. package/dist/server/modules/storage/sessions/session-transcript.types.js +3 -0
  905. package/dist/server/modules/storage/sessions/session-transcript.types.js.map +1 -0
  906. package/dist/server/modules/storage/storage.module.d.ts +3 -0
  907. package/dist/server/modules/storage/storage.module.js +15 -2
  908. package/dist/server/modules/storage/storage.module.js.map +1 -1
  909. package/dist/server/modules/storage/write-gate/project-write-gate.d.ts +32 -0
  910. package/dist/server/modules/storage/write-gate/project-write-gate.js +117 -0
  911. package/dist/server/modules/storage/write-gate/project-write-gate.js.map +1 -0
  912. package/dist/server/modules/storage/write-gate/storage-write-scope.d.ts +45 -0
  913. package/dist/server/modules/storage/write-gate/storage-write-scope.js +103 -0
  914. package/dist/server/modules/storage/write-gate/storage-write-scope.js.map +1 -0
  915. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.d.ts +3 -0
  916. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js +13 -0
  917. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js.map +1 -0
  918. package/dist/server/modules/subscribers/actions/action.interface.d.ts +2 -2
  919. package/dist/server/modules/subscribers/actions/terminate-session.action.d.ts +7 -0
  920. package/dist/server/modules/subscribers/actions/terminate-session.action.js +58 -6
  921. package/dist/server/modules/subscribers/actions/terminate-session.action.js.map +1 -1
  922. package/dist/server/modules/subscribers/services/subscriber-executor.service.d.ts +5 -4
  923. package/dist/server/modules/subscribers/services/subscriber-executor.service.js +6 -6
  924. package/dist/server/modules/subscribers/services/subscriber-executor.service.js.map +1 -1
  925. package/dist/server/modules/subscribers/services/subscribers.service.d.ts +1 -3
  926. package/dist/server/modules/subscribers/services/subscribers.service.js +2 -8
  927. package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -1
  928. package/dist/server/modules/subscribers/subscribers.module.js +0 -2
  929. package/dist/server/modules/subscribers/subscribers.module.js.map +1 -1
  930. package/dist/server/modules/teams/controllers/teams.controller.d.ts +2 -2
  931. package/dist/server/modules/teams/controllers/teams.controller.js.map +1 -1
  932. package/dist/server/modules/teams/services/teams.service.d.ts +4 -4
  933. package/dist/server/modules/teams/services/teams.service.js +8 -18
  934. package/dist/server/modules/teams/services/teams.service.js.map +1 -1
  935. package/dist/server/modules/teams/services/teams.validators.d.ts +4 -4
  936. package/dist/server/modules/teams/services/teams.validators.js.map +1 -1
  937. package/dist/server/modules/teams/storage/teams.store.d.ts +4 -1
  938. package/dist/server/modules/teams/storage/teams.store.js +20 -2
  939. package/dist/server/modules/teams/storage/teams.store.js.map +1 -1
  940. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.d.ts +2 -2
  941. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js +2 -2
  942. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js.map +1 -1
  943. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js +3 -3
  944. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js.map +1 -1
  945. package/dist/server/modules/teams/teams.module.js +1 -8
  946. package/dist/server/modules/teams/teams.module.js.map +1 -1
  947. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +10 -29
  948. package/dist/server/modules/terminal/gateways/terminal.gateway.js +40 -89
  949. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  950. package/dist/server/modules/terminal/services/guest-delivery.service.js +1 -0
  951. package/dist/server/modules/terminal/services/guest-delivery.service.js.map +1 -1
  952. package/dist/server/modules/terminal/services/human-prompt-input.service.d.ts +30 -0
  953. package/dist/server/modules/terminal/services/human-prompt-input.service.js +69 -0
  954. package/dist/server/modules/terminal/services/human-prompt-input.service.js.map +1 -0
  955. package/dist/server/modules/terminal/services/human-prompt-state.service.js +3 -2
  956. package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
  957. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.d.ts +6 -0
  958. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js +23 -1
  959. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js.map +1 -1
  960. package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +4 -3
  961. package/dist/server/modules/terminal/services/terminal-activity.service.js +26 -47
  962. package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
  963. package/dist/server/modules/terminal/services/terminal-delivery.types.d.ts +1 -1
  964. package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +9 -3
  965. package/dist/server/modules/terminal/services/terminal-io/delivery.js +65 -28
  966. package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
  967. package/dist/server/modules/terminal/services/terminal-io/foreground.d.ts +7 -0
  968. package/dist/server/modules/terminal/services/terminal-io/foreground.js +35 -0
  969. package/dist/server/modules/terminal/services/terminal-io/foreground.js.map +1 -0
  970. package/dist/server/modules/terminal/services/terminal-io/lifecycle.js +15 -3
  971. package/dist/server/modules/terminal/services/terminal-io/lifecycle.js.map +1 -1
  972. package/dist/server/modules/terminal/services/terminal-io/monitoring.d.ts +3 -0
  973. package/dist/server/modules/terminal/services/terminal-io/monitoring.js +36 -0
  974. package/dist/server/modules/terminal/services/terminal-io/monitoring.js.map +1 -1
  975. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.d.ts +3 -0
  976. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +80 -19
  977. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
  978. package/dist/server/modules/terminal/services/terminal-io/types.d.ts +1 -0
  979. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.d.ts +6 -11
  980. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +12 -43
  981. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
  982. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js +1 -1
  983. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js.map +1 -1
  984. package/dist/server/modules/terminal/services/terminal-seed.service.js +0 -4
  985. package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
  986. package/dist/server/modules/terminal/terminal-delivery.module.js +3 -0
  987. package/dist/server/modules/terminal/terminal-delivery.module.js.map +1 -1
  988. package/dist/server/modules/terminal/terminal.module.js +2 -0
  989. package/dist/server/modules/terminal/terminal.module.js.map +1 -1
  990. package/dist/server/modules/terminal/utils/ansi-sanitizer.d.ts +0 -1
  991. package/dist/server/modules/terminal/utils/ansi-sanitizer.js +0 -4
  992. package/dist/server/modules/terminal/utils/ansi-sanitizer.js.map +1 -1
  993. package/dist/server/modules/watchers/services/watcher-runner.service.d.ts +2 -2
  994. package/dist/server/modules/watchers/services/watcher-runner.service.js +0 -3
  995. package/dist/server/modules/watchers/services/watcher-runner.service.js.map +1 -1
  996. package/dist/server/modules/watchers/services/watchers.service.d.ts +3 -3
  997. package/dist/server/modules/watchers/services/watchers.service.js +6 -9
  998. package/dist/server/modules/watchers/services/watchers.service.js.map +1 -1
  999. package/dist/server/modules/watchers/watchers.module.js +1 -8
  1000. package/dist/server/modules/watchers/watchers.module.js.map +1 -1
  1001. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.d.ts +2 -2
  1002. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.js.map +1 -1
  1003. package/dist/server/modules/workspaces/services/workspaces.service.d.ts +3 -3
  1004. package/dist/server/modules/workspaces/services/workspaces.service.js +7 -7
  1005. package/dist/server/modules/workspaces/services/workspaces.service.js.map +1 -1
  1006. package/dist/server/modules/workspaces/workspaces.module.js +1 -2
  1007. package/dist/server/modules/workspaces/workspaces.module.js.map +1 -1
  1008. package/dist/server/templates/teams-dev.json +277 -261
  1009. package/dist/server/test-setup-node.js +4 -3
  1010. package/dist/server/test-setup-node.js.map +1 -1
  1011. package/dist/server/test-setup.js +7 -0
  1012. package/dist/server/test-setup.js.map +1 -1
  1013. package/dist/server/tsconfig.build.tsbuildinfo +1 -0
  1014. package/dist/server/ui/assets/{ExternalRichEditor-DtNvrV0F.js → ExternalRichEditor-CB-LjWox.js} +24 -24
  1015. package/dist/server/ui/assets/ReviewDetailPage-CpMMjYet.js +6 -0
  1016. package/dist/server/ui/assets/ReviewsPage-Cw17_agp.js +6 -0
  1017. package/dist/server/ui/assets/index-BwuNu70G.css +32 -0
  1018. package/dist/server/ui/assets/index-DmRXRpSy.js +1192 -0
  1019. package/dist/server/ui/assets/useReviewSubscription-wd5iHNQy.js +69 -0
  1020. package/dist/server/ui/index.html +2 -2
  1021. package/dist/templates/teams-dev.json +277 -261
  1022. package/package.json +18 -347
  1023. package/dist/server/common/test/remote-project.fixture.d.ts +0 -32
  1024. package/dist/server/common/test/remote-project.fixture.js +0 -328
  1025. package/dist/server/common/test/remote-project.fixture.js.map +0 -1
  1026. package/dist/server/common/test/two-instance.fixture.d.ts +0 -48
  1027. package/dist/server/common/test/two-instance.fixture.js +0 -269
  1028. package/dist/server/common/test/two-instance.fixture.js.map +0 -1
  1029. package/dist/server/modules/e2ee/services/device-revocation-history.js.map +0 -1
  1030. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +0 -5
  1031. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +0 -8
  1032. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +0 -1
  1033. package/dist/server/modules/reviews/utils/notification-formatter.d.ts +0 -12
  1034. package/dist/server/modules/reviews/utils/notification-formatter.js +0 -60
  1035. package/dist/server/modules/reviews/utils/notification-formatter.js.map +0 -1
  1036. package/dist/server/modules/session-reader/services/transcript-turn-state.d.ts +0 -4
  1037. package/dist/server/modules/session-reader/services/transcript-turn-state.js +0 -20
  1038. package/dist/server/modules/session-reader/services/transcript-turn-state.js.map +0 -1
  1039. package/dist/server/modules/sessions/dtos/active-session-info.dto.js.map +0 -1
  1040. package/dist/server/modules/sessions/utils/claude-config.js.map +0 -1
  1041. package/dist/server/modules/sessions/utils/codex-config.js.map +0 -1
  1042. package/dist/server/modules/sessions/utils/env-builder.js.map +0 -1
  1043. package/dist/server/modules/sessions/utils/profile-options.js.map +0 -1
  1044. package/dist/server/modules/terminal/services/session-turn-signals.js.map +0 -1
  1045. package/dist/server/tsconfig.tsbuildinfo +0 -1
  1046. package/dist/server/ui/assets/ReviewDetailPage-DJzEoM0x.js +0 -6
  1047. package/dist/server/ui/assets/ReviewsPage-z2O8MNEw.js +0 -6
  1048. package/dist/server/ui/assets/index-CC4P3V8L.js +0 -994
  1049. package/dist/server/ui/assets/index-LsJe1ZTS.css +0 -32
  1050. package/dist/server/ui/assets/useReviewSubscription-B7AdJBO2.js +0 -69
  1051. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.d.ts +0 -0
  1052. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.js +0 -0
  1053. /package/dist/server/modules/{sessions → providers}/utils/claude-config.d.ts +0 -0
  1054. /package/dist/server/modules/{sessions → providers}/utils/claude-config.js +0 -0
  1055. /package/dist/server/modules/{sessions → providers}/utils/codex-config.d.ts +0 -0
  1056. /package/dist/server/modules/{sessions → providers}/utils/codex-config.js +0 -0
  1057. /package/dist/server/modules/{sessions → providers}/utils/env-builder.d.ts +0 -0
  1058. /package/dist/server/modules/{sessions → providers}/utils/env-builder.js +0 -0
  1059. /package/dist/server/modules/{sessions → providers}/utils/profile-options.js +0 -0
  1060. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.d.ts +0 -0
  1061. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.js +0 -0
  1062. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.d.ts +0 -0
  1063. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.js +0 -0
@@ -5,29 +5,85 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DockerAvailabilityError = exports.DockerPlanSourceService = exports.DOCKER_PLAN_REUSE_MS = void 0;
12
+ exports.DockerAvailabilityError = exports.DockerPlanSourceService = exports.DOCKER_PLAN_REUSE_MS = exports.unknownSize = void 0;
13
+ exports.containerProjectLinks = containerProjectLinks;
14
+ exports.composeLabelSet = composeLabelSet;
10
15
  exports.reusable = reusable;
11
16
  const common_1 = require("@nestjs/common");
12
17
  const node_child_process_1 = require("node:child_process");
13
18
  const promises_1 = require("node:fs/promises");
14
19
  const node_os_1 = require("node:os");
15
20
  const node_path_1 = require("node:path");
21
+ const process_executor_port_1 = require("../../terminal/services/process-executor/process-executor.port");
16
22
  const docker_engine_client_1 = require("../../core/controllers/docker-engine.client");
17
23
  const docker_settings_1 = require("../../core/controllers/docker-settings");
18
24
  const host_docker_dto_1 = require("../host/host-docker.dto");
25
+ const docker_ownership_1 = require("./docker-ownership");
19
26
  const docker_plan_files_1 = require("./docker-plan-files");
27
+ const docker_project_compose_1 = require("./docker-project-compose");
20
28
  const docker_plan_dto_1 = require("./docker-plan.dto");
29
+ const AGGREGATE_OWNERSHIP_CLASSES = [
30
+ 'needs-user-fix',
31
+ 'follows-user',
32
+ 'image-user-hint',
33
+ ];
34
+ function containerProjectLinks(root, inspect) {
35
+ return (0, docker_project_compose_1.composeRootLinks)((inspect.Config.Labels ?? {}), root);
36
+ }
37
+ function composeLabelSet(root, container) {
38
+ const labels = (container.Config.Labels ?? {});
39
+ const encoded = labels[`${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.config_files`];
40
+ if (!encoded)
41
+ return null;
42
+ const directory = (0, node_path_1.resolve)(labels[`${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.working_dir`] || root);
43
+ const files = encoded
44
+ .split(',')
45
+ .filter(Boolean)
46
+ .map((file) => (0, node_path_1.resolve)(directory, file));
47
+ if (!files.length)
48
+ return null;
49
+ return { directory, files, service: labels[host_docker_dto_1.COMPOSE_SERVICE_LABEL] || null };
50
+ }
51
+ function buildsInProject(root, service) {
52
+ if (!service || Object.hasOwn(service, 'image'))
53
+ return false;
54
+ const build = service.build;
55
+ return (typeof build === 'object' &&
56
+ build !== null &&
57
+ 'context' in build &&
58
+ typeof build.context === 'string' &&
59
+ (0, node_path_1.isAbsolute)(build.context) &&
60
+ (0, docker_plan_files_1.within)(root, build.context));
61
+ }
62
+ async function hasRootCompose(root) {
63
+ for (const name of docker_project_compose_1.DEFAULT_COMPOSE_FILES) {
64
+ if (await (0, promises_1.access)((0, node_path_1.join)(root, name)).then(() => true, () => false))
65
+ return true;
66
+ }
67
+ return false;
68
+ }
21
69
  const unknownSize = () => ({ bytes: 0, unknown: true });
70
+ exports.unknownSize = unknownSize;
22
71
  const size = (value) => typeof value === 'number' && value >= 0 && Number.isFinite(value)
23
72
  ? { bytes: value, unknown: false }
24
- : unknownSize();
73
+ : (0, exports.unknownSize)();
25
74
  exports.DOCKER_PLAN_REUSE_MS = 120_000;
26
75
  function reusable(at) {
27
76
  return Date.now() - at < exports.DOCKER_PLAN_REUSE_MS;
28
77
  }
29
78
  let DockerPlanSourceService = class DockerPlanSourceService {
79
+ executor;
80
+ constructor(executor) {
81
+ this.executor = executor;
82
+ }
30
83
  recent = null;
84
+ invalidate() {
85
+ this.recent = null;
86
+ }
31
87
  async connect(signal) {
32
88
  let socket;
33
89
  try {
@@ -56,6 +112,63 @@ let DockerPlanSourceService = class DockerPlanSourceService {
56
112
  }
57
113
  return client;
58
114
  }
115
+ async presence(root, signal) {
116
+ signal?.throwIfAborted();
117
+ if (await hasRootCompose(root)) {
118
+ signal?.throwIfAborted();
119
+ return { state: 'present' };
120
+ }
121
+ const deadline = AbortSignal.timeout(5000);
122
+ const scanSignal = signal ? AbortSignal.any([signal, deadline]) : deadline;
123
+ let onAbort;
124
+ try {
125
+ let socket;
126
+ try {
127
+ socket = await Promise.race([
128
+ this.socket(),
129
+ new Promise((_resolve, reject) => {
130
+ onAbort = () => reject(scanSignal.reason);
131
+ scanSignal.addEventListener('abort', onAbort, { once: true });
132
+ if (scanSignal.aborted)
133
+ onAbort();
134
+ }),
135
+ ]);
136
+ }
137
+ catch (error) {
138
+ if (scanSignal.aborted)
139
+ throw error;
140
+ return { state: 'absent' };
141
+ }
142
+ try {
143
+ const containers = await new docker_engine_client_1.DockerEngineClient(socket).json('GET', '/containers/json?all=true', undefined, { signal: scanSignal });
144
+ return {
145
+ state: containers.some((container) => (0, docker_project_compose_1.containerLinksProject)(container.Labels, container.Mounts, root))
146
+ ? 'present'
147
+ : 'absent',
148
+ };
149
+ }
150
+ catch (error) {
151
+ if (scanSignal.aborted)
152
+ throw error;
153
+ const failure = await socketAvailability(socket, error);
154
+ return {
155
+ state: failure instanceof DockerAvailabilityError &&
156
+ (failure.reason === 'no-socket' || failure.reason === 'no-socket-access')
157
+ ? 'absent'
158
+ : 'unknown',
159
+ };
160
+ }
161
+ }
162
+ catch (error) {
163
+ if (signal?.aborted)
164
+ throw error;
165
+ return { state: 'unknown' };
166
+ }
167
+ finally {
168
+ if (onAbort)
169
+ scanSignal.removeEventListener('abort', onAbort);
170
+ }
171
+ }
59
172
  socket() {
60
173
  return (0, docker_engine_client_1.resolveDockerSocket)();
61
174
  }
@@ -65,26 +178,34 @@ let DockerPlanSourceService = class DockerPlanSourceService {
65
178
  uid() {
66
179
  return process.getuid?.() ?? null;
67
180
  }
181
+ gid() {
182
+ return process.getgid?.() ?? null;
183
+ }
68
184
  measure(path, signal) {
69
185
  return (0, docker_plan_files_1.measureDockerBind)(path, undefined, signal);
70
186
  }
71
- async compose(root) {
72
- let file;
73
- for (const name of [
74
- 'compose.yaml',
75
- 'compose.yml',
76
- 'docker-compose.yml',
77
- 'docker-compose.yaml',
78
- ]) {
79
- if (await (0, promises_1.access)((0, node_path_1.join)(root, name)).then(() => true, () => false)) {
80
- file = name;
81
- break;
82
- }
187
+ async compose(root, options = {}) {
188
+ if (!options.files?.length) {
189
+ if (!(await hasRootCompose(root)))
190
+ return null;
83
191
  }
84
- if (!file)
85
- return null;
86
192
  return new Promise((resolveConfig, reject) => {
87
- (0, node_child_process_1.execFile)('docker', ['compose', '--project-directory', root, 'config', '--format', 'json'], { cwd: root, timeout: 30_000, maxBuffer: 16 * 1024 * 1024 }, (error, stdout) => {
193
+ (0, node_child_process_1.execFile)('docker', [
194
+ 'compose',
195
+ '--project-directory',
196
+ root,
197
+ ...(options.files?.flatMap((path) => ['-f', path]) ?? []),
198
+ ...(options.allProfiles ? ['--profile', '*'] : []),
199
+ 'config',
200
+ '--format',
201
+ 'json',
202
+ ], {
203
+ cwd: root,
204
+ timeout: 30_000,
205
+ maxBuffer: 16 * 1024 * 1024,
206
+ signal: options.signal,
207
+ env: options.env ? { ...process.env, ...options.env } : undefined,
208
+ }, (error, stdout) => {
88
209
  if (error)
89
210
  return reject(new docker_engine_client_1.DockerEngineError('unavailable', 'Cannot read project Docker Compose configuration'));
90
211
  try {
@@ -97,10 +218,66 @@ let DockerPlanSourceService = class DockerPlanSourceService {
97
218
  reject(new docker_engine_client_1.DockerEngineError('invalid-response', 'Invalid Docker Compose configuration'));
98
219
  }
99
220
  });
221
+ }).catch((error) => {
222
+ if (options.allProfiles &&
223
+ !options.signal?.aborted &&
224
+ error instanceof docker_engine_client_1.DockerEngineError &&
225
+ error.code === 'unavailable')
226
+ return this.compose(root, { ...options, allProfiles: false });
227
+ throw error;
100
228
  });
101
229
  }
102
- async scan(client, root, signal, { reuse = false } = {}) {
230
+ async scan(client, root, signal, { reuse = false, previousBindPaths = [], dataBindPaths = [], ownership, } = {}) {
103
231
  const recent = reuse && this.recent && reusable(this.recent.at) ? this.recent : null;
232
+ const composeCache = new Map(recent?.compose);
233
+ const readCompose = async (directory, files, ids) => {
234
+ const key = JSON.stringify([(0, node_path_1.resolve)(directory), files, ids]);
235
+ if (!composeCache.has(key)) {
236
+ const config = await this.compose(directory, {
237
+ files,
238
+ signal,
239
+ ...(ids
240
+ ? {
241
+ allProfiles: true,
242
+ env: {
243
+ ...process.env,
244
+ DEVCHAIN_UID: String(ids.uid),
245
+ DEVCHAIN_GID: String(ids.gid),
246
+ },
247
+ }
248
+ : {}),
249
+ }).catch((error) => (error instanceof Error ? error : new Error(String(error))));
250
+ signal?.throwIfAborted();
251
+ composeCache.set(key, config);
252
+ }
253
+ return composeCache.get(key);
254
+ };
255
+ const composeOwnershipSets = new Map();
256
+ const readOwnershipCompose = async (directory, files) => {
257
+ if (!ownership)
258
+ return undefined;
259
+ const key = JSON.stringify([(0, node_path_1.resolve)(directory), files]);
260
+ if (!composeOwnershipSets.has(key)) {
261
+ const [home, vm] = await Promise.all([
262
+ readCompose(directory, files, ownership.home),
263
+ readCompose(directory, files, ownership.vm),
264
+ ]);
265
+ composeOwnershipSets.set(key, home && vm && !(home instanceof Error) && !(vm instanceof Error)
266
+ ? { state: 'resolved', directory, files, home, vm }
267
+ : {
268
+ state: 'unresolved',
269
+ directory,
270
+ files,
271
+ home: home instanceof Error ? null : home,
272
+ vm: vm instanceof Error ? null : vm,
273
+ issue: {
274
+ code: 'compose-ownership-unreadable',
275
+ message: 'Cannot resolve Docker Compose ownership with both home and VM user ids. Fix the Compose configuration and verify again.',
276
+ },
277
+ });
278
+ }
279
+ return composeOwnershipSets.get(key);
280
+ };
104
281
  const [listed, usage, volumes, composeAttempt] = await Promise.all([
105
282
  client.json('GET', '/containers/json?all=true', undefined, { signal }),
106
283
  recent?.usage ?? client.diskUsage(signal),
@@ -108,7 +285,10 @@ let DockerPlanSourceService = class DockerPlanSourceService {
108
285
  this.compose(root).catch((error) => (error instanceof Error ? error : new Error(String(error)))),
109
286
  ]);
110
287
  const items = [];
288
+ const ownershipConsumers = [];
289
+ const ownershipInputs = new Map();
111
290
  const imageCache = new Map();
291
+ const imageUsers = new Map();
112
292
  const bindCache = new Map(recent?.folders);
113
293
  const image = async (ref) => {
114
294
  let result = imageCache.get(ref);
@@ -122,6 +302,7 @@ let DockerPlanSourceService = class DockerPlanSourceService {
122
302
  size: size(usage.Images?.find((entry) => entry.Id === info.Id)?.Size),
123
303
  };
124
304
  imageCache.set(ref, result);
305
+ imageUsers.set(ref, info.Config?.User);
125
306
  }
126
307
  return result;
127
308
  };
@@ -133,22 +314,44 @@ let DockerPlanSourceService = class DockerPlanSourceService {
133
314
  driver: volumes.Volumes?.find((v) => v.Name === name)?.Driver ?? 'unknown',
134
315
  size: size(usage.Volumes?.find((v) => v.Name === name)?.UsageData?.Size),
135
316
  });
136
- const inspects = await Promise.all(listed.map((entry) => client.json('GET', `/containers/${encodeURIComponent(entry.Id)}/json`, undefined, { signal })));
317
+ const linked = new Set(listed
318
+ .filter((entry) => (0, docker_project_compose_1.containerLinksProject)(entry.Labels, entry.Mounts, root))
319
+ .map((entry) => entry.Id));
320
+ const writableLayers = new Map(recent?.writableLayers);
321
+ const inspects = await Promise.all(listed.map(async (entry) => {
322
+ const measureLayer = linked.has(entry.Id) && !writableLayers.has(entry.Id);
323
+ const inspect = await client.json('GET', `/containers/${encodeURIComponent(entry.Id)}/json${measureLayer ? '?size=true' : ''}`, undefined, { signal });
324
+ if (measureLayer)
325
+ writableLayers.set(entry.Id, size(inspect.SizeRw));
326
+ return inspect;
327
+ }));
328
+ const networkNames = [
329
+ ...new Set(inspects.flatMap((inspect) => Object.keys(inspect.NetworkSettings?.Networks ?? {}).filter((name) => !docker_settings_1.DEFAULT_NETWORKS.has(name)))),
330
+ ];
331
+ const networkSubnets = new Map(await Promise.all(networkNames.map(async (name) => {
332
+ const network = await client.json('GET', `/networks/${encodeURIComponent(name)}`, undefined, { signal });
333
+ return [name, (0, docker_settings_1.ipv4Ranges)(network.IPAM?.Config).map((range) => range.Subnet)];
334
+ })));
137
335
  for (const inspect of inspects) {
138
336
  const item = baseItem(inspect.Id, inspect.Name.replace(/^\//, ''), 'container');
337
+ for (const [name, endpoint] of Object.entries(inspect.NetworkSettings?.Networks ?? {})) {
338
+ if (docker_settings_1.DEFAULT_NETWORKS.has(name))
339
+ continue;
340
+ const address = (0, docker_settings_1.fixedIPv4Address)(endpoint);
341
+ const subnets = networkSubnets.get(name) ?? [];
342
+ (item.networks ??= []).push({ name, subnets });
343
+ if (address)
344
+ (item.fixedIPv4 ??= []).push({ network: name, address, subnets });
345
+ }
139
346
  const labels = (inspect.Config.Labels ?? {});
140
347
  item.composeProject = labels[host_docker_dto_1.COMPOSE_PROJECT_LABEL] ?? null;
141
348
  item.temporary = inspect.HostConfig.AutoRemove === true;
349
+ if (inspect.HostConfig.Privileged === true)
350
+ item.privileged = true;
142
351
  if (item.temporary)
143
352
  item.notes.push(docker_plan_dto_1.DOCKER_TEMPORARY_NOTE);
144
353
  item.notes.push(docker_plan_dto_1.DOCKER_WRITABLE_LAYER_NOTE);
145
- for (const key of [
146
- `${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.working_dir`,
147
- `${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.config_files`,
148
- ]) {
149
- if (labels[key]?.split(',').some((path) => path.startsWith('/') && (0, docker_plan_files_1.within)(root, path)))
150
- item.linkedReasons.push(key);
151
- }
354
+ item.linkedReasons.push(...containerProjectLinks(root, inspect));
152
355
  try {
153
356
  (0, docker_settings_1.projectDockerCreate)(inspect, client.socketPath);
154
357
  }
@@ -167,33 +370,49 @@ let DockerPlanSourceService = class DockerPlanSourceService {
167
370
  }
168
371
  }
169
372
  item.images = [await image(inspect.Image)];
170
- item.writableLayer = size(usage.Containers?.find((c) => c.Id === inspect.Id)?.SizeRw);
171
- const user = String(inspect.Config.User ?? '').split(':')[0];
172
- if (this.uid() !== null && user === String(this.uid()))
173
- item.warnings.push({ code: 'home-uid', message: 'Container runs as the home user uid.' });
373
+ item.writableLayer = linked.has(inspect.Id)
374
+ ? (writableLayers.get(inspect.Id) ?? (0, exports.unknownSize)())
375
+ : (0, exports.unknownSize)();
174
376
  for (const mount of inspect.Mounts ?? []) {
175
377
  if (mount.Type === 'volume') {
176
378
  const named = explicitlyNamed(inspect, mount) ||
177
- Boolean(volumes.Volumes?.find((v) => v.Name === mount.Name)?.Labels?.['com.docker.compose.volume']);
379
+ Boolean(volumes.Volumes?.find((v) => v.Name === mount.Name)?.Labels?.[host_docker_dto_1.COMPOSE_VOLUME_LABEL]);
178
380
  item.mounts.push(volumeMount(mount.Name ?? mount.Source, mount.Destination, named, !mount.RW));
179
381
  }
180
382
  else if (mount.Type === 'bind') {
181
383
  const source = (0, node_path_1.resolve)(mount.Source);
182
- const kind = this.bindKind(root, source, !mount.RW);
183
- if (kind === 'project-bind')
384
+ const kind = await this.bindKind(root, source, !mount.RW, dataBindPaths, signal);
385
+ if (kind === 'project-bind' || kind === 'project-code')
184
386
  item.linkedReasons.push(`bind:${source}`);
185
- const copyable = docker_plan_dto_1.COPYABLE_MOUNT_KINDS.includes(kind);
186
- if (copyable && !bindCache.has(source))
187
- bindCache.set(source, await this.measure(source, signal));
188
387
  item.mounts.push({
189
388
  kind,
190
389
  source,
191
390
  destination: mount.Destination,
192
391
  readOnly: !mount.RW,
193
- size: copyable ? (bindCache.get(source) ?? unknownSize()) : unknownSize(),
392
+ size: (0, exports.unknownSize)(),
194
393
  });
195
394
  }
196
395
  }
396
+ const composeSet = item.linkedReasons.length ? composeLabelSet(root, inspect) : null;
397
+ if (composeSet?.service) {
398
+ const configs = await readOwnershipCompose(composeSet.directory, composeSet.files);
399
+ if (configs?.state === 'unresolved')
400
+ item.blockers.push(configs.issue);
401
+ ownershipInputs.set(item.id, {
402
+ inspect,
403
+ compose: { ...composeSet, service: composeSet.service },
404
+ configs,
405
+ });
406
+ const config = configs?.home ?? (await readCompose(composeSet.directory, composeSet.files));
407
+ if (configs?.state === 'unresolved' && config && !(config instanceof Error))
408
+ configs.fallback = config;
409
+ if (!(config instanceof Error) &&
410
+ buildsInProject(root, config?.services?.[composeSet.service]))
411
+ item.buildsFromProject = true;
412
+ }
413
+ if (!ownershipInputs.has(item.id))
414
+ ownershipInputs.set(item.id, { inspect });
415
+ item.runtimeUser = inspect.Config.User;
197
416
  items.push(item);
198
417
  }
199
418
  if (composeAttempt instanceof Error) {
@@ -201,6 +420,8 @@ let DockerPlanSourceService = class DockerPlanSourceService {
201
420
  const item = baseItem(`compose:${name}`, name, 'compose-project');
202
421
  item.composeProject = name;
203
422
  item.linkedReasons.push('compose-file-at-project-root');
423
+ if (ownership)
424
+ item.ownership = { ...ownership, class: 'exact' };
204
425
  item.blockers.push({
205
426
  code: 'compose-unreadable',
206
427
  message: `${name}: ${composeAttempt.message}`,
@@ -210,9 +431,15 @@ let DockerPlanSourceService = class DockerPlanSourceService {
210
431
  else if (composeAttempt &&
211
432
  !items.some((item) => item.composeProject === composeAttempt.name)) {
212
433
  const compose = composeAttempt;
434
+ const configs = await readOwnershipCompose(root, []);
213
435
  const item = baseItem(`compose:${compose.name}`, compose.name, 'compose-project');
214
436
  item.composeProject = compose.name;
215
437
  item.linkedReasons.push('compose-file-at-project-root');
438
+ if (configs?.state === 'unresolved') {
439
+ configs.fallback = compose;
440
+ item.blockers.push(configs.issue);
441
+ item.ownership = { ...ownership, class: 'exact', refusalReasons: [configs.issue] };
442
+ }
216
443
  item.notes.push('compose up recreates the containers on the VM. Only existing volumes and present images are copied.');
217
444
  for (const [service, config] of Object.entries(compose.services ?? {})) {
218
445
  try {
@@ -231,8 +458,169 @@ let DockerPlanSourceService = class DockerPlanSourceService {
231
458
  if (volumes.Volumes?.some((v) => v.Name === name))
232
459
  item.mounts.push(volumeMount(name, '', true, false));
233
460
  }
461
+ for (const config of Object.values(compose.services ?? {}))
462
+ for (const mount of config.volumes ?? []) {
463
+ if (mount.type !== 'bind' || !mount.source)
464
+ continue;
465
+ const source = (0, node_path_1.resolve)(root, mount.source);
466
+ if (!(0, docker_plan_files_1.strictlyWithin)(root, source) ||
467
+ !previousBindPaths.some((path) => (0, docker_plan_files_1.within)(path, source) || (0, docker_plan_files_1.within)(source, path)))
468
+ continue;
469
+ item.mounts.push({
470
+ kind: await this.bindKind(root, source, mount.read_only ?? false, dataBindPaths, signal),
471
+ source,
472
+ destination: mount.target ?? '',
473
+ readOnly: mount.read_only ?? false,
474
+ size: (0, exports.unknownSize)(),
475
+ });
476
+ }
234
477
  items.push(item);
235
478
  }
479
+ const previous = await Promise.all([...new Set(previousBindPaths)]
480
+ .filter((path) => (0, docker_plan_files_1.within)(root, path))
481
+ .map(async (path) => ({
482
+ source: path,
483
+ kind: await this.bindKind(root, path, false, dataBindPaths, signal),
484
+ })));
485
+ const projectMounts = items
486
+ .flatMap((item) => item.mounts)
487
+ .filter((mount) => mount.kind === 'project-bind' || mount.kind === 'project-code');
488
+ const dataPaths = [
489
+ ...projectMounts
490
+ .filter((mount) => mount.kind === 'project-bind')
491
+ .map((mount) => mount.source),
492
+ ...previous.filter((mount) => mount.kind === 'project-bind').map((mount) => mount.source),
493
+ ...dataBindPaths.filter((path) => (0, docker_plan_files_1.strictlyWithin)(root, path)),
494
+ ];
495
+ const classified = [...projectMounts, ...previous];
496
+ for (const mount of classified)
497
+ if (mount.kind === 'project-code' && dataPaths.some((path) => (0, docker_plan_files_1.within)(path, mount.source)))
498
+ mount.kind = 'project-bind';
499
+ const codePaths = [
500
+ ...new Set(classified.filter((mount) => mount.kind === 'project-code').map((mount) => mount.source)),
501
+ ];
502
+ if (ownership) {
503
+ for (const item of items) {
504
+ const input = ownershipInputs.get(item.id);
505
+ if (!input)
506
+ continue;
507
+ const { inspect, compose, configs } = input;
508
+ const imageUser = imageUsers.get(inspect.Image);
509
+ const homeService = compose ? configs?.home?.services?.[compose.service] : undefined;
510
+ const vmService = compose ? configs?.vm?.services?.[compose.service] : undefined;
511
+ item.ownership = item.linkedReasons.length
512
+ ? (0, docker_ownership_1.classifyDockerOwnership)(ownership, item.runtimeUser, imageUser, item.mounts.some((mount) => mount.kind === 'project-code'), compose && configs?.state === 'resolved'
513
+ ? {
514
+ source: compose,
515
+ homeUser: homeService?.user,
516
+ vmUser: vmService?.user,
517
+ vmGroupAdd: vmService?.group_add,
518
+ }
519
+ : undefined, item.composeProject !== null, (inspect.HostConfig.GroupAdd ?? []).map(String))
520
+ : { ...ownership, class: 'exact' };
521
+ if (configs?.state === 'unresolved') {
522
+ item.ownership.compose = compose;
523
+ item.ownership.refusalReasons = [configs.issue];
524
+ }
525
+ ownershipConsumers.push({
526
+ name: item.name,
527
+ itemId: item.id,
528
+ ownership: item.ownership,
529
+ user: homeService?.user ?? item.runtimeUser,
530
+ imageUser,
531
+ literalHomeUser: Boolean(configs?.state === 'resolved' &&
532
+ (0, docker_ownership_1.literalHomeComposeUser)(ownership, homeService?.user, vmService?.user)),
533
+ volumes: item.mounts
534
+ .filter((mount) => (0, docker_plan_dto_1.isVolumeMount)(mount.kind))
535
+ .map((mount) => mount.source),
536
+ bindPaths: item.mounts
537
+ .filter((mount) => !(0, docker_plan_dto_1.isVolumeMount)(mount.kind))
538
+ .map((mount) => mount.source),
539
+ });
540
+ }
541
+ for (const set of composeOwnershipSets.values()) {
542
+ const config = set.home ?? set.vm ?? (set.state === 'unresolved' ? set.fallback : null);
543
+ if (!config)
544
+ continue;
545
+ const aggregate = items.find((item) => item.kind === 'compose-project' && item.composeProject === config.name);
546
+ for (const [service, serviceConfig] of Object.entries(config.services ?? {})) {
547
+ const inspected = [...ownershipInputs.values()].find((input) => input.configs === set && input.compose?.service === service);
548
+ const ref = inspected?.inspect.Image ?? serviceConfig.image ?? `${config.name}-${service}`;
549
+ let imageUser = imageUsers.get(ref);
550
+ if (!imageCache.has(ref)) {
551
+ try {
552
+ await image(ref);
553
+ imageUser = imageUsers.get(ref);
554
+ }
555
+ catch (error) {
556
+ if (!(0, docker_engine_client_1.isDockerNotFound)(error))
557
+ throw error;
558
+ }
559
+ }
560
+ const mounts = await Promise.all((serviceConfig.volumes ?? []).map(async (mount) => ({
561
+ ...mount,
562
+ kind: mount.type === 'bind' && mount.source
563
+ ? await this.bindKind(root, (0, node_path_1.resolve)(set.directory, mount.source), mount.read_only ?? false, dataBindPaths, signal)
564
+ : undefined,
565
+ })));
566
+ const vmConfig = set.vm?.services?.[service];
567
+ const decision = set.state === 'resolved'
568
+ ? (0, docker_ownership_1.classifyDockerOwnership)(ownership, serviceConfig.user ?? imageUser, imageUser, mounts.some((mount) => mount.kind === 'project-code'), {
569
+ source: { directory: set.directory, files: set.files, service },
570
+ homeUser: serviceConfig.user,
571
+ vmUser: vmConfig?.user,
572
+ vmGroupAdd: vmConfig?.group_add,
573
+ }, true)
574
+ : {
575
+ ...ownership,
576
+ class: 'exact',
577
+ compose: { directory: set.directory, files: set.files, service },
578
+ refusalReasons: [set.issue],
579
+ };
580
+ if (aggregate)
581
+ (aggregate.serviceOwnership ??= []).push({ service, ownership: decision });
582
+ ownershipConsumers.push({
583
+ name: `${config.name}/${service}`,
584
+ itemId: aggregate?.id,
585
+ user: serviceConfig.user ?? imageUser,
586
+ imageUser,
587
+ ownership: decision,
588
+ literalHomeUser: set.state === 'resolved' &&
589
+ (0, docker_ownership_1.literalHomeComposeUser)(ownership, serviceConfig.user, vmConfig?.user),
590
+ volumes: mounts
591
+ .filter((mount) => mount.type === 'volume' && mount.source)
592
+ .map((mount) => {
593
+ const volume = config.volumes?.[mount.source];
594
+ return (volume?.name ??
595
+ (volume?.external ? mount.source : `${config.name}_${mount.source}`));
596
+ }),
597
+ bindPaths: mounts
598
+ .filter((mount) => mount.type === 'bind' && mount.source)
599
+ .map((mount) => (0, node_path_1.resolve)(set.directory, mount.source)),
600
+ });
601
+ }
602
+ if (aggregate) {
603
+ const classes = aggregate.serviceOwnership?.map((entry) => entry.ownership.class) ?? [];
604
+ aggregate.ownership = {
605
+ ...ownership,
606
+ ...(set.state === 'unresolved' ? { refusalReasons: [set.issue] } : {}),
607
+ class: AGGREGATE_OWNERSHIP_CLASSES.find((cls) => classes.includes(cls)) ?? 'exact',
608
+ };
609
+ }
610
+ }
611
+ }
612
+ for (const mount of items.flatMap((item) => item.mounts)) {
613
+ if ((0, docker_plan_dto_1.isVolumeMount)(mount.kind))
614
+ continue;
615
+ if (docker_plan_dto_1.COPYABLE_MOUNT_KINDS.includes(mount.kind)) {
616
+ if (!bindCache.has(mount.source))
617
+ bindCache.set(mount.source, await this.measure(mount.source, signal));
618
+ mount.size = bindCache.get(mount.source) ?? (0, exports.unknownSize)();
619
+ }
620
+ else if (mount.kind === 'project-code') {
621
+ mount.size = { bytes: 0, unknown: false };
622
+ }
623
+ }
236
624
  for (const item of items) {
237
625
  const group = [item];
238
626
  for (const member of group)
@@ -242,11 +630,18 @@ let DockerPlanSourceService = class DockerPlanSourceService {
242
630
  item.writerGroup = group.map((member) => member.id).sort();
243
631
  }
244
632
  const folders = new Map([...bindCache].filter(([, size]) => !size.unknown));
245
- this.recent = { at: recent?.at ?? Date.now(), usage, folders };
633
+ this.recent = {
634
+ at: recent?.at ?? Date.now(),
635
+ usage,
636
+ writableLayers: new Map([...writableLayers].filter(([, size]) => !size.unknown)),
637
+ folders,
638
+ compose: composeCache,
639
+ };
246
640
  return {
247
641
  items,
248
642
  homePath: this.homePath(),
249
- uid: this.uid(),
643
+ codePaths,
644
+ ...(ownership ? { ownershipConsumers } : {}),
250
645
  holders: inspects.map((c) => ({
251
646
  volumes: (c.Mounts ?? []).filter((m) => m.Type === 'volume').map((m) => m.Name ?? m.Source),
252
647
  bindPaths: (c.Mounts ?? []).filter((m) => m.Type === 'bind').map((m) => m.Source),
@@ -254,9 +649,35 @@ let DockerPlanSourceService = class DockerPlanSourceService {
254
649
  })),
255
650
  };
256
651
  }
257
- bindKind(root, source, readOnly) {
258
- if ((0, docker_plan_files_1.within)(root, source))
259
- return 'project-bind';
652
+ async bindKind(root, source, readOnly, dataBindPaths, signal) {
653
+ signal?.throwIfAborted();
654
+ if ((0, node_path_1.resolve)(root) === (0, node_path_1.resolve)(source))
655
+ return 'project-code';
656
+ if ((0, docker_plan_files_1.within)(root, source)) {
657
+ if (dataBindPaths.some((path) => (0, node_path_1.resolve)(path) === (0, node_path_1.resolve)(source)))
658
+ return 'project-bind';
659
+ try {
660
+ const result = await this.executor.run({
661
+ argv: ['git', 'ls-files', '-z', '--', `:(literal)${(0, node_path_1.relative)(root, source)}`],
662
+ mode: 'pipe',
663
+ cwd: root,
664
+ timeout: 10_000,
665
+ outputLimits: { maxBytes: 4096 },
666
+ });
667
+ signal?.throwIfAborted();
668
+ if (result.success) {
669
+ const tracked = result.truncated ||
670
+ result.stdout
671
+ .split('\0')
672
+ .some((path) => path && !['.gitkeep', '.keep', '.gitignore'].includes((0, node_path_1.basename)(path)));
673
+ return tracked ? 'project-code' : 'project-bind';
674
+ }
675
+ }
676
+ catch {
677
+ signal?.throwIfAborted();
678
+ }
679
+ return readOnly ? 'project-code' : 'project-bind';
680
+ }
260
681
  if ((0, docker_plan_files_1.within)(this.homePath(), source))
261
682
  return 'home-bind';
262
683
  return readOnly ? 'readonly-external-bind' : 'external-bind';
@@ -282,7 +703,8 @@ let DockerPlanSourceService = class DockerPlanSourceService {
282
703
  };
283
704
  exports.DockerPlanSourceService = DockerPlanSourceService;
284
705
  exports.DockerPlanSourceService = DockerPlanSourceService = __decorate([
285
- (0, common_1.Injectable)()
706
+ (0, common_1.Injectable)(),
707
+ __metadata("design:paramtypes", [process_executor_port_1.ProcessExecutor])
286
708
  ], DockerPlanSourceService);
287
709
  class DockerAvailabilityError extends docker_engine_client_1.DockerEngineError {
288
710
  reason;
@@ -347,15 +769,17 @@ function explicitlyNamed(inspect, mount) {
347
769
  }
348
770
  function sharesData(a, b) {
349
771
  const copied = (mount) => docker_plan_dto_1.COPYABLE_MOUNT_KINDS.includes(mount.kind);
350
- return a.mounts.some((x) => copied(x) &&
351
- b.mounts.some((y) => {
352
- if (!copied(y) || (x.readOnly && y.readOnly))
353
- return false;
354
- const xv = (0, docker_plan_dto_1.isVolumeMount)(x.kind);
355
- const yv = (0, docker_plan_dto_1.isVolumeMount)(y.kind);
356
- return xv && yv
357
- ? x.source === y.source
358
- : !xv && !yv && ((0, docker_plan_files_1.within)(x.source, y.source) || (0, docker_plan_files_1.within)(y.source, x.source));
359
- }));
772
+ const writer = (mount) => copied(mount) || (mount.kind === 'project-code' && !mount.readOnly);
773
+ return a.mounts.some((x) => b.mounts.some((y) => {
774
+ if (x.readOnly && y.readOnly)
775
+ return false;
776
+ if (!(copied(x) && writer(y)) && !(copied(y) && writer(x)))
777
+ return false;
778
+ const xv = (0, docker_plan_dto_1.isVolumeMount)(x.kind);
779
+ const yv = (0, docker_plan_dto_1.isVolumeMount)(y.kind);
780
+ return xv && yv
781
+ ? x.source === y.source
782
+ : !xv && !yv && ((0, docker_plan_files_1.within)(x.source, y.source) || (0, docker_plan_files_1.within)(y.source, x.source));
783
+ }));
360
784
  }
361
785
  //# sourceMappingURL=docker-plan-source.service.js.map