@bitkyc08/opencodex 2.36.0 → 2.38.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 (70) hide show
  1. package/bin/ocx.mjs +69 -10
  2. package/gui/dist/assets/index-C14iCj_Q.js +112 -0
  3. package/gui/dist/assets/index-D7PIz7_g.css +1 -0
  4. package/gui/dist/index.html +2 -2
  5. package/gui/dist/provider-icons/aside.svg +3 -0
  6. package/gui/dist/provider-icons/deepseek-harness.svg +3 -0
  7. package/gui/dist/provider-icons/oh-my-pi.svg +11 -0
  8. package/gui/dist/provider-icons/openclaw.svg +54 -0
  9. package/gui/dist/provider-icons/prime-agent.svg +21 -0
  10. package/gui/dist/provider-icons/zcode.svg +219 -0
  11. package/package.json +1 -1
  12. package/src/adapters/cursor/protobuf-request.ts +4 -1
  13. package/src/adapters/cursor/tool-definitions.ts +36 -4
  14. package/src/adapters/kiro-constants.ts +36 -2
  15. package/src/adapters/kiro.ts +13 -2
  16. package/src/cli/capabilities.ts +14 -0
  17. package/src/cli/claude.ts +12 -0
  18. package/src/cli/codex-cli-update.ts +96 -0
  19. package/src/cli/codex-shim-autorestore.ts +3 -0
  20. package/src/cli/export-command.ts +18 -17
  21. package/src/cli/help.ts +2 -2
  22. package/src/cli/index.ts +3 -2
  23. package/src/cli/launcher-context.ts +53 -2
  24. package/src/cli/opencode.ts +126 -33
  25. package/src/cli/registry.ts +16 -10
  26. package/src/cli/system-command.ts +6 -1
  27. package/src/clients/config-export.ts +293 -28
  28. package/src/codex/account-store.ts +10 -4
  29. package/src/codex/autostart-health.ts +3 -3
  30. package/src/codex/catalog/provider-fetch.ts +20 -1
  31. package/src/codex/catalog/sync.ts +4 -3
  32. package/src/codex/cli-install-provenance.ts +795 -0
  33. package/src/codex/convergence.ts +4 -3
  34. package/src/codex/credential-mutation-epoch.ts +11 -0
  35. package/src/codex/main-account.ts +2 -0
  36. package/src/codex/model-entitlements.ts +489 -30
  37. package/src/codex/native-profile-manager.ts +4 -0
  38. package/src/codex/reset-credit-operation-ledger.ts +1411 -0
  39. package/src/codex/reset-credit-recovery.ts +20 -2
  40. package/src/codex/shim.ts +204 -18
  41. package/src/codex/user-identity.ts +2 -1
  42. package/src/config/paths.ts +18 -3
  43. package/src/config.ts +23 -0
  44. package/src/generated/compatibility-version.json +84 -48
  45. package/src/integrations/registry.ts +112 -0
  46. package/src/integrations/state.ts +67 -5
  47. package/src/integrations/writer.ts +25 -9
  48. package/src/lib/bounded-subprocess.ts +36 -0
  49. package/src/lib/strict-semver.ts +47 -0
  50. package/src/lib/windows-elevation.ts +32 -1
  51. package/src/lib/windows-secret-acl.ts +47 -25
  52. package/src/lib/windows-service-mutation-lock.ts +133 -0
  53. package/src/lib/windows-user-principal.ts +15 -17
  54. package/src/responses/spill-store.ts +334 -29
  55. package/src/responses/state.ts +488 -7
  56. package/src/server/index.ts +4 -3
  57. package/src/server/lifecycle.ts +5 -1
  58. package/src/server/management/model-rows.ts +11 -2
  59. package/src/server/management/provider-routes.ts +4 -0
  60. package/src/server/management/system-restart.ts +5 -5
  61. package/src/server/management-api.ts +7 -2
  62. package/src/server/startup-action-control.ts +3 -2
  63. package/src/service.ts +594 -33
  64. package/src/sidecar/candidates.ts +1 -1
  65. package/src/update/codex-cli-update-launch-policy.d.mts +18 -0
  66. package/src/update/codex-cli-update-launch-policy.mjs +30 -0
  67. package/src/update/index.ts +3 -2
  68. package/src/update/job.ts +10 -11
  69. package/gui/dist/assets/index-Cy7Z_pl0.css +0 -1
  70. package/gui/dist/assets/index-DO8liQVL.js +0 -112
@@ -73,6 +73,7 @@ import { codexAccountNamespaceEntries, isMainCodexAccountTarget } from "./accoun
73
73
  import { MAIN_CODEX_ACCOUNT_ID } from "./main-account";
74
74
  import {
75
75
  availableAccountGatedNativeModels,
76
+ codexModelEntitlementStateForAccount,
76
77
  isCodexModelEntitlementSnapshotCurrent,
77
78
  resolveCodexModelEntitlements,
78
79
  type CodexModelEntitlementSnapshot,
@@ -277,10 +278,10 @@ function prepareCatalog(
277
278
  ? new Map([...accountBoundNativeOpenAiSlugsBySelector(config, observedAccountNativeEntries)].map(([selector, slugs]) => {
278
279
  const target = accountTargets.get(selector);
279
280
  const accountId = target && isMainCodexAccountTarget(target) ? MAIN_CODEX_ACCOUNT_ID : target;
280
- const entitled = accountId ? modelEntitlements.modelsByAccount.get(accountId) : undefined;
281
- const confirmed = accountId ? modelEntitlements.confirmedAccountIds.has(accountId) : false;
282
281
  return [selector, slugs.filter(slug => (
283
- !ACCOUNT_GATED_NATIVE_OPENAI_MODELS.has(slug) || (confirmed && entitled?.has(slug) === true)
282
+ !ACCOUNT_GATED_NATIVE_OPENAI_MODELS.has(slug)
283
+ || (accountId !== undefined
284
+ && codexModelEntitlementStateForAccount(modelEntitlements, accountId, slug) === "granted")
284
285
  ))] as const;
285
286
  }))
286
287
  : new Map<string, readonly string[]>();
@@ -0,0 +1,11 @@
1
+ let credentialMutationEpoch = 0;
2
+
3
+ /** Process-local fence advanced after every OpenCodex-owned credential publication. */
4
+ export function codexCredentialMutationEpoch(): number {
5
+ return credentialMutationEpoch;
6
+ }
7
+
8
+ export function advanceCodexCredentialMutationEpoch(): number {
9
+ credentialMutationEpoch += 1;
10
+ return credentialMutationEpoch;
11
+ }
@@ -18,6 +18,7 @@ import { atomicWriteFile, resolveWriteTarget } from "../config/atomic-write";
18
18
  import { resolveCodexHomeDir } from "./home";
19
19
  import { assertNotRealCodexHomeUnderTest } from "../lib/test-home-guard";
20
20
  import { clearAccountNeedsReauth } from "./account-runtime-state";
21
+ import { advanceCodexCredentialMutationEpoch } from "./credential-mutation-epoch";
21
22
 
22
23
  export { MAIN_CODEX_ACCOUNT_ID } from "./account-id";
23
24
 
@@ -160,6 +161,7 @@ function persistRefreshedMainAuthJson(
160
161
  validateBeforeRename: () => assertMainAuthJsonSnapshotUnchanged(expected),
161
162
  },
162
163
  );
164
+ advanceCodexCredentialMutationEpoch();
163
165
  return { accessToken, chatgptAccountId };
164
166
  }
165
167