@iam-brain/opencode-codex-auth 1.2.4 → 1.3.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 (213) hide show
  1. package/README.md +42 -83
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +41 -18
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/accounts-tools.d.ts.map +1 -1
  6. package/dist/lib/accounts-tools.js +112 -29
  7. package/dist/lib/accounts-tools.js.map +1 -1
  8. package/dist/lib/cache-io.d.ts.map +1 -1
  9. package/dist/lib/cache-io.js +6 -1
  10. package/dist/lib/cache-io.js.map +1 -1
  11. package/dist/lib/codex-native/accounts.d.ts.map +1 -1
  12. package/dist/lib/codex-native/accounts.js +18 -12
  13. package/dist/lib/codex-native/accounts.js.map +1 -1
  14. package/dist/lib/codex-native/acquire-auth.d.ts +1 -1
  15. package/dist/lib/codex-native/acquire-auth.d.ts.map +1 -1
  16. package/dist/lib/codex-native/acquire-auth.js +318 -204
  17. package/dist/lib/codex-native/acquire-auth.js.map +1 -1
  18. package/dist/lib/codex-native/auth-menu-flow.d.ts.map +1 -1
  19. package/dist/lib/codex-native/auth-menu-flow.js +27 -12
  20. package/dist/lib/codex-native/auth-menu-flow.js.map +1 -1
  21. package/dist/lib/codex-native/auth-menu-quotas.d.ts.map +1 -1
  22. package/dist/lib/codex-native/auth-menu-quotas.js +11 -4
  23. package/dist/lib/codex-native/auth-menu-quotas.js.map +1 -1
  24. package/dist/lib/codex-native/catalog-auth.d.ts.map +1 -1
  25. package/dist/lib/codex-native/catalog-auth.js +4 -2
  26. package/dist/lib/codex-native/catalog-auth.js.map +1 -1
  27. package/dist/lib/codex-native/chat-hooks.d.ts.map +1 -1
  28. package/dist/lib/codex-native/chat-hooks.js +0 -8
  29. package/dist/lib/codex-native/chat-hooks.js.map +1 -1
  30. package/dist/lib/codex-native/client-identity.d.ts.map +1 -1
  31. package/dist/lib/codex-native/client-identity.js +11 -4
  32. package/dist/lib/codex-native/client-identity.js.map +1 -1
  33. package/dist/lib/codex-native/collaboration.d.ts +1 -1
  34. package/dist/lib/codex-native/collaboration.d.ts.map +1 -1
  35. package/dist/lib/codex-native/collaboration.js +9 -116
  36. package/dist/lib/codex-native/collaboration.js.map +1 -1
  37. package/dist/lib/codex-native/oauth-auth-methods.d.ts.map +1 -1
  38. package/dist/lib/codex-native/oauth-auth-methods.js +25 -6
  39. package/dist/lib/codex-native/oauth-auth-methods.js.map +1 -1
  40. package/dist/lib/codex-native/oauth-server-debug.d.ts +10 -0
  41. package/dist/lib/codex-native/oauth-server-debug.d.ts.map +1 -0
  42. package/dist/lib/codex-native/oauth-server-debug.js +92 -0
  43. package/dist/lib/codex-native/oauth-server-debug.js.map +1 -0
  44. package/dist/lib/codex-native/oauth-server-network.d.ts +5 -0
  45. package/dist/lib/codex-native/oauth-server-network.d.ts.map +1 -0
  46. package/dist/lib/codex-native/oauth-server-network.js +39 -0
  47. package/dist/lib/codex-native/oauth-server-network.js.map +1 -0
  48. package/dist/lib/codex-native/oauth-server-types.d.ts +24 -0
  49. package/dist/lib/codex-native/oauth-server-types.d.ts.map +1 -0
  50. package/dist/lib/codex-native/oauth-server-types.js +2 -0
  51. package/dist/lib/codex-native/oauth-server-types.js.map +1 -0
  52. package/dist/lib/codex-native/oauth-server.d.ts +2 -16
  53. package/dist/lib/codex-native/oauth-server.d.ts.map +1 -1
  54. package/dist/lib/codex-native/oauth-server.js +63 -118
  55. package/dist/lib/codex-native/oauth-server.js.map +1 -1
  56. package/dist/lib/codex-native/openai-loader-fetch-quota.d.ts +18 -0
  57. package/dist/lib/codex-native/openai-loader-fetch-quota.d.ts.map +1 -0
  58. package/dist/lib/codex-native/openai-loader-fetch-quota.js +71 -0
  59. package/dist/lib/codex-native/openai-loader-fetch-quota.js.map +1 -0
  60. package/dist/lib/codex-native/openai-loader-fetch-state.d.ts +27 -0
  61. package/dist/lib/codex-native/openai-loader-fetch-state.d.ts.map +1 -0
  62. package/dist/lib/codex-native/openai-loader-fetch-state.js +91 -0
  63. package/dist/lib/codex-native/openai-loader-fetch-state.js.map +1 -0
  64. package/dist/lib/codex-native/openai-loader-fetch.d.ts.map +1 -1
  65. package/dist/lib/codex-native/openai-loader-fetch.js +49 -131
  66. package/dist/lib/codex-native/openai-loader-fetch.js.map +1 -1
  67. package/dist/lib/codex-native/originator.d.ts.map +1 -1
  68. package/dist/lib/codex-native/originator.js +18 -1
  69. package/dist/lib/codex-native/originator.js.map +1 -1
  70. package/dist/lib/codex-native/request-transform-instructions.d.ts +16 -0
  71. package/dist/lib/codex-native/request-transform-instructions.d.ts.map +1 -0
  72. package/dist/lib/codex-native/request-transform-instructions.js +114 -0
  73. package/dist/lib/codex-native/request-transform-instructions.js.map +1 -0
  74. package/dist/lib/codex-native/request-transform-model.d.ts +39 -0
  75. package/dist/lib/codex-native/request-transform-model.d.ts.map +1 -0
  76. package/dist/lib/codex-native/request-transform-model.js +270 -0
  77. package/dist/lib/codex-native/request-transform-model.js.map +1 -0
  78. package/dist/lib/codex-native/request-transform-payload-helpers.d.ts +26 -0
  79. package/dist/lib/codex-native/request-transform-payload-helpers.d.ts.map +1 -0
  80. package/dist/lib/codex-native/request-transform-payload-helpers.js +232 -0
  81. package/dist/lib/codex-native/request-transform-payload-helpers.js.map +1 -0
  82. package/dist/lib/codex-native/request-transform-payload.d.ts +53 -0
  83. package/dist/lib/codex-native/request-transform-payload.d.ts.map +1 -0
  84. package/dist/lib/codex-native/request-transform-payload.js +214 -0
  85. package/dist/lib/codex-native/request-transform-payload.js.map +1 -0
  86. package/dist/lib/codex-native/request-transform-shared.d.ts +8 -0
  87. package/dist/lib/codex-native/request-transform-shared.d.ts.map +1 -0
  88. package/dist/lib/codex-native/request-transform-shared.js +49 -0
  89. package/dist/lib/codex-native/request-transform-shared.js.map +1 -0
  90. package/dist/lib/codex-native/request-transform.d.ts +3 -122
  91. package/dist/lib/codex-native/request-transform.d.ts.map +1 -1
  92. package/dist/lib/codex-native/request-transform.js +3 -831
  93. package/dist/lib/codex-native/request-transform.js.map +1 -1
  94. package/dist/lib/codex-native/session-affinity-state.d.ts +14 -1
  95. package/dist/lib/codex-native/session-affinity-state.d.ts.map +1 -1
  96. package/dist/lib/codex-native/session-affinity-state.js +21 -8
  97. package/dist/lib/codex-native/session-affinity-state.js.map +1 -1
  98. package/dist/lib/codex-native.js.map +1 -1
  99. package/dist/lib/codex-prompts-cache.d.ts.map +1 -1
  100. package/dist/lib/codex-prompts-cache.js.map +1 -1
  101. package/dist/lib/codex-quota-fetch.d.ts.map +1 -1
  102. package/dist/lib/codex-quota-fetch.js +13 -10
  103. package/dist/lib/codex-quota-fetch.js.map +1 -1
  104. package/dist/lib/codex-status-storage.d.ts.map +1 -1
  105. package/dist/lib/codex-status-storage.js.map +1 -1
  106. package/dist/lib/codex-status.d.ts.map +1 -1
  107. package/dist/lib/codex-status.js +28 -3
  108. package/dist/lib/codex-status.js.map +1 -1
  109. package/dist/lib/config/io.d.ts +16 -0
  110. package/dist/lib/config/io.d.ts.map +1 -0
  111. package/dist/lib/config/io.js +64 -0
  112. package/dist/lib/config/io.js.map +1 -0
  113. package/dist/lib/config/parse.d.ts +21 -0
  114. package/dist/lib/config/parse.d.ts.map +1 -0
  115. package/dist/lib/config/parse.js +347 -0
  116. package/dist/lib/config/parse.js.map +1 -0
  117. package/dist/lib/config/resolve.d.ts +27 -0
  118. package/dist/lib/config/resolve.d.ts.map +1 -0
  119. package/dist/lib/config/resolve.js +152 -0
  120. package/dist/lib/config/resolve.js.map +1 -0
  121. package/dist/lib/config/types.d.ts +72 -0
  122. package/dist/lib/config/types.d.ts.map +1 -0
  123. package/dist/lib/config/types.js +151 -0
  124. package/dist/lib/config/types.js.map +1 -0
  125. package/dist/lib/config/validation.d.ts +6 -0
  126. package/dist/lib/config/validation.d.ts.map +1 -0
  127. package/dist/lib/config/validation.js +160 -0
  128. package/dist/lib/config/validation.js.map +1 -0
  129. package/dist/lib/config.d.ts +5 -111
  130. package/dist/lib/config.d.ts.map +1 -1
  131. package/dist/lib/config.js +5 -835
  132. package/dist/lib/config.js.map +1 -1
  133. package/dist/lib/fetch-orchestrator-helpers.d.ts +13 -0
  134. package/dist/lib/fetch-orchestrator-helpers.d.ts.map +1 -0
  135. package/dist/lib/fetch-orchestrator-helpers.js +63 -0
  136. package/dist/lib/fetch-orchestrator-helpers.js.map +1 -0
  137. package/dist/lib/fetch-orchestrator-types.d.ts +71 -0
  138. package/dist/lib/fetch-orchestrator-types.d.ts.map +1 -0
  139. package/dist/lib/fetch-orchestrator-types.js +11 -0
  140. package/dist/lib/fetch-orchestrator-types.js.map +1 -0
  141. package/dist/lib/fetch-orchestrator.d.ts +3 -69
  142. package/dist/lib/fetch-orchestrator.d.ts.map +1 -1
  143. package/dist/lib/fetch-orchestrator.js +78 -57
  144. package/dist/lib/fetch-orchestrator.js.map +1 -1
  145. package/dist/lib/identity.d.ts +6 -0
  146. package/dist/lib/identity.d.ts.map +1 -1
  147. package/dist/lib/identity.js +25 -4
  148. package/dist/lib/identity.js.map +1 -1
  149. package/dist/lib/model-catalog/cache-helpers.d.ts +23 -0
  150. package/dist/lib/model-catalog/cache-helpers.d.ts.map +1 -0
  151. package/dist/lib/model-catalog/cache-helpers.js +210 -0
  152. package/dist/lib/model-catalog/cache-helpers.js.map +1 -0
  153. package/dist/lib/model-catalog/catalog-fetch.d.ts +3 -0
  154. package/dist/lib/model-catalog/catalog-fetch.d.ts.map +1 -0
  155. package/dist/lib/model-catalog/catalog-fetch.js +159 -0
  156. package/dist/lib/model-catalog/catalog-fetch.js.map +1 -0
  157. package/dist/lib/model-catalog/provider.d.ts +6 -0
  158. package/dist/lib/model-catalog/provider.d.ts.map +1 -0
  159. package/dist/lib/model-catalog/provider.js +254 -0
  160. package/dist/lib/model-catalog/provider.js.map +1 -0
  161. package/dist/lib/model-catalog/shared.d.ts +95 -0
  162. package/dist/lib/model-catalog/shared.d.ts.map +1 -0
  163. package/dist/lib/model-catalog/shared.js +154 -0
  164. package/dist/lib/model-catalog/shared.js.map +1 -0
  165. package/dist/lib/model-catalog.d.ts +3 -68
  166. package/dist/lib/model-catalog.d.ts.map +1 -1
  167. package/dist/lib/model-catalog.js +3 -767
  168. package/dist/lib/model-catalog.js.map +1 -1
  169. package/dist/lib/opencode-install.d.ts.map +1 -1
  170. package/dist/lib/opencode-install.js +5 -6
  171. package/dist/lib/opencode-install.js.map +1 -1
  172. package/dist/lib/orchestrator-agent.d.ts.map +1 -1
  173. package/dist/lib/orchestrator-agent.js +2 -1
  174. package/dist/lib/orchestrator-agent.js.map +1 -1
  175. package/dist/lib/paths.d.ts.map +1 -1
  176. package/dist/lib/paths.js +8 -2
  177. package/dist/lib/paths.js.map +1 -1
  178. package/dist/lib/proactive-refresh.d.ts.map +1 -1
  179. package/dist/lib/proactive-refresh.js +48 -13
  180. package/dist/lib/proactive-refresh.js.map +1 -1
  181. package/dist/lib/quarantine.js.map +1 -1
  182. package/dist/lib/quota-threshold-alerts.d.ts.map +1 -1
  183. package/dist/lib/quota-threshold-alerts.js +3 -1
  184. package/dist/lib/quota-threshold-alerts.js.map +1 -1
  185. package/dist/lib/refresh-queue.d.ts.map +1 -1
  186. package/dist/lib/refresh-queue.js +1 -0
  187. package/dist/lib/refresh-queue.js.map +1 -1
  188. package/dist/lib/request-snapshots.d.ts.map +1 -1
  189. package/dist/lib/request-snapshots.js +46 -10
  190. package/dist/lib/request-snapshots.js.map +1 -1
  191. package/dist/lib/rotation.d.ts.map +1 -1
  192. package/dist/lib/rotation.js +3 -2
  193. package/dist/lib/rotation.js.map +1 -1
  194. package/dist/lib/session-affinity.d.ts.map +1 -1
  195. package/dist/lib/session-affinity.js +35 -20
  196. package/dist/lib/session-affinity.js.map +1 -1
  197. package/dist/lib/storage/domain-state.d.ts +23 -0
  198. package/dist/lib/storage/domain-state.d.ts.map +1 -0
  199. package/dist/lib/storage/domain-state.js +275 -0
  200. package/dist/lib/storage/domain-state.js.map +1 -0
  201. package/dist/lib/storage/migration.d.ts +13 -0
  202. package/dist/lib/storage/migration.d.ts.map +1 -0
  203. package/dist/lib/storage/migration.js +225 -0
  204. package/dist/lib/storage/migration.js.map +1 -0
  205. package/dist/lib/storage.d.ts +2 -9
  206. package/dist/lib/storage.d.ts.map +1 -1
  207. package/dist/lib/storage.js +44 -470
  208. package/dist/lib/storage.js.map +1 -1
  209. package/dist/lib/ui/auth-menu.d.ts +3 -2
  210. package/dist/lib/ui/auth-menu.d.ts.map +1 -1
  211. package/dist/lib/ui/auth-menu.js +1 -1
  212. package/dist/lib/ui/auth-menu.js.map +1 -1
  213. package/package.json +28 -15
@@ -0,0 +1,347 @@
1
+ import { isRecord } from "../util.js";
2
+ export function parseEnvBoolean(value) {
3
+ if (value === undefined)
4
+ return undefined;
5
+ const normalized = value.trim().toLowerCase();
6
+ if (normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on")
7
+ return true;
8
+ if (normalized === "0" || normalized === "false" || normalized === "no" || normalized === "off")
9
+ return false;
10
+ return undefined;
11
+ }
12
+ export function parseEnvNumber(value) {
13
+ if (value === undefined)
14
+ return undefined;
15
+ if (value.trim().length === 0)
16
+ return undefined;
17
+ const n = Number(value);
18
+ return Number.isFinite(n) ? n : undefined;
19
+ }
20
+ function stripJsonComments(raw) {
21
+ let out = "";
22
+ let inString = false;
23
+ let escaped = false;
24
+ let inLineComment = false;
25
+ let inBlockComment = false;
26
+ for (let index = 0; index < raw.length; index += 1) {
27
+ const ch = raw[index];
28
+ const next = raw[index + 1];
29
+ if (inLineComment) {
30
+ if (ch === "\n" || ch === "\r") {
31
+ inLineComment = false;
32
+ out += ch;
33
+ }
34
+ continue;
35
+ }
36
+ if (inBlockComment) {
37
+ if (ch === "*" && next === "/") {
38
+ inBlockComment = false;
39
+ index += 1;
40
+ continue;
41
+ }
42
+ if (ch === "\n" || ch === "\r") {
43
+ out += ch;
44
+ }
45
+ continue;
46
+ }
47
+ if (inString) {
48
+ out += ch;
49
+ if (escaped) {
50
+ escaped = false;
51
+ }
52
+ else if (ch === "\\") {
53
+ escaped = true;
54
+ }
55
+ else if (ch === '"') {
56
+ inString = false;
57
+ }
58
+ continue;
59
+ }
60
+ if (ch === '"') {
61
+ inString = true;
62
+ out += ch;
63
+ continue;
64
+ }
65
+ if (ch === "/" && next === "/") {
66
+ inLineComment = true;
67
+ index += 1;
68
+ continue;
69
+ }
70
+ if (ch === "/" && next === "*") {
71
+ inBlockComment = true;
72
+ index += 1;
73
+ continue;
74
+ }
75
+ out += ch;
76
+ }
77
+ return out;
78
+ }
79
+ export function parseConfigJsonWithComments(raw) {
80
+ return JSON.parse(stripJsonComments(raw));
81
+ }
82
+ export function normalizePersonalityOption(value) {
83
+ if (typeof value !== "string")
84
+ return undefined;
85
+ const normalized = value.trim().toLowerCase();
86
+ if (!normalized)
87
+ return undefined;
88
+ if (normalized.includes("/") || normalized.includes("\\") || normalized.includes("..")) {
89
+ return undefined;
90
+ }
91
+ return normalized;
92
+ }
93
+ export function parseSpoofMode(value) {
94
+ if (typeof value !== "string")
95
+ return undefined;
96
+ const normalized = value.trim().toLowerCase();
97
+ if (normalized === "native")
98
+ return "native";
99
+ if (normalized === "codex")
100
+ return "codex";
101
+ return undefined;
102
+ }
103
+ export function parseRuntimeMode(value) {
104
+ if (typeof value !== "string")
105
+ return undefined;
106
+ const normalized = value.trim().toLowerCase();
107
+ if (normalized === "native")
108
+ return "native";
109
+ if (normalized === "codex")
110
+ return "codex";
111
+ return undefined;
112
+ }
113
+ export function parseRotationStrategy(value) {
114
+ if (typeof value !== "string")
115
+ return undefined;
116
+ const normalized = value.trim().toLowerCase();
117
+ if (normalized === "sticky" || normalized === "hybrid" || normalized === "round_robin") {
118
+ return normalized;
119
+ }
120
+ return undefined;
121
+ }
122
+ export function parsePromptCacheKeyStrategy(value) {
123
+ if (typeof value !== "string")
124
+ return undefined;
125
+ const normalized = value.trim().toLowerCase();
126
+ if (normalized === "default" || normalized === "project")
127
+ return normalized;
128
+ return undefined;
129
+ }
130
+ export function normalizeVerbosityOption(value) {
131
+ if (typeof value !== "string")
132
+ return undefined;
133
+ const normalized = value.trim().toLowerCase();
134
+ if (normalized === "default" || normalized === "low" || normalized === "medium" || normalized === "high") {
135
+ return normalized;
136
+ }
137
+ return undefined;
138
+ }
139
+ function normalizeModelBehaviorSettings(raw) {
140
+ if (!isRecord(raw))
141
+ return undefined;
142
+ const out = {};
143
+ const personality = normalizePersonalityOption(raw.personality);
144
+ if (personality)
145
+ out.personality = personality;
146
+ if (typeof raw.thinkingSummaries === "boolean") {
147
+ out.thinkingSummaries = raw.thinkingSummaries;
148
+ }
149
+ if (typeof raw.verbosityEnabled === "boolean") {
150
+ out.verbosityEnabled = raw.verbosityEnabled;
151
+ }
152
+ const verbosity = normalizeVerbosityOption(raw.verbosity);
153
+ if (verbosity) {
154
+ out.verbosity = verbosity;
155
+ }
156
+ if (!out.personality &&
157
+ out.thinkingSummaries === undefined &&
158
+ out.verbosityEnabled === undefined &&
159
+ out.verbosity === undefined) {
160
+ return undefined;
161
+ }
162
+ return out;
163
+ }
164
+ function normalizeModelConfigOverride(raw) {
165
+ if (!isRecord(raw))
166
+ return undefined;
167
+ const modelBehavior = normalizeModelBehaviorSettings(raw);
168
+ const rawVariants = isRecord(raw.variants) ? raw.variants : undefined;
169
+ let variants;
170
+ if (rawVariants) {
171
+ const variantMap = {};
172
+ for (const [variantName, value] of Object.entries(rawVariants)) {
173
+ const normalized = normalizeModelBehaviorSettings(value);
174
+ if (!normalized)
175
+ continue;
176
+ variantMap[variantName] = {
177
+ ...(normalized.personality ? { personality: normalized.personality } : {}),
178
+ ...(normalized.thinkingSummaries !== undefined ? { thinkingSummaries: normalized.thinkingSummaries } : {}),
179
+ ...(normalized.verbosityEnabled !== undefined ? { verbosityEnabled: normalized.verbosityEnabled } : {}),
180
+ ...(normalized.verbosity ? { verbosity: normalized.verbosity } : {})
181
+ };
182
+ }
183
+ if (Object.keys(variantMap).length > 0) {
184
+ variants = variantMap;
185
+ }
186
+ }
187
+ if (!modelBehavior && !variants) {
188
+ return undefined;
189
+ }
190
+ return {
191
+ ...(modelBehavior?.personality ? { personality: modelBehavior.personality } : {}),
192
+ ...(modelBehavior?.thinkingSummaries !== undefined ? { thinkingSummaries: modelBehavior.thinkingSummaries } : {}),
193
+ ...(modelBehavior?.verbosityEnabled !== undefined ? { verbosityEnabled: modelBehavior.verbosityEnabled } : {}),
194
+ ...(modelBehavior?.verbosity ? { verbosity: modelBehavior.verbosity } : {}),
195
+ ...(variants ? { variants } : {})
196
+ };
197
+ }
198
+ function normalizeNewBehaviorSections(raw) {
199
+ const global = normalizeModelBehaviorSettings(raw.global);
200
+ const perModelRaw = isRecord(raw.perModel) ? raw.perModel : undefined;
201
+ let perModel;
202
+ if (perModelRaw) {
203
+ const modelMap = {};
204
+ for (const [modelName, value] of Object.entries(perModelRaw)) {
205
+ const normalized = normalizeModelConfigOverride(value);
206
+ if (!normalized)
207
+ continue;
208
+ modelMap[modelName] = normalized;
209
+ }
210
+ if (Object.keys(modelMap).length > 0) {
211
+ perModel = modelMap;
212
+ }
213
+ }
214
+ if (!global && !perModel) {
215
+ return undefined;
216
+ }
217
+ return {
218
+ ...(global ? { global } : {}),
219
+ ...(perModel ? { perModel } : {})
220
+ };
221
+ }
222
+ export function cloneBehaviorSettings(input) {
223
+ if (!input)
224
+ return undefined;
225
+ return {
226
+ ...(input.global
227
+ ? {
228
+ global: {
229
+ ...input.global
230
+ }
231
+ }
232
+ : {}),
233
+ perModel: input.perModel
234
+ ? Object.fromEntries(Object.entries(input.perModel).map(([key, value]) => [
235
+ key,
236
+ {
237
+ ...(value.personality !== undefined ? { personality: value.personality } : {}),
238
+ ...(value.thinkingSummaries !== undefined ? { thinkingSummaries: value.thinkingSummaries } : {}),
239
+ ...(value.verbosityEnabled !== undefined ? { verbosityEnabled: value.verbosityEnabled } : {}),
240
+ ...(value.verbosity !== undefined ? { verbosity: value.verbosity } : {}),
241
+ ...(value.variants
242
+ ? {
243
+ variants: Object.fromEntries(Object.entries(value.variants).map(([variantKey, variantValue]) => [
244
+ variantKey,
245
+ {
246
+ ...(variantValue.personality !== undefined ? { personality: variantValue.personality } : {}),
247
+ ...(variantValue.thinkingSummaries !== undefined
248
+ ? { thinkingSummaries: variantValue.thinkingSummaries }
249
+ : {}),
250
+ ...(variantValue.verbosityEnabled !== undefined
251
+ ? { verbosityEnabled: variantValue.verbosityEnabled }
252
+ : {}),
253
+ ...(variantValue.verbosity !== undefined ? { verbosity: variantValue.verbosity } : {})
254
+ }
255
+ ]))
256
+ }
257
+ : {})
258
+ }
259
+ ]))
260
+ : undefined
261
+ };
262
+ }
263
+ export function parseConfigFileObject(raw) {
264
+ if (!isRecord(raw))
265
+ return {};
266
+ const behaviorSettings = normalizeNewBehaviorSections(raw);
267
+ const personalityFromBehavior = behaviorSettings?.global?.personality;
268
+ const debug = typeof raw.debug === "boolean" ? raw.debug : undefined;
269
+ const proactiveRefresh = isRecord(raw.refreshAhead) && typeof raw.refreshAhead.enabled === "boolean" ? raw.refreshAhead.enabled : undefined;
270
+ const proactiveRefreshBufferMs = isRecord(raw.refreshAhead) && typeof raw.refreshAhead.bufferMs === "number" ? raw.refreshAhead.bufferMs : undefined;
271
+ const quietMode = typeof raw.quiet === "boolean" ? raw.quiet : undefined;
272
+ const mode = parseRuntimeMode(isRecord(raw.runtime) ? raw.runtime.mode : undefined);
273
+ const rotationStrategy = parseRotationStrategy(isRecord(raw.runtime) ? raw.runtime.rotationStrategy : undefined);
274
+ const promptCacheKeyStrategy = parsePromptCacheKeyStrategy(isRecord(raw.runtime) ? raw.runtime.promptCacheKeyStrategy : undefined);
275
+ const spoofMode = mode === "native" ? "native" : mode === "codex" ? "codex" : undefined;
276
+ const compatInputSanitizer = isRecord(raw.runtime) && typeof raw.runtime.sanitizeInputs === "boolean" ? raw.runtime.sanitizeInputs : undefined;
277
+ const remapDeveloperMessagesToUser = isRecord(raw.runtime) && typeof raw.runtime.developerMessagesToUser === "boolean"
278
+ ? raw.runtime.developerMessagesToUser
279
+ : undefined;
280
+ const codexCompactionOverride = isRecord(raw.runtime) && typeof raw.runtime.codexCompactionOverride === "boolean"
281
+ ? raw.runtime.codexCompactionOverride
282
+ : undefined;
283
+ const headerSnapshots = isRecord(raw.runtime) && typeof raw.runtime.headerSnapshots === "boolean" ? raw.runtime.headerSnapshots : undefined;
284
+ const headerSnapshotBodies = isRecord(raw.runtime) && typeof raw.runtime.headerSnapshotBodies === "boolean"
285
+ ? raw.runtime.headerSnapshotBodies
286
+ : undefined;
287
+ const headerTransformDebug = isRecord(raw.runtime) && typeof raw.runtime.headerTransformDebug === "boolean"
288
+ ? raw.runtime.headerTransformDebug
289
+ : undefined;
290
+ const pidOffsetEnabled = isRecord(raw.runtime) && typeof raw.runtime.pidOffset === "boolean" ? raw.runtime.pidOffset : undefined;
291
+ const collaborationProfileEnabled = isRecord(raw.runtime) && typeof raw.runtime.collaborationProfile === "boolean"
292
+ ? raw.runtime.collaborationProfile
293
+ : undefined;
294
+ const orchestratorSubagentsEnabled = isRecord(raw.runtime) && typeof raw.runtime.orchestratorSubagents === "boolean"
295
+ ? raw.runtime.orchestratorSubagents
296
+ : undefined;
297
+ return {
298
+ debug,
299
+ proactiveRefresh,
300
+ proactiveRefreshBufferMs,
301
+ quiet: quietMode,
302
+ quietMode,
303
+ pidOffsetEnabled,
304
+ personality: personalityFromBehavior,
305
+ mode,
306
+ rotationStrategy,
307
+ promptCacheKeyStrategy,
308
+ spoofMode,
309
+ compatInputSanitizer,
310
+ remapDeveloperMessagesToUser,
311
+ codexCompactionOverride,
312
+ headerSnapshots,
313
+ headerSnapshotBodies,
314
+ headerTransformDebug,
315
+ collaborationProfile: collaborationProfileEnabled,
316
+ collaborationProfileEnabled,
317
+ orchestratorSubagents: orchestratorSubagentsEnabled,
318
+ orchestratorSubagentsEnabled,
319
+ behaviorSettings
320
+ };
321
+ }
322
+ export function buildResolvedBehaviorSettings(input) {
323
+ const behaviorSettings = cloneBehaviorSettings(input.fileBehavior) ?? {};
324
+ const globalBehavior = {
325
+ ...(behaviorSettings.global ?? {})
326
+ };
327
+ if (input.envPersonality) {
328
+ globalBehavior.personality = input.envPersonality;
329
+ }
330
+ if (input.envThinkingSummaries !== undefined) {
331
+ globalBehavior.thinkingSummaries = input.envThinkingSummaries;
332
+ }
333
+ if (input.envVerbosityEnabled !== undefined) {
334
+ globalBehavior.verbosityEnabled = input.envVerbosityEnabled;
335
+ }
336
+ if (input.envVerbosity) {
337
+ globalBehavior.verbosity = input.envVerbosity;
338
+ }
339
+ if (globalBehavior.personality !== undefined ||
340
+ globalBehavior.thinkingSummaries !== undefined ||
341
+ globalBehavior.verbosityEnabled !== undefined ||
342
+ globalBehavior.verbosity !== undefined) {
343
+ behaviorSettings.global = globalBehavior;
344
+ }
345
+ return behaviorSettings.global !== undefined || behaviorSettings.perModel !== undefined ? behaviorSettings : undefined;
346
+ }
347
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../lib/config/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAYrC,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC3G,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAC7G,OAAO,SAAS,CAAA;AAClB,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,KAAyB;IACtD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACvB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3C,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,cAAc,GAAG,KAAK,CAAA;IAE1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAE3B,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC/B,aAAa,GAAG,KAAK,CAAA;gBACrB,GAAG,IAAI,EAAE,CAAA;YACX,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC/B,cAAc,GAAG,KAAK,CAAA;gBACtB,KAAK,IAAI,CAAC,CAAA;gBACV,SAAQ;YACV,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC/B,GAAG,IAAI,EAAE,CAAA;YACX,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,IAAI,EAAE,CAAA;YACT,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,GAAG,KAAK,CAAA;YACjB,CAAC;iBAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACtB,QAAQ,GAAG,KAAK,CAAA;YAClB,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,CAAA;YACf,GAAG,IAAI,EAAE,CAAA;YACT,SAAQ;QACV,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,aAAa,GAAG,IAAI,CAAA;YACpB,KAAK,IAAI,CAAC,CAAA;YACV,SAAQ;QACV,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,cAAc,GAAG,IAAI,CAAA;YACrB,KAAK,IAAI,CAAC,CAAA;YACV,SAAQ;QACV,CAAC;QAED,GAAG,IAAI,EAAE,CAAA;IACX,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AACD,MAAM,UAAU,2BAA2B,CAAC,GAAW;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAY,CAAA;AACtD,CAAC;AACD,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvF,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC5C,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,OAAO,CAAA;IAC1C,OAAO,SAAS,CAAA;AAClB,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC5C,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,OAAO,CAAA;IAC1C,OAAO,SAAS,CAAA;AAClB,CAAC;AACD,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;QACvF,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AACD,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAA;IAC3E,OAAO,SAAS,CAAA;AAClB,CAAC;AACD,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,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;AAQD,SAAS,8BAA8B,CAAC,GAAY;IAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACpC,MAAM,GAAG,GAA0B,EAAE,CAAA;IAErC,MAAM,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAC/D,IAAI,WAAW;QAAE,GAAG,CAAC,WAAW,GAAG,WAAW,CAAA;IAE9C,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC/C,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAA;IAC/C,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC9C,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAA;IAC7C,CAAC;IAED,MAAM,SAAS,GAAG,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACzD,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,CAAC,SAAS,GAAG,SAAS,CAAA;IAC3B,CAAC;IAED,IACE,CAAC,GAAG,CAAC,WAAW;QAChB,GAAG,CAAC,iBAAiB,KAAK,SAAS;QACnC,GAAG,CAAC,gBAAgB,KAAK,SAAS;QAClC,GAAG,CAAC,SAAS,KAAK,SAAS,EAC3B,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,4BAA4B,CAAC,GAAY;IAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAEpC,MAAM,aAAa,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAA;IACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IAErE,IAAI,QAAqD,CAAA;IACzD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,UAAU,GAAiD,EAAE,CAAA;QACnE,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,MAAM,UAAU,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAA;YACxD,IAAI,CAAC,UAAU;gBAAE,SAAQ;YACzB,UAAU,CAAC,WAAW,CAAC,GAAG;gBACxB,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,GAAG,CAAC,UAAU,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1G,GAAG,CAAC,UAAU,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,QAAQ,GAAG,UAAU,CAAA;QACvB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,aAAa,EAAE,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,GAAG,CAAC,aAAa,EAAE,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9G,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAA;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,GAA4B;IAChE,MAAM,MAAM,GAAG,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IAErE,IAAI,QAAkD,CAAA;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,QAAQ,GAA8C,EAAE,CAAA;QAC9D,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAA;YACtD,IAAI,CAAC,UAAU;gBAAE,SAAQ;YACzB,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,CAAA;QAClC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,QAAQ,GAAG,QAAQ,CAAA;QACrB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAA;AACH,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;oBACN,GAAG,KAAK,CAAC,MAAM;iBAChB;aACF;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,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9E,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChG,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7F,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxE,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;oCACE,GAAG,CAAC,YAAY,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oCAC5F,GAAG,CAAC,YAAY,CAAC,iBAAiB,KAAK,SAAS;wCAC9C,CAAC,CAAC,EAAE,iBAAiB,EAAE,YAAY,CAAC,iBAAiB,EAAE;wCACvD,CAAC,CAAC,EAAE,CAAC;oCACP,GAAG,CAAC,YAAY,CAAC,gBAAgB,KAAK,SAAS;wCAC7C,CAAC,CAAC,EAAE,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,EAAE;wCACrD,CAAC,CAAC,EAAE,CAAC;oCACP,GAAG,CAAC,YAAY,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iCACvF;6BACF,CAAC,CACH;yBACF;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR;aACF,CAAC,CACH;YACH,CAAC,CAAC,SAAS;KACd,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAE7B,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,uBAAuB,GAAG,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAA;IAErE,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IACpE,MAAM,gBAAgB,GACpB,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,GAAG,CAAC,YAAY,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACpH,MAAM,wBAAwB,GAC5B,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,GAAG,CAAC,YAAY,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IACrH,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACnF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAChH,MAAM,sBAAsB,GAAG,2BAA2B,CACxD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CACvE,CAAA;IACD,MAAM,SAAS,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACvF,MAAM,oBAAoB,GACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAA;IACnH,MAAM,4BAA4B,GAChC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,uBAAuB,KAAK,SAAS;QAC/E,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB;QACrC,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,uBAAuB,KAAK,SAAS;QAC/E,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB;QACrC,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,eAAe,GACnB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAA;IACrH,MAAM,oBAAoB,GACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,oBAAoB,KAAK,SAAS;QAC5E,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB;QAClC,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,oBAAoB,GACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,oBAAoB,KAAK,SAAS;QAC5E,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB;QAClC,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,gBAAgB,GACpB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IACzG,MAAM,2BAA2B,GAC/B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,oBAAoB,KAAK,SAAS;QAC5E,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB;QAClC,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,4BAA4B,GAChC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS;QAC7E,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB;QACnC,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO;QACL,KAAK;QACL,gBAAgB;QAChB,wBAAwB;QACxB,KAAK,EAAE,SAAS;QAChB,SAAS;QACT,gBAAgB;QAChB,WAAW,EAAE,uBAAuB;QACpC,IAAI;QACJ,gBAAgB;QAChB,sBAAsB;QACtB,SAAS;QACT,oBAAoB;QACpB,4BAA4B;QAC5B,uBAAuB;QACvB,eAAe;QACf,oBAAoB;QACpB,oBAAoB;QACpB,oBAAoB,EAAE,2BAA2B;QACjD,2BAA2B;QAC3B,qBAAqB,EAAE,4BAA4B;QACnD,4BAA4B;QAC5B,gBAAgB;KACjB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAM7C;IACC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;IACxE,MAAM,cAAc,GAA0B;QAC5C,GAAG,CAAC,gBAAgB,CAAC,MAAM,IAAI,EAAE,CAAC;KACnC,CAAA;IAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC,cAAc,CAAA;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAC7C,cAAc,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;IAC/D,CAAC;IACD,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC5C,cAAc,CAAC,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,CAAA;IAC7D,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAA;IAC/C,CAAC;IAED,IACE,cAAc,CAAC,WAAW,KAAK,SAAS;QACxC,cAAc,CAAC,iBAAiB,KAAK,SAAS;QAC9C,cAAc,CAAC,gBAAgB,KAAK,SAAS;QAC7C,cAAc,CAAC,SAAS,KAAK,SAAS,EACtC,CAAC;QACD,gBAAgB,CAAC,MAAM,GAAG,cAAc,CAAA;IAC1C,CAAC;IAED,OAAO,gBAAgB,CAAC,MAAM,KAAK,SAAS,IAAI,gBAAgB,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAA;AACxH,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { RotationStrategy } from "../types.js";
2
+ import type { BehaviorSettings, CodexSpoofMode, PersonalityOption, PluginConfig, PluginRuntimeMode, PromptCacheKeyStrategy } from "./types.js";
3
+ export declare function resolveConfig(input: {
4
+ env: Record<string, string | undefined>;
5
+ file?: Partial<PluginConfig>;
6
+ }): PluginConfig;
7
+ export declare function getDebugEnabled(cfg: PluginConfig): boolean;
8
+ export declare function getQuietMode(cfg: PluginConfig): boolean;
9
+ export declare function getPidOffsetEnabled(cfg: PluginConfig): boolean;
10
+ export declare function getProactiveRefreshEnabled(cfg: PluginConfig): boolean;
11
+ export declare function getProactiveRefreshBufferMs(cfg: PluginConfig): number;
12
+ export declare function getPersonality(cfg: PluginConfig): PersonalityOption | undefined;
13
+ export declare function getSpoofMode(cfg: PluginConfig): CodexSpoofMode;
14
+ export declare function getMode(cfg: PluginConfig): PluginRuntimeMode;
15
+ export declare function getRotationStrategy(cfg: PluginConfig): RotationStrategy;
16
+ export declare function getPromptCacheKeyStrategy(cfg: PluginConfig): PromptCacheKeyStrategy;
17
+ export declare function getCompatInputSanitizerEnabled(cfg: PluginConfig): boolean;
18
+ export declare function getRemapDeveloperMessagesToUserEnabled(cfg: PluginConfig): boolean;
19
+ export declare function getCodexCompactionOverrideEnabled(cfg: PluginConfig): boolean;
20
+ export declare function getHeaderSnapshotsEnabled(cfg: PluginConfig): boolean;
21
+ export declare function getHeaderTransformDebugEnabled(cfg: PluginConfig): boolean;
22
+ export declare function getHeaderSnapshotBodiesEnabled(cfg: PluginConfig): boolean;
23
+ export declare function getCollaborationProfileEnabled(cfg: PluginConfig): boolean;
24
+ export declare function getOrchestratorSubagentsEnabled(cfg: PluginConfig): boolean;
25
+ export declare function getBehaviorSettings(cfg: PluginConfig): BehaviorSettings | undefined;
26
+ export declare function getThinkingSummariesOverride(cfg: PluginConfig): boolean | undefined;
27
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../lib/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAYnD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,YAAY,CAAA;AAEnB,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAC7B,GAAG,YAAY,CAwFf;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAE1D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAEvD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAE9D;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAErE;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAIrE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAE/E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,cAAc,CAE9D;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,CAG5D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,gBAAgB,CAEvE;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,YAAY,GAAG,sBAAsB,CAEnF;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAEzE;AAED,wBAAgB,sCAAsC,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAGjF;AAED,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAI5E;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAEpE;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAEzE;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAEzE;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAIzE;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAI1E;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,gBAAgB,GAAG,SAAS,CAEnF;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS,CAEnF"}
@@ -0,0 +1,152 @@
1
+ import { buildResolvedBehaviorSettings, normalizePersonalityOption, normalizeVerbosityOption, parseEnvBoolean, parseEnvNumber, parsePromptCacheKeyStrategy, parseRotationStrategy, parseRuntimeMode, parseSpoofMode } from "./parse.js";
2
+ export function resolveConfig(input) {
3
+ const env = input.env;
4
+ const file = input.file ?? {};
5
+ const fileBehavior = file.behaviorSettings;
6
+ const envDebug = env.OPENCODE_OPENAI_MULTI_DEBUG === "1" || env.DEBUG_CODEX_PLUGIN === "1";
7
+ const proactiveRefresh = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_PROACTIVE_REFRESH) ?? file.proactiveRefresh;
8
+ const proactiveRefreshBufferMs = parseEnvNumber(env.OPENCODE_OPENAI_MULTI_PROACTIVE_REFRESH_BUFFER_MS) ?? file.proactiveRefreshBufferMs;
9
+ const quietMode = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_QUIET) ?? file.quietMode ?? file.quiet;
10
+ const pidOffsetEnabled = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_PID_OFFSET) ?? file.pidOffsetEnabled;
11
+ const rotationStrategy = parseRotationStrategy(env.OPENCODE_OPENAI_MULTI_ROTATION_STRATEGY) ?? file.rotationStrategy;
12
+ const promptCacheKeyStrategy = parsePromptCacheKeyStrategy(env.OPENCODE_OPENAI_MULTI_PROMPT_CACHE_KEY_STRATEGY) ?? file.promptCacheKeyStrategy;
13
+ const envPersonality = normalizePersonalityOption(env.OPENCODE_OPENAI_MULTI_PERSONALITY);
14
+ const envThinkingSummaries = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_THINKING_SUMMARIES);
15
+ const envVerbosityEnabled = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_VERBOSITY_ENABLED);
16
+ const envVerbosity = normalizeVerbosityOption(env.OPENCODE_OPENAI_MULTI_VERBOSITY);
17
+ const spoofModeFromEnv = parseSpoofMode(env.OPENCODE_OPENAI_MULTI_SPOOF_MODE);
18
+ const modeFromEnv = parseRuntimeMode(env.OPENCODE_OPENAI_MULTI_MODE);
19
+ const modeFromLegacySpoofInput = spoofModeFromEnv === "codex"
20
+ ? "codex"
21
+ : spoofModeFromEnv === "native"
22
+ ? "native"
23
+ : file.spoofMode === "codex"
24
+ ? "codex"
25
+ : file.spoofMode === "native"
26
+ ? "native"
27
+ : undefined;
28
+ const mode = modeFromEnv ?? file.mode ?? modeFromLegacySpoofInput ?? "native";
29
+ const resolvedBehaviorSettings = buildResolvedBehaviorSettings({
30
+ fileBehavior,
31
+ envPersonality,
32
+ envThinkingSummaries,
33
+ envVerbosityEnabled,
34
+ envVerbosity
35
+ });
36
+ const personality = envPersonality ?? resolvedBehaviorSettings?.global?.personality;
37
+ // Runtime mode is canonical; spoofMode is always derived for compatibility output.
38
+ const spoofMode = mode === "native" ? "native" : "codex";
39
+ const compatInputSanitizer = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_COMPAT_INPUT_SANITIZER) ?? file.compatInputSanitizer;
40
+ const remapDeveloperMessagesToUser = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_REMAP_DEVELOPER_MESSAGES_TO_USER) ?? file.remapDeveloperMessagesToUser;
41
+ const codexCompactionOverride = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_CODEX_COMPACTION_OVERRIDE) ?? file.codexCompactionOverride;
42
+ const headerSnapshots = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_HEADER_SNAPSHOTS) ?? file.headerSnapshots;
43
+ const headerSnapshotBodies = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_HEADER_SNAPSHOT_BODIES) ?? file.headerSnapshotBodies;
44
+ const headerTransformDebug = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_HEADER_TRANSFORM_DEBUG) ?? file.headerTransformDebug;
45
+ const collaborationProfileEnabled = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_COLLABORATION_PROFILE) ??
46
+ file.collaborationProfileEnabled ??
47
+ file.collaborationProfile;
48
+ const orchestratorSubagentsEnabled = parseEnvBoolean(env.OPENCODE_OPENAI_MULTI_ORCHESTRATOR_SUBAGENTS) ??
49
+ file.orchestratorSubagentsEnabled ??
50
+ file.orchestratorSubagents;
51
+ return {
52
+ ...file,
53
+ debug: envDebug || file.debug === true,
54
+ proactiveRefresh,
55
+ proactiveRefreshBufferMs,
56
+ quietMode,
57
+ pidOffsetEnabled,
58
+ personality,
59
+ mode,
60
+ rotationStrategy,
61
+ promptCacheKeyStrategy,
62
+ spoofMode,
63
+ compatInputSanitizer,
64
+ remapDeveloperMessagesToUser,
65
+ codexCompactionOverride,
66
+ headerSnapshots,
67
+ headerSnapshotBodies,
68
+ headerTransformDebug,
69
+ collaborationProfileEnabled,
70
+ orchestratorSubagentsEnabled,
71
+ behaviorSettings: resolvedBehaviorSettings
72
+ };
73
+ }
74
+ export function getDebugEnabled(cfg) {
75
+ return cfg.debug === true;
76
+ }
77
+ export function getQuietMode(cfg) {
78
+ return cfg.quietMode === true;
79
+ }
80
+ export function getPidOffsetEnabled(cfg) {
81
+ return cfg.pidOffsetEnabled === true;
82
+ }
83
+ export function getProactiveRefreshEnabled(cfg) {
84
+ return cfg.proactiveRefresh === true;
85
+ }
86
+ export function getProactiveRefreshBufferMs(cfg) {
87
+ return typeof cfg.proactiveRefreshBufferMs === "number" && Number.isFinite(cfg.proactiveRefreshBufferMs)
88
+ ? Math.max(0, Math.floor(cfg.proactiveRefreshBufferMs))
89
+ : 60_000;
90
+ }
91
+ export function getPersonality(cfg) {
92
+ return cfg.personality;
93
+ }
94
+ export function getSpoofMode(cfg) {
95
+ return cfg.spoofMode === "codex" ? "codex" : "native";
96
+ }
97
+ export function getMode(cfg) {
98
+ if (cfg.mode === "native" || cfg.mode === "codex")
99
+ return cfg.mode;
100
+ return getSpoofMode(cfg) === "codex" ? "codex" : "native";
101
+ }
102
+ export function getRotationStrategy(cfg) {
103
+ return cfg.rotationStrategy === "hybrid" || cfg.rotationStrategy === "round_robin" ? cfg.rotationStrategy : "sticky";
104
+ }
105
+ export function getPromptCacheKeyStrategy(cfg) {
106
+ return cfg.promptCacheKeyStrategy === "project" ? "project" : "default";
107
+ }
108
+ export function getCompatInputSanitizerEnabled(cfg) {
109
+ return cfg.compatInputSanitizer === true;
110
+ }
111
+ export function getRemapDeveloperMessagesToUserEnabled(cfg) {
112
+ if (getMode(cfg) !== "codex")
113
+ return false;
114
+ return cfg.remapDeveloperMessagesToUser !== false;
115
+ }
116
+ export function getCodexCompactionOverrideEnabled(cfg) {
117
+ if (cfg.codexCompactionOverride === true)
118
+ return true;
119
+ if (cfg.codexCompactionOverride === false)
120
+ return false;
121
+ return getMode(cfg) === "codex";
122
+ }
123
+ export function getHeaderSnapshotsEnabled(cfg) {
124
+ return cfg.headerSnapshots === true;
125
+ }
126
+ export function getHeaderTransformDebugEnabled(cfg) {
127
+ return cfg.headerTransformDebug === true;
128
+ }
129
+ export function getHeaderSnapshotBodiesEnabled(cfg) {
130
+ return cfg.headerSnapshotBodies === true;
131
+ }
132
+ export function getCollaborationProfileEnabled(cfg) {
133
+ if (cfg.collaborationProfileEnabled === true)
134
+ return true;
135
+ if (cfg.collaborationProfileEnabled === false)
136
+ return false;
137
+ return getMode(cfg) === "codex";
138
+ }
139
+ export function getOrchestratorSubagentsEnabled(cfg) {
140
+ if (cfg.orchestratorSubagentsEnabled === true)
141
+ return true;
142
+ if (cfg.orchestratorSubagentsEnabled === false)
143
+ return false;
144
+ return getCollaborationProfileEnabled(cfg);
145
+ }
146
+ export function getBehaviorSettings(cfg) {
147
+ return cfg.behaviorSettings;
148
+ }
149
+ export function getThinkingSummariesOverride(cfg) {
150
+ return cfg.behaviorSettings?.global?.thinkingSummaries;
151
+ }
152
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../lib/config/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import type { RotationStrategy } from "../types.js";
2
+ export type PersonalityOption = string;
3
+ export type CodexSpoofMode = "native" | "codex";
4
+ export type PluginRuntimeMode = "native" | "codex";
5
+ export type VerbosityOption = "default" | "low" | "medium" | "high";
6
+ export type PromptCacheKeyStrategy = "default" | "project";
7
+ export type ModelBehaviorOverride = {
8
+ personality?: PersonalityOption;
9
+ thinkingSummaries?: boolean;
10
+ verbosityEnabled?: boolean;
11
+ verbosity?: VerbosityOption;
12
+ };
13
+ export type ModelConfigOverride = ModelBehaviorOverride & {
14
+ variants?: Record<string, ModelBehaviorOverride>;
15
+ };
16
+ export type BehaviorSettings = {
17
+ global?: ModelBehaviorOverride;
18
+ perModel?: Record<string, ModelConfigOverride>;
19
+ };
20
+ export type PluginConfig = {
21
+ debug?: boolean;
22
+ proactiveRefresh?: boolean;
23
+ proactiveRefreshBufferMs?: number;
24
+ quiet?: boolean;
25
+ quietMode?: boolean;
26
+ pidOffsetEnabled?: boolean;
27
+ personality?: PersonalityOption;
28
+ mode?: PluginRuntimeMode;
29
+ rotationStrategy?: RotationStrategy;
30
+ spoofMode?: CodexSpoofMode;
31
+ compatInputSanitizer?: boolean;
32
+ remapDeveloperMessagesToUser?: boolean;
33
+ codexCompactionOverride?: boolean;
34
+ headerSnapshots?: boolean;
35
+ headerSnapshotBodies?: boolean;
36
+ headerTransformDebug?: boolean;
37
+ promptCacheKeyStrategy?: PromptCacheKeyStrategy;
38
+ collaborationProfile?: boolean;
39
+ collaborationProfileEnabled?: boolean;
40
+ orchestratorSubagents?: boolean;
41
+ orchestratorSubagentsEnabled?: boolean;
42
+ behaviorSettings?: BehaviorSettings;
43
+ };
44
+ export declare const CONFIG_FILE = "codex-config.json";
45
+ export declare const DEFAULT_CODEX_CONFIG: {
46
+ readonly $schema: "https://schemas.iam-brain.dev/opencode-codex-auth/codex-config.schema.json";
47
+ readonly debug: false;
48
+ readonly quiet: false;
49
+ readonly refreshAhead: {
50
+ readonly enabled: true;
51
+ readonly bufferMs: 60000;
52
+ };
53
+ readonly runtime: {
54
+ readonly mode: "native";
55
+ readonly rotationStrategy: "sticky";
56
+ readonly sanitizeInputs: false;
57
+ readonly developerMessagesToUser: true;
58
+ readonly promptCacheKeyStrategy: "default";
59
+ readonly headerSnapshots: false;
60
+ readonly headerSnapshotBodies: false;
61
+ readonly headerTransformDebug: false;
62
+ readonly pidOffset: false;
63
+ };
64
+ readonly global: {
65
+ readonly personality: "pragmatic";
66
+ readonly verbosityEnabled: true;
67
+ readonly verbosity: "default";
68
+ };
69
+ readonly perModel: {};
70
+ };
71
+ export declare const DEFAULT_CODEX_CONFIG_TEMPLATE = "{\n \"$schema\": \"https://schemas.iam-brain.dev/opencode-codex-auth/codex-config.schema.json\",\n\n // Enable verbose plugin debug logs.\n // options: true | false\n // default: false\n \"debug\": false,\n\n // Suppress plugin UI toasts/notifications.\n // options: true | false\n // default: false\n \"quiet\": false,\n\n // Proactively refresh access tokens before expiry.\n \"refreshAhead\": {\n // options: true | false\n // default: true\n \"enabled\": true,\n\n // Milliseconds before expiry to refresh.\n // default: 60000\n \"bufferMs\": 60000\n },\n\n \"runtime\": {\n // Request identity/profile mode.\n // options: \"native\" | \"codex\"\n // default: \"native\"\n \"mode\": \"native\",\n\n // Account rotation strategy.\n // options: \"sticky\" | \"hybrid\" | \"round_robin\"\n // default: \"sticky\"\n \"rotationStrategy\": \"sticky\",\n\n // Input compatibility sanitizer for edge payloads.\n // options: true | false\n // default: false\n \"sanitizeInputs\": false,\n\n // Experimental: remap non-permissions developer messages to user role.\n // Only applies when runtime.mode is \"codex\".\n // options: true | false\n // default: true\n \"developerMessagesToUser\": true,\n\n // Prompt cache key policy.\n // \"default\" keeps upstream session-based keys.\n // \"project\" overrides with a hashed project path + runtime mode key.\n // options: \"default\" | \"project\"\n // default: \"default\"\n \"promptCacheKeyStrategy\": \"default\",\n\n // Write request header snapshots to plugin logs.\n // options: true | false\n // default: false\n \"headerSnapshots\": false,\n\n // Capture request bodies in snapshot files.\n // options: true | false\n // default: false\n \"headerSnapshotBodies\": false,\n\n // Capture inbound/outbound header transforms for message requests.\n // options: true | false\n // default: false\n \"headerTransformDebug\": false,\n\n // Session-aware offset for account selection.\n // options: true | false\n // default: false\n \"pidOffset\": false\n\n // Experimental collaboration controls (optional):\n // \"collaborationProfile\": true,\n // \"orchestratorSubagents\": true\n },\n\n \"global\": {\n // Global personality key.\n // built-ins: \"pragmatic\", \"friendly\"\n // custom: any lowercase key from personalities/<key>.md\n // default: \"pragmatic\"\n \"personality\": \"pragmatic\",\n\n // Thinking summaries behavior:\n // true => force on\n // false => force off\n // omit => use model default from catalog cache (recommended)\n // \"thinkingSummaries\": true\n\n // Text verbosity behavior:\n // verbosityEnabled: true => apply verbosity setting/default\n // verbosityEnabled: false => do not send textVerbosity\n // default: true\n \"verbosityEnabled\": true,\n\n // options: \"default\" | \"low\" | \"medium\" | \"high\"\n // \"default\" uses each model's catalog default verbosity.\n // default: \"default\"\n \"verbosity\": \"default\"\n },\n\n // Optional model-specific overrides.\n // Supports same fields as global plus nested variants.\n \"perModel\": {\n // \"gpt-5.3-codex\": {\n // \"personality\": \"friendly\",\n // \"thinkingSummaries\": true,\n // \"verbosityEnabled\": true,\n // \"verbosity\": \"default\",\n // \"variants\": {\n // \"high\": {\n // \"personality\": \"pragmatic\",\n // \"thinkingSummaries\": false,\n // \"verbosityEnabled\": true,\n // \"verbosity\": \"high\"\n // }\n // }\n // }\n }\n}\n";
72
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAA;AACtC,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAA;AAC/C,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAA;AAClD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AACnE,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,CAAA;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,SAAS,CAAC,EAAE,eAAe,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;CAC/C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACxB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,WAAW,sBAAsB,CAAA;AAE9C,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;CAyBvB,CAAA;AAEV,eAAO,MAAM,6BAA6B,ooHA0HzC,CAAA"}