devchain-cli 0.24.0 → 0.24.2

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 (432) hide show
  1. package/README.md +1 -4
  2. package/dist/build-info.json +2 -2
  3. package/dist/cli.js +66 -11
  4. package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
  5. package/dist/host-install/pins.json +31 -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/server/common/config/env.config.d.ts +3 -0
  11. package/dist/server/common/config/env.config.js +1 -0
  12. package/dist/server/common/config/env.config.js.map +1 -1
  13. package/dist/server/common/config/host-image.json +3 -3
  14. package/dist/server/common/constants/syncthing-markers.d.ts +1 -0
  15. package/dist/server/common/constants/syncthing-markers.js +6 -1
  16. package/dist/server/common/constants/syncthing-markers.js.map +1 -1
  17. package/dist/server/common/filesystem/vm-home-path.d.ts +11 -0
  18. package/dist/server/common/filesystem/vm-home-path.js +48 -0
  19. package/dist/server/common/filesystem/vm-home-path.js.map +1 -0
  20. package/dist/server/common/process-ids-env.d.ts +1 -0
  21. package/dist/server/common/process-ids-env.js +13 -0
  22. package/dist/server/common/process-ids-env.js.map +1 -0
  23. package/dist/server/common/test/api-test-app.d.ts +12 -0
  24. package/dist/server/common/test/api-test-app.js +76 -0
  25. package/dist/server/common/test/api-test-app.js.map +1 -0
  26. package/dist/server/common/test/app-bootstrap.helper.js +8 -1
  27. package/dist/server/common/test/app-bootstrap.helper.js.map +1 -1
  28. package/dist/server/common/test/fake-bootstrap.server.js +3 -2
  29. package/dist/server/common/test/fake-bootstrap.server.js.map +1 -1
  30. package/dist/server/common/test/fake-docker-engine.server.d.ts +24 -6
  31. package/dist/server/common/test/fake-docker-engine.server.js +123 -25
  32. package/dist/server/common/test/fake-docker-engine.server.js.map +1 -1
  33. package/dist/server/common/test/fake-proxmox.server.js +4 -4
  34. package/dist/server/common/test/fake-ssh.server.js +6 -6
  35. package/dist/server/common/test/fake-ssh.server.js.map +1 -1
  36. package/dist/server/common/test/test-database.helper.d.ts +6 -0
  37. package/dist/server/common/test/test-database.helper.js +29 -0
  38. package/dist/server/common/test/test-database.helper.js.map +1 -0
  39. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +1 -0
  40. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js +9 -3
  41. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
  42. package/dist/server/modules/cloud-tunnel/services/mobile-transcript-projection.d.ts +6 -0
  43. package/dist/server/modules/cloud-tunnel/services/mobile-transcript-projection.js +88 -0
  44. package/dist/server/modules/cloud-tunnel/services/mobile-transcript-projection.js.map +1 -0
  45. package/dist/server/modules/cloud-tunnel/services/tunnel-event-forwarder.service.js +7 -1
  46. package/dist/server/modules/cloud-tunnel/services/tunnel-event-forwarder.service.js.map +1 -1
  47. package/dist/server/modules/core/controllers/docker-archive.d.ts +9 -2
  48. package/dist/server/modules/core/controllers/docker-archive.js +22 -6
  49. package/dist/server/modules/core/controllers/docker-archive.js.map +1 -1
  50. package/dist/server/modules/core/controllers/docker-engine.client.d.ts +2 -1
  51. package/dist/server/modules/core/controllers/docker-engine.client.js +57 -4
  52. package/dist/server/modules/core/controllers/docker-engine.client.js.map +1 -1
  53. package/dist/server/modules/core/controllers/docker-image-metadata.d.ts +248 -0
  54. package/dist/server/modules/core/controllers/docker-image-metadata.js +161 -0
  55. package/dist/server/modules/core/controllers/docker-image-metadata.js.map +1 -0
  56. package/dist/server/modules/core/controllers/docker-settings.d.ts +13 -2
  57. package/dist/server/modules/core/controllers/docker-settings.js +49 -11
  58. package/dist/server/modules/core/controllers/docker-settings.js.map +1 -1
  59. package/dist/server/modules/core/controllers/host-user-identity.d.ts +34 -0
  60. package/dist/server/modules/core/controllers/host-user-identity.js +23 -0
  61. package/dist/server/modules/core/controllers/host-user-identity.js.map +1 -0
  62. package/dist/server/modules/core/controllers/runtime.controller.d.ts +11 -4
  63. package/dist/server/modules/core/controllers/runtime.controller.js +2 -0
  64. package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
  65. package/dist/server/modules/file-sync/build-exclusion-suggestions.d.ts +15 -0
  66. package/dist/server/modules/file-sync/build-exclusion-suggestions.js +402 -0
  67. package/dist/server/modules/file-sync/build-exclusion-suggestions.js.map +1 -0
  68. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.d.ts +102 -0
  69. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js +22 -0
  70. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js.map +1 -0
  71. package/dist/server/modules/file-sync/file-sync-auto-fix.store.d.ts +12 -0
  72. package/dist/server/modules/file-sync/file-sync-auto-fix.store.js +73 -0
  73. package/dist/server/modules/file-sync/file-sync-auto-fix.store.js.map +1 -0
  74. package/dist/server/modules/file-sync/file-sync-conflicts.d.ts +3 -0
  75. package/dist/server/modules/file-sync/file-sync-conflicts.js +191 -0
  76. package/dist/server/modules/file-sync/file-sync-conflicts.js.map +1 -0
  77. package/dist/server/modules/file-sync/file-sync-ignores.store.d.ts +5 -1
  78. package/dist/server/modules/file-sync/file-sync-ignores.store.js +39 -8
  79. package/dist/server/modules/file-sync/file-sync-ignores.store.js.map +1 -1
  80. package/dist/server/modules/file-sync/file-sync.controller.d.ts +1 -3
  81. package/dist/server/modules/file-sync/file-sync.controller.js +5 -14
  82. package/dist/server/modules/file-sync/file-sync.controller.js.map +1 -1
  83. package/dist/server/modules/file-sync/file-sync.dto.d.ts +220 -1
  84. package/dist/server/modules/file-sync/file-sync.dto.js +70 -4
  85. package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
  86. package/dist/server/modules/file-sync/file-sync.module.js +16 -1
  87. package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
  88. package/dist/server/modules/file-sync/file-sync.service.d.ts +20 -5
  89. package/dist/server/modules/file-sync/file-sync.service.js +173 -37
  90. package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
  91. package/dist/server/modules/file-sync/git-guard.dto.d.ts +61 -0
  92. package/dist/server/modules/file-sync/git-guard.dto.js +26 -0
  93. package/dist/server/modules/file-sync/git-guard.dto.js.map +1 -0
  94. package/dist/server/modules/file-sync/home-git-guard.service.d.ts +4 -2
  95. package/dist/server/modules/file-sync/home-git-guard.service.js +50 -25
  96. package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
  97. package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +10 -0
  98. package/dist/server/modules/file-sync/host-git-guard.controller.js +64 -0
  99. package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -0
  100. package/dist/server/modules/file-sync/host-git-index.controller.d.ts +9 -0
  101. package/dist/server/modules/file-sync/host-git-index.controller.js +67 -0
  102. package/dist/server/modules/file-sync/host-git-index.controller.js.map +1 -0
  103. package/dist/server/modules/file-sync/host-sync.controller.d.ts +15 -2
  104. package/dist/server/modules/file-sync/host-sync.controller.js +122 -14
  105. package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
  106. package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +30 -0
  107. package/dist/server/modules/file-sync/ignore-pattern-matcher.js +183 -0
  108. package/dist/server/modules/file-sync/ignore-pattern-matcher.js.map +1 -0
  109. package/dist/server/modules/file-sync/project-repository.d.ts +2 -0
  110. package/dist/server/modules/file-sync/project-repository.js +20 -0
  111. package/dist/server/modules/file-sync/project-repository.js.map +1 -0
  112. package/dist/server/modules/file-sync/sync-chown.dto.d.ts +99 -0
  113. package/dist/server/modules/file-sync/sync-chown.dto.js +46 -0
  114. package/dist/server/modules/file-sync/sync-chown.dto.js.map +1 -0
  115. package/dist/server/modules/file-sync/sync-chown.service.d.ts +12 -0
  116. package/dist/server/modules/file-sync/sync-chown.service.js +230 -0
  117. package/dist/server/modules/file-sync/sync-chown.service.js.map +1 -0
  118. package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +626 -0
  119. package/dist/server/modules/file-sync/sync-path-inspection.dto.js +108 -0
  120. package/dist/server/modules/file-sync/sync-path-inspection.dto.js.map +1 -0
  121. package/dist/server/modules/file-sync/sync-path-inspector.d.ts +12 -0
  122. package/dist/server/modules/file-sync/sync-path-inspector.js +413 -0
  123. package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -0
  124. package/dist/server/modules/file-sync/syncthing-rest.client.d.ts +1 -1
  125. package/dist/server/modules/file-sync/syncthing-rest.client.js +9 -4
  126. package/dist/server/modules/file-sync/syncthing-rest.client.js.map +1 -1
  127. package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +28 -5
  128. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +68 -5
  129. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
  130. package/dist/server/modules/file-sync/translate-git-ignore-rule.d.ts +3 -0
  131. package/dist/server/modules/file-sync/translate-git-ignore-rule.js +30 -0
  132. package/dist/server/modules/file-sync/translate-git-ignore-rule.js.map +1 -0
  133. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +86 -0
  134. package/dist/server/modules/hooks/dtos/hook-event.dto.js +15 -1
  135. package/dist/server/modules/hooks/dtos/hook-event.dto.js.map +1 -1
  136. package/dist/server/modules/hooks/services/hooks-config.service.js +29 -0
  137. package/dist/server/modules/hooks/services/hooks-config.service.js.map +1 -1
  138. package/dist/server/modules/hooks/services/hooks.service.d.ts +5 -1
  139. package/dist/server/modules/hooks/services/hooks.service.js +27 -5
  140. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  141. package/dist/server/modules/hooks/services/pending-ask-user-question.service.d.ts +2 -2
  142. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js +9 -12
  143. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js.map +1 -1
  144. package/dist/server/modules/mcp/services/handlers/skill-tools.js +2 -2
  145. package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -1
  146. package/dist/server/modules/metrics/services/metrics.service.js +1 -1
  147. package/dist/server/modules/metrics/services/metrics.service.js.map +1 -1
  148. package/dist/server/modules/providers/adapters/claude.adapter.d.ts +3 -1
  149. package/dist/server/modules/providers/adapters/claude.adapter.js +4 -1
  150. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
  151. package/dist/server/modules/remotes/connect-choices.controller.d.ts +9 -0
  152. package/dist/server/modules/remotes/connect-choices.controller.js +54 -0
  153. package/dist/server/modules/remotes/connect-choices.controller.js.map +1 -0
  154. package/dist/server/modules/remotes/connect-choices.dto.d.ts +52 -0
  155. package/dist/server/modules/remotes/connect-choices.dto.js +19 -0
  156. package/dist/server/modules/remotes/connect-choices.dto.js.map +1 -0
  157. package/dist/server/modules/remotes/connect-choices.store.d.ts +12 -0
  158. package/dist/server/modules/remotes/connect-choices.store.js +95 -0
  159. package/dist/server/modules/remotes/connect-choices.store.js.map +1 -0
  160. package/dist/server/modules/remotes/controllers/remotes.controller.d.ts +3 -0
  161. package/dist/server/modules/remotes/controllers/remotes.controller.js +9 -1
  162. package/dist/server/modules/remotes/controllers/remotes.controller.js.map +1 -1
  163. package/dist/server/modules/remotes/docker/docker-copy-back.d.ts +1 -0
  164. package/dist/server/modules/remotes/docker/docker-copy-back.js +70 -31
  165. package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
  166. package/dist/server/modules/remotes/docker/docker-handoff.d.ts +5 -3
  167. package/dist/server/modules/remotes/docker/docker-handoff.js +221 -53
  168. package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
  169. package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +5 -0
  170. package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
  171. package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +4 -1
  172. package/dist/server/modules/remotes/docker/docker-plan-fit.js +19 -6
  173. package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
  174. package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +6 -2
  175. package/dist/server/modules/remotes/docker/docker-plan-policy.js +191 -38
  176. package/dist/server/modules/remotes/docker/docker-plan-policy.js.map +1 -1
  177. package/dist/server/modules/remotes/docker/docker-plan-source.service.d.ts +55 -6
  178. package/dist/server/modules/remotes/docker/docker-plan-source.service.js +284 -52
  179. package/dist/server/modules/remotes/docker/docker-plan-source.service.js.map +1 -1
  180. package/dist/server/modules/remotes/docker/docker-plan.controller.d.ts +2 -1
  181. package/dist/server/modules/remotes/docker/docker-plan.controller.js +15 -1
  182. package/dist/server/modules/remotes/docker/docker-plan.controller.js.map +1 -1
  183. package/dist/server/modules/remotes/docker/docker-plan.dto.d.ts +47 -1
  184. package/dist/server/modules/remotes/docker/docker-plan.dto.js +1 -0
  185. package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
  186. package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +15 -6
  187. package/dist/server/modules/remotes/docker/docker-plan.service.js +83 -20
  188. package/dist/server/modules/remotes/docker/docker-plan.service.js.map +1 -1
  189. package/dist/server/modules/remotes/docker/docker-project-compose.d.ts +7 -0
  190. package/dist/server/modules/remotes/docker/docker-project-compose.js +30 -0
  191. package/dist/server/modules/remotes/docker/docker-project-compose.js.map +1 -0
  192. package/dist/server/modules/remotes/dtos/remote.dto.d.ts +2 -0
  193. package/dist/server/modules/remotes/dtos/remote.dto.js.map +1 -1
  194. package/dist/server/modules/remotes/git-owner.store.d.ts +13 -0
  195. package/dist/server/modules/remotes/git-owner.store.js +69 -0
  196. package/dist/server/modules/remotes/git-owner.store.js.map +1 -0
  197. package/dist/server/modules/remotes/host/host-docker.controller.d.ts +14 -1
  198. package/dist/server/modules/remotes/host/host-docker.controller.js +28 -9
  199. package/dist/server/modules/remotes/host/host-docker.controller.js.map +1 -1
  200. package/dist/server/modules/remotes/host/host-docker.dto.d.ts +640 -3
  201. package/dist/server/modules/remotes/host/host-docker.dto.js +66 -9
  202. package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
  203. package/dist/server/modules/remotes/host/host-docker.service.d.ts +18 -6
  204. package/dist/server/modules/remotes/host/host-docker.service.js +184 -81
  205. package/dist/server/modules/remotes/host/host-docker.service.js.map +1 -1
  206. package/dist/server/modules/remotes/host/host-ipv4-routes.d.ts +4 -0
  207. package/dist/server/modules/remotes/host/host-ipv4-routes.js +43 -0
  208. package/dist/server/modules/remotes/host/host-ipv4-routes.js.map +1 -0
  209. package/dist/server/modules/remotes/host-image.d.ts +1 -1
  210. package/dist/server/modules/remotes/host-image.js +1 -1
  211. package/dist/server/modules/remotes/host-install/host-install-block.d.ts +1 -0
  212. package/dist/server/modules/remotes/host-install/host-install-block.js +76 -2
  213. package/dist/server/modules/remotes/host-install/host-install-block.js.map +1 -1
  214. package/dist/server/modules/remotes/host-install/host-install.service.d.ts +0 -1
  215. package/dist/server/modules/remotes/host-install/host-install.service.js +9 -26
  216. package/dist/server/modules/remotes/host-install/host-install.service.js.map +1 -1
  217. package/dist/server/modules/remotes/operations/attach.operation.d.ts +5 -1
  218. package/dist/server/modules/remotes/operations/attach.operation.js +41 -5
  219. package/dist/server/modules/remotes/operations/attach.operation.js.map +1 -1
  220. package/dist/server/modules/remotes/operations/claim.operation.d.ts +1 -0
  221. package/dist/server/modules/remotes/operations/claim.operation.js +6 -1
  222. package/dist/server/modules/remotes/operations/claim.operation.js.map +1 -1
  223. package/dist/server/modules/remotes/operations/detach.operation.d.ts +4 -1
  224. package/dist/server/modules/remotes/operations/detach.operation.js +10 -2
  225. package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
  226. package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +10 -0
  227. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +17 -0
  228. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js.map +1 -1
  229. package/dist/server/modules/remotes/operations/file-sync-handoff.d.ts +30 -2
  230. package/dist/server/modules/remotes/operations/file-sync-handoff.js +498 -57
  231. package/dist/server/modules/remotes/operations/file-sync-handoff.js.map +1 -1
  232. package/dist/server/modules/remotes/operations/force-sync.operation.d.ts +39 -0
  233. package/dist/server/modules/remotes/operations/force-sync.operation.js +177 -0
  234. package/dist/server/modules/remotes/operations/force-sync.operation.js.map +1 -0
  235. package/dist/server/modules/remotes/operations/git-owner.dto.d.ts +83 -0
  236. package/dist/server/modules/remotes/operations/git-owner.dto.js +25 -0
  237. package/dist/server/modules/remotes/operations/git-owner.dto.js.map +1 -0
  238. package/dist/server/modules/remotes/operations/git-owner.operation.d.ts +35 -0
  239. package/dist/server/modules/remotes/operations/git-owner.operation.js +216 -0
  240. package/dist/server/modules/remotes/operations/git-owner.operation.js.map +1 -0
  241. package/dist/server/modules/remotes/operations/remote-host.client.d.ts +72 -8
  242. package/dist/server/modules/remotes/operations/remote-host.client.js +162 -28
  243. package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
  244. package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +19 -0
  245. package/dist/server/modules/remotes/operations/remote-operation.dto.js +5 -1
  246. package/dist/server/modules/remotes/operations/remote-operation.dto.js.map +1 -1
  247. package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +3 -1
  248. package/dist/server/modules/remotes/operations/remote-operation.runner.js +59 -21
  249. package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
  250. package/dist/server/modules/remotes/operations/remote-operation.types.d.ts +4 -1
  251. package/dist/server/modules/remotes/operations/remote-operation.types.js +4 -2
  252. package/dist/server/modules/remotes/operations/remote-operation.types.js.map +1 -1
  253. package/dist/server/modules/remotes/operations/remote-operations.controller.d.ts +5 -0
  254. package/dist/server/modules/remotes/operations/remote-operations.controller.js +56 -0
  255. package/dist/server/modules/remotes/operations/remote-operations.controller.js.map +1 -1
  256. package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +16 -1
  257. package/dist/server/modules/remotes/operations/remote-operations.service.js +155 -5
  258. package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
  259. package/dist/server/modules/remotes/operations/update-logins.operation.d.ts +1 -3
  260. package/dist/server/modules/remotes/operations/update-logins.operation.js +3 -18
  261. package/dist/server/modules/remotes/operations/update-logins.operation.js.map +1 -1
  262. package/dist/server/modules/remotes/ports/remote-health.port.d.ts +2 -0
  263. package/dist/server/modules/remotes/ports/remote-health.port.js.map +1 -1
  264. package/dist/server/modules/remotes/remotes.module.js +18 -0
  265. package/dist/server/modules/remotes/remotes.module.js.map +1 -1
  266. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.d.ts +2 -2
  267. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js +2 -13
  268. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js.map +1 -1
  269. package/dist/server/modules/remotes/services/remote-health.service.js +5 -0
  270. package/dist/server/modules/remotes/services/remote-health.service.js.map +1 -1
  271. package/dist/server/modules/remotes/sync/file-sync-failures.service.d.ts +18 -0
  272. package/dist/server/modules/remotes/sync/file-sync-failures.service.js +157 -0
  273. package/dist/server/modules/remotes/sync/file-sync-failures.service.js.map +1 -0
  274. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.d.ts +14 -0
  275. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js +99 -0
  276. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js.map +1 -0
  277. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.d.ts +15 -0
  278. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +90 -0
  279. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js.map +1 -0
  280. package/dist/server/modules/remotes/sync/project-file-sync.controller.d.ts +29 -0
  281. package/dist/server/modules/remotes/sync/project-file-sync.controller.js +160 -0
  282. package/dist/server/modules/remotes/sync/project-file-sync.controller.js.map +1 -0
  283. package/dist/server/modules/remotes/sync/remote-file-sync.dto.d.ts +72 -0
  284. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js +16 -0
  285. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js.map +1 -0
  286. package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +32 -1
  287. package/dist/server/modules/remotes/sync/remote-file-sync.service.js +499 -38
  288. package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
  289. package/dist/server/modules/remotes/sync/remote-live-sync.service.d.ts +2 -0
  290. package/dist/server/modules/remotes/sync/remote-live-sync.service.js +26 -12
  291. package/dist/server/modules/remotes/sync/remote-live-sync.service.js.map +1 -1
  292. package/dist/server/modules/remotes/vm-user-identity.d.ts +29 -0
  293. package/dist/server/modules/remotes/vm-user-identity.js +45 -0
  294. package/dist/server/modules/remotes/vm-user-identity.js.map +1 -0
  295. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +5 -1
  296. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
  297. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +5 -0
  298. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +9 -0
  299. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  300. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +1 -0
  301. package/dist/server/modules/session-reader/adapters/utils/coalesce-turns.js +1 -0
  302. package/dist/server/modules/session-reader/adapters/utils/coalesce-turns.js.map +1 -1
  303. package/dist/server/modules/session-reader/builders/semantic-step-extractor.js +1 -1
  304. package/dist/server/modules/session-reader/builders/semantic-step-extractor.js.map +1 -1
  305. package/dist/server/modules/session-reader/controllers/session-reader.controller.js +1 -1
  306. package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -1
  307. package/dist/server/modules/session-reader/data/pricing.json +89 -12
  308. package/dist/server/modules/session-reader/dtos/unified-message.types.d.ts +1 -0
  309. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +3 -0
  310. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +10 -1
  311. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -1
  312. package/dist/server/modules/session-reader/parsers/claude-turn-evidence.d.ts +11 -0
  313. package/dist/server/modules/session-reader/parsers/claude-turn-evidence.js +50 -0
  314. package/dist/server/modules/session-reader/parsers/claude-turn-evidence.js.map +1 -0
  315. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +8 -2
  316. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js.map +1 -1
  317. package/dist/server/modules/session-reader/services/bounded-anchor-proof.d.ts +7 -0
  318. package/dist/server/modules/session-reader/services/bounded-anchor-proof.js +31 -2
  319. package/dist/server/modules/session-reader/services/bounded-anchor-proof.js.map +1 -1
  320. package/dist/server/modules/session-reader/services/session-cache.service.d.ts +8 -2
  321. package/dist/server/modules/session-reader/services/session-cache.service.js +80 -21
  322. package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
  323. package/dist/server/modules/session-reader/services/session-reader.service.d.ts +4 -0
  324. package/dist/server/modules/session-reader/services/session-reader.service.js +40 -8
  325. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
  326. package/dist/server/modules/session-reader/services/transcript-cursor.d.ts +16 -4
  327. package/dist/server/modules/session-reader/services/transcript-cursor.js +65 -6
  328. package/dist/server/modules/session-reader/services/transcript-cursor.js.map +1 -1
  329. package/dist/server/modules/session-reader/services/transcript-serialization.js +2 -1
  330. package/dist/server/modules/session-reader/services/transcript-serialization.js.map +1 -1
  331. package/dist/server/modules/session-reader/services/transcript-turn-state.d.ts +4 -0
  332. package/dist/server/modules/session-reader/services/transcript-turn-state.js +20 -0
  333. package/dist/server/modules/session-reader/services/transcript-turn-state.js.map +1 -0
  334. package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +4 -1
  335. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +43 -18
  336. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  337. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +5 -0
  338. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
  339. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +36 -17
  340. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +26 -9
  341. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  342. package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.d.ts +19 -0
  343. package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.js +26 -0
  344. package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.js.map +1 -0
  345. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +10 -18
  346. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  347. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +5 -1
  348. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +20 -2
  349. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  350. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.d.ts +6 -0
  351. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js +26 -0
  352. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js.map +1 -1
  353. package/dist/server/modules/settings/services/settings.service.d.ts +3 -1
  354. package/dist/server/modules/settings/services/settings.service.js +6 -0
  355. package/dist/server/modules/settings/services/settings.service.js.map +1 -1
  356. package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js +5 -5
  357. package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js.map +1 -1
  358. package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js +5 -5
  359. package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js.map +1 -1
  360. package/dist/server/modules/skills/adapters/github-skill-source.base.js +4 -3
  361. package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
  362. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +5 -5
  363. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -1
  364. package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js +5 -5
  365. package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js.map +1 -1
  366. package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js +5 -5
  367. package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js.map +1 -1
  368. package/dist/server/modules/skills/adapters/skill-source.adapter.d.ts +5 -0
  369. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.d.ts +5 -0
  370. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js +75 -0
  371. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js.map +1 -0
  372. package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js +5 -5
  373. package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js.map +1 -1
  374. package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js +5 -5
  375. package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js.map +1 -1
  376. package/dist/server/modules/skills/controllers/skills.controller.js +2 -2
  377. package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
  378. package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +3 -3
  379. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js +9 -4
  380. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
  381. package/dist/server/modules/skills/services/skill-sync.service.d.ts +3 -3
  382. package/dist/server/modules/skills/services/skill-sync.service.js +32 -6
  383. package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
  384. package/dist/server/modules/skills/services/skill-sync.types.d.ts +3 -0
  385. package/dist/server/modules/storage/db/schema.d.ts +2 -2
  386. package/dist/server/modules/storage/db/schema.js +2 -0
  387. package/dist/server/modules/storage/db/schema.js.map +1 -1
  388. package/dist/server/modules/storage/models/domain.models.d.ts +1 -1
  389. package/dist/server/modules/storage/models/domain.models.js +2 -0
  390. package/dist/server/modules/storage/models/domain.models.js.map +1 -1
  391. package/dist/server/modules/teams/storage/teams.store.d.ts +1 -0
  392. package/dist/server/modules/teams/storage/teams.store.js +19 -3
  393. package/dist/server/modules/teams/storage/teams.store.js.map +1 -1
  394. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +3 -1
  395. package/dist/server/modules/terminal/gateways/terminal.gateway.js +9 -4
  396. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  397. package/dist/server/modules/terminal/services/session-turn-signals.d.ts +18 -0
  398. package/dist/server/modules/terminal/services/session-turn-signals.js +6 -0
  399. package/dist/server/modules/terminal/services/session-turn-signals.js.map +1 -0
  400. package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +32 -5
  401. package/dist/server/modules/terminal/services/terminal-activity.service.js +322 -40
  402. package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
  403. package/dist/server/modules/terminal/services/terminal-io/lifecycle.js +15 -3
  404. package/dist/server/modules/terminal/services/terminal-io/lifecycle.js.map +1 -1
  405. package/dist/server/modules/terminal/terminal.module.js +2 -0
  406. package/dist/server/modules/terminal/terminal.module.js.map +1 -1
  407. package/dist/server/modules/terminal/utils/ansi-sanitizer.d.ts +0 -1
  408. package/dist/server/modules/terminal/utils/ansi-sanitizer.js +0 -4
  409. package/dist/server/modules/terminal/utils/ansi-sanitizer.js.map +1 -1
  410. package/dist/server/templates/teams-dev.json +14 -14
  411. package/dist/server/test-setup-node.js +4 -3
  412. package/dist/server/test-setup-node.js.map +1 -1
  413. package/dist/server/test-setup.js +7 -0
  414. package/dist/server/test-setup.js.map +1 -1
  415. package/dist/server/tsconfig.tsbuildinfo +1 -1
  416. package/dist/server/ui/assets/{ExternalRichEditor--kNXs-Eb.js → ExternalRichEditor-CIZPhssf.js} +24 -24
  417. package/dist/server/ui/assets/ReviewDetailPage-winyLSQ7.js +6 -0
  418. package/dist/server/ui/assets/ReviewsPage-BYKBReMp.js +6 -0
  419. package/dist/server/ui/assets/index-CiDJX6Hn.js +1191 -0
  420. package/dist/server/ui/assets/index-f1WOAqXB.css +32 -0
  421. package/dist/server/ui/assets/useReviewSubscription-v3Cto0y4.js +69 -0
  422. package/dist/server/ui/index.html +2 -2
  423. package/dist/templates/teams-dev.json +14 -14
  424. package/package.json +15 -1
  425. package/dist/server/modules/reviews/utils/notification-formatter.d.ts +0 -12
  426. package/dist/server/modules/reviews/utils/notification-formatter.js +0 -60
  427. package/dist/server/modules/reviews/utils/notification-formatter.js.map +0 -1
  428. package/dist/server/ui/assets/ReviewDetailPage-DMgP5fKn.js +0 -6
  429. package/dist/server/ui/assets/ReviewsPage-CkyFUJr6.js +0 -6
  430. package/dist/server/ui/assets/index-CVUaAlP4.css +0 -32
  431. package/dist/server/ui/assets/index-CqRufKpA.js +0 -994
  432. package/dist/server/ui/assets/useReviewSubscription-CU70CzwG.js +0 -69
@@ -1,4 +1,8 @@
1
1
  import { z } from 'zod';
2
+ import type { VmUserMismatch } from '../vm-user-identity';
3
+ export interface DockerPresence {
4
+ state: 'present' | 'absent' | 'unknown';
5
+ }
2
6
  export declare const DockerSelectionModeSchema: z.ZodEnum<["container-and-data", "without-data", "data-only"]>;
3
7
  export declare const DockerDataChoiceSchema: z.ZodEnum<["keep-vm", "replace-home"]>;
4
8
  export type DockerDataChoice = z.infer<typeof DockerDataChoiceSchema>;
@@ -6,40 +10,48 @@ export declare const DockerSelectionItemSchema: z.ZodObject<{
6
10
  id: z.ZodString;
7
11
  mode: z.ZodEnum<["container-and-data", "without-data", "data-only"]>;
8
12
  dataChoice: z.ZodOptional<z.ZodEnum<["keep-vm", "replace-home"]>>;
13
+ acceptPrivileged: z.ZodOptional<z.ZodLiteral<true>>;
9
14
  }, "strict", z.ZodTypeAny, {
10
15
  mode: "container-and-data" | "without-data" | "data-only";
11
16
  id: string;
12
17
  dataChoice?: "keep-vm" | "replace-home" | undefined;
18
+ acceptPrivileged?: true | undefined;
13
19
  }, {
14
20
  mode: "container-and-data" | "without-data" | "data-only";
15
21
  id: string;
16
22
  dataChoice?: "keep-vm" | "replace-home" | undefined;
23
+ acceptPrivileged?: true | undefined;
17
24
  }>;
18
25
  export declare const DockerSelectionSchema: z.ZodObject<{
19
26
  items: z.ZodArray<z.ZodObject<{
20
27
  id: z.ZodString;
21
28
  mode: z.ZodEnum<["container-and-data", "without-data", "data-only"]>;
22
29
  dataChoice: z.ZodOptional<z.ZodEnum<["keep-vm", "replace-home"]>>;
30
+ acceptPrivileged: z.ZodOptional<z.ZodLiteral<true>>;
23
31
  }, "strict", z.ZodTypeAny, {
24
32
  mode: "container-and-data" | "without-data" | "data-only";
25
33
  id: string;
26
34
  dataChoice?: "keep-vm" | "replace-home" | undefined;
35
+ acceptPrivileged?: true | undefined;
27
36
  }, {
28
37
  mode: "container-and-data" | "without-data" | "data-only";
29
38
  id: string;
30
39
  dataChoice?: "keep-vm" | "replace-home" | undefined;
40
+ acceptPrivileged?: true | undefined;
31
41
  }>, "many">;
32
42
  }, "strict", z.ZodTypeAny, {
33
43
  items: {
34
44
  mode: "container-and-data" | "without-data" | "data-only";
35
45
  id: string;
36
46
  dataChoice?: "keep-vm" | "replace-home" | undefined;
47
+ acceptPrivileged?: true | undefined;
37
48
  }[];
38
49
  }, {
39
50
  items: {
40
51
  mode: "container-and-data" | "without-data" | "data-only";
41
52
  id: string;
42
53
  dataChoice?: "keep-vm" | "replace-home" | undefined;
54
+ acceptPrivileged?: true | undefined;
43
55
  }[];
44
56
  }>;
45
57
  export declare const DockerPlanRequestSchema: z.ZodObject<{
@@ -48,14 +60,17 @@ export declare const DockerPlanRequestSchema: z.ZodObject<{
48
60
  id: z.ZodString;
49
61
  mode: z.ZodEnum<["container-and-data", "without-data", "data-only"]>;
50
62
  dataChoice: z.ZodOptional<z.ZodEnum<["keep-vm", "replace-home"]>>;
63
+ acceptPrivileged: z.ZodOptional<z.ZodLiteral<true>>;
51
64
  }, "strict", z.ZodTypeAny, {
52
65
  mode: "container-and-data" | "without-data" | "data-only";
53
66
  id: string;
54
67
  dataChoice?: "keep-vm" | "replace-home" | undefined;
68
+ acceptPrivileged?: true | undefined;
55
69
  }, {
56
70
  mode: "container-and-data" | "without-data" | "data-only";
57
71
  id: string;
58
72
  dataChoice?: "keep-vm" | "replace-home" | undefined;
73
+ acceptPrivileged?: true | undefined;
59
74
  }>, "many">>;
60
75
  }, "strict", z.ZodTypeAny, {
61
76
  remoteId: string;
@@ -63,6 +78,7 @@ export declare const DockerPlanRequestSchema: z.ZodObject<{
63
78
  mode: "container-and-data" | "without-data" | "data-only";
64
79
  id: string;
65
80
  dataChoice?: "keep-vm" | "replace-home" | undefined;
81
+ acceptPrivileged?: true | undefined;
66
82
  }[] | undefined;
67
83
  }, {
68
84
  remoteId: string;
@@ -70,6 +86,7 @@ export declare const DockerPlanRequestSchema: z.ZodObject<{
70
86
  mode: "container-and-data" | "without-data" | "data-only";
71
87
  id: string;
72
88
  dataChoice?: "keep-vm" | "replace-home" | undefined;
89
+ acceptPrivileged?: true | undefined;
73
90
  }[] | undefined;
74
91
  }>;
75
92
  export type DockerPlanRequest = z.infer<typeof DockerPlanRequestSchema>;
@@ -85,7 +102,7 @@ export interface DockerPlanIssue {
85
102
  message: string;
86
103
  }
87
104
  export interface DockerPlanMount {
88
- kind: 'named-volume' | 'anonymous-volume' | 'project-bind' | 'home-bind' | 'readonly-external-bind' | 'external-bind';
105
+ kind: 'named-volume' | 'anonymous-volume' | 'project-bind' | 'project-code' | 'home-bind' | 'readonly-external-bind' | 'external-bind';
89
106
  source: string;
90
107
  destination: string;
91
108
  readOnly: boolean;
@@ -98,14 +115,28 @@ export interface DockerPlanImage {
98
115
  id: string;
99
116
  architecture: string;
100
117
  size: DockerPlanSize;
118
+ notCopied?: boolean;
119
+ }
120
+ export interface DockerNetworkRange {
121
+ name: string;
122
+ subnets: string[];
101
123
  }
102
124
  export interface DockerPlanItem {
125
+ buildsFromProject?: boolean;
126
+ privileged?: boolean;
127
+ networks?: DockerNetworkRange[];
128
+ fixedIPv4?: Array<{
129
+ network: string;
130
+ address: string;
131
+ subnets: string[];
132
+ }>;
103
133
  dataState?: DockerDataState;
104
134
  dataGroup?: string[];
105
135
  dataChoice?: DockerDataChoice;
106
136
  dataAction?: DockerDataChoice;
107
137
  dataChoiceRequired?: boolean;
108
138
  missingData?: DockerDataMembers;
139
+ dataSize?: DockerPlanSize;
109
140
  id: string;
110
141
  kind: 'container' | 'compose-project';
111
142
  name: string;
@@ -134,7 +165,19 @@ export interface DockerPlanFilesystem {
134
165
  unknown: boolean;
135
166
  status: 'fits' | 'warning' | 'refused' | 'unknown';
136
167
  }
168
+ export type DockerPlanNetwork = DockerNetworkRange & ({
169
+ kind: 'home-range';
170
+ } | {
171
+ kind: 'automatic-range';
172
+ overlaps: string;
173
+ } | {
174
+ kind: 'reused';
175
+ vmSubnets: string[];
176
+ differs: boolean;
177
+ overlaps?: string;
178
+ });
137
179
  export interface DockerPlan {
180
+ networks?: DockerPlanNetwork[];
138
181
  dataGroups?: DockerDataGroupCheck[];
139
182
  projectId: string;
140
183
  remoteId: string;
@@ -143,14 +186,17 @@ export interface DockerPlan {
143
186
  available: boolean;
144
187
  side: 'home' | 'remote' | null;
145
188
  reason: DockerPlanIssue | null;
189
+ userMismatch?: VmUserMismatch;
146
190
  };
147
191
  apiVersion: string | null;
148
192
  items: DockerPlanItem[];
149
193
  filesystems: DockerPlanFilesystem[];
194
+ copySize: DockerPlanSize;
150
195
  fit: 'fits' | 'warning' | 'refused' | 'unknown';
151
196
  canConnect: boolean;
152
197
  warnings: DockerPlanIssue[];
153
198
  managedExclusions: string[];
199
+ codePaths: string[];
154
200
  reconnect: {
155
201
  importedAt: string;
156
202
  replacing: string[];
@@ -14,6 +14,7 @@ exports.DockerSelectionItemSchema = zod_1.z
14
14
  id: zod_1.z.string().min(1).max(512),
15
15
  mode: exports.DockerSelectionModeSchema,
16
16
  dataChoice: exports.DockerDataChoiceSchema.optional(),
17
+ acceptPrivileged: zod_1.z.literal(true).optional(),
17
18
  })
18
19
  .strict();
19
20
  exports.DockerSelectionSchema = zod_1.z
@@ -1 +1 @@
1
- {"version":3,"file":"docker-plan.dto.js","sourceRoot":"","sources":["../../../../src/modules/remotes/docker/docker-plan.dto.ts"],"names":[],"mappings":";;;AA4DA,sCAEC;AA9DD,6BAAwB;AAEX,QAAA,yBAAyB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC9C,oBAAoB;IACpB,cAAc;IACd,WAAW;CACZ,CAAC,CAAC;AACU,QAAA,sBAAsB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;AAE7D,QAAA,yBAAyB,GAAG,OAAC;KACvC,MAAM,CAAC;IACN,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IAAI,EAAE,iCAAyB;IAC/B,UAAU,EAAE,8BAAsB,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,MAAM,EAAE,CAAC;AAEC,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAyB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KAC/D,MAAM,EAAE,CAAC;AACC,QAAA,uBAAuB,GAAG,OAAC;KACrC,MAAM,CAAC;IACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,KAAK,EAAE,6BAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,MAAM,EAAE,CAAC;AA6BC,QAAA,oBAAoB,GAAuC;IACtE,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,WAAW;CACZ,CAAC;AACF,SAAgB,aAAa,CAAC,IAA6B;IACzD,OAAO,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,kBAAkB,CAAC;AAChE,CAAC;AAoFY,QAAA,0BAA0B,GACrC,kIAAkI,CAAC;AACxH,QAAA,qBAAqB,GAChC,uGAAuG,CAAC"}
1
+ {"version":3,"file":"docker-plan.dto.js","sourceRoot":"","sources":["../../../../src/modules/remotes/docker/docker-plan.dto.ts"],"names":[],"mappings":";;;AAmEA,sCAEC;AArED,6BAAwB;AAOX,QAAA,yBAAyB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC9C,oBAAoB;IACpB,cAAc;IACd,WAAW;CACZ,CAAC,CAAC;AACU,QAAA,sBAAsB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;AAE7D,QAAA,yBAAyB,GAAG,OAAC;KACvC,MAAM,CAAC;IACN,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IAAI,EAAE,iCAAyB;IAC/B,UAAU,EAAE,8BAAsB,CAAC,QAAQ,EAAE;IAC7C,gBAAgB,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC;AAEC,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,iCAAyB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KAC/D,MAAM,EAAE,CAAC;AACC,QAAA,uBAAuB,GAAG,OAAC;KACrC,MAAM,CAAC;IACN,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,KAAK,EAAE,6BAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,MAAM,EAAE,CAAC;AA8BC,QAAA,oBAAoB,GAAuC;IACtE,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,WAAW;CACZ,CAAC;AACF,SAAgB,aAAa,CAAC,IAA6B;IACzD,OAAO,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,kBAAkB,CAAC;AAChE,CAAC;AAiHY,QAAA,0BAA0B,GACrC,kIAAkI,CAAC;AACxH,QAAA,qBAAqB,GAChC,uGAAuG,CAAC"}
@@ -2,17 +2,26 @@ import { type ProjectStorage, type RemoteStorage } from '../../storage/interface
2
2
  import type { DockerScanResult } from '../host/host-docker.dto';
3
3
  import { DockerImportInventoryStore } from '../operations/docker-import-inventory.store';
4
4
  import { RemoteHostClient } from '../operations/remote-host.client';
5
- import { type DockerPlan } from './docker-plan.dto';
5
+ import { ConnectChoicesStore } from '../connect-choices.store';
6
+ import { type DockerPlan, type DockerPresence } from './docker-plan.dto';
6
7
  import { DockerPlanSourceService } from './docker-plan-source.service';
7
- export declare function pagedDockerScan(paths: string[], scan: (page: string[]) => Promise<DockerScanResult>): Promise<DockerScanResult>;
8
+ export declare function pagedDockerScan(paths: string[], scan: (page: string[], first: boolean) => Promise<DockerScanResult>): Promise<DockerScanResult>;
9
+ interface DockerPlanOptions {
10
+ estimate?: boolean;
11
+ reuse?: boolean;
12
+ dataBindPaths?: readonly string[];
13
+ }
8
14
  export declare class DockerPlanService {
9
15
  private readonly storage;
10
16
  private readonly source;
11
17
  private readonly remote;
12
18
  private readonly inventory;
13
- constructor(storage: ProjectStorage & RemoteStorage, source: DockerPlanSourceService, remote: RemoteHostClient, inventory: DockerImportInventoryStore);
19
+ private readonly choices;
20
+ private readonly speeds;
21
+ constructor(storage: ProjectStorage & RemoteStorage, source: DockerPlanSourceService, remote: RemoteHostClient, inventory: DockerImportInventoryStore, choices: ConnectChoicesStore);
14
22
  projectRoot(projectId: string): Promise<string>;
15
- plan(projectId: string, input: unknown, signal?: AbortSignal, { estimate }?: {
16
- estimate?: boolean;
17
- }): Promise<DockerPlan>;
23
+ presence(projectId: string, signal?: AbortSignal): Promise<DockerPresence>;
24
+ plan(projectId: string, input: unknown, signal?: AbortSignal, { estimate, reuse, dataBindPaths }?: DockerPlanOptions): Promise<DockerPlan>;
25
+ private copySpeeds;
18
26
  }
27
+ export {};
@@ -17,20 +17,23 @@ exports.pagedDockerScan = pagedDockerScan;
17
17
  const docker_data_groups_1 = require("./docker-data-groups");
18
18
  const common_1 = require("@nestjs/common");
19
19
  const node_stream_1 = require("node:stream");
20
+ const node_path_1 = require("node:path");
20
21
  const error_types_1 = require("../../../common/errors/error-types");
21
22
  const docker_engine_client_1 = require("../../core/controllers/docker-engine.client");
22
23
  const storage_interface_1 = require("../../storage/interfaces/storage.interface");
23
24
  const docker_import_inventory_store_1 = require("../operations/docker-import-inventory.store");
24
25
  const remote_host_client_1 = require("../operations/remote-host.client");
26
+ const connect_choices_store_1 = require("../connect-choices.store");
27
+ const vm_user_identity_1 = require("../vm-user-identity");
25
28
  const docker_plan_dto_1 = require("./docker-plan.dto");
26
29
  const docker_plan_fit_1 = require("./docker-plan-fit");
27
30
  const docker_plan_files_1 = require("./docker-plan-files");
28
31
  const docker_plan_policy_1 = require("./docker-plan-policy");
29
32
  const docker_plan_source_service_1 = require("./docker-plan-source.service");
30
33
  async function pagedDockerScan(paths, scan) {
31
- const result = await scan(paths.slice(0, 64));
34
+ const result = await scan(paths.slice(0, 64), true);
32
35
  for (let offset = 64; offset < paths.length; offset += 64) {
33
- const more = await scan(paths.slice(offset, offset + 64));
36
+ const more = await scan(paths.slice(offset, offset + 64), false);
34
37
  for (const c of more.containers) {
35
38
  const original = result.containers.find((entry) => entry.id === c.id);
36
39
  if (original && c.metadata)
@@ -45,16 +48,22 @@ let DockerPlanService = class DockerPlanService {
45
48
  source;
46
49
  remote;
47
50
  inventory;
48
- constructor(storage, source, remote, inventory) {
51
+ choices;
52
+ speeds = new Map();
53
+ constructor(storage, source, remote, inventory, choices) {
49
54
  this.storage = storage;
50
55
  this.source = source;
51
56
  this.remote = remote;
52
57
  this.inventory = inventory;
58
+ this.choices = choices;
53
59
  }
54
60
  async projectRoot(projectId) {
55
61
  return (await this.storage.getProject(projectId)).rootPath;
56
62
  }
57
- async plan(projectId, input, signal, { estimate = true } = {}) {
63
+ async presence(projectId, signal) {
64
+ return this.source.presence(await this.projectRoot(projectId), signal);
65
+ }
66
+ async plan(projectId, input, signal, { estimate = true, reuse = false, dataBindPaths = [] } = {}) {
58
67
  const request = docker_plan_dto_1.DockerPlanRequestSchema.parse(input);
59
68
  const [project] = await Promise.all([
60
69
  this.storage.getProject(projectId),
@@ -68,10 +77,12 @@ let DockerPlanService = class DockerPlanService {
68
77
  apiVersion: null,
69
78
  items: [],
70
79
  filesystems: [],
80
+ copySize: { bytes: 0, unknown: false },
71
81
  fit: 'unknown',
72
82
  canConnect: false,
73
83
  warnings: [],
74
84
  managedExclusions: [],
85
+ codePaths: [],
75
86
  reconnect: null,
76
87
  estimate: null,
77
88
  };
@@ -99,6 +110,9 @@ let DockerPlanService = class DockerPlanService {
99
110
  catch {
100
111
  return unavailable(plan, 'remote', 'remote-unreachable', 'The VM is unavailable.');
101
112
  }
113
+ const mismatch = (0, vm_user_identity_1.vmUserMismatch)(this.source.uid(), this.source.gid(), runtime);
114
+ if (mismatch)
115
+ return unavailable(plan, 'remote', 'vm-user-mismatch', (0, vm_user_identity_1.vmUserWarning)(mismatch), mismatch);
102
116
  if (!runtime.docker?.installed)
103
117
  return unavailable(plan, 'remote', 'remote-no-docker', 'The VM reports no usable Docker engine and Compose installation.');
104
118
  try {
@@ -116,9 +130,15 @@ let DockerPlanService = class DockerPlanService {
116
130
  : 'Cannot negotiate Docker APIs with the VM.');
117
131
  }
118
132
  const options = { signal: scanSignal, apiVersion: plan.apiVersion };
133
+ const inventory = this.inventory.get(projectId, request.remoteId);
134
+ const absolutePaths = (paths) => paths.map((path) => (0, node_path_1.join)(project.rootPath, path));
119
135
  let scanned;
120
136
  try {
121
- scanned = await this.source.scan(client, project.rootPath, scanSignal);
137
+ scanned = await this.source.scan(client, project.rootPath, scanSignal, {
138
+ reuse,
139
+ previousBindPaths: absolutePaths(inventory?.items.flatMap((item) => item.bindPaths) ?? []),
140
+ dataBindPaths: absolutePaths(dataBindPaths),
141
+ });
122
142
  }
123
143
  catch (error) {
124
144
  if (error instanceof docker_engine_client_1.DockerEngineError && error.code === 'unsupported')
@@ -126,6 +146,9 @@ let DockerPlanService = class DockerPlanService {
126
146
  throw error;
127
147
  }
128
148
  plan.items = scanned.items;
149
+ plan.codePaths = scanned.codePaths.map((path) => (0, node_path_1.resolve)(path) === (0, node_path_1.resolve)(project.rootPath)
150
+ ? '/'
151
+ : (0, docker_plan_files_1.projectAnchoredPath)(project.rootPath, path));
129
152
  const dataGroups = (0, docker_data_groups_1.groupDockerData)(plan.items, project.rootPath);
130
153
  const holderVolumes = [...new Set(dataGroups.flatMap((g) => g.volumes))];
131
154
  const externalPaths = [
@@ -137,49 +160,75 @@ let DockerPlanService = class DockerPlanService {
137
160
  ]),
138
161
  ];
139
162
  let target;
163
+ const fixedNetworks = [
164
+ ...new Set(plan.items.flatMap((i) => i.fixedIPv4?.map((f) => f.network) ?? [])),
165
+ ];
166
+ const scanNetworks = plan.items.some((item) => item.networks?.length);
140
167
  try {
141
- target = await pagedDockerScan(externalPaths, (paths) => this.remote.dockerScan(request.remoteId, paths, options, holderVolumes));
168
+ target = await pagedDockerScan(externalPaths, (paths, first) => first && scanNetworks
169
+ ? this.remote.dockerScan(request.remoteId, paths, options, holderVolumes, fixedNetworks)
170
+ : this.remote.dockerScan(request.remoteId, paths, options, holderVolumes));
142
171
  }
143
172
  catch (error) {
144
173
  if (signal?.aborted)
145
174
  throw error;
146
175
  return unavailable(plan, 'remote', 'remote-docker-routes', VM_ROUTES_MESSAGE);
147
176
  }
148
- const records = this.inventory.get(projectId, request.remoteId)?.groups ?? [];
177
+ const records = inventory?.groups ?? [];
149
178
  plan.dataGroups = dataGroups.map((group) => (0, docker_data_groups_1.checkDockerDataGroup)(group, records, scanned.holders, target, projectId));
150
- (0, docker_plan_policy_1.applyDockerPolicy)(plan.items, request, target, projectId, runtime.homePath ?? null, runtime.uid ?? null, scanned.uid);
179
+ (0, docker_plan_policy_1.applyDockerPolicy)(plan.items, request, target, projectId, runtime.homePath ?? null, project.rootPath, request.items === undefined ? this.choices.get(projectId)?.items : undefined);
151
180
  (0, docker_plan_policy_1.applyDockerDataPolicy)(plan.items, plan.dataGroups, request, target);
181
+ for (const item of plan.items) {
182
+ if (item.selectedMode && (0, docker_plan_fit_1.skipsImageCopy)(item, project.rootPath)) {
183
+ item.images = item.images.map((image) => ({ ...image, notCopied: true }));
184
+ item.notes.push('Image: not copied; the VM builds it from the synced project.');
185
+ }
186
+ }
187
+ plan.networks = (0, docker_plan_policy_1.dockerNetworkPolicy)(plan.items, target);
188
+ plan.warnings.push(...(0, docker_plan_policy_1.dockerNetworkWarnings)(plan.networks));
152
189
  const containerIds = new Set(plan.items.filter((i) => i.kind === 'container').map((i) => i.id));
153
190
  const movingContainers = new Set(plan.items.filter((i) => i.kind === 'container' && (0, docker_plan_fit_1.movesToVm)(i)).map((i) => i.id));
154
191
  for (const item of plan.items)
155
192
  item.alsoStops = (item.selectedMode && item.dataAction === 'keep-vm'
156
193
  ? (0, docker_plan_fit_1.keptWriterStops)(item, plan.items)
157
194
  : (0, docker_plan_fit_1.writerStops)(item, containerIds, project.rootPath)).filter((id) => !movingContainers.has(id));
195
+ for (const item of plan.items) {
196
+ const data = (0, docker_plan_fit_1.uniqueCopiedMounts)([{ ...item, selectedMode: 'container-and-data', dataAction: undefined }], project.rootPath);
197
+ item.dataSize = {
198
+ bytes: data.reduce((total, mount) => total + mount.size.bytes, 0),
199
+ unknown: data.some((mount) => mount.size.unknown),
200
+ };
201
+ }
158
202
  const mounts = (0, docker_plan_fit_1.uniqueCopiedMounts)(plan.items, project.rootPath);
159
203
  const bindPaths = mounts
160
204
  .filter((m) => !(0, docker_plan_dto_1.isVolumeMount)(m.kind) && runtime.homePath && (0, docker_plan_files_1.within)(runtime.homePath, m.source))
161
205
  .map((m) => m.source);
162
206
  const binds = [];
163
207
  const imageIds = [
164
- ...new Set(plan.items.filter(docker_plan_fit_1.movesToVm).flatMap((i) => i.images.map((image) => image.id))),
208
+ ...new Set(plan.items
209
+ .filter((item) => (0, docker_plan_fit_1.copiesImages)(item, project.rootPath))
210
+ .flatMap((i) => i.images.map((image) => image.id))),
165
211
  ];
212
+ const candidates = new Map(imageIds.map((id) => [id, (0, docker_import_inventory_store_1.vmImageCandidates)(inventory, id)]));
166
213
  let present;
167
214
  try {
168
215
  for (let offset = 0; offset < bindPaths.length; offset += 64)
169
216
  binds.push(...(await this.remote.dockerCapacity(request.remoteId, bindPaths.slice(offset, offset + 64), options)).paths);
170
- present = await this.remote.dockerImagesPresent(request.remoteId, imageIds, options);
217
+ present = await this.remote.dockerImagesPresent(request.remoteId, [...new Set([...candidates.values()].flat())], options);
171
218
  }
172
219
  catch (error) {
173
220
  if (signal?.aborted)
174
221
  throw error;
175
222
  return unavailable(plan, 'remote', 'remote-docker-routes', VM_ROUTES_MESSAGE);
176
223
  }
177
- const fit = (0, docker_plan_fit_1.planDockerFit)(plan.items, present.ids, {
224
+ const presentHomeIds = imageIds.filter((id) => candidates.get(id).some((candidate) => present.ids.includes(candidate)));
225
+ const fit = (0, docker_plan_fit_1.planDockerFit)(plan.items, presentHomeIds, {
178
226
  dockerRoot: runtime.docker.capacity?.dockerRoot ?? null,
179
227
  imageStore: runtime.docker.capacity?.imageStore ?? null,
180
228
  binds,
181
229
  }, project.rootPath);
182
230
  plan.filesystems = fit.filesystems;
231
+ plan.copySize = { bytes: fit.bytes, unknown: fit.unknown };
183
232
  plan.fit = fit.fit;
184
233
  plan.canConnect =
185
234
  fit.fit !== 'refused' &&
@@ -208,12 +257,8 @@ let DockerPlanService = class DockerPlanService {
208
257
  plan.estimate = (0, docker_plan_fit_1.estimateDockerPlan)(0, 0, null);
209
258
  else {
210
259
  try {
211
- const start = performance.now();
212
- await this.remote.dockerProbe(request.remoteId, probeBody(), options);
213
- const probeSeconds = (performance.now() - start) / 1000;
214
- const image = fit.images[0];
215
- const exportRate = image ? await this.source.exportRate(client, image, scanSignal) : null;
216
- plan.estimate = (0, docker_plan_fit_1.estimateDockerPlan)(fit.bytes, probeSeconds, exportRate);
260
+ const speeds = await this.copySpeeds(request.remoteId, client, fit.images[0], options, reuse);
261
+ plan.estimate = (0, docker_plan_fit_1.estimateDockerPlan)(fit.bytes, speeds.probeSeconds, speeds.exportRate);
217
262
  }
218
263
  catch {
219
264
  if (signal?.aborted)
@@ -226,6 +271,18 @@ let DockerPlanService = class DockerPlanService {
226
271
  }
227
272
  return plan;
228
273
  }
274
+ async copySpeeds(remoteId, client, image, options, reuse) {
275
+ const recent = this.speeds.get(remoteId);
276
+ if (reuse && recent && (0, docker_plan_source_service_1.reusable)(recent.at) && (recent.exportRate !== null || !image))
277
+ return recent;
278
+ const start = performance.now();
279
+ await this.remote.dockerProbe(remoteId, probeBody(), options);
280
+ const probeSeconds = (performance.now() - start) / 1000;
281
+ const exportRate = image ? await this.source.exportRate(client, image, options.signal) : null;
282
+ const measured = { at: Date.now(), probeSeconds, exportRate };
283
+ this.speeds.set(remoteId, measured);
284
+ return measured;
285
+ }
229
286
  };
230
287
  exports.DockerPlanService = DockerPlanService;
231
288
  exports.DockerPlanService = DockerPlanService = __decorate([
@@ -233,13 +290,19 @@ exports.DockerPlanService = DockerPlanService = __decorate([
233
290
  __param(0, (0, common_1.Inject)(storage_interface_1.STORAGE_SERVICE)),
234
291
  __metadata("design:paramtypes", [Object, docker_plan_source_service_1.DockerPlanSourceService,
235
292
  remote_host_client_1.RemoteHostClient,
236
- docker_import_inventory_store_1.DockerImportInventoryStore])
293
+ docker_import_inventory_store_1.DockerImportInventoryStore,
294
+ connect_choices_store_1.ConnectChoicesStore])
237
295
  ], DockerPlanService);
238
296
  const VM_ROUTES_MESSAGE = 'The VM cannot answer Docker import queries; update DevChain on the VM.';
239
- function unavailable(plan, side, code, message) {
297
+ function unavailable(plan, side, code, message, userMismatch) {
240
298
  return {
241
299
  ...plan,
242
- availability: { available: false, side, reason: { code, message } },
300
+ availability: {
301
+ available: false,
302
+ side,
303
+ reason: { code, message },
304
+ ...(userMismatch ? { userMismatch } : {}),
305
+ },
243
306
  items: [],
244
307
  apiVersion: null,
245
308
  };
@@ -1 +1 @@
1
- {"version":3,"file":"docker-plan.service.js","sourceRoot":"","sources":["../../../../src/modules/remotes/docker/docker-plan.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-plan.service.js","sourceRoot":"","sources":["../../../../src/modules/remotes/docker/docker-plan.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AA+DA,0CAcC;AA7ED,6DAA6E;AAC7E,2CAAoD;AACpD,6CAAuC;AACvC,yCAA0C;AAC1C,oEAA8D;AAC9D,sFAIqD;AACrD,kFAIoD;AAMpD,+FAGqD;AACrD,yEAAsF;AACtF,oEAA+D;AAC/D,0DAAyF;AACzF,uDAK2B;AAC3B,uDAU2B;AAC3B,2DAAkE;AAClE,6DAO8B;AAC9B,6EAIsC;AAM/B,KAAK,UAAU,eAAe,CACnC,KAAe,EACf,IAAmE;IAEnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,KAAK,IAAI,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ;gBAAE,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC7D,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAgBM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAKgB;IACzB;IACA;IACA;IACA;IAPF,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE9D,YAC4C,OAAuC,EAChE,MAA+B,EAC/B,MAAwB,EACxB,SAAqC,EACrC,OAA4B;QAJH,YAAO,GAAP,OAAO,CAAgC;QAChE,WAAM,GAAN,MAAM,CAAyB;QAC/B,WAAM,GAAN,MAAM,CAAkB;QACxB,cAAS,GAAT,SAAS,CAA4B;QACrC,YAAO,GAAP,OAAO,CAAqB;IAC5C,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,MAAoB;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAUD,KAAK,CAAC,IAAI,CACR,SAAiB,EACjB,KAAc,EACd,MAAoB,EACpB,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,aAAa,GAAG,EAAE,KAAwB,EAAE;QAE9E,MAAM,OAAO,GAAG,yCAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,IAAI,GAAe;YACvB,SAAS;YACT,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;YAC3D,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;YACtC,GAAG,EAAE,SAAS;YACd,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,EAAE;YACZ,iBAAiB,EAAE,EAAE;YACrB,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM;YACvB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,KAAK,CAAC;YACjC,OAAO,WAAW,CAChB,IAAI,EACJ,MAAM,EACN,KAAK,YAAY,oDAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,EACvE,KAAK,YAAY,wCAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CACnF,CAAC;QACJ,CAAC;QAGD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;SACpE,CAAC,CAAC;QACH,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAA,iCAAc,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,QAAQ;YACV,OAAO,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAA,gCAAa,EAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS;YAC5B,OAAO,WAAW,CAChB,IAAI,EACJ,QAAQ,EACR,kBAAkB,EAClB,kEAAkE,CACnE,CAAC;QACJ,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,MAAM,QAAQ,CAAC;YACpD,IAAI,CAAC,UAAU,GAAG,IAAA,6CAAsB,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACrE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,KAAK,CAAC;YACjC,OAAO,WAAW,CAChB,IAAI,EACJ,QAAQ,EACR,KAAK,YAAY,wCAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB;gBACrE,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,oBAAoB,EACxB,KAAK,YAAY,wCAAiB;gBAChC,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,2CAA2C,CAChD,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAE,EAAE,CACjD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE;gBACrE,KAAK;gBACL,iBAAiB,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC1F,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,wCAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gBACpE,MAAM,IAAI,sBAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACvE,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9C,IAAA,mBAAO,EAAC,IAAI,CAAC,KAAK,IAAA,mBAAO,EAAC,OAAO,CAAC,QAAQ,CAAC;YACzC,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAA,uCAAmB,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAChD,CAAC;QACF,MAAM,UAAU,GAAG,IAAA,oCAAe,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG;YACpB,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1B,CAAC,CAAC,MAAM;qBACL,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,wBAAwB,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;qBAC7E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CACxB;aACF,CAAC;SACH,CAAC;QACF,IAAI,MAAwB,CAAC;QAC7B,MAAM,aAAa,GAAG;YACpB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;SAChF,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC7D,KAAK,IAAI,YAAY;gBACnB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC;gBACxF,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,KAAK,CAAC;YACjC,OAAO,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,IAAA,yCAAoB,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CACzE,CAAC;QACF,IAAA,sCAAiB,EACf,IAAI,CAAC,KAAK,EACV,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,CAAC,QAAQ,IAAI,IAAI,EACxB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAC7E,CAAC;QACF,IAAA,0CAAqB,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACpE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAA,gCAAc,EAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAA,wCAAmB,EAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,0CAAqB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChG,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,IAAA,2BAAS,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAClF,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK;YAC3B,IAAI,CAAC,SAAS,GAAG,CACf,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAChD,CAAC,CAAC,IAAA,iCAAe,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;gBACnC,CAAC,CAAC,IAAA,6BAAW,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CACtD,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAA,oCAAkB,EAC7B,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EACxE,OAAO,CAAC,QAAQ,CACjB,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG;gBACd,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aAClD,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,oCAAkB,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM;aACrB,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,+BAAa,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAA,0BAAM,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CACxF;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,KAAK,GAAyB,EAAE,CAAC;QAEvC,MAAM,QAAQ,GAAG;YACf,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,KAAK;iBACP,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,8BAAY,EAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;iBACtD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CACrD;SACF,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAA,iDAAiB,EAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,OAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE;gBAC1D,KAAK,CAAC,IAAI,CACR,GAAG,CACD,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAC9B,OAAO,CAAC,QAAQ,EAChB,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,EACpC,OAAO,CACR,CACF,CAAC,KAAK,CACR,CAAC;YACJ,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAC7C,OAAO,CAAC,QAAQ,EAChB,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,KAAK,CAAC;YACjC,OAAO,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5C,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CACzE,CAAC;QACF,MAAM,GAAG,GAAG,IAAA,+BAAa,EACvB,IAAI,CAAC,KAAK,EACV,cAAc,EACd;YACE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,IAAI;YACvD,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,IAAI;YACvD,KAAK;SACN,EACD,OAAO,CAAC,QAAQ,CACjB,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACnB,IAAI,CAAC,UAAU;YACb,GAAG,CAAC,GAAG,KAAK,SAAS;gBACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CACd,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,+BAAU,EAAC,IAAI,CAAC,YAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAC3F,CAAC;QACJ,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IACE,CAAC,IAAI,CAAC,YAAY;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;gBAEpE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,8BAA8B;oBACpC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,8GAA8G;iBACpI,CAAC,CAAC;QACP,CAAC;QACD,MAAM,aAAa,GAAG;YACpB,GAAG,MAAM;YACT,GAAG,IAAI,CAAC,KAAK;iBACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;iBAC3D,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qCAAmB,EAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC5D,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,aAAa;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uCAAmB,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAA,oCAAe,EAC9B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC/C,OAAO,CAAC,QAAQ,CACjB,CAAC;QACF,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAA,oCAAkB,EAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;aAC/D,CAAC;YACJ,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAClC,OAAO,CAAC,QAAQ,EAChB,MAAM,EACN,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EACb,OAAO,EACP,KAAK,CACN,CAAC;gBACF,IAAI,CAAC,QAAQ,GAAG,IAAA,oCAAkB,EAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACxF,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,MAAM,EAAE,OAAO;oBAAE,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,wCAAwC;iBAClD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,QAAgB,EAChB,MAA0B,EAC1B,KAAyB,EACzB,OAAoD,EACpD,KAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,KAAK,IAAI,MAAM,IAAI,IAAA,qCAAQ,EAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;YAClF,OAAO,MAAM,CAAC;QAChB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;QACxD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,MAAM,QAAQ,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AA3UY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,eAAM,EAAC,mCAAe,CAAC,CAAA;6CACC,oDAAuB;QACvB,qCAAgB;QACb,0DAA0B;QAC5B,2CAAmB;GATpC,iBAAiB,CA2U7B;AAED,MAAM,iBAAiB,GAAG,wEAAwE,CAAC;AAEnG,SAAS,WAAW,CAClB,IAAgB,EAChB,IAAuB,EACvB,IAAY,EACZ,OAAe,EACf,YAA6B;IAE7B,OAAO;QACL,GAAG,IAAI;QACP,YAAY,EAAE;YACZ,SAAS,EAAE,KAAK;YAChB,IAAI;YACJ,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YACzB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C;QACD,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AACD,SAAS,SAAS;IAChB,OAAO,sBAAQ,CAAC,IAAI,CAClB,CAAC,QAAQ,CAAC;QACR,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;YAAE,MAAM,KAAK,CAAC;IAC5C,CAAC,CAAC,EAAE,CACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const DEFAULT_COMPOSE_FILES: readonly ["compose.yaml", "compose.yml", "docker-compose.yml", "docker-compose.yaml"];
2
+ export declare function containerLinksProject(labels: Readonly<Record<string, string>> | null | undefined, mounts: readonly {
3
+ Type: string;
4
+ Source?: string;
5
+ }[] | null | undefined, root: string): boolean;
6
+ export declare function composeRootLinks(labels: Readonly<Record<string, string>>, root: string): string[];
7
+ export declare function projectCompose(labels: Readonly<Record<string, string>>, root: string, projectId: string): boolean;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_COMPOSE_FILES = void 0;
4
+ exports.containerLinksProject = containerLinksProject;
5
+ exports.composeRootLinks = composeRootLinks;
6
+ exports.projectCompose = projectCompose;
7
+ const host_docker_dto_1 = require("../host/host-docker.dto");
8
+ const docker_plan_files_1 = require("./docker-plan-files");
9
+ exports.DEFAULT_COMPOSE_FILES = [
10
+ 'compose.yaml',
11
+ 'compose.yml',
12
+ 'docker-compose.yml',
13
+ 'docker-compose.yaml',
14
+ ];
15
+ function containerLinksProject(labels, mounts, root) {
16
+ return (composeRootLinks(labels ?? {}, root).length > 0 ||
17
+ (mounts?.some((mount) => mount.Type === 'bind' && !!mount.Source && (0, docker_plan_files_1.within)(root, mount.Source)) ??
18
+ false));
19
+ }
20
+ function composeRootLinks(labels, root) {
21
+ return [`${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.working_dir`, `${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.config_files`].filter((key) => typeof labels[key] === 'string' &&
22
+ labels[key].split(',').some((path) => path.startsWith('/') && (0, docker_plan_files_1.within)(root, path)));
23
+ }
24
+ function projectCompose(labels, root, projectId) {
25
+ const owner = labels[host_docker_dto_1.DOCKER_PROJECT_LABEL];
26
+ if ((owner !== undefined && owner !== projectId) || !labels[host_docker_dto_1.COMPOSE_PROJECT_LABEL])
27
+ return false;
28
+ return composeRootLinks(labels, root).length > 0;
29
+ }
30
+ //# sourceMappingURL=docker-project-compose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-project-compose.js","sourceRoot":"","sources":["../../../../src/modules/remotes/docker/docker-project-compose.ts"],"names":[],"mappings":";;;AAUA,sDAYC;AAGD,4CAMC;AAED,wCAQC;AAzCD,6DAAsF;AACtF,2DAA6C;AAEhC,QAAA,qBAAqB,GAAG;IACnC,cAAc;IACd,aAAa;IACb,oBAAoB;IACpB,qBAAqB;CACb,CAAC;AAEX,SAAgB,qBAAqB,CACnC,MAA2D,EAC3D,MAAuE,EACvE,IAAY;IAEZ,OAAO,CACL,gBAAgB,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAC/C,CAAC,MAAM,EAAE,IAAI,CACX,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,IAAA,0BAAM,EAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CACjF;YACC,KAAK,CAAC,CACT,CAAC;AACJ,CAAC;AAGD,SAAgB,gBAAgB,CAAC,MAAwC,EAAE,IAAY;IACrF,OAAO,CAAC,GAAG,uCAAqB,cAAc,EAAE,GAAG,uCAAqB,eAAe,CAAC,CAAC,MAAM,CAC7F,CAAC,GAAG,EAAE,EAAE,CACN,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAA,0BAAM,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACpF,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAC5B,MAAwC,EACxC,IAAY,EACZ,SAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,sCAAoB,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,uCAAqB,CAAC;QAAE,OAAO,KAAK,CAAC;IACjG,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACnD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { ProviderCliRuntimeReport } from '@devchain/shared';
2
2
  import type { DockerRuntime } from '../../core/controllers/docker-runtime';
3
3
  import { z } from 'zod';
4
+ import type { VmUserMismatch } from '../vm-user-identity';
4
5
  import type { Remote, RemoteOperationKind, RemoteOperationState } from '../../storage/models/domain.models';
5
6
  import type { HostStats } from '../../core/models/host-stats.model';
6
7
  import type { HostEnvOverrideEntry } from '../host/host-env-override-report';
@@ -49,6 +50,7 @@ export interface RemoteListItemDto extends Remote {
49
50
  versionMatches: boolean;
50
51
  uid: number | null;
51
52
  gid: number | null;
53
+ dockerUserMismatch?: VmUserMismatch | null;
52
54
  providerEnvOverrides?: HostEnvOverrideEntry[] | null;
53
55
  stats: HostStats | null;
54
56
  lastSeenAt: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"remote.dto.js","sourceRoot":"","sources":["../../../../src/modules/remotes/dtos/remote.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote.dto.js","sourceRoot":"","sources":["../../../../src/modules/remotes/dtos/remote.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
2
+ export type GitOwner = 'home' | 'vm';
3
+ export declare class GitOwnerStore {
4
+ private readonly sqlite;
5
+ private readonly transactions;
6
+ private readonly generations;
7
+ constructor(db: BetterSQLite3Database);
8
+ get(projectId: string): GitOwner;
9
+ generation(projectId: string): number;
10
+ set(projectId: string, owner: GitOwner): void;
11
+ clear(projectId: string): void;
12
+ private readMap;
13
+ }