@bitkyc08/opencodex 2.83.0 → 2.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/README.md +0 -4
  2. package/bin/ocx.mjs +61 -3
  3. package/gui/dist/assets/App-BjlttVLy.js +58 -0
  4. package/gui/dist/assets/Tray-DyR9yBee.js +1 -0
  5. package/gui/dist/assets/{index-BAbcj51J.css → index-BB6uK6tU.css} +1 -1
  6. package/gui/dist/assets/index-BMssP4k3.js +94 -0
  7. package/gui/dist/assets/quota-summary-D8M1bc_R.js +1 -0
  8. package/gui/dist/index.html +2 -2
  9. package/package.json +2 -3
  10. package/src/adapters/anthropic/beta-allowlist.ts +87 -8
  11. package/src/adapters/anthropic/client-identity.ts +1 -1
  12. package/src/adapters/anthropic/passthrough.ts +33 -4
  13. package/src/adapters/azure.ts +19 -1
  14. package/src/adapters/client-fingerprint.ts +24 -0
  15. package/src/adapters/coding-agent/protocol.ts +15 -8
  16. package/src/adapters/coding-agent/turn.ts +22 -9
  17. package/src/adapters/cursor/arg-codec.ts +17 -5
  18. package/src/adapters/cursor/catalog.ts +8 -0
  19. package/src/adapters/cursor/effort-map.ts +3 -0
  20. package/src/adapters/cursor/freeform-args.ts +75 -0
  21. package/src/adapters/cursor/protobuf-events.ts +36 -23
  22. package/src/adapters/google-antigravity-wire.ts +22 -1
  23. package/src/adapters/google.ts +2 -2
  24. package/src/adapters/ollama-native.ts +29 -1
  25. package/src/adapters/openai-chat/messages.ts +8 -4
  26. package/src/adapters/openai-chat/response-events.ts +59 -1
  27. package/src/adapters/openai-chat.ts +8 -5
  28. package/src/adapters/openai-responses/empty-assistant.ts +32 -0
  29. package/src/adapters/openai-responses/passthrough.ts +3 -0
  30. package/src/adapters/openai-responses/request-strips.ts +10 -2
  31. package/src/adapters/qoder/adapter.ts +56 -15
  32. package/src/advisor/consult.ts +220 -0
  33. package/src/advisor/context.ts +226 -0
  34. package/src/advisor/disclosure.ts +20 -0
  35. package/src/advisor/runtime.ts +305 -0
  36. package/src/advisor/settings.ts +135 -0
  37. package/src/advisor/state.ts +369 -0
  38. package/src/advisor/synthetic-tool.ts +33 -0
  39. package/src/bridge/errors.ts +24 -0
  40. package/src/bridge.ts +1 -1
  41. package/src/chat/inbound.ts +30 -6
  42. package/src/chat/outbound.ts +5 -0
  43. package/src/claude/context-windows.ts +54 -1
  44. package/src/claude/desktop-3p-library.ts +43 -3
  45. package/src/claude/desktop-3p.ts +22 -8
  46. package/src/claude/desktop-picker-profile.ts +11 -4
  47. package/src/claude/desktop-profile.ts +10 -1
  48. package/src/claude/desktop-remote-store-io.ts +5 -3
  49. package/src/claude/inbound.ts +121 -50
  50. package/src/claude/intercept/connect-proxy.ts +10 -3
  51. package/src/claude/intercept/local-ca.ts +8 -1
  52. package/src/claude/intercept/picker-ca-persistence.ts +3 -1
  53. package/src/claude/intercept/picker-listener.ts +49 -1
  54. package/src/claude/intercept/settings-no-proxy.ts +146 -0
  55. package/src/claude/intercept/settings.ts +101 -9
  56. package/src/claude/model-default-settings.ts +154 -0
  57. package/src/claude/model-info.ts +7 -7
  58. package/src/claude/outbound.ts +13 -6
  59. package/src/cli/account-api.ts +65 -0
  60. package/src/cli/account-auth.ts +26 -2
  61. package/src/cli/account.ts +41 -5
  62. package/src/cli/advisor.ts +151 -0
  63. package/src/cli/auxiliary-listener-preflight.ts +37 -0
  64. package/src/cli/capabilities-access-remote.ts +8 -0
  65. package/src/cli/capabilities-agents-routing.ts +18 -0
  66. package/src/cli/capabilities-base.ts +14 -2
  67. package/src/cli/catalog-command-result.ts +2 -1
  68. package/src/cli/chatgpt-command.ts +35 -14
  69. package/src/cli/claude.ts +60 -11
  70. package/src/cli/config-command.ts +8 -2
  71. package/src/cli/debug.ts +8 -0
  72. package/src/cli/dispatch.ts +21 -4
  73. package/src/cli/doctor.ts +9 -0
  74. package/src/cli/ensure-desktop-cold-start.ts +329 -0
  75. package/src/cli/export-command.ts +15 -2
  76. package/src/cli/help.ts +2 -1
  77. package/src/cli/hub-disable.ts +99 -0
  78. package/src/cli/hub.ts +4 -2
  79. package/src/cli/index.ts +26 -8
  80. package/src/cli/integration-plan-dto.ts +2 -0
  81. package/src/cli/link-child.ts +104 -0
  82. package/src/cli/link-enrollment.ts +96 -0
  83. package/src/cli/link.ts +39 -24
  84. package/src/cli/observe-stream.ts +6 -1
  85. package/src/cli/observe.ts +10 -2
  86. package/src/cli/provider.ts +12 -0
  87. package/src/cli/registry.ts +20 -7
  88. package/src/cli/restart-scope.ts +3 -1
  89. package/src/cli/runtime-api.ts +27 -2
  90. package/src/cli/status.ts +104 -20
  91. package/src/client/connect.ts +39 -4
  92. package/src/client/hub-client.ts +14 -7
  93. package/src/client/hub-state.ts +25 -14
  94. package/src/client/link-home.ts +248 -0
  95. package/src/client/link-management-relay.ts +61 -0
  96. package/src/client/link-relay.ts +6 -1
  97. package/src/client/link-status.ts +14 -0
  98. package/src/client/machine-api.ts +14 -7
  99. package/src/client/machine-listener.ts +29 -4
  100. package/src/clients/config-export/contracts.ts +1 -0
  101. package/src/clients/config-export/model-metadata.ts +3 -2
  102. package/src/clients/config-export/qoder.ts +93 -0
  103. package/src/clients/config-export.ts +59 -16
  104. package/src/clients/omo-role-models.ts +6 -3
  105. package/src/codex/agent-role-models.ts +26 -8
  106. package/src/codex/auth-api/account-list.ts +17 -2
  107. package/src/codex/auth-api/account-selection.ts +17 -7
  108. package/src/codex/auth-api/pool-mode-gate.ts +5 -2
  109. package/src/codex/auth-api/routes.ts +5 -1
  110. package/src/codex/auth-context.ts +79 -5
  111. package/src/codex/autostart-health.ts +7 -1
  112. package/src/codex/catalog/build-entries.ts +11 -2
  113. package/src/codex/catalog/bundled.ts +5 -1
  114. package/src/codex/catalog/configured-tiers.ts +50 -0
  115. package/src/codex/catalog/effort.ts +6 -3
  116. package/src/codex/catalog/metadata.ts +4 -2
  117. package/src/codex/catalog/model-hints.ts +21 -3
  118. package/src/codex/catalog/native-models.ts +16 -2
  119. package/src/codex/catalog/native-ultrafast.ts +106 -0
  120. package/src/codex/catalog/parsing.ts +5 -0
  121. package/src/codex/catalog/provider-models.ts +4 -0
  122. package/src/codex/catalog/retained-sync.ts +2 -0
  123. package/src/codex/catalog/routed-gather.ts +22 -4
  124. package/src/codex/catalog/vendor-context.ts +82 -0
  125. package/src/codex/config-write-lock.ts +40 -2
  126. package/src/codex/convergence.ts +2 -0
  127. package/src/codex/desktop-app/types.ts +2 -0
  128. package/src/codex/desktop-app/windows.ts +29 -16
  129. package/src/codex/desktop-app-restart.ts +4 -2
  130. package/src/codex/desktop-compatibility/certificate-service.ts +99 -0
  131. package/src/codex/desktop-compatibility/certificate-store.ts +193 -0
  132. package/src/codex/desktop-compatibility/connection-store.ts +87 -0
  133. package/src/codex/desktop-compatibility/installed-build.ts +55 -0
  134. package/src/codex/desktop-compatibility/json-body.ts +29 -0
  135. package/src/codex/desktop-compatibility/native-identity.ts +62 -0
  136. package/src/codex/desktop-compatibility/relay-listener.ts +93 -0
  137. package/src/codex/desktop-compatibility/routing-binding.ts +10 -0
  138. package/src/codex/desktop-compatibility/routing-preflight.ts +69 -0
  139. package/src/codex/desktop-compatibility/runtime-ownership.ts +28 -0
  140. package/src/codex/desktop-compatibility/runtime.ts +173 -0
  141. package/src/codex/desktop-compatibility/service.ts +30 -0
  142. package/src/codex/desktop-compatibility/startup-settings.ts +50 -0
  143. package/src/codex/desktop-compatibility/usage-activation.ts +86 -0
  144. package/src/codex/desktop-compatibility/usage-controlled-fetch.ts +59 -0
  145. package/src/codex/desktop-compatibility/usage-controller.ts +107 -0
  146. package/src/codex/desktop-compatibility/usage-policy.ts +59 -0
  147. package/src/codex/desktop-compatibility/usage-refresh.ts +33 -0
  148. package/src/codex/desktop-compatibility/usage-sse-controller.ts +86 -0
  149. package/src/codex/desktop-compatibility/windows-activation-source.ts +44 -0
  150. package/src/codex/desktop-compatibility/windows-certificate-trust.ts +81 -0
  151. package/src/codex/desktop-compatibility/windows-key-protection.ts +59 -0
  152. package/src/codex/desktop-compatibility/windows-package-command.ts +86 -0
  153. package/src/codex/desktop-compatibility/windows-package-launch.ts +28 -0
  154. package/src/codex/history-provider.ts +1 -1
  155. package/src/codex/inject/config-write-section.ts +4 -1
  156. package/src/codex/inject/remove.ts +18 -6
  157. package/src/codex/journal.ts +16 -1
  158. package/src/codex/main-account.ts +99 -15
  159. package/src/codex/native-main-refresh-mode.ts +217 -0
  160. package/src/codex/native-profile-startup.ts +4 -1
  161. package/src/codex/prompt-journal.ts +20 -2
  162. package/src/codex/prompt-layers/encoding.ts +49 -0
  163. package/src/codex/prompt-layers/import-source.ts +30 -0
  164. package/src/codex/prompt-layers/toml-edit.ts +269 -37
  165. package/src/codex/prompt-layers/toml-read.ts +52 -4
  166. package/src/codex/prompt-layers.ts +383 -20
  167. package/src/codex/prompt-lock-claim.ts +13 -3
  168. package/src/codex/prompt-lock-evidence.ts +3 -3
  169. package/src/codex/prompt-lock-owner.ts +14 -6
  170. package/src/codex/prompt-text-probe.ts +34 -5
  171. package/src/codex/quota.ts +13 -6
  172. package/src/codex/role-auto-assign.ts +2 -5
  173. package/src/codex/routing/active-account.ts +21 -0
  174. package/src/codex/routing/health-store.ts +1 -1
  175. package/src/codex/routing/pool-recovery.ts +79 -0
  176. package/src/codex/routing.ts +1 -1
  177. package/src/codex/runtime.ts +196 -8
  178. package/src/codex/shim-diagnostics.ts +6 -0
  179. package/src/codex/shim-overlay.ts +15 -6
  180. package/src/codex/shim.ts +1 -1
  181. package/src/combos/failover.ts +3 -0
  182. package/src/config/api-key-reconcile.ts +34 -0
  183. package/src/config/diagnostics.ts +18 -1
  184. package/src/config/feature-flags.ts +5 -0
  185. package/src/config/live-reconcile.ts +56 -29
  186. package/src/config/live-topology.ts +29 -0
  187. package/src/config/load-degrade.ts +8 -2
  188. package/src/config/paths.ts +13 -3
  189. package/src/config/salvage.ts +3 -1
  190. package/src/config/schema/config-schema.ts +19 -0
  191. package/src/config/schema/desktop-compatibility.ts +9 -0
  192. package/src/config/schema/leaf-validators.ts +1 -0
  193. package/src/generated/compatibility-version.json +713 -285
  194. package/src/generated/model-metadata.ts +1 -1
  195. package/src/grok/grpc-web.ts +23 -1
  196. package/src/grok/reset-coupon-ledger.ts +75 -5
  197. package/src/grok/reset-coupons.ts +4 -2
  198. package/src/integrations/catalog-refresh.ts +1 -1
  199. package/src/integrations/config-io.ts +20 -2
  200. package/src/integrations/journal.ts +15 -1
  201. package/src/integrations/mutation-plan.ts +14 -7
  202. package/src/integrations/registry.ts +52 -11
  203. package/src/integrations/state.ts +19 -7
  204. package/src/integrations/store.ts +3 -0
  205. package/src/integrations/target.ts +42 -5
  206. package/src/integrations/writer.ts +24 -7
  207. package/src/lib/advisor-activation.ts +16 -0
  208. package/src/lib/app-owned-memory-stores.ts +4 -0
  209. package/src/lib/app-owned-memory.ts +11 -0
  210. package/src/lib/background-work.ts +65 -0
  211. package/src/lib/bounded-file-read.ts +58 -0
  212. package/src/lib/bun-path-runtime.d.mts +10 -1
  213. package/src/lib/bun-path-runtime.mjs +62 -3
  214. package/src/lib/desktop-proxy-route.ts +30 -0
  215. package/src/lib/desktop-upstream-tunnel.ts +107 -0
  216. package/src/lib/errors.ts +7 -0
  217. package/src/lib/json-byte-size.ts +31 -0
  218. package/src/lib/local-internal-call-capability.ts +55 -0
  219. package/src/lib/optional-shutdown-hooks.ts +35 -0
  220. package/src/lib/outbound-credential-registry.ts +210 -0
  221. package/src/lib/package-tree-integrity.ts +2 -2
  222. package/src/lib/passive-read.ts +35 -0
  223. package/src/lib/shadow-call.ts +44 -5
  224. package/src/lib/socks5-fetch.ts +48 -71
  225. package/src/lib/socks5-handshake.ts +112 -0
  226. package/src/lib/translator-budget.ts +7 -1
  227. package/src/link/codex-settings.ts +155 -0
  228. package/src/link/management-routes.ts +89 -0
  229. package/src/link/remote-probe.ts +38 -0
  230. package/src/link/ssh-argv.ts +26 -5
  231. package/src/link/ssh-runner.ts +58 -27
  232. package/src/link/status-projection.ts +22 -4
  233. package/src/link/supervisor.ts +144 -49
  234. package/src/link/tunnel-state.ts +11 -4
  235. package/src/oauth/anthropic-continuity.ts +4 -3
  236. package/src/oauth/anthropic-identity.ts +13 -2
  237. package/src/oauth/anthropic-model-quota.ts +13 -1
  238. package/src/oauth/anthropic-routing.ts +230 -23
  239. package/src/oauth/anthropic.ts +18 -4
  240. package/src/oauth/generic-account-failover.ts +29 -5
  241. package/src/oauth/google-antigravity.ts +24 -7
  242. package/src/oauth/index.ts +28 -17
  243. package/src/oauth/kiro-account-identity.ts +106 -0
  244. package/src/oauth/kiro-device-login.ts +2 -1
  245. package/src/oauth/kiro.ts +55 -6
  246. package/src/oauth/plan.ts +29 -0
  247. package/src/oauth/store.ts +40 -3
  248. package/src/oauth/types.ts +2 -0
  249. package/src/plugins/loader.ts +11 -0
  250. package/src/protocols/codecs/chat-ir.ts +467 -0
  251. package/src/protocols/codecs/chat.ts +10 -1
  252. package/src/protocols/codecs/messages-ir.ts +500 -0
  253. package/src/protocols/features.ts +10 -2
  254. package/src/protocols/path.ts +11 -1
  255. package/src/protocols/plan-snapshot.ts +39 -16
  256. package/src/protocols/plan.ts +9 -1
  257. package/src/protocols/settings.ts +8 -0
  258. package/src/providers/anthropic-billing-ownership.ts +74 -0
  259. package/src/providers/anthropic-billing-recovery.ts +31 -0
  260. package/src/providers/anthropic-billing-refusal.ts +55 -0
  261. package/src/providers/anthropic-reset-admission.ts +62 -0
  262. package/src/providers/anthropic-reset-grant-ledger.ts +28 -6
  263. package/src/providers/antigravity-account-roster.ts +102 -0
  264. package/src/providers/antigravity-models.ts +85 -7
  265. package/src/providers/api-key-resolve.ts +17 -2
  266. package/src/providers/key-failover.ts +52 -5
  267. package/src/providers/model-rename-fields.ts +2 -0
  268. package/src/providers/model-rename-migration.ts +5 -3
  269. package/src/providers/model-rename-startup.ts +5 -3
  270. package/src/providers/quota/account-cache.ts +11 -0
  271. package/src/providers/quota/anthropic-account-quota.ts +4 -2
  272. package/src/providers/quota/report-cache.ts +14 -0
  273. package/src/providers/quota/vendor-probes-oauth.ts +3 -3
  274. package/src/providers/quota.ts +4 -1
  275. package/src/providers/registry/entries-core.ts +21 -20
  276. package/src/providers/registry/entries-extended.ts +19 -1
  277. package/src/providers/registry/model-seeds.ts +17 -0
  278. package/src/providers/request-pacing.ts +9 -0
  279. package/src/providers/stale-no-vision-seed-migration.ts +72 -0
  280. package/src/responses/compaction.ts +14 -0
  281. package/src/responses/parser.ts +37 -20
  282. package/src/responses/state.ts +32 -29
  283. package/src/routing/history/build-file.ts +92 -0
  284. package/src/routing/history/indexer.ts +248 -216
  285. package/src/routing/history/ingest.ts +238 -0
  286. package/src/routing/history/rebuild-job.ts +111 -0
  287. package/src/routing/history/rebuild-protocol.ts +15 -0
  288. package/src/routing/history/rebuild-worker.ts +34 -0
  289. package/src/server/admission-model-scope.ts +4 -1
  290. package/src/server/antigravity-direct-eligibility.ts +208 -0
  291. package/src/server/auth-cors.ts +46 -0
  292. package/src/server/chat-completions.ts +75 -9
  293. package/src/server/claude-messages.ts +110 -20
  294. package/src/server/configured-credentials.ts +194 -0
  295. package/src/server/index/desktop-compatibility-startup.ts +56 -0
  296. package/src/server/index/link-management.ts +58 -0
  297. package/src/server/index/optional-listeners.ts +5 -1
  298. package/src/server/index/serve-options.ts +15 -2
  299. package/src/server/index/startup-warnings.ts +9 -0
  300. package/src/server/index/websocket-handler.ts +9 -0
  301. package/src/server/index.ts +13 -10
  302. package/src/server/inference/client-encoder-delivery.ts +6 -5
  303. package/src/server/lifecycle.ts +2 -1
  304. package/src/server/login-shell-path.ts +146 -0
  305. package/src/server/management/advisor-routes.ts +191 -0
  306. package/src/server/management/agent-settings-routes.ts +50 -14
  307. package/src/server/management/anthropic-reset-grant-routes.ts +17 -1
  308. package/src/server/management/codex-agent-role-routes.ts +19 -6
  309. package/src/server/management/codex-prompt-routes.ts +136 -5
  310. package/src/server/management/codex-role-auto-assign.ts +1 -1
  311. package/src/server/management/companion-routes.ts +4 -0
  312. package/src/server/management/config-routes.ts +2 -2
  313. package/src/server/management/context.ts +4 -0
  314. package/src/server/management/desktop-compatibility-routes.ts +46 -0
  315. package/src/server/management/desktop-compatibility-runtime-routes.ts +46 -0
  316. package/src/server/management/desktop-compatibility-settings-routes.ts +27 -0
  317. package/src/server/management/grok-coupon-routes.ts +78 -27
  318. package/src/server/management/link-enrollment.ts +192 -0
  319. package/src/server/management/link-route-state.ts +185 -0
  320. package/src/server/management/link-routes.ts +82 -402
  321. package/src/server/management/model-routes.ts +2 -2
  322. package/src/server/management/model-rows.ts +3 -1
  323. package/src/server/management/protocol-settings-patch.ts +1 -0
  324. package/src/server/management/provider-overwrite-carry.ts +10 -0
  325. package/src/server/management/provider-routes.ts +1 -0
  326. package/src/server/management/route-registry.ts +16 -3
  327. package/src/server/management/shared.ts +3 -0
  328. package/src/server/management/sibling-guard.ts +1 -0
  329. package/src/server/management-api.ts +9 -1
  330. package/src/server/messages-antigravity-direct.ts +195 -0
  331. package/src/server/messages-native.ts +73 -43
  332. package/src/server/relay-eager.ts +2 -0
  333. package/src/server/request-log-filter.ts +6 -1
  334. package/src/server/request-log-terminal-status.ts +63 -6
  335. package/src/server/request-log.ts +7 -0
  336. package/src/server/responses/adapter-continuation.ts +35 -18
  337. package/src/server/responses/adapter-delivery.ts +24 -2
  338. package/src/server/responses/adapter-dispatch.ts +261 -81
  339. package/src/server/responses/advisor-plan-slot.ts +27 -0
  340. package/src/server/responses/advisor-slot.ts +336 -0
  341. package/src/server/responses/code-mode-collab-surface.ts +313 -0
  342. package/src/server/responses/codex-ws-exchange.ts +147 -6
  343. package/src/server/responses/codex-ws-wire.ts +203 -0
  344. package/src/server/responses/collaboration.ts +36 -7
  345. package/src/server/responses/compact.ts +126 -48
  346. package/src/server/responses/context-overflow.ts +13 -1
  347. package/src/server/responses/core-codex-account.ts +105 -1
  348. package/src/server/responses/core-combo-failure.ts +24 -1
  349. package/src/server/responses/core-combo.ts +28 -2
  350. package/src/server/responses/core-errors.ts +29 -1
  351. package/src/server/responses/core-lifetime.ts +2 -0
  352. package/src/server/responses/core-normalize.ts +11 -0
  353. package/src/server/responses/core-options.ts +48 -0
  354. package/src/server/responses/core-replay.ts +7 -4
  355. package/src/server/responses/core.ts +1 -1
  356. package/src/server/responses/deferred-collab-surface.ts +158 -0
  357. package/src/server/responses/deferred-send-reporter.ts +25 -0
  358. package/src/server/responses/fetch-helpers.ts +12 -1
  359. package/src/server/responses/passthrough-delivery.ts +20 -11
  360. package/src/server/responses/passthrough-dispatch.ts +29 -7
  361. package/src/server/responses/request-prepare.ts +74 -9
  362. package/src/server/responses/request-transport.ts +22 -8
  363. package/src/server/responses/run-turn-execution.ts +70 -8
  364. package/src/server/responses/sidecar-execution.ts +89 -5
  365. package/src/server/responses/terminal-guard.ts +2 -1
  366. package/src/server/responses/ws-upstream.ts +9 -1
  367. package/src/server/responses-undeclared-tool-guard.ts +30 -9
  368. package/src/server/startup-action-control.ts +38 -4
  369. package/src/server/startup-health-cache.ts +5 -0
  370. package/src/server/system-env-shell.ts +7 -2
  371. package/src/server/system-env.ts +11 -1
  372. package/src/service/cli.ts +5 -1
  373. package/src/service/desktop-startup.ts +161 -34
  374. package/src/service/desktop-supervision.d.mts +27 -1
  375. package/src/service/desktop-supervision.mjs +111 -5
  376. package/src/service/health-sentinel-launch.ts +176 -0
  377. package/src/service/health-sentinel-main.ts +466 -0
  378. package/src/service/health-sentinel-policy.ts +241 -0
  379. package/src/service/health-sentinel-probe.ts +71 -0
  380. package/src/service/health-sentinel-windows.ts +87 -0
  381. package/src/service/linux-linger.ts +20 -0
  382. package/src/service/logging.ts +72 -0
  383. package/src/tray/windows-tray.ps1 +43 -24
  384. package/src/types/config.ts +68 -6
  385. package/src/types/provider.ts +7 -0
  386. package/src/types/request.ts +15 -0
  387. package/src/types/tools.ts +2 -0
  388. package/src/update/async-check.ts +1 -1
  389. package/src/update/badge.ts +2 -2
  390. package/src/update/index.ts +88 -15
  391. package/src/update/job-supervised-restart.ts +107 -0
  392. package/src/update/job.ts +32 -32
  393. package/src/update/notify.ts +1 -1
  394. package/src/update/refresh-scheduler.ts +2 -2
  395. package/src/update/supervised-recovery.d.mts +27 -0
  396. package/src/update/supervised-recovery.mjs +157 -0
  397. package/src/usage/cache-diagnostic.ts +2 -0
  398. package/src/usage/expected-prices.ts +16 -0
  399. package/src/usage/log.ts +19 -1
  400. package/src/web-search/gemini-executor.ts +2 -2
  401. package/assets/sponsors/packycode.png +0 -0
  402. package/gui/dist/assets/App-Ba8uG696.js +0 -54
  403. package/gui/dist/assets/Tray-IImbNPRy.js +0 -1
  404. package/gui/dist/assets/index-BHRZdJuv.js +0 -94
  405. package/gui/dist/assets/quota-summary-DiJO6sYY.js +0 -1
@@ -0,0 +1 @@
1
+ import{A as e,C as t,j as n,m as r,n as i,o as a,p as o,s,u as c,y as l}from"./index-BMssP4k3.js";import{J as u,T as d,X as f,_ as ee,a as p,c as m,d as h,f as g,i as te,l as ne,m as re,o as ie,p as ae,r as oe,s as _,u as v,v as y}from"./quota-summary-D8M1bc_R.js";var b=n(e(),1),x={discover:r,configure:s,hasSharedSession:()=>c(`shared`),bootstrapShared:e=>a(`shared`,e)},S=()=>new DOMException(`Tray target resolution cancelled`,`AbortError`);async function C(e,t=``,n=x){if(e.aborted)throw S();let r=await n.discover(t,e);if(e.aborted||(n.configure(r),r.connected&&!n.hasSharedSession()&&await n.bootstrapShared(e),e.aborted))throw S();return o(`shared`,r)}var w=i(),T=2e4,E=e=>e?.usageIncomplete||e?.historyTruncated||e?.entriesTruncated;function D({resolveApiBase:e=C}={}){let{t:n,locale:r}=t(),[i,a]=(0,b.useState)(null),[o,s]=(0,b.useState)(!1),[c,x]=(0,b.useState)(null),[S,D]=(0,b.useState)(!1),[O,k]=(0,b.useState)([null,null]),[A,j]=(0,b.useState)(!1),[se,M]=(0,b.useState)([]),[ce,N]=(0,b.useState)(!1),[P,F]=(0,b.useState)(null),[I,L]=(0,b.useState)(!1),[R,z]=(0,b.useState)(null),[B,V]=(0,b.useState)(!1),[H,U]=(0,b.useState)(0),[W,G]=(0,b.useState)(null),[K,q]=(0,b.useState)(null),J=()=>{s(!1),U(e=>e+1)},Y=(0,b.useRef)(!1),X=(0,b.useRef)(null),Z=(0,b.useRef)(!0);(0,b.useEffect)(()=>(Z.current=!0,document.documentElement.classList.add(`tray-document`),()=>{Z.current=!1,X.current?.abort(),document.documentElement.classList.remove(`tray-document`)}),[]),(0,b.useEffect)(()=>{if(i!==null)return;let t=new AbortController;return e(t.signal).then(e=>{t.signal.aborted||a(e)},()=>{t.signal.aborted||s(!0)}),()=>t.abort()},[H,i,e]);let le=async(e,t,r)=>{if(i===null)return;G(`${e}:${r}`),q(null);let a=l(T);X.current=a.controller;try{let n=te(e,t,r),o=await fetch(`${i}${n.path}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n.body),signal:a.signal});if(!o.ok)throw Error(String(o.status));if(!Z.current)return;Y.current=!0,J()}catch{if(!Z.current)return;G(null),q(n(t===`codex`?`codexAuth.switchFailed`:`prov.accountSwitchFail`))}finally{a.clear(),X.current===a.controller&&(X.current=null)}};(0,b.useEffect)(()=>{if(i===null)return;let e=null,t=!1,n=!0,r=!1,a=()=>!document.hidden&&(window.__OPENCODEX_TRAY_VISIBLE__??n),o=async()=>{if(!a()||t)return;t=!0,V(!0);let n=!1,s=new AbortController;e=s;let c=e=>p(`${i}${e}`,s.signal),l=()=>!r&&!s.signal.aborted;try{let e=(async()=>{try{let e=h(await c(`/api/config`)),t=await Promise.all(e.map(async e=>{if(!e.path)return{name:e.name,switchKind:e.switchKind,accounts:[]};try{let t=await c(e.path);if(e.name===`openai`)try{t.activeCodexAccountId=(await c(`/api/codex-auth/active`)).activeCodexAccountId??`__main__`}catch{}return{name:e.name,switchKind:e.switchKind,accounts:ne(t)}}catch{return{name:e.name,switchKind:e.switchKind,accounts:[],unavailable:!0}}}));l()&&(M(t),N(!1),n=!0)}catch{l()&&(M([]),N(!0))}})(),t=(async()=>{let e;try{if(e=(await c(`/api/companion/settings`)).settings,!e||!Array.isArray(e.hiddenProviders)||!(e.models===null||Array.isArray(e.models)))throw Error(`Invalid settings`);l()&&(x(e),D(!1))}catch{l()&&D(!0);return}let t=Promise.allSettled([`/api/usage?range=today`,`/api/usage?range=30d`].map(async t=>{let n=v(await c(t));return ie(n,e)})).then(e=>{l()&&(n||=e.some(e=>e.status===`fulfilled`),k(e.map(e=>e.status===`fulfilled`?e.value:null)),j(e.some(e=>e.status===`rejected`)))}),r=(async()=>{if(!e.showChart)return;let t=y(e);try{let n=await c(`/api/usage/timeline?${t}`);l()&&(F(ee(n,e)),L(!1))}catch{l()&&(F(null),L(!0))}})();await Promise.allSettled([t,r])})();await Promise.allSettled([e,t])}finally{t=!1,l()&&(V(!1),n&&z(Date.now()),Y.current&&(Y.current=!1,G(null))),!r&&s.signal.aborted&&a()&&o()}},s=()=>{a()?o():e?.abort()},c=()=>{n=!1,s()},l=()=>{n=!0,s()},u=e=>{let t=e.detail;typeof t==`boolean`&&(window.__OPENCODEX_TRAY_VISIBLE__=t),s()};o();let d=setInterval(()=>void o(),6e4);return document.addEventListener(`visibilitychange`,s),window.addEventListener(`blur`,c),window.addEventListener(`focus`,l),window.addEventListener(`opencodex:tray-visibility`,u),()=>{r=!0,e?.abort(),clearInterval(d),document.removeEventListener(`visibilitychange`,s),window.removeEventListener(`blur`,c),window.removeEventListener(`focus`,l),window.removeEventListener(`opencodex:tray-visibility`,u)}},[H,i]);let Q=e=>_(e)?u(e,r):`—`,$=e=>{let t=e?m(e):void 0,i=t?.cacheReadInputTokens??t?.cachedInputTokens,a=_(i)&&_(t?.inputTokens)&&t.inputTokens>0?`${Math.round(i/t.inputTokens*100)}%`:`—`;return(0,w.jsxs)(`dl`,{children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{children:n(`usage.card.totalTokens`)}),(0,w.jsx)(`dd`,{children:Q(t?.totalTokens)})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{children:n(`tray.input`)}),(0,w.jsxs)(`dd`,{children:[Q(t?.inputTokens),` `,(0,w.jsx)(`small`,{title:n(`usage.card.cachedTokens`),children:n(`tray.cached`,{percent:a})})]})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{children:n(`tray.output`)}),(0,w.jsx)(`dd`,{children:Q(t?.outputTokens)})]}),c?.showCost&&(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{title:n(`logs.metric.estimatedCostTitle`),children:n(`tray.cost`)}),(0,w.jsx)(`dd`,{title:_(t?.requests)&&_(t?.pricedRequests)&&t.pricedRequests<t.requests?n(`usage.cost.unpricedNote`,{count:t.requests-t.pricedRequests}):n(`logs.metric.estimatedCostTitle`),children:_(t?.estimatedCostUsd)?new Intl.NumberFormat(r,{style:`currency`,currency:`USD`,maximumFractionDigits:2}).format(t.estimatedCostUsd)+(_(t.pricedRequests)&&_(t.requests)&&t.pricedRequests<t.requests?`*`:``):`—`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{children:n(`usage.card.requests`)}),(0,w.jsx)(`dd`,{children:Q(t?.requests)})]}),_(t?.requests)&&t.requests>0&&_(t.measuredRequests)&&t.measuredRequests<t.requests&&(0,w.jsxs)(`div`,{className:`tray-coverage`,title:n(`usage.coverage.note`),children:[(0,w.jsx)(`dt`,{children:n(`usage.card.coverage`)}),(0,w.jsxs)(`dd`,{children:[Math.round(t.measuredRequests/t.requests*100),`%`]})]})]})},ue=new Set(c?.hiddenProviders??[]);return(0,w.jsxs)(`main`,{className:`tray-page`,children:[(0,w.jsxs)(`header`,{children:[(0,w.jsx)(`strong`,{children:`OpenCodex`}),(0,w.jsx)(`a`,{href:`/?desktop=open#/usage`,"aria-label":n(`sub.settings`),title:n(`sub.settings`),children:`⚙`})]}),o&&(0,w.jsxs)(`p`,{role:`alert`,className:`tray-error`,children:[n(`startup.tray.unavailable`),` `,(0,w.jsx)(`button`,{onClick:J,children:n(`common.retry`)})]}),S&&(0,w.jsxs)(`p`,{role:`alert`,className:`tray-error`,children:[n(`usage.companion.settingsUnavailable`),` `,(0,w.jsx)(`button`,{onClick:J,children:n(`common.retry`)})]}),!c&&!S&&!o&&(0,w.jsx)(`p`,{role:`status`,children:n(`common.loading`)}),c&&(0,w.jsxs)(`section`,{className:`tray-totals`,children:[c.showToday&&(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(`h2`,{children:[n(`tray.today`),E(O[0])&&(0,w.jsx)(`span`,{title:n(`usage.incomplete`),"aria-label":n(`usage.incomplete`),children:` *`})]}),$(O[0]?.summary)]}),(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(`h2`,{children:[n(`usage.range.30d`),E(O[1])&&(0,w.jsx)(`span`,{title:n(`usage.incomplete`),"aria-label":n(`usage.incomplete`),children:` *`})]}),$(O[1]?.summary)]})]}),A&&(0,w.jsxs)(`p`,{role:`alert`,className:`tray-error`,children:[n(`usage.loadError`),` `,(0,w.jsx)(`button`,{onClick:J,children:n(`common.retry`)})]}),c?.showChart&&(0,w.jsx)(`section`,{className:`tray-chart`,children:(0,w.jsx)(re,{timeline:P,chartStyle:c.chartStyle,hours:c.chartHours,loading:!P&&!I,error:I?n(`usage.companion.timelineUnavailable`):null,onRetry:J,locale:r,t:n})}),c?.showModels&&!!O[0]?.models.length&&(0,w.jsx)(`section`,{className:`tray-models`,"aria-label":n(`usage.section.models`),children:O[0].models.map(e=>(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{title:`${e.provider}/${e.model}`,children:e.model}),(0,w.jsxs)(`span`,{className:`tray-model-metrics`,children:[(0,w.jsx)(`span`,{title:n(`usage.card.requests`),children:n(`pws.dashboard.requests`,{count:Q(e.requests)})}),(0,w.jsx)(`span`,{title:n(`usage.card.totalTokens`),children:Q(m(e).totalTokens)})]})]},`${e.provider}/${e.model}`))}),(c?.showAccounts??!0)&&(0,w.jsxs)(`section`,{className:`tray-providers`,"aria-label":n(`usage.section.providers`),children:[ce&&(0,w.jsxs)(`p`,{role:`alert`,className:`tray-error`,children:[n(`startup.tray.unavailable`),` `,(0,w.jsx)(`button`,{onClick:J,children:n(`common.retry`)})]}),K&&(0,w.jsx)(`p`,{role:`alert`,className:`tray-error`,children:K}),se.filter(e=>!ue.has(e.name)).map(e=>(0,w.jsxs)(`div`,{className:`tray-provider`,children:[(0,w.jsxs)(`h2`,{children:[(0,w.jsx)(d,{name:e.name,cls:`provider-icon tray-provider-icon`}),f(e.name,n)]}),!e.accounts.length&&(0,w.jsx)(`div`,{className:`tray-missing`,children:n(e.unavailable?`startup.tray.unavailable`:`pws.dashboard.noQuota`)}),e.accounts.map(t=>{let i=e.switchKind,a=W===`${e.name}:${t.id}`;return(0,w.jsxs)(`div`,{className:`tray-account`,children:[(0,w.jsxs)(`div`,{className:`tray-account-name`,children:[(0,w.jsxs)(`span`,{className:`tray-account-label`,title:t.label,children:[t.label,t.exhausted&&(0,w.jsx)(`span`,{className:`tray-exhausted`,title:n(`quota.limitReached`),"aria-label":n(`quota.limitReached`),children:` ⚠`})]}),(0,w.jsxs)(`span`,{className:`tray-account-meta`,children:[a&&(0,w.jsx)(`span`,{role:`status`,children:n(`pws.accountSwitching`)}),!a&&i&&t.switchState===`available`&&(0,w.jsx)(`button`,{type:`button`,className:`tray-use`,disabled:W!==null,onClick:()=>void le(e.name,i,t.id),title:n(`prov.accountSwitchTitle`),"aria-label":`${n(`prov.accountSwitchTitle`)}: ${t.label}`,children:n(`prov.accountSwitchTitle`)}),t.plan,t.active&&(0,w.jsx)(`span`,{className:`tray-active`,title:n(`prov.activeBadge`),"aria-label":n(`prov.activeBadge`),children:` ✓`})]})]}),t.email&&t.email!==t.label&&(0,w.jsx)(`div`,{className:`tray-account-email`,children:t.email}),!g(t.quota).length&&(0,w.jsx)(`div`,{className:`tray-missing`,children:n(t.unavailable?`startup.tray.unavailable`:`pws.dashboard.noQuota`)}),g(t.quota).map(e=>{let t=`key`in e?n(e.key):e.label,i=ae(e.reset,r),a=_(e.percent)?Math.min(100,e.percent):null;return(0,w.jsxs)(`div`,{className:`tray-quota`,children:[(0,w.jsx)(`span`,{title:t,children:t}),(0,w.jsx)(`span`,{children:a===null?`—`:`${Math.round(a)}%`}),(0,w.jsx)(`span`,{className:`tray-bar tray-bar--${oe(a??void 0)}`,role:a===null?`img`:`meter`,"aria-label":a===null?`${t}: ${n(`pws.dashboard.noQuota`)}`:t,"aria-valuemin":a===null?void 0:0,"aria-valuemax":a===null?void 0:100,"aria-valuenow":a??void 0,"aria-valuetext":a===null?void 0:`${Math.round(a)}%`,children:(0,w.jsx)(`i`,{style:{width:a===null?`0%`:`${a}%`}})}),(0,w.jsx)(`time`,{title:i.exact,children:i.text})]},e.id)})]},t.id)})]},e.name))]}),(0,w.jsxs)(`div`,{className:`tray-refresh`,children:[(0,w.jsx)(`button`,{type:`button`,onClick:J,disabled:B,children:n(`startup.refresh`)}),(0,w.jsx)(`span`,{role:`status`,children:n(`tray.updated`,{time:R===null?`—`:new Date(R).toLocaleTimeString(r,{hour:`2-digit`,minute:`2-digit`})})})]}),(0,w.jsx)(`footer`,{children:(0,w.jsxs)(`a`,{href:`/?desktop=open#/usage`,children:[n(`nav.dashboard`),` `,(0,w.jsx)(`span`,{"aria-hidden":`true`,children:`↗`})]})})]})}export{D as default};