devchain-cli 0.24.1 → 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 (343) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/cli.js +40 -10
  3. package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
  4. package/dist/host-install/pins.json +31 -2
  5. package/dist/lib/exclusive-run.js +51 -3
  6. package/dist/lib/git-owner.js +284 -0
  7. package/dist/lib/host-install.js +19 -151
  8. package/dist/lib/local-api.js +175 -0
  9. package/dist/server/common/config/env.config.d.ts +3 -0
  10. package/dist/server/common/config/env.config.js +1 -0
  11. package/dist/server/common/config/env.config.js.map +1 -1
  12. package/dist/server/common/config/host-image.json +3 -3
  13. package/dist/server/common/constants/syncthing-markers.d.ts +1 -0
  14. package/dist/server/common/constants/syncthing-markers.js +6 -1
  15. package/dist/server/common/constants/syncthing-markers.js.map +1 -1
  16. package/dist/server/common/filesystem/vm-home-path.d.ts +11 -0
  17. package/dist/server/common/filesystem/vm-home-path.js +48 -0
  18. package/dist/server/common/filesystem/vm-home-path.js.map +1 -0
  19. package/dist/server/common/process-ids-env.d.ts +1 -0
  20. package/dist/server/common/process-ids-env.js +13 -0
  21. package/dist/server/common/process-ids-env.js.map +1 -0
  22. package/dist/server/common/test/api-test-app.d.ts +12 -0
  23. package/dist/server/common/test/api-test-app.js +76 -0
  24. package/dist/server/common/test/api-test-app.js.map +1 -0
  25. package/dist/server/common/test/app-bootstrap.helper.js +8 -1
  26. package/dist/server/common/test/app-bootstrap.helper.js.map +1 -1
  27. package/dist/server/common/test/fake-bootstrap.server.js +3 -2
  28. package/dist/server/common/test/fake-bootstrap.server.js.map +1 -1
  29. package/dist/server/common/test/fake-docker-engine.server.d.ts +17 -6
  30. package/dist/server/common/test/fake-docker-engine.server.js +77 -33
  31. package/dist/server/common/test/fake-docker-engine.server.js.map +1 -1
  32. package/dist/server/common/test/fake-proxmox.server.js +4 -4
  33. package/dist/server/common/test/fake-ssh.server.js +6 -6
  34. package/dist/server/common/test/fake-ssh.server.js.map +1 -1
  35. package/dist/server/common/test/test-database.helper.d.ts +6 -0
  36. package/dist/server/common/test/test-database.helper.js +29 -0
  37. package/dist/server/common/test/test-database.helper.js.map +1 -0
  38. package/dist/server/modules/core/controllers/docker-archive.js +1 -1
  39. package/dist/server/modules/core/controllers/docker-archive.js.map +1 -1
  40. package/dist/server/modules/core/controllers/docker-engine.client.d.ts +2 -1
  41. package/dist/server/modules/core/controllers/docker-engine.client.js +8 -4
  42. package/dist/server/modules/core/controllers/docker-engine.client.js.map +1 -1
  43. package/dist/server/modules/core/controllers/docker-image-metadata.d.ts +248 -0
  44. package/dist/server/modules/core/controllers/docker-image-metadata.js +161 -0
  45. package/dist/server/modules/core/controllers/docker-image-metadata.js.map +1 -0
  46. package/dist/server/modules/core/controllers/docker-settings.d.ts +13 -2
  47. package/dist/server/modules/core/controllers/docker-settings.js +49 -11
  48. package/dist/server/modules/core/controllers/docker-settings.js.map +1 -1
  49. package/dist/server/modules/core/controllers/host-user-identity.d.ts +34 -0
  50. package/dist/server/modules/core/controllers/host-user-identity.js +23 -0
  51. package/dist/server/modules/core/controllers/host-user-identity.js.map +1 -0
  52. package/dist/server/modules/core/controllers/runtime.controller.d.ts +11 -4
  53. package/dist/server/modules/core/controllers/runtime.controller.js +2 -0
  54. package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
  55. package/dist/server/modules/file-sync/build-exclusion-suggestions.d.ts +15 -0
  56. package/dist/server/modules/file-sync/build-exclusion-suggestions.js +402 -0
  57. package/dist/server/modules/file-sync/build-exclusion-suggestions.js.map +1 -0
  58. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.d.ts +102 -0
  59. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js +22 -0
  60. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js.map +1 -0
  61. package/dist/server/modules/file-sync/file-sync-auto-fix.store.d.ts +12 -0
  62. package/dist/server/modules/file-sync/file-sync-auto-fix.store.js +73 -0
  63. package/dist/server/modules/file-sync/file-sync-auto-fix.store.js.map +1 -0
  64. package/dist/server/modules/file-sync/file-sync-conflicts.d.ts +3 -0
  65. package/dist/server/modules/file-sync/file-sync-conflicts.js +191 -0
  66. package/dist/server/modules/file-sync/file-sync-conflicts.js.map +1 -0
  67. package/dist/server/modules/file-sync/file-sync-ignores.store.d.ts +5 -1
  68. package/dist/server/modules/file-sync/file-sync-ignores.store.js +39 -8
  69. package/dist/server/modules/file-sync/file-sync-ignores.store.js.map +1 -1
  70. package/dist/server/modules/file-sync/file-sync.controller.d.ts +1 -3
  71. package/dist/server/modules/file-sync/file-sync.controller.js +5 -14
  72. package/dist/server/modules/file-sync/file-sync.controller.js.map +1 -1
  73. package/dist/server/modules/file-sync/file-sync.dto.d.ts +220 -1
  74. package/dist/server/modules/file-sync/file-sync.dto.js +70 -4
  75. package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
  76. package/dist/server/modules/file-sync/file-sync.module.js +16 -1
  77. package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
  78. package/dist/server/modules/file-sync/file-sync.service.d.ts +18 -4
  79. package/dist/server/modules/file-sync/file-sync.service.js +166 -34
  80. package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
  81. package/dist/server/modules/file-sync/git-guard.dto.d.ts +61 -0
  82. package/dist/server/modules/file-sync/git-guard.dto.js +26 -0
  83. package/dist/server/modules/file-sync/git-guard.dto.js.map +1 -0
  84. package/dist/server/modules/file-sync/home-git-guard.service.d.ts +4 -2
  85. package/dist/server/modules/file-sync/home-git-guard.service.js +50 -25
  86. package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
  87. package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +10 -0
  88. package/dist/server/modules/file-sync/host-git-guard.controller.js +64 -0
  89. package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -0
  90. package/dist/server/modules/file-sync/host-git-index.controller.d.ts +9 -0
  91. package/dist/server/modules/file-sync/host-git-index.controller.js +67 -0
  92. package/dist/server/modules/file-sync/host-git-index.controller.js.map +1 -0
  93. package/dist/server/modules/file-sync/host-sync.controller.d.ts +15 -2
  94. package/dist/server/modules/file-sync/host-sync.controller.js +122 -14
  95. package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
  96. package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +30 -0
  97. package/dist/server/modules/file-sync/ignore-pattern-matcher.js +183 -0
  98. package/dist/server/modules/file-sync/ignore-pattern-matcher.js.map +1 -0
  99. package/dist/server/modules/file-sync/project-repository.d.ts +2 -0
  100. package/dist/server/modules/file-sync/project-repository.js +20 -0
  101. package/dist/server/modules/file-sync/project-repository.js.map +1 -0
  102. package/dist/server/modules/file-sync/sync-chown.dto.d.ts +99 -0
  103. package/dist/server/modules/file-sync/sync-chown.dto.js +46 -0
  104. package/dist/server/modules/file-sync/sync-chown.dto.js.map +1 -0
  105. package/dist/server/modules/file-sync/sync-chown.service.d.ts +12 -0
  106. package/dist/server/modules/file-sync/sync-chown.service.js +230 -0
  107. package/dist/server/modules/file-sync/sync-chown.service.js.map +1 -0
  108. package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +626 -0
  109. package/dist/server/modules/file-sync/sync-path-inspection.dto.js +108 -0
  110. package/dist/server/modules/file-sync/sync-path-inspection.dto.js.map +1 -0
  111. package/dist/server/modules/file-sync/sync-path-inspector.d.ts +12 -0
  112. package/dist/server/modules/file-sync/sync-path-inspector.js +413 -0
  113. package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -0
  114. package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +27 -4
  115. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +66 -4
  116. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
  117. package/dist/server/modules/file-sync/translate-git-ignore-rule.d.ts +3 -0
  118. package/dist/server/modules/file-sync/translate-git-ignore-rule.js +30 -0
  119. package/dist/server/modules/file-sync/translate-git-ignore-rule.js.map +1 -0
  120. package/dist/server/modules/mcp/services/handlers/skill-tools.js +2 -2
  121. package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -1
  122. package/dist/server/modules/remotes/connect-choices.controller.d.ts +9 -0
  123. package/dist/server/modules/remotes/connect-choices.controller.js +54 -0
  124. package/dist/server/modules/remotes/connect-choices.controller.js.map +1 -0
  125. package/dist/server/modules/remotes/connect-choices.dto.d.ts +52 -0
  126. package/dist/server/modules/remotes/connect-choices.dto.js +19 -0
  127. package/dist/server/modules/remotes/connect-choices.dto.js.map +1 -0
  128. package/dist/server/modules/remotes/connect-choices.store.d.ts +12 -0
  129. package/dist/server/modules/remotes/connect-choices.store.js +95 -0
  130. package/dist/server/modules/remotes/connect-choices.store.js.map +1 -0
  131. package/dist/server/modules/remotes/controllers/remotes.controller.d.ts +3 -0
  132. package/dist/server/modules/remotes/controllers/remotes.controller.js +9 -1
  133. package/dist/server/modules/remotes/controllers/remotes.controller.js.map +1 -1
  134. package/dist/server/modules/remotes/docker/docker-copy-back.js +40 -16
  135. package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
  136. package/dist/server/modules/remotes/docker/docker-handoff.d.ts +5 -3
  137. package/dist/server/modules/remotes/docker/docker-handoff.js +146 -42
  138. package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
  139. package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +3 -0
  140. package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
  141. package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +4 -1
  142. package/dist/server/modules/remotes/docker/docker-plan-fit.js +19 -6
  143. package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
  144. package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +6 -2
  145. package/dist/server/modules/remotes/docker/docker-plan-policy.js +191 -38
  146. package/dist/server/modules/remotes/docker/docker-plan-policy.js.map +1 -1
  147. package/dist/server/modules/remotes/docker/docker-plan-source.service.d.ts +52 -8
  148. package/dist/server/modules/remotes/docker/docker-plan-source.service.js +273 -50
  149. package/dist/server/modules/remotes/docker/docker-plan-source.service.js.map +1 -1
  150. package/dist/server/modules/remotes/docker/docker-plan.controller.d.ts +2 -1
  151. package/dist/server/modules/remotes/docker/docker-plan.controller.js +14 -0
  152. package/dist/server/modules/remotes/docker/docker-plan.controller.js.map +1 -1
  153. package/dist/server/modules/remotes/docker/docker-plan.dto.d.ts +46 -1
  154. package/dist/server/modules/remotes/docker/docker-plan.dto.js +1 -0
  155. package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
  156. package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +13 -7
  157. package/dist/server/modules/remotes/docker/docker-plan.service.js +57 -13
  158. package/dist/server/modules/remotes/docker/docker-plan.service.js.map +1 -1
  159. package/dist/server/modules/remotes/docker/docker-project-compose.d.ts +7 -0
  160. package/dist/server/modules/remotes/docker/docker-project-compose.js +30 -0
  161. package/dist/server/modules/remotes/docker/docker-project-compose.js.map +1 -0
  162. package/dist/server/modules/remotes/dtos/remote.dto.d.ts +2 -0
  163. package/dist/server/modules/remotes/dtos/remote.dto.js.map +1 -1
  164. package/dist/server/modules/remotes/git-owner.store.d.ts +13 -0
  165. package/dist/server/modules/remotes/git-owner.store.js +69 -0
  166. package/dist/server/modules/remotes/git-owner.store.js.map +1 -0
  167. package/dist/server/modules/remotes/host/host-docker.controller.d.ts +8 -0
  168. package/dist/server/modules/remotes/host/host-docker.controller.js +22 -6
  169. package/dist/server/modules/remotes/host/host-docker.controller.js.map +1 -1
  170. package/dist/server/modules/remotes/host/host-docker.dto.d.ts +606 -0
  171. package/dist/server/modules/remotes/host/host-docker.dto.js +47 -7
  172. package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
  173. package/dist/server/modules/remotes/host/host-docker.service.d.ts +16 -4
  174. package/dist/server/modules/remotes/host/host-docker.service.js +157 -82
  175. package/dist/server/modules/remotes/host/host-docker.service.js.map +1 -1
  176. package/dist/server/modules/remotes/host/host-ipv4-routes.d.ts +4 -0
  177. package/dist/server/modules/remotes/host/host-ipv4-routes.js +43 -0
  178. package/dist/server/modules/remotes/host/host-ipv4-routes.js.map +1 -0
  179. package/dist/server/modules/remotes/host-image.d.ts +1 -1
  180. package/dist/server/modules/remotes/host-image.js +1 -1
  181. package/dist/server/modules/remotes/host-install/host-install-block.d.ts +1 -0
  182. package/dist/server/modules/remotes/host-install/host-install-block.js +76 -2
  183. package/dist/server/modules/remotes/host-install/host-install-block.js.map +1 -1
  184. package/dist/server/modules/remotes/host-install/host-install.service.d.ts +0 -1
  185. package/dist/server/modules/remotes/host-install/host-install.service.js +9 -26
  186. package/dist/server/modules/remotes/host-install/host-install.service.js.map +1 -1
  187. package/dist/server/modules/remotes/operations/attach.operation.d.ts +5 -1
  188. package/dist/server/modules/remotes/operations/attach.operation.js +40 -5
  189. package/dist/server/modules/remotes/operations/attach.operation.js.map +1 -1
  190. package/dist/server/modules/remotes/operations/claim.operation.d.ts +1 -0
  191. package/dist/server/modules/remotes/operations/claim.operation.js +6 -1
  192. package/dist/server/modules/remotes/operations/claim.operation.js.map +1 -1
  193. package/dist/server/modules/remotes/operations/detach.operation.d.ts +4 -1
  194. package/dist/server/modules/remotes/operations/detach.operation.js +10 -2
  195. package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
  196. package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +4 -0
  197. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +11 -0
  198. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js.map +1 -1
  199. package/dist/server/modules/remotes/operations/file-sync-handoff.d.ts +29 -3
  200. package/dist/server/modules/remotes/operations/file-sync-handoff.js +477 -50
  201. package/dist/server/modules/remotes/operations/file-sync-handoff.js.map +1 -1
  202. package/dist/server/modules/remotes/operations/force-sync.operation.d.ts +39 -0
  203. package/dist/server/modules/remotes/operations/force-sync.operation.js +177 -0
  204. package/dist/server/modules/remotes/operations/force-sync.operation.js.map +1 -0
  205. package/dist/server/modules/remotes/operations/git-owner.dto.d.ts +83 -0
  206. package/dist/server/modules/remotes/operations/git-owner.dto.js +25 -0
  207. package/dist/server/modules/remotes/operations/git-owner.dto.js.map +1 -0
  208. package/dist/server/modules/remotes/operations/git-owner.operation.d.ts +35 -0
  209. package/dist/server/modules/remotes/operations/git-owner.operation.js +216 -0
  210. package/dist/server/modules/remotes/operations/git-owner.operation.js.map +1 -0
  211. package/dist/server/modules/remotes/operations/remote-host.client.d.ts +71 -7
  212. package/dist/server/modules/remotes/operations/remote-host.client.js +141 -11
  213. package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
  214. package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +19 -0
  215. package/dist/server/modules/remotes/operations/remote-operation.dto.js +5 -1
  216. package/dist/server/modules/remotes/operations/remote-operation.dto.js.map +1 -1
  217. package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +3 -1
  218. package/dist/server/modules/remotes/operations/remote-operation.runner.js +52 -21
  219. package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
  220. package/dist/server/modules/remotes/operations/remote-operation.types.d.ts +4 -1
  221. package/dist/server/modules/remotes/operations/remote-operation.types.js.map +1 -1
  222. package/dist/server/modules/remotes/operations/remote-operations.controller.d.ts +5 -0
  223. package/dist/server/modules/remotes/operations/remote-operations.controller.js +56 -0
  224. package/dist/server/modules/remotes/operations/remote-operations.controller.js.map +1 -1
  225. package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +16 -1
  226. package/dist/server/modules/remotes/operations/remote-operations.service.js +155 -5
  227. package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
  228. package/dist/server/modules/remotes/operations/update-logins.operation.d.ts +1 -3
  229. package/dist/server/modules/remotes/operations/update-logins.operation.js +3 -18
  230. package/dist/server/modules/remotes/operations/update-logins.operation.js.map +1 -1
  231. package/dist/server/modules/remotes/ports/remote-health.port.d.ts +2 -0
  232. package/dist/server/modules/remotes/ports/remote-health.port.js.map +1 -1
  233. package/dist/server/modules/remotes/remotes.module.js +18 -0
  234. package/dist/server/modules/remotes/remotes.module.js.map +1 -1
  235. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.d.ts +2 -2
  236. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js +2 -13
  237. package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js.map +1 -1
  238. package/dist/server/modules/remotes/services/remote-health.service.js +5 -0
  239. package/dist/server/modules/remotes/services/remote-health.service.js.map +1 -1
  240. package/dist/server/modules/remotes/sync/file-sync-failures.service.d.ts +18 -0
  241. package/dist/server/modules/remotes/sync/file-sync-failures.service.js +157 -0
  242. package/dist/server/modules/remotes/sync/file-sync-failures.service.js.map +1 -0
  243. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.d.ts +14 -0
  244. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js +99 -0
  245. package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js.map +1 -0
  246. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.d.ts +15 -0
  247. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +90 -0
  248. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js.map +1 -0
  249. package/dist/server/modules/remotes/sync/project-file-sync.controller.d.ts +29 -0
  250. package/dist/server/modules/remotes/sync/project-file-sync.controller.js +160 -0
  251. package/dist/server/modules/remotes/sync/project-file-sync.controller.js.map +1 -0
  252. package/dist/server/modules/remotes/sync/remote-file-sync.dto.d.ts +72 -0
  253. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js +16 -0
  254. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js.map +1 -0
  255. package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +32 -1
  256. package/dist/server/modules/remotes/sync/remote-file-sync.service.js +499 -38
  257. package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
  258. package/dist/server/modules/remotes/sync/remote-live-sync.service.d.ts +2 -0
  259. package/dist/server/modules/remotes/sync/remote-live-sync.service.js +26 -12
  260. package/dist/server/modules/remotes/sync/remote-live-sync.service.js.map +1 -1
  261. package/dist/server/modules/remotes/vm-user-identity.d.ts +29 -0
  262. package/dist/server/modules/remotes/vm-user-identity.js +45 -0
  263. package/dist/server/modules/remotes/vm-user-identity.js.map +1 -0
  264. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +5 -1
  265. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
  266. package/dist/server/modules/session-reader/data/pricing.json +55 -7
  267. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +5 -0
  268. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
  269. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.d.ts +6 -0
  270. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js +26 -0
  271. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js.map +1 -1
  272. package/dist/server/modules/settings/services/settings.service.d.ts +3 -1
  273. package/dist/server/modules/settings/services/settings.service.js +6 -0
  274. package/dist/server/modules/settings/services/settings.service.js.map +1 -1
  275. package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js +5 -5
  276. package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js.map +1 -1
  277. package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js +5 -5
  278. package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js.map +1 -1
  279. package/dist/server/modules/skills/adapters/github-skill-source.base.js +4 -3
  280. package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
  281. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +5 -5
  282. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -1
  283. package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js +5 -5
  284. package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js.map +1 -1
  285. package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js +5 -5
  286. package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js.map +1 -1
  287. package/dist/server/modules/skills/adapters/skill-source.adapter.d.ts +5 -0
  288. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.d.ts +5 -0
  289. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js +75 -0
  290. package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js.map +1 -0
  291. package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js +5 -5
  292. package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js.map +1 -1
  293. package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js +5 -5
  294. package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js.map +1 -1
  295. package/dist/server/modules/skills/controllers/skills.controller.js +2 -2
  296. package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
  297. package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +3 -3
  298. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js +9 -4
  299. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
  300. package/dist/server/modules/skills/services/skill-sync.service.d.ts +3 -3
  301. package/dist/server/modules/skills/services/skill-sync.service.js +32 -6
  302. package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
  303. package/dist/server/modules/skills/services/skill-sync.types.d.ts +3 -0
  304. package/dist/server/modules/storage/db/schema.d.ts +2 -2
  305. package/dist/server/modules/storage/db/schema.js +2 -0
  306. package/dist/server/modules/storage/db/schema.js.map +1 -1
  307. package/dist/server/modules/storage/models/domain.models.d.ts +1 -1
  308. package/dist/server/modules/storage/models/domain.models.js +2 -0
  309. package/dist/server/modules/storage/models/domain.models.js.map +1 -1
  310. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +3 -1
  311. package/dist/server/modules/terminal/gateways/terminal.gateway.js +9 -4
  312. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  313. package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +0 -1
  314. package/dist/server/modules/terminal/services/terminal-activity.service.js +0 -3
  315. package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
  316. package/dist/server/modules/terminal/services/terminal-io/lifecycle.js +15 -3
  317. package/dist/server/modules/terminal/services/terminal-io/lifecycle.js.map +1 -1
  318. package/dist/server/modules/terminal/utils/ansi-sanitizer.d.ts +0 -1
  319. package/dist/server/modules/terminal/utils/ansi-sanitizer.js +0 -4
  320. package/dist/server/modules/terminal/utils/ansi-sanitizer.js.map +1 -1
  321. package/dist/server/templates/teams-dev.json +11 -11
  322. package/dist/server/test-setup-node.js +4 -3
  323. package/dist/server/test-setup-node.js.map +1 -1
  324. package/dist/server/test-setup.js +7 -0
  325. package/dist/server/test-setup.js.map +1 -1
  326. package/dist/server/tsconfig.tsbuildinfo +1 -1
  327. package/dist/server/ui/assets/{ExternalRichEditor-DtNvrV0F.js → ExternalRichEditor-CIZPhssf.js} +24 -24
  328. package/dist/server/ui/assets/ReviewDetailPage-winyLSQ7.js +6 -0
  329. package/dist/server/ui/assets/ReviewsPage-BYKBReMp.js +6 -0
  330. package/dist/server/ui/assets/index-CiDJX6Hn.js +1191 -0
  331. package/dist/server/ui/assets/index-f1WOAqXB.css +32 -0
  332. package/dist/server/ui/assets/useReviewSubscription-v3Cto0y4.js +69 -0
  333. package/dist/server/ui/index.html +2 -2
  334. package/dist/templates/teams-dev.json +11 -11
  335. package/package.json +8 -1
  336. package/dist/server/modules/reviews/utils/notification-formatter.d.ts +0 -12
  337. package/dist/server/modules/reviews/utils/notification-formatter.js +0 -60
  338. package/dist/server/modules/reviews/utils/notification-formatter.js.map +0 -1
  339. package/dist/server/ui/assets/ReviewDetailPage-DJzEoM0x.js +0 -6
  340. package/dist/server/ui/assets/ReviewsPage-z2O8MNEw.js +0 -6
  341. package/dist/server/ui/assets/index-CC4P3V8L.js +0 -994
  342. package/dist/server/ui/assets/index-LsJe1ZTS.css +0 -32
  343. package/dist/server/ui/assets/useReviewSubscription-B7AdJBO2.js +0 -69
@@ -74,10 +74,19 @@ function safeRemoteName(name, fallback) {
74
74
  }
75
75
  const STASH_COMMAND = ['st', 'ash'].join('');
76
76
  function guardMessage(remoteName) {
77
- return `This project runs on the remote VM "${remoteName}". Normal file editing is allowed: your changes sync to the VM. Git changes (commit, branch, tag, ${STASH_COMMAND}, merge, rebase, switch) are blocked here until you disconnect. Run them on the VM, or ask an agent.`;
77
+ return `This project runs on the remote VM "${remoteName}". Normal file editing is allowed: your changes sync to the VM. Git changes (commit, branch, tag, ${STASH_COMMAND}, merge, rebase, switch) are blocked here. Run them on the VM. To use Git on this PC, run \`devchain git take\` in the project folder.`;
78
+ }
79
+ function vmGuardMessage({ homeName, reason }) {
80
+ if (reason === 'pc-git') {
81
+ return `Git for this project is on the PC '${homeName}'. You can edit files here: your changes sync to the PC. Git changes (commit, branch, tag, ${STASH_COMMAND}, merge, rebase, switch) are blocked here. To move Git back to this VM, run \`devchain git return\` in the project folder on the PC '${homeName}'.`;
82
+ }
83
+ const location = reason === 'disconnect'
84
+ ? `This project is now on the PC '${homeName}'. You can edit files here. At the next Connect, DevChain brings your edits to the PC.`
85
+ : `This project is on the PC '${homeName}'. A Connect was cancelled, so at the next Connect the PC's files replace the files here.`;
86
+ return `${location} Git changes (commit, branch, tag, ${STASH_COMMAND}, merge, rebase, switch) are blocked here. Make them on the PC. To use Git on this VM, connect the project to it again from the PC.`;
78
87
  }
79
88
  function referenceTransactionScript(message) {
80
- return `${OWNED_HEADER}# Installed while a remote DevChain VM owns this project; removed on disconnect.
89
+ return `${OWNED_HEADER}# Git ownership belongs to the other instance of this project.
81
90
  # Git passes the transaction state ("prepared", "committed" or "aborted") as $1.
82
91
  case "$1" in
83
92
  prepared)
@@ -89,15 +98,15 @@ exit 0
89
98
  `;
90
99
  }
91
100
  function postCheckoutScript(message) {
92
- return `${OWNED_HEADER}# Installed while a remote DevChain VM owns this project; removed on disconnect.
101
+ return `${OWNED_HEADER}# Git ownership belongs to the other instance of this project.
93
102
  marker="$(dirname "$0")/${SWITCHBACK_MARKER}"
94
103
 
95
104
  # Only branch checkouts concern the guard, never file checkouts.
96
105
  [ "$3" = "1" ] || exit 0
97
106
 
98
107
  # This checkout logged "moving from <previous> to <current>" in HEAD's reflog,
99
- # so @{-1} is the branch the VM owned right before it, also after the VM
100
- # switched branches. A no-op checkout logs the same branch on both sides.
108
+ # so @{-1} is the previous branch, even after HEAD was synced from the owner.
109
+ # A no-op checkout logs the same branch on both sides.
101
110
  previous=$(git rev-parse --symbolic-full-name '@{-1}' 2>/dev/null)
102
111
  current=$(git symbolic-ref -q HEAD) || exit 0
103
112
  case "$previous" in refs/heads/*) ;; *) exit 0 ;; esac
@@ -126,42 +135,49 @@ let HomeGitGuardService = class HomeGitGuardService {
126
135
  this.git = git;
127
136
  this.storage = storage;
128
137
  }
129
- async install(projectId, remoteId) {
138
+ async install(projectId, owner) {
130
139
  const root = await this.fileSync.folderPath(projectId);
140
+ const onVm = typeof owner !== 'string';
141
+ const skip = (reason) => this.skipWarning(projectId, reason, onVm);
131
142
  if (!(await this.isDirectory((0, path_1.join)(root, '.git')))) {
132
- return this.skipWarning(projectId, 'the project root has no .git directory (worktrees are unsupported)');
143
+ return skip('the project root has no .git directory (worktrees are unsupported)');
133
144
  }
134
145
  let hooksPath = null;
135
146
  let version = null;
136
147
  try {
137
148
  hooksPath = await this.git.getConfigValue(projectId, 'core.hooksPath', root);
138
149
  if (hooksPath) {
139
- return this.skipWarning(projectId, `core.hooksPath is set (${hooksPath}); the guard cannot install into .git/hooks`);
150
+ return skip(`core.hooksPath is set (${hooksPath}); the guard cannot install into .git/hooks`);
140
151
  }
141
152
  version = await this.git.getVersion(projectId, root);
142
153
  }
143
154
  catch (error) {
144
155
  const reason = error instanceof Error ? error.message : String(error);
145
- return this.skipWarning(projectId, `git could not be consulted (${reason})`);
156
+ return skip(`git could not be consulted (${reason})`);
146
157
  }
147
158
  if (!isSupportedGit(version)) {
148
- return this.skipWarning(projectId, `git ${version.major}.${version.minor}.${version.patch} is older than 2.28; the reference-transaction hook is unavailable`);
159
+ return skip(`git ${version.major}.${version.minor}.${version.patch} is older than 2.28; the reference-transaction hook is unavailable`);
149
160
  }
150
- const remoteName = safeRemoteName(await this.remoteName(projectId, remoteId), remoteId);
151
- await this.installHooks(root, remoteName);
152
- logger.info({ projectId, remoteId }, 'Remote git guard installed');
161
+ const message = onVm
162
+ ? vmGuardMessage(owner)
163
+ : guardMessage(safeRemoteName(await this.remoteName(projectId, owner), owner));
164
+ await this.installHooks(root, message);
165
+ logger.info({ projectId, side: onVm ? 'vm' : 'home' }, 'Git guard installed');
153
166
  return null;
154
167
  }
155
168
  async remove(projectId, options) {
156
169
  const root = await this.fileSync.folderPath(projectId);
157
- await this.stripHooks(root);
170
+ const removed = await this.stripHooks(root, options.failOnReadError);
158
171
  if (!options.refreshIndex)
159
- return;
172
+ return { removed, indexRefreshed: null, warning: null };
160
173
  try {
161
174
  await this.git.refreshIndexFromHead(projectId, root);
175
+ return { removed, indexRefreshed: true, warning: null };
162
176
  }
163
177
  catch (error) {
164
178
  logger.warn({ error, projectId }, 'Guard index refresh failed (non-fatal)');
179
+ const reason = error instanceof Error ? error.message : String(error);
180
+ return { removed, indexRefreshed: false, warning: `Git index rebuild failed: ${reason}` };
165
181
  }
166
182
  }
167
183
  async reinstall(projectId, remoteId) {
@@ -169,8 +185,10 @@ let HomeGitGuardService = class HomeGitGuardService {
169
185
  await this.stripHooks(root);
170
186
  return this.install(projectId, remoteId);
171
187
  }
172
- skipWarning(projectId, reason) {
173
- const warning = `Git guard skipped: ${reason}. Git changes at home are not blocked while the project runs on the VM.`;
188
+ skipWarning(projectId, reason, vm = false) {
189
+ const warning = vm
190
+ ? `VM git guard skipped: ${reason}. Git changes on the VM are not blocked while the project is on the PC.`
191
+ : `Git guard skipped: ${reason}. Git changes at home are not blocked while the project runs on the VM.`;
174
192
  logger.warn({ projectId }, warning);
175
193
  return warning;
176
194
  }
@@ -186,10 +204,9 @@ let HomeGitGuardService = class HomeGitGuardService {
186
204
  throw error;
187
205
  }
188
206
  }
189
- async installHooks(root, remoteName) {
207
+ async installHooks(root, message) {
190
208
  const hooksDir = (0, path_1.join)(root, '.git', 'hooks');
191
209
  await (0, promises_1.mkdir)(hooksDir, { recursive: true });
192
- const message = guardMessage(remoteName);
193
210
  for (const name of GUARD_HOOKS) {
194
211
  const hookPath = (0, path_1.join)(hooksDir, name);
195
212
  if ((0, fs_1.existsSync)(hookPath) && !(await this.isOwnHook(hookPath))) {
@@ -204,26 +221,34 @@ let HomeGitGuardService = class HomeGitGuardService {
204
221
  await (0, promises_1.chmod)(hookPath, 0o755);
205
222
  }
206
223
  }
207
- async stripHooks(root) {
224
+ async stripHooks(root, failOnReadError = false) {
208
225
  const hooksDir = (0, path_1.join)(root, '.git', 'hooks');
209
226
  if (!(0, fs_1.existsSync)(hooksDir))
210
- return;
227
+ return false;
228
+ let removed = false;
211
229
  for (const name of GUARD_HOOKS) {
212
230
  const hookPath = (0, path_1.join)(hooksDir, name);
213
- if (await this.isOwnHook(hookPath))
231
+ if (await this.isOwnHook(hookPath, failOnReadError)) {
214
232
  await (0, promises_1.rm)(hookPath, { force: true });
233
+ removed = true;
234
+ }
215
235
  const savedPath = `${hookPath}${SAVED_SUFFIX}`;
216
- if ((0, fs_1.existsSync)(savedPath) && !(0, fs_1.existsSync)(hookPath))
236
+ if ((0, fs_1.existsSync)(savedPath) && !(0, fs_1.existsSync)(hookPath)) {
217
237
  await (0, promises_1.rename)(savedPath, hookPath);
238
+ removed = true;
239
+ }
218
240
  }
219
241
  await (0, promises_1.rm)((0, path_1.join)(hooksDir, SWITCHBACK_MARKER), { force: true });
242
+ return removed;
220
243
  }
221
- async isOwnHook(hookPath) {
244
+ async isOwnHook(hookPath, failOnReadError = false) {
222
245
  try {
223
246
  const content = await (0, promises_1.readFile)(hookPath, 'utf8');
224
247
  return content.startsWith(OWNED_HEADER);
225
248
  }
226
- catch {
249
+ catch (error) {
250
+ if (failOnReadError && error.code !== 'ENOENT')
251
+ throw error;
227
252
  return false;
228
253
  }
229
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"home-git-guard.service.js","sourceRoot":"","sources":["../../../src/modules/file-sync/home-git-guard.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"home-git-guard.service.js","sourceRoot":"","sources":["../../../src/modules/file-sync/home-git-guard.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type GitGuardRemoveResult } from './git-guard.dto';
2
+ import { HomeGitGuardService } from './home-git-guard.service';
3
+ export declare class HostGitGuardController {
4
+ private readonly guard;
5
+ constructor(guard: HomeGitGuardService);
6
+ install(id: string, body: unknown): Promise<{
7
+ warning: string | null;
8
+ }>;
9
+ remove(id: string, body: unknown): Promise<GitGuardRemoveResult>;
10
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.HostGitGuardController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const host_dto_1 = require("../remotes/host/host.dto");
19
+ const git_guard_dto_1 = require("./git-guard.dto");
20
+ const home_git_guard_service_1 = require("./home-git-guard.service");
21
+ let HostGitGuardController = class HostGitGuardController {
22
+ guard;
23
+ constructor(guard) {
24
+ this.guard = guard;
25
+ }
26
+ async install(id, body) {
27
+ const projectId = host_dto_1.HostProjectIdSchema.parse(id);
28
+ const request = git_guard_dto_1.VmGitGuardRequestSchema.parse(body);
29
+ return { warning: await this.guard.install(projectId, request) };
30
+ }
31
+ async remove(id, body) {
32
+ const projectId = host_dto_1.HostProjectIdSchema.parse(id);
33
+ const { refreshIndex } = git_guard_dto_1.GitGuardRemoveRequestSchema.parse(body ?? {});
34
+ return this.guard.remove(projectId, { refreshIndex, failOnReadError: true });
35
+ }
36
+ };
37
+ exports.HostGitGuardController = HostGitGuardController;
38
+ __decorate([
39
+ (0, common_1.Post)(),
40
+ (0, common_1.HttpCode)(200),
41
+ (0, swagger_1.ApiOperation)({ summary: 'Guard git on the VM while the PC owns the project' }),
42
+ (0, swagger_1.ApiOkResponse)({ description: 'The guard warning, or null when installed' }),
43
+ __param(0, (0, common_1.Param)('id')),
44
+ __param(1, (0, common_1.Body)()),
45
+ __metadata("design:type", Function),
46
+ __metadata("design:paramtypes", [String, Object]),
47
+ __metadata("design:returntype", Promise)
48
+ ], HostGitGuardController.prototype, "install", null);
49
+ __decorate([
50
+ (0, common_1.Delete)(),
51
+ (0, swagger_1.ApiOperation)({ summary: 'Remove VM git guard hooks and restore saved user hooks' }),
52
+ (0, swagger_1.ApiOkResponse)({ description: 'Guard removal and optional index rebuild outcome' }),
53
+ __param(0, (0, common_1.Param)('id')),
54
+ __param(1, (0, common_1.Body)()),
55
+ __metadata("design:type", Function),
56
+ __metadata("design:paramtypes", [String, Object]),
57
+ __metadata("design:returntype", Promise)
58
+ ], HostGitGuardController.prototype, "remove", null);
59
+ exports.HostGitGuardController = HostGitGuardController = __decorate([
60
+ (0, swagger_1.ApiTags)('Host git guard'),
61
+ (0, common_1.Controller)('api/host/projects/:id/git-guard'),
62
+ __metadata("design:paramtypes", [home_git_guard_service_1.HomeGitGuardService])
63
+ ], HostGitGuardController);
64
+ //# sourceMappingURL=host-git-guard.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-git-guard.controller.js","sourceRoot":"","sources":["../../../src/modules/file-sync/host-git-guard.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiF;AACjF,6CAAuE;AACvE,uDAA+D;AAC/D,mDAIyB;AACzB,qEAA+D;AAIxD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACJ;IAA7B,YAA6B,KAA0B;QAA1B,UAAK,GAAL,KAAK,CAAqB;IAAG,CAAC;IAMrD,AAAN,KAAK,CAAC,OAAO,CACE,EAAU,EACf,IAAa;QAErB,MAAM,SAAS,GAAG,8BAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,uCAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IACnE,CAAC;IAKK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU,EAAU,IAAa;QACzD,MAAM,SAAS,GAAG,8BAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,EAAE,YAAY,EAAE,GAAG,2CAA2B,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;CACF,CAAA;AAxBY,wDAAsB;AAO3B;IAJL,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAC;IAC9E,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;IAEzE,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,WAAA,IAAA,aAAI,GAAE,CAAA;;;;qDAKR;AAKK;IAHL,IAAA,eAAM,GAAE;IACR,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC;IACnF,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;IACrE,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAI5C;iCAvBU,sBAAsB;IAFlC,IAAA,iBAAO,EAAC,gBAAgB,CAAC;IACzB,IAAA,mBAAU,EAAC,iCAAiC,CAAC;qCAER,4CAAmB;GAD5C,sBAAsB,CAwBlC"}
@@ -0,0 +1,9 @@
1
+ import { GitService } from '../git/services/git.service';
2
+ import { FileSyncService } from './file-sync.service';
3
+ import { type GitIndexResult } from './git-guard.dto';
4
+ export declare class HostGitIndexController {
5
+ private readonly files;
6
+ private readonly git;
7
+ constructor(files: FileSyncService, git: GitService);
8
+ refresh(id: string, body: unknown): Promise<GitIndexResult>;
9
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.HostGitIndexController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const logger_1 = require("../../common/logging/logger");
19
+ const git_service_1 = require("../git/services/git.service");
20
+ const host_dto_1 = require("../remotes/host/host.dto");
21
+ const file_sync_service_1 = require("./file-sync.service");
22
+ const git_guard_dto_1 = require("./git-guard.dto");
23
+ const logger = (0, logger_1.createLogger)('HostGitIndex');
24
+ let HostGitIndexController = class HostGitIndexController {
25
+ files;
26
+ git;
27
+ constructor(files, git) {
28
+ this.files = files;
29
+ this.git = git;
30
+ }
31
+ async refresh(id, body) {
32
+ const projectId = host_dto_1.HostProjectIdSchema.parse(id);
33
+ const { since } = git_guard_dto_1.GitIndexRequestSchema.parse(body);
34
+ const root = await this.files.folderPath(projectId);
35
+ const head = await this.git.mirroredHead(projectId, root);
36
+ if (head === null || head === since)
37
+ return { head, refreshed: false, warning: null };
38
+ try {
39
+ await this.git.refreshIndexFromHead(projectId, root);
40
+ return { head, refreshed: true, warning: null };
41
+ }
42
+ catch (error) {
43
+ logger.warn({ error, projectId }, 'VM Git index rebuild failed');
44
+ const reason = error instanceof Error ? error.message : String(error);
45
+ return { head, refreshed: false, warning: `VM Git index rebuild failed: ${reason}` };
46
+ }
47
+ }
48
+ };
49
+ exports.HostGitIndexController = HostGitIndexController;
50
+ __decorate([
51
+ (0, common_1.Post)(),
52
+ (0, common_1.HttpCode)(200),
53
+ (0, swagger_1.ApiOperation)({ summary: 'Rebuild the VM Git index when mirrored HEAD changed' }),
54
+ (0, swagger_1.ApiOkResponse)({ description: 'Mirrored HEAD, whether the index was rebuilt and any warning' }),
55
+ __param(0, (0, common_1.Param)('id')),
56
+ __param(1, (0, common_1.Body)()),
57
+ __metadata("design:type", Function),
58
+ __metadata("design:paramtypes", [String, Object]),
59
+ __metadata("design:returntype", Promise)
60
+ ], HostGitIndexController.prototype, "refresh", null);
61
+ exports.HostGitIndexController = HostGitIndexController = __decorate([
62
+ (0, swagger_1.ApiTags)('Host git index'),
63
+ (0, common_1.Controller)('api/host/projects/:id/git-index'),
64
+ __metadata("design:paramtypes", [file_sync_service_1.FileSyncService,
65
+ git_service_1.GitService])
66
+ ], HostGitIndexController);
67
+ //# sourceMappingURL=host-git-index.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-git-index.controller.js","sourceRoot":"","sources":["../../../src/modules/file-sync/host-git-index.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAyE;AACzE,6CAAuE;AACvE,wDAA2D;AAC3D,6DAAyD;AACzD,uDAA+D;AAC/D,2DAAsD;AACtD,mDAA6E;AAE7E,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,cAAc,CAAC,CAAC;AAIrC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEd;IACA;IAFnB,YACmB,KAAsB,EACtB,GAAe;QADf,UAAK,GAAL,KAAK,CAAiB;QACtB,QAAG,GAAH,GAAG,CAAY;IAC/B,CAAC;IAME,AAAN,KAAK,CAAC,OAAO,CAAc,EAAU,EAAU,IAAa;QAC1D,MAAM,SAAS,GAAG,8BAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,EAAE,KAAK,EAAE,GAAG,qCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACrD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,6BAA6B,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,MAAM,EAAE,EAAE,CAAC;QACvF,CAAC;IACH,CAAC;CACF,CAAA;AAzBY,wDAAsB;AAU3B;IAJL,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,qDAAqD,EAAE,CAAC;IAChF,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,8DAA8D,EAAE,CAAC;IAChF,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;;;qDAc7C;iCAxBU,sBAAsB;IAFlC,IAAA,iBAAO,EAAC,gBAAgB,CAAC;IACzB,IAAA,mBAAU,EAAC,iCAAiC,CAAC;qCAGlB,mCAAe;QACjB,wBAAU;GAHvB,sBAAsB,CAyBlC"}
@@ -1,14 +1,27 @@
1
- import { type FolderSyncStatus, type SyncDevice, type SyncFolder } from './file-sync.dto';
1
+ import { type FolderSyncStatus, type RemoteNeed, type SyncDevice, type SyncFolder, type ForceCopyBackup, type ReceiveOnlyChanges, type SyncFolderConfiguration } from './file-sync.dto';
2
2
  import { FileSyncService } from './file-sync.service';
3
+ import { type SyncPathInspection } from './sync-path-inspection.dto';
4
+ import { SyncPathInspector } from './sync-path-inspector';
5
+ import { SyncChownService } from './sync-chown.service';
6
+ import { type SyncChownResult } from './sync-chown.dto';
3
7
  export declare class HostSyncController {
4
8
  private readonly fileSync;
5
- constructor(fileSync: FileSyncService);
9
+ private readonly inspector;
10
+ private readonly owners;
11
+ constructor(fileSync: FileSyncService, inspector: SyncPathInspector, owners: SyncChownService);
12
+ chown(body: unknown): Promise<SyncChownResult>;
13
+ inspect(body: unknown): Promise<SyncPathInspection>;
6
14
  device(): SyncDevice;
7
15
  peer(body: unknown): Promise<void>;
8
16
  folders(body: unknown): Promise<SyncFolder>;
17
+ forceCopyBackup(body: unknown): Promise<ForceCopyBackup>;
9
18
  updateFolder(id: string, body: unknown): Promise<void>;
10
19
  removeFolder(id: string): Promise<void>;
11
20
  scan(id: string): Promise<void>;
12
21
  revert(id: string): Promise<void>;
22
+ override(id: string): Promise<void>;
23
+ localChanges(id: string): Promise<ReceiveOnlyChanges>;
24
+ configuration(id: string): Promise<SyncFolderConfiguration>;
13
25
  status(query: unknown): Promise<FolderSyncStatus>;
26
+ remoteNeed(id: string, query: unknown): Promise<RemoteNeed>;
14
27
  }
@@ -14,15 +14,43 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.HostSyncController = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
17
18
  const logger_1 = require("../../common/logging/logger");
18
19
  const file_sync_dto_1 = require("./file-sync.dto");
19
20
  const file_sync_service_1 = require("./file-sync.service");
20
21
  const syncthing_rest_client_1 = require("./syncthing-rest.client");
22
+ const node_path_1 = require("node:path");
23
+ const vm_home_path_1 = require("../../common/filesystem/vm-home-path");
24
+ const sync_path_inspection_dto_1 = require("./sync-path-inspection.dto");
25
+ const sync_path_inspector_1 = require("./sync-path-inspector");
26
+ const sync_chown_service_1 = require("./sync-chown.service");
27
+ const sync_chown_dto_1 = require("./sync-chown.dto");
21
28
  const logger = (0, logger_1.createLogger)('HostSyncController');
22
29
  let HostSyncController = class HostSyncController {
23
30
  fileSync;
24
- constructor(fileSync) {
31
+ inspector;
32
+ owners;
33
+ constructor(fileSync, inspector, owners) {
25
34
  this.fileSync = fileSync;
35
+ this.inspector = inspector;
36
+ this.owners = owners;
37
+ }
38
+ chown(body) {
39
+ return this.owners.repair(sync_chown_dto_1.SyncChownRequestSchema.parse(body));
40
+ }
41
+ async inspect(body) {
42
+ const { path, scan, paths, patterns } = sync_path_inspection_dto_1.SyncInspectRequestSchema.parse(body);
43
+ await (0, vm_home_path_1.assertVmHomePath)((0, node_path_1.resolve)(path), {
44
+ code: 'FILE_SYNC_INSPECT_OUTSIDE_HOME',
45
+ message: 'Inspection paths must be under the VM home',
46
+ linkMessage: 'Inspection paths must not be links',
47
+ rejectAncestorLinks: true,
48
+ });
49
+ const [inspection, user] = await Promise.all([
50
+ this.inspector.inspect(path, scan, paths, patterns),
51
+ this.owners.user(),
52
+ ]);
53
+ return user ? { ...inspection, vmUser: user } : inspection;
26
54
  }
27
55
  device() {
28
56
  return this.fileSync.device();
@@ -37,19 +65,14 @@ let HostSyncController = class HostSyncController {
37
65
  logger.info({ projectId: request.projectId, kind: request.kind, type: request.type }, 'POST /api/host/sync/folders');
38
66
  return this.fileSync.ensureFolder(request);
39
67
  }
68
+ forceCopyBackup(body) {
69
+ return this.fileSync.forceCopyBackup(file_sync_dto_1.ForceCopyBackupRequestSchema.parse(body));
70
+ }
40
71
  async updateFolder(id, body) {
41
72
  const folderId = file_sync_dto_1.FolderIdSchema.parse(id);
42
73
  const patch = file_sync_dto_1.SyncFolderPatchSchema.parse(body);
43
74
  logger.info({ folderId, ...patch }, 'PATCH /api/host/sync/folders/:id');
44
- try {
45
- await this.fileSync.updateFolder(folderId, patch);
46
- }
47
- catch (error) {
48
- if (error instanceof syncthing_rest_client_1.SyncthingRestError && error.status === 404) {
49
- throw new common_1.NotFoundException('Sync folder not found');
50
- }
51
- throw error;
52
- }
75
+ await this.fileSync.updateFolder(folderId, patch).catch(folderNotFound);
53
76
  }
54
77
  async removeFolder(id) {
55
78
  const folderId = file_sync_dto_1.FolderIdSchema.parse(id);
@@ -64,12 +87,43 @@ let HostSyncController = class HostSyncController {
64
87
  logger.info({ folderId }, 'POST /api/host/sync/folders/:id/revert');
65
88
  await this.fileSync.revertLocalChanges(folderId);
66
89
  }
67
- status(query) {
68
- const { folder, device } = file_sync_dto_1.SyncStatusQuerySchema.parse(query);
69
- return this.fileSync.status(folder, device);
90
+ async override(id) {
91
+ await this.fileSync.override(file_sync_dto_1.FolderIdSchema.parse(id));
92
+ }
93
+ localChanges(id) {
94
+ return this.fileSync.localChanges(file_sync_dto_1.FolderIdSchema.parse(id)).catch(folderNotFound);
95
+ }
96
+ configuration(id) {
97
+ return this.fileSync.folderConfiguration(file_sync_dto_1.FolderIdSchema.parse(id)).catch(folderNotFound);
98
+ }
99
+ async status(query) {
100
+ const { folder, device, errors } = file_sync_dto_1.SyncStatusQuerySchema.parse(query);
101
+ return this.fileSync
102
+ .status(folder, device, { allErrors: errors === 'all' })
103
+ .catch(folderNotFound);
104
+ }
105
+ remoteNeed(id, query) {
106
+ const { device } = file_sync_dto_1.RemoteNeedQuerySchema.parse(query);
107
+ return this.fileSync.remoteNeed(file_sync_dto_1.FolderIdSchema.parse(id), device);
70
108
  }
71
109
  };
72
110
  exports.HostSyncController = HostSyncController;
111
+ __decorate([
112
+ (0, common_1.Post)('chown'),
113
+ (0, common_1.HttpCode)(200),
114
+ __param(0, (0, common_1.Body)()),
115
+ __metadata("design:type", Function),
116
+ __metadata("design:paramtypes", [Object]),
117
+ __metadata("design:returntype", Promise)
118
+ ], HostSyncController.prototype, "chown", null);
119
+ __decorate([
120
+ (0, common_1.Post)('inspect'),
121
+ (0, common_1.HttpCode)(200),
122
+ __param(0, (0, common_1.Body)()),
123
+ __metadata("design:type", Function),
124
+ __metadata("design:paramtypes", [Object]),
125
+ __metadata("design:returntype", Promise)
126
+ ], HostSyncController.prototype, "inspect", null);
73
127
  __decorate([
74
128
  (0, common_1.Get)('device'),
75
129
  __metadata("design:type", Function),
@@ -92,6 +146,16 @@ __decorate([
92
146
  __metadata("design:paramtypes", [Object]),
93
147
  __metadata("design:returntype", Promise)
94
148
  ], HostSyncController.prototype, "folders", null);
149
+ __decorate([
150
+ (0, common_1.Post)('force-copy-backup'),
151
+ (0, common_1.HttpCode)(200),
152
+ (0, swagger_1.ApiOperation)({ summary: 'Prepare a force-copy backup path without changing a share' }),
153
+ (0, swagger_1.ApiOkResponse)({ description: 'The backup directory on this host' }),
154
+ __param(0, (0, common_1.Body)()),
155
+ __metadata("design:type", Function),
156
+ __metadata("design:paramtypes", [Object]),
157
+ __metadata("design:returntype", Promise)
158
+ ], HostSyncController.prototype, "forceCopyBackup", null);
95
159
  __decorate([
96
160
  (0, common_1.Patch)('folders/:id'),
97
161
  (0, common_1.HttpCode)(204),
@@ -125,6 +189,34 @@ __decorate([
125
189
  __metadata("design:paramtypes", [String]),
126
190
  __metadata("design:returntype", Promise)
127
191
  ], HostSyncController.prototype, "revert", null);
192
+ __decorate([
193
+ (0, common_1.Post)('folders/:id/override'),
194
+ (0, common_1.HttpCode)(204),
195
+ (0, swagger_1.ApiOperation)({ summary: 'Override remote changes from a send-only folder' }),
196
+ (0, swagger_1.ApiNoContentResponse)(),
197
+ __param(0, (0, common_1.Param)('id')),
198
+ __metadata("design:type", Function),
199
+ __metadata("design:paramtypes", [String]),
200
+ __metadata("design:returntype", Promise)
201
+ ], HostSyncController.prototype, "override", null);
202
+ __decorate([
203
+ (0, common_1.Get)('folders/:id/local-changes'),
204
+ (0, swagger_1.ApiOperation)({ summary: 'Read the count and bounded sample of receive-only changes' }),
205
+ (0, swagger_1.ApiOkResponse)({ description: 'The change count and at most 200 names' }),
206
+ __param(0, (0, common_1.Param)('id')),
207
+ __metadata("design:type", Function),
208
+ __metadata("design:paramtypes", [String]),
209
+ __metadata("design:returntype", Promise)
210
+ ], HostSyncController.prototype, "localChanges", null);
211
+ __decorate([
212
+ (0, common_1.Get)('folders/:id/configuration'),
213
+ (0, swagger_1.ApiOperation)({ summary: 'Read folder direction, pause state and peer devices' }),
214
+ (0, swagger_1.ApiOkResponse)({ description: 'The current VM folder configuration' }),
215
+ __param(0, (0, common_1.Param)('id')),
216
+ __metadata("design:type", Function),
217
+ __metadata("design:paramtypes", [String]),
218
+ __metadata("design:returntype", Promise)
219
+ ], HostSyncController.prototype, "configuration", null);
128
220
  __decorate([
129
221
  (0, common_1.Get)('status'),
130
222
  __param(0, (0, common_1.Query)()),
@@ -132,8 +224,24 @@ __decorate([
132
224
  __metadata("design:paramtypes", [Object]),
133
225
  __metadata("design:returntype", Promise)
134
226
  ], HostSyncController.prototype, "status", null);
227
+ __decorate([
228
+ (0, common_1.Get)('folders/:id/remote-need'),
229
+ __param(0, (0, common_1.Param)('id')),
230
+ __param(1, (0, common_1.Query)()),
231
+ __metadata("design:type", Function),
232
+ __metadata("design:paramtypes", [String, Object]),
233
+ __metadata("design:returntype", Promise)
234
+ ], HostSyncController.prototype, "remoteNeed", null);
135
235
  exports.HostSyncController = HostSyncController = __decorate([
136
236
  (0, common_1.Controller)('api/host/sync'),
137
- __metadata("design:paramtypes", [file_sync_service_1.FileSyncService])
237
+ (0, swagger_1.ApiTags)('Host sync'),
238
+ __metadata("design:paramtypes", [file_sync_service_1.FileSyncService,
239
+ sync_path_inspector_1.SyncPathInspector,
240
+ sync_chown_service_1.SyncChownService])
138
241
  ], HostSyncController);
242
+ function folderNotFound(error) {
243
+ if (error instanceof syncthing_rest_client_1.SyncthingRestError && error.status === 404)
244
+ throw new common_1.NotFoundException('Sync folder not found');
245
+ throw error;
246
+ }
139
247
  //# sourceMappingURL=host-sync.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-sync.controller.js","sourceRoot":"","sources":["../../../src/modules/file-sync/host-sync.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAWwB;AACxB,wDAA2D;AAC3D,mDASyB;AACzB,2DAAsD;AAEtD,mEAA6D;AAE7D,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,oBAAoB,CAAC,CAAC;AAO3C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACA;IAA7B,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAG1D,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAIK,AAAN,KAAK,CAAC,IAAI,CAAS,IAAa;QAC9B,MAAM,IAAI,GAAG,gCAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,0BAA0B,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAID,OAAO,CAAS,IAAa;QAC3B,MAAM,OAAO,GAAG,uCAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EACxE,6BAA6B,CAC9B,CAAC;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAIK,AAAN,KAAK,CAAC,YAAY,CAAc,EAAU,EAAU,IAAa;QAC/D,MAAM,QAAQ,GAAG,8BAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,qCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,kCAAkC,CAAC,CAAC;QACxE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,0CAAkB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAChE,MAAM,IAAI,0BAAiB,CAAC,uBAAuB,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,YAAY,CAAc,EAAU;QACxC,MAAM,QAAQ,GAAG,8BAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,mCAAmC,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAIK,AAAN,KAAK,CAAC,IAAI,CAAc,EAAU;QAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,8BAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAKK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU;QAClC,MAAM,QAAQ,GAAG,8BAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,wCAAwC,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAGD,MAAM,CAAU,KAAc;QAC5B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,qCAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAvEY,gDAAkB;AAI7B;IADC,IAAA,YAAG,EAAC,QAAQ,CAAC;;;;gDAGb;AAIK;IAFL,IAAA,aAAI,EAAC,MAAM,CAAC;IACZ,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACF,WAAA,IAAA,aAAI,GAAE,CAAA;;;;8CAIjB;AAID;IAFC,IAAA,aAAI,EAAC,SAAS,CAAC;IACf,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACL,WAAA,IAAA,aAAI,GAAE,CAAA;;;;iDAOd;AAIK;IAFL,IAAA,cAAK,EAAC,aAAa,CAAC;IACpB,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACM,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;;;sDAYlD;AAIK;IAFL,IAAA,eAAM,EAAC,aAAa,CAAC;IACrB,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACM,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;sDAI9B;AAIK;IAFL,IAAA,aAAI,EAAC,kBAAkB,CAAC;IACxB,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACF,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;8CAEtB;AAKK;IAFL,IAAA,aAAI,EAAC,oBAAoB,CAAC;IAC1B,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACA,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;gDAIxB;AAGD;IADC,IAAA,YAAG,EAAC,QAAQ,CAAC;IACN,WAAA,IAAA,cAAK,GAAE,CAAA;;;;gDAGd;6BAtEU,kBAAkB;IAD9B,IAAA,mBAAU,EAAC,eAAe,CAAC;qCAEa,mCAAe;GAD3C,kBAAkB,CAuE9B"}
1
+ {"version":3,"file":"host-sync.controller.js","sourceRoot":"","sources":["../../../src/modules/file-sync/host-sync.controller.ts"],"names":[],"mappings":"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"}