@pentoshi/clai 4.11.21 → 4.11.22

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 (205) hide show
  1. package/dist/agent/evidence/task-selection.d.ts +0 -15
  2. package/dist/agent/evidence/task-selection.js +1 -33
  3. package/dist/agent/evidence/task-selection.js.map +1 -1
  4. package/dist/agent/plan/actions/plan-clear.js.map +1 -1
  5. package/dist/agent/plan/actions/plan-create.js.map +1 -1
  6. package/dist/agent/plan/actions/task-add.js.map +1 -1
  7. package/dist/agent/plan/actions/task-move.js.map +1 -1
  8. package/dist/agent/plan/handle-plan-tool.js +5 -154
  9. package/dist/agent/plan/handle-plan-tool.js.map +1 -1
  10. package/dist/agent/runner.js +1 -13
  11. package/dist/agent/runner.js.map +1 -1
  12. package/dist/agent/session-policy.d.ts +0 -6
  13. package/dist/agent/session-policy.js +0 -2
  14. package/dist/agent/session-policy.js.map +1 -1
  15. package/dist/agent/task-evidence.d.ts +2 -2
  16. package/dist/agent/task-evidence.js +1 -1
  17. package/dist/agent/task-evidence.js.map +1 -1
  18. package/dist/agent/turn/compaction-admission.d.ts +5 -0
  19. package/dist/agent/turn/compaction-admission.js +24 -0
  20. package/dist/agent/turn/compaction-admission.js.map +1 -1
  21. package/dist/agent/turn/compaction-coordinator.d.ts +1 -0
  22. package/dist/agent/turn/compaction-coordinator.js +2 -0
  23. package/dist/agent/turn/compaction-coordinator.js.map +1 -1
  24. package/dist/agent/turn/loop/run-rounds.js +17 -24
  25. package/dist/agent/turn/loop/run-rounds.js.map +1 -1
  26. package/dist/agent/turn/loop/state.d.ts +1 -2
  27. package/dist/agent/turn/loop/state.js +1 -2
  28. package/dist/agent/turn/loop/state.js.map +1 -1
  29. package/dist/agent/turn/setup/compaction-services.d.ts +1 -0
  30. package/dist/agent/turn/setup/compaction-services.js +1 -0
  31. package/dist/agent/turn/setup/compaction-services.js.map +1 -1
  32. package/dist/agent/turn/setup/task-gate-setup.d.ts +1 -11
  33. package/dist/agent/turn/setup/task-gate-setup.js +4 -19
  34. package/dist/agent/turn/setup/task-gate-setup.js.map +1 -1
  35. package/dist/agent/turn/tool-execution/deps.d.ts +1 -5
  36. package/dist/agent/turn/tool-execution/guards.d.ts +0 -4
  37. package/dist/agent/turn/tool-execution/guards.js +3 -12
  38. package/dist/agent/turn/tool-execution/guards.js.map +1 -1
  39. package/dist/agent/turn/tool-execution/meta-tools.d.ts +0 -2
  40. package/dist/agent/turn/tool-execution/meta-tools.js +0 -17
  41. package/dist/agent/turn/tool-execution/meta-tools.js.map +1 -1
  42. package/dist/agent/turn/tool-execution/single-tool.js +0 -14
  43. package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
  44. package/dist/app/commands/catalog.js +32 -1
  45. package/dist/app/commands/catalog.js.map +1 -1
  46. package/dist/classic/panels/keys-panel.js +8 -1
  47. package/dist/classic/panels/keys-panel.js.map +1 -1
  48. package/dist/commands/providers.d.ts +17 -0
  49. package/dist/commands/providers.js +317 -28
  50. package/dist/commands/providers.js.map +1 -1
  51. package/dist/index.js +31 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/llm/agentrouter.js +1 -1
  54. package/dist/llm/anthropic.d.ts +4 -2
  55. package/dist/llm/anthropic.js +186 -178
  56. package/dist/llm/anthropic.js.map +1 -1
  57. package/dist/llm/bynara.js +1 -1
  58. package/dist/llm/capability/state.d.ts +1 -1
  59. package/dist/llm/capability/tool-dialect.js +3 -0
  60. package/dist/llm/capability/tool-dialect.js.map +1 -1
  61. package/dist/llm/capability/vision-patterns.js +3 -0
  62. package/dist/llm/capability/vision-patterns.js.map +1 -1
  63. package/dist/llm/catalog-facts.js +50 -2
  64. package/dist/llm/catalog-facts.js.map +1 -1
  65. package/dist/llm/catalog-prefetch.js +1 -1
  66. package/dist/llm/cline-auth.d.ts +34 -0
  67. package/dist/llm/cline-auth.js +248 -0
  68. package/dist/llm/cline-auth.js.map +1 -0
  69. package/dist/llm/cline.d.ts +2 -0
  70. package/dist/llm/cline.js +147 -0
  71. package/dist/llm/cline.js.map +1 -0
  72. package/dist/llm/codex-auth.d.ts +53 -0
  73. package/dist/llm/codex-auth.js +512 -0
  74. package/dist/llm/codex-auth.js.map +1 -0
  75. package/dist/llm/codex.d.ts +4 -0
  76. package/dist/llm/codex.js +239 -0
  77. package/dist/llm/codex.js.map +1 -0
  78. package/dist/llm/copilot-auth.d.ts +38 -0
  79. package/dist/llm/copilot-auth.js +258 -0
  80. package/dist/llm/copilot-auth.js.map +1 -0
  81. package/dist/llm/copilot.d.ts +4 -0
  82. package/dist/llm/copilot.js +226 -0
  83. package/dist/llm/copilot.js.map +1 -0
  84. package/dist/llm/custom-providers.js +1 -1
  85. package/dist/llm/deepseek.js +1 -1
  86. package/dist/llm/explabs.js +1 -1
  87. package/dist/llm/fireworks.js +1 -1
  88. package/dist/llm/free-default-model.js +9 -4
  89. package/dist/llm/free-default-model.js.map +1 -1
  90. package/dist/llm/free.js +1 -6
  91. package/dist/llm/free.js.map +1 -1
  92. package/dist/llm/glm.js +1 -1
  93. package/dist/llm/hetzner.js +1 -1
  94. package/dist/llm/kimi.js +1 -1
  95. package/dist/llm/lightning.js +1 -1
  96. package/dist/llm/merge-gateway.js +1 -1
  97. package/dist/llm/meta.js +1 -1
  98. package/dist/llm/minimax.js +1 -1
  99. package/dist/llm/model-families.js +1 -1
  100. package/dist/llm/model-families.js.map +1 -1
  101. package/dist/llm/model-layers/model-rules.js +6 -0
  102. package/dist/llm/model-layers/model-rules.js.map +1 -1
  103. package/dist/llm/nvidia.js +1 -1
  104. package/dist/llm/openrouter.js +1 -1
  105. package/dist/llm/orcarouter.js +1 -1
  106. package/dist/llm/provider-identity.d.ts +2 -0
  107. package/dist/llm/provider-identity.js +35 -0
  108. package/dist/llm/provider-identity.js.map +1 -1
  109. package/dist/llm/provider-info-text.js +110 -8
  110. package/dist/llm/provider-info-text.js.map +1 -1
  111. package/dist/llm/provider-profile-layers.js +101 -0
  112. package/dist/llm/provider-profile-layers.js.map +1 -1
  113. package/dist/llm/provider-profiles.js +2 -1
  114. package/dist/llm/provider-profiles.js.map +1 -1
  115. package/dist/llm/provider.d.ts +6 -4
  116. package/dist/llm/provider.js +2 -2
  117. package/dist/llm/provider.js.map +1 -1
  118. package/dist/llm/qwen-cloud.js +1 -1
  119. package/dist/llm/reasoning-capability.js +14 -0
  120. package/dist/llm/reasoning-capability.js.map +1 -1
  121. package/dist/llm/responses/item-events.js +10 -0
  122. package/dist/llm/responses/item-events.js.map +1 -1
  123. package/dist/llm/responses-config.d.ts +4 -0
  124. package/dist/llm/responses-config.js.map +1 -1
  125. package/dist/llm/responses-parse.js +23 -11
  126. package/dist/llm/responses-parse.js.map +1 -1
  127. package/dist/llm/responses-request.js +31 -8
  128. package/dist/llm/responses-request.js.map +1 -1
  129. package/dist/llm/responses-stream-events.js +21 -5
  130. package/dist/llm/responses-stream-events.js.map +1 -1
  131. package/dist/llm/routing/attempt-complete.js +1 -1
  132. package/dist/llm/routing/attempt-complete.js.map +1 -1
  133. package/dist/llm/routing/attempt-request.js +1 -1
  134. package/dist/llm/routing/attempt-request.js.map +1 -1
  135. package/dist/llm/routing/attempt-stream.js +2 -2
  136. package/dist/llm/routing/attempt-stream.js.map +1 -1
  137. package/dist/llm/routing/key-rotation.js +9 -4
  138. package/dist/llm/routing/key-rotation.js.map +1 -1
  139. package/dist/llm/routing/provider-selection.d.ts +2 -1
  140. package/dist/llm/routing/provider-selection.js +18 -4
  141. package/dist/llm/routing/provider-selection.js.map +1 -1
  142. package/dist/llm/tokenrouter.js +1 -1
  143. package/dist/llm/vercel.js +1 -1
  144. package/dist/llm/wire/chat-body.js +5 -3
  145. package/dist/llm/wire/chat-body.js.map +1 -1
  146. package/dist/llm/wire/openai-complete.d.ts +1 -0
  147. package/dist/llm/wire/openai-complete.js +9 -0
  148. package/dist/llm/wire/openai-complete.js.map +1 -1
  149. package/dist/store/config.js +3 -0
  150. package/dist/store/config.js.map +1 -1
  151. package/dist/store/keys/search-providers.d.ts +2 -0
  152. package/dist/store/keys/search-providers.js +6 -0
  153. package/dist/store/keys/search-providers.js.map +1 -1
  154. package/dist/store/keys.d.ts +6 -1
  155. package/dist/store/keys.js +46 -17
  156. package/dist/store/keys.js.map +1 -1
  157. package/dist/store/plan/mutation.d.ts +0 -1
  158. package/dist/store/plan/mutation.js +1 -22
  159. package/dist/store/plan/mutation.js.map +1 -1
  160. package/dist/store/plan.d.ts +1 -1
  161. package/dist/store/plan.js +1 -4
  162. package/dist/store/plan.js.map +1 -1
  163. package/dist/tui-v2/components/modal/keys-modal-pick.d.ts +5 -0
  164. package/dist/tui-v2/components/modal/keys-modal-pick.js +13 -0
  165. package/dist/tui-v2/components/modal/keys-modal-pick.js.map +1 -1
  166. package/dist/tui-v2/components/modal/keys-modal.js +15 -13
  167. package/dist/tui-v2/components/modal/keys-modal.js.map +1 -1
  168. package/dist/types.d.ts +1 -1
  169. package/dist/types.js +3 -0
  170. package/dist/types.js.map +1 -1
  171. package/dist/ui-core/commands/key-commands.d.ts +6 -3
  172. package/dist/ui-core/commands/key-commands.js +506 -15
  173. package/dist/ui-core/commands/key-commands.js.map +1 -1
  174. package/dist/ui-core/commands/keys/editors.js +10 -4
  175. package/dist/ui-core/commands/keys/editors.js.map +1 -1
  176. package/dist/ui-core/commands/picker-commands.js +86 -32
  177. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  178. package/dist/ui-core/commands/subagent-models-editor.js +12 -4
  179. package/dist/ui-core/commands/subagent-models-editor.js.map +1 -1
  180. package/dist/ui-core/controllers/overlay-controller.d.ts +4 -0
  181. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  182. package/dist/ui-core/rendering/format-keys.js +4 -2
  183. package/dist/ui-core/rendering/format-keys.js.map +1 -1
  184. package/dist/ui-core/rendering/format-usage.js +3 -1
  185. package/dist/ui-core/rendering/format-usage.js.map +1 -1
  186. package/dist/ui-core/rendering/intro-header.js +4 -1
  187. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  188. package/dist/version.generated.d.ts +2 -2
  189. package/dist/version.generated.js +2 -2
  190. package/package.json +1 -1
  191. package/dist/agent/task-sync.d.ts +0 -40
  192. package/dist/agent/task-sync.js +0 -105
  193. package/dist/agent/task-sync.js.map +0 -1
  194. package/dist/agent/turn/task-batch-guard.d.ts +0 -18
  195. package/dist/agent/turn/task-batch-guard.js +0 -83
  196. package/dist/agent/turn/task-batch-guard.js.map +0 -1
  197. package/dist/agent/turn/task-gate.d.ts +0 -13
  198. package/dist/agent/turn/task-gate.js +0 -34
  199. package/dist/agent/turn/task-gate.js.map +0 -1
  200. package/dist/agent/turn/task-update-gate.d.ts +0 -13
  201. package/dist/agent/turn/task-update-gate.js +0 -40
  202. package/dist/agent/turn/task-update-gate.js.map +0 -1
  203. package/dist/store/task-transitions.d.ts +0 -12
  204. package/dist/store/task-transitions.js +0 -40
  205. package/dist/store/task-transitions.js.map +0 -1
@@ -4,6 +4,16 @@ import { getProvider, pingProvider } from "../llm/router.js";
4
4
  import { assertProvider, maskSecret, normalizeEndpointUrl, } from "../llm/provider.js";
5
5
  import { appendProviderEndpoint, getActiveProviderEndpoint, getConfig, getProviderEndpoints, getProviderModel, providerUsesEndpoints, setDefaultProvider, setProviderEndpoints, updateConfig, } from "../store/config.js";
6
6
  import { appendProviderKey, envValue, getFallbackKeysPath, getProviderKeys, getProviderSecret, listProviderStatuses, unsetProviderSecret, } from "../store/keys.js";
7
+ import { importExistingClineAuth, pollClineDeviceAuth, startClineDeviceAuth, } from "../llm/cline-auth.js";
8
+ import { codexKeyFromAccessToken, encodeCodexKey, importExistingCodexKey, pollCodexDeviceAuth, startCodexBrowserAuth, startCodexDeviceAuth, } from "../llm/codex-auth.js";
9
+ import { openSystemBrowser } from "../mcp/auth/loopback.js";
10
+ import { importExistingCopilotKey, pollCopilotDeviceAuth, startCopilotDeviceAuth, } from "../llm/copilot-auth.js";
11
+ function clineCredentialMetadata(tokens) {
12
+ return {
13
+ ...(tokens.refreshToken ? { refreshToken: tokens.refreshToken } : {}),
14
+ ...(tokens.expiresAt !== undefined ? { expiresAt: tokens.expiresAt } : {}),
15
+ };
16
+ }
7
17
  function urlList(url) {
8
18
  if (!url)
9
19
  return [];
@@ -13,9 +23,10 @@ function addEndpoint(provider, raw) {
13
23
  const url = normalizeEndpointUrl(raw);
14
24
  const { endpoints, added } = appendProviderEndpoint(provider, url);
15
25
  const position = `#${endpoints.activeIndex + 1}/${endpoints.urls.length}`;
26
+ const label = getProvider(provider).displayName;
16
27
  console.log(added
17
- ? `saved ${provider} endpoint ${position} ${url}`
18
- : `${provider} endpoint ${position} ${url} is now active`);
28
+ ? `saved ${label} endpoint ${position} ${url}`
29
+ : `${label} endpoint ${position} ${url} is now active`);
19
30
  }
20
31
  async function readStdin() {
21
32
  const chunks = [];
@@ -27,7 +38,7 @@ async function readStdin() {
27
38
  async function promptForSecret(provider) {
28
39
  const message = provider === "modal"
29
40
  ? "Enter Modal proxy token as <token-id>:<token-secret> (input hidden, leave blank to cancel):"
30
- : `Enter API key for ${provider} (input hidden, leave blank to cancel):`;
41
+ : `Enter API key for ${getProvider(provider).displayName} (input hidden, leave blank to cancel):`;
31
42
  const raw = await askSecret(message);
32
43
  return (raw ?? "").trim();
33
44
  }
@@ -74,6 +85,10 @@ function invalidFormatHint(provider) {
74
85
  return "GLM keys are alphanumeric or id.secret (from https://open.bigmodel.cn or https://z.ai)";
75
86
  if (provider === "minimax")
76
87
  return "MiniMax keys are alphanumeric (from https://intl.minimaxi.com or https://api.minimax.chat)";
88
+ if (provider === "codex")
89
+ return "Chatgpt Subscription uses ChatGPT sign-in — run `clai auth chatgpt` (or import with --import)";
90
+ if (provider === "copilot")
91
+ return "Github Copilot uses GitHub sign-in — run `clai auth copilot` (or import with --import)";
77
92
  return "Ollama expects a URL such as http://localhost:11434";
78
93
  }
79
94
  export async function setProviderKey(providerValue, keyArg, options) {
@@ -92,7 +107,7 @@ export async function setProviderKey(providerValue, keyArg, options) {
92
107
  }
93
108
  const provider = assertProvider(providerValue);
94
109
  const providerImpl = getProvider(provider);
95
- // For endpoint providers `--url` is configuration, not a credential, and it
110
+ const label = providerImpl.displayName;
96
111
  const urls = urlList(options.url);
97
112
  if (providerUsesEndpoints(provider) && urls.length > 0) {
98
113
  for (const url of urls)
@@ -101,6 +116,7 @@ export async function setProviderKey(providerValue, keyArg, options) {
101
116
  return;
102
117
  }
103
118
  let secret = providerUsesEndpoints(provider) ? keyArg : (urls[0] ?? keyArg);
119
+ let clineMetadata;
104
120
  if (options.fromEnv) {
105
121
  secret = process.env[options.fromEnv];
106
122
  if (!secret)
@@ -109,6 +125,31 @@ export async function setProviderKey(providerValue, keyArg, options) {
109
125
  if (options.stdin) {
110
126
  secret = await readStdin();
111
127
  }
128
+ if (!secret && provider === "cline" && !options.fromEnv) {
129
+ const tokens = await resolveClineTokensInteractive();
130
+ if (!tokens) {
131
+ console.log("cancelled");
132
+ return;
133
+ }
134
+ secret = tokens.accessToken;
135
+ clineMetadata = clineCredentialMetadata(tokens);
136
+ }
137
+ if (!secret && provider === "codex" && !options.fromEnv) {
138
+ const credential = await resolveCodexCredentialInteractive();
139
+ if (!credential) {
140
+ console.log("cancelled");
141
+ return;
142
+ }
143
+ secret = encodeCodexKey(credential);
144
+ }
145
+ if (!secret && provider === "copilot" && !options.fromEnv) {
146
+ const token = await resolveCopilotCredentialInteractive();
147
+ if (!token) {
148
+ console.log("cancelled");
149
+ return;
150
+ }
151
+ secret = token;
152
+ }
112
153
  if (!secret) {
113
154
  secret = await promptForSecret(provider);
114
155
  }
@@ -123,7 +164,7 @@ export async function setProviderKey(providerValue, keyArg, options) {
123
164
  }
124
165
  if (!providerImpl.validateKey(secret)) {
125
166
  process.exitCode = 2;
126
- throw new Error(`Invalid ${provider} format. ${invalidFormatHint(provider)}.`);
167
+ throw new Error(`Invalid ${label} format. ${invalidFormatHint(provider)}.`);
127
168
  }
128
169
  const modalEndpointMissing = provider === "modal" && !getActiveProviderEndpoint("modal");
129
170
  if (!options.skipPing && !modalEndpointMissing) {
@@ -141,7 +182,9 @@ export async function setProviderKey(providerValue, keyArg, options) {
141
182
  setDefaultProvider(provider);
142
183
  }
143
184
  else {
144
- const storage = await appendProviderKey(provider, secret);
185
+ const storage = clineMetadata
186
+ ? await appendProviderKey(provider, secret, clineMetadata)
187
+ : await appendProviderKey(provider, secret);
145
188
  if (storage === "fallback") {
146
189
  process.exitCode = 3;
147
190
  console.warn(chalk.yellow(`Warning: OS keychain unavailable; stored in ${getFallbackKeysPath()} with restricted permissions.`));
@@ -154,8 +197,8 @@ export async function setProviderKey(providerValue, keyArg, options) {
154
197
  const multi = await getProviderKeys(provider);
155
198
  const count = multi.source === "env" ? 1 : multi.keys.length;
156
199
  console.log(count > 1
157
- ? `added ${provider} ${maskSecret(secret)} · ${count} keys total`
158
- : `saved ${provider} ${maskSecret(secret)}`);
200
+ ? `added ${label} ${maskSecret(secret)} · ${count} keys total`
201
+ : `saved ${label} ${maskSecret(secret)}`);
159
202
  }
160
203
  if (modalEndpointMissing) {
161
204
  console.warn(chalk.yellow("No Modal endpoint URL yet — the token was stored but requests will fail. " +
@@ -172,29 +215,29 @@ export async function unsetProviderKey(providerValue, options = {}) {
172
215
  return;
173
216
  }
174
217
  const provider = assertProvider(providerValue);
175
- // `--url` targets the endpoint list instead of the credentials, so a bad URL
218
+ const label = getProvider(provider).displayName;
176
219
  if (options.url) {
177
220
  if (!providerUsesEndpoints(provider)) {
178
- console.log(`${provider} has no endpoint URLs`);
221
+ console.log(`${label} has no endpoint URLs`);
179
222
  return;
180
223
  }
181
224
  const count = getProviderEndpoints(provider).urls.length;
182
225
  setProviderEndpoints(provider, []);
183
226
  console.log(count > 0
184
- ? `unset ${count} endpoint URL${count === 1 ? "" : "s"} for ${provider}`
185
- : `${provider} had no endpoint URLs`);
227
+ ? `unset ${count} endpoint URL${count === 1 ? "" : "s"} for ${label}`
228
+ : `${label} had no endpoint URLs`);
186
229
  return;
187
230
  }
188
231
  const multi = await getProviderKeys(provider);
189
232
  const count = multi.source === "env" ? 0 : multi.keys.length;
190
233
  await unsetProviderSecret(provider);
191
- console.log(count > 1 ? `unset all ${count} keys for ${provider}` : `unset ${provider}`);
234
+ console.log(count > 1 ? `unset all ${count} keys for ${label}` : `unset ${label}`);
192
235
  }
193
236
  export async function printProviderKeys() {
194
237
  const config = getConfig();
195
238
  const statuses = await listProviderStatuses(config.defaultProvider);
196
239
  console.log(chalk.bold("LLM Providers:"));
197
- console.log(chalk.dim(" PROVIDER SOURCE KEYS MODEL"));
240
+ console.log(chalk.dim(" PROVIDER SOURCE KEYS MODEL"));
198
241
  for (const s of statuses) {
199
242
  const mark = s.configured ? chalk.green("✓") : chalk.red("✗");
200
243
  const tag = s.active ? chalk.cyan(" ◀") : "";
@@ -209,7 +252,8 @@ export async function printProviderKeys() {
209
252
  ? s.maskedKey || "••••••••"
210
253
  : `${count} keys`;
211
254
  const source = (s.source === "missing" ? "no key" : s.source).padEnd(9);
212
- console.log(` ${mark} ${s.provider.padEnd(13)} ${source} ${String(keySummary).padEnd(13)} ${s.model}${tag}`);
255
+ const name = getProvider(s.provider).displayName;
256
+ console.log(` ${mark} ${name.padEnd(34)} ${source} ${String(keySummary).padEnd(13)} ${s.model}${tag}`);
213
257
  if (s.provider !== "ollama" && s.provider !== "free" && s.note) {
214
258
  console.log(chalk.dim(` endpoint: ${s.note}`));
215
259
  }
@@ -277,26 +321,267 @@ export async function ensureProviderConfigured(provider) {
277
321
  }
278
322
  export async function useProvider(providerValue) {
279
323
  const provider = assertProvider(providerValue);
324
+ const label = getProvider(provider).displayName;
280
325
  if (provider === "modal") {
281
326
  if (!(await promptModalSetup())) {
282
327
  console.log("provider unchanged");
283
328
  return;
284
329
  }
285
330
  setDefaultProvider(provider);
286
- console.log(`now using ${provider} · model=${getProviderModel(provider)}`);
331
+ console.log(`now using ${label} · model=${getProviderModel(provider)}`);
287
332
  return;
288
333
  }
289
334
  const secret = await getProviderSecret(provider);
290
335
  if (!secret.value && !envValue(provider) && provider !== "ollama" && provider !== "free") {
291
- const entered = await promptForSecret(provider);
292
- if (!entered) {
293
- console.log("provider unchanged");
294
- return;
336
+ if (provider === "cline") {
337
+ const tokens = await resolveClineTokensInteractive();
338
+ if (!tokens) {
339
+ console.log("provider unchanged");
340
+ return;
341
+ }
342
+ await appendProviderKey("cline", tokens.accessToken, clineCredentialMetadata(tokens));
343
+ }
344
+ else if (provider === "codex") {
345
+ const credential = await resolveCodexCredentialInteractive();
346
+ if (!credential) {
347
+ console.log("provider unchanged");
348
+ return;
349
+ }
350
+ await appendProviderKey("codex", encodeCodexKey(credential));
351
+ }
352
+ else if (provider === "copilot") {
353
+ const token = await resolveCopilotCredentialInteractive();
354
+ if (!token) {
355
+ console.log("provider unchanged");
356
+ return;
357
+ }
358
+ await appendProviderKey("copilot", token);
359
+ }
360
+ else {
361
+ const entered = await promptForSecret(provider);
362
+ if (!entered) {
363
+ console.log("provider unchanged");
364
+ return;
365
+ }
366
+ await setProviderKey(provider, entered, { skipPing: false });
295
367
  }
296
- await setProviderKey(provider, entered, { skipPing: false });
297
368
  }
298
369
  setDefaultProvider(provider);
299
- console.log(`now using ${provider} · model=${getProviderModel(provider)}`);
370
+ console.log(`now using ${label} · model=${getProviderModel(provider)}`);
371
+ }
372
+ export async function authCline(providerValue, options = {}) {
373
+ const provider = assertProvider(providerValue);
374
+ if (provider !== "cline") {
375
+ throw new Error(`OAuth browser sign-in is only supported for the cline provider (got "${provider}"). Use \`clai set ${provider} <key>\` instead.`);
376
+ }
377
+ if (options.import) {
378
+ process.stderr.write("Looking for an existing Cline CLI/Desktop sign-in…\n");
379
+ const tokens = await importExistingClineAuth();
380
+ if (!tokens) {
381
+ process.exitCode = 5;
382
+ throw new Error("No usable Cline credential found. Sign in with `clai auth cline` (no --import) or install Cline CLI/Desktop and log in first.");
383
+ }
384
+ const token = tokens.accessToken;
385
+ const storage = await appendProviderKey("cline", token, clineCredentialMetadata(tokens));
386
+ if (storage === "fallback") {
387
+ process.exitCode = 3;
388
+ console.warn(chalk.yellow(`Warning: OS keychain unavailable; stored in ${getFallbackKeysPath()} with restricted permissions.`));
389
+ }
390
+ const multi = await getProviderKeys("cline");
391
+ console.log(`imported cline ${maskSecret(token)} · ${multi.keys.length} key${multi.keys.length === 1 ? "" : "s"} total`);
392
+ return;
393
+ }
394
+ const tokens = await resolveClineTokensInteractive();
395
+ if (!tokens) {
396
+ process.exitCode = 5;
397
+ throw new Error("Cline authentication failed or was cancelled.");
398
+ }
399
+ const token = tokens.accessToken;
400
+ const storage = await appendProviderKey("cline", token, clineCredentialMetadata(tokens));
401
+ if (storage === "fallback") {
402
+ process.exitCode = 3;
403
+ console.warn(chalk.yellow(`Warning: OS keychain unavailable; stored in ${getFallbackKeysPath()} with restricted permissions.`));
404
+ }
405
+ const multi = await getProviderKeys("cline");
406
+ console.log(`authenticated cline ${maskSecret(token)} · ${multi.keys.length} key${multi.keys.length === 1 ? "" : "s"} total`);
407
+ }
408
+ export async function resolveClineTokensInteractive() {
409
+ const start = await startClineDeviceAuth();
410
+ console.log("To authenticate Cline:");
411
+ console.log(` 1. Open this link on any device:\n ${start.verificationUrl}`);
412
+ console.log(` 2. Enter code: ${chalk.bold(start.userCode)}`);
413
+ console.log("");
414
+ const tokens = await pollClineDeviceAuth(start, {
415
+ onPending: (remaining) => {
416
+ const mm = Math.floor(remaining / 60);
417
+ const ss = String(remaining % 60).padStart(2, "0");
418
+ process.stderr.write(`\rWaiting for approval… ${mm}:${ss} remaining (Ctrl-C to cancel) `);
419
+ },
420
+ });
421
+ process.stderr.write("\n");
422
+ return tokens;
423
+ }
424
+ export async function resolveClineCredentialInteractive() {
425
+ return (await resolveClineTokensInteractive())?.accessToken;
426
+ }
427
+ export async function authCodex(providerValue, options = {}) {
428
+ const provider = assertProvider(providerValue);
429
+ const label = getProvider(provider).displayName;
430
+ if (provider !== "codex") {
431
+ throw new Error(`OAuth browser sign-in is only supported for the ${label} provider. Use \`clai set ${provider} <key>\` instead.`);
432
+ }
433
+ if (options.import) {
434
+ process.stderr.write("Looking for an existing Chatgpt Subscription sign-in…\n");
435
+ const key = await importExistingCodexKey();
436
+ if (!key) {
437
+ process.exitCode = 5;
438
+ throw new Error("No usable ChatGPT Subscription credential found. Sign in with `clai auth chatgpt` (no --import) or install Codex CLI and log in first.");
439
+ }
440
+ const storage = await appendProviderKey("codex", key);
441
+ if (storage === "fallback") {
442
+ process.exitCode = 3;
443
+ console.warn(chalk.yellow(`Warning: OS keychain unavailable; stored in ${getFallbackKeysPath()} with restricted permissions.`));
444
+ }
445
+ const multi = await getProviderKeys("codex");
446
+ console.log(`imported Chatgpt Subscription ${maskSecret(key)} · ${multi.keys.length} key${multi.keys.length === 1 ? "" : "s"} total`);
447
+ return;
448
+ }
449
+ let credential;
450
+ if (options.headless) {
451
+ credential = await resolveCodexCredentialInteractive();
452
+ }
453
+ else {
454
+ const method = options.browser
455
+ ? "browser"
456
+ : await askChoice("How do you want to sign in to ChatGPT Subscription?", [
457
+ {
458
+ name: "Sign in with ChatGPT (browser) — opens auth.openai.com login",
459
+ value: "browser",
460
+ },
461
+ {
462
+ name: "Sign in with ChatGPT (headless) — device code on any device",
463
+ value: "headless",
464
+ },
465
+ {
466
+ name: "Manually enter an access token / API key",
467
+ value: "apikey",
468
+ },
469
+ ]);
470
+ if (!method) {
471
+ console.log("cancelled");
472
+ return;
473
+ }
474
+ if (method === "headless") {
475
+ credential = await resolveCodexCredentialInteractive();
476
+ }
477
+ else if (method === "apikey") {
478
+ const pasted = await askSecret("Paste a Chatgpt Subscription access token or stored `codex:` key:");
479
+ const key = pasted ? codexKeyFromAccessToken(pasted) ?? (pasted.startsWith("codex:") ? pasted : undefined) : undefined;
480
+ if (!key) {
481
+ process.exitCode = 5;
482
+ throw new Error("That token is not a valid ChatGPT access token (no chatgpt account id). Sign in with `clai auth chatgpt` instead.");
483
+ }
484
+ await storeCodexKey(key);
485
+ return;
486
+ }
487
+ else {
488
+ try {
489
+ const handle = await startCodexBrowserAuth();
490
+ console.log("To authenticate ChatGPT Subscription:");
491
+ console.log(` Open this link in your browser:\n ${handle.url}\n`);
492
+ console.log(`Waiting for browser authorization…\n`);
493
+ await openSystemBrowser(handle.url).catch(() => { });
494
+ credential = await handle.waitForCredential();
495
+ }
496
+ catch (error) {
497
+ if (options.browser)
498
+ throw error;
499
+ console.warn(chalk.yellow(`Browser sign-in unavailable (${error instanceof Error ? error.message : String(error)}); falling back to device code.`));
500
+ credential = await resolveCodexCredentialInteractive();
501
+ }
502
+ }
503
+ }
504
+ if (!credential) {
505
+ process.exitCode = 5;
506
+ throw new Error("ChatGPT Subscription authentication failed or was cancelled.");
507
+ }
508
+ await storeCodexKey(encodeCodexKey(credential));
509
+ }
510
+ async function storeCodexKey(key) {
511
+ const storage = await appendProviderKey("codex", key);
512
+ if (storage === "fallback") {
513
+ process.exitCode = 3;
514
+ console.warn(chalk.yellow(`Warning: OS keychain unavailable; stored in ${getFallbackKeysPath()} with restricted permissions.`));
515
+ }
516
+ const multi = await getProviderKeys("codex");
517
+ console.log(`authenticated Chatgpt Subscription ${maskSecret(key)} · ${multi.keys.length} key${multi.keys.length === 1 ? "" : "s"} total`);
518
+ }
519
+ export async function authCopilot(providerValue, options = {}) {
520
+ const provider = assertProvider(providerValue);
521
+ const label = getProvider(provider).displayName;
522
+ if (provider !== "copilot") {
523
+ throw new Error(`OAuth browser sign-in is only supported for the ${label} provider. Use \`clai set ${provider} <key>\` instead.`);
524
+ }
525
+ if (options.import) {
526
+ process.stderr.write("Looking for an existing Github Copilot sign-in…\n");
527
+ const key = await importExistingCopilotKey();
528
+ if (!key) {
529
+ process.exitCode = 5;
530
+ throw new Error("No usable Github Copilot credential found. Sign in with `clai auth copilot` (no --import) or install Copilot CLI/VS Code and log in first.");
531
+ }
532
+ const storage = await appendProviderKey("copilot", key);
533
+ if (storage === "fallback") {
534
+ process.exitCode = 3;
535
+ console.warn(chalk.yellow(`Warning: OS keychain unavailable; stored in ${getFallbackKeysPath()} with restricted permissions.`));
536
+ }
537
+ const multi = await getProviderKeys("copilot");
538
+ console.log(`imported Github Copilot ${maskSecret(key)} · ${multi.keys.length} key${multi.keys.length === 1 ? "" : "s"} total`);
539
+ return;
540
+ }
541
+ const token = await resolveCopilotCredentialInteractive();
542
+ if (!token) {
543
+ process.exitCode = 5;
544
+ throw new Error("Github Copilot authentication failed or was cancelled.");
545
+ }
546
+ const storage = await appendProviderKey("copilot", token);
547
+ if (storage === "fallback") {
548
+ process.exitCode = 3;
549
+ console.warn(chalk.yellow(`Warning: OS keychain unavailable; stored in ${getFallbackKeysPath()} with restricted permissions.`));
550
+ }
551
+ const multi = await getProviderKeys("copilot");
552
+ console.log(`authenticated Github Copilot ${maskSecret(token)} · ${multi.keys.length} key${multi.keys.length === 1 ? "" : "s"} total`);
553
+ }
554
+ export async function resolveCodexCredentialInteractive() {
555
+ const start = await startCodexDeviceAuth();
556
+ console.log("To authenticate ChatGPT Subscription:");
557
+ console.log(` 1. Open this link on any device:\n ${start.verificationUrl}`);
558
+ console.log(` 2. Enter code: ${chalk.bold(start.userCode)}`);
559
+ console.log("");
560
+ const credential = await pollCodexDeviceAuth(start, {
561
+ onPending: (remaining) => {
562
+ const mm = Math.floor(remaining / 60);
563
+ const ss = String(remaining % 60).padStart(2, "0");
564
+ process.stderr.write(`\rWaiting for approval… ${mm}:${ss} remaining (Ctrl-C to cancel) `);
565
+ },
566
+ });
567
+ process.stderr.write("\n");
568
+ return credential;
569
+ }
570
+ export async function resolveCopilotCredentialInteractive() {
571
+ const start = await startCopilotDeviceAuth();
572
+ console.log("To authenticate Github Copilot:");
573
+ console.log(` 1. Open this link on any device:\n ${start.verificationUrl}`);
574
+ console.log(` 2. Enter code: ${chalk.bold(start.userCode)}`);
575
+ console.log("");
576
+ const token = await pollCopilotDeviceAuth(start, {
577
+ onPending: (remaining) => {
578
+ const mm = Math.floor(remaining / 60);
579
+ const ss = String(remaining % 60).padStart(2, "0");
580
+ process.stderr.write(`\rWaiting for approval… ${mm}:${ss} remaining (Ctrl-C to cancel) `);
581
+ },
582
+ });
583
+ process.stderr.write("\n");
584
+ return token;
300
585
  }
301
586
  export async function providerSwitcher(providerValue) {
302
587
  if (providerValue) {
@@ -305,10 +590,13 @@ export async function providerSwitcher(providerValue) {
305
590
  }
306
591
  const config = getConfig();
307
592
  const statuses = await listProviderStatuses(config.defaultProvider);
308
- const selected = await askChoice("Select provider:", statuses.map((status) => ({
309
- name: `${status.provider.padEnd(10)} ${status.configured ? "✓ key set" : "✗ no key"}${status.active ? " (active)" : ""}`,
310
- value: status.provider,
311
- })));
593
+ const selected = await askChoice("Select provider:", statuses.map((status) => {
594
+ const label = getProvider(status.provider).displayName;
595
+ return {
596
+ name: `${label.padEnd(34)} ${status.configured ? "✓ key set" : "✗ no key"}${status.active ? " (active)" : ""}`,
597
+ value: status.provider,
598
+ };
599
+ }));
312
600
  if (!selected) {
313
601
  console.log("provider unchanged");
314
602
  return;
@@ -329,8 +617,9 @@ export async function setKeyPicker(providerValue, keyArg) {
329
617
  : status.configured
330
618
  ? chalk.green("✓ key set")
331
619
  : chalk.red("✗ no key");
620
+ const name = getProvider(status.provider).displayName;
332
621
  return {
333
- name: `${status.provider.padEnd(12)} ${label}${status.active ? chalk.cyan(" (active)") : ""}`,
622
+ name: `${name.padEnd(34)} ${label}${status.active ? chalk.cyan(" (active)") : ""}`,
334
623
  value: status.provider,
335
624
  };
336
625
  }));
@@ -353,7 +642,7 @@ export async function unsetKeyPicker(providerValue) {
353
642
  const config = getConfig();
354
643
  const statuses = await listProviderStatuses(config.defaultProvider);
355
644
  const selected = await askChoice("Unset API key for provider:", statuses.map((status) => ({
356
- name: `${status.provider.padEnd(12)} ${status.configured ? chalk.green("✓ ") + (status.maskedKey ?? "key set") : chalk.red("✗ no key")}${status.active ? chalk.cyan(" (active)") : ""}`,
645
+ name: `${getProvider(status.provider).displayName.padEnd(34)} ${status.configured ? chalk.green("✓ ") + (status.maskedKey ?? "key set") : chalk.red("✗ no key")}${status.active ? chalk.cyan(" (active)") : ""}`,
357
646
  value: status.provider,
358
647
  })));
359
648
  if (!selected) {
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/commands/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,cAAc,EACd,UAAU,EACV,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAU1B,SAAS,OAAO,CAAC,GAAyB;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,QAAoB,EAAE,GAAW;IACpD,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1E,OAAO,CAAC,GAAG,CACT,KAAK;QACH,CAAC,CAAC,SAAS,QAAQ,aAAa,QAAQ,IAAI,GAAG,EAAE;QACjD,CAAC,CAAC,GAAG,QAAQ,aAAa,QAAQ,IAAI,GAAG,gBAAgB,CAC5D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAoB;IACjD,MAAM,OAAO,GACX,QAAQ,KAAK,OAAO;QAClB,CAAC,CAAC,6FAA6F;QAC/F,CAAC,CAAC,qBAAqB,QAAQ,yCAAyC,CAAC;IAC7E,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAoB;IAC7C,IAAI,QAAQ,KAAK,QAAQ;QACvB,OAAO,4CAA4C,CAAC;IACtD,IAAI,QAAQ,KAAK,YAAY;QAC3B,OAAO,2CAA2C,CAAC;IACrD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,gDAAgD,CAAC;IACnF,IAAI,QAAQ,KAAK,WAAW;QAC1B,OAAO,2CAA2C,CAAC;IACrD,IAAI,QAAQ,KAAK,QAAQ;QACvB,OAAO,2CAA2C,CAAC;IACrD,IAAI,QAAQ,KAAK,aAAa;QAC5B,OAAO,2FAA2F,CAAC;IACrG,IAAI,QAAQ,KAAK,YAAY;QAC3B,OAAO,6EAA6E,CAAC;IACvF,IAAI,QAAQ,KAAK,QAAQ;QACvB,OAAO,gEAAgE,CAAC;IAC1E,IAAI,QAAQ,KAAK,YAAY;QAC3B,OAAO,0EAA0E,CAAC;IACpF,IAAI,QAAQ,KAAK,OAAO;QACtB,OAAO,uHAAuH,CAAC;IACjI,IAAI,QAAQ,KAAK,WAAW;QAC1B,OAAO,+GAA+G,CAAC;IACzH,IAAI,QAAQ,KAAK,aAAa;QAC5B,OAAO,kFAAkF,CAAC;IAC5F,IAAI,QAAQ,KAAK,MAAM;QACrB,OAAO,+FAA+F,CAAC;IACzG,IAAI,QAAQ,KAAK,YAAY;QAC3B,OAAO,0FAA0F,CAAC;IACpG,IAAI,QAAQ,KAAK,eAAe;QAC9B,OAAO,6EAA6E,CAAC;IACvF,IAAI,QAAQ,KAAK,SAAS;QACxB,OAAO,6GAA6G,CAAC;IACvH,IAAI,QAAQ,KAAK,QAAQ;QACvB,OAAO,kEAAkE,CAAC;IAC5E,IAAI,QAAQ,KAAK,UAAU;QACzB,OAAO,mEAAmE,CAAC;IAC7E,IAAI,QAAQ,KAAK,MAAM;QACrB,OAAO,0DAA0D,CAAC;IACpE,IAAI,QAAQ,KAAK,KAAK;QACpB,OAAO,wFAAwF,CAAC;IAClG,IAAI,QAAQ,KAAK,SAAS;QACxB,OAAO,4FAA4F,CAAC;IACtG,OAAO,qDAAqD,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,MAA0B,EAC1B,OAAsB;IAGtB,IACE,aAAa,KAAK,OAAO;QACzB,aAAa,KAAK,QAAQ;QAC1B,aAAa,KAAK,YAAY;QAC9B,aAAa,KAAK,KAAK,EACvB,CAAC;QACD,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,IAAI,GAA0C,EAAE,CAAC;QACvD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAClE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5D,MAAM,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE3C,4EAA4E;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO;IAC5D,CAAC;IAED,IAAI,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,CAAC,OAAO,sBAAsB,CAC9D,CAAC;IACN,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAEvB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,WAAW,QAAQ,YAAY,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,oBAAoB,GACxB,QAAQ,KAAK,OAAO,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAE9D,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CACjI,CACF,CAAC;YACF,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACrC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,+CAA+C,mBAAmB,EAAE,+BAA+B,CACpG,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7D,OAAO,CAAC,GAAG,CACT,KAAK,GAAG,CAAC;YACP,CAAC,CAAC,SAAS,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,aAAa;YACjE,CAAC,CAAC,SAAS,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAC9C,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,2EAA2E;YACzE,4FAA4F,CAC/F,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAqB,EACrB,UAAyC,EAAE;IAE3C,IACE,aAAa,KAAK,OAAO;QACzB,aAAa,KAAK,QAAQ;QAC1B,aAAa,KAAK,YAAY;QAC9B,aAAa,KAAK,KAAK,EACvB,CAAC;QACD,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACzE,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,6EAA6E;IAC7E,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,uBAAuB,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACzD,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CACT,KAAK,GAAG,CAAC;YACP,CAAC,CAAC,SAAS,KAAK,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,QAAQ,EAAE;YACxE,CAAC,CAAC,GAAG,QAAQ,uBAAuB,CACvC,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7D,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CACT,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,QAAQ,EAAE,CAC5E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAEpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAExE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,UAAU,GACd,CAAC,CAAC,QAAQ,KAAK,QAAQ;YACrB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO;YACnB,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM;gBACrB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS;gBACrB,CAAC,CAAC,KAAK,KAAK,CAAC;oBACX,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,KAAK,KAAK,CAAC;wBACX,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,UAAU;wBAC3B,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CACT,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,CACjG,CAAC;QACF,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC7B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,MAAM,QAAQ,GAAG,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC;oBACjD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;oBAC7B,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBACtD,IAAI,KAAK,IAAI,CAAC;oBAAE,SAAS,GAAG,KAAK,CAAC;YACpC,CAAC;YACD,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,IAAI,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,MAAM,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAC1E,MAAM,uBAAuB,EAAE,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,kGAAkG,CACnG,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,OAAO,OAAO,CAAC,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAoB;IAEpB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,gBAAgB,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO;IAC/F,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO;IACjC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,aAAqB;IACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,MAAM,gBAAgB,EAAE,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,YAAY,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,YAAY,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAkC;IAElC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,kBAAkB,EAClB,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxB,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QACxH,KAAK,EAAE,MAAM,CAAC,QAAQ;KACvB,CAAC,CAAC,CACJ,CAAC;IACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IACD,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,aAAkC,EAClC,MAA2B;IAE3B,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,iCAAiC,EACjC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,KAAK,GACT,KAAK,GAAG,CAAC;YACP,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;YAChC,CAAC,CAAC,MAAM,CAAC,UAAU;gBACjB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC1B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7F,KAAK,EAAE,MAAM,CAAC,QAAQ;SACvB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IACnE,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,GAAG,QAAQ,QAAQ,WAAW,6CAA6C,CAC5E,CACF,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAkC;IAElC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,6BAA6B,EAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxB,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;QACvL,KAAK,EAAE,MAAM,CAAC,QAAQ;KACvB,CAAC,CAAC,CACJ,CAAC;IACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,sBAAsB,CAAC,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IACD,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/commands/providers.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ const CLAI_ENTRY = fileURLToPath(import.meta.url);
5
5
  import { resolveTurnInput } from "./attachments/service.js";
6
6
  import { startNoninteractive } from "./noninteractive/start-noninteractive.js";
7
7
  import { readStdinText } from "./noninteractive/read-stdin.js";
8
- import { providerSwitcher, printProviderKeys, setProviderKey, unsetProviderKey, useProvider, } from "./commands/providers.js";
8
+ import { providerSwitcher, printProviderKeys, setProviderKey, unsetProviderKey, useProvider, authCline, authCodex, authCopilot, } from "./commands/providers.js";
9
9
  import { runDoctor } from "./commands/doctor.js";
10
10
  import { runUpdate, getCurrentVersion, } from "./commands/update.js";
11
11
  import { getConfig, getConfigPath, getProviderModel, setDefaultMode, setProviderModel, updateConfig, } from "./store/config.js";
@@ -330,6 +330,36 @@ async function main() {
330
330
  .action(async () => {
331
331
  await runDoctor();
332
332
  });
333
+ program
334
+ .command("auth")
335
+ .description("authenticate a provider via browser/OAuth (Cline, Chatgpt Subscription, Github Copilot)")
336
+ .argument("<provider>", "provider id (cline, chatgpt, copilot)")
337
+ .option("--import", "import an existing app sign-in (Cline/Chatgpt Subscription/Github Copilot)")
338
+ .option("--browser", "authenticate via browser (default for Chatgpt Subscription)")
339
+ .option("--headless", "authenticate via headless/device code flow")
340
+ .action(async (provider, options) => {
341
+ const id = provider.trim().toLowerCase();
342
+ if (id === "codex" ||
343
+ id === "chatgpt" ||
344
+ id === "openai-codex" ||
345
+ id === "codex-cli" ||
346
+ id === "chatgpt-codex" ||
347
+ id === "chatgpt-subscription" ||
348
+ id.startsWith("chatgpt")) {
349
+ await authCodex("codex", options);
350
+ return;
351
+ }
352
+ if (id === "copilot" ||
353
+ id === "github-copilot" ||
354
+ id === "gh-copilot" ||
355
+ id === "copilot-chat" ||
356
+ id === "github" ||
357
+ id.includes("copilot")) {
358
+ await authCopilot("copilot", options);
359
+ return;
360
+ }
361
+ await authCline(provider, options);
362
+ });
333
363
  program
334
364
  .command("history")
335
365
  .description("list saved sessions")