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
@@ -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":"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"}
1
+ {"version":3,"file":"host-sync.controller.js","sourceRoot":"","sources":["../../../src/modules/file-sync/host-sync.controller.ts"],"names":[],"mappings":"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"}