@kenkaiiii/ggcoder 4.3.243 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/cli/auth.d.ts.map +1 -1
  2. package/dist/cli/auth.js +17 -2
  3. package/dist/cli/auth.js.map +1 -1
  4. package/dist/cli.js +1 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +3 -14
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +4 -17
  9. package/dist/config.js.map +1 -1
  10. package/dist/core/agent-session.d.ts.map +1 -1
  11. package/dist/core/agent-session.js +14 -10
  12. package/dist/core/agent-session.js.map +1 -1
  13. package/dist/core/auth-storage.d.ts +1 -40
  14. package/dist/core/auth-storage.d.ts.map +1 -1
  15. package/dist/core/auth-storage.js +3 -200
  16. package/dist/core/auth-storage.js.map +1 -1
  17. package/dist/core/auto-update.d.ts +4 -26
  18. package/dist/core/auto-update.d.ts.map +1 -1
  19. package/dist/core/auto-update.js +12 -237
  20. package/dist/core/auto-update.js.map +1 -1
  21. package/dist/core/claude-code-version.d.ts +1 -9
  22. package/dist/core/claude-code-version.d.ts.map +1 -1
  23. package/dist/core/claude-code-version.js +2 -105
  24. package/dist/core/claude-code-version.js.map +1 -1
  25. package/dist/core/compaction/compactor.d.ts.map +1 -1
  26. package/dist/core/compaction/compactor.js +4 -0
  27. package/dist/core/compaction/compactor.js.map +1 -1
  28. package/dist/core/file-lock.d.ts +1 -5
  29. package/dist/core/file-lock.d.ts.map +1 -1
  30. package/dist/core/file-lock.js +2 -75
  31. package/dist/core/file-lock.js.map +1 -1
  32. package/dist/core/logger.d.ts +4 -17
  33. package/dist/core/logger.d.ts.map +1 -1
  34. package/dist/core/logger.js +21 -110
  35. package/dist/core/logger.js.map +1 -1
  36. package/dist/core/model-registry.d.ts +1 -54
  37. package/dist/core/model-registry.d.ts.map +1 -1
  38. package/dist/core/model-registry.js +4 -296
  39. package/dist/core/model-registry.js.map +1 -1
  40. package/dist/core/oauth/anthropic.d.ts +1 -3
  41. package/dist/core/oauth/anthropic.d.ts.map +1 -1
  42. package/dist/core/oauth/anthropic.js +2 -96
  43. package/dist/core/oauth/anthropic.js.map +1 -1
  44. package/dist/core/oauth/gemini.d.ts +1 -3
  45. package/dist/core/oauth/gemini.d.ts.map +1 -1
  46. package/dist/core/oauth/gemini.js +2 -379
  47. package/dist/core/oauth/gemini.js.map +1 -1
  48. package/dist/core/oauth/kimi.d.ts +2 -0
  49. package/dist/core/oauth/kimi.d.ts.map +1 -0
  50. package/dist/core/oauth/kimi.js +3 -0
  51. package/dist/core/oauth/kimi.js.map +1 -0
  52. package/dist/core/oauth/openai.d.ts +1 -3
  53. package/dist/core/oauth/openai.d.ts.map +1 -1
  54. package/dist/core/oauth/openai.js +2 -187
  55. package/dist/core/oauth/openai.js.map +1 -1
  56. package/dist/core/oauth/pkce.d.ts +1 -4
  57. package/dist/core/oauth/pkce.d.ts.map +1 -1
  58. package/dist/core/oauth/pkce.js +2 -16
  59. package/dist/core/oauth/pkce.js.map +1 -1
  60. package/dist/core/oauth/types.d.ts +1 -13
  61. package/dist/core/oauth/types.d.ts.map +1 -1
  62. package/dist/core/telegram.d.ts +1 -112
  63. package/dist/core/telegram.d.ts.map +1 -1
  64. package/dist/core/telegram.js +2 -251
  65. package/dist/core/telegram.js.map +1 -1
  66. package/dist/core/thinking-level.d.ts +1 -4
  67. package/dist/core/thinking-level.d.ts.map +1 -1
  68. package/dist/core/thinking-level.js +3 -58
  69. package/dist/core/thinking-level.js.map +1 -1
  70. package/dist/core/voice-transcriber.d.ts +1 -32
  71. package/dist/core/voice-transcriber.d.ts.map +1 -1
  72. package/dist/core/voice-transcriber.js +3 -112
  73. package/dist/core/voice-transcriber.js.map +1 -1
  74. package/dist/interactive.d.ts.map +1 -1
  75. package/dist/interactive.js +5 -1
  76. package/dist/interactive.js.map +1 -1
  77. package/dist/tools/index.d.ts.map +1 -1
  78. package/dist/tools/index.js +7 -1
  79. package/dist/tools/index.js.map +1 -1
  80. package/dist/tools/read.d.ts +6 -1
  81. package/dist/tools/read.d.ts.map +1 -1
  82. package/dist/tools/read.js +70 -4
  83. package/dist/tools/read.js.map +1 -1
  84. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  85. package/dist/ui/hooks/useAgentLoop.js +7 -0
  86. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  87. package/dist/ui/login.js +1 -1
  88. package/dist/ui/login.js.map +1 -1
  89. package/dist/ui/prompt-routing.d.ts.map +1 -1
  90. package/dist/ui/prompt-routing.js +42 -18
  91. package/dist/ui/prompt-routing.js.map +1 -1
  92. package/dist/ui/slash-command-images.test.js +30 -8
  93. package/dist/ui/slash-command-images.test.js.map +1 -1
  94. package/dist/utils/image.d.ts +25 -2
  95. package/dist/utils/image.d.ts.map +1 -1
  96. package/dist/utils/image.js +116 -23
  97. package/dist/utils/image.js.map +1 -1
  98. package/package.json +5 -4
  99. package/dist/core/model-registry.test.d.ts +0 -2
  100. package/dist/core/model-registry.test.d.ts.map +0 -1
  101. package/dist/core/model-registry.test.js +0 -95
  102. package/dist/core/model-registry.test.js.map +0 -1
  103. package/dist/core/oauth/gemini.test.d.ts +0 -2
  104. package/dist/core/oauth/gemini.test.d.ts.map +0 -1
  105. package/dist/core/oauth/gemini.test.js +0 -154
  106. package/dist/core/oauth/gemini.test.js.map +0 -1
  107. package/dist/core/thinking-level.test.d.ts +0 -2
  108. package/dist/core/thinking-level.test.d.ts.map +0 -1
  109. package/dist/core/thinking-level.test.js +0 -38
  110. package/dist/core/thinking-level.test.js.map +0 -1
  111. package/dist/core/voice-transcriber.test.d.ts +0 -2
  112. package/dist/core/voice-transcriber.test.d.ts.map +0 -1
  113. package/dist/core/voice-transcriber.test.js +0 -88
  114. package/dist/core/voice-transcriber.test.js.map +0 -1
@@ -1,55 +1,2 @@
1
- import type { Provider, ThinkingLevel } from "@kenkaiiii/gg-ai";
2
- export interface ModelInfo {
3
- id: string;
4
- name: string;
5
- provider: Provider;
6
- contextWindow: number;
7
- /**
8
- * ChatGPT Codex transport uses product-specific windows that can differ from
9
- * the public API model window. OpenAI OAuth requests include an accountId and
10
- * route through `/codex/responses`; API-key requests do not.
11
- */
12
- codexContextWindow?: number;
13
- maxOutputTokens: number;
14
- supportsThinking: boolean;
15
- supportsImages: boolean;
16
- supportsVideo: boolean;
17
- costTier: "low" | "medium" | "high";
18
- /**
19
- * The top reasoning tier this model genuinely uses. Used when thinking is
20
- * enabled to pick the strongest setting per model:
21
- * - OpenAI GPT-5.5-era: `xhigh`
22
- * - OpenAI Pro/Codex/old: clamped to what the model accepts
23
- * - Claude Opus 4.8 / 4.7 / 4.6 and Sonnet 4.6: `max`
24
- * - Claude Haiku 4.5: `high` (no adaptive `max` tier)
25
- * - GLM / Moonshot / Xiaomi / MiniMax / Qwen: `high` — binary-thinking
26
- * providers ignore the level on the wire, so the value is cosmetic
27
- * - DeepSeek V4: `xhigh` (DeepSeek maps `xhigh` → its internal `max`)
28
- */
29
- maxThinkingLevel: ThinkingLevel;
30
- }
31
- export declare const MODELS: ModelInfo[];
32
- export declare function getModel(id: string): ModelInfo | undefined;
33
- export declare function getModelsForProvider(provider: Provider): ModelInfo[];
34
- export declare function getDefaultModel(provider: Provider): ModelInfo;
35
- export interface ContextWindowOptions {
36
- provider?: Provider;
37
- accountId?: string;
38
- }
39
- export declare function usesOpenAICodexTransport(options?: ContextWindowOptions): boolean;
40
- export declare function getContextWindow(modelId: string, options?: ContextWindowOptions): number;
41
- /**
42
- * The strongest thinking level the given model genuinely uses. Falls back to
43
- * `"high"` for unknown models since every provider we ship accepts it.
44
- */
45
- export declare function getMaxThinkingLevel(modelId: string): ThinkingLevel;
46
- /**
47
- * Get the model to use for compaction summarization.
48
- * - Anthropic: always Sonnet 4.6
49
- * - OpenAI: cheapest (Codex Mini)
50
- * - Gemini: use the current model
51
- * - GLM: GLM-4.7 Flash (cheap alternative)
52
- * - Moonshot: use the current model (no cheap alternative)
53
- */
54
- export declare function getSummaryModel(provider: Provider, currentModelId: string): ModelInfo;
1
+ export * from "@kenkaiiii/gg-core/models";
55
2
  //# sourceMappingURL=model-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../src/core/model-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC;;;;;;;;;;OAUG;IACH,gBAAgB,EAAE,aAAa,CAAC;CACjC;AAID,eAAO,MAAM,MAAM,EAAE,SAAS,EAqO7B,CAAC;AAEF,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE1D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,CAEpE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAU7D;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAEhF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAOxF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,GAAG,SAAS,CAUrF"}
1
+ {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../src/core/model-registry.ts"],"names":[],"mappings":"AAGA,cAAc,2BAA2B,CAAC"}
@@ -1,297 +1,5 @@
1
- // Provider display order mirrors `PROVIDERS` in ui/login.tsx so the
2
- // /model selector and login selector sort models identically.
3
- export const MODELS = [
4
- // ── Anthropic ──────────────────────────────────────────
5
- {
6
- id: "claude-opus-4-8",
7
- name: "Claude Opus 4.8",
8
- provider: "anthropic",
9
- contextWindow: 1_000_000,
10
- maxOutputTokens: 128_000,
11
- supportsThinking: true,
12
- supportsImages: true,
13
- supportsVideo: false,
14
- costTier: "high",
15
- maxThinkingLevel: "max",
16
- },
17
- {
18
- id: "claude-sonnet-4-6",
19
- name: "Claude Sonnet 4.6",
20
- provider: "anthropic",
21
- contextWindow: 1_000_000,
22
- maxOutputTokens: 64_000,
23
- supportsThinking: true,
24
- supportsImages: true,
25
- supportsVideo: false,
26
- costTier: "medium",
27
- maxThinkingLevel: "max",
28
- },
29
- {
30
- id: "claude-haiku-4-5-20251001",
31
- name: "Claude Haiku 4.5",
32
- provider: "anthropic",
33
- contextWindow: 200_000,
34
- maxOutputTokens: 64_000,
35
- supportsThinking: true,
36
- supportsImages: true,
37
- supportsVideo: false,
38
- costTier: "low",
39
- maxThinkingLevel: "high",
40
- },
41
- // ── OpenAI (Codex) ─────────────────────────────────────
42
- {
43
- id: "gpt-5.5",
44
- name: "GPT-5.5",
45
- provider: "openai",
46
- contextWindow: 1_050_000,
47
- codexContextWindow: 272_000,
48
- maxOutputTokens: 128_000,
49
- supportsThinking: true,
50
- supportsImages: true,
51
- supportsVideo: false,
52
- costTier: "high",
53
- maxThinkingLevel: "xhigh",
54
- },
55
- {
56
- id: "gpt-5.4",
57
- name: "GPT-5.4",
58
- provider: "openai",
59
- contextWindow: 1_050_000,
60
- codexContextWindow: 272_000,
61
- maxOutputTokens: 128_000,
62
- supportsThinking: true,
63
- supportsImages: true,
64
- supportsVideo: false,
65
- costTier: "high",
66
- maxThinkingLevel: "xhigh",
67
- },
68
- {
69
- id: "gpt-5.4-mini",
70
- name: "GPT-5.4 Mini",
71
- provider: "openai",
72
- contextWindow: 400_000,
73
- maxOutputTokens: 128_000,
74
- supportsThinking: true,
75
- supportsImages: true,
76
- supportsVideo: false,
77
- costTier: "low",
78
- maxThinkingLevel: "xhigh",
79
- },
80
- {
81
- id: "gpt-5.3-codex",
82
- name: "GPT-5.3 Codex",
83
- provider: "openai",
84
- contextWindow: 400_000,
85
- maxOutputTokens: 128_000,
86
- supportsThinking: true,
87
- supportsImages: true,
88
- supportsVideo: false,
89
- costTier: "high",
90
- maxThinkingLevel: "xhigh",
91
- },
92
- // ── Gemini ─────────────────────────────────────────────
93
- {
94
- id: "gemini-3.1-flash-lite-preview",
95
- name: "Gemini 3.1 Flash Lite Preview",
96
- provider: "gemini",
97
- contextWindow: 1_048_576,
98
- maxOutputTokens: 65_536,
99
- supportsThinking: true,
100
- supportsImages: true,
101
- supportsVideo: true,
102
- costTier: "low",
103
- maxThinkingLevel: "high",
104
- },
105
- {
106
- id: "gemini-3.5-flash",
107
- name: "Gemini 3.5 Flash",
108
- provider: "gemini",
109
- contextWindow: 1_048_576,
110
- maxOutputTokens: 65_536,
111
- supportsThinking: true,
112
- supportsImages: true,
113
- supportsVideo: true,
114
- costTier: "low",
115
- maxThinkingLevel: "high",
116
- },
117
- // ── Moonshot (Kimi) ────────────────────────────────────
118
- {
119
- id: "kimi-k2.6",
120
- name: "Kimi K2.6",
121
- provider: "moonshot",
122
- contextWindow: 262_144,
123
- maxOutputTokens: 262_144,
124
- supportsThinking: true,
125
- supportsImages: true,
126
- supportsVideo: true,
127
- costTier: "medium",
128
- maxThinkingLevel: "high",
129
- },
130
- // ── Z.AI (GLM) ─────────────────────────────────────────
131
- {
132
- id: "glm-5.1",
133
- name: "GLM-5.1",
134
- provider: "glm",
135
- contextWindow: 204_800,
136
- maxOutputTokens: 131_072,
137
- supportsThinking: true,
138
- supportsImages: false,
139
- supportsVideo: false,
140
- costTier: "medium",
141
- maxThinkingLevel: "high",
142
- },
143
- {
144
- id: "glm-4.7",
145
- name: "GLM-4.7",
146
- provider: "glm",
147
- contextWindow: 200_000,
148
- maxOutputTokens: 131_072,
149
- supportsThinking: true,
150
- supportsImages: false,
151
- supportsVideo: false,
152
- costTier: "low",
153
- maxThinkingLevel: "high",
154
- },
155
- {
156
- id: "glm-4.7-flash",
157
- name: "GLM-4.7 Flash",
158
- provider: "glm",
159
- contextWindow: 200_000,
160
- maxOutputTokens: 131_072,
161
- supportsThinking: true,
162
- supportsImages: false,
163
- supportsVideo: false,
164
- costTier: "low",
165
- maxThinkingLevel: "high",
166
- },
167
- // ── MiniMax ────────────────────────────────────────────
168
- {
169
- id: "MiniMax-M3",
170
- name: "MiniMax M3",
171
- provider: "minimax",
172
- contextWindow: 1_000_000,
173
- maxOutputTokens: 131_072,
174
- supportsThinking: true,
175
- supportsImages: true,
176
- supportsVideo: true,
177
- costTier: "medium",
178
- maxThinkingLevel: "high",
179
- },
180
- // ── Xiaomi (MiMo) ──────────────────────────────────────
181
- {
182
- id: "mimo-v2-pro",
183
- name: "MiMo-V2-Pro",
184
- provider: "xiaomi",
185
- contextWindow: 1_000_000,
186
- maxOutputTokens: 131_072,
187
- supportsThinking: true,
188
- supportsImages: false,
189
- supportsVideo: false,
190
- costTier: "medium",
191
- maxThinkingLevel: "high",
192
- },
193
- // ── DeepSeek ───────────────────────────────────────────
194
- {
195
- id: "deepseek-v4-pro",
196
- name: "DeepSeek V4 Pro",
197
- provider: "deepseek",
198
- contextWindow: 1_048_576,
199
- maxOutputTokens: 384_000,
200
- supportsThinking: true,
201
- supportsImages: false,
202
- supportsVideo: false,
203
- costTier: "high",
204
- // DeepSeek V4 maps `xhigh` → its internal `max` tier.
205
- maxThinkingLevel: "xhigh",
206
- },
207
- {
208
- id: "deepseek-v4-flash",
209
- name: "DeepSeek V4 Flash",
210
- provider: "deepseek",
211
- contextWindow: 1_048_576,
212
- maxOutputTokens: 384_000,
213
- supportsThinking: true,
214
- supportsImages: false,
215
- supportsVideo: false,
216
- costTier: "low",
217
- maxThinkingLevel: "xhigh",
218
- },
219
- // ── OpenRouter ─────────────────────────────────────────
220
- {
221
- id: "qwen/qwen3.6-plus",
222
- name: "Qwen3.6-Plus",
223
- provider: "openrouter",
224
- contextWindow: 1_000_000,
225
- maxOutputTokens: 65_536,
226
- supportsThinking: true,
227
- supportsImages: false,
228
- supportsVideo: false,
229
- costTier: "medium",
230
- maxThinkingLevel: "high",
231
- },
232
- ];
233
- export function getModel(id) {
234
- return MODELS.find((m) => m.id === id);
235
- }
236
- export function getModelsForProvider(provider) {
237
- return MODELS.filter((m) => m.provider === provider);
238
- }
239
- export function getDefaultModel(provider) {
240
- if (provider === "xiaomi")
241
- return MODELS.find((m) => m.id === "mimo-v2-pro");
242
- if (provider === "openai")
243
- return MODELS.find((m) => m.id === "gpt-5.5");
244
- if (provider === "gemini")
245
- return MODELS.find((m) => m.id === "gemini-3.1-flash-lite-preview");
246
- if (provider === "glm")
247
- return MODELS.find((m) => m.id === "glm-5.1");
248
- if (provider === "moonshot")
249
- return MODELS.find((m) => m.id === "kimi-k2.6");
250
- if (provider === "minimax")
251
- return MODELS.find((m) => m.id === "MiniMax-M3");
252
- if (provider === "deepseek")
253
- return MODELS.find((m) => m.id === "deepseek-v4-pro");
254
- if (provider === "openrouter")
255
- return MODELS.find((m) => m.id === "qwen/qwen3.6-plus");
256
- return MODELS.find((m) => m.id === "claude-sonnet-4-6");
257
- }
258
- export function usesOpenAICodexTransport(options) {
259
- return options?.provider === "openai" && Boolean(options.accountId);
260
- }
261
- export function getContextWindow(modelId, options) {
262
- const model = getModel(modelId);
263
- if (!model)
264
- return 200_000;
265
- if (usesOpenAICodexTransport(options) && model.codexContextWindow) {
266
- return model.codexContextWindow;
267
- }
268
- return model.contextWindow;
269
- }
270
- /**
271
- * The strongest thinking level the given model genuinely uses. Falls back to
272
- * `"high"` for unknown models since every provider we ship accepts it.
273
- */
274
- export function getMaxThinkingLevel(modelId) {
275
- return getModel(modelId)?.maxThinkingLevel ?? "high";
276
- }
277
- /**
278
- * Get the model to use for compaction summarization.
279
- * - Anthropic: always Sonnet 4.6
280
- * - OpenAI: cheapest (Codex Mini)
281
- * - Gemini: use the current model
282
- * - GLM: GLM-4.7 Flash (cheap alternative)
283
- * - Moonshot: use the current model (no cheap alternative)
284
- */
285
- export function getSummaryModel(provider, currentModelId) {
286
- if (provider === "anthropic") {
287
- return MODELS.find((m) => m.id === "claude-sonnet-4-6");
288
- }
289
- if (provider === "openai" || provider === "glm" || provider === "deepseek") {
290
- const low = getModelsForProvider(provider).find((m) => m.costTier === "low");
291
- if (low)
292
- return low;
293
- }
294
- // Moonshot or fallback: use current model
295
- return getModel(currentModelId) ?? getDefaultModel(provider);
296
- }
1
+ // Moved to @kenkaiiii/gg-core. This shim re-exports it so existing relative
2
+ // imports (`./model-registry.js`) and the `@kenkaiiii/ggcoder/models` subpath
3
+ // export keep resolving unchanged.
4
+ export * from "@kenkaiiii/gg-core/models";
297
5
  //# sourceMappingURL=model-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-registry.js","sourceRoot":"","sources":["../../src/core/model-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-registry.js","sourceRoot":"","sources":["../../src/core/model-registry.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8EAA8E;AAC9E,mCAAmC;AACnC,cAAc,2BAA2B,CAAC"}
@@ -1,4 +1,2 @@
1
- import type { OAuthCredentials, OAuthLoginCallbacks } from "./types.js";
2
- export declare function loginAnthropic(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials>;
3
- export declare function refreshAnthropicToken(refreshToken: string): Promise<OAuthCredentials>;
1
+ export { loginAnthropic, refreshAnthropicToken } from "@kenkaiiii/gg-core";
4
2
  //# sourceMappingURL=anthropic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/core/oauth/anthropic.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAkExE,wBAAsB,cAAc,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0B9F;AAqBD,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAU3F"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/core/oauth/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,97 +1,3 @@
1
- import crypto from "node:crypto";
2
- import { generatePKCE } from "./pkce.js";
3
- import { getClaudeCliUserAgent } from "../claude-code-version.js";
4
- const CLIENT_ID = atob("OWQxYzI1MGEtZTYxYi00NGQ5LTg4ZWQtNTk0NGQxOTYyZjVl");
5
- const AUTHORIZE_URL = "https://claude.ai/oauth/authorize";
6
- // Anthropic migrated OAuth from console.anthropic.com to platform.claude.com
7
- // in Claude Code v2.1.81+. Try the new endpoint first, fall back to the old one
8
- // so a transient outage on either edge doesn't wipe the user's credentials.
9
- const TOKEN_URLS = [
10
- "https://platform.claude.com/v1/oauth/token",
11
- "https://console.anthropic.com/v1/oauth/token",
12
- ];
13
- const REDIRECT_URI = "https://platform.claude.com/oauth/code/callback";
14
- const SCOPES = "org:create_api_key user:profile user:inference user:sessions:claude_code user:mcp_servers user:file_upload";
15
- async function postTokenRequest(body, label) {
16
- const encoded = JSON.stringify(body);
17
- // Claude Code identity. Anthropic's OAuth edge intermittently rejects
18
- // requests without a recognized claude-cli UA + oauth beta header. Resolve
19
- // the UA version dynamically so it tracks real Claude Code releases.
20
- const headers = {
21
- "Content-Type": "application/json",
22
- "User-Agent": await getClaudeCliUserAgent(),
23
- "anthropic-beta": "oauth-2025-04-20",
24
- };
25
- let lastError = null;
26
- for (const url of TOKEN_URLS) {
27
- let response;
28
- try {
29
- response = await fetch(url, { method: "POST", headers, body: encoded });
30
- }
31
- catch (err) {
32
- lastError = err instanceof Error ? err : new Error(String(err));
33
- continue;
34
- }
35
- if (response.ok) {
36
- return (await response.json());
37
- }
38
- const text = await response.text();
39
- // 4xx is an authoritative auth failure (invalid_grant, invalid_client, etc.)
40
- // — don't paper over it by trying another endpoint, the result will be the
41
- // same and the caller relies on this signal to wipe stale creds.
42
- if (response.status >= 400 && response.status < 500) {
43
- throw new Error(`Anthropic ${label} failed (${response.status}): ${text}`);
44
- }
45
- lastError = new Error(`Anthropic ${label} failed (${response.status}): ${text}`);
46
- }
47
- throw lastError ?? new Error(`Anthropic ${label} failed: all endpoints unreachable`);
48
- }
49
- function toCredentials(data) {
50
- return {
51
- accessToken: data.access_token,
52
- refreshToken: data.refresh_token,
53
- expiresAt: Date.now() + data.expires_in * 1000 - 5 * 60 * 1000,
54
- };
55
- }
56
- export async function loginAnthropic(callbacks) {
57
- const { verifier, challenge } = await generatePKCE();
58
- const state = crypto.randomBytes(16).toString("hex");
59
- const params = new URLSearchParams({
60
- code: "true",
61
- client_id: CLIENT_ID,
62
- response_type: "code",
63
- redirect_uri: REDIRECT_URI,
64
- scope: SCOPES,
65
- code_challenge: challenge,
66
- code_challenge_method: "S256",
67
- state,
68
- });
69
- const authUrl = `${AUTHORIZE_URL}?${params}`;
70
- callbacks.onOpenUrl(authUrl);
71
- const raw = await callbacks.onPromptCode("Paste the code from the browser (format: code#state):");
72
- const parts = raw.trim().split("#");
73
- if (parts.length !== 2 || !parts[0] || parts[1] !== state) {
74
- throw new Error("Invalid code or state mismatch. Please try again.");
75
- }
76
- return exchangeAnthropicCode(parts[0], parts[1], verifier);
77
- }
78
- async function exchangeAnthropicCode(code, state, verifier) {
79
- const data = await postTokenRequest({
80
- grant_type: "authorization_code",
81
- client_id: CLIENT_ID,
82
- code,
83
- state,
84
- redirect_uri: REDIRECT_URI,
85
- code_verifier: verifier,
86
- }, "token exchange");
87
- return toCredentials(data);
88
- }
89
- export async function refreshAnthropicToken(refreshToken) {
90
- const data = await postTokenRequest({
91
- grant_type: "refresh_token",
92
- client_id: CLIENT_ID,
93
- refresh_token: refreshToken,
94
- }, "token refresh");
95
- return toCredentials(data);
96
- }
1
+ // Moved to @kenkaiiii/gg-core.
2
+ export { loginAnthropic, refreshAnthropicToken } from "@kenkaiiii/gg-core";
97
3
  //# sourceMappingURL=anthropic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/core/oauth/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/core/oauth/anthropic.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,4 +1,2 @@
1
- import type { OAuthCredentials, OAuthLoginCallbacks } from "./types.js";
2
- export declare function loginGemini(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials>;
3
- export declare function refreshGeminiToken(refreshToken: string): Promise<OAuthCredentials>;
1
+ export { loginGemini, refreshGeminiToken } from "@kenkaiiii/gg-core";
4
2
  //# sourceMappingURL=gemini.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/core/oauth/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAsFxE,wBAAsB,WAAW,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2C3F;AAED,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAcxF"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/core/oauth/gemini.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}