@iam-brain/opencode-codex-auth 1.4.4 → 1.5.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 (128) hide show
  1. package/dist/lib/codex-native/auth-menu-flow.js +2 -2
  2. package/dist/lib/codex-native/auth-menu-flow.js.map +1 -1
  3. package/dist/lib/codex-native/catalog-sync.d.ts +4 -0
  4. package/dist/lib/codex-native/catalog-sync.d.ts.map +1 -1
  5. package/dist/lib/codex-native/catalog-sync.js +36 -1
  6. package/dist/lib/codex-native/catalog-sync.js.map +1 -1
  7. package/dist/lib/codex-native/chat-hooks.d.ts +1 -1
  8. package/dist/lib/codex-native/chat-hooks.d.ts.map +1 -1
  9. package/dist/lib/codex-native/chat-hooks.js +1 -1
  10. package/dist/lib/codex-native/chat-hooks.js.map +1 -1
  11. package/dist/lib/codex-native/oauth-server.d.ts +17 -2
  12. package/dist/lib/codex-native/oauth-server.d.ts.map +1 -1
  13. package/dist/lib/codex-native/oauth-server.js +123 -3
  14. package/dist/lib/codex-native/oauth-server.js.map +1 -1
  15. package/dist/lib/codex-native/openai-loader-fetch.d.ts.map +1 -1
  16. package/dist/lib/codex-native/openai-loader-fetch.js +1 -1
  17. package/dist/lib/codex-native/openai-loader-fetch.js.map +1 -1
  18. package/dist/lib/codex-native/request-transform-model-service-tier.d.ts.map +1 -1
  19. package/dist/lib/codex-native/request-transform-model-service-tier.js +7 -1
  20. package/dist/lib/codex-native/request-transform-model-service-tier.js.map +1 -1
  21. package/dist/lib/codex-native/request-transform-model.d.ts.map +1 -1
  22. package/dist/lib/codex-native/request-transform-model.js +48 -1
  23. package/dist/lib/codex-native/request-transform-model.js.map +1 -1
  24. package/dist/lib/codex-native/request-transform-payload-helpers.d.ts.map +1 -1
  25. package/dist/lib/codex-native/request-transform-payload-helpers.js +6 -1
  26. package/dist/lib/codex-native/request-transform-payload-helpers.js.map +1 -1
  27. package/dist/lib/codex-native/request-transform-payload.d.ts +1 -0
  28. package/dist/lib/codex-native/request-transform-payload.d.ts.map +1 -1
  29. package/dist/lib/codex-native/request-transform-payload.js +48 -2
  30. package/dist/lib/codex-native/request-transform-payload.js.map +1 -1
  31. package/dist/lib/codex-status-tool.js +1 -1
  32. package/dist/lib/codex-status-tool.js.map +1 -1
  33. package/dist/lib/codex-status-ui.js +1 -1
  34. package/dist/lib/codex-status-ui.js.map +1 -1
  35. package/dist/lib/config/file.d.ts +33 -0
  36. package/dist/lib/config/file.d.ts.map +1 -0
  37. package/dist/lib/config/file.js +503 -0
  38. package/dist/lib/config/file.js.map +1 -0
  39. package/dist/lib/config/resolve.d.ts +10 -1
  40. package/dist/lib/config/resolve.d.ts.map +1 -1
  41. package/dist/lib/config/resolve.js +62 -1
  42. package/dist/lib/config/resolve.js.map +1 -1
  43. package/dist/lib/config.d.ts +2 -5
  44. package/dist/lib/config.d.ts.map +1 -1
  45. package/dist/lib/config.js +2 -5
  46. package/dist/lib/config.js.map +1 -1
  47. package/dist/lib/storage/{domain-state.d.ts → auth-state.d.ts} +13 -2
  48. package/dist/lib/storage/auth-state.d.ts.map +1 -0
  49. package/dist/lib/storage/{domain-state.js → auth-state.js} +246 -26
  50. package/dist/lib/storage/auth-state.js.map +1 -0
  51. package/dist/lib/storage.d.ts +1 -1
  52. package/dist/lib/storage.d.ts.map +1 -1
  53. package/dist/lib/storage.js +2 -3
  54. package/dist/lib/storage.js.map +1 -1
  55. package/dist/lib/ui/auth-menu.d.ts +18 -1
  56. package/dist/lib/ui/auth-menu.d.ts.map +1 -1
  57. package/dist/lib/ui/auth-menu.js +78 -3
  58. package/dist/lib/ui/auth-menu.js.map +1 -1
  59. package/dist/lib/ui/tty.d.ts +40 -0
  60. package/dist/lib/ui/tty.d.ts.map +1 -0
  61. package/dist/lib/ui/{tty/select.js → tty.js} +57 -6
  62. package/dist/lib/ui/tty.js.map +1 -0
  63. package/package.json +2 -2
  64. package/dist/lib/codex-native/catalog-auth.d.ts +0 -6
  65. package/dist/lib/codex-native/catalog-auth.d.ts.map +0 -1
  66. package/dist/lib/codex-native/catalog-auth.js +0 -37
  67. package/dist/lib/codex-native/catalog-auth.js.map +0 -1
  68. package/dist/lib/codex-native/oauth-server-debug.d.ts +0 -10
  69. package/dist/lib/codex-native/oauth-server-debug.d.ts.map +0 -1
  70. package/dist/lib/codex-native/oauth-server-debug.js +0 -92
  71. package/dist/lib/codex-native/oauth-server-debug.js.map +0 -1
  72. package/dist/lib/codex-native/oauth-server-network.d.ts +0 -5
  73. package/dist/lib/codex-native/oauth-server-network.d.ts.map +0 -1
  74. package/dist/lib/codex-native/oauth-server-network.js +0 -39
  75. package/dist/lib/codex-native/oauth-server-network.js.map +0 -1
  76. package/dist/lib/codex-native/oauth-server-types.d.ts +0 -24
  77. package/dist/lib/codex-native/oauth-server-types.d.ts.map +0 -1
  78. package/dist/lib/codex-native/oauth-server-types.js +0 -2
  79. package/dist/lib/codex-native/oauth-server-types.js.map +0 -1
  80. package/dist/lib/codex-native/request-transform-gpt54-limits.d.ts +0 -2
  81. package/dist/lib/codex-native/request-transform-gpt54-limits.d.ts.map +0 -1
  82. package/dist/lib/codex-native/request-transform-gpt54-limits.js +0 -40
  83. package/dist/lib/codex-native/request-transform-gpt54-limits.js.map +0 -1
  84. package/dist/lib/codex-native/request-transform-shared.d.ts +0 -8
  85. package/dist/lib/codex-native/request-transform-shared.d.ts.map +0 -1
  86. package/dist/lib/codex-native/request-transform-shared.js +0 -49
  87. package/dist/lib/codex-native/request-transform-shared.js.map +0 -1
  88. package/dist/lib/codex-native/request-transform.d.ts +0 -4
  89. package/dist/lib/codex-native/request-transform.d.ts.map +0 -1
  90. package/dist/lib/codex-native/request-transform.js +0 -4
  91. package/dist/lib/codex-native/request-transform.js.map +0 -1
  92. package/dist/lib/config/behavior-settings.d.ts +0 -3
  93. package/dist/lib/config/behavior-settings.d.ts.map +0 -1
  94. package/dist/lib/config/behavior-settings.js +0 -33
  95. package/dist/lib/config/behavior-settings.js.map +0 -1
  96. package/dist/lib/config/io.d.ts +0 -16
  97. package/dist/lib/config/io.d.ts.map +0 -1
  98. package/dist/lib/config/io.js +0 -64
  99. package/dist/lib/config/io.js.map +0 -1
  100. package/dist/lib/config/parse.d.ts +0 -22
  101. package/dist/lib/config/parse.d.ts.map +0 -1
  102. package/dist/lib/config/parse.js +0 -327
  103. package/dist/lib/config/parse.js.map +0 -1
  104. package/dist/lib/config/validation.d.ts +0 -6
  105. package/dist/lib/config/validation.d.ts.map +0 -1
  106. package/dist/lib/config/validation.js +0 -171
  107. package/dist/lib/config/validation.js.map +0 -1
  108. package/dist/lib/storage/domain-state.d.ts.map +0 -1
  109. package/dist/lib/storage/domain-state.js.map +0 -1
  110. package/dist/lib/storage/migration.d.ts +0 -13
  111. package/dist/lib/storage/migration.d.ts.map +0 -1
  112. package/dist/lib/storage/migration.js +0 -225
  113. package/dist/lib/storage/migration.js.map +0 -1
  114. package/dist/lib/ui/auth-menu-runner.d.ts +0 -19
  115. package/dist/lib/ui/auth-menu-runner.d.ts.map +0 -1
  116. package/dist/lib/ui/auth-menu-runner.js +0 -79
  117. package/dist/lib/ui/auth-menu-runner.js.map +0 -1
  118. package/dist/lib/ui/tty/ansi.d.ts +0 -18
  119. package/dist/lib/ui/tty/ansi.d.ts.map +0 -1
  120. package/dist/lib/ui/tty/ansi.js +0 -37
  121. package/dist/lib/ui/tty/ansi.js.map +0 -1
  122. package/dist/lib/ui/tty/confirm.d.ts +0 -7
  123. package/dist/lib/ui/tty/confirm.d.ts.map +0 -1
  124. package/dist/lib/ui/tty/confirm.js +0 -20
  125. package/dist/lib/ui/tty/confirm.js.map +0 -1
  126. package/dist/lib/ui/tty/select.d.ts +0 -17
  127. package/dist/lib/ui/tty/select.d.ts.map +0 -1
  128. package/dist/lib/ui/tty/select.js.map +0 -1
@@ -1,40 +0,0 @@
1
- import { getModelLookupCandidates } from "./request-transform-model.js";
2
- import { asString } from "./request-transform-shared.js";
3
- const GPT_5_4_MAX_CONTEXT_WINDOW = 1_050_000;
4
- const GPT_5_4_MAX_OUTPUT_TOKENS = 128_000;
5
- const GPT_5_4_MAX_PRACTICAL_INPUT_TOKENS = GPT_5_4_MAX_CONTEXT_WINDOW - GPT_5_4_MAX_OUTPUT_TOKENS;
6
- export function applyGpt54LongContextClampsToPayload(payload) {
7
- const modelSlug = asString(payload.model);
8
- if (!modelSlug)
9
- return false;
10
- const modelCandidates = getModelLookupCandidates({
11
- id: modelSlug,
12
- api: { id: modelSlug }
13
- });
14
- const isGpt54 = modelCandidates.some((candidate) => candidate.trim().toLowerCase().startsWith("gpt-5.4"));
15
- if (!isGpt54)
16
- return false;
17
- let changed = false;
18
- const contextWindow = asFiniteNumber(payload.model_context_window);
19
- if (contextWindow !== undefined && contextWindow > GPT_5_4_MAX_CONTEXT_WINDOW) {
20
- payload.model_context_window = GPT_5_4_MAX_CONTEXT_WINDOW;
21
- changed = true;
22
- }
23
- const effectiveContextWindowMax = Math.min(GPT_5_4_MAX_CONTEXT_WINDOW, asFiniteNumber(payload.model_context_window) ?? GPT_5_4_MAX_CONTEXT_WINDOW);
24
- const autoCompactMax = Math.max(0, Math.min(GPT_5_4_MAX_PRACTICAL_INPUT_TOKENS, effectiveContextWindowMax - GPT_5_4_MAX_OUTPUT_TOKENS));
25
- const autoCompact = asFiniteNumber(payload.model_auto_compact_token_limit);
26
- if (autoCompact !== undefined && autoCompact > autoCompactMax) {
27
- payload.model_auto_compact_token_limit = autoCompactMax;
28
- changed = true;
29
- }
30
- const maxOutputTokens = asFiniteNumber(payload.max_output_tokens);
31
- if (maxOutputTokens !== undefined && maxOutputTokens > GPT_5_4_MAX_OUTPUT_TOKENS) {
32
- payload.max_output_tokens = GPT_5_4_MAX_OUTPUT_TOKENS;
33
- changed = true;
34
- }
35
- return changed;
36
- }
37
- function asFiniteNumber(value) {
38
- return typeof value === "number" && Number.isFinite(value) ? value : undefined;
39
- }
40
- //# sourceMappingURL=request-transform-gpt54-limits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-transform-gpt54-limits.js","sourceRoot":"","sources":["../../../lib/codex-native/request-transform-gpt54-limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,MAAM,0BAA0B,GAAG,SAAS,CAAA;AAC5C,MAAM,yBAAyB,GAAG,OAAO,CAAA;AACzC,MAAM,kCAAkC,GAAG,0BAA0B,GAAG,yBAAyB,CAAA;AAEjG,MAAM,UAAU,oCAAoC,CAAC,OAAgC;IACnF,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAE5B,MAAM,eAAe,GAAG,wBAAwB,CAAC;QAC/C,EAAE,EAAE,SAAS;QACb,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;KACvB,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IACzG,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAE1B,IAAI,OAAO,GAAG,KAAK,CAAA;IAEnB,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAClE,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,GAAG,0BAA0B,EAAE,CAAC;QAC9E,OAAO,CAAC,oBAAoB,GAAG,0BAA0B,CAAA;QACzD,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAED,MAAM,yBAAyB,GAAG,IAAI,CAAC,GAAG,CACxC,0BAA0B,EAC1B,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,0BAA0B,CAC3E,CAAA;IACD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,kCAAkC,EAAE,yBAAyB,GAAG,yBAAyB,CAAC,CACpG,CAAA;IACD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAA;IAC1E,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,cAAc,EAAE,CAAC;QAC9D,OAAO,CAAC,8BAA8B,GAAG,cAAc,CAAA;QACvD,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACjE,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,GAAG,yBAAyB,EAAE,CAAC;QACjF,OAAO,CAAC,iBAAiB,GAAG,yBAAyB,CAAA;QACrD,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAChF,CAAC"}
@@ -1,8 +0,0 @@
1
- export declare const EFFORT_SUFFIX_REGEX: RegExp;
2
- export declare function asString(value: unknown): string | undefined;
3
- export declare function asStringArray(value: unknown): string[] | undefined;
4
- export declare function normalizeReasoningSummaryOption(value: unknown): "auto" | "concise" | "detailed" | undefined;
5
- export declare function normalizeTextVerbosity(value: unknown): "low" | "medium" | "high" | undefined;
6
- export declare function normalizeVerbositySetting(value: unknown): "default" | "low" | "medium" | "high" | undefined;
7
- export declare function mergeUnique(values: string[]): string[];
8
- //# sourceMappingURL=request-transform-shared.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-transform-shared.d.ts","sourceRoot":"","sources":["../../../lib/codex-native/request-transform-shared.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,QAA4C,CAAA;AAE5E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAGlE;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAK3G;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAK5F;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAO3G;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAStD"}
@@ -1,49 +0,0 @@
1
- export const EFFORT_SUFFIX_REGEX = /-(none|minimal|low|medium|high|xhigh)$/i;
2
- export function asString(value) {
3
- if (typeof value !== "string")
4
- return undefined;
5
- const trimmed = value.trim();
6
- return trimmed ? trimmed : undefined;
7
- }
8
- export function asStringArray(value) {
9
- if (!Array.isArray(value))
10
- return undefined;
11
- return value.filter((item) => typeof item === "string" && item.trim().length > 0);
12
- }
13
- export function normalizeReasoningSummaryOption(value) {
14
- const normalized = asString(value)?.toLowerCase();
15
- if (!normalized || normalized === "none")
16
- return undefined;
17
- if (normalized === "auto" || normalized === "concise" || normalized === "detailed")
18
- return normalized;
19
- return undefined;
20
- }
21
- export function normalizeTextVerbosity(value) {
22
- const normalized = asString(value)?.toLowerCase();
23
- if (!normalized)
24
- return undefined;
25
- if (normalized === "low" || normalized === "medium" || normalized === "high")
26
- return normalized;
27
- return undefined;
28
- }
29
- export function normalizeVerbositySetting(value) {
30
- const normalized = asString(value)?.toLowerCase();
31
- if (!normalized)
32
- return undefined;
33
- if (normalized === "default" || normalized === "low" || normalized === "medium" || normalized === "high") {
34
- return normalized;
35
- }
36
- return undefined;
37
- }
38
- export function mergeUnique(values) {
39
- const out = [];
40
- const seen = new Set();
41
- for (const value of values) {
42
- if (seen.has(value))
43
- continue;
44
- seen.add(value);
45
- out.push(value);
46
- }
47
- return out;
48
- }
49
- //# sourceMappingURL=request-transform-shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-transform-shared.js","sourceRoot":"","sources":["../../../lib/codex-native/request-transform-shared.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,yCAAyC,CAAA;AAE5E,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AACnG,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACjD,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,SAAS,CAAA;IAC1D,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,UAAU,CAAA;IACrG,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACjD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,UAAU,CAAA;IAC/F,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACjD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACzG,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAgB;IAC1C,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAQ;QAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1,4 +0,0 @@
1
- export { applyCodexRuntimeDefaultsToParams, findCatalogModelForCandidates, getModelLookupCandidates, getModelThinkingSummariesOverride, getModelVerbosityEnabledOverride, getModelVerbosityOverride, getVariantLookupCandidates, resolvePersonalityForModel } from "./request-transform-model.js";
2
- export { getModelServiceTierOverride, getRequestBodyVariantCandidates, resolveServiceTierForModel } from "./request-transform-model-service-tier.js";
3
- export { applyPromptCacheKeyOverrideToRequest, remapDeveloperMessagesToUserOnRequest, sanitizeOutboundRequestIfNeeded, stripStaleCatalogScopedDefaultsFromRequest, stripReasoningReplayFromRequest, transformOutboundRequestPayload, type ServiceTierTransformResult, type OutboundRequestPayloadTransformResult } from "./request-transform-payload.js";
4
- //# sourceMappingURL=request-transform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-transform.d.ts","sourceRoot":"","sources":["../../../lib/codex-native/request-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,wBAAwB,EACxB,iCAAiC,EACjC,gCAAgC,EAChC,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,2CAA2C,CAAA;AAElD,OAAO,EACL,oCAAoC,EACpC,qCAAqC,EACrC,+BAA+B,EAC/B,0CAA0C,EAC1C,+BAA+B,EAC/B,+BAA+B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,qCAAqC,EAC3C,MAAM,gCAAgC,CAAA"}
@@ -1,4 +0,0 @@
1
- export { applyCodexRuntimeDefaultsToParams, findCatalogModelForCandidates, getModelLookupCandidates, getModelThinkingSummariesOverride, getModelVerbosityEnabledOverride, getModelVerbosityOverride, getVariantLookupCandidates, resolvePersonalityForModel } from "./request-transform-model.js";
2
- export { getModelServiceTierOverride, getRequestBodyVariantCandidates, resolveServiceTierForModel } from "./request-transform-model-service-tier.js";
3
- export { applyPromptCacheKeyOverrideToRequest, remapDeveloperMessagesToUserOnRequest, sanitizeOutboundRequestIfNeeded, stripStaleCatalogScopedDefaultsFromRequest, stripReasoningReplayFromRequest, transformOutboundRequestPayload } from "./request-transform-payload.js";
4
- //# sourceMappingURL=request-transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-transform.js","sourceRoot":"","sources":["../../../lib/codex-native/request-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,wBAAwB,EACxB,iCAAiC,EACjC,gCAAgC,EAChC,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,2CAA2C,CAAA;AAElD,OAAO,EACL,oCAAoC,EACpC,qCAAqC,EACrC,+BAA+B,EAC/B,0CAA0C,EAC1C,+BAA+B,EAC/B,+BAA+B,EAGhC,MAAM,gCAAgC,CAAA"}
@@ -1,3 +0,0 @@
1
- import type { BehaviorSettings } from "./types.js";
2
- export declare function cloneBehaviorSettings(input: BehaviorSettings | undefined): BehaviorSettings | undefined;
3
- //# sourceMappingURL=behavior-settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"behavior-settings.d.ts","sourceRoot":"","sources":["../../../lib/config/behavior-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAOlD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CA6BvG"}
@@ -1,33 +0,0 @@
1
- function cloneBehaviorOverride(input) {
2
- if (!input)
3
- return undefined;
4
- return { ...input };
5
- }
6
- export function cloneBehaviorSettings(input) {
7
- if (!input)
8
- return undefined;
9
- return {
10
- ...(input.global
11
- ? {
12
- global: cloneBehaviorOverride(input.global)
13
- }
14
- : {}),
15
- perModel: input.perModel
16
- ? Object.fromEntries(Object.entries(input.perModel).map(([key, value]) => [
17
- key,
18
- {
19
- ...cloneBehaviorOverride(value),
20
- ...(value.variants
21
- ? {
22
- variants: Object.fromEntries(Object.entries(value.variants).map(([variantKey, variantValue]) => [
23
- variantKey,
24
- cloneBehaviorOverride(variantValue) ?? {}
25
- ]))
26
- }
27
- : {})
28
- }
29
- ]))
30
- : undefined
31
- };
32
- }
33
- //# sourceMappingURL=behavior-settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"behavior-settings.js","sourceRoot":"","sources":["../../../lib/config/behavior-settings.ts"],"names":[],"mappings":"AAEA,SAAS,qBAAqB,CAAoC,KAAoB;IACpF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,OAAO,EAAE,GAAG,KAAK,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAmC;IACvE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC;gBACE,MAAM,EAAE,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC;aAC5C;YACH,CAAC,CAAC,EAAE,CAAC;QACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACtB,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBACnD,GAAG;gBACH;oBACE,GAAG,qBAAqB,CAAC,KAAK,CAAC;oBAC/B,GAAG,CAAC,KAAK,CAAC,QAAQ;wBAChB,CAAC,CAAC;4BACE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;gCACjE,UAAU;gCACV,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE;6BAC1C,CAAC,CACH;yBACF;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR;aACF,CAAC,CACH;YACH,CAAC,CAAC,SAAS;KACd,CAAA;AACH,CAAC"}
@@ -1,16 +0,0 @@
1
- import { type PluginConfig } from "./types.js";
2
- export declare function resolveDefaultConfigPath(env: Record<string, string | undefined>): string;
3
- export type EnsureDefaultConfigFileResult = {
4
- filePath: string;
5
- created: boolean;
6
- };
7
- export declare function ensureDefaultConfigFile(input?: {
8
- env?: Record<string, string | undefined>;
9
- filePath?: string;
10
- overwrite?: boolean;
11
- }): Promise<EnsureDefaultConfigFileResult>;
12
- export declare function loadConfigFile(input?: {
13
- env?: Record<string, string | undefined>;
14
- filePath?: string;
15
- }): Partial<PluginConfig>;
16
- //# sourceMappingURL=io.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../lib/config/io.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8C,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAI1F,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAMxF;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/F,OAAO,CAAC,6BAA6B,CAAC,CAoBxC;AAED,wBAAgB,cAAc,CAC5B,KAAK,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1E,OAAO,CAAC,YAAY,CAAC,CA4BvB"}
@@ -1,64 +0,0 @@
1
- import fs from "node:fs";
2
- import fsPromises from "node:fs/promises";
3
- import os from "node:os";
4
- import path from "node:path";
5
- import { CONFIG_FILE, DEFAULT_CODEX_CONFIG_TEMPLATE } from "./types.js";
6
- import { parseConfigFileObject, parseConfigJsonWithComments } from "./parse.js";
7
- import { validateConfigFileObject } from "./validation.js";
8
- export function resolveDefaultConfigPath(env) {
9
- const xdgRoot = env.XDG_CONFIG_HOME?.trim();
10
- if (xdgRoot) {
11
- return path.join(xdgRoot, "opencode", CONFIG_FILE);
12
- }
13
- return path.join(os.homedir(), ".config", "opencode", CONFIG_FILE);
14
- }
15
- export async function ensureDefaultConfigFile(input = {}) {
16
- const env = input.env ?? process.env;
17
- const filePath = input.filePath ?? resolveDefaultConfigPath(env);
18
- const overwrite = input.overwrite === true;
19
- if (!overwrite && fs.existsSync(filePath)) {
20
- return { filePath, created: false };
21
- }
22
- await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
23
- const content = DEFAULT_CODEX_CONFIG_TEMPLATE;
24
- await fsPromises.writeFile(filePath, content, { encoding: "utf8", mode: 0o600 });
25
- try {
26
- await fsPromises.chmod(filePath, 0o600);
27
- }
28
- catch (error) {
29
- if (error instanceof Error) {
30
- // best-effort permission hardening
31
- }
32
- }
33
- return { filePath, created: true };
34
- }
35
- export function loadConfigFile(input = {}) {
36
- const env = input.env ?? process.env;
37
- const explicitPath = input.filePath ?? env.OPENCODE_OPENAI_MULTI_CONFIG_PATH?.trim();
38
- const candidates = explicitPath ? [explicitPath] : [resolveDefaultConfigPath(env)];
39
- for (const filePath of candidates) {
40
- if (!filePath)
41
- continue;
42
- if (!fs.existsSync(filePath))
43
- continue;
44
- try {
45
- const raw = fs.readFileSync(filePath, "utf8");
46
- const parsed = parseConfigJsonWithComments(raw);
47
- const validation = validateConfigFileObject(parsed);
48
- if (!validation.valid) {
49
- const message = `[opencode-codex-auth] Invalid codex-config at ${filePath}. ${validation.issues.join("; ")}`;
50
- console.warn(message);
51
- continue;
52
- }
53
- return parseConfigFileObject(parsed);
54
- }
55
- catch (error) {
56
- const detail = error instanceof Error ? error.message : String(error);
57
- const message = `[opencode-codex-auth] Failed to read codex-config at ${filePath}. ${detail}`;
58
- console.warn(message);
59
- continue;
60
- }
61
- }
62
- return {};
63
- }
64
- //# sourceMappingURL=io.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../../../lib/config/io.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import type { RotationStrategy } from "../types.js";
2
- import type { BehaviorSettings, CodexSpoofMode, PersonalityOption, PluginConfig, PluginRuntimeMode, PromptCacheKeyStrategy, ServiceTierOption, VerbosityOption } from "./types.js";
3
- export declare function parseEnvBoolean(value: string | undefined): boolean | undefined;
4
- export declare function parseEnvNumber(value: string | undefined): number | undefined;
5
- export declare function parseConfigJsonWithComments(raw: string): unknown;
6
- export declare function normalizePersonalityOption(value: unknown): PersonalityOption | undefined;
7
- export declare function parseSpoofMode(value: unknown): CodexSpoofMode | undefined;
8
- export declare function parseRuntimeMode(value: unknown): PluginRuntimeMode | undefined;
9
- export declare function parseRotationStrategy(value: unknown): RotationStrategy | undefined;
10
- export declare function parsePromptCacheKeyStrategy(value: unknown): PromptCacheKeyStrategy | undefined;
11
- export declare function normalizeVerbosityOption(value: unknown): VerbosityOption | undefined;
12
- export declare function normalizeServiceTierOption(value: unknown): ServiceTierOption | undefined;
13
- export declare function parseConfigFileObject(raw: unknown): Partial<PluginConfig>;
14
- export declare function buildResolvedBehaviorSettings(input: {
15
- fileBehavior: BehaviorSettings | undefined;
16
- envPersonality: PersonalityOption | undefined;
17
- envThinkingSummaries: boolean | undefined;
18
- envVerbosityEnabled: boolean | undefined;
19
- envVerbosity: VerbosityOption | undefined;
20
- envServiceTier: ServiceTierOption | undefined;
21
- }): BehaviorSettings | undefined;
22
- //# sourceMappingURL=parse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../lib/config/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EAGd,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EAChB,MAAM,YAAY,CAAA;AACnB,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAM9E;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK5E;AAmED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhE;AACD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAQxF;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAMzE;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAM9E;AACD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAOlF;AACD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAK9F;AACD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAOpF;AACD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAOxF;AAiHD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAyEzE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,YAAY,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC1C,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC7C,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAAA;IACzC,mBAAmB,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,YAAY,EAAE,eAAe,GAAG,SAAS,CAAA;IACzC,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAA;CAC9C,GAAG,gBAAgB,GAAG,SAAS,CAiC/B"}
@@ -1,327 +0,0 @@
1
- import { isRecord } from "../util.js";
2
- import { cloneBehaviorSettings } from "./behavior-settings.js";
3
- export function parseEnvBoolean(value) {
4
- if (value === undefined)
5
- return undefined;
6
- const normalized = value.trim().toLowerCase();
7
- if (normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on")
8
- return true;
9
- if (normalized === "0" || normalized === "false" || normalized === "no" || normalized === "off")
10
- return false;
11
- return undefined;
12
- }
13
- export function parseEnvNumber(value) {
14
- if (value === undefined)
15
- return undefined;
16
- if (value.trim().length === 0)
17
- return undefined;
18
- const n = Number(value);
19
- return Number.isFinite(n) ? n : undefined;
20
- }
21
- function stripJsonComments(raw) {
22
- let out = "";
23
- let inString = false;
24
- let escaped = false;
25
- let inLineComment = false;
26
- let inBlockComment = false;
27
- for (let index = 0; index < raw.length; index += 1) {
28
- const ch = raw[index];
29
- const next = raw[index + 1];
30
- if (inLineComment) {
31
- if (ch === "\n" || ch === "\r") {
32
- inLineComment = false;
33
- out += ch;
34
- }
35
- continue;
36
- }
37
- if (inBlockComment) {
38
- if (ch === "*" && next === "/") {
39
- inBlockComment = false;
40
- index += 1;
41
- continue;
42
- }
43
- if (ch === "\n" || ch === "\r") {
44
- out += ch;
45
- }
46
- continue;
47
- }
48
- if (inString) {
49
- out += ch;
50
- if (escaped) {
51
- escaped = false;
52
- }
53
- else if (ch === "\\") {
54
- escaped = true;
55
- }
56
- else if (ch === '"') {
57
- inString = false;
58
- }
59
- continue;
60
- }
61
- if (ch === '"') {
62
- inString = true;
63
- out += ch;
64
- continue;
65
- }
66
- if (ch === "/" && next === "/") {
67
- inLineComment = true;
68
- index += 1;
69
- continue;
70
- }
71
- if (ch === "/" && next === "*") {
72
- inBlockComment = true;
73
- index += 1;
74
- continue;
75
- }
76
- out += ch;
77
- }
78
- return out;
79
- }
80
- export function parseConfigJsonWithComments(raw) {
81
- return JSON.parse(stripJsonComments(raw));
82
- }
83
- export function normalizePersonalityOption(value) {
84
- if (typeof value !== "string")
85
- return undefined;
86
- const normalized = value.trim().toLowerCase();
87
- if (!normalized)
88
- return undefined;
89
- if (normalized.includes("/") || normalized.includes("\\") || normalized.includes("..")) {
90
- return undefined;
91
- }
92
- return normalized;
93
- }
94
- export function parseSpoofMode(value) {
95
- if (typeof value !== "string")
96
- return undefined;
97
- const normalized = value.trim().toLowerCase();
98
- if (normalized === "native")
99
- return "native";
100
- if (normalized === "codex")
101
- return "codex";
102
- return undefined;
103
- }
104
- export function parseRuntimeMode(value) {
105
- if (typeof value !== "string")
106
- return undefined;
107
- const normalized = value.trim().toLowerCase();
108
- if (normalized === "native")
109
- return "native";
110
- if (normalized === "codex")
111
- return "codex";
112
- return undefined;
113
- }
114
- export function parseRotationStrategy(value) {
115
- if (typeof value !== "string")
116
- return undefined;
117
- const normalized = value.trim().toLowerCase();
118
- if (normalized === "sticky" || normalized === "hybrid" || normalized === "round_robin") {
119
- return normalized;
120
- }
121
- return undefined;
122
- }
123
- export function parsePromptCacheKeyStrategy(value) {
124
- if (typeof value !== "string")
125
- return undefined;
126
- const normalized = value.trim().toLowerCase();
127
- if (normalized === "default" || normalized === "project")
128
- return normalized;
129
- return undefined;
130
- }
131
- export function normalizeVerbosityOption(value) {
132
- if (typeof value !== "string")
133
- return undefined;
134
- const normalized = value.trim().toLowerCase();
135
- if (normalized === "default" || normalized === "low" || normalized === "medium" || normalized === "high") {
136
- return normalized;
137
- }
138
- return undefined;
139
- }
140
- export function normalizeServiceTierOption(value) {
141
- if (typeof value !== "string")
142
- return undefined;
143
- const normalized = value.trim().toLowerCase();
144
- if (normalized === "default" || normalized === "priority" || normalized === "flex") {
145
- return normalized;
146
- }
147
- return undefined;
148
- }
149
- function normalizeModelBehaviorSettings(raw) {
150
- if (!isRecord(raw))
151
- return undefined;
152
- const out = {};
153
- const personality = normalizePersonalityOption(raw.personality);
154
- if (personality)
155
- out.personality = personality;
156
- if (typeof raw.thinkingSummaries === "boolean") {
157
- out.thinkingSummaries = raw.thinkingSummaries;
158
- }
159
- if (typeof raw.verbosityEnabled === "boolean") {
160
- out.verbosityEnabled = raw.verbosityEnabled;
161
- }
162
- const verbosity = normalizeVerbosityOption(raw.verbosity);
163
- if (verbosity) {
164
- out.verbosity = verbosity;
165
- }
166
- const serviceTier = normalizeServiceTierOption(raw.serviceTier);
167
- if (serviceTier) {
168
- out.serviceTier = serviceTier;
169
- }
170
- if (!out.personality &&
171
- out.thinkingSummaries === undefined &&
172
- out.verbosityEnabled === undefined &&
173
- out.verbosity === undefined &&
174
- out.serviceTier === undefined) {
175
- return undefined;
176
- }
177
- return out;
178
- }
179
- function normalizeModelConfigOverride(raw) {
180
- if (!isRecord(raw))
181
- return undefined;
182
- const modelBehavior = normalizeModelBehaviorSettings(raw);
183
- const rawVariants = isRecord(raw.variants) ? raw.variants : undefined;
184
- let variants;
185
- if (rawVariants) {
186
- const variantMap = {};
187
- for (const [variantName, value] of Object.entries(rawVariants)) {
188
- const normalized = normalizeModelBehaviorSettings(value);
189
- if (!normalized)
190
- continue;
191
- variantMap[variantName] = {
192
- ...(normalized.personality ? { personality: normalized.personality } : {}),
193
- ...(normalized.thinkingSummaries !== undefined ? { thinkingSummaries: normalized.thinkingSummaries } : {}),
194
- ...(normalized.verbosityEnabled !== undefined ? { verbosityEnabled: normalized.verbosityEnabled } : {}),
195
- ...(normalized.verbosity ? { verbosity: normalized.verbosity } : {}),
196
- ...(normalized.serviceTier ? { serviceTier: normalized.serviceTier } : {})
197
- };
198
- }
199
- if (Object.keys(variantMap).length > 0) {
200
- variants = variantMap;
201
- }
202
- }
203
- if (!modelBehavior && !variants) {
204
- return undefined;
205
- }
206
- return {
207
- ...(modelBehavior?.personality ? { personality: modelBehavior.personality } : {}),
208
- ...(modelBehavior?.thinkingSummaries !== undefined ? { thinkingSummaries: modelBehavior.thinkingSummaries } : {}),
209
- ...(modelBehavior?.verbosityEnabled !== undefined ? { verbosityEnabled: modelBehavior.verbosityEnabled } : {}),
210
- ...(modelBehavior?.verbosity ? { verbosity: modelBehavior.verbosity } : {}),
211
- ...(modelBehavior?.serviceTier ? { serviceTier: modelBehavior.serviceTier } : {}),
212
- ...(variants ? { variants } : {})
213
- };
214
- }
215
- function normalizeNewBehaviorSections(raw) {
216
- const global = normalizeModelBehaviorSettings(raw.global);
217
- const perModelRaw = isRecord(raw.perModel) ? raw.perModel : undefined;
218
- let perModel;
219
- if (perModelRaw) {
220
- const modelMap = {};
221
- for (const [modelName, value] of Object.entries(perModelRaw)) {
222
- const normalized = normalizeModelConfigOverride(value);
223
- if (!normalized)
224
- continue;
225
- modelMap[modelName] = normalized;
226
- }
227
- if (Object.keys(modelMap).length > 0) {
228
- perModel = modelMap;
229
- }
230
- }
231
- if (!global && !perModel) {
232
- return undefined;
233
- }
234
- return {
235
- ...(global ? { global } : {}),
236
- ...(perModel ? { perModel } : {})
237
- };
238
- }
239
- export function parseConfigFileObject(raw) {
240
- if (!isRecord(raw))
241
- return {};
242
- const behaviorSettings = normalizeNewBehaviorSections(raw);
243
- const personalityFromBehavior = behaviorSettings?.global?.personality;
244
- const debug = typeof raw.debug === "boolean" ? raw.debug : undefined;
245
- const proactiveRefresh = isRecord(raw.refreshAhead) && typeof raw.refreshAhead.enabled === "boolean" ? raw.refreshAhead.enabled : undefined;
246
- const proactiveRefreshBufferMs = isRecord(raw.refreshAhead) && typeof raw.refreshAhead.bufferMs === "number" ? raw.refreshAhead.bufferMs : undefined;
247
- const quietMode = typeof raw.quiet === "boolean" ? raw.quiet : undefined;
248
- const mode = parseRuntimeMode(isRecord(raw.runtime) ? raw.runtime.mode : undefined);
249
- const rotationStrategy = parseRotationStrategy(isRecord(raw.runtime) ? raw.runtime.rotationStrategy : undefined);
250
- const promptCacheKeyStrategy = parsePromptCacheKeyStrategy(isRecord(raw.runtime) ? raw.runtime.promptCacheKeyStrategy : undefined);
251
- const spoofMode = mode === "native" ? "native" : mode === "codex" ? "codex" : undefined;
252
- const compatInputSanitizer = isRecord(raw.runtime) && typeof raw.runtime.sanitizeInputs === "boolean" ? raw.runtime.sanitizeInputs : undefined;
253
- const remapDeveloperMessagesToUser = isRecord(raw.runtime) && typeof raw.runtime.developerMessagesToUser === "boolean"
254
- ? raw.runtime.developerMessagesToUser
255
- : undefined;
256
- const codexCompactionOverride = isRecord(raw.runtime) && typeof raw.runtime.codexCompactionOverride === "boolean"
257
- ? raw.runtime.codexCompactionOverride
258
- : undefined;
259
- const headerSnapshots = isRecord(raw.runtime) && typeof raw.runtime.headerSnapshots === "boolean" ? raw.runtime.headerSnapshots : undefined;
260
- const headerSnapshotBodies = isRecord(raw.runtime) && typeof raw.runtime.headerSnapshotBodies === "boolean"
261
- ? raw.runtime.headerSnapshotBodies
262
- : undefined;
263
- const headerTransformDebug = isRecord(raw.runtime) && typeof raw.runtime.headerTransformDebug === "boolean"
264
- ? raw.runtime.headerTransformDebug
265
- : undefined;
266
- const pidOffsetEnabled = isRecord(raw.runtime) && typeof raw.runtime.pidOffset === "boolean" ? raw.runtime.pidOffset : undefined;
267
- const collaborationProfileEnabled = isRecord(raw.runtime) && typeof raw.runtime.collaborationProfile === "boolean"
268
- ? raw.runtime.collaborationProfile
269
- : undefined;
270
- const orchestratorSubagentsEnabled = isRecord(raw.runtime) && typeof raw.runtime.orchestratorSubagents === "boolean"
271
- ? raw.runtime.orchestratorSubagents
272
- : undefined;
273
- return {
274
- debug,
275
- proactiveRefresh,
276
- proactiveRefreshBufferMs,
277
- quiet: quietMode,
278
- quietMode,
279
- pidOffsetEnabled,
280
- personality: personalityFromBehavior,
281
- mode,
282
- rotationStrategy,
283
- promptCacheKeyStrategy,
284
- spoofMode,
285
- compatInputSanitizer,
286
- remapDeveloperMessagesToUser,
287
- codexCompactionOverride,
288
- headerSnapshots,
289
- headerSnapshotBodies,
290
- headerTransformDebug,
291
- collaborationProfile: collaborationProfileEnabled,
292
- collaborationProfileEnabled,
293
- orchestratorSubagents: orchestratorSubagentsEnabled,
294
- orchestratorSubagentsEnabled,
295
- behaviorSettings
296
- };
297
- }
298
- export function buildResolvedBehaviorSettings(input) {
299
- const behaviorSettings = cloneBehaviorSettings(input.fileBehavior) ?? {};
300
- const globalBehavior = {
301
- ...(behaviorSettings.global ?? {})
302
- };
303
- if (input.envPersonality) {
304
- globalBehavior.personality = input.envPersonality;
305
- }
306
- if (input.envThinkingSummaries !== undefined) {
307
- globalBehavior.thinkingSummaries = input.envThinkingSummaries;
308
- }
309
- if (input.envVerbosityEnabled !== undefined) {
310
- globalBehavior.verbosityEnabled = input.envVerbosityEnabled;
311
- }
312
- if (input.envVerbosity) {
313
- globalBehavior.verbosity = input.envVerbosity;
314
- }
315
- if (input.envServiceTier) {
316
- globalBehavior.serviceTier = input.envServiceTier;
317
- }
318
- if (globalBehavior.personality !== undefined ||
319
- globalBehavior.thinkingSummaries !== undefined ||
320
- globalBehavior.verbosityEnabled !== undefined ||
321
- globalBehavior.verbosity !== undefined ||
322
- globalBehavior.serviceTier !== undefined) {
323
- behaviorSettings.global = globalBehavior;
324
- }
325
- return behaviorSettings.global !== undefined || behaviorSettings.perModel !== undefined ? behaviorSettings : undefined;
326
- }
327
- //# sourceMappingURL=parse.js.map