cartethyia 0.0.0-stage → 2.3.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 (692) hide show
  1. package/.env.example +124 -0
  2. package/LICENSE +674 -0
  3. package/README.md +104 -2
  4. package/dist/dashboard/assets/AccountCooldown-ChpdzxRH.js +1 -0
  5. package/dist/dashboard/assets/BannedPage-BZQBIhxF.js +1 -0
  6. package/dist/dashboard/assets/CliToolDetailPage-ChtDDIFA.js +1 -0
  7. package/dist/dashboard/assets/CliToolsPage-CfmolGV7.js +1 -0
  8. package/dist/dashboard/assets/CombosPage-B7ETkfVH.js +1 -0
  9. package/dist/dashboard/assets/ConsoleLogPage-ZCwKyxxl.js +1 -0
  10. package/dist/dashboard/assets/CustomizationPage-WJejmVl_.js +1 -0
  11. package/dist/dashboard/assets/HealthEventsModal-URh6wOhb.js +1 -0
  12. package/dist/dashboard/assets/LoginPage-C5ib2ujx.js +1 -0
  13. package/dist/dashboard/assets/ModelPicker-CAiPR5Vd.js +1 -0
  14. package/dist/dashboard/assets/OverviewPage-BwOb4p9C.js +1 -0
  15. package/dist/dashboard/assets/ProviderDetailPage-w4o_xJlP.js +3 -0
  16. package/dist/dashboard/assets/ProviderIcon-paOCq8I0.js +1 -0
  17. package/dist/dashboard/assets/ProvidersPage-6_WFzAGN.js +1 -0
  18. package/dist/dashboard/assets/ProxyPage-DaGQsvht.js +7 -0
  19. package/dist/dashboard/assets/QuotaPage-BPPN7W5b.js +1 -0
  20. package/dist/dashboard/assets/SettingsPage-YxRml8AT.js +1 -0
  21. package/dist/dashboard/assets/SetupPage-CDqTXPe7.js +1 -0
  22. package/dist/dashboard/assets/SortableList-Bol1ASmI.js +1 -0
  23. package/dist/dashboard/assets/StudioPage-CiGmv9Ju.js +31 -0
  24. package/dist/dashboard/assets/ToolIcon-K1ckcDKg.js +1 -0
  25. package/dist/dashboard/assets/UsagePage-CxrGngrm.js +56 -0
  26. package/dist/dashboard/assets/api-keys-CjIGQhe7.js +1 -0
  27. package/dist/dashboard/assets/app-BDJWMThu.js +9 -0
  28. package/dist/dashboard/assets/app-Cjgo4-Lf.css +2 -0
  29. package/dist/dashboard/assets/arrow-left-CpBxkoxI.js +1 -0
  30. package/dist/dashboard/assets/arrow-right-Dl5yKnp8.js +1 -0
  31. package/dist/dashboard/assets/assert-Bwh6DJTK.js +1 -0
  32. package/dist/dashboard/assets/backup-file-gdKIlg8U.js +1 -0
  33. package/dist/dashboard/assets/badge-BwmwEOgA.js +1 -0
  34. package/dist/dashboard/assets/banner-BKBfKTqn.js +1 -0
  35. package/dist/dashboard/assets/brain-Cwed_72z.js +1 -0
  36. package/dist/dashboard/assets/brand/bansos_page.png +0 -0
  37. package/dist/dashboard/assets/brand/denia_bansos.jpg +0 -0
  38. package/dist/dashboard/assets/brand/favicon.jpg +0 -0
  39. package/dist/dashboard/assets/brand/login_register.jpg +0 -0
  40. package/dist/dashboard/assets/brand/og_bansos.webp +0 -0
  41. package/dist/dashboard/assets/brand/og_image.webp +0 -0
  42. package/dist/dashboard/assets/brand/sidebar_ico.jpg +0 -0
  43. package/dist/dashboard/assets/card-BTdbRFFg.js +1 -0
  44. package/dist/dashboard/assets/check-D69FzdvC.js +1 -0
  45. package/dist/dashboard/assets/chevron-right-BXIy5l3h.js +1 -0
  46. package/dist/dashboard/assets/circle-alert-CntYHV5v.js +1 -0
  47. package/dist/dashboard/assets/circle-check-BU3v_mFW.js +1 -0
  48. package/dist/dashboard/assets/cli-tools-DccaOfhX.js +1 -0
  49. package/dist/dashboard/assets/clipboard-button-DQmMikNQ.js +1 -0
  50. package/dist/dashboard/assets/cog-CdWhsajs.js +1 -0
  51. package/dist/dashboard/assets/copy-ngmQ9zcZ.js +1 -0
  52. package/dist/dashboard/assets/dialog-actions-B1axpEg7.js +1 -0
  53. package/dist/dashboard/assets/dialog-iocKA3jr.js +1 -0
  54. package/dist/dashboard/assets/download-A0SW9OCW.js +1 -0
  55. package/dist/dashboard/assets/download-dRFo5_Wu.js +1 -0
  56. package/dist/dashboard/assets/drawer-CDKOTZdY.js +1 -0
  57. package/dist/dashboard/assets/entry-C3M9aRLH.js +4 -0
  58. package/dist/dashboard/assets/entry-Dm3PpDCO.js +1 -0
  59. package/dist/dashboard/assets/entry-keNDZ_Wz.js +1 -0
  60. package/dist/dashboard/assets/eye-C_hawfH4.js +1 -0
  61. package/dist/dashboard/assets/eye-off-Bk5g2luF.js +1 -0
  62. package/dist/dashboard/assets/fingerprint-pattern-BWuHtbW4.js +1 -0
  63. package/dist/dashboard/assets/gauge-BbIMy7MB.js +1 -0
  64. package/dist/dashboard/assets/github-badge-BuAJr8oU.js +1 -0
  65. package/dist/dashboard/assets/image-BPaouViG.js +1 -0
  66. package/dist/dashboard/assets/index-BS-k3kIz.js +2 -0
  67. package/dist/dashboard/assets/inline-DCejSLlA.js +1 -0
  68. package/dist/dashboard/assets/input-Bn4_kNav.js +1 -0
  69. package/dist/dashboard/assets/jsx-runtime-CXUMngI_.js +1 -0
  70. package/dist/dashboard/assets/key-round-UkavsGxp.js +1 -0
  71. package/dist/dashboard/assets/layers-2-glBbjl.js +1 -0
  72. package/dist/dashboard/assets/layout-Bv-NxqZ5.js +1 -0
  73. package/dist/dashboard/assets/list-row-BLA0sldD.js +1 -0
  74. package/dist/dashboard/assets/live-YlifPYox.js +1 -0
  75. package/dist/dashboard/assets/log-in-BmRjy60c.js +1 -0
  76. package/dist/dashboard/assets/message-circle-CCxGwRvv.js +1 -0
  77. package/dist/dashboard/assets/model-bans-CVvHZ-qz.js +1 -0
  78. package/dist/dashboard/assets/mutation-BIizFZav.js +1 -0
  79. package/dist/dashboard/assets/numbers-CFL4_Dqc.js +1 -0
  80. package/dist/dashboard/assets/pencil-768ysRAr.js +1 -0
  81. package/dist/dashboard/assets/plus-DIdX_g-x.js +1 -0
  82. package/dist/dashboard/assets/privacy-mode-CQjbZ3xk.js +1 -0
  83. package/dist/dashboard/assets/providers/agentrouter.svg +6 -0
  84. package/dist/dashboard/assets/providers/aihubmix.svg +1 -0
  85. package/dist/dashboard/assets/providers/alibaba-coding-plan.svg +6 -0
  86. package/dist/dashboard/assets/providers/alibaba.svg +1 -0
  87. package/dist/dashboard/assets/providers/amp.webp +0 -0
  88. package/dist/dashboard/assets/providers/anthropics.webp +0 -0
  89. package/dist/dashboard/assets/providers/antigravity.svg +20 -0
  90. package/dist/dashboard/assets/providers/bai.svg +6 -0
  91. package/dist/dashboard/assets/providers/blackbox.svg +1 -0
  92. package/dist/dashboard/assets/providers/cerebras.webp +0 -0
  93. package/dist/dashboard/assets/providers/claude-code.svg +1 -0
  94. package/dist/dashboard/assets/providers/claude.webp +0 -0
  95. package/dist/dashboard/assets/providers/cline.webp +0 -0
  96. package/dist/dashboard/assets/providers/codebuddy.webp +0 -0
  97. package/dist/dashboard/assets/providers/codex.webp +0 -0
  98. package/dist/dashboard/assets/providers/commandcode.webp +0 -0
  99. package/dist/dashboard/assets/providers/continue.webp +0 -0
  100. package/dist/dashboard/assets/providers/copilot.webp +0 -0
  101. package/dist/dashboard/assets/providers/deepseek-tui.webp +0 -0
  102. package/dist/dashboard/assets/providers/deepseek.webp +0 -0
  103. package/dist/dashboard/assets/providers/droid.webp +0 -0
  104. package/dist/dashboard/assets/providers/exa.svg +4 -0
  105. package/dist/dashboard/assets/providers/fireworks.webp +0 -0
  106. package/dist/dashboard/assets/providers/gemini.webp +0 -0
  107. package/dist/dashboard/assets/providers/github.webp +0 -0
  108. package/dist/dashboard/assets/providers/gmi-cloud.svg +6 -0
  109. package/dist/dashboard/assets/providers/grok-build.webp +0 -0
  110. package/dist/dashboard/assets/providers/hermes.webp +0 -0
  111. package/dist/dashboard/assets/providers/inferhub.svg +17 -0
  112. package/dist/dashboard/assets/providers/jcode.webp +0 -0
  113. package/dist/dashboard/assets/providers/kilocode-gateway.webp +0 -0
  114. package/dist/dashboard/assets/providers/kilocode.webp +0 -0
  115. package/dist/dashboard/assets/providers/kimchi.webp +0 -0
  116. package/dist/dashboard/assets/providers/kimi-code.webp +0 -0
  117. package/dist/dashboard/assets/providers/kiro.webp +0 -0
  118. package/dist/dashboard/assets/providers/mimo.webp +0 -0
  119. package/dist/dashboard/assets/providers/mistral.webp +0 -0
  120. package/dist/dashboard/assets/providers/muse.svg +6 -0
  121. package/dist/dashboard/assets/providers/nous-research.svg +1 -0
  122. package/dist/dashboard/assets/providers/nvidia.webp +0 -0
  123. package/dist/dashboard/assets/providers/ollama-cloud.webp +0 -0
  124. package/dist/dashboard/assets/providers/ollama.webp +0 -0
  125. package/dist/dashboard/assets/providers/openai-light.svg +1 -0
  126. package/dist/dashboard/assets/providers/openclaw.webp +0 -0
  127. package/dist/dashboard/assets/providers/opencode-go.webp +0 -0
  128. package/dist/dashboard/assets/providers/opencode.webp +0 -0
  129. package/dist/dashboard/assets/providers/openrouter.webp +0 -0
  130. package/dist/dashboard/assets/providers/parallel.svg +6 -0
  131. package/dist/dashboard/assets/providers/perplexity.webp +0 -0
  132. package/dist/dashboard/assets/providers/qoder.webp +0 -0
  133. package/dist/dashboard/assets/providers/qwen.webp +0 -0
  134. package/dist/dashboard/assets/providers/roo.webp +0 -0
  135. package/dist/dashboard/assets/providers/tokenharbor.svg +27 -0
  136. package/dist/dashboard/assets/providers/zai-coding-plan.svg +6 -0
  137. package/dist/dashboard/assets/query-keys-ROf-g1Wi.js +1 -0
  138. package/dist/dashboard/assets/quota-DZGyp0N5.js +1 -0
  139. package/dist/dashboard/assets/refresh-cw-BqJFk4sU.js +1 -0
  140. package/dist/dashboard/assets/rotate-ccw-CufcqITi.js +1 -0
  141. package/dist/dashboard/assets/route-CNSNj9Zm.js +1 -0
  142. package/dist/dashboard/assets/routing-jntw9-Ui.js +1 -0
  143. package/dist/dashboard/assets/scaling-nWE4Cx8f.js +1 -0
  144. package/dist/dashboard/assets/search-JOKus9rb.js +1 -0
  145. package/dist/dashboard/assets/select-CGUuTQmj.js +41 -0
  146. package/dist/dashboard/assets/settings-BAS6QbmJ.js +1 -0
  147. package/dist/dashboard/assets/shield-check-DVS0Foqh.js +1 -0
  148. package/dist/dashboard/assets/sliders-horizontal-ClG7dBeJ.js +1 -0
  149. package/dist/dashboard/assets/sparkles-BRaRUxAU.js +1 -0
  150. package/dist/dashboard/assets/stack-C1kTcOmP.js +1 -0
  151. package/dist/dashboard/assets/state-DHKdg-pm.js +1 -0
  152. package/dist/dashboard/assets/story/25817331.webp +0 -0
  153. package/dist/dashboard/assets/story/Shorekeeper.webp +0 -0
  154. package/dist/dashboard/assets/story/cartethyia-god.webp +0 -0
  155. package/dist/dashboard/assets/story/fleurdelys_plus.webp +0 -0
  156. package/dist/dashboard/assets/story/jinhsi-blossom.webp +0 -0
  157. package/dist/dashboard/assets/story/phrolova-a.webp +0 -0
  158. package/dist/dashboard/assets/story/requestdeniawokkjpg.webp +0 -0
  159. package/dist/dashboard/assets/story/wuthering-waves-hiyuki-aemeath-hiyuki-rover.webp +0 -0
  160. package/dist/dashboard/assets/stream-retry-5QnVuSSo.js +1 -0
  161. package/dist/dashboard/assets/switch-DIDeAiz9.js +1 -0
  162. package/dist/dashboard/assets/terminal-C9mZ4Ugm.js +1 -0
  163. package/dist/dashboard/assets/toast-DKAdP2mo.js +2 -0
  164. package/dist/dashboard/assets/tokens-DDxMbSRL.js +1 -0
  165. package/dist/dashboard/assets/trash-Cppn5c3R.js +1 -0
  166. package/dist/dashboard/assets/use-clipboard-B0Sy03fE.js +1 -0
  167. package/dist/dashboard/assets/use-presence-BSZEBx7U.js +1 -0
  168. package/dist/dashboard/assets/use-reduced-motion-C4B0R6Sz.js +1 -0
  169. package/dist/dashboard/assets/use-timeout-BwcBBRrT.js +1 -0
  170. package/dist/dashboard/assets/useMutation-DVmwOKU-.js +1 -0
  171. package/dist/dashboard/assets/wrench-B6E1oEuY.js +1 -0
  172. package/dist/dashboard/console-backgrounds.jpg +0 -0
  173. package/dist/dashboard/index.html +100 -0
  174. package/migrations/README.md +52 -0
  175. package/migrations/full-postgres/0000_baseline.sql +510 -0
  176. package/migrations/full-postgres/0001_allow_multiple_shared_keys_per_ip.sql +1 -0
  177. package/migrations/full-postgres/0002_add_gemini_wire_family.sql +29 -0
  178. package/migrations/full-postgres/0003_add_models_model_id_index.sql +16 -0
  179. package/migrations/full-postgres/0004_add_model_block_hits.sql +17 -0
  180. package/migrations/full-postgres/0005_add_buddy_usage_snapshots.sql +25 -0
  181. package/migrations/full-postgres/0006_add_buddy_task_ledger.sql +24 -0
  182. package/migrations/full-postgres/0007_add_telemetry_payload_capture_state.sql +17 -0
  183. package/migrations/full-postgres/0008_add_models_route_unique_index.sql +8 -0
  184. package/migrations/full-postgres/0009_rename_opencode_provider_ids.sql +232 -0
  185. package/migrations/full-postgres/0010_add_provider_max_inflight_per_proxy.sql +14 -0
  186. package/migrations/full-postgres/0011_add_pool_provider_probe.sql +21 -0
  187. package/migrations/full-postgres/0012_add_reported_model.sql +13 -0
  188. package/migrations/lite-sqlite3/0000_baseline.sql +559 -0
  189. package/migrations/lite-sqlite3/0001_allow_multiple_shared_keys_per_ip.sql +1 -0
  190. package/migrations/lite-sqlite3/0002_add_gemini_wire_family.sql +67 -0
  191. package/migrations/lite-sqlite3/0003_add_models_model_id_index.sql +4 -0
  192. package/migrations/lite-sqlite3/0004_add_model_block_hits.sql +11 -0
  193. package/migrations/lite-sqlite3/0005_add_buddy_usage_snapshots.sql +24 -0
  194. package/migrations/lite-sqlite3/0006_add_buddy_task_ledger.sql +21 -0
  195. package/migrations/lite-sqlite3/0007_add_telemetry_payload_capture_state.sql +12 -0
  196. package/migrations/lite-sqlite3/0008_add_models_route_unique_index.sql +8 -0
  197. package/migrations/lite-sqlite3/0009_rename_opencode_provider_ids.sql +229 -0
  198. package/migrations/lite-sqlite3/0010_add_provider_max_inflight_per_proxy.sql +14 -0
  199. package/migrations/lite-sqlite3/0011_add_pool_provider_probe.sql +27 -0
  200. package/migrations/lite-sqlite3/0012_add_reported_model.sql +13 -0
  201. package/package.json +96 -4
  202. package/scripts/cli/carte-launcher.cjs +4 -0
  203. package/scripts/cli/cli-launcher.cjs +102 -0
  204. package/scripts/cli/cli.ts +576 -0
  205. package/scripts/cli/doctor.ts +258 -0
  206. package/scripts/cli/setup.ts +443 -0
  207. package/scripts/operations/probe-egress.ts +335 -0
  208. package/scripts/operations/restart.ts +120 -0
  209. package/scripts/shared/env.ts +269 -0
  210. package/src/boot/app.ts +637 -0
  211. package/src/boot/dependencies.ts +574 -0
  212. package/src/boot/lifecycle.ts +244 -0
  213. package/src/boot/timeout.ts +48 -0
  214. package/src/config/cooldowns.ts +138 -0
  215. package/src/config/network.ts +126 -0
  216. package/src/config/package-paths.ts +40 -0
  217. package/src/config/providers.ts +70 -0
  218. package/src/config/runtime.ts +60 -0
  219. package/src/config/security.ts +58 -0
  220. package/src/config/spec.ts +288 -0
  221. package/src/config/telemetry.ts +21 -0
  222. package/src/config/timeouts.ts +114 -0
  223. package/src/console/admin/model-abuse/contracts.ts +16 -0
  224. package/src/console/admin/model-abuse/routes.ts +44 -0
  225. package/src/console/api-keys/bucket-spend.ts +45 -0
  226. package/src/console/api-keys/contracts.ts +391 -0
  227. package/src/console/api-keys/routes.ts +870 -0
  228. package/src/console/api-keys/share-popup-image.ts +71 -0
  229. package/src/console/audit/contracts.ts +77 -0
  230. package/src/console/audit/routes.ts +32 -0
  231. package/src/console/audit/store.ts +139 -0
  232. package/src/console/auth/access.ts +4 -0
  233. package/src/console/auth/audit-recorder.ts +82 -0
  234. package/src/console/auth/credentials.ts +53 -0
  235. package/src/console/auth/lockout.ts +154 -0
  236. package/src/console/auth/row-coercion.ts +76 -0
  237. package/src/console/auth/session-resolver.ts +86 -0
  238. package/src/console/auth/session-service.ts +175 -0
  239. package/src/console/auth/session.ts +536 -0
  240. package/src/console/auth/setup-service.ts +272 -0
  241. package/src/console/auth/user-store.ts +41 -0
  242. package/src/console/backup/9router-map.ts +172 -0
  243. package/src/console/backup/contracts.ts +534 -0
  244. package/src/console/backup/nine-router.ts +528 -0
  245. package/src/console/backup/routes.ts +210 -0
  246. package/src/console/backup/service.ts +403 -0
  247. package/src/console/backup/store.ts +773 -0
  248. package/src/console/backup/validate.ts +484 -0
  249. package/src/console/cli-tools/contracts.ts +746 -0
  250. package/src/console/cli-tools/fs-ops.ts +487 -0
  251. package/src/console/cli-tools/injectors/claude.ts +130 -0
  252. package/src/console/cli-tools/injectors/cline.ts +110 -0
  253. package/src/console/cli-tools/injectors/codex.ts +181 -0
  254. package/src/console/cli-tools/injectors/copilot.ts +108 -0
  255. package/src/console/cli-tools/injectors/cowork.ts +64 -0
  256. package/src/console/cli-tools/injectors/deepseek-tui.ts +85 -0
  257. package/src/console/cli-tools/injectors/driver.ts +247 -0
  258. package/src/console/cli-tools/injectors/droid.ts +96 -0
  259. package/src/console/cli-tools/injectors/grok-build.ts +70 -0
  260. package/src/console/cli-tools/injectors/hermes.ts +101 -0
  261. package/src/console/cli-tools/injectors/jcode.ts +115 -0
  262. package/src/console/cli-tools/injectors/kilo.ts +90 -0
  263. package/src/console/cli-tools/injectors/openclaw.ts +161 -0
  264. package/src/console/cli-tools/injectors/opencode.ts +153 -0
  265. package/src/console/cli-tools/routes.ts +339 -0
  266. package/src/console/cli-tools/secret-source.ts +101 -0
  267. package/src/console/cli-tools/service.ts +336 -0
  268. package/src/console/cli-tools/store.ts +179 -0
  269. package/src/console/console-router-guards.ts +111 -0
  270. package/src/console/console-router.ts +223 -0
  271. package/src/console/dashboard-assets.ts +340 -0
  272. package/src/console/domain-registration.ts +318 -0
  273. package/src/console/observability/contracts.ts +423 -0
  274. package/src/console/observability/live.ts +158 -0
  275. package/src/console/observability/logs.ts +87 -0
  276. package/src/console/observability/performance-contracts.ts +5 -0
  277. package/src/console/observability/performance.ts +23 -0
  278. package/src/console/observability/routes.ts +93 -0
  279. package/src/console/observability/sse.ts +97 -0
  280. package/src/console/observability/store.ts +912 -0
  281. package/src/console/observability/usage-dimensions.ts +19 -0
  282. package/src/console/observability/usage-periods.ts +13 -0
  283. package/src/console/providers/catalog/catalog-projections.ts +104 -0
  284. package/src/console/providers/catalog/contracts.ts +846 -0
  285. package/src/console/providers/catalog/model-operations.ts +342 -0
  286. package/src/console/providers/catalog/provider-operations.ts +655 -0
  287. package/src/console/providers/catalog/public-model-store.ts +676 -0
  288. package/src/console/providers/catalog/routes.ts +377 -0
  289. package/src/console/providers/catalog/store.ts +1521 -0
  290. package/src/console/providers/detail/contracts.ts +34 -0
  291. package/src/console/providers/detail/routes.ts +195 -0
  292. package/src/console/providers/detail/store.ts +159 -0
  293. package/src/console/providers/oauth/callback-listener.ts +328 -0
  294. package/src/console/providers/oauth/routes.ts +707 -0
  295. package/src/console/quota/account-quota-global.ts +154 -0
  296. package/src/console/quota/account-quota-shared.ts +39 -0
  297. package/src/console/quota/account-quota-tenant.ts +1096 -0
  298. package/src/console/quota/account-quota.ts +22 -0
  299. package/src/console/quota/account-test-egress.ts +182 -0
  300. package/src/console/quota/cache.ts +358 -0
  301. package/src/console/quota/quota-view.ts +190 -0
  302. package/src/console/quota/refresh.ts +410 -0
  303. package/src/console/response-compression.ts +162 -0
  304. package/src/console/routing/model/contracts.ts +202 -0
  305. package/src/console/routing/model/operations.ts +455 -0
  306. package/src/console/routing/model/routes.ts +136 -0
  307. package/src/console/routing/model/store.ts +430 -0
  308. package/src/console/routing/pools/contracts.ts +508 -0
  309. package/src/console/routing/pools/operations.ts +501 -0
  310. package/src/console/routing/pools/probe-result.ts +59 -0
  311. package/src/console/routing/pools/probe-verdict.ts +60 -0
  312. package/src/console/routing/pools/relay-deploy.ts +325 -0
  313. package/src/console/routing/pools/relay-regions.ts +97 -0
  314. package/src/console/routing/pools/routes.ts +164 -0
  315. package/src/console/routing/pools/speed-test-sizes.ts +16 -0
  316. package/src/console/routing/pools/store.ts +778 -0
  317. package/src/console/settings/contracts.ts +153 -0
  318. package/src/console/settings/routes.ts +30 -0
  319. package/src/console/settings/store.ts +152 -0
  320. package/src/console/share/share-router.ts +457 -0
  321. package/src/console/share/share-stats.ts +341 -0
  322. package/src/console/share/share-usage.ts +266 -0
  323. package/src/console/shared/cursor.ts +151 -0
  324. package/src/console/shared/day.ts +27 -0
  325. package/src/console/shared/elysia-schema.ts +19 -0
  326. package/src/console/shared/errors.ts +174 -0
  327. package/src/console/shared/ip-privacy.ts +14 -0
  328. package/src/console/shared/query.ts +22 -0
  329. package/src/console/shared/read-through-cache.ts +49 -0
  330. package/src/console/updates/repository-updates.ts +34 -0
  331. package/src/console/updates/routes.ts +17 -0
  332. package/src/console/updates/version-compare.ts +73 -0
  333. package/src/main.ts +142 -0
  334. package/src/network/backoff.ts +31 -0
  335. package/src/network/deduplication.ts +37 -0
  336. package/src/network/outbound-fetch.ts +302 -0
  337. package/src/network/pool/agent.ts +460 -0
  338. package/src/network/pool/byte-accounting.ts +146 -0
  339. package/src/network/pool/loader.ts +56 -0
  340. package/src/network/pool/pool-scripts.ts +110 -0
  341. package/src/network/pool/pool-state.ts +169 -0
  342. package/src/network/pool/resolver.ts +544 -0
  343. package/src/network/pool/selector.ts +844 -0
  344. package/src/network/pool-health-machine.ts +247 -0
  345. package/src/network/pool-health.ts +183 -0
  346. package/src/network/response-headers.ts +39 -0
  347. package/src/network/retry.ts +53 -0
  348. package/src/network/ssrf.ts +253 -0
  349. package/src/network/types.ts +55 -0
  350. package/src/observability/event-log.ts +267 -0
  351. package/src/observability/log-ring.ts +136 -0
  352. package/src/observability/logger.ts +178 -0
  353. package/src/observability/metrics.ts +395 -0
  354. package/src/observability/payload-capture.ts +324 -0
  355. package/src/observability/payload-store.ts +366 -0
  356. package/src/observability/performance-metrics.ts +81 -0
  357. package/src/observability/redaction.ts +83 -0
  358. package/src/observability/runtime-metrics.ts +177 -0
  359. package/src/observability/telemetry-buffer.ts +385 -0
  360. package/src/observability/telemetry-status.ts +133 -0
  361. package/src/observability/token-speed.ts +78 -0
  362. package/src/persistence/boot.ts +168 -0
  363. package/src/persistence/connection-url.ts +78 -0
  364. package/src/persistence/db-handle.ts +47 -0
  365. package/src/persistence/db-mode.ts +63 -0
  366. package/src/persistence/db-pg.ts +246 -0
  367. package/src/persistence/db-sqlite.ts +495 -0
  368. package/src/persistence/dialect.ts +148 -0
  369. package/src/persistence/migrate.ts +129 -0
  370. package/src/persistence/readiness.ts +209 -0
  371. package/src/persistence/redis.ts +187 -0
  372. package/src/persistence/schema.ts +1257 -0
  373. package/src/persistence/settings-revision.ts +23 -0
  374. package/src/persistence/sort-order.ts +85 -0
  375. package/src/persistence/stores/api-key-store.ts +563 -0
  376. package/src/persistence/stores/share-store.ts +528 -0
  377. package/src/persistence/stores/telemetry-store.ts +214 -0
  378. package/src/persistence/tenant-preferences.ts +96 -0
  379. package/src/persistence/tenant-scope.ts +42 -0
  380. package/src/persistence/ttl-cache.ts +181 -0
  381. package/src/persistence/usage-flush.ts +164 -0
  382. package/src/protocol/canonical-model.ts +658 -0
  383. package/src/protocol/codecs.ts +948 -0
  384. package/src/protocol/gateway-error.ts +231 -0
  385. package/src/protocol/image-clamp.ts +126 -0
  386. package/src/protocol/image-generation.ts +117 -0
  387. package/src/protocol/messages-errors.ts +91 -0
  388. package/src/protocol/registry.ts +202 -0
  389. package/src/protocol/request/chat.ts +548 -0
  390. package/src/protocol/request/codex.ts +696 -0
  391. package/src/protocol/request/gemini.ts +314 -0
  392. package/src/protocol/request/messages.ts +892 -0
  393. package/src/protocol/request/responses.ts +400 -0
  394. package/src/protocol/response/chat.ts +430 -0
  395. package/src/protocol/response/codex.ts +754 -0
  396. package/src/protocol/response/dsml.ts +47 -0
  397. package/src/protocol/response/gemini.ts +155 -0
  398. package/src/protocol/response/messages.ts +508 -0
  399. package/src/protocol/response/responses.ts +743 -0
  400. package/src/protocol/sse-decoder.ts +210 -0
  401. package/src/protocol/sse-frame.ts +36 -0
  402. package/src/protocol/stop-reason.ts +62 -0
  403. package/src/protocol/stream-error-frames.ts +78 -0
  404. package/src/protocol/tool-identity.ts +191 -0
  405. package/src/protocol/upstream/post-json.ts +34 -0
  406. package/src/protocol/upstream/send-claude-messages.ts +88 -0
  407. package/src/providers/adapters/base-adapter.ts +80 -0
  408. package/src/providers/adapters/compatible-adapter.ts +429 -0
  409. package/src/providers/authentication/jwt-validator.ts +446 -0
  410. package/src/providers/authentication/oauth-client.ts +253 -0
  411. package/src/providers/authentication/oauth-device-flow.ts +107 -0
  412. package/src/providers/authentication/oauth-flow-store.ts +732 -0
  413. package/src/providers/authentication/oauth-refresh-service.ts +643 -0
  414. package/src/providers/authentication/static-token-detection.ts +48 -0
  415. package/src/providers/bundled-discovery-providers.ts +119 -0
  416. package/src/providers/configured-openai-providers.ts +135 -0
  417. package/src/providers/configured-provider.ts +100 -0
  418. package/src/providers/default-registry.ts +695 -0
  419. package/src/providers/discovery/catalog/catalog-blob.ts +18 -0
  420. package/src/providers/discovery/catalog/catalog-format.ts +460 -0
  421. package/src/providers/discovery/discovery-types.ts +149 -0
  422. package/src/providers/discovery/models-dev-catalog.ts +337 -0
  423. package/src/providers/discovery/openai-model-discovery.ts +163 -0
  424. package/src/providers/discovery/probe-phases.ts +712 -0
  425. package/src/providers/discovery/probe-wire.ts +213 -0
  426. package/src/providers/discovery/probing-service.ts +1001 -0
  427. package/src/providers/integrations/.codegen-stamp +1 -0
  428. package/src/providers/integrations/agentrouter/agentrouter.ts +131 -0
  429. package/src/providers/integrations/aihubmix.ts +27 -0
  430. package/src/providers/integrations/alibabacp/alibabacp-models.ts +66 -0
  431. package/src/providers/integrations/alibabacp/alibabacp-oauth.ts +127 -0
  432. package/src/providers/integrations/alibabacp/alibabacp.ts +112 -0
  433. package/src/providers/integrations/anthropic.ts +171 -0
  434. package/src/providers/integrations/antigravity/antigravity-oauth.ts +215 -0
  435. package/src/providers/integrations/antigravity/antigravity-protocol.ts +788 -0
  436. package/src/providers/integrations/antigravity/antigravity-quota.ts +326 -0
  437. package/src/providers/integrations/antigravity/antigravity.ts +1012 -0
  438. package/src/providers/integrations/bai.ts +40 -0
  439. package/src/providers/integrations/buddy/buddy-catalog-shared.ts +258 -0
  440. package/src/providers/integrations/buddy/buddy-chat-shared.ts +914 -0
  441. package/src/providers/integrations/buddy/buddy-checkin.ts +546 -0
  442. package/src/providers/integrations/buddy/buddy-conversation-headers.ts +94 -0
  443. package/src/providers/integrations/buddy/buddy-discovery-shared.ts +175 -0
  444. package/src/providers/integrations/buddy/buddy-growth-shared.ts +578 -0
  445. package/src/providers/integrations/buddy/buddy-media.ts +424 -0
  446. package/src/providers/integrations/buddy/buddy-oauth-shared.ts +305 -0
  447. package/src/providers/integrations/buddy/buddy-quota-shared.ts +415 -0
  448. package/src/providers/integrations/buddy/buddy-usage-shared.ts +223 -0
  449. package/src/providers/integrations/buddy/buddy-usage-store.ts +147 -0
  450. package/src/providers/integrations/buddy/capabilities.ts +83 -0
  451. package/src/providers/integrations/buddy/codebuddy/cn-provider.ts +179 -0
  452. package/src/providers/integrations/buddy/codebuddy/oauth.ts +47 -0
  453. package/src/providers/integrations/buddy/codebuddy/provider.ts +175 -0
  454. package/src/providers/integrations/buddy/codebuddy/quota.ts +165 -0
  455. package/src/providers/integrations/buddy/codebuddy/shared.ts +73 -0
  456. package/src/providers/integrations/buddy/workbuddy/cn-oauth.ts +30 -0
  457. package/src/providers/integrations/buddy/workbuddy/cn-provider.ts +55 -0
  458. package/src/providers/integrations/buddy/workbuddy/oauth.ts +31 -0
  459. package/src/providers/integrations/buddy/workbuddy/provider.ts +204 -0
  460. package/src/providers/integrations/buddy/workbuddy/quota.ts +159 -0
  461. package/src/providers/integrations/buddy/workbuddy/shared.ts +171 -0
  462. package/src/providers/integrations/cerebras.ts +44 -0
  463. package/src/providers/integrations/claude/claude-betas.ts +255 -0
  464. package/src/providers/integrations/claude/claude-cch.ts +148 -0
  465. package/src/providers/integrations/claude/claude-compatibility.ts +208 -0
  466. package/src/providers/integrations/claude/claude-credentials.ts +236 -0
  467. package/src/providers/integrations/claude/claude-fingerprint.ts +29 -0
  468. package/src/providers/integrations/claude/claude-oauth.ts +228 -0
  469. package/src/providers/integrations/claude/claude-quota.ts +163 -0
  470. package/src/providers/integrations/claude/claude-slow-lane-retry.ts +100 -0
  471. package/src/providers/integrations/claude/claude-slow-lane.ts +522 -0
  472. package/src/providers/integrations/claude/claude-user-profiles.ts +380 -0
  473. package/src/providers/integrations/claude/claude.ts +582 -0
  474. package/src/providers/integrations/claude/fallback-credit.ts +237 -0
  475. package/src/providers/integrations/cline/cline-oauth.ts +219 -0
  476. package/src/providers/integrations/cline/cline-quota.ts +126 -0
  477. package/src/providers/integrations/cline/cline.ts +468 -0
  478. package/src/providers/integrations/cloudflareai/cloudflareai-models.ts +65 -0
  479. package/src/providers/integrations/cloudflareai/cloudflareai-oauth.ts +108 -0
  480. package/src/providers/integrations/cloudflareai/cloudflareai.ts +137 -0
  481. package/src/providers/integrations/codex/codex-device-code.ts +101 -0
  482. package/src/providers/integrations/codex/codex-errors.ts +174 -0
  483. package/src/providers/integrations/codex/codex-headers.ts +155 -0
  484. package/src/providers/integrations/codex/codex-identity.ts +68 -0
  485. package/src/providers/integrations/codex/codex-oauth.ts +275 -0
  486. package/src/providers/integrations/codex/codex-quota.ts +68 -0
  487. package/src/providers/integrations/codex/codex.ts +1214 -0
  488. package/src/providers/integrations/commandcode/commandcode.ts +541 -0
  489. package/src/providers/integrations/dashscope-models.ts +52 -0
  490. package/src/providers/integrations/deepseek.ts +60 -0
  491. package/src/providers/integrations/factory/factory-models.ts +124 -0
  492. package/src/providers/integrations/factory/factory-oauth.ts +238 -0
  493. package/src/providers/integrations/factory/factory.ts +639 -0
  494. package/src/providers/integrations/gemini.ts +449 -0
  495. package/src/providers/integrations/github/github-discovery.ts +163 -0
  496. package/src/providers/integrations/github/github-oauth.ts +354 -0
  497. package/src/providers/integrations/github/github-quota.ts +127 -0
  498. package/src/providers/integrations/github/github.ts +668 -0
  499. package/src/providers/integrations/grok/grok-install-id.ts +13 -0
  500. package/src/providers/integrations/grok/grok-oauth.ts +261 -0
  501. package/src/providers/integrations/grok/grok-quota-frame.ts +214 -0
  502. package/src/providers/integrations/grok/grok-quota.ts +177 -0
  503. package/src/providers/integrations/grok/grok-turn-index.ts +82 -0
  504. package/src/providers/integrations/grok/grok.ts +541 -0
  505. package/src/providers/integrations/hermes.ts +149 -0
  506. package/src/providers/integrations/inferhub.ts +581 -0
  507. package/src/providers/integrations/kilo/kilo-discovery.ts +139 -0
  508. package/src/providers/integrations/kilo/kilo-oauth.ts +188 -0
  509. package/src/providers/integrations/kilo/kilo.ts +146 -0
  510. package/src/providers/integrations/kimi/kimi-oauth.ts +245 -0
  511. package/src/providers/integrations/kimi/kimi-quota.ts +184 -0
  512. package/src/providers/integrations/kimi/kimi.ts +264 -0
  513. package/src/providers/integrations/kiro/aws-event-stream.ts +293 -0
  514. package/src/providers/integrations/kiro/kiro-catalog.ts +106 -0
  515. package/src/providers/integrations/kiro/kiro-discovery.ts +164 -0
  516. package/src/providers/integrations/kiro/kiro-machine-id.ts +107 -0
  517. package/src/providers/integrations/kiro/kiro-oauth.ts +1132 -0
  518. package/src/providers/integrations/kiro/kiro-profile.ts +66 -0
  519. package/src/providers/integrations/kiro/kiro-quota.ts +238 -0
  520. package/src/providers/integrations/kiro/kiro-request.ts +748 -0
  521. package/src/providers/integrations/kiro/kiro-stream.ts +358 -0
  522. package/src/providers/integrations/kiro/kiro.ts +661 -0
  523. package/src/providers/integrations/meta.ts +38 -0
  524. package/src/providers/integrations/mistral.ts +52 -0
  525. package/src/providers/integrations/muse/muse-oauth.ts +202 -0
  526. package/src/providers/integrations/muse/muse-quota.ts +136 -0
  527. package/src/providers/integrations/muse/muse.ts +177 -0
  528. package/src/providers/integrations/ollamacloud-quota.ts +57 -0
  529. package/src/providers/integrations/openai.ts +39 -0
  530. package/src/providers/integrations/opencode/fingerprint.ts +155 -0
  531. package/src/providers/integrations/opencode/provider.ts +499 -0
  532. package/src/providers/integrations/opencode/tool-definitions.ts +389 -0
  533. package/src/providers/integrations/openrouter/oauth.ts +96 -0
  534. package/src/providers/integrations/openrouter/provider.ts +281 -0
  535. package/src/providers/integrations/perplexity.ts +143 -0
  536. package/src/providers/integrations/qoder/qoder-oauth.ts +263 -0
  537. package/src/providers/integrations/qoder/qoder.ts +730 -0
  538. package/src/providers/integrations/shared/claude-messages.ts +155 -0
  539. package/src/providers/integrations/shared/connect.ts +122 -0
  540. package/src/providers/integrations/shared/install-id.ts +133 -0
  541. package/src/providers/integrations/tokenharbor.ts +94 -0
  542. package/src/providers/integrations/xai/xai-discovery.ts +25 -0
  543. package/src/providers/integrations/xai/xai-oauth.ts +246 -0
  544. package/src/providers/integrations/xai/xai.ts +108 -0
  545. package/src/providers/integrations/xiaomi-mimo/think-stream.ts +153 -0
  546. package/src/providers/integrations/xiaomi-mimo/xiaomi.ts +44 -0
  547. package/src/providers/integrations/zcode/oauth.ts +257 -0
  548. package/src/providers/integrations/zcode/provider.ts +77 -0
  549. package/src/providers/operations/account-health-service.ts +1360 -0
  550. package/src/providers/operations/account-reset-service.ts +666 -0
  551. package/src/providers/operations/byok-wire-profile.ts +148 -0
  552. package/src/providers/operations/cli-platform.ts +144 -0
  553. package/src/providers/operations/client-version-resolver.ts +253 -0
  554. package/src/providers/operations/client-versions.ts +607 -0
  555. package/src/providers/operations/custom-cli-headers.ts +72 -0
  556. package/src/providers/operations/gateway-user-agent.ts +15 -0
  557. package/src/providers/operations/model-catalog-cache.ts +84 -0
  558. package/src/providers/operations/model-discovery-cache.ts +34 -0
  559. package/src/providers/operations/oauth-refresh-lead.ts +45 -0
  560. package/src/providers/operations/probe-fetch.ts +15 -0
  561. package/src/providers/operations/provider-catalog-seeder.ts +86 -0
  562. package/src/providers/operations/provider-catalog-service.ts +346 -0
  563. package/src/providers/operations/provider-credential-service.ts +307 -0
  564. package/src/providers/operations/provider-version-cache.ts +30 -0
  565. package/src/providers/operations/reported-model.ts +119 -0
  566. package/src/providers/operations/session-resolution.ts +83 -0
  567. package/src/providers/operations/upstream-deadline.ts +62 -0
  568. package/src/providers/provider-capabilities.ts +33 -0
  569. package/src/providers/provider-contracts.ts +293 -0
  570. package/src/providers/provider-credential-envelope.ts +43 -0
  571. package/src/providers/provider-credential-resolver.ts +81 -0
  572. package/src/providers/provider-metadata.ts +623 -0
  573. package/src/providers/provider-model-definition.ts +349 -0
  574. package/src/providers/provider-probe.ts +120 -0
  575. package/src/providers/provider-reasoning.ts +181 -0
  576. package/src/providers/provider-registry.ts +349 -0
  577. package/src/providers/provider-sanitize.ts +86 -0
  578. package/src/providers/provider-usage.ts +482 -0
  579. package/src/providers/quota/quota-contracts.ts +261 -0
  580. package/src/providers/quota/quota-limit-windows.ts +93 -0
  581. package/src/providers/quota/quota-support.ts +82 -0
  582. package/src/providers/quota/quota-window-parser.ts +165 -0
  583. package/src/providers/search/search-catalog.ts +24 -0
  584. package/src/providers/search/search-provider.ts +168 -0
  585. package/src/providers/search/search-providers.ts +229 -0
  586. package/src/security/abuse.ts +564 -0
  587. package/src/security/access-control.ts +146 -0
  588. package/src/security/admission/buckets.ts +33 -0
  589. package/src/security/admission/contracts.ts +104 -0
  590. package/src/security/admission/in-memory-store.ts +385 -0
  591. package/src/security/admission/lease-sweep.ts +62 -0
  592. package/src/security/admission/lua.ts +182 -0
  593. package/src/security/admission/reasons.ts +99 -0
  594. package/src/security/admission/redis-store.ts +210 -0
  595. package/src/security/admission/service.ts +165 -0
  596. package/src/security/admission/ttl.ts +61 -0
  597. package/src/security/api-key-auth.ts +353 -0
  598. package/src/security/cli-client-fingerprint.ts +81 -0
  599. package/src/security/client-router-fingerprint.ts +218 -0
  600. package/src/security/credential-codec.ts +252 -0
  601. package/src/security/crypto.ts +89 -0
  602. package/src/security/csrf.ts +114 -0
  603. package/src/security/ip-boundary.ts +261 -0
  604. package/src/security/model-abuse.ts +432 -0
  605. package/src/security/model-access-rule.ts +106 -0
  606. package/src/security/outbound-headers.ts +145 -0
  607. package/src/transport/contracts.ts +111 -0
  608. package/src/transport/dispatch/attempt-finalize.ts +752 -0
  609. package/src/transport/dispatch/attempt-loop.ts +513 -0
  610. package/src/transport/dispatch/empty-stream.ts +226 -0
  611. package/src/transport/dispatch/generation.ts +350 -0
  612. package/src/transport/dispatch/leases.ts +235 -0
  613. package/src/transport/dispatch/proxy-request.ts +336 -0
  614. package/src/transport/dispatch/responses-compact.ts +199 -0
  615. package/src/transport/dispatch/retry-policy.ts +100 -0
  616. package/src/transport/dispatch/stream-bridge.ts +68 -0
  617. package/src/transport/dispatch/streaming/encoder.ts +350 -0
  618. package/src/transport/dispatch/streaming/finalize.ts +566 -0
  619. package/src/transport/dispatch/streaming/stream.ts +436 -0
  620. package/src/transport/dispatch/systemone.ts +226 -0
  621. package/src/transport/dispatch/token-count.ts +413 -0
  622. package/src/transport/dispatch/upstream.ts +100 -0
  623. package/src/transport/dispatch/websearch.ts +199 -0
  624. package/src/transport/drain-endpoint.ts +70 -0
  625. package/src/transport/failure-policy.ts +906 -0
  626. package/src/transport/guards/abuse-guard.ts +92 -0
  627. package/src/transport/guards/auth-guard.ts +83 -0
  628. package/src/transport/guards/body-policy.ts +145 -0
  629. package/src/transport/guards/concurrency-guard.ts +54 -0
  630. package/src/transport/guards/early-rejection-capture.ts +74 -0
  631. package/src/transport/guards/error-lifecycle.ts +419 -0
  632. package/src/transport/guards/headroom-guard.ts +68 -0
  633. package/src/transport/guards/pipeline.ts +190 -0
  634. package/src/transport/guards/readiness-guard.ts +28 -0
  635. package/src/transport/guards/request-context.ts +311 -0
  636. package/src/transport/pathname.ts +24 -0
  637. package/src/transport/request/degradation.ts +277 -0
  638. package/src/transport/request/inflight.ts +102 -0
  639. package/src/transport/request/preparer.ts +482 -0
  640. package/src/transport/request/rtk/compress-request.ts +159 -0
  641. package/src/transport/request/rtk/ponytail-prompt.ts +33 -0
  642. package/src/transport/request/rtk/rtk-constants.ts +93 -0
  643. package/src/transport/request/rtk/rtk-filters.ts +373 -0
  644. package/src/transport/request/state.ts +373 -0
  645. package/src/transport/request/tenant-preferences.ts +72 -0
  646. package/src/transport/request/token-estimate.ts +82 -0
  647. package/src/transport/routing/admission.ts +178 -0
  648. package/src/transport/routing/reservations.ts +53 -0
  649. package/src/transport/routing/round-robin.ts +50 -0
  650. package/src/transport/routing/route-catalog.ts +738 -0
  651. package/src/transport/routing/route-model.ts +465 -0
  652. package/src/transport/routing/router.ts +786 -0
  653. package/src/transport/shutdown-notice.ts +68 -0
  654. package/src/transport/surface/adapters.ts +169 -0
  655. package/src/transport/surface/chat/adapter.ts +104 -0
  656. package/src/transport/surface/chat/encode.ts +530 -0
  657. package/src/transport/surface/chat/parse.ts +353 -0
  658. package/src/transport/surface/completion.ts +229 -0
  659. package/src/transport/surface/content-parts.ts +49 -0
  660. package/src/transport/surface/dialects.ts +272 -0
  661. package/src/transport/surface/messages/adapter.ts +185 -0
  662. package/src/transport/surface/messages/encode.ts +273 -0
  663. package/src/transport/surface/messages/errors.ts +12 -0
  664. package/src/transport/surface/messages/parse.ts +569 -0
  665. package/src/transport/surface/messages/stream.ts +473 -0
  666. package/src/transport/surface/reasoning-summary.ts +78 -0
  667. package/src/transport/surface/responses/adapter.ts +60 -0
  668. package/src/transport/surface/responses/contracts.ts +50 -0
  669. package/src/transport/surface/responses/encode.ts +733 -0
  670. package/src/transport/surface/responses/errors.ts +28 -0
  671. package/src/transport/surface/responses/parse.ts +681 -0
  672. package/src/transport/surface/responses/wire-output.ts +93 -0
  673. package/src/transport/surface/stream-frame.ts +30 -0
  674. package/src/transport/translation/attachment-integrity.ts +248 -0
  675. package/src/transport/translation/cache-controls.ts +119 -0
  676. package/src/transport/translation/capabilities.ts +433 -0
  677. package/src/transport/translation/normalize.ts +27 -0
  678. package/src/transport/translation/quirks.ts +224 -0
  679. package/src/transport/translation/search.ts +15 -0
  680. package/src/transport/translation/thinking.ts +509 -0
  681. package/src/transport/translation/tool-id.ts +93 -0
  682. package/src/transport/translation/tool-repair.ts +288 -0
  683. package/src/version.ts +11 -0
  684. package/src/workers/account-identity-sweep.ts +157 -0
  685. package/src/workers/buddy-growth-tasks.ts +430 -0
  686. package/src/workers/daily-checkin.ts +433 -0
  687. package/src/workers/oauth-refresh-sweep.ts +79 -0
  688. package/src/workers/quota-refresh-sweep.ts +487 -0
  689. package/src/workers/scheduler.ts +169 -0
  690. package/src/workers/sweep-runner.ts +181 -0
  691. package/tray-assets/cartethyia.ico +0 -0
  692. package/tray-assets/cartethyia.png +0 -0
package/.env.example ADDED
@@ -0,0 +1,124 @@
1
+ # Required runtime settings.
2
+ # ---------------------------------------------------------------------------
3
+ # Database mode (the one choice that matters):
4
+ # lite = embedded database, nothing to install (default — just run it).
5
+ # full = external PostgreSQL via DATABASE_URL (VPS, share/selling, teams).
6
+ # Moving lite → full later is a JSON backup export + import, no rebuild.
7
+ # PORT — HTTP port the gateway/console listen on.
8
+ # NODE_ENV — development | production (affects logging/validation strictness).
9
+ # DASHBOARD_DIST — built dashboard static directory served at /console.
10
+ # LOG_LEVEL — pino level: debug / info / warn / error.
11
+ # CARTETHYIA_DB_MODE — REQUIRED, no default: lite or full. The gateway throws
12
+ # at boot when it is absent rather than guessing, because
13
+ # the two modes are different databases with separate
14
+ # migration sets and a silent guess would pick which one
15
+ # an install's data is read against. `bun setup` writes it.
16
+ # DATABASE_URL — required in full mode only; ignored in lite.
17
+ # CARTETHYIA_ENCRYPTION_KEY
18
+ # — required 256-bit secret that encrypts provider credentials
19
+ # and API keys. Generate with one of the commands below.
20
+ # CARTETHYIA_PUBLIC_ORIGIN
21
+ # — externally reachable URL for OAuth callbacks/links.
22
+ # CARTETHYIA_API_KEY — optional default gateway API key. Unset means none.
23
+
24
+ # lite keeps this file the zero-dependency first run: embedded SQLite in the data
25
+ # dir, no server to install. Switch to full for a VPS or shared workload — see the
26
+ # Full section of documentation/getting-started.md.
27
+ CARTETHYIA_DB_MODE=lite
28
+ PORT=12800
29
+ NODE_ENV=development
30
+ DASHBOARD_DIST=./dist/dashboard
31
+ LOG_LEVEL=debug
32
+ # DATABASE_URL=postgres://postgres:replace-with-local-password@localhost:5432/cartethyia
33
+ CARTETHYIA_ENCRYPTION_KEY=replace-with-cartethyia-encryption-key
34
+ CARTETHYIA_PUBLIC_ORIGIN=http://localhost:12800
35
+
36
+ # How to generate CARTETHYIA_ENCRYPTION_KEY (choose ONE; 32 bytes = 256 bits):
37
+ # macOS / Linux: openssl rand -hex 32
38
+ # Windows (PowerShell): [Convert]::ToBase64String((1..32 | ForEach-Object { Get-Random -Maximum 256 }))
39
+ # Bun / Node (any platform): bun -e "import { randomBytes } from 'node:crypto'; console.log(randomBytes(32).toString('base64'))"
40
+ # Paste the output as the key value. Either 64-char hex or base64 that decodes to 32 bytes is accepted.
41
+ # The setup/install helpers generate one automatically when the .env is created.
42
+
43
+ # Optional settings. Redis is never required: set REDIS_URL for shared
44
+ # coordination across instances, or leave it unset for the in-memory backend.
45
+ # REDIS_URL=redis://localhost:6379 # Shared Redis; omit for in-memory.
46
+ # CARTETHYIA_DATA_DIR= # Writable state root. Lite stores <dir>/cartethyia.sqlite; OS default otherwise.
47
+ # TRUSTED_PROXY_CIDRS= # Trust forwarded client-IP headers from these proxy ranges.
48
+ # CARTETHYIA_ALLOWED_NETWORKS= # Private CIDRs allowed for upstream connections.
49
+ # CARTETHYIA_TELEMETRY_PAYLOAD_DIR=./data/telemetry-payloads # Payload capture directory.
50
+ # CARTETHYIA_CONFIG_DIR= # npm CLI only: directory holding .env. OS default otherwise.
51
+ # VITE_BACKEND_URL=http://127.0.0.1:12800 # Backend URL for dashboard development.
52
+
53
+ # Defaults and overrides. Uncomment only when the built-in default is not suitable.
54
+
55
+ # Database connection and lock limits.
56
+ # DATABASE_POOL_MAX=20 # Maximum database connections per process.
57
+ # DATABASE_STATEMENT_TIMEOUT_MS=30000 # Maximum statement runtime.
58
+ # DATABASE_IDLE_IN_TXN_TIMEOUT_MS=60000 # Maximum idle transaction time.
59
+ # DATABASE_LOCK_TIMEOUT_MS=5000 # Maximum lock wait time.
60
+
61
+ # Setup, request limits, memory warning, and graceful shutdown.
62
+ # CARTETHYIA_SETUP_MODE=auto # Native checks by default; docker starts Compose Redis through CARTETHYIA_REDIS_URL.
63
+ # CARTETHYIA_SERVER_MAX_BODY_BYTES=4194304 # Maximum request body size.
64
+ # CARTETHYIA_SERVER_IDLE_TIMEOUT=60 # Idle connection timeout in seconds.
65
+ # CARTETHYIA_SHUTDOWN_DRAIN_WINDOW_MS=20000 # Time for active requests to finish.
66
+ # CARTETHYIA_DRAIN_TOKEN= # Enables POST /admin/drain; loopback peer plus this token. Unset disables the route.
67
+ # CARTETHYIA_MEMORY_LIMIT_BYTES=536870912 # Explicit memory warning limit.
68
+
69
+ # Telemetry retention, payload limits, and provider installation identity.
70
+ # CARTETHYIA_TELEMETRY_RETENTION_DAYS=30 # Metadata telemetry retention in days.
71
+ # CARTETHYIA_TELEMETRY_PAYLOAD_MAX_BYTES=33554432 # Combined full-capture limit; 32 MiB.
72
+ # CARTETHYIA_TELEMETRY_PAYLOAD_FILE_MAX_BYTES=268435456 # Backing file size limit.
73
+ # CARTETHYIA_TELEMETRY_PAYLOAD_RETENTION_MS=900000 # Payload retention time.
74
+ # CARTETHYIA_INSTALL_ID_DIR=./data/.cartethyia # Writable installation-id directory.
75
+
76
+ # Network and abuse policy.
77
+ # CARTETHYIA_ALLOW_PRIVATE_UPSTREAMS=true # Allow private upstream addresses.
78
+ # CARTETHYIA_MAX_REDIRECTS=3 # Maximum upstream redirects.
79
+ # IP_RATE_MAX_PER_WINDOW=240 # Requests per client IP in the rate window.
80
+ # CARTETHYIA_MODEL_STRIKE_THRESHOLD=10 # Invalid requests inside the window before an IP ban.
81
+ # CARTETHYIA_MODEL_STRIKE_WINDOW_MS=1800000 # Sliding window that keeps invalid requests countable.
82
+ # CARTETHYIA_MODEL_BAN_TTL_MS=21600000 # Invalid-model IP-ban duration.
83
+
84
+ # Upstream deadlines and fallback retry timing.
85
+ # CARTETHYIA_UPSTREAM_TIMEOUT_MS=120000 # Overall upstream request deadline.
86
+ # CARTETHYIA_STREAM_STALL_TIMEOUT_MS=360000 # Maximum stream silence.
87
+ # CARTETHYIA_STREAM_FIRST_CHUNK_TIMEOUT_MS=200000 # Time to first visible chunk.
88
+ # CARTETHYIA_FALLBACK_RETRY_BASE_MS=100 # Minimum fallback retry delay.
89
+ # CARTETHYIA_FALLBACK_RETRY_CAP_MS=2000 # Maximum fallback retry delay.
90
+ # CARTETHYIA_ROUTE_MAX_ATTEMPTS=8 # Per-request candidate dispatch attempt cap.
91
+
92
+ # Account and proxy-pool cooldowns and socket limits.
93
+ # CARTETHYIA_ACCOUNT_RATE_LIMIT_COOLDOWN_MS=900000 # Rate-limit cooldown.
94
+ # CARTETHYIA_ACCOUNT_QUOTA_COOLDOWN_MS=3600000 # Quota cooldown.
95
+ # CARTETHYIA_ACCOUNT_MODEL_CAPACITY_COOLDOWN_MS=120000 # Model-capacity cooldown.
96
+ # CARTETHYIA_ACCOUNT_TRANSIENT_COOLDOWN_MS=30000 # Temporary error cooldown.
97
+ # CARTETHYIA_ACCOUNT_UNCLASSIFIED_COOLDOWN_MS=60000 # Unclassified error cooldown.
98
+ # CARTETHYIA_ACCOUNT_COOLDOWN_ESCALATION_MAX_MS=3600000 # Ceiling an escalated fallback may reach.
99
+ # CARTETHYIA_ACCOUNT_AUTH_REJECTED_COOLDOWN_MS=300000 # Bare 401/403 backoff, before a named revocation.
100
+ # CARTETHYIA_ACCOUNT_POLICY_BLOCK_COOLDOWN_MS=300000 # Buddy policy/channel block base backoff.
101
+ # CARTETHYIA_ACCOUNT_DISABLED_RECOVERY_MS=86400000 # Auto-disable recovery window; 0 restores terminal.
102
+ # CARTETHYIA_POOL_COOLDOWN_MS=120000 # Proxy-pool failure cooldown.
103
+ # CARTETHYIA_PROXY_MAX_SOCKETS=100 # Maximum active proxy sockets.
104
+ # CARTETHYIA_PROXY_MAX_FREE_SOCKETS=20 # Maximum idle proxy sockets.
105
+
106
+ # Provider-specific overrides. Leave unset unless a different endpoint is required.
107
+ # CARTETHYIA_KIMI_OAUTH_HOST= # Kimi OAuth host override.
108
+ # CARTETHYIA_KIMI_QUOTA_BASE_URL= # Kimi quota API base URL override.
109
+ # CARTETHYIA_GITHUB_ENTERPRISE_DOMAIN= # Enterprise domain; empty uses github.com.
110
+
111
+ # Optional disposable test services. Keep these in this local env file; no
112
+ # separate test env file is needed. Backend tests require the test DB URL.
113
+ # CARTETHYIA_TEST_DATABASE_URL=postgres://cartethyia_test:cartethyia_test@127.0.0.1:55432/cartethyia_test
114
+ # CARTETHYIA_TEST_REDIS_URL=redis://127.0.0.1:6379
115
+
116
+ # Dev console admin (read by scripts/dev/*; no runtime reads these).
117
+ # The password signs in through the real console form against the dev database, so it
118
+ # is an operator credential: keep it in your shell or a local env file, never in git.
119
+ # Used by `bun run dev:console-auth` (an authenticated browser for a later agent-browser
120
+ # command) and by scripts/dev/visual-baseline.ts.
121
+ # CARTETHYIA_DEV_ADMIN_USER=admin
122
+ # CARTETHYIA_DEV_ADMIN_PASSWORD=
123
+ # CARTETHYIA_VISUAL_PORT=12900 # Spare port, so a gateway already on 12800 never collides.
124
+ # CARTETHYIA_BROWSER_AGENT= # Path to the agent-browser binary; auto-detected when unset.