devchain-cli 0.24.2 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (878) hide show
  1. package/README.md +11 -2
  2. package/dist/build-info.json +2 -2
  3. package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
  4. package/dist/host-install/pins.json +3 -2
  5. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +7 -4
  6. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts.map +1 -1
  7. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js +1 -0
  8. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -1
  9. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +26 -26
  10. package/dist/node_modules/@devchain/shared/schemas/host-provider-clis.d.ts +6 -6
  11. package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts +3855 -3855
  12. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  13. package/dist/server/common/config/env.config.d.ts +3 -0
  14. package/dist/server/common/config/env.config.js +7 -0
  15. package/dist/server/common/config/env.config.js.map +1 -1
  16. package/dist/server/common/config/host-image.json +3 -3
  17. package/dist/server/common/config/integration-admission.d.ts +1 -0
  18. package/dist/server/common/config/integration-admission.js +6 -2
  19. package/dist/server/common/config/integration-admission.js.map +1 -1
  20. package/dist/server/common/http/browser-request-guard.d.ts +8 -0
  21. package/dist/server/common/http/browser-request-guard.js +61 -0
  22. package/dist/server/common/http/browser-request-guard.js.map +1 -0
  23. package/dist/server/common/test/fake-docker-engine.server.d.ts +8 -0
  24. package/dist/server/common/test/fake-docker-engine.server.js +34 -1
  25. package/dist/server/common/test/fake-docker-engine.server.js.map +1 -1
  26. package/dist/server/common/test/tls-fixture.d.ts +2 -1
  27. package/dist/server/common/test/tls-fixture.js +47 -5
  28. package/dist/server/common/test/tls-fixture.js.map +1 -1
  29. package/dist/server/modules/agents/agents.module.js +1 -8
  30. package/dist/server/modules/agents/agents.module.js.map +1 -1
  31. package/dist/server/modules/agents/controllers/agents.controller.d.ts +4 -4
  32. package/dist/server/modules/agents/controllers/agents.controller.js +6 -10
  33. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
  34. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js +7 -7
  35. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js.map +1 -1
  36. package/dist/server/modules/cloud/services/cloud-session-manager.service.d.ts +12 -0
  37. package/dist/server/modules/cloud/services/cloud-session-manager.service.js +78 -9
  38. package/dist/server/modules/cloud/services/cloud-session-manager.service.js.map +1 -1
  39. package/dist/server/modules/cloud/services/notification-recipient-resolver.service.d.ts +2 -2
  40. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js +9 -3
  41. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
  42. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js +2 -2
  43. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js.map +1 -1
  44. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.d.ts +4 -4
  45. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js +6 -6
  46. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js.map +1 -1
  47. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +2 -2
  48. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
  49. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.d.ts +3 -0
  50. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +1 -0
  51. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js.map +1 -1
  52. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.d.ts +2 -2
  53. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -1
  54. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js +3 -2
  55. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js.map +1 -1
  56. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.d.ts +14 -3
  57. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +54 -14
  58. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
  59. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js.map +1 -1
  60. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.d.ts +2 -2
  61. package/dist/server/modules/core/controllers/docker-archive-owners.d.ts +29 -0
  62. package/dist/server/modules/core/controllers/docker-archive-owners.js +226 -0
  63. package/dist/server/modules/core/controllers/docker-archive-owners.js.map +1 -0
  64. package/dist/server/modules/core/controllers/docker-engine.client.d.ts +4 -0
  65. package/dist/server/modules/core/controllers/docker-engine.client.js +38 -0
  66. package/dist/server/modules/core/controllers/docker-engine.client.js.map +1 -1
  67. package/dist/server/modules/core/controllers/health.controller.d.ts +7 -6
  68. package/dist/server/modules/core/controllers/health.controller.js +1 -1
  69. package/dist/server/modules/core/controllers/health.controller.js.map +1 -1
  70. package/dist/server/modules/core/controllers/runtime.controller.d.ts +2 -56
  71. package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
  72. package/dist/server/modules/core/services/preflight.service.d.ts +2 -2
  73. package/dist/server/modules/core/services/preflight.service.js +4 -3
  74. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  75. package/dist/server/modules/e2ee/services/e2ee-device-store.service.d.ts +3 -0
  76. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +12 -4
  77. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
  78. package/dist/server/modules/e2ee/services/e2ee-pairing.service.d.ts +1 -0
  79. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js +4 -0
  80. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js.map +1 -1
  81. package/dist/server/modules/e2ee/services/e2ee-trust.service.d.ts +6 -2
  82. package/dist/server/modules/e2ee/services/e2ee-trust.service.js +16 -5
  83. package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
  84. package/dist/server/modules/epic-time/epic-time.module.js +0 -2
  85. package/dist/server/modules/epic-time/epic-time.module.js.map +1 -1
  86. package/dist/server/modules/epic-time/services/agent-time-accounting.service.d.ts +3 -3
  87. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js +12 -12
  88. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js.map +1 -1
  89. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +2 -2
  90. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
  91. package/dist/server/modules/epic-time/services/epic-time.service.d.ts +3 -3
  92. package/dist/server/modules/epic-time/services/epic-time.service.js +7 -7
  93. package/dist/server/modules/epic-time/services/epic-time.service.js.map +1 -1
  94. package/dist/server/modules/epics/epics.module.js +0 -2
  95. package/dist/server/modules/epics/epics.module.js.map +1 -1
  96. package/dist/server/modules/epics/services/epic-relations.service.d.ts +1 -4
  97. package/dist/server/modules/epics/services/epic-relations.service.js +2 -22
  98. package/dist/server/modules/epics/services/epic-relations.service.js.map +1 -1
  99. package/dist/server/modules/epics/services/epics.service.d.ts +4 -4
  100. package/dist/server/modules/epics/services/epics.service.js +11 -19
  101. package/dist/server/modules/epics/services/epics.service.js.map +1 -1
  102. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +2 -2
  103. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +3 -3
  104. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
  105. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.d.ts +2 -2
  106. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js +2 -2
  107. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js.map +1 -1
  108. package/dist/server/modules/events/catalog/on-catalog-event.d.ts +5 -0
  109. package/dist/server/modules/events/catalog/on-catalog-event.js +8 -0
  110. package/dist/server/modules/events/catalog/on-catalog-event.js.map +1 -0
  111. package/dist/server/modules/events/signals/session-turn-signals.js.map +1 -0
  112. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.d.ts +0 -5
  113. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js +8 -44
  114. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js.map +1 -1
  115. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.d.ts +0 -5
  116. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js +9 -45
  117. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js.map +1 -1
  118. package/dist/server/modules/external-integrations/adapters/vendor-shared.d.ts +7 -2
  119. package/dist/server/modules/external-integrations/adapters/vendor-shared.js +36 -0
  120. package/dist/server/modules/external-integrations/adapters/vendor-shared.js.map +1 -1
  121. package/dist/server/modules/external-integrations/connections/integration-connections.service.d.ts +2 -2
  122. package/dist/server/modules/external-integrations/connections/integration-connections.service.js.map +1 -1
  123. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -2
  124. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
  125. package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +2 -2
  126. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
  127. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.d.ts +2 -2
  128. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
  129. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.d.ts +2 -2
  130. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js.map +1 -1
  131. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.d.ts +2 -2
  132. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js.map +1 -1
  133. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js +1 -2
  134. package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js.map +1 -1
  135. package/dist/server/modules/file-sync/file-sync.dto.d.ts +19 -6
  136. package/dist/server/modules/file-sync/file-sync.dto.js +8 -1
  137. package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
  138. package/dist/server/modules/file-sync/file-sync.module.js +0 -2
  139. package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
  140. package/dist/server/modules/file-sync/file-sync.service.d.ts +3 -1
  141. package/dist/server/modules/file-sync/file-sync.service.js +8 -4
  142. package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
  143. package/dist/server/modules/file-sync/git-guard.dto.d.ts +2 -2
  144. package/dist/server/modules/file-sync/home-git-guard.service.d.ts +1 -1
  145. package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
  146. package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +4 -5
  147. package/dist/server/modules/file-sync/host-git-guard.controller.js +3 -3
  148. package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -1
  149. package/dist/server/modules/file-sync/host-git-index.controller.d.ts +3 -2
  150. package/dist/server/modules/file-sync/host-git-index.controller.js +2 -2
  151. package/dist/server/modules/file-sync/host-git-index.controller.js.map +1 -1
  152. package/dist/server/modules/file-sync/host-sync.controller.d.ts +18 -21
  153. package/dist/server/modules/file-sync/host-sync.controller.js +21 -29
  154. package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
  155. package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +3 -0
  156. package/dist/server/modules/file-sync/ignore-pattern-matcher.js +58 -14
  157. package/dist/server/modules/file-sync/ignore-pattern-matcher.js.map +1 -1
  158. package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +11 -27
  159. package/dist/server/modules/file-sync/sync-path-inspection.dto.js +1 -9
  160. package/dist/server/modules/file-sync/sync-path-inspection.dto.js.map +1 -1
  161. package/dist/server/modules/file-sync/sync-path-inspector.d.ts +1 -1
  162. package/dist/server/modules/file-sync/sync-path-inspector.js +20 -4
  163. package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -1
  164. package/dist/server/modules/file-sync/syncthing-launcher.d.ts +4 -0
  165. package/dist/server/modules/file-sync/syncthing-launcher.js +21 -1
  166. package/dist/server/modules/file-sync/syncthing-launcher.js.map +1 -1
  167. package/dist/server/modules/file-sync/syncthing-manager.service.d.ts +2 -0
  168. package/dist/server/modules/file-sync/syncthing-manager.service.js +27 -11
  169. package/dist/server/modules/file-sync/syncthing-manager.service.js.map +1 -1
  170. package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +5 -2
  171. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +3 -0
  172. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
  173. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.d.ts +3 -0
  174. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js +11 -0
  175. package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js.map +1 -1
  176. package/dist/server/modules/git/dtos/git.dto.d.ts +4 -4
  177. package/dist/server/modules/git/services/git.service.d.ts +3 -2
  178. package/dist/server/modules/git/services/git.service.js +12 -0
  179. package/dist/server/modules/git/services/git.service.js.map +1 -1
  180. package/dist/server/modules/guests/guests.module.js +1 -1
  181. package/dist/server/modules/guests/guests.module.js.map +1 -1
  182. package/dist/server/modules/guests/services/guest-health.service.d.ts +3 -1
  183. package/dist/server/modules/guests/services/guest-health.service.js +15 -5
  184. package/dist/server/modules/guests/services/guest-health.service.js.map +1 -1
  185. package/dist/server/modules/guests/services/guests.service.d.ts +2 -2
  186. package/dist/server/modules/guests/services/guests.service.js +0 -2
  187. package/dist/server/modules/guests/services/guests.service.js.map +1 -1
  188. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +4 -4
  189. package/dist/server/modules/hooks/services/hooks.service.js +1 -1
  190. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  191. package/dist/server/modules/hooks/services/pending-ask-user-question.service.d.ts +3 -6
  192. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js +3 -3
  193. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js.map +1 -1
  194. package/dist/server/modules/mcp/mcp-full.module.js +0 -2
  195. package/dist/server/modules/mcp/mcp-full.module.js.map +1 -1
  196. package/dist/server/modules/mcp/services/handlers/chat-context.d.ts +2 -2
  197. package/dist/server/modules/mcp/services/handlers/chat-tools.js +1 -1
  198. package/dist/server/modules/mcp/services/handlers/chat-tools.js.map +1 -1
  199. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +3 -4
  200. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +4 -4
  201. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
  202. package/dist/server/modules/mcp/services/mcp.service.d.ts +2 -2
  203. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  204. package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +4 -4
  205. package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
  206. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js +1 -1
  207. package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js.map +1 -1
  208. package/dist/server/modules/profiles/controllers/profiles.controller.d.ts +7 -31
  209. package/dist/server/modules/profiles/controllers/profiles.controller.js +10 -13
  210. package/dist/server/modules/profiles/controllers/profiles.controller.js.map +1 -1
  211. package/dist/server/modules/profiles/dto.d.ts +17 -0
  212. package/dist/server/modules/profiles/dto.js.map +1 -1
  213. package/dist/server/modules/profiles/profiles.module.js +1 -2
  214. package/dist/server/modules/profiles/profiles.module.js.map +1 -1
  215. package/dist/server/modules/profiles/services/provider-configs.service.d.ts +1 -4
  216. package/dist/server/modules/profiles/services/provider-configs.service.js +3 -12
  217. package/dist/server/modules/profiles/services/provider-configs.service.js.map +1 -1
  218. package/dist/server/modules/project-communication/project-communication.module.js +1 -2
  219. package/dist/server/modules/project-communication/project-communication.module.js.map +1 -1
  220. package/dist/server/modules/project-communication/project-communication.service.d.ts +4 -4
  221. package/dist/server/modules/project-communication/project-communication.service.js +8 -8
  222. package/dist/server/modules/project-communication/project-communication.service.js.map +1 -1
  223. package/dist/server/modules/projects/controllers/projects.controller.d.ts +4 -17
  224. package/dist/server/modules/projects/controllers/projects.controller.js +2 -9
  225. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  226. package/dist/server/modules/projects/dtos/project-presets.dto.d.ts +5 -0
  227. package/dist/server/modules/projects/dtos/project-presets.dto.js +3 -0
  228. package/dist/server/modules/projects/dtos/project-presets.dto.js.map +1 -0
  229. package/dist/server/modules/projects/helpers/project-export.d.ts +2 -2
  230. package/dist/server/modules/projects/helpers/project-export.js.map +1 -1
  231. package/dist/server/modules/projects/helpers/project-import.d.ts +3 -2
  232. package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
  233. package/dist/server/modules/projects/helpers/project-presets.helpers.d.ts +2 -2
  234. package/dist/server/modules/projects/helpers/project-presets.helpers.js.map +1 -1
  235. package/dist/server/modules/projects/helpers/template-loader.d.ts +3 -2
  236. package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
  237. package/dist/server/modules/projects/projects.module.js +0 -2
  238. package/dist/server/modules/projects/projects.module.js.map +1 -1
  239. package/dist/server/modules/projects/services/project-provider-provisioning.service.d.ts +2 -2
  240. package/dist/server/modules/projects/services/project-provider-provisioning.service.js.map +1 -1
  241. package/dist/server/modules/projects/services/project-registry-import.service.d.ts +2 -2
  242. package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
  243. package/dist/server/modules/projects/services/project-template-upgrade.service.d.ts +3 -3
  244. package/dist/server/modules/projects/services/project-template-upgrade.service.js +6 -7
  245. package/dist/server/modules/projects/services/project-template-upgrade.service.js.map +1 -1
  246. package/dist/server/modules/projects/services/projects.service.d.ts +4 -4
  247. package/dist/server/modules/projects/services/projects.service.js +7 -9
  248. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  249. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.d.ts +2 -2
  250. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.js.map +1 -1
  251. package/dist/server/modules/projects/template-codec/codecs/teams.codec.d.ts +2 -2
  252. package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
  253. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.d.ts +1 -1
  254. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js.map +1 -1
  255. package/dist/server/modules/projects/template-codec/template-section-codec.d.ts +3 -3
  256. package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +1 -3
  257. package/dist/server/modules/prompts/controllers/prompts.controller.js +3 -8
  258. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
  259. package/dist/server/modules/prompts/prompts.module.js +1 -2
  260. package/dist/server/modules/prompts/prompts.module.js.map +1 -1
  261. package/dist/server/modules/providers/adapters/antigravity.adapter.d.ts +1 -1
  262. package/dist/server/modules/providers/adapters/antigravity.adapter.js +2 -1
  263. package/dist/server/modules/providers/adapters/antigravity.adapter.js.map +1 -1
  264. package/dist/server/modules/providers/adapters/antigravity.traits.d.ts +2 -0
  265. package/dist/server/modules/providers/adapters/antigravity.traits.js +9 -0
  266. package/dist/server/modules/providers/adapters/antigravity.traits.js.map +1 -0
  267. package/dist/server/modules/providers/adapters/capabilities/hook.capability.d.ts +0 -1
  268. package/dist/server/modules/providers/adapters/capabilities/project-provisioning.capability.d.ts +0 -1
  269. package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +0 -1
  270. package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
  271. package/dist/server/modules/providers/adapters/claude.adapter.d.ts +1 -3
  272. package/dist/server/modules/providers/adapters/claude.adapter.js +5 -8
  273. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
  274. package/dist/server/modules/providers/adapters/claude.traits.d.ts +2 -0
  275. package/dist/server/modules/providers/adapters/claude.traits.js +9 -0
  276. package/dist/server/modules/providers/adapters/claude.traits.js.map +1 -0
  277. package/dist/server/modules/providers/adapters/codex.adapter.d.ts +1 -2
  278. package/dist/server/modules/providers/adapters/codex.adapter.js +3 -5
  279. package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
  280. package/dist/server/modules/providers/adapters/codex.traits.d.ts +2 -0
  281. package/dist/server/modules/providers/adapters/codex.traits.js +9 -0
  282. package/dist/server/modules/providers/adapters/codex.traits.js.map +1 -0
  283. package/dist/server/modules/providers/adapters/copilot.adapter.d.ts +1 -3
  284. package/dist/server/modules/providers/adapters/copilot.adapter.js +3 -6
  285. package/dist/server/modules/providers/adapters/copilot.adapter.js.map +1 -1
  286. package/dist/server/modules/providers/adapters/copilot.traits.d.ts +2 -0
  287. package/dist/server/modules/providers/adapters/copilot.traits.js +9 -0
  288. package/dist/server/modules/providers/adapters/copilot.traits.js.map +1 -0
  289. package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +1 -1
  290. package/dist/server/modules/providers/adapters/opencode.adapter.js +3 -4
  291. package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -1
  292. package/dist/server/modules/providers/adapters/opencode.traits.d.ts +2 -0
  293. package/dist/server/modules/providers/adapters/opencode.traits.js +9 -0
  294. package/dist/server/modules/providers/adapters/opencode.traits.js.map +1 -0
  295. package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +2 -2
  296. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
  297. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +2 -0
  298. package/dist/server/modules/providers/adapters/provider-traits.d.ts +9 -0
  299. package/dist/server/modules/providers/adapters/provider-traits.js +28 -0
  300. package/dist/server/modules/providers/adapters/provider-traits.js.map +1 -0
  301. package/dist/server/modules/providers/controllers/provider-efforts.controller.d.ts +9 -7
  302. package/dist/server/modules/providers/controllers/provider-efforts.controller.js.map +1 -1
  303. package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +1 -1
  304. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
  305. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.d.ts +2 -2
  306. package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.js.map +1 -1
  307. package/dist/server/modules/providers/controllers/providers.controller.d.ts +1 -1
  308. package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
  309. package/dist/server/modules/providers/provider-traits.types.d.ts +5 -0
  310. package/dist/server/modules/providers/provider-traits.types.js +3 -0
  311. package/dist/server/modules/providers/provider-traits.types.js.map +1 -0
  312. package/dist/server/modules/providers/providers.module.js +0 -2
  313. package/dist/server/modules/providers/providers.module.js.map +1 -1
  314. package/dist/server/modules/providers/services/mcp-provider-registration.service.d.ts +2 -2
  315. package/dist/server/modules/providers/services/mcp-provider-registration.service.js +2 -1
  316. package/dist/server/modules/providers/services/mcp-provider-registration.service.js.map +1 -1
  317. package/dist/server/modules/providers/services/provider-cli-installer.service.d.ts +1 -1
  318. package/dist/server/modules/providers/services/provider-cli-installer.service.js.map +1 -1
  319. package/dist/server/modules/providers/services/provider-discovery.service.d.ts +1 -1
  320. package/dist/server/modules/providers/services/provider-discovery.service.js.map +1 -1
  321. package/dist/server/modules/providers/services/provider-effort-seeding.service.d.ts +1 -1
  322. package/dist/server/modules/providers/services/provider-effort-seeding.service.js.map +1 -1
  323. package/dist/server/modules/providers/services/provider-mcp-ensure.service.d.ts +4 -4
  324. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js +8 -7
  325. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js.map +1 -1
  326. package/dist/server/modules/providers/services/provider-plugin-policy.service.d.ts +2 -2
  327. package/dist/server/modules/providers/services/provider-plugin-policy.service.js.map +1 -1
  328. package/dist/server/modules/providers/services/provider-plugins.service.d.ts +1 -1
  329. package/dist/server/modules/providers/services/provider-plugins.service.js.map +1 -1
  330. package/dist/server/modules/providers/services/provider-project-sync.service.d.ts +4 -4
  331. package/dist/server/modules/providers/services/provider-project-sync.service.js +6 -6
  332. package/dist/server/modules/providers/services/provider-project-sync.service.js.map +1 -1
  333. package/dist/server/modules/providers/services/provider-state-manager.service.d.ts +2 -2
  334. package/dist/server/modules/providers/services/provider-state-manager.service.js +1 -1
  335. package/dist/server/modules/providers/services/provider-state-manager.service.js.map +1 -1
  336. package/dist/server/modules/providers/utils/claude-config.js.map +1 -0
  337. package/dist/server/modules/providers/utils/codex-config.js.map +1 -0
  338. package/dist/server/modules/providers/utils/env-builder.js.map +1 -0
  339. package/dist/server/modules/{sessions → providers}/utils/profile-options.d.ts +1 -1
  340. package/dist/server/modules/providers/utils/profile-options.js.map +1 -0
  341. package/dist/server/modules/registry/controllers/registry.controller.d.ts +2 -2
  342. package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
  343. package/dist/server/modules/registry/controllers/templates.controller.d.ts +3 -3
  344. package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +3 -1
  345. package/dist/server/modules/registry/services/registry-orchestration.service.js +14 -2
  346. package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
  347. package/dist/server/modules/remotes/admission/project-write-admission.module.js +3 -5
  348. package/dist/server/modules/remotes/admission/project-write-admission.module.js.map +1 -1
  349. package/dist/server/modules/remotes/admission/project-write-admission.service.d.ts +6 -17
  350. package/dist/server/modules/remotes/admission/project-write-admission.service.js +11 -62
  351. package/dist/server/modules/remotes/admission/project-write-admission.service.js.map +1 -1
  352. package/dist/server/modules/remotes/contract/host-routes.d.ts +27536 -0
  353. package/dist/server/modules/remotes/contract/host-routes.js +405 -0
  354. package/dist/server/modules/remotes/contract/host-routes.js.map +1 -0
  355. package/dist/server/modules/remotes/docker/docker-compose-user-fix.d.ts +3 -0
  356. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js +212 -0
  357. package/dist/server/modules/remotes/docker/docker-compose-user-fix.js.map +1 -0
  358. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.d.ts +27 -0
  359. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js +185 -0
  360. package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js.map +1 -0
  361. package/dist/server/modules/remotes/docker/docker-copy-back.d.ts +15 -1
  362. package/dist/server/modules/remotes/docker/docker-copy-back.dto.d.ts +8 -1
  363. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js +3 -1
  364. package/dist/server/modules/remotes/docker/docker-copy-back.dto.js.map +1 -1
  365. package/dist/server/modules/remotes/docker/docker-copy-back.js +751 -149
  366. package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
  367. package/dist/server/modules/remotes/docker/docker-data-groups.d.ts +3 -3
  368. package/dist/server/modules/remotes/docker/docker-data-groups.js +20 -6
  369. package/dist/server/modules/remotes/docker/docker-data-groups.js.map +1 -1
  370. package/dist/server/modules/remotes/docker/docker-data-representation.d.ts +9 -0
  371. package/dist/server/modules/remotes/docker/docker-data-representation.js +85 -0
  372. package/dist/server/modules/remotes/docker/docker-data-representation.js.map +1 -0
  373. package/dist/server/modules/remotes/docker/docker-handoff.d.ts +7 -4
  374. package/dist/server/modules/remotes/docker/docker-handoff.js +258 -32
  375. package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
  376. package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +37 -7
  377. package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
  378. package/dist/server/modules/remotes/docker/docker-ownership.d.ts +26 -0
  379. package/dist/server/modules/remotes/docker/docker-ownership.js +182 -0
  380. package/dist/server/modules/remotes/docker/docker-ownership.js.map +1 -0
  381. package/dist/server/modules/remotes/docker/docker-plan-files.d.ts +1 -0
  382. package/dist/server/modules/remotes/docker/docker-plan-files.js +4 -0
  383. package/dist/server/modules/remotes/docker/docker-plan-files.js.map +1 -1
  384. package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +3 -3
  385. package/dist/server/modules/remotes/docker/docker-plan-fit.js +7 -2
  386. package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
  387. package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +1 -1
  388. package/dist/server/modules/remotes/docker/docker-plan-policy.js +105 -14
  389. package/dist/server/modules/remotes/docker/docker-plan-policy.js.map +1 -1
  390. package/dist/server/modules/remotes/docker/docker-plan-source.service.d.ts +7 -2
  391. package/dist/server/modules/remotes/docker/docker-plan-source.service.js +215 -14
  392. package/dist/server/modules/remotes/docker/docker-plan-source.service.js.map +1 -1
  393. package/dist/server/modules/remotes/docker/docker-plan.controller.d.ts +3 -1
  394. package/dist/server/modules/remotes/docker/docker-plan.controller.js +39 -0
  395. package/dist/server/modules/remotes/docker/docker-plan.controller.js.map +1 -1
  396. package/dist/server/modules/remotes/docker/docker-plan.dto.d.ts +112 -14
  397. package/dist/server/modules/remotes/docker/docker-plan.dto.js +11 -2
  398. package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
  399. package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +6 -3
  400. package/dist/server/modules/remotes/docker/docker-plan.service.js +207 -9
  401. package/dist/server/modules/remotes/docker/docker-plan.service.js.map +1 -1
  402. package/dist/server/modules/remotes/docker/docker-project-compose.d.ts +1 -1
  403. package/dist/server/modules/remotes/docker/docker-project-compose.js +2 -3
  404. package/dist/server/modules/remotes/docker/docker-project-compose.js.map +1 -1
  405. package/dist/server/modules/remotes/docker/docker-project-resources.d.ts +14 -0
  406. package/dist/server/modules/remotes/docker/docker-project-resources.js +33 -0
  407. package/dist/server/modules/remotes/docker/docker-project-resources.js.map +1 -0
  408. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js +3 -3
  409. package/dist/server/modules/remotes/host/host-api-key-io.adapter.js.map +1 -1
  410. package/dist/server/modules/remotes/host/host-api-key.module.js +3 -2
  411. package/dist/server/modules/remotes/host/host-api-key.module.js.map +1 -1
  412. package/dist/server/modules/remotes/host/host-api-key.service.d.ts +6 -4
  413. package/dist/server/modules/remotes/host/host-api-key.service.js +30 -10
  414. package/dist/server/modules/remotes/host/host-api-key.service.js.map +1 -1
  415. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.d.ts +14 -0
  416. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js +91 -0
  417. package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js.map +1 -0
  418. package/dist/server/modules/remotes/host/host-docker.dto.d.ts +41 -0
  419. package/dist/server/modules/remotes/host/host-docker.dto.js +12 -2
  420. package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
  421. package/dist/server/modules/remotes/host/host-docker.service.d.ts +9 -2
  422. package/dist/server/modules/remotes/host/host-docker.service.js +174 -78
  423. package/dist/server/modules/remotes/host/host-docker.service.js.map +1 -1
  424. package/dist/server/modules/remotes/host/host-helper.dto.d.ts +46 -0
  425. package/dist/server/modules/remotes/host/host-helper.dto.js +56 -0
  426. package/dist/server/modules/remotes/host/host-helper.dto.js.map +1 -0
  427. package/dist/server/modules/remotes/host/host-helper.module.d.ts +2 -0
  428. package/dist/server/modules/remotes/host/host-helper.module.js +23 -0
  429. package/dist/server/modules/remotes/host/host-helper.module.js.map +1 -0
  430. package/dist/server/modules/remotes/host/host-helper.service.d.ts +1 -39
  431. package/dist/server/modules/remotes/host/host-helper.service.js +5 -18
  432. package/dist/server/modules/remotes/host/host-helper.service.js.map +1 -1
  433. package/dist/server/modules/remotes/host/host-provider-auth.controller.d.ts +4 -2
  434. package/dist/server/modules/remotes/host/host-provider-auth.controller.js +3 -29
  435. package/dist/server/modules/remotes/host/host-provider-auth.controller.js.map +1 -1
  436. package/dist/server/modules/remotes/host/host-provider-auth.dto.d.ts +67 -0
  437. package/dist/server/modules/remotes/host/host-provider-auth.dto.js +32 -0
  438. package/dist/server/modules/remotes/host/host-provider-auth.dto.js.map +1 -0
  439. package/dist/server/modules/remotes/host/host-provider-auth.service.d.ts +1 -8
  440. package/dist/server/modules/remotes/host/host-provider-auth.service.js.map +1 -1
  441. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.d.ts +5 -37
  442. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js +5 -5
  443. package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js.map +1 -1
  444. package/dist/server/modules/remotes/host/host-skill-settings.controller.d.ts +5 -9
  445. package/dist/server/modules/remotes/host/host-skill-settings.controller.js +2 -1
  446. package/dist/server/modules/remotes/host/host-skill-settings.controller.js.map +1 -1
  447. package/dist/server/modules/remotes/host/host-skill-settings.service.d.ts +2 -2
  448. package/dist/server/modules/remotes/host/host-skill-settings.service.js.map +1 -1
  449. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js +2 -4
  450. package/dist/server/modules/remotes/host/host-ssh-keys.controller.js.map +1 -1
  451. package/dist/server/modules/remotes/host/host-ssh-keys.dto.d.ts +8 -0
  452. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js +7 -0
  453. package/dist/server/modules/remotes/host/host-ssh-keys.dto.js.map +1 -0
  454. package/dist/server/modules/remotes/host/host-transcripts.controller.d.ts +3 -2
  455. package/dist/server/modules/remotes/host/host-transcripts.controller.js +2 -1
  456. package/dist/server/modules/remotes/host/host-transcripts.controller.js.map +1 -1
  457. package/dist/server/modules/remotes/host/host-update.controller.d.ts +6 -11
  458. package/dist/server/modules/remotes/host/host-update.controller.js +5 -42
  459. package/dist/server/modules/remotes/host/host-update.controller.js.map +1 -1
  460. package/dist/server/modules/remotes/host/host.controller.d.ts +10 -14
  461. package/dist/server/modules/remotes/host/host.controller.js.map +1 -1
  462. package/dist/server/modules/remotes/host/project-freeze.service.d.ts +4 -5
  463. package/dist/server/modules/remotes/host/project-freeze.service.js +14 -20
  464. package/dist/server/modules/remotes/host/project-freeze.service.js.map +1 -1
  465. package/dist/server/modules/remotes/host/provider-baseline.service.js +1 -1
  466. package/dist/server/modules/remotes/host/provider-baseline.service.js.map +1 -1
  467. package/dist/server/modules/remotes/operations/detach.operation.d.ts +5 -1
  468. package/dist/server/modules/remotes/operations/detach.operation.js +12 -2
  469. package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
  470. package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +732 -5
  471. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +41 -5
  472. package/dist/server/modules/remotes/operations/docker-import-inventory.store.js.map +1 -1
  473. package/dist/server/modules/remotes/operations/remote-host.client.d.ts +22 -530
  474. package/dist/server/modules/remotes/operations/remote-host.client.js +145 -497
  475. package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
  476. package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +19 -12
  477. package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +2 -0
  478. package/dist/server/modules/remotes/operations/remote-operation.runner.js +22 -6
  479. package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
  480. package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +2 -2
  481. package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
  482. package/dist/server/modules/remotes/operations/update-logins.operation.d.ts +1 -1
  483. package/dist/server/modules/remotes/operations/vm-operations.dto.d.ts +7 -7
  484. package/dist/server/modules/remotes/remotes.module.js +6 -2
  485. package/dist/server/modules/remotes/remotes.module.js.map +1 -1
  486. package/dist/server/modules/remotes/services/remote-skill-settings.service.d.ts +2 -2
  487. package/dist/server/modules/remotes/services/remote-skill-settings.service.js.map +1 -1
  488. package/dist/server/modules/remotes/sync/file-sync-failures.service.js +0 -2
  489. package/dist/server/modules/remotes/sync/file-sync-failures.service.js.map +1 -1
  490. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.d.ts +4 -2
  491. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +38 -4
  492. package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js.map +1 -1
  493. package/dist/server/modules/remotes/sync/project-file-sync.controller.d.ts +0 -2
  494. package/dist/server/modules/remotes/sync/project-file-sync.controller.js +1 -15
  495. package/dist/server/modules/remotes/sync/project-file-sync.controller.js.map +1 -1
  496. package/dist/server/modules/remotes/sync/remote-file-sync.dto.d.ts +0 -2
  497. package/dist/server/modules/remotes/sync/remote-file-sync.dto.js.map +1 -1
  498. package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +5 -6
  499. package/dist/server/modules/remotes/sync/remote-file-sync.service.js +62 -121
  500. package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
  501. package/dist/server/modules/remotes/time/project-time-settler.dto.d.ts +21 -0
  502. package/dist/server/modules/remotes/time/project-time-settler.dto.js +12 -0
  503. package/dist/server/modules/remotes/time/project-time-settler.dto.js.map +1 -0
  504. package/dist/server/modules/remotes/time/project-time-settler.service.d.ts +2 -21
  505. package/dist/server/modules/remotes/time/project-time-settler.service.js +1 -9
  506. package/dist/server/modules/remotes/time/project-time-settler.service.js.map +1 -1
  507. package/dist/server/modules/remotes/transcripts/transcript-transfer.dto.d.ts +4 -4
  508. package/dist/server/modules/remotes/transport/host-transport.d.ts +27 -0
  509. package/dist/server/modules/remotes/transport/host-transport.js +105 -0
  510. package/dist/server/modules/remotes/transport/host-transport.js.map +1 -0
  511. package/dist/server/modules/remotes/vm-user-identity.d.ts +1 -0
  512. package/dist/server/modules/remotes/vm-user-identity.js +8 -1
  513. package/dist/server/modules/remotes/vm-user-identity.js.map +1 -1
  514. package/dist/server/modules/reviews/reviews.module.js +1 -9
  515. package/dist/server/modules/reviews/reviews.module.js.map +1 -1
  516. package/dist/server/modules/reviews/services/review-suggestion-applier.service.d.ts +4 -4
  517. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js +6 -6
  518. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js.map +1 -1
  519. package/dist/server/modules/reviews/services/reviews.service.d.ts +4 -4
  520. package/dist/server/modules/reviews/services/reviews.service.js +7 -12
  521. package/dist/server/modules/reviews/services/reviews.service.js.map +1 -1
  522. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js +2 -2
  523. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js.map +1 -1
  524. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.d.ts +11 -12
  525. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js +37 -25
  526. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js.map +1 -1
  527. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.d.ts +11 -9
  528. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +43 -1
  529. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
  530. package/dist/server/modules/runtime-context-capture/index.d.ts +3 -2
  531. package/dist/server/modules/runtime-context-capture/index.js.map +1 -1
  532. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.d.ts +41 -0
  533. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js +3 -0
  534. package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js.map +1 -0
  535. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js +1 -2
  536. package/dist/server/modules/scheduled-epics/scheduled-epics.module.js.map +1 -1
  537. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.d.ts +4 -4
  538. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js +6 -6
  539. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js.map +1 -1
  540. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.d.ts +2 -3
  541. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js +9 -12
  542. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js.map +1 -1
  543. package/dist/server/modules/seeders/services/data-seeder.service.d.ts +2 -3
  544. package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
  545. package/dist/server/modules/seeders/types/seeder.types.d.ts +2 -2
  546. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +1 -1
  547. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +4 -2
  548. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +3 -0
  549. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  550. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +4 -2
  551. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +3 -0
  552. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  553. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +1 -1
  554. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +2 -0
  555. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
  556. package/dist/server/modules/session-reader/data/pricing.json +1943 -1777
  557. package/dist/server/modules/session-reader/services/transcript-persistence.listener.d.ts +8 -18
  558. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +89 -172
  559. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -1
  560. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +12 -12
  561. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  562. package/dist/server/modules/session-reader/session-reader.module.js +2 -0
  563. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
  564. package/dist/server/modules/session-terminal-runtime/dtos/active-session-info.dto.js.map +1 -0
  565. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js +2 -1
  566. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js.map +1 -1
  567. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.d.ts +8 -4
  568. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js +47 -18
  569. package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js.map +1 -1
  570. package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +3 -5
  571. package/dist/server/modules/sessions/controllers/sessions.controller.js +8 -11
  572. package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
  573. package/dist/server/modules/sessions/services/active-session-lookup.service.d.ts +4 -5
  574. package/dist/server/modules/sessions/services/active-session-lookup.service.js +9 -66
  575. package/dist/server/modules/sessions/services/active-session-lookup.service.js.map +1 -1
  576. package/dist/server/modules/sessions/services/message-pool.types.d.ts +1 -1
  577. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +2 -2
  578. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +2 -2
  579. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
  580. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.d.ts +3 -5
  581. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +56 -95
  582. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -1
  583. package/dist/server/modules/sessions/services/session-launcher-facade.service.d.ts +1 -1
  584. package/dist/server/modules/sessions/services/session-launcher-facade.service.js +1 -1
  585. package/dist/server/modules/sessions/services/session-launcher-facade.service.js.map +1 -1
  586. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.d.ts +3 -3
  587. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js +8 -8
  588. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js.map +1 -1
  589. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +4 -0
  590. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +10 -2
  591. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  592. package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.d.ts +1 -1
  593. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.d.ts +7 -7
  594. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +30 -29
  595. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  596. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +4 -2
  597. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +8 -9
  598. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  599. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.d.ts +3 -3
  600. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js +7 -7
  601. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js.map +1 -1
  602. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +4 -7
  603. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +111 -211
  604. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  605. package/dist/server/modules/sessions/services/sessions.service.d.ts +8 -10
  606. package/dist/server/modules/sessions/services/sessions.service.js +26 -158
  607. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  608. package/dist/server/modules/sessions/sessions-lifecycle.module.js +2 -2
  609. package/dist/server/modules/sessions/sessions-lifecycle.module.js.map +1 -1
  610. package/dist/server/modules/sessions/sessions-read.module.js +2 -2
  611. package/dist/server/modules/sessions/sessions-read.module.js.map +1 -1
  612. package/dist/server/modules/sessions/sessions.module.js +7 -5
  613. package/dist/server/modules/sessions/sessions.module.js.map +1 -1
  614. package/dist/server/modules/settings/controllers/settings.controller.d.ts +3 -4
  615. package/dist/server/modules/settings/controllers/settings.controller.js +6 -31
  616. package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -1
  617. package/dist/server/modules/settings/dtos/settings.dto.d.ts +12 -12
  618. package/dist/server/modules/settings/local/delegates/core-settings.delegate.d.ts +5 -0
  619. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +36 -2
  620. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
  621. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.d.ts +4 -0
  622. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js +30 -23
  623. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js.map +1 -1
  624. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.d.ts +2 -0
  625. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js +2 -0
  626. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js.map +1 -1
  627. package/dist/server/modules/settings/services/settings.service.d.ts +2 -1
  628. package/dist/server/modules/settings/services/settings.service.js +8 -4
  629. package/dist/server/modules/settings/services/settings.service.js.map +1 -1
  630. package/dist/server/modules/settings/settings.module.js +1 -2
  631. package/dist/server/modules/settings/settings.module.js.map +1 -1
  632. package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +2 -2
  633. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
  634. package/dist/server/modules/skills/services/skills.service.d.ts +3 -1
  635. package/dist/server/modules/skills/services/skills.service.js +15 -2
  636. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  637. package/dist/server/modules/statuses/controllers/statuses.controller.d.ts +3 -3
  638. package/dist/server/modules/statuses/controllers/statuses.controller.js +8 -10
  639. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
  640. package/dist/server/modules/statuses/statuses.module.js +1 -2
  641. package/dist/server/modules/statuses/statuses.module.js.map +1 -1
  642. package/dist/server/modules/storage/db/db-file-permissions.d.ts +1 -0
  643. package/dist/server/modules/storage/db/db-file-permissions.js +24 -0
  644. package/dist/server/modules/storage/db/db-file-permissions.js.map +1 -0
  645. package/dist/server/modules/storage/db/db.provider.js +2 -0
  646. package/dist/server/modules/storage/db/db.provider.js.map +1 -1
  647. package/dist/server/modules/storage/db/migrate.js +2 -0
  648. package/dist/server/modules/storage/db/migrate.js.map +1 -1
  649. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +0 -1
  650. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  651. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.d.ts +2 -2
  652. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js.map +1 -1
  653. package/dist/server/modules/storage/local/delegates/agent.delegate.d.ts +2 -2
  654. package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -1
  655. package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +5 -6
  656. package/dist/server/modules/storage/local/delegates/epic.delegate.js +3 -9
  657. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
  658. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +16 -15
  659. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +13 -13
  660. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
  661. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.d.ts +11 -10
  662. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +9 -9
  663. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
  664. package/dist/server/modules/storage/local/delegates/guest.delegate.d.ts +2 -1
  665. package/dist/server/modules/storage/local/delegates/guest.delegate.js.map +1 -1
  666. package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +3 -4
  667. package/dist/server/modules/storage/local/delegates/integration.delegate.js +1 -1
  668. package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
  669. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.d.ts +3 -16
  670. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js.map +1 -1
  671. package/dist/server/modules/storage/local/delegates/project-host.delegate.d.ts +2 -2
  672. package/dist/server/modules/storage/local/delegates/project-host.delegate.js.map +1 -1
  673. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.d.ts +2 -2
  674. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js +1 -1
  675. package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js.map +1 -1
  676. package/dist/server/modules/storage/local/delegates/project-replica.delegate.d.ts +2 -2
  677. package/dist/server/modules/storage/local/delegates/project-replica.delegate.js.map +1 -1
  678. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.d.ts +2 -1
  679. package/dist/server/modules/storage/local/delegates/project-workspace.delegate.js.map +1 -1
  680. package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +4 -2
  681. package/dist/server/modules/storage/local/delegates/project.delegate.js +4 -0
  682. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  683. package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +3 -2
  684. package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -1
  685. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.d.ts +2 -1
  686. package/dist/server/modules/storage/local/delegates/provider-auth.delegate.js.map +1 -1
  687. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.d.ts +2 -1
  688. package/dist/server/modules/storage/local/delegates/provider-effort.delegate.js.map +1 -1
  689. package/dist/server/modules/storage/local/delegates/provider-model.delegate.d.ts +2 -1
  690. package/dist/server/modules/storage/local/delegates/provider-model.delegate.js.map +1 -1
  691. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.d.ts +2 -1
  692. package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.js.map +1 -1
  693. package/dist/server/modules/storage/local/delegates/provider.delegate.d.ts +3 -3
  694. package/dist/server/modules/storage/local/delegates/provider.delegate.js +9 -23
  695. package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -1
  696. package/dist/server/modules/storage/local/delegates/record.delegate.d.ts +2 -2
  697. package/dist/server/modules/storage/local/delegates/remote.delegate.d.ts +2 -2
  698. package/dist/server/modules/storage/local/delegates/remote.delegate.js.map +1 -1
  699. package/dist/server/modules/storage/local/delegates/review.delegate.d.ts +2 -2
  700. package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -1
  701. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.d.ts +2 -2
  702. package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js.map +1 -1
  703. package/dist/server/modules/storage/local/delegates/session.delegate.d.ts +2 -1
  704. package/dist/server/modules/storage/local/delegates/session.delegate.js.map +1 -1
  705. package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +7 -3
  706. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +24 -11
  707. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
  708. package/dist/server/modules/storage/local/delegates/status.delegate.d.ts +2 -2
  709. package/dist/server/modules/storage/local/delegates/subscriber.delegate.d.ts +2 -1
  710. package/dist/server/modules/storage/local/delegates/subscriber.delegate.js.map +1 -1
  711. package/dist/server/modules/storage/local/delegates/tag.delegate.d.ts +2 -2
  712. package/dist/server/modules/storage/local/delegates/watcher.delegate.d.ts +2 -1
  713. package/dist/server/modules/storage/local/delegates/watcher.delegate.js.map +1 -1
  714. package/dist/server/modules/storage/local/helpers/device-revocation-history.js.map +1 -0
  715. package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -361
  716. package/dist/server/modules/storage/local/local-storage.service.js +119 -908
  717. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  718. package/dist/server/modules/storage/local/storage-routes.d.ts +1170 -0
  719. package/dist/server/modules/storage/local/storage-routes.js +465 -0
  720. package/dist/server/modules/storage/local/storage-routes.js.map +1 -0
  721. package/dist/server/modules/storage/sessions/session-row.store.d.ts +42 -0
  722. package/dist/server/modules/storage/sessions/session-row.store.js +383 -0
  723. package/dist/server/modules/storage/sessions/session-row.store.js.map +1 -0
  724. package/dist/server/modules/storage/sessions/session-rows.module.d.ts +2 -0
  725. package/dist/server/modules/storage/sessions/session-rows.module.js +19 -0
  726. package/dist/server/modules/storage/sessions/session-rows.module.js.map +1 -0
  727. package/dist/server/modules/storage/sessions/session-transcript.types.d.ts +45 -0
  728. package/dist/server/modules/storage/sessions/session-transcript.types.js +3 -0
  729. package/dist/server/modules/storage/sessions/session-transcript.types.js.map +1 -0
  730. package/dist/server/modules/storage/storage.module.d.ts +3 -0
  731. package/dist/server/modules/storage/storage.module.js +15 -2
  732. package/dist/server/modules/storage/storage.module.js.map +1 -1
  733. package/dist/server/modules/storage/write-gate/project-write-gate.d.ts +32 -0
  734. package/dist/server/modules/storage/write-gate/project-write-gate.js +117 -0
  735. package/dist/server/modules/storage/write-gate/project-write-gate.js.map +1 -0
  736. package/dist/server/modules/storage/write-gate/storage-write-scope.d.ts +45 -0
  737. package/dist/server/modules/storage/write-gate/storage-write-scope.js +103 -0
  738. package/dist/server/modules/storage/write-gate/storage-write-scope.js.map +1 -0
  739. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.d.ts +3 -0
  740. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js +13 -0
  741. package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js.map +1 -0
  742. package/dist/server/modules/subscribers/actions/action.interface.d.ts +2 -2
  743. package/dist/server/modules/subscribers/actions/terminate-session.action.d.ts +7 -0
  744. package/dist/server/modules/subscribers/actions/terminate-session.action.js +58 -6
  745. package/dist/server/modules/subscribers/actions/terminate-session.action.js.map +1 -1
  746. package/dist/server/modules/subscribers/services/subscriber-executor.service.d.ts +5 -4
  747. package/dist/server/modules/subscribers/services/subscriber-executor.service.js +6 -6
  748. package/dist/server/modules/subscribers/services/subscriber-executor.service.js.map +1 -1
  749. package/dist/server/modules/subscribers/services/subscribers.service.d.ts +1 -3
  750. package/dist/server/modules/subscribers/services/subscribers.service.js +2 -8
  751. package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -1
  752. package/dist/server/modules/subscribers/subscribers.module.js +0 -2
  753. package/dist/server/modules/subscribers/subscribers.module.js.map +1 -1
  754. package/dist/server/modules/teams/controllers/teams.controller.d.ts +2 -2
  755. package/dist/server/modules/teams/controllers/teams.controller.js.map +1 -1
  756. package/dist/server/modules/teams/services/teams.service.d.ts +4 -4
  757. package/dist/server/modules/teams/services/teams.service.js +8 -18
  758. package/dist/server/modules/teams/services/teams.service.js.map +1 -1
  759. package/dist/server/modules/teams/services/teams.validators.d.ts +4 -4
  760. package/dist/server/modules/teams/services/teams.validators.js.map +1 -1
  761. package/dist/server/modules/teams/storage/teams.store.d.ts +4 -1
  762. package/dist/server/modules/teams/storage/teams.store.js +20 -2
  763. package/dist/server/modules/teams/storage/teams.store.js.map +1 -1
  764. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.d.ts +2 -2
  765. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js +2 -2
  766. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js.map +1 -1
  767. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js +3 -3
  768. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js.map +1 -1
  769. package/dist/server/modules/teams/teams.module.js +1 -8
  770. package/dist/server/modules/teams/teams.module.js.map +1 -1
  771. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +8 -29
  772. package/dist/server/modules/terminal/gateways/terminal.gateway.js +34 -88
  773. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  774. package/dist/server/modules/terminal/services/guest-delivery.service.js +1 -0
  775. package/dist/server/modules/terminal/services/guest-delivery.service.js.map +1 -1
  776. package/dist/server/modules/terminal/services/human-prompt-input.service.d.ts +30 -0
  777. package/dist/server/modules/terminal/services/human-prompt-input.service.js +69 -0
  778. package/dist/server/modules/terminal/services/human-prompt-input.service.js.map +1 -0
  779. package/dist/server/modules/terminal/services/human-prompt-state.service.js +3 -2
  780. package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
  781. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.d.ts +6 -0
  782. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js +23 -1
  783. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js.map +1 -1
  784. package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +4 -2
  785. package/dist/server/modules/terminal/services/terminal-activity.service.js +26 -44
  786. package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
  787. package/dist/server/modules/terminal/services/terminal-delivery.types.d.ts +1 -1
  788. package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +9 -3
  789. package/dist/server/modules/terminal/services/terminal-io/delivery.js +65 -28
  790. package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
  791. package/dist/server/modules/terminal/services/terminal-io/foreground.d.ts +7 -0
  792. package/dist/server/modules/terminal/services/terminal-io/foreground.js +35 -0
  793. package/dist/server/modules/terminal/services/terminal-io/foreground.js.map +1 -0
  794. package/dist/server/modules/terminal/services/terminal-io/monitoring.d.ts +3 -0
  795. package/dist/server/modules/terminal/services/terminal-io/monitoring.js +36 -0
  796. package/dist/server/modules/terminal/services/terminal-io/monitoring.js.map +1 -1
  797. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.d.ts +3 -0
  798. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +80 -19
  799. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
  800. package/dist/server/modules/terminal/services/terminal-io/types.d.ts +1 -0
  801. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.d.ts +6 -11
  802. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +12 -43
  803. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
  804. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js +1 -1
  805. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js.map +1 -1
  806. package/dist/server/modules/terminal/services/terminal-seed.service.js +0 -4
  807. package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
  808. package/dist/server/modules/terminal/terminal-delivery.module.js +3 -0
  809. package/dist/server/modules/terminal/terminal-delivery.module.js.map +1 -1
  810. package/dist/server/modules/terminal/terminal.module.js +2 -0
  811. package/dist/server/modules/terminal/terminal.module.js.map +1 -1
  812. package/dist/server/modules/watchers/services/watcher-runner.service.d.ts +2 -2
  813. package/dist/server/modules/watchers/services/watcher-runner.service.js +0 -3
  814. package/dist/server/modules/watchers/services/watcher-runner.service.js.map +1 -1
  815. package/dist/server/modules/watchers/services/watchers.service.d.ts +3 -3
  816. package/dist/server/modules/watchers/services/watchers.service.js +6 -9
  817. package/dist/server/modules/watchers/services/watchers.service.js.map +1 -1
  818. package/dist/server/modules/watchers/watchers.module.js +1 -8
  819. package/dist/server/modules/watchers/watchers.module.js.map +1 -1
  820. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.d.ts +2 -2
  821. package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.js.map +1 -1
  822. package/dist/server/modules/workspaces/services/workspaces.service.d.ts +3 -3
  823. package/dist/server/modules/workspaces/services/workspaces.service.js +7 -7
  824. package/dist/server/modules/workspaces/services/workspaces.service.js.map +1 -1
  825. package/dist/server/modules/workspaces/workspaces.module.js +1 -2
  826. package/dist/server/modules/workspaces/workspaces.module.js.map +1 -1
  827. package/dist/server/templates/teams-dev.json +274 -258
  828. package/dist/server/tsconfig.build.tsbuildinfo +1 -0
  829. package/dist/server/ui/assets/{ExternalRichEditor-CIZPhssf.js → ExternalRichEditor-CB-LjWox.js} +1 -1
  830. package/dist/server/ui/assets/{ReviewDetailPage-winyLSQ7.js → ReviewDetailPage-CpMMjYet.js} +1 -1
  831. package/dist/server/ui/assets/{ReviewsPage-BYKBReMp.js → ReviewsPage-Cw17_agp.js} +1 -1
  832. package/dist/server/ui/assets/index-BwuNu70G.css +32 -0
  833. package/dist/server/ui/assets/index-DmRXRpSy.js +1192 -0
  834. package/dist/server/ui/assets/{useReviewSubscription-v3Cto0y4.js → useReviewSubscription-wd5iHNQy.js} +26 -26
  835. package/dist/server/ui/index.html +2 -2
  836. package/dist/templates/teams-dev.json +274 -258
  837. package/package.json +11 -347
  838. package/dist/server/common/test/remote-project.fixture.d.ts +0 -32
  839. package/dist/server/common/test/remote-project.fixture.js +0 -328
  840. package/dist/server/common/test/remote-project.fixture.js.map +0 -1
  841. package/dist/server/common/test/two-instance.fixture.d.ts +0 -48
  842. package/dist/server/common/test/two-instance.fixture.js +0 -269
  843. package/dist/server/common/test/two-instance.fixture.js.map +0 -1
  844. package/dist/server/modules/e2ee/services/device-revocation-history.js.map +0 -1
  845. package/dist/server/modules/file-sync/sync-chown.dto.d.ts +0 -99
  846. package/dist/server/modules/file-sync/sync-chown.dto.js +0 -46
  847. package/dist/server/modules/file-sync/sync-chown.dto.js.map +0 -1
  848. package/dist/server/modules/file-sync/sync-chown.service.d.ts +0 -12
  849. package/dist/server/modules/file-sync/sync-chown.service.js +0 -230
  850. package/dist/server/modules/file-sync/sync-chown.service.js.map +0 -1
  851. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +0 -5
  852. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +0 -8
  853. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +0 -1
  854. package/dist/server/modules/session-reader/services/transcript-turn-state.d.ts +0 -4
  855. package/dist/server/modules/session-reader/services/transcript-turn-state.js +0 -20
  856. package/dist/server/modules/session-reader/services/transcript-turn-state.js.map +0 -1
  857. package/dist/server/modules/sessions/dtos/active-session-info.dto.js.map +0 -1
  858. package/dist/server/modules/sessions/utils/claude-config.js.map +0 -1
  859. package/dist/server/modules/sessions/utils/codex-config.js.map +0 -1
  860. package/dist/server/modules/sessions/utils/env-builder.js.map +0 -1
  861. package/dist/server/modules/sessions/utils/profile-options.js.map +0 -1
  862. package/dist/server/modules/terminal/services/session-turn-signals.js.map +0 -1
  863. package/dist/server/tsconfig.tsbuildinfo +0 -1
  864. package/dist/server/ui/assets/index-CiDJX6Hn.js +0 -1191
  865. package/dist/server/ui/assets/index-f1WOAqXB.css +0 -32
  866. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.d.ts +0 -0
  867. /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.js +0 -0
  868. /package/dist/server/modules/{sessions → providers}/utils/claude-config.d.ts +0 -0
  869. /package/dist/server/modules/{sessions → providers}/utils/claude-config.js +0 -0
  870. /package/dist/server/modules/{sessions → providers}/utils/codex-config.d.ts +0 -0
  871. /package/dist/server/modules/{sessions → providers}/utils/codex-config.js +0 -0
  872. /package/dist/server/modules/{sessions → providers}/utils/env-builder.d.ts +0 -0
  873. /package/dist/server/modules/{sessions → providers}/utils/env-builder.js +0 -0
  874. /package/dist/server/modules/{sessions → providers}/utils/profile-options.js +0 -0
  875. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.d.ts +0 -0
  876. /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.js +0 -0
  877. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.d.ts +0 -0
  878. /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.js +0 -0
@@ -14,91 +14,47 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.RemoteHostClient = exports.RemoteHostRequestError = void 0;
16
16
  exports.dialAddress = dialAddress;
17
- const remote_api_key_service_1 = require("../auth/remote-api-key.service");
18
- const shared_1 = require("@devchain/shared");
17
+ const common_1 = require("@nestjs/common");
19
18
  const node_stream_1 = require("node:stream");
19
+ const env_config_1 = require("../../../common/config/env.config");
20
+ const error_types_1 = require("../../../common/errors/error-types");
21
+ const storage_interface_1 = require("../../storage/interfaces/storage.interface");
20
22
  const docker_engine_client_1 = require("../../core/controllers/docker-engine.client");
21
23
  const host_docker_dto_1 = require("../host/host-docker.dto");
22
24
  const transcript_files_service_1 = require("../transcripts/transcript-files.service");
23
25
  const transcript_transfer_dto_1 = require("../transcripts/transcript-transfer.dto");
24
- const common_1 = require("@nestjs/common");
25
- const zod_1 = require("zod");
26
- const git_owner_dto_1 = require("./git-owner.dto");
27
- const vm_user_identity_1 = require("../vm-user-identity");
28
- const shared_2 = require("@devchain/shared");
29
- const env_config_1 = require("../../../common/config/env.config");
30
- const error_types_1 = require("../../../common/errors/error-types");
31
- const storage_interface_1 = require("../../storage/interfaces/storage.interface");
32
- const project_time_settler_service_1 = require("../time/project-time-settler.service");
33
- const file_sync_dto_1 = require("../../file-sync/file-sync.dto");
34
- const file_sync_service_1 = require("../../file-sync/file-sync.service");
35
- const sync_chown_dto_1 = require("../../file-sync/sync-chown.dto");
36
- const sync_path_inspection_dto_1 = require("../../file-sync/sync-path-inspection.dto");
37
- const git_guard_dto_1 = require("../../file-sync/git-guard.dto");
38
- const docker_runtime_1 = require("../../core/controllers/docker-runtime");
39
- const host_helper_service_1 = require("../host/host-helper.service");
40
- const remote_address_1 = require("../remote-address");
26
+ const remote_api_key_service_1 = require("../auth/remote-api-key.service");
41
27
  const remote_tls_1 = require("../transport/remote-tls");
42
28
  const remote_discovery_1 = require("../transport/remote-discovery");
43
- const CONTROL_TIMEOUT_MS = 15_000;
44
- const REPLICA_TIMEOUT_MS = 120_000;
45
- const RUNTIME_TIMEOUT_MS = 5_000;
46
- const CLAIM_TIMEOUT_MS = 45 * 60_000;
47
- const VERIFY_TIMEOUT_MS = 100_000;
48
- const HostRuntimeSchema = zod_1.z
49
- .object({
50
- state: zod_1.z.string().optional(),
51
- bootId: zod_1.z.string().optional(),
52
- docker: docker_runtime_1.DockerRuntimeSchema.optional(),
53
- version: zod_1.z.string().nullable().optional(),
54
- homePath: zod_1.z.string().nullable().optional(),
55
- uid: zod_1.z.number().nullable().optional(),
56
- gid: zod_1.z.number().nullable().optional(),
57
- requestedUid: zod_1.z.number().int().optional(),
58
- requestedGid: zod_1.z.number().int().optional(),
59
- primaryGroup: zod_1.z.string().optional(),
60
- uidConflict: vm_user_identity_1.VmUidConflictSchema.optional(),
61
- imageVersion: zod_1.z.string().nullable().optional(),
62
- cliVersions: zod_1.z.record(zod_1.z.string()).nullable().optional(),
63
- })
64
- .passthrough();
65
- const HostProviderVerifySchema = zod_1.z.object({
66
- ok: zod_1.z.boolean(),
67
- summary: zod_1.z.string(),
68
- hint: zod_1.z.string().nullable(),
69
- });
70
- const HostUpdateStatusBodySchema = zod_1.z.object({
71
- status: host_helper_service_1.HostUpdateStatusSchema.omit({ at: true }).passthrough().nullable(),
72
- });
73
- const FrozenProjectSchema = zod_1.z.object({
74
- projectId: zod_1.z.string(),
75
- frozenAt: zod_1.z.string(),
76
- });
77
- const EpicIdSchema = zod_1.z.object({ epicId: zod_1.z.string().min(1) });
78
- const CreatedEpicSchema = zod_1.z.object({ id: zod_1.z.string().min(1) });
79
- class RemoteHostRequestError extends error_types_1.AppError {
80
- constructor(message, details) {
81
- super(message, 'REMOTE_HOST_REQUEST_FAILED', 502, details);
82
- }
83
- get status() {
84
- return this.details?.status ?? null;
85
- }
86
- }
87
- exports.RemoteHostRequestError = RemoteHostRequestError;
29
+ const host_routes_1 = require("../contract/host-routes");
30
+ const host_transport_1 = require("../transport/host-transport");
31
+ var host_transport_2 = require("../transport/host-transport");
32
+ Object.defineProperty(exports, "RemoteHostRequestError", { enumerable: true, get: function () { return host_transport_2.RemoteHostRequestError; } });
88
33
  let RemoteHostClient = class RemoteHostClient {
89
34
  storage;
90
35
  apiKeys;
91
36
  runtimeTimeoutMs;
92
- constructor(storage, apiKeys, runtimeTimeoutMs = RUNTIME_TIMEOUT_MS) {
37
+ constructor(storage, apiKeys, runtimeTimeoutMs = host_routes_1.RUNTIME_TIMEOUT_MS) {
93
38
  this.storage = storage;
94
39
  this.apiKeys = apiKeys;
95
40
  this.runtimeTimeoutMs = runtimeTimeoutMs;
96
41
  }
97
- async dockerClient(remoteId, options) {
42
+ async target(remoteId) {
98
43
  const remote = await this.storage.getRemote(remoteId);
99
- const { baseUrl, certificate } = (0, remote_tls_1.requireRemoteTls)(remote);
44
+ return {
45
+ ...(0, remote_tls_1.requireRemoteTls)(remote),
46
+ apiKey: await this.apiKeys.get(remoteId),
47
+ label: `Remote "${remote.name}"`,
48
+ remoteId,
49
+ };
50
+ }
51
+ async call(remoteId, route, params, options) {
52
+ return (0, host_transport_1.send)(await this.target(remoteId), route, params, options);
53
+ }
54
+ async dockerClient(remoteId, options) {
55
+ const { baseUrl, certificate, apiKey } = await this.target(remoteId);
100
56
  return docker_engine_client_1.DockerEngineClient.forHttp(baseUrl, (0, remote_tls_1.pinnedTlsOptions)(certificate), {
101
- ...(await this.apiKeys.headers(remoteId)),
57
+ ...(0, remote_api_key_service_1.remoteAuthorization)(apiKey),
102
58
  ...(options.apiVersion ? { [host_docker_dto_1.DOCKER_API_VERSION_HEADER]: options.apiVersion } : {}),
103
59
  });
104
60
  }
@@ -109,7 +65,7 @@ let RemoteHostClient = class RemoteHostClient {
109
65
  catch (error) {
110
66
  const status = error instanceof docker_engine_client_1.DockerEngineError ? (error.status ?? null) : null;
111
67
  const reason = error instanceof docker_engine_client_1.DockerEngineError ? error.reason : undefined;
112
- throw new RemoteHostRequestError(`Docker host request failed${status ? ` (HTTP ${status})` : ''}${reason ? `: ${reason}` : ''}`, {
68
+ throw new host_transport_1.RemoteHostRequestError(`Docker host request failed${status ? ` (HTTP ${status})` : ''}${reason ? `: ${reason}` : ''}`, {
113
69
  remoteId,
114
70
  path: '/api/host/docker',
115
71
  status,
@@ -210,15 +166,10 @@ let RemoteHostClient = class RemoteHostClient {
210
166
  return this.dockerJson(remoteId, 'GET', '/api/host/docker/version', undefined, options);
211
167
  }
212
168
  async listTranscripts(remoteId, refs) {
213
- const response = await this.request(remoteId, '/api/host/transcripts/list', {
214
- method: 'POST',
215
- body: JSON.stringify({ refs }),
216
- expect: [200],
217
- });
218
- return parseBody(transcript_transfer_dto_1.TranscriptListingSchema, response, remoteId, '/api/host/transcripts/list');
169
+ return (await this.call(remoteId, host_routes_1.hostRoutes.listTranscripts, {}, { body: { refs } })).body;
219
170
  }
220
171
  async uploadTranscript(remoteId, file, files, signal) {
221
- await this.transferTranscript(remoteId, file, signal, async (send, transferSignal) => {
172
+ await this.transferTranscript(remoteId, file, signal, async (fetchTranscript, transferSignal) => {
222
173
  const { stream, size } = await files.read(file);
223
174
  try {
224
175
  (0, transcript_files_service_1.assertTranscriptSize)(size);
@@ -228,18 +179,17 @@ let RemoteHostClient = class RemoteHostClient {
228
179
  duplex: 'half',
229
180
  signal: transferSignal,
230
181
  headers: {
231
- ...(await this.apiKeys.headers(remoteId)),
232
182
  'content-type': 'application/octet-stream',
233
183
  'content-length': String(size),
234
184
  },
235
185
  };
236
- const response = await send(init);
186
+ const response = await fetchTranscript(init);
237
187
  try {
238
188
  if (response.status !== 204)
239
189
  throw new Error(`Transcript upload answered ${response.status}`);
240
190
  }
241
191
  finally {
242
- await discardBody(response);
192
+ await (0, host_transport_1.discardBody)(response);
243
193
  }
244
194
  }
245
195
  finally {
@@ -248,10 +198,9 @@ let RemoteHostClient = class RemoteHostClient {
248
198
  });
249
199
  }
250
200
  async downloadTranscript(remoteId, file, files, signal) {
251
- await this.transferTranscript(remoteId, file, signal, async (send, transferSignal) => {
252
- const response = await send({
201
+ await this.transferTranscript(remoteId, file, signal, async (fetchTranscript, transferSignal) => {
202
+ const response = await fetchTranscript({
253
203
  signal: transferSignal,
254
- headers: await this.apiKeys.headers(remoteId),
255
204
  });
256
205
  try {
257
206
  if (response.status !== 200)
@@ -270,12 +219,12 @@ let RemoteHostClient = class RemoteHostClient {
270
219
  }
271
220
  }
272
221
  finally {
273
- await discardBody(response);
222
+ await (0, host_transport_1.discardBody)(response);
274
223
  }
275
224
  });
276
225
  }
277
226
  async transferTranscript(remoteId, file, signal, transfer) {
278
- const { baseUrl, certificate } = (0, remote_tls_1.requireRemoteTls)(await this.storage.getRemote(remoteId));
227
+ const { baseUrl, certificate, apiKey } = await this.target(remoteId);
279
228
  const path = `/api/host/transcripts?${new URLSearchParams(file).toString()}`;
280
229
  const controller = new AbortController();
281
230
  const abort = () => controller.abort();
@@ -287,10 +236,16 @@ let RemoteHostClient = class RemoteHostClient {
287
236
  try {
288
237
  controller.signal.throwIfAborted();
289
238
  const url = `${baseUrl.replace(/\/+$/, '')}${path}`;
290
- await transfer((init) => (0, remote_tls_1.remoteFetch)(url, init, certificate), controller.signal);
239
+ await transfer((init) => (0, remote_tls_1.remoteFetch)(url, {
240
+ ...init,
241
+ headers: {
242
+ ...(0, remote_api_key_service_1.remoteAuthorization)(apiKey),
243
+ ...init.headers,
244
+ },
245
+ }, certificate), controller.signal);
291
246
  }
292
247
  catch (error) {
293
- throw new RemoteHostRequestError(`Transcript transfer failed: ${error instanceof Error ? error.message : String(error)}`, { remoteId, path, status: null, hostCode: null });
248
+ throw new host_transport_1.RemoteHostRequestError(`Transcript transfer failed: ${error instanceof Error ? error.message : String(error)}`, { remoteId, path, status: null, hostCode: null });
294
249
  }
295
250
  finally {
296
251
  clearTimeout(timer);
@@ -298,48 +253,33 @@ let RemoteHostClient = class RemoteHostClient {
298
253
  }
299
254
  }
300
255
  async projectExists(remoteId, projectId) {
301
- const response = await this.request(remoteId, `/api/projects/${enc(projectId)}`, {
302
- method: 'GET',
303
- expect: [200, 404],
304
- });
305
- await discardBody(response);
256
+ const response = await this.call(remoteId, host_routes_1.hostRoutes.projectExists, { projectId });
306
257
  return response.status === 200;
307
258
  }
308
259
  async importProject(remoteId, replica) {
309
- const response = await this.request(remoteId, '/api/host/projects/import', {
310
- method: 'POST',
311
- body: JSON.stringify(replica),
312
- contentType: shared_2.PROJECT_REPLICA_CONTENT_TYPE,
313
- timeoutMs: REPLICA_TIMEOUT_MS,
314
- expect: [201, 409],
315
- });
260
+ const response = await this.call(remoteId, host_routes_1.hostRoutes.importProject, {}, { body: replica });
316
261
  if (response.status === 409) {
317
- const code = await readErrorCode(response);
262
+ const code = response.body;
318
263
  if (code !== 'PROJECT_EXISTS') {
319
- throw new RemoteHostRequestError('Host refused the project import.', {
264
+ throw new host_transport_1.RemoteHostRequestError('Host refused the project import.', {
320
265
  remoteId,
321
- path: '/api/host/projects/import',
266
+ path: host_routes_1.hostRoutes.importProject.path({}),
322
267
  status: 409,
323
268
  hostCode: code,
324
269
  });
325
270
  }
326
271
  return { imported: false, reason: 'PROJECT_EXISTS' };
327
272
  }
328
- const result = shared_2.ProjectReplicaImportResultSchema.parse(await response.json());
329
- return { imported: true, cursor: result.cursor };
273
+ return { imported: true, cursor: response.body.cursor };
330
274
  }
331
275
  async exportReplica(remoteId, projectId, scope) {
332
- const path = `/api/host/projects/${enc(projectId)}/replica?scope=${scope}`;
333
- const response = await this.request(remoteId, path, {
334
- method: 'GET',
335
- timeoutMs: REPLICA_TIMEOUT_MS,
336
- expect: [200],
337
- });
338
- const replica = shared_2.ProjectReplicaV1Schema.parse(await response.json());
276
+ const params = { projectId, scope };
277
+ const response = await this.call(remoteId, host_routes_1.hostRoutes.exportReplica, params);
278
+ const replica = response.body;
339
279
  if (replica.scope !== scope) {
340
- throw new RemoteHostRequestError('Host returned a replica of the wrong scope.', {
280
+ throw new host_transport_1.RemoteHostRequestError('Host returned a replica of the wrong scope.', {
341
281
  remoteId,
342
- path,
282
+ path: host_routes_1.hostRoutes.exportReplica.path(params),
343
283
  status: response.status,
344
284
  hostCode: null,
345
285
  });
@@ -347,264 +287,120 @@ let RemoteHostClient = class RemoteHostClient {
347
287
  return replica;
348
288
  }
349
289
  async changes(remoteId, projectId, options) {
350
- const query = new URLSearchParams();
351
- if (options.since)
352
- query.set('since', options.since);
353
- if (options.full)
354
- query.set('full', 'true');
355
- const queryString = query.toString();
356
- const suffix = queryString ? `?${queryString}` : '';
357
- const response = await this.request(remoteId, `/api/host/projects/${enc(projectId)}/changes${suffix}`, { method: 'GET', timeoutMs: REPLICA_TIMEOUT_MS, expect: [200] });
358
- return shared_2.ProjectReplicaChangesSchema.parse(await response.json());
290
+ return (await this.call(remoteId, host_routes_1.hostRoutes.changes, { projectId, ...options })).body;
359
291
  }
360
292
  async freeze(remoteId, projectId) {
361
- const path = `/api/host/projects/${enc(projectId)}/freeze`;
362
- const response = await this.request(remoteId, path, {
363
- method: 'POST',
364
- expect: [200],
365
- });
366
- const body = await response.json().catch(() => null);
367
- const parsed = FrozenProjectSchema.safeParse(body);
368
- if (!parsed.success) {
369
- throw new RemoteHostRequestError('Host returned an invalid freeze answer.', {
370
- remoteId,
371
- path,
372
- status: response.status,
373
- hostCode: null,
374
- });
375
- }
376
- return parsed.data;
293
+ return (await this.call(remoteId, host_routes_1.hostRoutes.freeze, { projectId })).body;
377
294
  }
378
295
  async installGitGuard(remoteId, projectId, request) {
379
- const path = `/api/host/projects/${enc(projectId)}/git-guard`;
380
- const response = await this.request(remoteId, path, {
381
- method: 'POST',
382
- body: JSON.stringify(request),
383
- expect: [200],
384
- });
385
- return parseBody(git_guard_dto_1.GitGuardInstallResultSchema, response, remoteId, path);
296
+ return (await this.call(remoteId, host_routes_1.hostRoutes.installGitGuard, { projectId }, { body: request }))
297
+ .body;
386
298
  }
387
299
  async removeGitGuard(remoteId, projectId, options = {}) {
388
- const path = `/api/host/projects/${enc(projectId)}/git-guard`;
389
- const response = await this.request(remoteId, path, {
390
- method: 'DELETE',
300
+ return (await this.call(remoteId, host_routes_1.hostRoutes.removeGitGuard, { projectId }, {
391
301
  ...(options.refreshIndex !== undefined && {
392
- body: JSON.stringify({ refreshIndex: options.refreshIndex }),
302
+ body: { refreshIndex: options.refreshIndex },
393
303
  }),
394
- ...(options.refreshIndex && { timeoutMs: REPLICA_TIMEOUT_MS }),
395
- expect: [200],
396
- });
397
- return parseBody(git_guard_dto_1.GitGuardRemoveResultSchema, response, remoteId, path);
304
+ ...(options.refreshIndex && { timeoutMs: host_routes_1.REPLICA_TIMEOUT_MS }),
305
+ })).body;
398
306
  }
399
307
  async refreshGitIndex(remoteId, projectId, since) {
400
- const path = `/api/host/projects/${enc(projectId)}/git-index`;
401
- const response = await this.request(remoteId, path, {
402
- method: 'POST',
403
- body: JSON.stringify({ since }),
404
- timeoutMs: REPLICA_TIMEOUT_MS,
405
- expect: [200],
406
- });
407
- return parseBody(git_guard_dto_1.GitIndexResultSchema, response, remoteId, path);
308
+ return (await this.call(remoteId, host_routes_1.hostRoutes.refreshGitIndex, { projectId }, { body: { since } })).body;
408
309
  }
409
310
  async thaw(remoteId, projectId) {
410
- const response = await this.request(remoteId, `/api/host/projects/${enc(projectId)}/thaw`, {
411
- method: 'POST',
412
- expect: [204],
413
- });
414
- await discardBody(response);
311
+ await this.call(remoteId, host_routes_1.hostRoutes.thaw, { projectId });
415
312
  }
416
313
  async listSessions(remoteId, projectId, options = {}) {
417
- const path = `/api/sessions${projectId ? `?${new URLSearchParams({ projectId })}` : ''}`;
418
- const response = await this.request(remoteId, path, {
419
- method: 'GET',
420
- ...(options.timeoutMs !== undefined && { timeoutMs: options.timeoutMs }),
421
- expect: [200],
422
- });
423
- return parseBody(zod_1.z.array(git_owner_dto_1.RemoteSessionSchema), response, remoteId, path);
314
+ return (await this.call(remoteId, host_routes_1.hostRoutes.listSessions, { projectId }, options)).body;
424
315
  }
425
316
  async stopSessions(remoteId, projectId) {
426
- const response = await this.request(remoteId, `/api/host/projects/${enc(projectId)}/stop-sessions`, { method: 'POST', expect: [204] });
427
- await discardBody(response);
317
+ await this.call(remoteId, host_routes_1.hostRoutes.stopSessions, { projectId });
428
318
  }
429
319
  async settleTime(remoteId, projectId) {
430
- const response = await this.request(remoteId, `/api/host/projects/${enc(projectId)}/settle-time`, {
431
- method: 'POST',
432
- timeoutMs: (0, env_config_1.getEnvConfig)().REMOTES_TIME_SETTLE_TIMEOUT_MS + CONTROL_TIMEOUT_MS,
433
- expect: [200],
434
- });
435
- return project_time_settler_service_1.ProjectTimeSettlementSchema.parse(await response.json());
320
+ return (await this.call(remoteId, host_routes_1.hostRoutes.settleTime, { projectId }, {
321
+ timeoutMs: (0, env_config_1.getEnvConfig)().REMOTES_TIME_SETTLE_TIMEOUT_MS + host_routes_1.CONTROL_TIMEOUT_MS,
322
+ })).body;
436
323
  }
437
324
  async release(remoteId, projectId) {
438
- const response = await this.request(remoteId, `/api/host/projects/${enc(projectId)}/release`, {
439
- method: 'POST',
440
- expect: [204, 404],
441
- });
442
- await discardBody(response);
325
+ await this.call(remoteId, host_routes_1.hostRoutes.release, { projectId });
443
326
  }
444
327
  async findEpicByIdempotencyKey(remoteId, projectId, key) {
445
- const path = `/api/host/projects/${enc(projectId)}/epics/by-idempotency-key/${enc(key)}`;
446
- const response = await this.request(remoteId, path, { method: 'GET', expect: [200, 404] });
447
- if (response.status === 404) {
448
- await discardBody(response);
449
- return null;
450
- }
451
- return (await parseBody(EpicIdSchema, response, remoteId, path)).epicId;
328
+ const response = await this.call(remoteId, host_routes_1.hostRoutes.findEpicByIdempotencyKey, {
329
+ projectId,
330
+ key,
331
+ });
332
+ return response.status === 404 ? null : response.body.epicId;
452
333
  }
453
334
  async createEpic(remoteId, epic) {
454
- const path = '/api/epics';
455
- const response = await this.request(remoteId, path, {
456
- method: 'POST',
457
- body: JSON.stringify(epic),
458
- expect: [201, 423],
459
- });
335
+ const response = await this.call(remoteId, host_routes_1.hostRoutes.createEpic, {}, { body: epic });
460
336
  if (response.status === 423) {
461
- const hostCode = await readErrorCode(response);
462
337
  throw new error_types_1.ConflictError('The remote project is locked for a handoff; try again shortly.', {
463
338
  code: 'REMOTE_PROJECT_LOCKED',
464
339
  retryable: true,
465
340
  remoteId,
466
341
  projectId: epic.projectId,
467
- hostCode,
342
+ hostCode: response.body,
468
343
  });
469
344
  }
470
- return { id: (await parseBody(CreatedEpicSchema, response, remoteId, path)).id };
345
+ return { id: response.body.id };
471
346
  }
472
347
  async syncDevice(remoteId) {
473
- const remote = await this.storage.getRemote(remoteId);
474
- const path = '/api/host/sync/device';
475
- const response = await this.request(remoteId, path, { method: 'GET', expect: [200] });
476
- const device = await parseBody(file_sync_dto_1.SyncDeviceSchema, response, remoteId, path);
477
- return {
478
- deviceId: device.deviceId,
479
- address: dialAddress(device.address, (0, remote_address_1.requireRemoteAddress)(remote)),
480
- };
348
+ const target = await this.target(remoteId);
349
+ const device = (await (0, host_transport_1.send)(target, host_routes_1.hostRoutes.syncDevice, {})).body;
350
+ return { deviceId: device.deviceId, address: dialAddress(device.address, target.baseUrl) };
481
351
  }
482
352
  async syncPeer(remoteId, peer) {
483
- const response = await this.request(remoteId, '/api/host/sync/peer', {
484
- method: 'POST',
485
- body: JSON.stringify(peer),
486
- expect: [204],
487
- });
488
- await discardBody(response);
353
+ await this.call(remoteId, host_routes_1.hostRoutes.syncPeer, {}, { body: peer });
489
354
  }
490
355
  async syncFolders(remoteId, folder) {
491
- const path = '/api/host/sync/folders';
492
- const response = await this.request(remoteId, path, {
493
- method: 'POST',
494
- body: JSON.stringify(folder),
495
- expect: [200],
496
- });
497
- return parseBody(file_sync_dto_1.SyncFolderSchema, response, remoteId, path);
356
+ return (await this.call(remoteId, host_routes_1.hostRoutes.syncFolders, {}, { body: folder })).body;
498
357
  }
499
358
  async syncForceCopyBackup(remoteId, request) {
500
- const path = '/api/host/sync/force-copy-backup';
501
- const response = await this.request(remoteId, path, {
502
- method: 'POST',
503
- body: JSON.stringify(request),
504
- expect: [200],
505
- });
506
- return parseBody(file_sync_dto_1.ForceCopyBackupSchema, response, remoteId, path);
359
+ return (await this.call(remoteId, host_routes_1.hostRoutes.syncForceCopyBackup, {}, { body: request })).body;
507
360
  }
508
361
  async syncFolderType(remoteId, folderId, patch) {
509
- const response = await this.request(remoteId, `/api/host/sync/folders/${enc(folderId)}`, {
510
- method: 'PATCH',
511
- body: JSON.stringify(patch),
512
- expect: [204],
513
- });
514
- await discardBody(response);
362
+ await this.call(remoteId, host_routes_1.hostRoutes.syncFolderType, { folderId }, { body: patch });
515
363
  }
516
364
  async syncFolderConfiguration(remoteId, folderId) {
517
- const path = `/api/host/sync/folders/${enc(folderId)}/configuration`;
518
- const response = await this.request(remoteId, path, { method: 'GET', expect: [200] });
519
- return parseBody(file_sync_dto_1.SyncFolderConfigurationSchema, response, remoteId, path);
365
+ return (await this.call(remoteId, host_routes_1.hostRoutes.syncFolderConfiguration, { folderId })).body;
366
+ }
367
+ async syncFolderIgnores(remoteId, folderId) {
368
+ return (await this.call(remoteId, host_routes_1.hostRoutes.syncFolderIgnores, { folderId })).body;
520
369
  }
521
370
  async syncRemoveFolder(remoteId, folderId) {
522
- const response = await this.request(remoteId, `/api/host/sync/folders/${enc(folderId)}`, {
523
- method: 'DELETE',
524
- expect: [204],
525
- });
526
- await discardBody(response);
371
+ await this.call(remoteId, host_routes_1.hostRoutes.syncRemoveFolder, { folderId });
527
372
  }
528
373
  async syncScan(remoteId, folderId) {
529
- const response = await this.request(remoteId, `/api/host/sync/folders/${enc(folderId)}/scan`, {
530
- method: 'POST',
531
- expect: [204],
532
- timeoutMs: file_sync_service_1.SCAN_TIMEOUT_MS + CONTROL_TIMEOUT_MS,
533
- });
534
- await discardBody(response);
374
+ await this.call(remoteId, host_routes_1.hostRoutes.syncScan, { folderId });
535
375
  }
536
376
  async syncRevert(remoteId, folderId) {
537
- const response = await this.request(remoteId, `/api/host/sync/folders/${enc(folderId)}/revert`, { method: 'POST', expect: [204] });
538
- await discardBody(response);
377
+ await this.call(remoteId, host_routes_1.hostRoutes.syncRevert, { folderId });
539
378
  }
540
379
  async syncOverride(remoteId, folderId) {
541
- const response = await this.request(remoteId, `/api/host/sync/folders/${enc(folderId)}/override`, {
542
- method: 'POST',
543
- expect: [204],
544
- });
545
- await discardBody(response);
380
+ await this.call(remoteId, host_routes_1.hostRoutes.syncOverride, { folderId });
546
381
  }
547
382
  async syncLocalChanges(remoteId, folderId) {
548
- const path = `/api/host/sync/folders/${enc(folderId)}/local-changes`;
549
- const response = await this.request(remoteId, path, { method: 'GET', expect: [200] });
550
- return parseBody(file_sync_dto_1.ReceiveOnlyChangesSchema, response, remoteId, path);
383
+ return (await this.call(remoteId, host_routes_1.hostRoutes.syncLocalChanges, { folderId })).body;
551
384
  }
552
385
  async syncStatus(remoteId, folderId, deviceId, options = {}) {
553
- const query = new URLSearchParams({ folder: folderId });
554
- if (deviceId)
555
- query.set('device', deviceId);
556
- if (options.allErrors)
557
- query.set('errors', 'all');
558
- const path = `/api/host/sync/status?${query.toString()}`;
559
- const response = await this.request(remoteId, path, { method: 'GET', expect: [200] });
560
- return parseBody(file_sync_dto_1.FolderSyncStatusSchema, response, remoteId, path);
386
+ return (await this.call(remoteId, host_routes_1.hostRoutes.syncStatus, {
387
+ folderId,
388
+ deviceId,
389
+ allErrors: options.allErrors,
390
+ })).body;
561
391
  }
562
392
  async syncFolderExists(remoteId, folderId) {
563
- const path = `/api/host/sync/status?${new URLSearchParams({ folder: folderId })}`;
564
- const response = await this.request(remoteId, path, { method: 'GET', expect: [200, 404] });
565
- if (response.status === 404) {
566
- await discardBody(response);
567
- return false;
568
- }
569
- await parseBody(file_sync_dto_1.FolderSyncStatusSchema, response, remoteId, path);
570
- return true;
393
+ const response = await this.call(remoteId, host_routes_1.hostRoutes.syncFolderExists, { folderId });
394
+ return response.status === 200;
571
395
  }
572
396
  async syncRemoteNeed(remoteId, folderId, deviceId) {
573
- const path = `/api/host/sync/folders/${enc(folderId)}/remote-need?${new URLSearchParams({ device: deviceId })}`;
574
- const response = await this.request(remoteId, path, { method: 'GET', expect: [200] });
575
- return parseBody(file_sync_dto_1.RemoteNeedSchema, response, remoteId, path);
397
+ return (await this.call(remoteId, host_routes_1.hostRoutes.syncRemoteNeed, { folderId, deviceId })).body;
576
398
  }
577
399
  async syncInspect(remoteId, input) {
578
- const path = '/api/host/sync/inspect';
579
- const response = await this.request(remoteId, path, {
580
- method: 'POST',
581
- body: JSON.stringify(input),
582
- expect: [200],
583
- timeoutMs: 60_000,
584
- });
585
- return parseBody(sync_path_inspection_dto_1.SyncPathInspectionSchema, response, remoteId, path);
586
- }
587
- async syncChown(remoteId, input) {
588
- const path = '/api/host/sync/chown';
589
- const response = await this.request(remoteId, path, {
590
- method: 'POST',
591
- body: JSON.stringify(input),
592
- expect: [200, 404],
593
- timeoutMs: 60_000,
594
- });
595
- if (response.status === 404) {
596
- await discardBody(response);
597
- return (0, sync_chown_dto_1.unsupportedChown)(null, input.items);
598
- }
599
- return parseBody(sync_chown_dto_1.SyncChownResultSchema, response, remoteId, path);
400
+ return (await this.call(remoteId, host_routes_1.hostRoutes.syncInspect, {}, { body: input })).body;
600
401
  }
601
402
  async setInstanceLabel(remoteId, label) {
602
- const response = await this.request(remoteId, '/api/cloud/instance-label', {
603
- method: 'PUT',
604
- body: JSON.stringify({ label }),
605
- expect: [200],
606
- });
607
- await discardBody(response);
403
+ await this.call(remoteId, host_routes_1.hostRoutes.setInstanceLabel, {}, { body: { label } });
608
404
  }
609
405
  async remoteRuntime(remoteId) {
610
406
  const { baseUrl, certificate } = (0, remote_tls_1.requireRemoteTls)(await this.storage.getRemote(remoteId));
@@ -614,226 +410,100 @@ let RemoteHostClient = class RemoteHostClient {
614
410
  return (0, remote_tls_1.requireRemoteCertificate)(await this.storage.getRemote(remoteId));
615
411
  }
616
412
  async runtimeAt(baseUrl, certificate) {
617
- const response = await this.fetchUrl(baseUrl, '/api/runtime', {
618
- method: 'GET',
619
- expect: [200],
413
+ return (await (0, host_transport_1.send)({ baseUrl, certificate, apiKey: null, label: baseUrl }, host_routes_1.hostRoutes.runtimeAt, {}, {
620
414
  timeoutMs: this.runtimeTimeoutMs,
621
- label: baseUrl,
622
- certificate,
623
- });
624
- return parseBody(HostRuntimeSchema, response, baseUrl, '/api/runtime');
415
+ })).body;
625
416
  }
626
417
  async discoverRuntime(origin) {
627
418
  const answer = await (0, remote_discovery_1.discoverRuntime)(origin, this.runtimeTimeoutMs);
628
- const parsed = HostRuntimeSchema.safeParse(answer.body);
419
+ const parsed = host_routes_1.HostRuntimeSchema.safeParse(answer.body);
629
420
  return {
630
421
  runtime: answer.status === 200 && parsed.success ? parsed.data : null,
631
422
  certificate: answer.certificate,
632
423
  };
633
424
  }
634
425
  async claim(bootstrapUrl, certificate, body, apiKey) {
635
- const response = await this.fetchUrl(bootstrapUrl, '/api/host/claim', {
636
- apiKey,
637
- certificate,
638
- method: 'POST',
639
- body: JSON.stringify(body),
640
- timeoutMs: CLAIM_TIMEOUT_MS,
641
- expect: [200, 409, 504],
642
- label: bootstrapUrl,
643
- });
644
- if (response.status === 200) {
645
- await discardBody(response);
426
+ const response = await (0, host_transport_1.send)({ baseUrl: bootstrapUrl, certificate, apiKey: apiKey ?? null, label: bootstrapUrl }, host_routes_1.hostRoutes.claim, {}, { body });
427
+ if (response.status === 200)
646
428
  return 'claimed';
647
- }
648
- const code = await readErrorCode(response);
429
+ const code = response.body;
649
430
  if (response.status === 504)
650
431
  return 'starting';
651
432
  if (code === 'ALREADY_CLAIMED')
652
433
  return 'already_claimed';
653
- throw new RemoteHostRequestError(`The VM refused the claim${code ? ` (${code})` : ''}.`, {
434
+ throw new host_transport_1.RemoteHostRequestError(`The VM refused the claim${code ? ` (${code})` : ''}.`, {
654
435
  remoteId: bootstrapUrl,
655
- path: '/api/host/claim',
436
+ path: host_routes_1.hostRoutes.claim.path({}),
656
437
  status: response.status,
657
438
  hostCode: code,
658
439
  });
659
440
  }
660
441
  async verifyProviderAuth(remoteId, provider, opencodeProviderIds) {
661
- const path = '/api/host/provider-auth/verify';
662
- const response = await this.request(remoteId, path, {
663
- method: 'POST',
664
- body: JSON.stringify({ provider, opencodeProviderIds }),
665
- timeoutMs: VERIFY_TIMEOUT_MS,
666
- expect: [200],
667
- });
668
- return parseBody(HostProviderVerifySchema, response, remoteId, path);
442
+ return (await this.call(remoteId, host_routes_1.hostRoutes.verifyProviderAuth, {}, { body: { provider, opencodeProviderIds } })).body;
669
443
  }
670
444
  async applyProviderAuth(remoteId, bundle) {
671
- const response = await this.request(remoteId, '/api/host/provider-auth', {
672
- method: 'POST',
673
- body: JSON.stringify(bundle),
674
- expect: [200],
675
- });
676
- await discardBody(response);
445
+ await this.call(remoteId, host_routes_1.hostRoutes.applyProviderAuth, {}, { body: bundle });
677
446
  }
678
447
  async applySshKeys(remoteId, keys) {
679
- const response = await this.request(remoteId, '/api/host/ssh-keys', {
680
- method: 'POST',
681
- body: JSON.stringify({ keys }),
682
- expect: [200],
683
- });
684
- await discardBody(response);
448
+ await this.call(remoteId, host_routes_1.hostRoutes.applySshKeys, {}, { body: { keys } });
685
449
  }
686
450
  async requestHostUpdate(remoteId, version) {
687
- const response = await this.request(remoteId, '/api/host/update', {
688
- method: 'POST',
689
- body: JSON.stringify({ version }),
690
- expect: [202, 409],
691
- });
692
- if (response.status === 202) {
693
- await discardBody(response);
451
+ const response = await this.call(remoteId, host_routes_1.hostRoutes.requestHostUpdate, {}, { body: { version } });
452
+ if (response.status === 202)
694
453
  return 'started';
695
- }
696
- const code = await readErrorCode(response);
454
+ const code = response.body;
697
455
  if (code === 'UPDATE_IN_PROGRESS')
698
456
  return 'in_progress';
699
- throw new RemoteHostRequestError(`The host refused the update${code ? ` (${code})` : ''}.`, {
457
+ throw new host_transport_1.RemoteHostRequestError(`The host refused the update${code ? ` (${code})` : ''}.`, {
700
458
  remoteId,
701
- path: '/api/host/update',
459
+ path: host_routes_1.hostRoutes.requestHostUpdate.path({}),
702
460
  status: 409,
703
461
  hostCode: code,
704
462
  });
705
463
  }
706
464
  async hostUpdateStatus(remoteId) {
707
- const path = '/api/host/update';
708
- const response = await this.request(remoteId, path, { method: 'GET', expect: [200] });
709
- return (await parseBody(HostUpdateStatusBodySchema, response, remoteId, path)).status;
465
+ return (await this.call(remoteId, host_routes_1.hostRoutes.hostUpdateStatus, {})).body.status;
710
466
  }
711
467
  async requestDocker(remoteId) {
712
- const response = await this.request(remoteId, '/api/host/docker', {
713
- method: 'POST',
714
- body: '{}',
715
- expect: [202],
716
- });
717
- return parseBody(zod_1.z.object({ jobId: zod_1.z.string().nullable() }), response, remoteId, '/api/host/docker');
468
+ return (await this.call(remoteId, host_routes_1.hostRoutes.requestDocker, {}, { body: {} })).body;
718
469
  }
719
470
  async dockerStatus(remoteId) {
720
- const path = '/api/host/docker';
721
- const response = await this.request(remoteId, path, { method: 'GET', expect: [200] });
722
- return (await parseBody(zod_1.z.object({ status: host_helper_service_1.HostDockerStatusSchema.nullable() }), response, remoteId, path)).status;
471
+ return (await this.call(remoteId, host_routes_1.hostRoutes.dockerStatus, {})).body.status;
723
472
  }
724
- getProviderCliSettingsStatus(remoteId) {
725
- return this.hostSettingsRequest(remoteId, '/api/host/provider-clis/status', 'GET', undefined, 200, shared_1.HostProviderCliSettingsStatusSchema, 3000);
473
+ async getProviderCliSettingsStatus(remoteId) {
474
+ return (await this.call(remoteId, host_routes_1.hostRoutes.getProviderCliSettingsStatus, {})).body;
726
475
  }
727
476
  async putProviderCliSettings(remoteId, body) {
728
- await this.hostSettingsRequest(remoteId, '/api/host/provider-clis', 'PUT', JSON.stringify(body), 202, zod_1.z.object({ revision: zod_1.z.literal(body.revision) }), 3000);
477
+ const route = host_routes_1.hostRoutes.putProviderCliSettings;
478
+ const response = await this.call(remoteId, route, {}, { body });
479
+ checkSettingsRevision(remoteId, route.path({}), response, body.revision);
729
480
  }
730
481
  async checkProviderClis(remoteId) {
731
- await this.hostSettingsRequest(remoteId, '/api/host/provider-clis/check', 'POST', undefined, 202, zod_1.z.object({ accepted: zod_1.z.literal(true) }), 3000);
482
+ await this.call(remoteId, host_routes_1.hostRoutes.checkProviderClis, {});
732
483
  }
733
- getSkillSettingsStatus(remoteId) {
734
- return this.hostSettingsRequest(remoteId, '/api/host/skill-settings/status', 'GET', undefined, 200, shared_2.HostSkillSettingsStatusSchema, 3000);
484
+ async getSkillSettingsStatus(remoteId) {
485
+ return (await this.call(remoteId, host_routes_1.hostRoutes.getSkillSettingsStatus, {})).body;
735
486
  }
736
487
  async putSkillSettings(remoteId, body) {
737
- await this.hostSettingsRequest(remoteId, '/api/host/skill-settings', 'PUT', JSON.stringify(body), 202, zod_1.z.object({ revision: zod_1.z.literal(body.revision) }), 3000);
488
+ const route = host_routes_1.hostRoutes.putSkillSettings;
489
+ const response = await this.call(remoteId, route, {}, { body });
490
+ checkSettingsRevision(remoteId, route.path({}), response, body.revision);
738
491
  }
739
492
  async uploadSkillSourceContent(remoteId, name, contentHash, stream, signal) {
740
- const path = `/api/host/skill-settings/local-sources/${enc(name)}/content?${new URLSearchParams({ contentHash })}`;
493
+ const params = { name, contentHash };
741
494
  try {
742
- await this.hostSettingsRequest(remoteId, path, 'PUT', stream, 200, zod_1.z.object({ name: zod_1.z.literal(name), contentHash: zod_1.z.literal(contentHash) }), 60_000, signal);
495
+ const response = await this.call(remoteId, host_routes_1.hostRoutes.uploadSkillSourceContent, params, {
496
+ body: stream,
497
+ signal,
498
+ });
499
+ if (response.body.name !== name || response.body.contentHash !== contentHash) {
500
+ throw (0, host_transport_1.invalidHostAnswer)(remoteId, host_routes_1.hostRoutes.uploadSkillSourceContent.path(params), response.status);
501
+ }
743
502
  }
744
503
  finally {
745
504
  stream.destroy();
746
505
  }
747
506
  }
748
- async hostSettingsRequest(remoteId, path, method, body, expectedStatus, schema, timeoutMs, signal) {
749
- const { baseUrl, certificate } = (0, remote_tls_1.requireRemoteTls)(await this.storage.getRemote(remoteId));
750
- const controller = new AbortController();
751
- const abort = () => controller.abort();
752
- signal?.addEventListener('abort', abort, { once: true });
753
- if (signal?.aborted)
754
- controller.abort();
755
- const timeout = setTimeout(abort, timeoutMs);
756
- timeout.unref?.();
757
- let response;
758
- try {
759
- const init = {
760
- method,
761
- signal: controller.signal,
762
- ...(body === undefined
763
- ? {}
764
- : {
765
- body: body,
766
- headers: {
767
- 'content-type': typeof body === 'string' ? 'application/json' : 'application/x-tar',
768
- },
769
- ...(typeof body === 'string' ? {} : { duplex: 'half' }),
770
- }),
771
- };
772
- init.headers = { ...(await this.apiKeys.headers(remoteId)), ...init.headers };
773
- response = await (0, remote_tls_1.remoteFetch)(`${baseUrl.replace(/\/+$/, '')}${path}`, init, certificate);
774
- if (response.status !== expectedStatus)
775
- throw new RemoteHostRequestError('Host settings request failed', {
776
- remoteId,
777
- path,
778
- status: response.status,
779
- hostCode: null,
780
- });
781
- return await parseBody(schema, response, remoteId, path);
782
- }
783
- finally {
784
- if (response)
785
- await discardBody(response);
786
- clearTimeout(timeout);
787
- signal?.removeEventListener('abort', abort);
788
- }
789
- }
790
- async request(remoteId, path, options) {
791
- const remote = await this.storage.getRemote(remoteId);
792
- const { baseUrl, certificate } = (0, remote_tls_1.requireRemoteTls)(remote);
793
- return this.fetchUrl(baseUrl, path, {
794
- ...options,
795
- apiKey: await this.apiKeys.get(remoteId),
796
- label: `Remote "${remote.name}"`,
797
- remoteId,
798
- certificate,
799
- });
800
- }
801
- async fetchUrl(baseUrl, path, options) {
802
- const remoteId = options.remoteId ?? baseUrl;
803
- const controller = new AbortController();
804
- const timeout = setTimeout(() => controller.abort(), options.timeoutMs ?? CONTROL_TIMEOUT_MS);
805
- timeout.unref?.();
806
- let response;
807
- try {
808
- response = await (0, remote_tls_1.remoteFetch)(`${baseUrl.replace(/\/+$/, '')}${path}`, {
809
- method: options.method,
810
- headers: {
811
- ...(0, remote_api_key_service_1.remoteAuthorization)(options.apiKey),
812
- ...(options.body !== undefined
813
- ? { 'content-type': options.contentType ?? 'application/json' }
814
- : {}),
815
- },
816
- signal: controller.signal,
817
- ...(options.body !== undefined && {
818
- body: options.body,
819
- }),
820
- }, options.certificate);
821
- }
822
- catch (error) {
823
- throw new RemoteHostRequestError(`${options.label} is unreachable: ${error instanceof Error ? error.message : String(error)}`, { remoteId, path, status: null, hostCode: null });
824
- }
825
- finally {
826
- clearTimeout(timeout);
827
- }
828
- if (!options.expect.includes(response.status)) {
829
- const hostCode = await readErrorCode(response);
830
- if (path === '/api/host/docker' && hostCode === 'HOST_HELPER_OUTDATED') {
831
- throw new RemoteHostRequestError(`The host helper needs one manual migration: ${host_helper_service_1.HOST_HELPER_MIGRATION}`, { remoteId, path, status: response.status, hostCode: 'HOST_HELPER_OUTDATED' });
832
- }
833
- throw new RemoteHostRequestError(`${options.label} answered ${response.status} to ${options.method} ${path.split('?')[0]}${hostCode ? ` (${hostCode})` : ''}.`, { remoteId, path, status: response.status, hostCode });
834
- }
835
- return response;
836
- }
837
507
  };
838
508
  exports.RemoteHostClient = RemoteHostClient;
839
509
  exports.RemoteHostClient = RemoteHostClient = __decorate([
@@ -843,8 +513,10 @@ exports.RemoteHostClient = RemoteHostClient = __decorate([
843
513
  __param(2, (0, common_1.Inject)('REMOTE_HOST_RUNTIME_TIMEOUT_MS')),
844
514
  __metadata("design:paramtypes", [Object, remote_api_key_service_1.RemoteApiKeyService, Object])
845
515
  ], RemoteHostClient);
846
- async function discardBody(response) {
847
- await response.body?.cancel().catch(() => undefined);
516
+ function checkSettingsRevision(remoteId, path, response, expected) {
517
+ if (response.body.revision !== expected) {
518
+ throw (0, host_transport_1.invalidHostAnswer)(remoteId, path, response.status);
519
+ }
848
520
  }
849
521
  function parseDockerAnswer(schema, answer, remoteId, path) {
850
522
  let value = null;
@@ -858,7 +530,7 @@ function parseDockerAnswer(schema, answer, remoteId, path) {
858
530
  function checkDockerAnswer(schema, value, remoteId, path) {
859
531
  const parsed = schema.safeParse(value);
860
532
  if (!parsed.success)
861
- throw new RemoteHostRequestError('Docker host request failed', {
533
+ throw new host_transport_1.RemoteHostRequestError('Docker host request failed', {
862
534
  remoteId,
863
535
  path,
864
536
  status: null,
@@ -866,18 +538,6 @@ function checkDockerAnswer(schema, value, remoteId, path) {
866
538
  });
867
539
  return parsed.data;
868
540
  }
869
- async function parseBody(schema, response, remoteId, path) {
870
- const parsed = schema.safeParse(await response.json().catch(() => null));
871
- if (!parsed.success) {
872
- throw new RemoteHostRequestError(`Host returned an invalid answer to ${path.split('?')[0]}.`, {
873
- remoteId,
874
- path,
875
- status: response.status,
876
- hostCode: null,
877
- });
878
- }
879
- return parsed.data;
880
- }
881
541
  function dialAddress(address, baseUrl) {
882
542
  const match = /^(tcp|quic):\/\/.*:(\d+)$/.exec(address);
883
543
  if (!match)
@@ -887,16 +547,4 @@ function dialAddress(address, baseUrl) {
887
547
  function enc(value) {
888
548
  return encodeURIComponent(value);
889
549
  }
890
- async function readErrorCode(response) {
891
- try {
892
- const body = (await response.json());
893
- const detailCode = body.details?.code;
894
- if (typeof detailCode === 'string')
895
- return detailCode;
896
- return typeof body.code === 'string' ? body.code : null;
897
- }
898
- catch {
899
- return null;
900
- }
901
- }
902
550
  //# sourceMappingURL=remote-host.client.js.map