@pentoshi/clai 4.11.21 → 4.11.23

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 (218) 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/classic/panels/pager-panel.d.ts +2 -2
  49. package/dist/classic/panels/pager-panel.js +10 -7
  50. package/dist/classic/panels/pager-panel.js.map +1 -1
  51. package/dist/classic/panels/panel-host.js +1 -1
  52. package/dist/classic/panels/panel-host.js.map +1 -1
  53. package/dist/commands/providers.d.ts +17 -0
  54. package/dist/commands/providers.js +317 -28
  55. package/dist/commands/providers.js.map +1 -1
  56. package/dist/index.js +31 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/llm/agentrouter.js +1 -1
  59. package/dist/llm/anthropic.d.ts +4 -2
  60. package/dist/llm/anthropic.js +186 -178
  61. package/dist/llm/anthropic.js.map +1 -1
  62. package/dist/llm/bynara.js +1 -1
  63. package/dist/llm/capability/state.d.ts +1 -1
  64. package/dist/llm/capability/tool-dialect.js +3 -0
  65. package/dist/llm/capability/tool-dialect.js.map +1 -1
  66. package/dist/llm/capability/vision-patterns.js +3 -0
  67. package/dist/llm/capability/vision-patterns.js.map +1 -1
  68. package/dist/llm/catalog-facts.js +50 -2
  69. package/dist/llm/catalog-facts.js.map +1 -1
  70. package/dist/llm/catalog-prefetch.js +1 -1
  71. package/dist/llm/cline-auth.d.ts +34 -0
  72. package/dist/llm/cline-auth.js +248 -0
  73. package/dist/llm/cline-auth.js.map +1 -0
  74. package/dist/llm/cline.d.ts +2 -0
  75. package/dist/llm/cline.js +147 -0
  76. package/dist/llm/cline.js.map +1 -0
  77. package/dist/llm/codex-auth.d.ts +53 -0
  78. package/dist/llm/codex-auth.js +512 -0
  79. package/dist/llm/codex-auth.js.map +1 -0
  80. package/dist/llm/codex.d.ts +4 -0
  81. package/dist/llm/codex.js +239 -0
  82. package/dist/llm/codex.js.map +1 -0
  83. package/dist/llm/copilot-auth.d.ts +38 -0
  84. package/dist/llm/copilot-auth.js +258 -0
  85. package/dist/llm/copilot-auth.js.map +1 -0
  86. package/dist/llm/copilot.d.ts +4 -0
  87. package/dist/llm/copilot.js +226 -0
  88. package/dist/llm/copilot.js.map +1 -0
  89. package/dist/llm/custom-providers.js +1 -1
  90. package/dist/llm/deepseek.js +1 -1
  91. package/dist/llm/explabs.js +1 -1
  92. package/dist/llm/fireworks.js +1 -1
  93. package/dist/llm/free-default-model.js +9 -4
  94. package/dist/llm/free-default-model.js.map +1 -1
  95. package/dist/llm/free.d.ts +1 -0
  96. package/dist/llm/free.js +44 -36
  97. package/dist/llm/free.js.map +1 -1
  98. package/dist/llm/glm.js +1 -1
  99. package/dist/llm/hetzner.js +1 -1
  100. package/dist/llm/key-rotation.js +1 -1
  101. package/dist/llm/key-rotation.js.map +1 -1
  102. package/dist/llm/kimi.js +1 -1
  103. package/dist/llm/lightning.js +1 -1
  104. package/dist/llm/merge-gateway.js +1 -1
  105. package/dist/llm/meta.js +1 -1
  106. package/dist/llm/minimax.js +1 -1
  107. package/dist/llm/model-families.js +1 -1
  108. package/dist/llm/model-families.js.map +1 -1
  109. package/dist/llm/model-layers/model-rules.js +6 -0
  110. package/dist/llm/model-layers/model-rules.js.map +1 -1
  111. package/dist/llm/nvidia.js +1 -1
  112. package/dist/llm/openrouter.js +1 -1
  113. package/dist/llm/orcarouter.js +1 -1
  114. package/dist/llm/provider-identity.d.ts +2 -0
  115. package/dist/llm/provider-identity.js +35 -0
  116. package/dist/llm/provider-identity.js.map +1 -1
  117. package/dist/llm/provider-info-text.js +115 -13
  118. package/dist/llm/provider-info-text.js.map +1 -1
  119. package/dist/llm/provider-profile-layers.js +101 -0
  120. package/dist/llm/provider-profile-layers.js.map +1 -1
  121. package/dist/llm/provider-profiles.js +2 -1
  122. package/dist/llm/provider-profiles.js.map +1 -1
  123. package/dist/llm/provider.d.ts +6 -4
  124. package/dist/llm/provider.js +2 -2
  125. package/dist/llm/provider.js.map +1 -1
  126. package/dist/llm/qwen-cloud.js +1 -1
  127. package/dist/llm/reasoning-capability.js +14 -0
  128. package/dist/llm/reasoning-capability.js.map +1 -1
  129. package/dist/llm/responses/item-events.js +10 -0
  130. package/dist/llm/responses/item-events.js.map +1 -1
  131. package/dist/llm/responses-config.d.ts +4 -0
  132. package/dist/llm/responses-config.js.map +1 -1
  133. package/dist/llm/responses-parse.js +23 -11
  134. package/dist/llm/responses-parse.js.map +1 -1
  135. package/dist/llm/responses-request.js +31 -8
  136. package/dist/llm/responses-request.js.map +1 -1
  137. package/dist/llm/responses-stream-events.js +21 -5
  138. package/dist/llm/responses-stream-events.js.map +1 -1
  139. package/dist/llm/routing/attempt-complete.js +1 -1
  140. package/dist/llm/routing/attempt-complete.js.map +1 -1
  141. package/dist/llm/routing/attempt-request.js +1 -1
  142. package/dist/llm/routing/attempt-request.js.map +1 -1
  143. package/dist/llm/routing/attempt-stream.js +2 -2
  144. package/dist/llm/routing/attempt-stream.js.map +1 -1
  145. package/dist/llm/routing/failure-report.js +1 -1
  146. package/dist/llm/routing/failure-report.js.map +1 -1
  147. package/dist/llm/routing/key-rotation.js +9 -4
  148. package/dist/llm/routing/key-rotation.js.map +1 -1
  149. package/dist/llm/routing/provider-selection.d.ts +2 -1
  150. package/dist/llm/routing/provider-selection.js +18 -4
  151. package/dist/llm/routing/provider-selection.js.map +1 -1
  152. package/dist/llm/tokenrouter.js +1 -1
  153. package/dist/llm/vercel.js +1 -1
  154. package/dist/llm/wire/chat-body.js +5 -3
  155. package/dist/llm/wire/chat-body.js.map +1 -1
  156. package/dist/llm/wire/openai-complete.d.ts +1 -0
  157. package/dist/llm/wire/openai-complete.js +9 -0
  158. package/dist/llm/wire/openai-complete.js.map +1 -1
  159. package/dist/store/config.js +3 -0
  160. package/dist/store/config.js.map +1 -1
  161. package/dist/store/keys/search-providers.d.ts +2 -0
  162. package/dist/store/keys/search-providers.js +6 -0
  163. package/dist/store/keys/search-providers.js.map +1 -1
  164. package/dist/store/keys.d.ts +6 -1
  165. package/dist/store/keys.js +46 -17
  166. package/dist/store/keys.js.map +1 -1
  167. package/dist/store/plan/mutation.d.ts +0 -1
  168. package/dist/store/plan/mutation.js +1 -22
  169. package/dist/store/plan/mutation.js.map +1 -1
  170. package/dist/store/plan.d.ts +1 -1
  171. package/dist/store/plan.js +1 -4
  172. package/dist/store/plan.js.map +1 -1
  173. package/dist/tui-v2/components/modal/keys-modal-pick.d.ts +5 -0
  174. package/dist/tui-v2/components/modal/keys-modal-pick.js +13 -0
  175. package/dist/tui-v2/components/modal/keys-modal-pick.js.map +1 -1
  176. package/dist/tui-v2/components/modal/keys-modal.js +15 -13
  177. package/dist/tui-v2/components/modal/keys-modal.js.map +1 -1
  178. package/dist/types.d.ts +1 -1
  179. package/dist/types.js +3 -0
  180. package/dist/types.js.map +1 -1
  181. package/dist/ui-core/bootstrap/capabilities.d.ts +1 -0
  182. package/dist/ui-core/bootstrap/capabilities.js +14 -0
  183. package/dist/ui-core/bootstrap/capabilities.js.map +1 -1
  184. package/dist/ui-core/commands/key-commands.d.ts +6 -3
  185. package/dist/ui-core/commands/key-commands.js +506 -15
  186. package/dist/ui-core/commands/key-commands.js.map +1 -1
  187. package/dist/ui-core/commands/keys/editors.js +10 -4
  188. package/dist/ui-core/commands/keys/editors.js.map +1 -1
  189. package/dist/ui-core/commands/picker-commands.js +86 -32
  190. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  191. package/dist/ui-core/commands/subagent-models-editor.js +12 -4
  192. package/dist/ui-core/commands/subagent-models-editor.js.map +1 -1
  193. package/dist/ui-core/controllers/overlay-controller.d.ts +4 -0
  194. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  195. package/dist/ui-core/rendering/format-keys.js +4 -2
  196. package/dist/ui-core/rendering/format-keys.js.map +1 -1
  197. package/dist/ui-core/rendering/format-usage.js +3 -1
  198. package/dist/ui-core/rendering/format-usage.js.map +1 -1
  199. package/dist/ui-core/rendering/intro-header.js +4 -1
  200. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  201. package/dist/version.generated.d.ts +2 -2
  202. package/dist/version.generated.js +2 -2
  203. package/package.json +1 -1
  204. package/dist/agent/task-sync.d.ts +0 -40
  205. package/dist/agent/task-sync.js +0 -105
  206. package/dist/agent/task-sync.js.map +0 -1
  207. package/dist/agent/turn/task-batch-guard.d.ts +0 -18
  208. package/dist/agent/turn/task-batch-guard.js +0 -83
  209. package/dist/agent/turn/task-batch-guard.js.map +0 -1
  210. package/dist/agent/turn/task-gate.d.ts +0 -13
  211. package/dist/agent/turn/task-gate.js +0 -34
  212. package/dist/agent/turn/task-gate.js.map +0 -1
  213. package/dist/agent/turn/task-update-gate.d.ts +0 -13
  214. package/dist/agent/turn/task-update-gate.js +0 -40
  215. package/dist/agent/turn/task-update-gate.js.map +0 -1
  216. package/dist/store/task-transitions.d.ts +0 -12
  217. package/dist/store/task-transitions.js +0 -40
  218. package/dist/store/task-transitions.js.map +0 -1
@@ -0,0 +1,147 @@
1
+ import { defaultModels, } from "./provider.js";
2
+ import { openAiCompatibleComplete, openAiCompatibleStream, toCompletionResult, readJson, ingestModelCatalogEntries, ProviderError, } from "./http.js";
3
+ import { CLINE_API_BASE_URL, CLINE_REQUEST_HEADERS, maybeRefreshClineToken, } from "./cline-auth.js";
4
+ import { replaceProviderKey } from "../store/keys.js";
5
+ const baseUrl = CLINE_API_BASE_URL;
6
+ const headers = CLINE_REQUEST_HEADERS;
7
+ let cachedModels = null;
8
+ let lastFetchTime = 0;
9
+ const CACHE_TTL_MS = 30 * 60 * 1000;
10
+ function requireKey(auth) {
11
+ if (!auth.apiKey) {
12
+ throw new Error("Cline authentication required. Run `clai auth cline` (browser sign-in) or add a key with `clai set cline <token>`.");
13
+ }
14
+ return auth.apiKey;
15
+ }
16
+ async function withClineCredential(auth, run, onStatus) {
17
+ const key = requireKey(auth);
18
+ try {
19
+ return await run(key);
20
+ }
21
+ catch (error) {
22
+ const status = error instanceof ProviderError ? error.status : undefined;
23
+ if (status !== 401)
24
+ throw error;
25
+ onStatus?.("ℹ Cline authentication expired — refreshing token");
26
+ let refreshError = "";
27
+ const fresh = await maybeRefreshClineToken(key, auth.refreshToken, (message) => {
28
+ refreshError = message;
29
+ });
30
+ if (!fresh?.accessToken || fresh.accessToken === key) {
31
+ const detail = refreshError ? ` (${refreshError})` : "";
32
+ onStatus?.(`ℹ Cline token refresh was unavailable${detail} — trying the next provider`);
33
+ throw error;
34
+ }
35
+ await replaceClineKey(key, fresh).catch(() => undefined);
36
+ auth.apiKey = fresh.accessToken;
37
+ if (fresh.refreshToken)
38
+ auth.refreshToken = fresh.refreshToken;
39
+ if (fresh.expiresAt !== undefined)
40
+ auth.expiresAt = fresh.expiresAt;
41
+ onStatus?.("ℹ Cline token refreshed — retrying request");
42
+ return run(fresh.accessToken);
43
+ }
44
+ }
45
+ async function replaceClineKey(oldKey, fresh) {
46
+ await replaceProviderKey("cline", oldKey, fresh.accessToken, {
47
+ ...(fresh.refreshToken ? { refreshToken: fresh.refreshToken } : {}),
48
+ ...(fresh.expiresAt !== undefined ? { expiresAt: fresh.expiresAt } : {}),
49
+ });
50
+ }
51
+ export const clineProvider = {
52
+ id: "cline",
53
+ displayName: "Cline",
54
+ reasoningStyle: "openrouter",
55
+ defaultModel: defaultModels.cline,
56
+ envVar: "CLINE_API_KEY",
57
+ validateKey: (key) => key.trim().length >= 20,
58
+ async listModels(auth) {
59
+ const now = Date.now();
60
+ if (cachedModels && now - lastFetchTime < CACHE_TTL_MS) {
61
+ return cachedModels;
62
+ }
63
+ const reqHeaders = { ...headers };
64
+ if (auth.apiKey) {
65
+ reqHeaders["authorization"] = `Bearer ${auth.apiKey}`;
66
+ }
67
+ const response = await fetch(`${baseUrl}/ai/cline/recommended-models`, {
68
+ headers: reqHeaders,
69
+ });
70
+ const payload = await readJson(response);
71
+ const entries = [
72
+ ...(Array.isArray(payload.recommended) ? payload.recommended : []),
73
+ ...(Array.isArray(payload.free) ? payload.free : []),
74
+ ...(Array.isArray(payload.clinePass) ? payload.clinePass : []),
75
+ ];
76
+ const models = ingestModelCatalogEntries("cline", entries);
77
+ if (models.length > 0) {
78
+ cachedModels = models;
79
+ lastFetchTime = now;
80
+ }
81
+ return models;
82
+ },
83
+ async ping(auth) {
84
+ const key = requireKey(auth);
85
+ const response = await fetch(`${baseUrl}/users/me`, {
86
+ headers: { authorization: `Bearer ${key}`, ...headers },
87
+ });
88
+ if (!response.ok) {
89
+ throw new ProviderError(`Cline authentication failed (HTTP ${response.status}). Run \`clai auth cline\` to sign in.`, response.status);
90
+ }
91
+ },
92
+ async complete(request, auth, onStatus) {
93
+ const model = request.model ?? defaultModels.cline;
94
+ return withClineCredential(auth, async (key) => {
95
+ const payload = await openAiCompatibleComplete({
96
+ provider: "Cline",
97
+ providerId: "cline",
98
+ baseUrl,
99
+ apiKey: key,
100
+ model,
101
+ messages: request.messages,
102
+ maxTokens: request.maxTokens,
103
+ temperature: request.temperature,
104
+ headers,
105
+ signal: request.signal,
106
+ reasoning: request.thinking,
107
+ reasoningStyle: "openrouter",
108
+ tools: request.tools,
109
+ toolChoice: request.toolChoice,
110
+ parallelToolCalls: request.parallelToolCalls,
111
+ unwrapDataEnvelope: true,
112
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
113
+ ...(request.forceReasoningReplay ? { forceReasoningReplay: true } : {}),
114
+ });
115
+ return toCompletionResult("cline", model, payload);
116
+ }, onStatus);
117
+ },
118
+ async stream(request, auth, onToken, onStatus) {
119
+ const model = request.model ?? defaultModels.cline;
120
+ return withClineCredential(auth, async (key) => {
121
+ const payload = await openAiCompatibleStream({
122
+ provider: "Cline",
123
+ providerId: "cline",
124
+ baseUrl,
125
+ apiKey: key,
126
+ model,
127
+ messages: request.messages,
128
+ maxTokens: request.maxTokens,
129
+ temperature: request.temperature,
130
+ headers,
131
+ signal: request.signal,
132
+ onToken,
133
+ onToolCallDelta: request.onToolCallDelta,
134
+ onStreamEvent: request.onStreamEvent,
135
+ reasoning: request.thinking,
136
+ reasoningStyle: "openrouter",
137
+ tools: request.tools,
138
+ toolChoice: request.toolChoice,
139
+ parallelToolCalls: request.parallelToolCalls,
140
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
141
+ ...(request.forceReasoningReplay ? { forceReasoningReplay: true } : {}),
142
+ });
143
+ return toCompletionResult("cline", model, payload);
144
+ }, onStatus);
145
+ },
146
+ };
147
+ //# sourceMappingURL=cline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline.js","sourceRoot":"","sources":["../../src/llm/cline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ export declare const CODEX_API_BASE_URL = "https://chatgpt.com/backend-api/codex";
2
+ export declare const CODEX_AUTH_BASE_URL = "https://auth.openai.com";
3
+ export declare const CODEX_CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann";
4
+ export declare const CODEX_ORIGINATOR = "codex_cli_rs";
5
+ export declare const CODEX_CLIENT_VERSION = "0.0.0";
6
+ export declare const CODEX_SCOPE = "openid profile email offline_access";
7
+ export interface CodexCredential {
8
+ accessToken: string;
9
+ refreshToken?: string | undefined;
10
+ accountId: string;
11
+ expiresAt?: number | undefined;
12
+ residency?: string | undefined;
13
+ }
14
+ export declare function defaultCodexSessionId(): string;
15
+ export interface CodexDeviceAuthStart {
16
+ deviceAuthId: string;
17
+ userCode: string;
18
+ verificationUrl: string;
19
+ expiresInSeconds: number;
20
+ pollIntervalSeconds: number;
21
+ }
22
+ export declare function isCodexOAuthToken(value: string): boolean;
23
+ export declare function encodeCodexKey(credential: CodexCredential): string;
24
+ export declare function decodeCodexKey(value: string): CodexCredential | undefined;
25
+ export declare function codexRequestHeaders(accountId: string, extra?: Record<string, string>, residency?: string): Record<string, string>;
26
+ export declare function extractAccountIdFromClaims(claims: Record<string, unknown> | undefined): string | undefined;
27
+ export declare function accountIdFromIdToken(idToken: string | undefined): string | undefined;
28
+ export declare function extractResidency(token: string): string | undefined;
29
+ export declare function expiresAtFromAccessToken(accessToken: string): number | undefined;
30
+ export declare function codexKeyFromAccessToken(accessToken: string): string | undefined;
31
+ export declare function startCodexDeviceAuth(): Promise<CodexDeviceAuthStart>;
32
+ export declare function pollCodexDeviceAuth(start: CodexDeviceAuthStart, options?: {
33
+ signal?: AbortSignal | undefined;
34
+ onPending?: ((remainingSeconds: number) => void) | undefined;
35
+ }): Promise<CodexCredential>;
36
+ export declare function refreshCodexToken(refreshToken: string, fallback?: CodexCredential | undefined): Promise<CodexCredential>;
37
+ export declare function verifyCodexCredential(credential: CodexCredential): Promise<boolean>;
38
+ export declare function candidateCodexCredentialPaths(): string[];
39
+ export declare function readCodexStoredAuth(): Promise<CodexCredential | undefined>;
40
+ export declare function maybeRefreshCodexCredential(currentKey: string): Promise<string | undefined>;
41
+ export declare function importExistingCodexKey(): Promise<string | undefined>;
42
+ export declare const CODEX_OAUTH_PORT = 1455;
43
+ export declare const CODEX_OAUTH_FALLBACK_PORT = 1457;
44
+ export declare function buildCodexAuthorizeUrl(redirectUri: string, pkce: {
45
+ challenge: string;
46
+ }, state: string): string;
47
+ export declare function exchangeCodexAuthCode(code: string, redirectUri: string, codeVerifier: string): Promise<CodexCredential>;
48
+ export interface CodexBrowserAuthHandle {
49
+ readonly url: string;
50
+ waitForCredential(): Promise<CodexCredential>;
51
+ close(): void;
52
+ }
53
+ export declare function startCodexBrowserAuth(): Promise<CodexBrowserAuthHandle>;