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
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CodexChecker = exports.CODEX_USAGE_MAX_OUTPUT_BYTES = exports.CODEX_USAGE_TIMEOUT_MS = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const child_process_1 = require("child_process");
12
+ const app_version_1 = require("../../../common/app-version");
13
+ const provider_cli_policy_1 = require("../../providers/adapters/provider-cli-policy");
14
+ const checker_helpers_1 = require("./checker-helpers");
15
+ const private_cwd_1 = require("./private-cwd");
16
+ exports.CODEX_USAGE_TIMEOUT_MS = 20_000;
17
+ exports.CODEX_USAGE_MAX_OUTPUT_BYTES = 256 * 1024;
18
+ const KILL_GRACE_MS = 2_000;
19
+ const PLAN_RE = /^[A-Za-z0-9_-]{1,40}$/;
20
+ const INITIALIZE_ID = 1;
21
+ const RATE_LIMITS_ID = 2;
22
+ let CodexChecker = class CodexChecker {
23
+ kind = 'codex';
24
+ async check(_account, env, binPath) {
25
+ const command = (0, provider_cli_policy_1.applyProviderCliNoUpdate)('codex', [binPath, 'app-server'], env);
26
+ const cwd = await (0, private_cwd_1.ensureUsageCheckCwd)('codex-cwd');
27
+ const rateLimits = await readRateLimits(command.argv, command.env, cwd);
28
+ if (!(0, checker_helpers_1.isObject)(rateLimits))
29
+ throw new Error('codex app-server returned no rate limits');
30
+ return mapCodexRateLimits(rateLimits);
31
+ }
32
+ };
33
+ exports.CodexChecker = CodexChecker;
34
+ exports.CodexChecker = CodexChecker = __decorate([
35
+ (0, common_1.Injectable)()
36
+ ], CodexChecker);
37
+ function mapCodexRateLimits(limits) {
38
+ const windows = [limits.primary, limits.secondary].flatMap((raw) => {
39
+ const window = mapWindow(raw);
40
+ return window ? [window] : [];
41
+ });
42
+ const plan = typeof limits.planType === 'string' && PLAN_RE.test(limits.planType) ? limits.planType : null;
43
+ if (plan === null && windows.length === 0) {
44
+ return { kind: 'not-available', error: 'No subscription usage' };
45
+ }
46
+ const unique = windows.filter((w, index) => windows.findIndex((o) => o.id === w.id) === index);
47
+ return { kind: 'ok', windows: unique, extras: [], plan, source: 'cli' };
48
+ }
49
+ function mapWindow(raw) {
50
+ if (!(0, checker_helpers_1.isObject)(raw))
51
+ return null;
52
+ const { usedPercent, resetsAt, windowDurationMins } = raw;
53
+ if (typeof usedPercent !== 'number' || !Number.isFinite(usedPercent) || usedPercent < 0) {
54
+ return null;
55
+ }
56
+ const reset = typeof resetsAt === 'number' && Number.isFinite(resetsAt) ? resetsAt : null;
57
+ const minutes = typeof windowDurationMins === 'number' && windowDurationMins > 0 ? windowDurationMins : null;
58
+ if (minutes === 300)
59
+ return (0, checker_helpers_1.standardWindow)('5h', usedPercent, reset);
60
+ if (minutes === 10080)
61
+ return (0, checker_helpers_1.standardWindow)('weekly', usedPercent, reset);
62
+ const hours = minutes === null ? null : Math.round((minutes / 60) * 10) / 10;
63
+ return {
64
+ id: minutes === null ? 'other' : `other-${minutes}`,
65
+ label: hours === null ? 'Usage limit' : `${hours} h limit`,
66
+ kind: 'other',
67
+ usedPercent,
68
+ resetsAt: reset,
69
+ };
70
+ }
71
+ function readRateLimits(argv, env, cwd) {
72
+ return new Promise((resolve, reject) => {
73
+ const child = (0, child_process_1.spawn)(argv[0], argv.slice(1), {
74
+ cwd,
75
+ env,
76
+ shell: false,
77
+ stdio: ['pipe', 'pipe', 'ignore'],
78
+ });
79
+ let buffer = '';
80
+ let bytes = 0;
81
+ let done = false;
82
+ let exited = false;
83
+ let killTimer;
84
+ const send = (message) => {
85
+ child.stdin?.write(`${JSON.stringify(message)}\n`);
86
+ };
87
+ const stop = () => {
88
+ clearTimeout(timer);
89
+ if (exited)
90
+ return;
91
+ child.kill('SIGTERM');
92
+ killTimer = setTimeout(() => child.kill('SIGKILL'), KILL_GRACE_MS);
93
+ killTimer.unref?.();
94
+ };
95
+ const finish = (outcome) => {
96
+ if (done)
97
+ return;
98
+ done = true;
99
+ stop();
100
+ if ('error' in outcome)
101
+ reject(new Error(outcome.error));
102
+ else
103
+ resolve(outcome.value);
104
+ };
105
+ const timer = setTimeout(() => finish({ error: 'codex app-server timed out' }), exports.CODEX_USAGE_TIMEOUT_MS);
106
+ const handleLine = (line) => {
107
+ let message;
108
+ try {
109
+ message = JSON.parse(line);
110
+ }
111
+ catch {
112
+ return;
113
+ }
114
+ if (!(0, checker_helpers_1.isObject)(message))
115
+ return;
116
+ if (message.id === INITIALIZE_ID) {
117
+ if (message.error !== undefined)
118
+ return finish({ error: 'codex app-server rejected initialize' });
119
+ send({ method: 'initialized' });
120
+ send({ id: RATE_LIMITS_ID, method: 'account/rateLimits/read' });
121
+ }
122
+ else if (message.id === RATE_LIMITS_ID) {
123
+ if (message.error !== undefined || !(0, checker_helpers_1.isObject)(message.result)) {
124
+ return finish({ error: 'codex app-server returned an error' });
125
+ }
126
+ finish({ value: message.result.rateLimits });
127
+ }
128
+ };
129
+ child.stdout?.setEncoding('utf8');
130
+ child.stdout?.on('data', (chunk) => {
131
+ bytes += Buffer.byteLength(chunk);
132
+ if (bytes > exports.CODEX_USAGE_MAX_OUTPUT_BYTES) {
133
+ return finish({ error: 'codex app-server output too large' });
134
+ }
135
+ buffer += chunk;
136
+ let newline = buffer.indexOf('\n');
137
+ while (newline >= 0) {
138
+ const line = buffer.slice(0, newline).trim();
139
+ buffer = buffer.slice(newline + 1);
140
+ if (line)
141
+ handleLine(line);
142
+ newline = buffer.indexOf('\n');
143
+ }
144
+ });
145
+ child.stdin?.on('error', () => undefined);
146
+ child.on('error', () => finish({ error: 'codex app-server failed to start' }));
147
+ child.on('close', () => {
148
+ exited = true;
149
+ clearTimeout(killTimer);
150
+ finish({ error: 'codex app-server exited before replying' });
151
+ });
152
+ send({
153
+ id: INITIALIZE_ID,
154
+ method: 'initialize',
155
+ params: { clientInfo: { name: 'devchain', version: (0, app_version_1.getAppVersion)() } },
156
+ });
157
+ });
158
+ }
159
+ //# sourceMappingURL=codex.checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.checker.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/checkers/codex.checker.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAE5C,iDAAsC;AACtC,6DAA4D;AAC5D,sFAAwF;AAMxF,uDAA8E;AAC9E,+CAAoD;AAEvC,QAAA,sBAAsB,GAAG,MAAM,CAAC;AAChC,QAAA,4BAA4B,GAAG,GAAG,GAAG,IAAI,CAAC;AACvD,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,OAAO,GAAG,uBAAuB,CAAC;AAExC,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,cAAc,GAAG,CAAC,CAAC;AAQlB,IAAM,YAAY,GAAlB,MAAM,YAAY;IACd,IAAI,GAAG,OAAgB,CAAC;IAEjC,KAAK,CAAC,KAAK,CACT,QAA8B,EAC9B,GAAqC,EACrC,OAAe;QAEf,MAAM,OAAO,GAAG,IAAA,8CAAwB,EAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,MAAM,IAAA,iCAAmB,EAAC,WAAW,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxE,IAAI,CAAC,IAAA,0BAAQ,EAAC,UAAU,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACvF,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;CACF,CAAA;AAdY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CAcxB;AAGD,SAAS,kBAAkB,CAAC,MAAkB;IAC5C,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GACR,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhG,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACnE,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;IAC/F,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,CAAC,IAAA,0BAAQ,EAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC;IAC1D,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1F,MAAM,OAAO,GACX,OAAO,kBAAkB,KAAK,QAAQ,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/F,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,IAAA,gCAAc,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAA,gCAAc,EAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC7E,OAAO;QACL,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE;QACnD,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU;QAC1D,IAAI,EAAE,OAAO;QACb,WAAW;QACX,QAAQ,EAAE,KAAK;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,IAAuB,EACvB,GAA2B,EAC3B,GAAW;IAEX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC1C,GAAG;YACH,GAAG;YACH,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,SAAoD,CAAC;QAEzD,MAAM,IAAI,GAAG,CAAC,OAAmB,EAAQ,EAAE;YACzC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,MAAM;gBAAE,OAAO;YACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;YACnE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,OAA+C,EAAQ,EAAE;YACvE,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,EAAE,CAAC;YACP,IAAI,OAAO,IAAI,OAAO;gBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;;gBACpD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,EACrD,8BAAsB,CACvB,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAQ,EAAE;YACxC,IAAI,OAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAA,0BAAQ,EAAC,OAAO,CAAC;gBAAE,OAAO;YAC/B,IAAI,OAAO,CAAC,EAAE,KAAK,aAAa,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;oBAC7B,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;gBAChC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,OAAO,CAAC,EAAE,KAAK,cAAc,EAAE,CAAC;gBACzC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAA,0BAAQ,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7D,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,KAAK,GAAG,oCAA4B,EAAE,CAAC;gBACzC,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC;YAChB,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,OAAO,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACnC,IAAI,IAAI;oBAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAC;QAC/E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,MAAM,GAAG,IAAI,CAAC;YACd,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAA,2BAAa,GAAE,EAAE,EAAE;SACvE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function ensureUsageCheckCwd(name: string): Promise<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureUsageCheckCwd = ensureUsageCheckCwd;
4
+ const private_cwd_1 = require("../../providers/utils/private-cwd");
5
+ function ensureUsageCheckCwd(name) {
6
+ return (0, private_cwd_1.ensurePrivateCwd)('provider-usage', name);
7
+ }
8
+ //# sourceMappingURL=private-cwd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-cwd.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/checkers/private-cwd.ts"],"names":[],"mappings":";;AAGA,kDAEC;AALD,mEAAqE;AAGrE,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAA,8BAAgB,EAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type ProviderUsageResponse } from '@devchain/shared';
2
+ import { ProviderUsageService } from '../services/provider-usage.service';
3
+ export declare class ProviderUsageController {
4
+ private readonly usage;
5
+ constructor(usage: ProviderUsageService);
6
+ get(query: unknown): Promise<ProviderUsageResponse>;
7
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ProviderUsageController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const zod_1 = require("zod");
18
+ const shared_1 = require("@devchain/shared");
19
+ const provider_usage_service_1 = require("../services/provider-usage.service");
20
+ const ProviderUsageQuerySchema = zod_1.z.object({
21
+ projectId: zod_1.z.string().min(1),
22
+ maxAgeSec: zod_1.z.coerce
23
+ .number()
24
+ .int()
25
+ .min(shared_1.PROVIDER_USAGE_INTERVAL_LIMITS.hoverMaxAgeSec.min)
26
+ .max(shared_1.PROVIDER_USAGE_INTERVAL_LIMITS.openProjectMaxAgeMin.max * 60)
27
+ .optional(),
28
+ });
29
+ let ProviderUsageController = class ProviderUsageController {
30
+ usage;
31
+ constructor(usage) {
32
+ this.usage = usage;
33
+ }
34
+ async get(query) {
35
+ const { projectId, maxAgeSec } = ProviderUsageQuerySchema.parse(query);
36
+ return this.usage.getProjectUsage(projectId, maxAgeSec);
37
+ }
38
+ };
39
+ exports.ProviderUsageController = ProviderUsageController;
40
+ __decorate([
41
+ (0, common_1.Get)(),
42
+ __param(0, (0, common_1.Query)()),
43
+ __metadata("design:type", Function),
44
+ __metadata("design:paramtypes", [Object]),
45
+ __metadata("design:returntype", Promise)
46
+ ], ProviderUsageController.prototype, "get", null);
47
+ exports.ProviderUsageController = ProviderUsageController = __decorate([
48
+ (0, common_1.Controller)('api/provider-usage'),
49
+ __metadata("design:paramtypes", [provider_usage_service_1.ProviderUsageService])
50
+ ], ProviderUsageController);
51
+ //# sourceMappingURL=provider-usage.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-usage.controller.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/controllers/provider-usage.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6BAAwB;AACxB,6CAA8F;AAC9F,+EAA0E;AAE1E,MAAM,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5B,SAAS,EAAE,OAAC,CAAC,MAAM;SAChB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,uCAA8B,CAAC,cAAc,CAAC,GAAG,CAAC;SACtD,GAAG,CAAC,uCAA8B,CAAC,oBAAoB,CAAC,GAAG,GAAG,EAAE,CAAC;SACjE,QAAQ,EAAE;CACd,CAAC,CAAC;AAGI,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IACL;IAA7B,YAA6B,KAA2B;QAA3B,UAAK,GAAL,KAAK,CAAsB;IAAG,CAAC;IAGtD,AAAN,KAAK,CAAC,GAAG,CAAU,KAAc;QAC/B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AARY,0DAAuB;AAI5B;IADL,IAAA,YAAG,GAAE;IACK,WAAA,IAAA,cAAK,GAAE,CAAA;;;;kDAGjB;kCAPU,uBAAuB;IADnC,IAAA,mBAAU,EAAC,oBAAoB,CAAC;qCAEK,6CAAoB;GAD7C,uBAAuB,CAQnC"}
@@ -0,0 +1,2 @@
1
+ export declare class ProviderUsageModule {
2
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ProviderUsageModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const events_core_module_1 = require("../events/events-core.module");
12
+ const provider_cli_version_probe_module_1 = require("../providers/services/provider-cli-version-probe.module");
13
+ const settings_module_1 = require("../settings/settings.module");
14
+ const session_rows_module_1 = require("../storage/sessions/session-rows.module");
15
+ const storage_module_1 = require("../storage/storage.module");
16
+ const process_executor_module_1 = require("../terminal/services/process-executor/process-executor.module");
17
+ const agy_checker_1 = require("./checkers/agy.checker");
18
+ const claude_login_checker_1 = require("./checkers/claude-login.checker");
19
+ const claude_token_checker_1 = require("./checkers/claude-token.checker");
20
+ const codex_checker_1 = require("./checkers/codex.checker");
21
+ const provider_usage_controller_1 = require("./controllers/provider-usage.controller");
22
+ const provider_usage_types_1 = require("./provider-usage.types");
23
+ const provider_usage_accounts_service_1 = require("./services/provider-usage-accounts.service");
24
+ const provider_usage_service_1 = require("./services/provider-usage.service");
25
+ const CHECKERS = [
26
+ claude_login_checker_1.ClaudeLoginChecker,
27
+ claude_token_checker_1.ClaudeTokenChecker,
28
+ codex_checker_1.CodexChecker,
29
+ agy_checker_1.AgyChecker,
30
+ ];
31
+ let ProviderUsageModule = class ProviderUsageModule {
32
+ };
33
+ exports.ProviderUsageModule = ProviderUsageModule;
34
+ exports.ProviderUsageModule = ProviderUsageModule = __decorate([
35
+ (0, common_1.Module)({
36
+ imports: [
37
+ storage_module_1.StorageModule,
38
+ settings_module_1.SettingsModule,
39
+ session_rows_module_1.SessionRowsModule,
40
+ process_executor_module_1.ProcessExecutorModule,
41
+ provider_cli_version_probe_module_1.ProviderCliVersionProbeModule,
42
+ events_core_module_1.EventsCoreModule,
43
+ ],
44
+ controllers: [provider_usage_controller_1.ProviderUsageController],
45
+ exports: [provider_usage_service_1.ProviderUsageService],
46
+ providers: [
47
+ ...CHECKERS,
48
+ {
49
+ provide: provider_usage_types_1.PROVIDER_USAGE_CHECKERS,
50
+ useFactory: (...checkers) => checkers,
51
+ inject: CHECKERS,
52
+ },
53
+ provider_usage_accounts_service_1.ProviderUsageAccountsService,
54
+ provider_usage_service_1.ProviderUsageService,
55
+ ],
56
+ })
57
+ ], ProviderUsageModule);
58
+ //# sourceMappingURL=provider-usage.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-usage.module.js","sourceRoot":"","sources":["../../../src/modules/provider-usage/provider-usage.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAmD;AACnD,qEAAgE;AAChE,+GAAwG;AACxG,iEAA6D;AAC7D,iFAA4E;AAC5E,8DAA0D;AAC1D,2GAAsG;AACtG,wDAAoD;AACpD,0EAAqE;AACrE,0EAAqE;AACrE,4DAAwD;AACxD,uFAAkF;AAClF,iEAA4F;AAC5F,gGAA0F;AAC1F,8EAAyE;AAGzE,MAAM,QAAQ,GAAiC;IAC7C,yCAAkB;IAClB,yCAAkB;IAClB,4BAAY;IACZ,wBAAU;CACX,CAAC;AAwBK,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAAG,CAAA;AAAtB,kDAAmB;8BAAnB,mBAAmB;IAtB/B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,8BAAa;YACb,gCAAc;YACd,uCAAiB;YACjB,+CAAqB;YACrB,iEAA6B;YAC7B,qCAAgB;SACjB;QACD,WAAW,EAAE,CAAC,mDAAuB,CAAC;QACtC,OAAO,EAAE,CAAC,6CAAoB,CAAC;QAC/B,SAAS,EAAE;YACT,GAAG,QAAQ;YACX;gBACE,OAAO,EAAE,8CAAuB;gBAChC,UAAU,EAAE,CAAC,GAAG,QAAgC,EAAE,EAAE,CAAC,QAAQ;gBAC7D,MAAM,EAAE,QAAQ;aACjB;YACD,8DAA4B;YAC5B,6CAAoB;SACrB;KACF,CAAC;GACW,mBAAmB,CAAG"}
@@ -0,0 +1,26 @@
1
+ import type { ProviderUsageProvider, UsageWindow } from '@devchain/shared';
2
+ export type ProviderUsageCheckerKind = 'claude-login' | 'claude-token' | 'codex' | 'agy';
3
+ export interface ProviderUsageAccount {
4
+ key: string;
5
+ provider: ProviderUsageProvider;
6
+ kind: ProviderUsageCheckerKind;
7
+ label: string;
8
+ }
9
+ export type ProviderUsageCheckResult = {
10
+ kind: 'ok';
11
+ windows: UsageWindow[];
12
+ extras: UsageWindow[];
13
+ plan: string | null;
14
+ source: 'cli' | 'headers';
15
+ } | {
16
+ kind: 'not-available';
17
+ error: string;
18
+ } | {
19
+ kind: 'unsupported';
20
+ error: string;
21
+ };
22
+ export interface ProviderUsageChecker {
23
+ readonly kind: ProviderUsageCheckerKind;
24
+ check(account: ProviderUsageAccount, env: Readonly<Record<string, string>>, binPath: string): Promise<ProviderUsageCheckResult>;
25
+ }
26
+ export declare const PROVIDER_USAGE_CHECKERS: unique symbol;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROVIDER_USAGE_CHECKERS = void 0;
4
+ exports.PROVIDER_USAGE_CHECKERS = Symbol('PROVIDER_USAGE_CHECKERS');
5
+ //# sourceMappingURL=provider-usage.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-usage.types.js","sourceRoot":"","sources":["../../../src/modules/provider-usage/provider-usage.types.ts"],"names":[],"mappings":";;;AAqCa,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ProviderUsageAccount } from '../provider-usage.types';
2
+ export declare function buildEffectiveEnv(processEnv: NodeJS.ProcessEnv, providerEnv: Record<string, string> | null, configEnv: Record<string, string> | null): Record<string, string>;
3
+ export declare function resolveUsageAccount(providerName: string, env: Readonly<Record<string, string>>): ProviderUsageAccount | null;
4
+ export declare function claudeConfigDir(env: Readonly<Record<string, string>>): string;
5
+ export declare function compareUsageAccounts(a: ProviderUsageAccount, b: ProviderUsageAccount): number;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildEffectiveEnv = buildEffectiveEnv;
4
+ exports.resolveUsageAccount = resolveUsageAccount;
5
+ exports.claudeConfigDir = claudeConfigDir;
6
+ exports.compareUsageAccounts = compareUsageAccounts;
7
+ const crypto_1 = require("crypto");
8
+ const os_1 = require("os");
9
+ const path_1 = require("path");
10
+ const shared_1 = require("@devchain/shared");
11
+ const CLAUDE_NON_SUBSCRIPTION_ENV = [
12
+ 'ANTHROPIC_BASE_URL',
13
+ 'ANTHROPIC_AUTH_TOKEN',
14
+ 'ANTHROPIC_API_KEY',
15
+ 'CLAUDE_CODE_USE_BEDROCK',
16
+ 'CLAUDE_CODE_USE_VERTEX',
17
+ 'CLAUDE_CODE_USE_FOUNDRY',
18
+ ];
19
+ const CODEX_IDENTITY_ENV = ['OPENAI_API_KEY', 'CODEX_API_KEY', 'OPENAI_BASE_URL'];
20
+ function buildEffectiveEnv(processEnv, providerEnv, configEnv) {
21
+ const env = {};
22
+ for (const [key, value] of Object.entries(processEnv)) {
23
+ if (value !== undefined)
24
+ env[key] = value;
25
+ }
26
+ return { ...env, ...(providerEnv ?? {}), ...(configEnv ?? {}) };
27
+ }
28
+ function resolveUsageAccount(providerName, env) {
29
+ const home = homeDir(env);
30
+ switch (providerName.toLowerCase()) {
31
+ case 'claude': {
32
+ if (CLAUDE_NON_SUBSCRIPTION_ENV.some((key) => valueOf(env, key) !== null))
33
+ return null;
34
+ const token = valueOf(env, 'CLAUDE_CODE_OAUTH_TOKEN');
35
+ if (token !== null) {
36
+ const id = sha256Prefix(token);
37
+ return {
38
+ key: `claude:token:${id}`,
39
+ provider: 'claude',
40
+ kind: 'claude-token',
41
+ label: `Claude token ${id.slice(0, 6)}`,
42
+ };
43
+ }
44
+ const configDir = claudeConfigDir(env);
45
+ return {
46
+ key: `claude:login:${configDir}`,
47
+ provider: 'claude',
48
+ kind: 'claude-login',
49
+ label: valueOf(env, 'CLAUDE_CONFIG_DIR') !== null ? `Claude (${(0, path_1.basename)(configDir)})` : 'Claude',
50
+ };
51
+ }
52
+ case 'codex': {
53
+ const customHome = valueOf(env, 'CODEX_HOME');
54
+ const codexHome = customHome !== null ? (0, path_1.resolve)(customHome) : (0, path_1.join)(home, '.codex');
55
+ const identity = CODEX_IDENTITY_ENV.flatMap((key) => {
56
+ const value = valueOf(env, key);
57
+ return value !== null ? [`${key}=${value}`] : [];
58
+ }).join('\n');
59
+ const id = identity ? sha256Prefix(identity) : 'none';
60
+ const suffixes = [
61
+ customHome !== null ? (0, path_1.basename)(codexHome) : null,
62
+ identity ? `key ${id.slice(0, 6)}` : null,
63
+ ].filter((part) => part !== null);
64
+ return {
65
+ key: `codex:${codexHome}:${id}`,
66
+ provider: 'codex',
67
+ kind: 'codex',
68
+ label: suffixes.length > 0 ? `Codex (${suffixes.join(', ')})` : 'Codex',
69
+ };
70
+ }
71
+ case 'agy':
72
+ return { key: `agy:${home}`, provider: 'agy', kind: 'agy', label: 'agy' };
73
+ default:
74
+ return null;
75
+ }
76
+ }
77
+ function claudeConfigDir(env) {
78
+ const customDir = valueOf(env, 'CLAUDE_CONFIG_DIR');
79
+ return customDir !== null ? (0, path_1.resolve)(customDir) : (0, path_1.join)(homeDir(env), '.claude');
80
+ }
81
+ function compareUsageAccounts(a, b) {
82
+ return (shared_1.PROVIDER_USAGE_PROVIDERS.indexOf(a.provider) - shared_1.PROVIDER_USAGE_PROVIDERS.indexOf(b.provider));
83
+ }
84
+ function homeDir(env) {
85
+ return valueOf(env, 'HOME') ?? (0, os_1.homedir)();
86
+ }
87
+ function valueOf(env, key) {
88
+ const value = env[key];
89
+ return value === undefined || value === '' ? null : value;
90
+ }
91
+ function sha256Prefix(value) {
92
+ return (0, crypto_1.createHash)('sha256').update(value).digest('hex').slice(0, 12);
93
+ }
94
+ //# sourceMappingURL=provider-usage-accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-usage-accounts.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/services/provider-usage-accounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type StorageService } from '../../storage/interfaces/storage.interface';
2
+ import type { ProfileProviderConfig, Provider } from '../../storage/models/domain.models';
3
+ import type { ProviderUsageAccount } from '../provider-usage.types';
4
+ export interface ResolvedUsageAccount {
5
+ account: ProviderUsageAccount;
6
+ env: Readonly<Record<string, string>>;
7
+ binPath: string | null;
8
+ }
9
+ type AccountsStorage = Pick<StorageService, 'getProject' | 'listAgents' | 'getAgent' | 'listProfileProviderConfigsByProfile' | 'getProvider' | 'getProviderEnvForProject'>;
10
+ export interface ResolveMemo {
11
+ configsByProfile: Map<string, Promise<ProfileProviderConfig[]>>;
12
+ providers: Map<string, Promise<Provider>>;
13
+ results: Map<string, ResolvedUsageAccount | null>;
14
+ }
15
+ export declare class ProviderUsageAccountsService {
16
+ private readonly storage;
17
+ constructor(storage: AccountsStorage);
18
+ listForProject(projectId: string): Promise<ResolvedUsageAccount[]>;
19
+ resolveForAgent(agentId: string, memo?: ResolveMemo): Promise<ResolvedUsageAccount | null>;
20
+ private resolveAgent;
21
+ }
22
+ export declare function createMemo(): ResolveMemo;
23
+ export {};
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ProviderUsageAccountsService = void 0;
16
+ exports.createMemo = createMemo;
17
+ const common_1 = require("@nestjs/common");
18
+ const storage_interface_1 = require("../../storage/interfaces/storage.interface");
19
+ const provider_usage_accounts_1 = require("./provider-usage-accounts");
20
+ const MAX_PROJECT_AGENTS = 1000;
21
+ let ProviderUsageAccountsService = class ProviderUsageAccountsService {
22
+ storage;
23
+ constructor(storage) {
24
+ this.storage = storage;
25
+ }
26
+ async listForProject(projectId) {
27
+ await this.storage.getProject(projectId);
28
+ const { items: agents } = await this.storage.listAgents(projectId, {
29
+ limit: MAX_PROJECT_AGENTS,
30
+ });
31
+ const memo = createMemo();
32
+ const byKey = new Map();
33
+ for (const agent of agents) {
34
+ const resolved = await this.resolveAgent(agent, memo);
35
+ if (resolved && !byKey.has(resolved.account.key))
36
+ byKey.set(resolved.account.key, resolved);
37
+ }
38
+ return [...byKey.values()].sort((a, b) => (0, provider_usage_accounts_1.compareUsageAccounts)(a.account, b.account));
39
+ }
40
+ async resolveForAgent(agentId, memo = createMemo()) {
41
+ const agent = await this.storage.getAgent(agentId);
42
+ return this.resolveAgent(agent, memo);
43
+ }
44
+ async resolveAgent(agent, memo) {
45
+ let configs = memo.configsByProfile.get(agent.profileId);
46
+ if (!configs) {
47
+ configs = this.storage.listProfileProviderConfigsByProfile(agent.profileId);
48
+ memo.configsByProfile.set(agent.profileId, configs);
49
+ }
50
+ const profileConfigs = await configs;
51
+ const config = profileConfigs.find((candidate) => candidate.id === agent.providerConfigId) ??
52
+ profileConfigs[0];
53
+ if (!config)
54
+ return null;
55
+ const resultKey = `${config.id}\0${agent.projectId}`;
56
+ const known = memo.results.get(resultKey);
57
+ if (known !== undefined)
58
+ return known;
59
+ let provider = memo.providers.get(config.providerId);
60
+ if (!provider) {
61
+ provider = this.storage.getProvider(config.providerId);
62
+ memo.providers.set(config.providerId, provider);
63
+ }
64
+ const { id, name, binPath } = await provider;
65
+ const env = (0, provider_usage_accounts_1.buildEffectiveEnv)(process.env, this.storage.getProviderEnvForProject(id, agent.projectId), config.env);
66
+ const account = (0, provider_usage_accounts_1.resolveUsageAccount)(name, env);
67
+ const resolved = account ? { account, env, binPath } : null;
68
+ memo.results.set(resultKey, resolved);
69
+ return resolved;
70
+ }
71
+ };
72
+ exports.ProviderUsageAccountsService = ProviderUsageAccountsService;
73
+ exports.ProviderUsageAccountsService = ProviderUsageAccountsService = __decorate([
74
+ (0, common_1.Injectable)(),
75
+ __param(0, (0, common_1.Inject)(storage_interface_1.STORAGE_SERVICE)),
76
+ __metadata("design:paramtypes", [Object])
77
+ ], ProviderUsageAccountsService);
78
+ function createMemo() {
79
+ return { configsByProfile: new Map(), providers: new Map(), results: new Map() };
80
+ }
81
+ //# sourceMappingURL=provider-usage-accounts.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-usage-accounts.service.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/services/provider-usage-accounts.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
2
+ import type { ProviderUsageResponse } from '@devchain/shared';
3
+ import { EventsService } from '../../events/services/events.service';
4
+ import { SettingsService } from '../../settings/services/settings.service';
5
+ import { SessionRowStore } from '../../storage/sessions/session-row.store';
6
+ import { type ProviderUsageChecker } from '../provider-usage.types';
7
+ import { ProviderUsageAccountsService, type ResolvedUsageAccount } from './provider-usage-accounts.service';
8
+ export declare const PROVIDER_USAGE_TICK_MS = 60000;
9
+ export declare const PROVIDER_USAGE_MAX_PARALLEL_CHECKS = 2;
10
+ export declare const PROVIDER_USAGE_CHECK_TIMEOUT_MS = 60000;
11
+ export declare class ProviderUsageService implements OnModuleInit, OnModuleDestroy {
12
+ private readonly accounts;
13
+ private readonly settings;
14
+ private readonly sessionRows;
15
+ private readonly events;
16
+ private readonly entries;
17
+ private readonly checkers;
18
+ private readonly waitingForSlot;
19
+ private activeChecks;
20
+ private timer;
21
+ private ticking;
22
+ constructor(accounts: ProviderUsageAccountsService, settings: SettingsService, sessionRows: SessionRowStore, events: EventsService, checkers: ProviderUsageChecker[]);
23
+ onModuleInit(): void;
24
+ onModuleDestroy(): void;
25
+ getProjectUsage(projectId: string, maxAgeSec?: number): Promise<ProviderUsageResponse>;
26
+ tick(): Promise<void>;
27
+ requestCheck(resolved: ResolvedUsageAccount): Promise<void>;
28
+ private runCheck;
29
+ private acquireSlot;
30
+ private releaseSlot;
31
+ private publishUpdated;
32
+ private resolveRunningAgent;
33
+ private runningMaxAgeMs;
34
+ private isDue;
35
+ private entryFor;
36
+ private toSnapshot;
37
+ }