devchain-cli 0.25.0 → 0.26.1

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 (653) hide show
  1. package/README.md +1 -1
  2. package/dist/build-info.json +2 -2
  3. package/dist/cli.js +34 -76
  4. package/dist/drizzle/0094_agent_worktree_lanes.sql +20 -0
  5. package/dist/drizzle/meta/0094_snapshot.json +7810 -0
  6. package/dist/drizzle/meta/_journal.json +7 -0
  7. package/dist/host-cli-pins.json +1 -1
  8. package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
  9. package/dist/host-install/pins.json +2 -1
  10. package/dist/lib/git-owner.js +30 -205
  11. package/dist/lib/git-shim.js +417 -0
  12. package/dist/lib/git-supervisor.js +289 -0
  13. package/dist/lib/host-api-key.js +75 -19
  14. package/dist/lib/local-api.js +4 -2
  15. package/dist/lib/local-app-process.js +77 -0
  16. package/dist/node_modules/@devchain/shared/index.d.ts +1 -0
  17. package/dist/node_modules/@devchain/shared/index.d.ts.map +1 -1
  18. package/dist/node_modules/@devchain/shared/index.js +1 -0
  19. package/dist/node_modules/@devchain/shared/index.js.map +1 -1
  20. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +510 -5
  21. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts.map +1 -1
  22. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js +55 -0
  23. package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -1
  24. package/dist/node_modules/@devchain/shared/schemas/index.d.ts +1 -0
  25. package/dist/node_modules/@devchain/shared/schemas/index.d.ts.map +1 -1
  26. package/dist/node_modules/@devchain/shared/schemas/index.js +1 -0
  27. package/dist/node_modules/@devchain/shared/schemas/index.js.map +1 -1
  28. package/dist/node_modules/@devchain/shared/schemas/provider-clis.js +1 -1
  29. package/dist/node_modules/@devchain/shared/schemas/provider-clis.js.map +1 -1
  30. package/dist/node_modules/@devchain/shared/schemas/provider-usage.d.ts +350 -0
  31. package/dist/node_modules/@devchain/shared/schemas/provider-usage.d.ts.map +1 -0
  32. package/dist/node_modules/@devchain/shared/schemas/provider-usage.js +71 -0
  33. package/dist/node_modules/@devchain/shared/schemas/provider-usage.js.map +1 -0
  34. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  35. package/dist/server/app.module.js +4 -0
  36. package/dist/server/app.module.js.map +1 -1
  37. package/dist/server/common/config/env.config.d.ts +3 -0
  38. package/dist/server/common/config/env.config.js +1 -0
  39. package/dist/server/common/config/env.config.js.map +1 -1
  40. package/dist/server/common/config/host-image.json +3 -3
  41. package/dist/server/common/config/vm-destroy-fence.d.ts +18 -0
  42. package/dist/server/common/config/vm-destroy-fence.js +38 -0
  43. package/dist/server/common/config/vm-destroy-fence.js.map +1 -0
  44. package/dist/server/common/errors/error-types.d.ts +3 -0
  45. package/dist/server/common/errors/error-types.js +10 -1
  46. package/dist/server/common/errors/error-types.js.map +1 -1
  47. package/dist/server/common/git-shim-paths.d.ts +5 -0
  48. package/dist/server/common/git-shim-paths.js +25 -0
  49. package/dist/server/common/git-shim-paths.js.map +1 -0
  50. package/dist/server/common/test/fake-bootstrap.server.d.ts +5 -0
  51. package/dist/server/common/test/fake-bootstrap.server.js +12 -3
  52. package/dist/server/common/test/fake-bootstrap.server.js.map +1 -1
  53. package/dist/server/common/test/shared-vm.stub.d.ts +2 -0
  54. package/dist/server/common/test/shared-vm.stub.js +13 -0
  55. package/dist/server/common/test/shared-vm.stub.js.map +1 -0
  56. package/dist/server/main.js +2 -0
  57. package/dist/server/main.js.map +1 -1
  58. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js +2 -0
  59. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
  60. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +5 -1
  61. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js +11 -2
  62. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
  63. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.d.ts +506 -1
  64. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +56 -1
  65. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js.map +1 -1
  66. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.d.ts +1 -0
  67. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js +1 -0
  68. package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -1
  69. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +1 -0
  70. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
  71. package/dist/server/modules/events/catalog/broadcast-registry.js +8 -0
  72. package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
  73. package/dist/server/modules/events/catalog/index.d.ts +18 -11
  74. package/dist/server/modules/events/catalog/index.js +3 -0
  75. package/dist/server/modules/events/catalog/index.js.map +1 -1
  76. package/dist/server/modules/events/catalog/provider-usage.updated.d.ts +12 -0
  77. package/dist/server/modules/events/catalog/provider-usage.updated.js +13 -0
  78. package/dist/server/modules/events/catalog/provider-usage.updated.js.map +1 -0
  79. package/dist/server/modules/events/catalog/review.comment.created.d.ts +2 -2
  80. package/dist/server/modules/events/catalog/review.created.d.ts +8 -8
  81. package/dist/server/modules/file-sync/file-sync.dto.d.ts +18 -0
  82. package/dist/server/modules/file-sync/file-sync.dto.js +12 -2
  83. package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
  84. package/dist/server/modules/file-sync/file-sync.module.js +17 -2
  85. package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
  86. package/dist/server/modules/file-sync/file-sync.service.d.ts +4 -0
  87. package/dist/server/modules/file-sync/file-sync.service.js +35 -0
  88. package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
  89. package/dist/server/modules/file-sync/git-guard.dto.d.ts +0 -21
  90. package/dist/server/modules/file-sync/git-guard.dto.js +1 -7
  91. package/dist/server/modules/file-sync/git-guard.dto.js.map +1 -1
  92. package/dist/server/modules/file-sync/home-git-guard.service.d.ts +3 -0
  93. package/dist/server/modules/file-sync/home-git-guard.service.js +128 -22
  94. package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
  95. package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +3 -1
  96. package/dist/server/modules/file-sync/host-git-guard.controller.js +11 -5
  97. package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -1
  98. package/dist/server/modules/file-sync/host-sync.controller.d.ts +11 -7
  99. package/dist/server/modules/file-sync/host-sync.controller.js +53 -20
  100. package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
  101. package/dist/server/modules/file-sync/syncthing-launcher.d.ts +1 -0
  102. package/dist/server/modules/file-sync/syncthing-launcher.js +2 -1
  103. package/dist/server/modules/file-sync/syncthing-launcher.js.map +1 -1
  104. package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +2 -1
  105. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +6 -0
  106. package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
  107. package/dist/server/modules/git/dtos/git.dto.d.ts +4 -4
  108. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +95 -1
  109. package/dist/server/modules/mcp/dtos/mcp.dto.js +45 -2
  110. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
  111. package/dist/server/modules/mcp/mcp-full.module.js +2 -0
  112. package/dist/server/modules/mcp/mcp-full.module.js.map +1 -1
  113. package/dist/server/modules/mcp/services/handlers/epic-context.d.ts +2 -2
  114. package/dist/server/modules/mcp/services/handlers/epic-tools.js +16 -0
  115. package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -1
  116. package/dist/server/modules/mcp/services/handlers/teams-tools.d.ts +1 -0
  117. package/dist/server/modules/mcp/services/handlers/teams-tools.js +51 -0
  118. package/dist/server/modules/mcp/services/handlers/teams-tools.js.map +1 -1
  119. package/dist/server/modules/mcp/services/handlers/worktree-context.d.ts +6 -0
  120. package/dist/server/modules/mcp/services/handlers/worktree-context.js +3 -0
  121. package/dist/server/modules/mcp/services/handlers/worktree-context.js.map +1 -0
  122. package/dist/server/modules/mcp/services/handlers/worktree-tools.d.ts +7 -0
  123. package/dist/server/modules/mcp/services/handlers/worktree-tools.js +77 -0
  124. package/dist/server/modules/mcp/services/handlers/worktree-tools.js.map +1 -0
  125. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +2 -1
  126. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +6 -2
  127. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
  128. package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +4 -2
  129. package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
  130. package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js +2 -2
  131. package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js.map +1 -1
  132. package/dist/server/modules/mcp/tool-descriptors/index.js +2 -0
  133. package/dist/server/modules/mcp/tool-descriptors/index.js.map +1 -1
  134. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js +2 -0
  135. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js.map +1 -1
  136. package/dist/server/modules/mcp/tool-descriptors/team.bindings.js +1 -0
  137. package/dist/server/modules/mcp/tool-descriptors/team.bindings.js.map +1 -1
  138. package/dist/server/modules/mcp/tool-descriptors/team.metadata.js +33 -0
  139. package/dist/server/modules/mcp/tool-descriptors/team.metadata.js.map +1 -1
  140. package/dist/server/modules/mcp/tool-descriptors/worktree.bindings.d.ts +1 -0
  141. package/dist/server/modules/mcp/tool-descriptors/worktree.bindings.js +20 -0
  142. package/dist/server/modules/mcp/tool-descriptors/worktree.bindings.js.map +1 -0
  143. package/dist/server/modules/mcp/tool-descriptors/worktree.metadata.d.ts +2 -0
  144. package/dist/server/modules/mcp/tool-descriptors/worktree.metadata.js +105 -0
  145. package/dist/server/modules/mcp/tool-descriptors/worktree.metadata.js.map +1 -0
  146. package/dist/server/modules/provider-auth/opencode-credential-family.v2.d.ts +4 -0
  147. package/dist/server/modules/provider-auth/opencode-credential-family.v2.js +41 -0
  148. package/dist/server/modules/provider-auth/opencode-credential-family.v2.js.map +1 -0
  149. package/dist/server/modules/provider-auth/opencode-credentials.d.ts +25 -0
  150. package/dist/server/modules/provider-auth/opencode-credentials.js +102 -0
  151. package/dist/server/modules/provider-auth/opencode-credentials.js.map +1 -0
  152. package/dist/server/modules/provider-auth/opencode-pc-logins.service.d.ts +11 -0
  153. package/dist/server/modules/provider-auth/opencode-pc-logins.service.js +62 -0
  154. package/dist/server/modules/provider-auth/opencode-pc-logins.service.js.map +1 -0
  155. package/dist/server/modules/provider-auth/opencode-pc-logins.v1.d.ts +1 -0
  156. package/dist/server/modules/provider-auth/opencode-pc-logins.v1.js +25 -0
  157. package/dist/server/modules/provider-auth/opencode-pc-logins.v1.js.map +1 -0
  158. package/dist/server/modules/provider-auth/opencode-pc-logins.v2.d.ts +3 -0
  159. package/dist/server/modules/provider-auth/opencode-pc-logins.v2.js +25 -0
  160. package/dist/server/modules/provider-auth/opencode-pc-logins.v2.js.map +1 -0
  161. package/dist/server/modules/provider-auth/provider-auth-adapters.d.ts +4 -1
  162. package/dist/server/modules/provider-auth/provider-auth-adapters.js +65 -33
  163. package/dist/server/modules/provider-auth/provider-auth-adapters.js.map +1 -1
  164. package/dist/server/modules/provider-auth/provider-auth-generator.service.d.ts +3 -1
  165. package/dist/server/modules/provider-auth/provider-auth-generator.service.js +12 -6
  166. package/dist/server/modules/provider-auth/provider-auth-generator.service.js.map +1 -1
  167. package/dist/server/modules/provider-auth/provider-auth-vault.service.d.ts +3 -2
  168. package/dist/server/modules/provider-auth/provider-auth-vault.service.js +8 -25
  169. package/dist/server/modules/provider-auth/provider-auth-vault.service.js.map +1 -1
  170. package/dist/server/modules/provider-auth/provider-auth-watcher.service.d.ts +5 -1
  171. package/dist/server/modules/provider-auth/provider-auth-watcher.service.js +32 -1
  172. package/dist/server/modules/provider-auth/provider-auth-watcher.service.js.map +1 -1
  173. package/dist/server/modules/provider-auth/provider-auth.module.js +4 -0
  174. package/dist/server/modules/provider-auth/provider-auth.module.js.map +1 -1
  175. package/dist/server/modules/provider-usage/checkers/agy.checker.d.ts +15 -0
  176. package/dist/server/modules/provider-usage/checkers/agy.checker.js +129 -0
  177. package/dist/server/modules/provider-usage/checkers/agy.checker.js.map +1 -0
  178. package/dist/server/modules/provider-usage/checkers/checker-helpers.d.ts +4 -0
  179. package/dist/server/modules/provider-usage/checkers/checker-helpers.js +12 -0
  180. package/dist/server/modules/provider-usage/checkers/checker-helpers.js.map +1 -0
  181. package/dist/server/modules/provider-usage/checkers/claude-login.checker.d.ts +10 -0
  182. package/dist/server/modules/provider-usage/checkers/claude-login.checker.js +92 -0
  183. package/dist/server/modules/provider-usage/checkers/claude-login.checker.js.map +1 -0
  184. package/dist/server/modules/provider-usage/checkers/claude-token.checker.d.ts +5 -0
  185. package/dist/server/modules/provider-usage/checkers/claude-token.checker.js +80 -0
  186. package/dist/server/modules/provider-usage/checkers/claude-token.checker.js.map +1 -0
  187. package/dist/server/modules/provider-usage/checkers/claude-usage-parser.d.ts +12 -0
  188. package/dist/server/modules/provider-usage/checkers/claude-usage-parser.js +113 -0
  189. package/dist/server/modules/provider-usage/checkers/claude-usage-parser.js.map +1 -0
  190. package/dist/server/modules/provider-usage/checkers/codex.checker.d.ts +7 -0
  191. package/dist/server/modules/provider-usage/checkers/codex.checker.js +159 -0
  192. package/dist/server/modules/provider-usage/checkers/codex.checker.js.map +1 -0
  193. package/dist/server/modules/provider-usage/checkers/private-cwd.d.ts +1 -0
  194. package/dist/server/modules/provider-usage/checkers/private-cwd.js +8 -0
  195. package/dist/server/modules/provider-usage/checkers/private-cwd.js.map +1 -0
  196. package/dist/server/modules/provider-usage/controllers/provider-usage.controller.d.ts +7 -0
  197. package/dist/server/modules/provider-usage/controllers/provider-usage.controller.js +51 -0
  198. package/dist/server/modules/provider-usage/controllers/provider-usage.controller.js.map +1 -0
  199. package/dist/server/modules/provider-usage/provider-usage.module.d.ts +2 -0
  200. package/dist/server/modules/provider-usage/provider-usage.module.js +58 -0
  201. package/dist/server/modules/provider-usage/provider-usage.module.js.map +1 -0
  202. package/dist/server/modules/provider-usage/provider-usage.types.d.ts +26 -0
  203. package/dist/server/modules/provider-usage/provider-usage.types.js +5 -0
  204. package/dist/server/modules/provider-usage/provider-usage.types.js.map +1 -0
  205. package/dist/server/modules/provider-usage/services/provider-usage-accounts.d.ts +5 -0
  206. package/dist/server/modules/provider-usage/services/provider-usage-accounts.js +94 -0
  207. package/dist/server/modules/provider-usage/services/provider-usage-accounts.js.map +1 -0
  208. package/dist/server/modules/provider-usage/services/provider-usage-accounts.service.d.ts +23 -0
  209. package/dist/server/modules/provider-usage/services/provider-usage-accounts.service.js +81 -0
  210. package/dist/server/modules/provider-usage/services/provider-usage-accounts.service.js.map +1 -0
  211. package/dist/server/modules/provider-usage/services/provider-usage.service.d.ts +37 -0
  212. package/dist/server/modules/provider-usage/services/provider-usage.service.js +262 -0
  213. package/dist/server/modules/provider-usage/services/provider-usage.service.js.map +1 -0
  214. package/dist/server/modules/providers/adapters/capabilities/index.d.ts +2 -2
  215. package/dist/server/modules/providers/adapters/capabilities/index.js +2 -1
  216. package/dist/server/modules/providers/adapters/capabilities/index.js.map +1 -1
  217. package/dist/server/modules/providers/adapters/capabilities/provider-plugin.capability.d.ts +16 -2
  218. package/dist/server/modules/providers/adapters/capabilities/session-command.capability.d.ts +5 -0
  219. package/dist/server/modules/providers/adapters/capabilities/session-command.capability.js +3 -0
  220. package/dist/server/modules/providers/adapters/capabilities/session-command.capability.js.map +1 -0
  221. package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +4 -1
  222. package/dist/server/modules/providers/adapters/capabilities/type-guards.js +5 -3
  223. package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
  224. package/dist/server/modules/providers/adapters/claude.adapter.d.ts +6 -3
  225. package/dist/server/modules/providers/adapters/claude.adapter.js +7 -2
  226. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
  227. package/dist/server/modules/providers/adapters/codex.adapter.d.ts +6 -6
  228. package/dist/server/modules/providers/adapters/codex.adapter.js +47 -41
  229. package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
  230. package/dist/server/modules/providers/adapters/opencode-cli-version.d.ts +13 -0
  231. package/dist/server/modules/providers/adapters/opencode-cli-version.js +24 -0
  232. package/dist/server/modules/providers/adapters/opencode-cli-version.js.map +1 -0
  233. package/dist/server/modules/providers/adapters/opencode-config-content.d.ts +1 -0
  234. package/dist/server/modules/providers/adapters/opencode-config-content.js +43 -0
  235. package/dist/server/modules/providers/adapters/opencode-config-content.js.map +1 -0
  236. package/dist/server/modules/providers/adapters/opencode-launch.v1.d.ts +4 -0
  237. package/dist/server/modules/providers/adapters/opencode-launch.v1.js +10 -0
  238. package/dist/server/modules/providers/adapters/opencode-launch.v1.js.map +1 -0
  239. package/dist/server/modules/providers/adapters/opencode-launch.v2.d.ts +2 -0
  240. package/dist/server/modules/providers/adapters/opencode-launch.v2.js +18 -0
  241. package/dist/server/modules/providers/adapters/opencode-launch.v2.js.map +1 -0
  242. package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +3 -4
  243. package/dist/server/modules/providers/adapters/opencode.adapter.js +11 -42
  244. package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -1
  245. package/dist/server/modules/providers/adapters/plugin-catalog.utils.d.ts +3 -0
  246. package/dist/server/modules/providers/adapters/plugin-catalog.utils.js +10 -0
  247. package/dist/server/modules/providers/adapters/plugin-catalog.utils.js.map +1 -1
  248. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +9 -3
  249. package/dist/server/modules/providers/adapters/provider-cli-policy.d.ts +3 -0
  250. package/dist/server/modules/providers/adapters/provider-cli-policy.js +8 -0
  251. package/dist/server/modules/providers/adapters/provider-cli-policy.js.map +1 -1
  252. package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +3 -1
  253. package/dist/server/modules/providers/controllers/provider-models.controller.js +18 -3
  254. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
  255. package/dist/server/modules/providers/providers.module.js +5 -0
  256. package/dist/server/modules/providers/providers.module.js.map +1 -1
  257. package/dist/server/modules/providers/services/codex-app-server.client.d.ts +11 -0
  258. package/dist/server/modules/providers/services/codex-app-server.client.js +129 -0
  259. package/dist/server/modules/providers/services/codex-app-server.client.js.map +1 -0
  260. package/dist/server/modules/providers/services/provider-cli-version-probe.module.d.ts +2 -0
  261. package/dist/server/modules/providers/services/provider-cli-version-probe.module.js +23 -0
  262. package/dist/server/modules/providers/services/provider-cli-version-probe.module.js.map +1 -0
  263. package/dist/server/modules/providers/services/provider-cli-version-probe.service.d.ts +8 -0
  264. package/dist/server/modules/providers/services/provider-cli-version-probe.service.js +65 -0
  265. package/dist/server/modules/providers/services/provider-cli-version-probe.service.js.map +1 -0
  266. package/dist/server/modules/providers/services/provider-plugins.service.d.ts +5 -1
  267. package/dist/server/modules/providers/services/provider-plugins.service.js +43 -16
  268. package/dist/server/modules/providers/services/provider-plugins.service.js.map +1 -1
  269. package/dist/server/modules/providers/utils/codex-config.d.ts +9 -0
  270. package/dist/server/modules/providers/utils/codex-config.js +34 -16
  271. package/dist/server/modules/providers/utils/codex-config.js.map +1 -1
  272. package/dist/server/modules/providers/utils/private-cwd.d.ts +1 -0
  273. package/dist/server/modules/providers/utils/private-cwd.js +12 -0
  274. package/dist/server/modules/providers/utils/private-cwd.js.map +1 -0
  275. package/dist/server/modules/remotes/contract/host-routes.d.ts +2180 -35
  276. package/dist/server/modules/remotes/contract/host-routes.js +168 -16
  277. package/dist/server/modules/remotes/contract/host-routes.js.map +1 -1
  278. package/dist/server/modules/remotes/controllers/home-shared-vm-notices.controller.d.ts +10 -0
  279. package/dist/server/modules/remotes/controllers/home-shared-vm-notices.controller.js +59 -0
  280. package/dist/server/modules/remotes/controllers/home-shared-vm-notices.controller.js.map +1 -0
  281. package/dist/server/modules/remotes/controllers/remotes.controller.js +1 -0
  282. package/dist/server/modules/remotes/controllers/remotes.controller.js.map +1 -1
  283. package/dist/server/modules/remotes/dtos/remote-notices.dto.d.ts +4 -0
  284. package/dist/server/modules/remotes/dtos/remote-notices.dto.js +3 -0
  285. package/dist/server/modules/remotes/dtos/remote-notices.dto.js.map +1 -0
  286. package/dist/server/modules/remotes/dtos/remote.dto.d.ts +2 -0
  287. package/dist/server/modules/remotes/dtos/remote.dto.js.map +1 -1
  288. package/dist/server/modules/remotes/dtos/shared-vm.dto.d.ts +488 -0
  289. package/dist/server/modules/remotes/dtos/shared-vm.dto.js +60 -0
  290. package/dist/server/modules/remotes/dtos/shared-vm.dto.js.map +1 -0
  291. package/dist/server/modules/remotes/git-coordinator/git-checkpoint.d.ts +5 -0
  292. package/dist/server/modules/remotes/git-coordinator/git-checkpoint.js +95 -0
  293. package/dist/server/modules/remotes/git-coordinator/git-checkpoint.js.map +1 -0
  294. package/dist/server/modules/remotes/git-coordinator/git-coordinator-index.service.d.ts +18 -0
  295. package/dist/server/modules/remotes/git-coordinator/git-coordinator-index.service.js +192 -0
  296. package/dist/server/modules/remotes/git-coordinator/git-coordinator-index.service.js.map +1 -0
  297. package/dist/server/modules/remotes/git-coordinator/git-coordinator.dto.d.ts +519 -0
  298. package/dist/server/modules/remotes/git-coordinator/git-coordinator.dto.js +104 -0
  299. package/dist/server/modules/remotes/git-coordinator/git-coordinator.dto.js.map +1 -0
  300. package/dist/server/modules/remotes/git-coordinator/git-coordinator.service.d.ts +66 -0
  301. package/dist/server/modules/remotes/git-coordinator/git-coordinator.service.js +555 -0
  302. package/dist/server/modules/remotes/git-coordinator/git-coordinator.service.js.map +1 -0
  303. package/dist/server/modules/remotes/git-coordinator/git-coordinator.store.d.ts +11 -0
  304. package/dist/server/modules/remotes/git-coordinator/git-coordinator.store.js +69 -0
  305. package/dist/server/modules/remotes/git-coordinator/git-coordinator.store.js.map +1 -0
  306. package/dist/server/modules/remotes/git-coordinator/git-process-identity.d.ts +3 -0
  307. package/dist/server/modules/remotes/git-coordinator/git-process-identity.js +71 -0
  308. package/dist/server/modules/remotes/git-coordinator/git-process-identity.js.map +1 -0
  309. package/dist/server/modules/remotes/git-coordinator/host-git-coordinator.controller.d.ts +19 -0
  310. package/dist/server/modules/remotes/git-coordinator/host-git-coordinator.controller.js +181 -0
  311. package/dist/server/modules/remotes/git-coordinator/host-git-coordinator.controller.js.map +1 -0
  312. package/dist/server/modules/remotes/git-coordinator/loopback.d.ts +2 -0
  313. package/dist/server/modules/remotes/git-coordinator/loopback.js +10 -0
  314. package/dist/server/modules/remotes/git-coordinator/loopback.js.map +1 -0
  315. package/dist/server/modules/remotes/git-coordinator/vm-git-coordinator.controller.d.ts +9 -0
  316. package/dist/server/modules/remotes/git-coordinator/vm-git-coordinator.controller.js +66 -0
  317. package/dist/server/modules/remotes/git-coordinator/vm-git-coordinator.controller.js.map +1 -0
  318. package/dist/server/modules/remotes/git-owner.store.d.ts +102 -1
  319. package/dist/server/modules/remotes/git-owner.store.js +37 -11
  320. package/dist/server/modules/remotes/git-owner.store.js.map +1 -1
  321. package/dist/server/modules/remotes/git-shim/git-shim-registry.service.d.ts +30 -0
  322. package/dist/server/modules/remotes/git-shim/git-shim-registry.service.js +175 -0
  323. package/dist/server/modules/remotes/git-shim/git-shim-registry.service.js.map +1 -0
  324. package/dist/server/modules/remotes/git-writes/change-barrier.d.ts +16 -0
  325. package/dist/server/modules/remotes/git-writes/change-barrier.js +40 -0
  326. package/dist/server/modules/remotes/git-writes/change-barrier.js.map +1 -0
  327. package/dist/server/modules/remotes/git-writes/home-git-handover.service.d.ts +42 -0
  328. package/dist/server/modules/remotes/git-writes/home-git-handover.service.js +349 -0
  329. package/dist/server/modules/remotes/git-writes/home-git-handover.service.js.map +1 -0
  330. package/dist/server/modules/remotes/git-writes/home-git-transitions.d.ts +16 -0
  331. package/dist/server/modules/remotes/git-writes/home-git-transitions.js +12 -0
  332. package/dist/server/modules/remotes/git-writes/home-git-transitions.js.map +1 -0
  333. package/dist/server/modules/remotes/git-writes/home-git-write.controller.d.ts +10 -0
  334. package/dist/server/modules/remotes/git-writes/home-git-write.controller.js +74 -0
  335. package/dist/server/modules/remotes/git-writes/home-git-write.controller.js.map +1 -0
  336. package/dist/server/modules/remotes/git-writes/home-git-write.service.d.ts +72 -0
  337. package/dist/server/modules/remotes/git-writes/home-git-write.service.js +481 -0
  338. package/dist/server/modules/remotes/git-writes/home-git-write.service.js.map +1 -0
  339. package/dist/server/modules/remotes/git-writes/home-git-write.store.d.ts +39 -0
  340. package/dist/server/modules/remotes/git-writes/home-git-write.store.js +78 -0
  341. package/dist/server/modules/remotes/git-writes/home-git-write.store.js.map +1 -0
  342. package/dist/server/modules/remotes/host/host-helper.dto.d.ts +4 -0
  343. package/dist/server/modules/remotes/host/host-helper.dto.js +14 -1
  344. package/dist/server/modules/remotes/host/host-helper.dto.js.map +1 -1
  345. package/dist/server/modules/remotes/host/host-helper.service.d.ts +5 -1
  346. package/dist/server/modules/remotes/host/host-helper.service.js +9 -3
  347. package/dist/server/modules/remotes/host/host-helper.service.js.map +1 -1
  348. package/dist/server/modules/remotes/host/host-opencode-credentials.v2.d.ts +7 -0
  349. package/dist/server/modules/remotes/host/host-opencode-credentials.v2.js +46 -0
  350. package/dist/server/modules/remotes/host/host-opencode-credentials.v2.js.map +1 -0
  351. package/dist/server/modules/remotes/host/host-provider-auth.service.d.ts +11 -2
  352. package/dist/server/modules/remotes/host/host-provider-auth.service.js +92 -14
  353. package/dist/server/modules/remotes/host/host-provider-auth.service.js.map +1 -1
  354. package/dist/server/modules/remotes/host/host-provider-usage-revision.d.ts +2 -0
  355. package/dist/server/modules/remotes/host/host-provider-usage-revision.js +11 -0
  356. package/dist/server/modules/remotes/host/host-provider-usage-revision.js.map +1 -0
  357. package/dist/server/modules/remotes/host/host-provider-usage-settings.controller.d.ts +11 -0
  358. package/dist/server/modules/remotes/host/host-provider-usage-settings.controller.js +62 -0
  359. package/dist/server/modules/remotes/host/host-provider-usage-settings.controller.js.map +1 -0
  360. package/dist/server/modules/remotes/host/host-provider-usage-settings.service.d.ts +9 -0
  361. package/dist/server/modules/remotes/host/host-provider-usage-settings.service.js +35 -0
  362. package/dist/server/modules/remotes/host/host-provider-usage-settings.service.js.map +1 -0
  363. package/dist/server/modules/remotes/host/host-shared-vm.controller.d.ts +24 -0
  364. package/dist/server/modules/remotes/host/host-shared-vm.controller.js +183 -0
  365. package/dist/server/modules/remotes/host/host-shared-vm.controller.js.map +1 -0
  366. package/dist/server/modules/remotes/host/host-shared-vm.service.d.ts +28 -0
  367. package/dist/server/modules/remotes/host/host-shared-vm.service.js +159 -0
  368. package/dist/server/modules/remotes/host/host-shared-vm.service.js.map +1 -0
  369. package/dist/server/modules/remotes/host/host-shared-vm.store.d.ts +18 -0
  370. package/dist/server/modules/remotes/host/host-shared-vm.store.js +105 -0
  371. package/dist/server/modules/remotes/host/host-shared-vm.store.js.map +1 -0
  372. package/dist/server/modules/remotes/host/host-update.controller.js +3 -3
  373. package/dist/server/modules/remotes/host/host-update.controller.js.map +1 -1
  374. package/dist/server/modules/remotes/host/host.service.d.ts +3 -1
  375. package/dist/server/modules/remotes/host/host.service.js +9 -2
  376. package/dist/server/modules/remotes/host/host.service.js.map +1 -1
  377. package/dist/server/modules/remotes/host/shared-vm.contract.d.ts +184 -0
  378. package/dist/server/modules/remotes/host/shared-vm.contract.js +44 -0
  379. package/dist/server/modules/remotes/host/shared-vm.contract.js.map +1 -0
  380. package/dist/server/modules/remotes/host-install/host-install-block.d.ts +2 -0
  381. package/dist/server/modules/remotes/host-install/host-install-block.js +3 -2
  382. package/dist/server/modules/remotes/host-install/host-install-block.js.map +1 -1
  383. package/dist/server/modules/remotes/host-install/host-install.service.d.ts +2 -0
  384. package/dist/server/modules/remotes/host-install/host-install.service.js +10 -0
  385. package/dist/server/modules/remotes/host-install/host-install.service.js.map +1 -1
  386. package/dist/server/modules/remotes/host-install/host-join-block.d.ts +16 -0
  387. package/dist/server/modules/remotes/host-install/host-join-block.js +122 -0
  388. package/dist/server/modules/remotes/host-install/host-join-block.js.map +1 -0
  389. package/dist/server/modules/remotes/host-install/ssh-runner.d.ts +1 -0
  390. package/dist/server/modules/remotes/host-install/ssh-runner.js +2 -2
  391. package/dist/server/modules/remotes/host-install/ssh-runner.js.map +1 -1
  392. package/dist/server/modules/remotes/operations/attach.operation.d.ts +9 -2
  393. package/dist/server/modules/remotes/operations/attach.operation.js +38 -11
  394. package/dist/server/modules/remotes/operations/attach.operation.js.map +1 -1
  395. package/dist/server/modules/remotes/operations/claim.operation.d.ts +4 -0
  396. package/dist/server/modules/remotes/operations/claim.operation.js +15 -0
  397. package/dist/server/modules/remotes/operations/claim.operation.js.map +1 -1
  398. package/dist/server/modules/remotes/operations/claude-user-instructions.d.ts +2 -0
  399. package/dist/server/modules/remotes/operations/claude-user-instructions.js +23 -0
  400. package/dist/server/modules/remotes/operations/claude-user-instructions.js.map +1 -0
  401. package/dist/server/modules/remotes/operations/destroy-vm.operation.d.ts +4 -2
  402. package/dist/server/modules/remotes/operations/destroy-vm.operation.js +43 -23
  403. package/dist/server/modules/remotes/operations/destroy-vm.operation.js.map +1 -1
  404. package/dist/server/modules/remotes/operations/detach.operation.d.ts +12 -1
  405. package/dist/server/modules/remotes/operations/detach.operation.js +106 -29
  406. package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
  407. package/dist/server/modules/remotes/operations/disconnect-all.operation.d.ts +50 -0
  408. package/dist/server/modules/remotes/operations/disconnect-all.operation.js +222 -0
  409. package/dist/server/modules/remotes/operations/disconnect-all.operation.js.map +1 -0
  410. package/dist/server/modules/remotes/operations/file-sync-handoff.d.ts +3 -1
  411. package/dist/server/modules/remotes/operations/file-sync-handoff.js +69 -68
  412. package/dist/server/modules/remotes/operations/file-sync-handoff.js.map +1 -1
  413. package/dist/server/modules/remotes/operations/git-owner.dto.d.ts +10 -44
  414. package/dist/server/modules/remotes/operations/git-owner.dto.js +1 -12
  415. package/dist/server/modules/remotes/operations/git-owner.dto.js.map +1 -1
  416. package/dist/server/modules/remotes/operations/guarded-vm-destroy.d.ts +2 -0
  417. package/dist/server/modules/remotes/operations/guarded-vm-destroy.js +14 -0
  418. package/dist/server/modules/remotes/operations/guarded-vm-destroy.js.map +1 -1
  419. package/dist/server/modules/remotes/operations/install-host.operation.d.ts +21 -1
  420. package/dist/server/modules/remotes/operations/install-host.operation.js +285 -27
  421. package/dist/server/modules/remotes/operations/install-host.operation.js.map +1 -1
  422. package/dist/server/modules/remotes/operations/remote-host.client.d.ts +51 -12
  423. package/dist/server/modules/remotes/operations/remote-host.client.js +129 -23
  424. package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
  425. package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +161 -0
  426. package/dist/server/modules/remotes/operations/remote-operation.dto.js +12 -1
  427. package/dist/server/modules/remotes/operations/remote-operation.dto.js.map +1 -1
  428. package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +4 -2
  429. package/dist/server/modules/remotes/operations/remote-operation.runner.js +53 -9
  430. package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
  431. package/dist/server/modules/remotes/operations/remote-operation.types.d.ts +6 -3
  432. package/dist/server/modules/remotes/operations/remote-operation.types.js +10 -1
  433. package/dist/server/modules/remotes/operations/remote-operation.types.js.map +1 -1
  434. package/dist/server/modules/remotes/operations/remote-operations.controller.d.ts +2 -3
  435. package/dist/server/modules/remotes/operations/remote-operations.controller.js +20 -25
  436. package/dist/server/modules/remotes/operations/remote-operations.controller.js.map +1 -1
  437. package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +11 -9
  438. package/dist/server/modules/remotes/operations/remote-operations.service.js +123 -118
  439. package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
  440. package/dist/server/modules/remotes/operations/remote-worktree-guard.d.ts +16 -0
  441. package/dist/server/modules/remotes/operations/remote-worktree-guard.js +100 -0
  442. package/dist/server/modules/remotes/operations/remote-worktree-guard.js.map +1 -0
  443. package/dist/server/modules/remotes/operations/reset-vm.operation.d.ts +15 -2
  444. package/dist/server/modules/remotes/operations/reset-vm.operation.js +115 -15
  445. package/dist/server/modules/remotes/operations/reset-vm.operation.js.map +1 -1
  446. package/dist/server/modules/remotes/operations/update-host.operation.d.ts +2 -0
  447. package/dist/server/modules/remotes/operations/update-host.operation.js +11 -5
  448. package/dist/server/modules/remotes/operations/update-host.operation.js.map +1 -1
  449. package/dist/server/modules/remotes/operations/vm-operations.controller.d.ts +5 -1
  450. package/dist/server/modules/remotes/operations/vm-operations.controller.js +36 -2
  451. package/dist/server/modules/remotes/operations/vm-operations.controller.js.map +1 -1
  452. package/dist/server/modules/remotes/operations/vm-operations.dto.d.ts +150 -0
  453. package/dist/server/modules/remotes/operations/vm-operations.dto.js +9 -1
  454. package/dist/server/modules/remotes/operations/vm-operations.dto.js.map +1 -1
  455. package/dist/server/modules/remotes/operations/vm-operations.service.d.ts +3 -1
  456. package/dist/server/modules/remotes/operations/vm-operations.service.js +38 -15
  457. package/dist/server/modules/remotes/operations/vm-operations.service.js.map +1 -1
  458. package/dist/server/modules/remotes/ports/remote-health.port.d.ts +2 -0
  459. package/dist/server/modules/remotes/ports/remote-health.port.js.map +1 -1
  460. package/dist/server/modules/remotes/remotes.module.js +47 -2
  461. package/dist/server/modules/remotes/remotes.module.js.map +1 -1
  462. package/dist/server/modules/remotes/services/home-shared-vm-notices.service.d.ts +18 -0
  463. package/dist/server/modules/remotes/services/home-shared-vm-notices.service.js +81 -0
  464. package/dist/server/modules/remotes/services/home-shared-vm-notices.service.js.map +1 -0
  465. package/dist/server/modules/remotes/services/remote-forced-detach.service.d.ts +11 -0
  466. package/dist/server/modules/remotes/services/remote-forced-detach.service.js +69 -0
  467. package/dist/server/modules/remotes/services/remote-forced-detach.service.js.map +1 -0
  468. package/dist/server/modules/remotes/services/remote-forced-detach.store.d.ts +23 -0
  469. package/dist/server/modules/remotes/services/remote-forced-detach.store.js +73 -0
  470. package/dist/server/modules/remotes/services/remote-forced-detach.store.js.map +1 -0
  471. package/dist/server/modules/remotes/services/remote-health.service.d.ts +7 -1
  472. package/dist/server/modules/remotes/services/remote-health.service.js +41 -4
  473. package/dist/server/modules/remotes/services/remote-health.service.js.map +1 -1
  474. package/dist/server/modules/remotes/services/remote-provider-usage-settings.service.d.ts +13 -0
  475. package/dist/server/modules/remotes/services/remote-provider-usage-settings.service.js +57 -0
  476. package/dist/server/modules/remotes/services/remote-provider-usage-settings.service.js.map +1 -0
  477. package/dist/server/modules/remotes/services/remote-shared-vm.service.d.ts +37 -0
  478. package/dist/server/modules/remotes/services/remote-shared-vm.service.js +184 -0
  479. package/dist/server/modules/remotes/services/remote-shared-vm.service.js.map +1 -0
  480. package/dist/server/modules/remotes/services/remote-shared-vm.store.d.ts +11 -0
  481. package/dist/server/modules/remotes/services/remote-shared-vm.store.js +75 -0
  482. package/dist/server/modules/remotes/services/remote-shared-vm.store.js.map +1 -0
  483. package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +5 -1
  484. package/dist/server/modules/remotes/sync/remote-file-sync.service.js +95 -41
  485. package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
  486. package/dist/server/modules/remotes/time/project-time-settler.dto.d.ts +2 -2
  487. package/dist/server/modules/remotes/transport/host-transport.d.ts +2 -0
  488. package/dist/server/modules/remotes/transport/host-transport.js +7 -0
  489. package/dist/server/modules/remotes/transport/host-transport.js.map +1 -1
  490. package/dist/server/modules/reviews/dtos/review.dto.d.ts +2 -2
  491. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.d.ts +5 -1
  492. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +25 -5
  493. package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
  494. package/dist/server/modules/session-reader/__fixtures__/opencode-fixture-db.d.ts +6 -4
  495. package/dist/server/modules/session-reader/__fixtures__/opencode-fixture-db.js +17 -20
  496. package/dist/server/modules/session-reader/__fixtures__/opencode-fixture-db.js.map +1 -1
  497. package/dist/server/modules/session-reader/__fixtures__/opencode-v2-fixture-db.d.ts +61 -0
  498. package/dist/server/modules/session-reader/__fixtures__/opencode-v2-fixture-db.js +250 -0
  499. package/dist/server/modules/session-reader/__fixtures__/opencode-v2-fixture-db.js.map +1 -0
  500. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +1 -0
  501. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +1 -0
  502. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  503. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +3 -1
  504. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js +34 -13
  505. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js.map +1 -1
  506. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +1 -0
  507. package/dist/server/modules/session-reader/data/pricing.json +302 -61
  508. package/dist/server/modules/session-reader/readers/opencode-sqlite.db.d.ts +73 -0
  509. package/dist/server/modules/session-reader/readers/opencode-sqlite.db.js +176 -0
  510. package/dist/server/modules/session-reader/readers/opencode-sqlite.db.js.map +1 -0
  511. package/dist/server/modules/session-reader/readers/opencode-sqlite.v1.reader.d.ts +45 -0
  512. package/dist/server/modules/session-reader/readers/{opencode-sqlite.reader.js → opencode-sqlite.v1.reader.js} +171 -164
  513. package/dist/server/modules/session-reader/readers/opencode-sqlite.v1.reader.js.map +1 -0
  514. package/dist/server/modules/session-reader/readers/opencode-sqlite.v2.reader.d.ts +15 -0
  515. package/dist/server/modules/session-reader/readers/opencode-sqlite.v2.reader.js +474 -0
  516. package/dist/server/modules/session-reader/readers/opencode-sqlite.v2.reader.js.map +1 -0
  517. package/dist/server/modules/session-reader/services/pricing.interface.d.ts +1 -0
  518. package/dist/server/modules/session-reader/services/pricing.interface.js.map +1 -1
  519. package/dist/server/modules/session-reader/services/pricing.service.d.ts +1 -0
  520. package/dist/server/modules/session-reader/services/pricing.service.js +3 -0
  521. package/dist/server/modules/session-reader/services/pricing.service.js.map +1 -1
  522. package/dist/server/modules/session-reader/services/session-reader.service.js +6 -1
  523. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
  524. package/dist/server/modules/sessions/services/message-enqueue.service.d.ts +3 -0
  525. package/dist/server/modules/sessions/services/message-enqueue.service.js +1 -0
  526. package/dist/server/modules/sessions/services/message-enqueue.service.js.map +1 -1
  527. package/dist/server/modules/sessions/services/message-pool.types.d.ts +6 -0
  528. package/dist/server/modules/sessions/services/message-pool.types.js +6 -1
  529. package/dist/server/modules/sessions/services/message-pool.types.js.map +1 -1
  530. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +2 -0
  531. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +18 -1
  532. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
  533. package/dist/server/modules/sessions/services/provider-runtime-preparation/launch-script.d.ts +5 -0
  534. package/dist/server/modules/sessions/services/provider-runtime-preparation/launch-script.js +37 -0
  535. package/dist/server/modules/sessions/services/provider-runtime-preparation/launch-script.js.map +1 -0
  536. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.d.ts +8 -1
  537. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +50 -2
  538. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -1
  539. package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.types.d.ts +1 -0
  540. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.d.ts +7 -2
  541. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js +4 -4
  542. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js.map +1 -1
  543. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +2 -0
  544. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +2 -0
  545. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  546. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +6 -7
  547. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  548. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +1 -2
  549. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  550. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +1 -0
  551. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +30 -0
  552. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  553. package/dist/server/modules/sessions/sessions.module.js +15 -0
  554. package/dist/server/modules/sessions/sessions.module.js.map +1 -1
  555. package/dist/server/modules/settings/dtos/settings.dto.d.ts +33 -0
  556. package/dist/server/modules/settings/dtos/settings.dto.js +2 -0
  557. package/dist/server/modules/settings/dtos/settings.dto.js.map +1 -1
  558. package/dist/server/modules/settings/local/delegates/core-settings.delegate.d.ts +3 -0
  559. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +35 -0
  560. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
  561. package/dist/server/modules/settings/local/delegates/provider-cli-settings.delegate.js +6 -1
  562. package/dist/server/modules/settings/local/delegates/provider-cli-settings.delegate.js.map +1 -1
  563. package/dist/server/modules/settings/services/settings.service.d.ts +2 -1
  564. package/dist/server/modules/settings/services/settings.service.js +3 -0
  565. package/dist/server/modules/settings/services/settings.service.js.map +1 -1
  566. package/dist/server/modules/storage/db/schema.d.ts +235 -0
  567. package/dist/server/modules/storage/db/schema.js +22 -1
  568. package/dist/server/modules/storage/db/schema.js.map +1 -1
  569. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +10 -2
  570. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  571. package/dist/server/modules/storage/local/delegates/project-replica.delegate.js +7 -0
  572. package/dist/server/modules/storage/local/delegates/project-replica.delegate.js.map +1 -1
  573. package/dist/server/modules/storage/local/delegates/worktree.delegate.d.ts +14 -0
  574. package/dist/server/modules/storage/local/delegates/worktree.delegate.js +89 -0
  575. package/dist/server/modules/storage/local/delegates/worktree.delegate.js.map +1 -0
  576. package/dist/server/modules/storage/local/helpers/host-abandoned-projects.d.ts +5 -0
  577. package/dist/server/modules/storage/local/helpers/host-abandoned-projects.js +39 -0
  578. package/dist/server/modules/storage/local/helpers/host-abandoned-projects.js.map +1 -0
  579. package/dist/server/modules/storage/local/local-storage.service.js +2 -0
  580. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  581. package/dist/server/modules/storage/local/storage-routes.d.ts +26 -0
  582. package/dist/server/modules/storage/local/storage-routes.js +9 -0
  583. package/dist/server/modules/storage/local/storage-routes.js.map +1 -1
  584. package/dist/server/modules/storage/models/domain.models.d.ts +20 -1
  585. package/dist/server/modules/storage/models/domain.models.js +1 -0
  586. package/dist/server/modules/storage/models/domain.models.js.map +1 -1
  587. package/dist/server/modules/storage/write-gate/storage-write-scope.d.ts +1 -0
  588. package/dist/server/modules/storage/write-gate/storage-write-scope.js +1 -0
  589. package/dist/server/modules/storage/write-gate/storage-write-scope.js.map +1 -1
  590. package/dist/server/modules/teams/services/teams.service.d.ts +46 -6
  591. package/dist/server/modules/teams/services/teams.service.js +129 -8
  592. package/dist/server/modules/teams/services/teams.service.js.map +1 -1
  593. package/dist/server/modules/teams/teams.module.js +14 -1
  594. package/dist/server/modules/teams/teams.module.js.map +1 -1
  595. package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +2 -2
  596. package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
  597. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.d.ts +1 -1
  598. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +6 -1
  599. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
  600. package/dist/server/modules/vm-providers/proxmox-vm.provider.d.ts +1 -0
  601. package/dist/server/modules/vm-providers/proxmox-vm.provider.js +17 -0
  602. package/dist/server/modules/vm-providers/proxmox-vm.provider.js.map +1 -1
  603. package/dist/server/modules/worktrees/git-output.d.ts +5 -0
  604. package/dist/server/modules/worktrees/git-output.js +53 -0
  605. package/dist/server/modules/worktrees/git-output.js.map +1 -0
  606. package/dist/server/modules/worktrees/host-worktrees.controller.d.ts +10 -0
  607. package/dist/server/modules/worktrees/host-worktrees.controller.js +59 -0
  608. package/dist/server/modules/worktrees/host-worktrees.controller.js.map +1 -0
  609. package/dist/server/modules/worktrees/host-worktrees.dto.d.ts +40 -0
  610. package/dist/server/modules/worktrees/host-worktrees.dto.js +9 -0
  611. package/dist/server/modules/worktrees/host-worktrees.dto.js.map +1 -0
  612. package/dist/server/modules/worktrees/project-git-mutex.d.ts +5 -0
  613. package/dist/server/modules/worktrees/project-git-mutex.js +38 -0
  614. package/dist/server/modules/worktrees/project-git-mutex.js.map +1 -0
  615. package/dist/server/modules/worktrees/worktree-admission.service.d.ts +15 -0
  616. package/dist/server/modules/worktrees/worktree-admission.service.js +87 -0
  617. package/dist/server/modules/worktrees/worktree-admission.service.js.map +1 -0
  618. package/dist/server/modules/worktrees/worktree-git-runner.d.ts +12 -0
  619. package/dist/server/modules/worktrees/worktree-git-runner.js +57 -0
  620. package/dist/server/modules/worktrees/worktree-git-runner.js.map +1 -0
  621. package/dist/server/modules/worktrees/worktrees.errors.d.ts +5 -0
  622. package/dist/server/modules/worktrees/worktrees.errors.js +11 -0
  623. package/dist/server/modules/worktrees/worktrees.errors.js.map +1 -0
  624. package/dist/server/modules/worktrees/worktrees.module.d.ts +2 -0
  625. package/dist/server/modules/worktrees/worktrees.module.js +37 -0
  626. package/dist/server/modules/worktrees/worktrees.module.js.map +1 -0
  627. package/dist/server/modules/worktrees/worktrees.service.d.ts +50 -0
  628. package/dist/server/modules/worktrees/worktrees.service.js +586 -0
  629. package/dist/server/modules/worktrees/worktrees.service.js.map +1 -0
  630. package/dist/server/modules/worktrees/worktrees.types.d.ts +58 -0
  631. package/dist/server/modules/worktrees/worktrees.types.js +3 -0
  632. package/dist/server/modules/worktrees/worktrees.types.js.map +1 -0
  633. package/dist/server/templates/teams-dev.json +6 -6
  634. package/dist/server/tsconfig.build.tsbuildinfo +1 -1
  635. package/dist/server/ui/assets/{ExternalRichEditor-CB-LjWox.js → ExternalRichEditor-NpBNzn_X.js} +1 -1
  636. package/dist/server/ui/assets/{ReviewDetailPage-CpMMjYet.js → ReviewDetailPage-DxVCE1zh.js} +1 -1
  637. package/dist/server/ui/assets/{ReviewsPage-Cw17_agp.js → ReviewsPage-Bx6jkULr.js} +1 -1
  638. package/dist/server/ui/assets/index-BZjQEWOy.css +32 -0
  639. package/dist/server/ui/assets/{index-DmRXRpSy.js → index-CLPZxkZt.js} +263 -263
  640. package/dist/server/ui/assets/{useReviewSubscription-wd5iHNQy.js → useReviewSubscription-BLuFzXjh.js} +1 -1
  641. package/dist/server/ui/index.html +2 -2
  642. package/dist/templates/teams-dev.json +6 -6
  643. package/npm-shrinkwrap.json +6189 -0
  644. package/package.json +22 -22
  645. package/dist/server/modules/file-sync/host-git-index.controller.d.ts +0 -10
  646. package/dist/server/modules/file-sync/host-git-index.controller.js +0 -67
  647. package/dist/server/modules/file-sync/host-git-index.controller.js.map +0 -1
  648. package/dist/server/modules/remotes/operations/git-owner.operation.d.ts +0 -35
  649. package/dist/server/modules/remotes/operations/git-owner.operation.js +0 -216
  650. package/dist/server/modules/remotes/operations/git-owner.operation.js.map +0 -1
  651. package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.d.ts +0 -73
  652. package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.js.map +0 -1
  653. package/dist/server/ui/assets/index-BwuNu70G.css +0 -32
@@ -14,6 +14,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.InstallHostOperation = exports.INSTALL_HOST_TIMING = exports.HOST_INSTALL_PREFLIGHT_TIMEOUT_MS = void 0;
16
16
  exports.accountHomeCheckCommand = accountHomeCheckCommand;
17
+ exports.joinedInstancePaths = joinedInstancePaths;
18
+ exports.installJobPaths = installJobPaths;
17
19
  const common_1 = require("@nestjs/common");
18
20
  const promises_1 = require("node:timers/promises");
19
21
  const logger_1 = require("../../../common/logging/logger");
@@ -28,9 +30,6 @@ const remote_host_client_1 = require("./remote-host.client");
28
30
  const remote_operation_errors_1 = require("./remote-operation.errors");
29
31
  const remote_operation_types_1 = require("./remote-operation.types");
30
32
  const logger = (0, logger_1.createLogger)('InstallHostOperation');
31
- const INSTALL_LOG = '/var/log/devchain-host-install.log';
32
- const INSTALL_EXIT = '/run/devchain-host-install.exit';
33
- const INSTALL_UNIT = 'devchain-host-install';
34
33
  const PEM_CERTIFICATE = /^-----BEGIN CERTIFICATE-----\r?\n[A-Za-z0-9+/=\r\n]+-----END CERTIFICATE-----$/;
35
34
  const SUDO_PASSWORD_FAILURE = /password is required|no password was provided|incorrect password|sorry, try again|authentication fail/i;
36
35
  exports.HOST_INSTALL_PREFLIGHT_TIMEOUT_MS = 12 * 60_000;
@@ -93,16 +92,41 @@ let InstallHostOperation = class InstallHostOperation {
93
92
  async completed(operation) {
94
93
  this.forget(operation.id);
95
94
  }
96
- retryFrom(operation) {
95
+ async retryFrom(operation) {
97
96
  this.cancellations.delete(operation.id);
97
+ const details = operation.details;
98
+ if (details.mode === 'join' && !details.claimed) {
99
+ if ((0, remote_operation_types_1.stepStarted)(operation, 'claim_claim') || !this.claim.hasJoinNonce(operation.id))
100
+ return 'install';
101
+ const runtime = details.tlsCertificate
102
+ ? await this.host.runtimeAt(details.bootstrapUrl, details.tlsCertificate).catch(() => null)
103
+ : null;
104
+ if (!runtime)
105
+ return 'install';
106
+ }
98
107
  const retry = this.claim.retryFrom(claimOperation(operation));
99
108
  return retry ? `claim_${retry}` : null;
100
109
  }
110
+ resumeFrom(operation) {
111
+ const details = operation.details;
112
+ return details.mode === 'join' && !details.claimed ? 'install' : null;
113
+ }
101
114
  async rollback(operation) {
102
115
  const details = operation.details;
103
116
  if (details.installStopRequired) {
104
117
  const credentials = this.requireCredentials(operation.id);
105
- await this.ssh.withSession({ host: details.address, credentials, expectedFingerprint: requireFingerprint(details) }, (session) => this.stopInstall(session, credentials, details));
118
+ await this.ssh.withSession({ host: details.address, credentials, expectedFingerprint: requireFingerprint(details) }, (session) => this.stopInstall(session, credentials, details, operation.id));
119
+ }
120
+ if (details.mode === 'join' && details.joinRequestId && details.joinInstallStarted) {
121
+ const credentials = this.requireCredentials(operation.id);
122
+ await this.ssh.withSession({ host: details.address, credentials, expectedFingerprint: requireFingerprint(details) }, async (session) => {
123
+ const ownClaim = await session.exec(privilegedCommand(credentials, `test ! -f ${(0, ssh_runner_1.shellQuote)(joinedInstancePaths(details.userName).claim)}`), sudoInput(credentials));
124
+ if (ownClaim.code !== 0)
125
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('CLAIM_STARTED', 'The joined instance is already claimed; cancelling it is refused.');
126
+ const result = await this.joinCommand(session, credentials, details, '--cancel-join');
127
+ if (result.code !== 0)
128
+ throw joinRefusal(result, 'HOST_JOIN_CANCEL_FAILED', 'Could not cancel the VM join; restore SSH access and cancel again.');
129
+ });
106
130
  }
107
131
  await this.claim.rollback(claimOperation(operation));
108
132
  this.forget(operation.id);
@@ -122,20 +146,45 @@ let InstallHostOperation = class InstallHostOperation {
122
146
  signal.throwIfAborted();
123
147
  install.checkWarnings = [];
124
148
  const credentials = this.requireCredentials(operation.id);
125
- const block = await this.renderBlock(install, true);
126
149
  const collidingHome = await this.ssh.withSession({
127
150
  host: install.address,
128
151
  credentials,
129
152
  expectedFingerprint: requireFingerprint(install),
130
153
  }, async (session) => {
131
154
  await this.probeSudo(session, credentials, signal);
155
+ const state = await session.exec(privilegedCommand(credentials, "sh -c 'if test -f /etc/devchain-host/claim.json; then printf __DEVCHAIN_HOST_STATE__claimed; else printf __DEVCHAIN_HOST_STATE__unclaimed; fi'"), sudoInput(credentials), { signal, capture: 'private' });
156
+ if (state.code !== 0 ||
157
+ !['__DEVCHAIN_HOST_STATE__claimed', '__DEVCHAIN_HOST_STATE__unclaimed'].includes(state.stdout.trim()))
158
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_CHECK_FAILED', 'Could not inspect the VM claim state.');
159
+ install.mode =
160
+ state.stdout.trim() === '__DEVCHAIN_HOST_STATE__claimed' ? 'join' : 'install';
161
+ if (install.mode === 'join') {
162
+ install.joinRequestId = operation.id;
163
+ install.requestedPort ??= install.port;
164
+ }
165
+ const block = await this.renderBlock(install, true);
132
166
  const path = await session.uploadTemp(block, { signal });
133
- const result = await session.exec(privilegedCommand(credentials, `bash ${(0, ssh_runner_1.shellQuote)(path)} --check`), sudoInput(credentials), { timeoutMs: exports.HOST_INSTALL_PREFLIGHT_TIMEOUT_MS, signal });
167
+ const result = await session.exec(privilegedCommand(credentials, `bash ${(0, ssh_runner_1.shellQuote)(path)} --check`), sudoInput(credentials), {
168
+ timeoutMs: exports.HOST_INSTALL_PREFLIGHT_TIMEOUT_MS,
169
+ signal,
170
+ ...(install.mode === 'join' ? { capture: 'private' } : {}),
171
+ });
134
172
  install.checkWarnings = `${result.stdout}\n${result.stderr}`
135
173
  .split(/\r?\n/)
136
174
  .filter((line) => line.startsWith('WARNING: '))
137
175
  .map((line) => line.slice('WARNING: '.length));
138
176
  if (result.code !== 0) {
177
+ if (install.mode === 'join') {
178
+ const refusal = parseJoinError(result);
179
+ if (refusal?.code === 'HOST_INSTALL_ACCOUNT_COLLISION')
180
+ return refusal.accountHome ?? 'another folder';
181
+ return {
182
+ joinError: refusal ?? {
183
+ code: 'HOST_JOIN_CHECK_FAILED',
184
+ message: 'The VM refused the join check.',
185
+ },
186
+ };
187
+ }
139
188
  const refusal = tail(`${result.stdout}\n${result.stderr}`.trim(), 2_000);
140
189
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_CHECK_FAILED', refusal || 'The VM refused the host installation check.');
141
190
  }
@@ -151,6 +200,8 @@ let InstallHostOperation = class InstallHostOperation {
151
200
  }
152
201
  return undefined;
153
202
  });
203
+ if (collidingHome && typeof collidingHome === 'object')
204
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError(collidingHome.joinError.code, collidingHome.joinError.message);
154
205
  if (collidingHome !== undefined) {
155
206
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_ACCOUNT_COLLISION', `The VM account ${install.userName} already uses the home folder ${collidingHome}. ` +
156
207
  `Correct that account's home folder to ${install.homePath}, or use a new VM.`);
@@ -176,6 +227,10 @@ let InstallHostOperation = class InstallHostOperation {
176
227
  async install({ operation, details, progress }) {
177
228
  const install = details;
178
229
  const credentials = this.requireCredentials(operation.id);
230
+ if (install.mode === 'join') {
231
+ await this.installJoin({ operation, details, progress }, credentials);
232
+ return;
233
+ }
179
234
  const block = await this.renderBlock(install, false);
180
235
  const { signal } = this.cancellation(operation.id);
181
236
  signal.throwIfAborted();
@@ -186,24 +241,24 @@ let InstallHostOperation = class InstallHostOperation {
186
241
  expectedFingerprint: requireFingerprint(install),
187
242
  }, async (session) => {
188
243
  try {
189
- const status = await this.installStatus(session, credentials, deadline, signal);
244
+ const status = await this.installStatus(session, credentials, deadline, signal, operation.id);
190
245
  if (status === 'absent') {
191
246
  const path = await session.uploadTemp(block, { deadlineAt: deadline, signal });
192
247
  signal.throwIfAborted();
193
- const start = await session.exec(privilegedCommand(credentials, detachedInstallCommand(path)), sudoInput(credentials), { deadlineAt: deadline, timeoutMs: 5_000 });
248
+ const start = await session.exec(privilegedCommand(credentials, detachedInstallCommand(path, operation.id)), sudoInput(credentials), { deadlineAt: deadline, timeoutMs: 5_000 });
194
249
  if (start.code !== 0) {
195
250
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_START_FAILED', tail(start.stderr || start.stdout, 2_000) ||
196
251
  'Could not start the host installation.');
197
252
  }
198
253
  }
199
- await this.waitForInstall(session, credentials, progress, deadline, signal);
254
+ await this.waitForInstall(session, credentials, progress, deadline, signal, operation.id);
200
255
  signal.throwIfAborted();
201
256
  return await this.readCertificate(session, credentials, signal);
202
257
  }
203
258
  catch (error) {
204
259
  if (signal.aborted) {
205
260
  install.installStopRequired = true;
206
- await this.stopInstall(session, credentials, install);
261
+ await this.stopInstall(session, credentials, install, operation.id);
207
262
  }
208
263
  throw error;
209
264
  }
@@ -211,16 +266,137 @@ let InstallHostOperation = class InstallHostOperation {
211
266
  await this.storage.updateRemoteTlsCertificate(operation.remoteId, certificate);
212
267
  install.tlsCertificate = certificate;
213
268
  }
269
+ async installJoin(run, credentials, deadline = Date.now() + this.timing.installTimeoutMs) {
270
+ const { operation, progress } = run;
271
+ const details = run.details;
272
+ const { signal } = this.cancellation(operation.id);
273
+ signal.throwIfAborted();
274
+ await this.ssh.withSession({ host: details.address, credentials, expectedFingerprint: requireFingerprint(details) }, async (session) => {
275
+ try {
276
+ if ((0, remote_operation_types_1.stepStarted)(operation, 'claim_claim')) {
277
+ const claimFile = joinedInstancePaths(details.userName).claim;
278
+ for (;;) {
279
+ signal.throwIfAborted();
280
+ const recorded = await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(`if test -f ${(0, ssh_runner_1.shellQuote)(claimFile)}; then cat ${(0, ssh_runner_1.shellQuote)(claimFile)}; fi`)}`), sudoInput(credentials), { signal, deadlineAt: deadline, capture: 'private' });
281
+ if (recorded.code !== 0)
282
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_STATE_FAILED', 'Could not inspect this instance after the earlier claim.');
283
+ if (recorded.stdout.trim()) {
284
+ const record = JSON.parse(recorded.stdout);
285
+ if (!isJoinRecord(record, details) ||
286
+ record.port !== details.port ||
287
+ record.version !== details.version)
288
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('INSTANCE_EXISTS', 'The existing instance does not match this join attempt.');
289
+ const started = await session.exec(privilegedCommand(credentials, `systemctl start --no-block ${(0, ssh_runner_1.shellQuote)(joinedInstancePaths(details.userName).unit)}`), sudoInput(credentials), { signal });
290
+ if (started.code !== 0)
291
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_START_FAILED', 'Could not start the recorded instance service.');
292
+ await this.saveJoinedAddress(operation.remoteId, details, session, credentials, signal);
293
+ details.claimed = true;
294
+ return;
295
+ }
296
+ const certificate = details.tlsCertificate ?? (await this.host.certificateOf(operation.remoteId));
297
+ const runtime = await this.host
298
+ .runtimeAt(details.bootstrapUrl, certificate)
299
+ .catch(() => null);
300
+ if (!claimInFlight(runtime))
301
+ break;
302
+ if (Date.now() >= deadline)
303
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_CLAIM_TIMEOUT', 'The earlier claim did not record this instance within the installation timeout.');
304
+ await (0, promises_1.setTimeout)(Math.min(this.timing.pollIntervalMs, deadline - Date.now()), undefined, { signal });
305
+ }
306
+ }
307
+ details.joinInstallStarted = true;
308
+ await progress({ joinInstallStarted: true }, { durable: true });
309
+ const status = await this.installStatus(session, credentials, deadline, signal, operation.id);
310
+ if (status === 'absent') {
311
+ const file = await session.uploadTemp(await this.renderBlock(details, false), {
312
+ signal,
313
+ deadlineAt: deadline,
314
+ });
315
+ const result = await session.exec(privilegedCommand(credentials, detachedInstallCommand(file, operation.id)), sudoInput(credentials), { deadlineAt: deadline, timeoutMs: 5_000 });
316
+ if (result.code !== 0)
317
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_START_FAILED', 'Could not start the detached VM join.');
318
+ }
319
+ await this.waitForInstall(session, credentials, progress, deadline, signal, operation.id, true);
320
+ signal.throwIfAborted();
321
+ const result = await this.joinCommand(session, credentials, details, '--reserve-join', signal);
322
+ if (result.code !== 0)
323
+ throw joinRefusal(result, 'HOST_JOIN_RESERVE_FAILED', 'Could not resume the join reservation.');
324
+ let reservation;
325
+ try {
326
+ reservation = JSON.parse(result.stdout);
327
+ }
328
+ catch {
329
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_RESERVATION_INVALID', 'The VM returned an invalid join reservation.');
330
+ }
331
+ if (!isJoinRecord(reservation, details) ||
332
+ typeof reservation.nonce !== 'string' ||
333
+ !/^[a-f0-9]{64}$/.test(reservation.nonce) ||
334
+ reservation.requestId !== details.joinRequestId ||
335
+ typeof reservation.expiresAt !== 'string' ||
336
+ !Number.isFinite(Date.parse(reservation.expiresAt)))
337
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_RESERVATION_INVALID', 'The VM returned a mismatched join reservation.');
338
+ this.claim.seedJoinNonce(operation.id, reservation.nonce);
339
+ details.port = reservation.port;
340
+ details.joinExpiresAt = reservation.expiresAt;
341
+ const url = new URL(details.bootstrapUrl);
342
+ url.port = String(reservation.port);
343
+ url.protocol = 'https:';
344
+ details.bootstrapUrl = url.origin;
345
+ await progress({
346
+ port: details.port,
347
+ bootstrapUrl: details.bootstrapUrl,
348
+ joinExpiresAt: details.joinExpiresAt,
349
+ }, { durable: true });
350
+ await this.saveJoinedAddress(operation.remoteId, details, session, credentials, signal);
351
+ }
352
+ catch (error) {
353
+ if (signal.aborted) {
354
+ details.installStopRequired = true;
355
+ await this.stopInstall(session, credentials, details, operation.id);
356
+ }
357
+ throw error;
358
+ }
359
+ });
360
+ }
361
+ async saveJoinedAddress(remoteId, details, session, credentials, signal) {
362
+ const certificate = await this.readCertificate(session, credentials, signal);
363
+ await this.storage.updateRemoteBaseUrl(remoteId, details.bootstrapUrl);
364
+ await this.storage.updateRemoteTlsCertificate(remoteId, certificate);
365
+ details.tlsCertificate = certificate;
366
+ }
367
+ async joinCommand(session, credentials, details, mode, signal) {
368
+ const input = {
369
+ userName: details.userName,
370
+ homePath: details.homePath,
371
+ port: details.requestedPort ?? details.port,
372
+ requestId: details.joinRequestId,
373
+ uid: details.uid,
374
+ gid: details.gid,
375
+ };
376
+ const file = await session.uploadTemp(JSON.stringify(input), { signal });
377
+ const own = joinedInstancePaths(details.userName);
378
+ const helper = own.bootstrap;
379
+ const cleanup = `test ! -f ${(0, ssh_runner_1.shellQuote)(own.claim)} && test ! -f ${(0, ssh_runner_1.shellQuote)(own.join)} || exit 3; rm -rf ${(0, ssh_runner_1.shellQuote)(own.prefix)}`;
380
+ const command = mode === '--cancel-join'
381
+ ? `if test -x ${(0, ssh_runner_1.shellQuote)(helper)}; then ${(0, ssh_runner_1.shellQuote)(helper)} ${mode} <${(0, ssh_runner_1.shellQuote)(file)} || exit $?; else printf '{"cancelled":true}\\n'; fi; flock --exclusive /etc/devchain-host/registry.lock sh -c ${(0, ssh_runner_1.shellQuote)(cleanup)}`
382
+ : `${(0, ssh_runner_1.shellQuote)(helper)} ${mode} <${(0, ssh_runner_1.shellQuote)(file)}`;
383
+ try {
384
+ return await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(command)}`), sudoInput(credentials), { signal, timeoutMs: ssh_runner_1.SSH_COMMAND_TIMEOUT_MS, capture: 'private' });
385
+ }
386
+ finally {
387
+ await session.exec(`rm -f ${(0, ssh_runner_1.shellQuote)(file)}`).catch(() => undefined);
388
+ }
389
+ }
214
390
  async readCertificate(session, credentials, signal) {
215
- const result = await session.exec(privilegedCommand(credentials, `cat ${(0, ssh_runner_1.shellQuote)(host_install_block_1.HOST_CERTIFICATE_PATH)}`), sudoInput(credentials), { timeoutMs: ssh_runner_1.SSH_COMMAND_TIMEOUT_MS, signal });
391
+ const result = await session.exec(privilegedCommand(credentials, `cat ${(0, ssh_runner_1.shellQuote)(host_install_block_1.HOST_CERTIFICATE_PATH)}`), sudoInput(credentials), { timeoutMs: ssh_runner_1.SSH_COMMAND_TIMEOUT_MS, signal, capture: 'private' });
216
392
  if (result.code !== 0) {
217
- throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_TLS_CERTIFICATE_UNREADABLE', `Could not read the VM certificate ${host_install_block_1.HOST_CERTIFICATE_PATH} over SSH` +
218
- (result.stderr.trim() ? `: ${tail(result.stderr.trim(), 300)}` : '.'));
393
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_TLS_CERTIFICATE_UNREADABLE', `Could not read the VM certificate ${host_install_block_1.HOST_CERTIFICATE_PATH} over SSH.`);
219
394
  }
220
395
  return parseVmCertificate(result.stdout);
221
396
  }
222
- async installStatus(session, credentials, deadline, signal) {
223
- const command = `if test -f ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}; then printf finished; elif systemctl is-active --quiet ${(0, ssh_runner_1.shellQuote)(INSTALL_UNIT)}; then printf active; else printf absent; fi`;
397
+ async installStatus(session, credentials, deadline, signal, operationId) {
398
+ const job = installJobPaths(operationId);
399
+ const command = `if test -f ${(0, ssh_runner_1.shellQuote)(job.exit)}; then printf finished; elif systemctl is-active --quiet ${(0, ssh_runner_1.shellQuote)(job.unit)}; then printf active; else printf absent; fi`;
224
400
  const result = await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(command)}`), sudoInput(credentials), { deadlineAt: deadline, signal });
225
401
  if (result.code !== 0) {
226
402
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_STATUS_FAILED', 'Could not read the detached installer status.');
@@ -228,10 +404,11 @@ let InstallHostOperation = class InstallHostOperation {
228
404
  const status = result.stdout.trim();
229
405
  return status === 'active' || status === 'finished' ? status : 'absent';
230
406
  }
231
- async waitForInstall(session, credentials, progress, deadline, signal) {
407
+ async waitForInstall(session, credentials, progress, deadline, signal, operationId, join = false) {
232
408
  for (;;) {
233
409
  signal.throwIfAborted();
234
- const command = `tail -n 80 ${(0, ssh_runner_1.shellQuote)(INSTALL_LOG)} 2>/dev/null || true; printf '\\n__DEVCHAIN_EXIT__'; test ! -f ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)} || cat ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}`;
410
+ const job = installJobPaths(operationId);
411
+ const command = `tail -n 80 ${(0, ssh_runner_1.shellQuote)(job.log)} 2>/dev/null || true; printf '\\n__DEVCHAIN_EXIT__'; test ! -f ${(0, ssh_runner_1.shellQuote)(job.exit)} || cat ${(0, ssh_runner_1.shellQuote)(job.exit)}`;
235
412
  const result = await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(command)}`), sudoInput(credentials), { deadlineAt: deadline, signal });
236
413
  if (result.code !== 0) {
237
414
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_STATUS_FAILED', 'Could not read the detached installer log and exit status.');
@@ -243,7 +420,9 @@ let InstallHostOperation = class InstallHostOperation {
243
420
  const exitCode = /^\d+$/.test(exitText.trim()) ? Number(exitText.trim()) : null;
244
421
  if (exitCode !== null) {
245
422
  if (exitCode !== 0) {
246
- await session.exec(privilegedCommand(credentials, `rm -f ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}`), sudoInput(credentials));
423
+ await session.exec(privilegedCommand(credentials, `rm -f ${(0, ssh_runner_1.shellQuote)(job.exit)}`), sudoInput(credentials));
424
+ if (join)
425
+ throw joinRefusal({ code: exitCode, stdout: logTail, stderr: '' }, 'HOST_JOIN_FAILED', 'The detached VM join failed.');
247
426
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_FAILED', logTail || `The detached installer failed with code ${exitCode}.`);
248
427
  }
249
428
  return;
@@ -256,11 +435,14 @@ let InstallHostOperation = class InstallHostOperation {
256
435
  });
257
436
  }
258
437
  }
259
- async waitBootstrap({ operation, details }) {
438
+ async waitBootstrap(run) {
439
+ const { operation, details } = run;
260
440
  const install = details;
261
441
  const { signal } = this.cancellation(operation.id);
262
442
  const certificate = install.tlsCertificate ?? (await this.host.certificateOf(operation.remoteId));
263
- const deadline = Date.now() + this.timing.bootstrapTimeoutMs;
443
+ const recoveringClaim = install.mode === 'join' && !install.claimed && (0, remote_operation_types_1.stepStarted)(operation, 'claim_claim');
444
+ let deadline = Date.now() +
445
+ (recoveringClaim ? this.timing.installTimeoutMs : this.timing.bootstrapTimeoutMs);
264
446
  for (;;) {
265
447
  signal.throwIfAborted();
266
448
  const runtime = await this.host
@@ -269,6 +451,16 @@ let InstallHostOperation = class InstallHostOperation {
269
451
  if (runtime?.state === 'unclaimed' && (0, host_image_1.isSupportedHostImage)(runtime.imageVersion)) {
270
452
  return;
271
453
  }
454
+ if (recoveringClaim && !install.claimed && Date.now() >= deadline)
455
+ throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_JOIN_CLAIM_TIMEOUT', 'The earlier claim did not record this instance within the installation timeout.');
456
+ if (recoveringClaim && !install.claimed && claimInFlight(runtime)) {
457
+ await this.installJoin(run, this.requireCredentials(operation.id), deadline);
458
+ if (install.claimed)
459
+ deadline = Date.now() + this.timing.bootstrapTimeoutMs;
460
+ continue;
461
+ }
462
+ if (install.mode === 'join' && install.claimed && runtime?.version === install.version)
463
+ return;
272
464
  if (Date.now() >= deadline) {
273
465
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_BOOTSTRAP_TIMEOUT', 'The installed host bootstrap did not become ready within 60 seconds.');
274
466
  }
@@ -285,9 +477,10 @@ let InstallHostOperation = class InstallHostOperation {
285
477
  }
286
478
  return controller;
287
479
  }
288
- async stopInstall(session, credentials, details) {
289
- const unit = (0, ssh_runner_1.shellQuote)(INSTALL_UNIT);
290
- const command = `systemctl kill --signal=SIGKILL ${unit}; systemctl stop ${unit} || { test "$(systemctl show ${unit} --property=LoadState --value)" = not-found || exit 1; }; rm -f ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}`;
480
+ async stopInstall(session, credentials, details, operationId) {
481
+ const job = installJobPaths(operationId);
482
+ const unit = (0, ssh_runner_1.shellQuote)(job.unit);
483
+ const command = `systemctl kill --signal=SIGKILL ${unit}; systemctl stop ${unit} || { test "$(systemctl show ${unit} --property=LoadState --value)" = not-found || exit 1; }; rm -f ${(0, ssh_runner_1.shellQuote)(job.exit)}`;
291
484
  const stopped = await session.exec(privilegedCommand(credentials, `sh -c ${(0, ssh_runner_1.shellQuote)(command)}`), sudoInput(credentials), { timeoutMs: 5_000 });
292
485
  if (stopped.code !== 0) {
293
486
  throw new remote_operation_errors_1.RemoteOperationStepRefusedError('HOST_INSTALL_STOP_FAILED', 'Could not stop the detached installer and clear its status on the VM. Check SSH access and cancel again.');
@@ -302,6 +495,17 @@ let InstallHostOperation = class InstallHostOperation {
302
495
  return credentials;
303
496
  }
304
497
  renderBlock(details, checkOnly) {
498
+ if (details.mode === 'join')
499
+ return this.hostInstall.renderJoin({
500
+ minDiskGib: details.minDiskGib,
501
+ homePort: details.requestedPort ?? details.port,
502
+ homeUser: details.userName,
503
+ homePath: details.homePath,
504
+ uid: details.uid,
505
+ gid: details.gid,
506
+ requestId: details.joinRequestId ?? '',
507
+ checkOnly,
508
+ });
305
509
  return this.hostInstall.render({
306
510
  minDiskGib: details.minDiskGib,
307
511
  homePort: details.port,
@@ -329,9 +533,30 @@ function accountHomeCheckCommand(userName, homePath) {
329
533
  const script = `home=$(getent passwd ${(0, ssh_runner_1.shellQuote)(userName)}) || exit $?; home=$(printf '%s' "$home" | cut -d: -f6); [ "$home" = ${(0, ssh_runner_1.shellQuote)(homePath)} ] && exit 0; printf '%s' "$home"; exit ${ACCOUNT_HOME_MISMATCH_EXIT}`;
330
534
  return `sh -c ${(0, ssh_runner_1.shellQuote)(script)}`;
331
535
  }
332
- function detachedInstallCommand(path) {
333
- const run = `bash "$1"; code=$?; printf '%s\\n' "$code" > ${(0, ssh_runner_1.shellQuote)(INSTALL_EXIT)}; exit "$code"`;
334
- return `systemd-run --unit=${(0, ssh_runner_1.shellQuote)(INSTALL_UNIT)} --collect --no-block --property=${(0, ssh_runner_1.shellQuote)(`StandardOutput=append:${INSTALL_LOG}`)} --property=${(0, ssh_runner_1.shellQuote)(`StandardError=append:${INSTALL_LOG}`)} bash -c ${(0, ssh_runner_1.shellQuote)(run)} _ ${(0, ssh_runner_1.shellQuote)(path)}`;
536
+ function detachedInstallCommand(path, operationId) {
537
+ const job = installJobPaths(operationId);
538
+ const run = `bash "$1"; code=$?; printf '%s\\n' "$code" > ${(0, ssh_runner_1.shellQuote)(job.exit)}; exit "$code"`;
539
+ return `systemd-run --unit=${(0, ssh_runner_1.shellQuote)(job.unit)} --collect --no-block --property=${(0, ssh_runner_1.shellQuote)(`StandardOutput=append:${job.log}`)} --property=${(0, ssh_runner_1.shellQuote)(`StandardError=append:${job.log}`)} bash -c ${(0, ssh_runner_1.shellQuote)(run)} _ ${(0, ssh_runner_1.shellQuote)(path)}`;
540
+ }
541
+ function claimInFlight(runtime) {
542
+ return (runtime?.state === 'claiming' || runtime?.state === 'handover' || Boolean(runtime?.version));
543
+ }
544
+ function joinedInstancePaths(userName) {
545
+ const etc = `/etc/devchain-host/instances/${userName}`;
546
+ const prefix = `/opt/devchain-host/instances/${userName}`;
547
+ return {
548
+ claim: `${etc}/claim.json`,
549
+ join: `${etc}/join.json`,
550
+ prefix,
551
+ bootstrap: `${prefix}/helper/bin/devchain-bootstrap`,
552
+ unit: `devchain-user-${userName}.service`,
553
+ };
554
+ }
555
+ function installJobPaths(operationId) {
556
+ if (!/^[A-Za-z0-9_-]+$/.test(operationId))
557
+ throw new Error('Invalid SSH operation id.');
558
+ const unit = `devchain-host-install-${operationId}`;
559
+ return { unit, log: `/var/log/${unit}.log`, exit: `/run/${unit}.exit` };
335
560
  }
336
561
  function privilegedCommand(credentials, command) {
337
562
  return credentials.user === 'root' ? command : `sudo -S -p '' ${command}`;
@@ -364,4 +589,37 @@ function tail(value, max) {
364
589
  function claimOperation(operation) {
365
590
  return (0, remote_operation_types_1.withStepPrefix)(operation, 'claim_');
366
591
  }
592
+ function isJoinRecord(value, details) {
593
+ if (!value || typeof value !== 'object')
594
+ return false;
595
+ const record = value;
596
+ return (record.userName === details.userName &&
597
+ record.homePath === details.homePath &&
598
+ typeof record.port === 'number' &&
599
+ Number.isInteger(record.port) &&
600
+ record.port >= 1024 &&
601
+ record.port <= 65535);
602
+ }
603
+ function parseJoinError(result) {
604
+ for (const line of `${result.stdout}\n${result.stderr}`.split(/\r?\n/).reverse()) {
605
+ try {
606
+ const parsed = JSON.parse(line);
607
+ if (!parsed || typeof parsed !== 'object')
608
+ continue;
609
+ const error = parsed;
610
+ if (typeof error.code === 'string' && typeof error.message === 'string')
611
+ return {
612
+ code: error.code,
613
+ message: error.message.replace(/\b[a-f0-9]{64}\b/gi, '[REDACTED]'),
614
+ ...(typeof error.accountHome === 'string' ? { accountHome: error.accountHome } : {}),
615
+ };
616
+ }
617
+ catch { }
618
+ }
619
+ return null;
620
+ }
621
+ function joinRefusal(result, code, message) {
622
+ const error = parseJoinError(result);
623
+ return new remote_operation_errors_1.RemoteOperationStepRefusedError(error?.code ?? code, error?.message ?? message);
624
+ }
367
625
  //# sourceMappingURL=install-host.operation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-host.operation.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/install-host.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-host.operation.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/install-host.operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAm1BA,0DAIC;AAgBD,kDAUC;AAED,0CAIC;AAv3BD,2CAA8D;AAC9D,mDAAoE;AACpE,2DAA8D;AAC9D,iEAAuE;AACvE,kFAAiG;AACjG,2EAA2E;AAC3E,+EAA0E;AAC1E,2DAOoC;AACpC,uDAAsE;AACtE,8CAA6E;AAC7E,6DAAwD;AACxD,uEAA4E;AAC5E,qEAOkC;AAGlC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,sBAAsB,CAAC,CAAC;AACpD,MAAM,eAAe,GACnB,gFAAgF,CAAC;AAEnF,MAAM,qBAAqB,GACzB,wGAAwG,CAAC;AAC9F,QAAA,iCAAiC,GAAG,EAAE,GAAG,MAAM,CAAC;AAQhD,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACjE,MAAM,cAAc,GAAsB;IACxC,gBAAgB,EAAE,EAAE,GAAG,MAAM;IAC7B,kBAAkB,EAAE,MAAM;IAC1B,cAAc,EAAE,KAAK;CACtB,CAAC;AAmBK,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAQZ;IACA;IACA;IACA;IACyB;IAXnC,IAAI,GAAG,cAAuB,CAAC;IAC/B,KAAK,CAA2C;IACxC,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,MAAM,CAAoB;IAC1B,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEpE,YACmB,GAAc,EACd,WAA+B,EAC/B,IAAsB,EACtB,KAAqB,EACI,OAAsB,EACvB,MAA0B;QALlD,QAAG,GAAH,GAAG,CAAW;QACd,gBAAW,GAAX,WAAW,CAAoB;QAC/B,SAAI,GAAJ,IAAI,CAAkB;QACtB,UAAK,GAAL,KAAK,CAAgB;QACI,YAAO,GAAP,OAAO,CAAe;QAGhE,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,cAAc,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG;YACX,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,4BAA4B,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC3F,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAClF,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtF;gBACE,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,wBAAwB;gBAC/B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aACtC;YACD,GAAG,IAAA,oCAAW,EAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC;SACtC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,WAAmB,EAAE,WAA2B;QAC9D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,iBAAiB,CAAC,SAA0B;QAC1C,IAAI,IAAA,oCAAW,EAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,SAAS,CAAC,WAAmB;QAC3B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,WAAmB;QACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAA0B;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAA0B;QAExC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAwC,CAAC;QACnE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,IAAA,oCAAW,EAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjF,OAAO,SAAS,CAAC;YACnB,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc;gBACpC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;gBAC3F,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC;QACjC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,SAA0B;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAwC,CAAC;QACnE,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAA0B;QACvC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAwC,CAAC;QACnE,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CACxB,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,EACxF,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAC3E,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACnF,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CACxB,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,EACxF,KAAK,EAAE,OAAO,EAAE,EAAE;gBAChB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CACjC,iBAAiB,CACf,WAAW,EACX,aAAa,IAAA,uBAAU,EAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CACvE,EACD,SAAS,CAAC,WAAW,CAAC,CACvB,CAAC;gBACF,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;oBACrB,MAAM,IAAI,yDAA+B,CACvC,eAAe,EACf,mEAAmE,CACpE,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;gBACtF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;oBACnB,MAAM,WAAW,CACf,MAAM,EACN,yBAAyB,EACzB,oEAAoE,CACrE,CAAC;YACN,CAAC,CACF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,EAA0B;QAClE,MAAM,OAAO,GAAG,OAAwC,CAAC;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,kBAAkB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAClD,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,WAAW;YACX,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;SAChD,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAA0B;QAChE,MAAM,OAAO,GAAG,OAAwC,CAAC;QACzD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAC9C;YACE,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,WAAW;YACX,mBAAmB,EAAE,kBAAkB,CAAC,OAAO,CAAC;SACjD,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;YAChB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAC9B,iBAAiB,CACf,WAAW,EACX,gJAAgJ,CACjJ,EACD,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAC/B,CAAC;YACF,IACE,KAAK,CAAC,IAAI,KAAK,CAAC;gBAChB,CAAC,CAAC,gCAAgC,EAAE,kCAAkC,CAAC,CAAC,QAAQ,CAC9E,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CACpB;gBAED,MAAM,IAAI,yDAA+B,CACvC,2BAA2B,EAC3B,uCAAuC,CACxC,CAAC;YACJ,OAAO,CAAC,IAAI;gBACV,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,gCAAgC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAChF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC;YACzC,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAC/B,iBAAiB,CAAC,WAAW,EAAE,QAAQ,IAAA,uBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,EAClE,SAAS,CAAC,WAAW,CAAC,EACtB;gBACE,SAAS,EAAE,yCAAiC;gBAC5C,MAAM;gBACN,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE,CACF,CAAC;YACF,OAAO,CAAC,aAAa,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;iBACzD,KAAK,CAAC,OAAO,CAAC;iBACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;iBAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;oBACvC,IAAI,OAAO,EAAE,IAAI,KAAK,gCAAgC;wBACpD,OAAO,OAAO,CAAC,WAAW,IAAI,gBAAgB,CAAC;oBACjD,OAAO;wBACL,SAAS,EAAE,OAAO,IAAI;4BACpB,IAAI,EAAE,wBAAwB;4BAC9B,OAAO,EAAE,gCAAgC;yBAC1C;qBACF,CAAC;gBACJ,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;gBACzE,MAAM,IAAI,yDAA+B,CACvC,2BAA2B,EAC3B,OAAO,IAAI,6CAA6C,CACzD,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAChC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3D,EAAE,EACF,EAAE,MAAM,EAAE,CACX,CAAC;YACF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,EAC7B,8CAA8C,CAC/C,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;gBACvD,OAAO,OAAO,CAAC,MAAM,CAAC;YACxB,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,yDAA+B,CACvC,mCAAmC,EACnC,kDAAkD,CACnD,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CACF,CAAC;QAGF,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ;YACpD,MAAM,IAAI,yDAA+B,CACvC,aAAa,CAAC,SAAS,CAAC,IAAI,EAC5B,aAAa,CAAC,SAAS,CAAC,OAAO,CAChC,CAAC;QACJ,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,yDAA+B,CACvC,gCAAgC,EAChC,kBAAkB,OAAO,CAAC,QAAQ,iCAAiC,aAAa,IAAI;gBAClF,yCAAyC,OAAO,CAAC,QAAQ,oBAAoB,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;IAOO,KAAK,CAAC,SAAS,CACrB,OAAmB,EACnB,WAA2B,EAC3B,MAAmB;QAEnB,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO;QAExC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAC9B,gBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EACxD,SAAS,CAAC,WAAW,CAAC,EACtB;YACE,SAAS,EAAE,mCAAsB;YACjC,MAAM;SACP,CACF,CAAC;QACF,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAC7B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,yDAA+B,CACvC,2BAA2B,EAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,6BAA6B,WAAW,CAAC,IAAI,GAAG,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,IAAI,yDAA+B,CACvC,4BAA4B,EAC5B,aAAa;YACX,CAAC,CAAC,wCAAwC,WAAW,CAAC,IAAI,GAAG;YAC7D,CAAC,CAAC,uCAAuC,WAAW,CAAC,IAAI,sCAAsC,CAClG,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAA0B;QAC5E,MAAM,OAAO,GAAG,OAAwC,CAAC;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAC5C;YACE,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,WAAW;YACX,mBAAmB,EAAE,kBAAkB,CAAC,OAAO,CAAC;SACjD,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CACrC,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,SAAS,CAAC,EAAE,CACb,CAAC;gBACF,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC/E,MAAM,CAAC,cAAc,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAC9B,iBAAiB,CAAC,WAAW,EAAE,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAC1E,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAC3C,CAAC;oBACF,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;wBACrB,MAAM,IAAI,yDAA+B,CACvC,2BAA2B,EAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;4BACvC,wCAAwC,CAC3C,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC1F,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;oBACnC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;gBACtE,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/E,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,GAA2B,EAC3B,WAA2B,EAC3B,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB;QAEpD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAwC,CAAC;QAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CACxB,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,EACxF,KAAK,EAAE,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC;gBACH,IAAI,IAAA,oCAAW,EAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;oBAC1C,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;oBAC9D,SAAS,CAAC;wBACR,MAAM,CAAC,cAAc,EAAE,CAAC;wBACxB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CACjC,iBAAiB,CACf,WAAW,EACX,SAAS,IAAA,uBAAU,EAAC,cAAc,IAAA,uBAAU,EAAC,SAAS,CAAC,cAAc,IAAA,uBAAU,EAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACpG,EACD,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CACrD,CAAC;wBACF,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;4BACrB,MAAM,IAAI,yDAA+B,CACvC,wBAAwB,EACxB,0DAA0D,CAC3D,CAAC;wBACJ,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;4BAC3B,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;4BACpD,IACE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;gCAC9B,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;gCAC5B,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;gCAElC,MAAM,IAAI,yDAA+B,CACvC,iBAAiB,EACjB,yDAAyD,CAC1D,CAAC;4BACJ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAChC,iBAAiB,CACf,WAAW,EACX,8BAA8B,IAAA,uBAAU,EAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CACvF,EACD,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,MAAM,EAAE,CACX,CAAC;4BACF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;gCACpB,MAAM,IAAI,yDAA+B,CACvC,wBAAwB,EACxB,gDAAgD,CACjD,CAAC;4BACJ,MAAM,IAAI,CAAC,iBAAiB,CAC1B,SAAS,CAAC,QAAQ,EAClB,OAAO,EACP,OAAO,EACP,WAAW,EACX,MAAM,CACP,CAAC;4BACF,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;4BACvB,OAAO;wBACT,CAAC;wBACD,MAAM,WAAW,GACf,OAAO,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAChF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI;6BAC5B,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC;6BAC5C,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;wBACrB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;4BAAE,MAAM;wBACnC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;4BACxB,MAAM,IAAI,yDAA+B,CACvC,yBAAyB,EACzB,iFAAiF,CAClF,CAAC;wBACJ,MAAM,IAAA,qBAAc,EAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAC3D,SAAS,EACT,EAAE,MAAM,EAAE,CACX,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAClC,MAAM,QAAQ,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CACrC,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,SAAS,CAAC,EAAE,CACb,CAAC;gBACF,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;wBAC5E,MAAM;wBACN,UAAU,EAAE,QAAQ;qBACrB,CAAC,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAC/B,iBAAiB,CAAC,WAAW,EAAE,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAC1E,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAC3C,CAAC;oBACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;wBACnB,MAAM,IAAI,yDAA+B,CACvC,wBAAwB,EACxB,uCAAuC,CACxC,CAAC;gBACN,CAAC;gBACD,MAAM,IAAI,CAAC,cAAc,CACvB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,CAAC,EAAE,EACZ,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,OAAO,EACP,WAAW,EACX,OAAO,EACP,gBAAgB,EAChB,MAAM,CACP,CAAC;gBACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;oBACnB,MAAM,WAAW,CACf,MAAM,EACN,0BAA0B,EAC1B,wCAAwC,CACzC,CAAC;gBACJ,IAAI,WAAoB,CAAC;gBACzB,IAAI,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,yDAA+B,CACvC,+BAA+B,EAC/B,8CAA8C,CAC/C,CAAC;gBACJ,CAAC;gBACD,IACE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;oBACnC,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ;oBACrC,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBACzC,WAAW,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa;oBAC/C,OAAO,WAAW,CAAC,SAAS,KAAK,QAAQ;oBACzC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAEnD,MAAM,IAAI,yDAA+B,CACvC,+BAA+B,EAC/B,gDAAgD,CACjD,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAChC,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC;gBAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC1C,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACxB,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC;gBAClC,MAAM,QAAQ,CACZ;oBACE,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,aAAa,EAAE,OAAO,CAAC,aAAa;iBACrC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;gBACF,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAC1F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;oBACnC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;gBACtE,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,QAAgB,EAChB,OAA2B,EAC3B,OAAmB,EACnB,WAA2B,EAC3B,MAAmB;QAEnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrE,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAAmB,EACnB,WAA2B,EAC3B,OAA2B,EAC3B,IAAwC,EACxC,MAAoB;QAEpB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI;YAC3C,SAAS,EAAE,OAAO,CAAC,aAAa;YAChC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;QAC7B,MAAM,OAAO,GAAG,aAAa,IAAA,uBAAU,EAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,IAAA,uBAAU,EAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACtI,MAAM,OAAO,GACX,IAAI,KAAK,eAAe;YACtB,CAAC,CAAC,cAAc,IAAA,uBAAU,EAAC,MAAM,CAAC,UAAU,IAAA,uBAAU,EAAC,MAAM,CAAC,IAAI,IAAI,KAAK,IAAA,uBAAU,EAAC,IAAI,CAAC,kHAAkH,IAAA,uBAAU,EAAC,OAAO,CAAC,EAAE;YAClO,CAAC,CAAC,GAAG,IAAA,uBAAU,EAAC,MAAM,CAAC,IAAI,IAAI,KAAK,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CACvB,iBAAiB,CAAC,WAAW,EAAE,SAAS,IAAA,uBAAU,EAAC,OAAO,CAAC,EAAE,CAAC,EAC9D,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,MAAM,EAAE,SAAS,EAAE,mCAAsB,EAAE,OAAO,EAAE,SAAS,EAAE,CAClE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAOO,KAAK,CAAC,eAAe,CAC3B,OAAmB,EACnB,WAA2B,EAC3B,MAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAC/B,iBAAiB,CAAC,WAAW,EAAE,OAAO,IAAA,uBAAU,EAAC,0CAAqB,CAAC,EAAE,CAAC,EAC1E,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,SAAS,EAAE,mCAAsB,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAClE,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,yDAA+B,CACvC,iCAAiC,EACjC,qCAAqC,0CAAqB,YAAY,CACvE,CAAC;QACJ,CAAC;QACD,OAAO,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,OAAmB,EACnB,WAA2B,EAC3B,QAAgB,EAChB,MAAmB,EACnB,WAAmB;QAEnB,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,cAAc,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,4DAA4D,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC;QACjL,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAC/B,iBAAiB,CAAC,WAAW,EAAE,SAAS,IAAA,uBAAU,EAAC,OAAO,CAAC,EAAE,CAAC,EAC9D,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CACjC,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,yDAA+B,CACvC,4BAA4B,EAC5B,+CAA+C,CAChD,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1E,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,OAAmB,EACnB,WAA2B,EAC3B,QAA4C,EAC5C,QAAgB,EAChB,MAAmB,EACnB,WAAmB,EACnB,IAAI,GAAG,KAAK;QAEZ,SAAS,CAAC;YACR,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,cAAc,IAAA,uBAAU,EAAC,GAAG,CAAC,GAAG,CAAC,kEAAkE,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,WAAW,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzK,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAC/B,iBAAiB,CAAC,WAAW,EAAE,SAAS,IAAA,uBAAU,EAAC,OAAO,CAAC,EAAE,CAAC,EAC9D,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CACjC,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,yDAA+B,CACvC,4BAA4B,EAC5B,4DAA4D,CAC7D,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;oBACnB,MAAM,OAAO,CAAC,IAAI,CAChB,iBAAiB,CAAC,WAAW,EAAE,SAAS,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAC/D,SAAS,CAAC,WAAW,CAAC,CACvB,CAAC;oBACF,IAAI,IAAI;wBACN,MAAM,WAAW,CACf,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAC/C,kBAAkB,EAClB,8BAA8B,CAC/B,CAAC;oBACJ,MAAM,IAAI,yDAA+B,CACvC,qBAAqB,EACrB,OAAO,IAAI,2CAA2C,QAAQ,GAAG,CAClE,CAAC;gBACJ,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,yDAA+B,CACvC,sBAAsB,EACtB,yDAAyD,CAC1D,CAAC;YACJ,CAAC;YACD,MAAM,IAAA,qBAAc,EAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE;gBAC3F,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAA2B;QACrD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QACnC,MAAM,OAAO,GAAG,OAAwC,CAAC;QACzD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,WAAW,GACf,OAAO,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChF,MAAM,eAAe,GACnB,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAA,oCAAW,EAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACvF,IAAI,QAAQ,GACV,IAAI,CAAC,GAAG,EAAE;YACV,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACpF,SAAS,CAAC;YACR,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI;iBAC5B,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC;iBAC5C,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,OAAO,EAAE,KAAK,KAAK,WAAW,IAAI,IAAA,iCAAoB,EAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjF,OAAO;YACT,CAAC;YACD,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAC/D,MAAM,IAAI,yDAA+B,CACvC,yBAAyB,EACzB,iFAAiF,CAClF,CAAC;YACJ,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC7E,IAAI,OAAO,CAAC,OAAO;oBAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBAC5E,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO;gBACpF,OAAO;YACT,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,yDAA+B,CACvC,wBAAwB,EACxB,sEAAsE,CACvE,CAAC;YACJ,CAAC;YACD,MAAM,IAAA,qBAAc,EAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE;gBAC3F,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,WAAmB;QACtC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAAmB,EACnB,WAA2B,EAC3B,OAA2B,EAC3B,WAAmB;QAGnB,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,mCAAmC,IAAI,oBAAoB,IAAI,gCAAgC,IAAI,mEAAmE,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7M,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAChC,iBAAiB,CAAC,WAAW,EAAE,SAAS,IAAA,uBAAU,EAAC,OAAO,CAAC,EAAE,CAAC,EAC9D,SAAS,CAAC,WAAW,CAAC,EACtB,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;QACF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,yDAA+B,CACvC,0BAA0B,EAC1B,0GAA0G,CAC3G,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,mBAAmB,CAAC;IACrC,CAAC;IAEO,kBAAkB,CAAC,WAAmB;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,yDAA+B,CACvC,0BAA0B,EAC1B,2FAA2F,CAC5F,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,WAAW,CAAC,OAA2B,EAAE,SAAkB;QACjE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YACzB,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;gBACjC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI;gBAC/C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,SAAS,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;gBACtC,SAAS;aACV,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,YAAY,EAAE,mCAAsB;YACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,eAAe,EAAE,OAAO,CAAC,OAAO;YAChC,SAAS;SACV,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAvwBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAaR,WAAA,IAAA,eAAM,EAAC,mCAAe,CAAC,CAAA;IACvB,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,2BAAmB,CAAC,CAAA;qCALlB,sBAAS;QACD,yCAAkB;QACzB,qCAAgB;QACf,gCAAc;GAX7B,oBAAoB,CAuwBhC;AAED,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAOtC,SAAgB,uBAAuB,CAAC,QAAgB,EAAE,QAAgB;IAExE,MAAM,MAAM,GAAG,wBAAwB,IAAA,uBAAU,EAAC,QAAQ,CAAC,wEAAwE,IAAA,uBAAU,EAAC,QAAQ,CAAC,2CAA2C,0BAA0B,EAAE,CAAC;IAC/N,OAAO,SAAS,IAAA,uBAAU,EAAC,MAAM,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,WAAmB;IAC/D,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,gDAAgD,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACjG,OAAO,sBAAsB,IAAA,uBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,IAAA,uBAAU,EAAC,yBAAyB,GAAG,CAAC,GAAG,EAAE,CAAC,eAAe,IAAA,uBAAU,EAAC,wBAAwB,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,IAAA,uBAAU,EAAC,GAAG,CAAC,MAAM,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;AACrP,CAAC;AAGD,SAAS,aAAa,CAAC,OAA2D;IAChF,OAAO,CACL,OAAO,EAAE,KAAK,KAAK,UAAU,IAAI,OAAO,EAAE,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAC5F,CAAC;AACJ,CAAC;AAGD,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,MAAM,GAAG,GAAG,gCAAgC,QAAQ,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,gCAAgC,QAAQ,EAAE,CAAC;IAC1D,OAAO;QACL,KAAK,EAAE,GAAG,GAAG,aAAa;QAC1B,IAAI,EAAE,GAAG,GAAG,YAAY;QACxB,MAAM;QACN,SAAS,EAAE,GAAG,MAAM,gCAAgC;QACpD,IAAI,EAAE,iBAAiB,QAAQ,UAAU;KAC1C,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,WAAmB;IACjD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,yBAAyB,WAAW,EAAE,CAAC;IACpD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,IAAI,OAAO,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,iBAAiB,CAAC,WAA2B,EAAE,OAAe;IACrE,OAAO,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,OAAO,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,SAAS,CAAC,WAA2B;IAC5C,OAAO,WAAW,CAAC,IAAI,KAAK,MAAM;QAChC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,GAAG,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,QAAQ,IAAI,EAAE,IAAI,CAAC;AACpE,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA2B;IACrD,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAChC,MAAM,IAAI,yDAA+B,CACvC,sBAAsB,EACtB,+DAA+D,CAChE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,kBAAkB,CAAC;AACpC,CAAC;AAGD,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,IAAA,kCAAoB,EAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IACD,MAAM,IAAI,yDAA+B,CACvC,8BAA8B,EAC9B,sBAAsB,0CAAqB,2EAA2E,CACvH,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,KAAa,EAAE,GAAW;IACtC,OAAO,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,SAA0B;IAChD,OAAO,IAAA,uCAAc,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAYD,SAAS,YAAY,CAAC,KAAc,EAAE,OAAqB;IACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,CACL,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;QACpC,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;QACpC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7B,MAAM,CAAC,IAAI,IAAI,IAAI;QACnB,MAAM,CAAC,IAAI,IAAI,KAAK,CACrB,CAAC;AACJ,CAAC;AAQD,SAAS,cAAc,CAAC,MAAwB;IAC9C,KAAK,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACjF,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,SAAS;YACpD,MAAM,KAAK,GAAG,MAAiC,CAAC;YAChD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gBACrE,OAAO;oBACL,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,YAAY,CAAC;oBAClE,GAAG,CAAC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrF,CAAC;QACN,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAClB,MAAwB,EACxB,IAAY,EACZ,OAAe;IAEf,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,IAAI,yDAA+B,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC;AAC7F,CAAC"}