@xopcai/xopcbot 0.1.5 → 0.2.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 (285) hide show
  1. package/README.md +6 -6
  2. package/README.zh-CN.md +6 -6
  3. package/dist/agent/__tests__/media-processing.test.d.ts +6 -0
  4. package/dist/agent/__tests__/media-processing.test.js +385 -0
  5. package/dist/agent/__tests__/media-processing.test.js.map +1 -0
  6. package/dist/agent/fallback/__tests__/index.test.js +16 -5
  7. package/dist/agent/fallback/__tests__/index.test.js.map +1 -1
  8. package/dist/agent/fallback/candidates.d.ts +2 -4
  9. package/dist/agent/fallback/candidates.js +19 -26
  10. package/dist/agent/fallback/candidates.js.map +1 -1
  11. package/dist/agent/helpers.d.ts +1 -0
  12. package/dist/agent/helpers.js.map +1 -1
  13. package/dist/agent/index.d.ts +6 -1
  14. package/dist/agent/index.js +10 -1
  15. package/dist/agent/index.js.map +1 -1
  16. package/dist/agent/models/compat.d.ts +35 -0
  17. package/dist/agent/models/compat.js +110 -0
  18. package/dist/agent/models/compat.js.map +1 -0
  19. package/dist/agent/models/fallback.d.ts +38 -0
  20. package/dist/agent/models/fallback.js +133 -0
  21. package/dist/agent/models/fallback.js.map +1 -0
  22. package/dist/agent/models/index.d.ts +10 -0
  23. package/dist/agent/models/index.js +11 -0
  24. package/dist/agent/models/index.js.map +1 -0
  25. package/dist/agent/{model-manager.d.ts → models/manager.d.ts} +2 -8
  26. package/dist/agent/{model-manager.js → models/manager.js} +38 -24
  27. package/dist/agent/models/manager.js.map +1 -0
  28. package/dist/agent/models/scan.d.ts +46 -0
  29. package/dist/agent/models/scan.js +177 -0
  30. package/dist/agent/models/scan.js.map +1 -0
  31. package/dist/agent/models/selection.d.ts +44 -0
  32. package/dist/agent/models/selection.js +141 -0
  33. package/dist/agent/models/selection.js.map +1 -0
  34. package/dist/agent/prompt/index.js +1 -1
  35. package/dist/agent/prompt/index.js.map +1 -1
  36. package/dist/agent/service.js +34 -16
  37. package/dist/agent/service.js.map +1 -1
  38. package/dist/agent/skills/__tests__/test-framework.test.js +15 -7
  39. package/dist/agent/skills/__tests__/test-framework.test.js.map +1 -1
  40. package/dist/agent/skills/config.d.ts +1 -1
  41. package/dist/agent/skills/config.js +2 -2
  42. package/dist/agent/skills/config.js.map +1 -1
  43. package/dist/agent/skills/index.js +15 -28
  44. package/dist/agent/skills/index.js.map +1 -1
  45. package/dist/agent/skills/installer.d.ts +1 -1
  46. package/dist/agent/skills/installer.js +1 -1
  47. package/dist/agent/skills/scanner.d.ts +1 -1
  48. package/dist/agent/skills/scanner.js +1 -1
  49. package/dist/agent/skills/test-framework.js +21 -20
  50. package/dist/agent/skills/test-framework.js.map +1 -1
  51. package/dist/agent/skills/types.d.ts +3 -3
  52. package/dist/agent/skills/types.js +1 -1
  53. package/dist/agent/skills/watcher.d.ts +1 -1
  54. package/dist/agent/skills/watcher.js +1 -1
  55. package/dist/agent/system-prompt.d.ts +67 -0
  56. package/dist/agent/system-prompt.js +351 -0
  57. package/dist/agent/system-prompt.js.map +1 -0
  58. package/dist/agent/tools/__tests__/send-media.test.d.ts +6 -0
  59. package/dist/agent/tools/__tests__/send-media.test.js +251 -0
  60. package/dist/agent/tools/__tests__/send-media.test.js.map +1 -0
  61. package/dist/agent/types.agent-defaults.d.ts +48 -0
  62. package/dist/agent/types.agent-defaults.js +5 -0
  63. package/dist/agent/types.agent-defaults.js.map +1 -0
  64. package/dist/agent/types.d.ts +14 -6
  65. package/dist/agent/types.js +5 -0
  66. package/dist/agent/types.js.map +1 -1
  67. package/dist/agent/workspace.d.ts +94 -0
  68. package/dist/agent/workspace.js +625 -0
  69. package/dist/agent/workspace.js.map +1 -0
  70. package/dist/auth/index.js +1 -1
  71. package/dist/auth/index.js.map +1 -1
  72. package/dist/auth/oauth/index.d.ts +1 -0
  73. package/dist/auth/oauth/index.js +1 -0
  74. package/dist/auth/oauth/index.js.map +1 -1
  75. package/dist/auth/oauth/kimi.d.ts +2 -1
  76. package/dist/auth/oauth/kimi.js +51 -48
  77. package/dist/auth/oauth/kimi.js.map +1 -1
  78. package/dist/auth/oauth/minimax-cn.d.ts +12 -0
  79. package/dist/auth/oauth/minimax-cn.js +111 -0
  80. package/dist/auth/oauth/minimax-cn.js.map +1 -0
  81. package/dist/auth/oauth/qwen.d.ts +5 -0
  82. package/dist/auth/oauth/qwen.js +54 -84
  83. package/dist/auth/oauth/qwen.js.map +1 -1
  84. package/dist/auth/profiles/index.d.ts +0 -2
  85. package/dist/auth/profiles/index.js +0 -2
  86. package/dist/auth/profiles/index.js.map +1 -1
  87. package/dist/auth/storage.js +7 -1
  88. package/dist/auth/storage.js.map +1 -1
  89. package/dist/channels/__tests__/media-integration.test.d.ts +6 -0
  90. package/dist/channels/__tests__/media-integration.test.js +398 -0
  91. package/dist/channels/__tests__/media-integration.test.js.map +1 -0
  92. package/dist/channels/__tests__/media.test.d.ts +6 -0
  93. package/dist/channels/__tests__/media.test.js +251 -0
  94. package/dist/channels/__tests__/media.test.js.map +1 -0
  95. package/dist/channels/access-control.d.ts +1 -1
  96. package/dist/channels/access-control.js +1 -1
  97. package/dist/channels/draft-stream.d.ts +1 -1
  98. package/dist/channels/draft-stream.js +1 -1
  99. package/dist/channels/format.d.ts +1 -1
  100. package/dist/channels/format.js +1 -1
  101. package/dist/channels/telegram/command-handler.js +15 -48
  102. package/dist/channels/telegram/command-handler.js.map +1 -1
  103. package/dist/channels/telegram/plugin.js +3 -2
  104. package/dist/channels/telegram/plugin.js.map +1 -1
  105. package/dist/channels/telegram/webhook.d.ts +1 -1
  106. package/dist/channels/telegram/webhook.js +1 -1
  107. package/dist/channels/types.d.ts +1 -1
  108. package/dist/channels/types.js +1 -1
  109. package/dist/channels/update-offset-store.d.ts +1 -1
  110. package/dist/channels/update-offset-store.js +1 -1
  111. package/dist/cli/commands/auth.js +8 -23
  112. package/dist/cli/commands/auth.js.map +1 -1
  113. package/dist/cli/commands/gateway.js +9 -1
  114. package/dist/cli/commands/gateway.js.map +1 -1
  115. package/dist/cli/commands/models.js +35 -29
  116. package/dist/cli/commands/models.js.map +1 -1
  117. package/dist/cli/commands/onboard.js +73 -58
  118. package/dist/cli/commands/onboard.js.map +1 -1
  119. package/dist/cli/commands/skills.js +6 -6
  120. package/dist/cli/commands/skills.js.map +1 -1
  121. package/dist/cli/index.js +0 -0
  122. package/dist/cli/templates.d.ts +2 -0
  123. package/dist/cli/templates.js +1 -1
  124. package/dist/cli/templates.js.map +1 -1
  125. package/dist/config/defaults.d.ts +19 -0
  126. package/dist/config/defaults.js +168 -0
  127. package/dist/config/defaults.js.map +1 -0
  128. package/dist/config/index.d.ts +5 -0
  129. package/dist/config/index.js +4 -0
  130. package/dist/config/index.js.map +1 -1
  131. package/dist/config/integration.d.ts +12 -0
  132. package/dist/config/integration.js +14 -0
  133. package/dist/config/integration.js.map +1 -0
  134. package/dist/config/models-json.d.ts +454 -0
  135. package/dist/config/models-json.js +323 -0
  136. package/dist/config/models-json.js.map +1 -0
  137. package/dist/config/paths.d.ts +2 -0
  138. package/dist/config/paths.js +4 -0
  139. package/dist/config/paths.js.map +1 -1
  140. package/dist/config/reload.d.ts +1 -1
  141. package/dist/config/reload.js +3 -3
  142. package/dist/config/reload.js.map +1 -1
  143. package/dist/config/resolve-config-value.d.ts +36 -0
  144. package/dist/config/resolve-config-value.js +218 -0
  145. package/dist/config/resolve-config-value.js.map +1 -0
  146. package/dist/config/rules.js +3 -2
  147. package/dist/config/rules.js.map +1 -1
  148. package/dist/config/schema.d.ts +17 -884
  149. package/dist/config/schema.js +36 -312
  150. package/dist/config/schema.js.map +1 -1
  151. package/dist/config/types.models.d.ts +54 -0
  152. package/dist/config/types.models.js +2 -0
  153. package/dist/config/types.models.js.map +1 -0
  154. package/dist/cron/validation.d.ts +4 -4
  155. package/dist/gateway/hono/app.js +230 -78
  156. package/dist/gateway/hono/app.js.map +1 -1
  157. package/dist/gateway/hono/oauth-async.d.ts +14 -0
  158. package/dist/gateway/hono/oauth-async.js +285 -0
  159. package/dist/gateway/hono/oauth-async.js.map +1 -0
  160. package/dist/gateway/hono/oauth.d.ts +9 -0
  161. package/dist/gateway/hono/oauth.js +157 -0
  162. package/dist/gateway/hono/oauth.js.map +1 -0
  163. package/dist/gateway/hono/sse.js +5 -2
  164. package/dist/gateway/hono/sse.js.map +1 -1
  165. package/dist/gateway/service.d.ts +6 -2
  166. package/dist/gateway/service.js +20 -6
  167. package/dist/gateway/service.js.map +1 -1
  168. package/dist/gateway/static/root/assets/flow-BqIEBwW6.js +2 -0
  169. package/dist/gateway/static/root/assets/flow-BqIEBwW6.js.map +1 -0
  170. package/dist/gateway/static/root/assets/main-Br2tw-87.js +5168 -0
  171. package/dist/gateway/static/root/assets/main-Br2tw-87.js.map +1 -0
  172. package/dist/gateway/static/root/assets/main-DwlbPf8Z.css +1 -0
  173. package/dist/gateway/static/root/index.html +2 -2
  174. package/dist/plugins/index.d.ts +0 -2
  175. package/dist/plugins/index.js +0 -2
  176. package/dist/plugins/index.js.map +1 -1
  177. package/dist/plugins/types.d.ts +0 -2
  178. package/dist/plugins/types.js +0 -2
  179. package/dist/plugins/types.js.map +1 -1
  180. package/dist/providers/index.d.ts +50 -22
  181. package/dist/providers/index.js +276 -50
  182. package/dist/providers/index.js.map +1 -1
  183. package/dist/providers/model-registry.d.ts +84 -0
  184. package/dist/providers/model-registry.js +385 -0
  185. package/dist/providers/model-registry.js.map +1 -0
  186. package/dist/types/providers.d.ts +2 -63
  187. package/dist/types/providers.js +1 -1
  188. package/dist/utils/__tests__/frontmatter.test.js +4 -3
  189. package/dist/utils/__tests__/frontmatter.test.js.map +1 -1
  190. package/dist/utils/diagnostic-events.d.ts +230 -0
  191. package/dist/utils/diagnostic-events.js +189 -0
  192. package/dist/utils/diagnostic-events.js.map +1 -0
  193. package/dist/utils/frontmatter.d.ts +0 -1
  194. package/dist/utils/frontmatter.js +13 -77
  195. package/dist/utils/frontmatter.js.map +1 -1
  196. package/dist/utils/log-stream.d.ts +95 -0
  197. package/dist/utils/log-stream.js +229 -0
  198. package/dist/utils/log-stream.js.map +1 -0
  199. package/dist/utils/logger.d.ts +5 -0
  200. package/dist/utils/logger.js +25 -0
  201. package/dist/utils/logger.js.map +1 -1
  202. package/dist/utils/redact.d.ts +73 -0
  203. package/dist/utils/redact.js +245 -0
  204. package/dist/utils/redact.js.map +1 -0
  205. package/package.json +6 -4
  206. package/skills/find-skills/SKILL.md +0 -9
  207. package/dist/__tests__/core.test.d.ts +0 -1
  208. package/dist/__tests__/core.test.js +0 -72
  209. package/dist/__tests__/core.test.js.map +0 -1
  210. package/dist/agent/model-manager.js.map +0 -1
  211. package/dist/cli/commands/configure.d.ts +0 -1
  212. package/dist/cli/commands/configure.js +0 -171
  213. package/dist/cli/commands/configure.js.map +0 -1
  214. package/dist/cli/commands/gateway-daemon.d.ts +0 -1
  215. package/dist/cli/commands/gateway-daemon.js +0 -141
  216. package/dist/cli/commands/gateway-daemon.js.map +0 -1
  217. package/dist/config/__tests__/diff.test.d.ts +0 -1
  218. package/dist/config/__tests__/diff.test.js +0 -192
  219. package/dist/config/__tests__/diff.test.js.map +0 -1
  220. package/dist/config/__tests__/loader.test.d.ts +0 -1
  221. package/dist/config/__tests__/loader.test.js +0 -356
  222. package/dist/config/__tests__/loader.test.js.map +0 -1
  223. package/dist/config/__tests__/paths.test.d.ts +0 -1
  224. package/dist/config/__tests__/paths.test.js +0 -192
  225. package/dist/config/__tests__/paths.test.js.map +0 -1
  226. package/dist/config/__tests__/reload.test.d.ts +0 -1
  227. package/dist/config/__tests__/reload.test.js +0 -374
  228. package/dist/config/__tests__/reload.test.js.map +0 -1
  229. package/dist/config/__tests__/rules.test.d.ts +0 -1
  230. package/dist/config/__tests__/rules.test.js +0 -204
  231. package/dist/config/__tests__/rules.test.js.map +0 -1
  232. package/dist/config/__tests__/schema.test.d.ts +0 -1
  233. package/dist/config/__tests__/schema.test.js +0 -672
  234. package/dist/config/__tests__/schema.test.js.map +0 -1
  235. package/dist/daemon/background-start.d.ts +0 -33
  236. package/dist/daemon/background-start.js +0 -89
  237. package/dist/daemon/background-start.js.map +0 -1
  238. package/dist/daemon/gateway-manager.d.ts +0 -87
  239. package/dist/daemon/gateway-manager.js +0 -324
  240. package/dist/daemon/gateway-manager.js.map +0 -1
  241. package/dist/daemon/index.d.ts +0 -5
  242. package/dist/daemon/index.js +0 -6
  243. package/dist/daemon/index.js.map +0 -1
  244. package/dist/gateway/static/root/assets/main-DevbZW9K.js +0 -2227
  245. package/dist/gateway/static/root/assets/main-DevbZW9K.js.map +0 -1
  246. package/dist/gateway/static/root/assets/main-DxZg1Nmz.css +0 -1
  247. package/dist/providers/__tests__/registry.test.d.ts +0 -1
  248. package/dist/providers/__tests__/registry.test.js +0 -110
  249. package/dist/providers/__tests__/registry.test.js.map +0 -1
  250. package/dist/providers/api-strategies.d.ts +0 -15
  251. package/dist/providers/api-strategies.js +0 -96
  252. package/dist/providers/api-strategies.js.map +0 -1
  253. package/dist/providers/auto-discovery.d.ts +0 -39
  254. package/dist/providers/auto-discovery.js +0 -189
  255. package/dist/providers/auto-discovery.js.map +0 -1
  256. package/dist/providers/config.d.ts +0 -25
  257. package/dist/providers/config.js +0 -42
  258. package/dist/providers/config.js.map +0 -1
  259. package/dist/providers/model-catalog.d.ts +0 -92
  260. package/dist/providers/model-catalog.js +0 -998
  261. package/dist/providers/model-catalog.js.map +0 -1
  262. package/dist/providers/models-dev-data.d.ts +0 -11
  263. package/dist/providers/models-dev-data.js +0 -1035
  264. package/dist/providers/models-dev-data.js.map +0 -1
  265. package/dist/providers/models-dev.d.ts +0 -34
  266. package/dist/providers/models-dev.js +0 -33
  267. package/dist/providers/models-dev.js.map +0 -1
  268. package/dist/providers/pi-ai.d.ts +0 -62
  269. package/dist/providers/pi-ai.js +0 -221
  270. package/dist/providers/pi-ai.js.map +0 -1
  271. package/dist/providers/provider-catalog.d.ts +0 -91
  272. package/dist/providers/provider-catalog.js +0 -791
  273. package/dist/providers/provider-catalog.js.map +0 -1
  274. package/dist/providers/registry.d.ts +0 -135
  275. package/dist/providers/registry.js +0 -475
  276. package/dist/providers/registry.js.map +0 -1
  277. package/dist/providers/types.d.ts +0 -95
  278. package/dist/providers/types.js +0 -7
  279. package/dist/providers/types.js.map +0 -1
  280. package/dist/session/chat-manager.d.ts +0 -49
  281. package/dist/session/chat-manager.js +0 -167
  282. package/dist/session/chat-manager.js.map +0 -1
  283. package/dist/session/chat-types.d.ts +0 -53
  284. package/dist/session/chat-types.js +0 -63
  285. package/dist/session/chat-types.js.map +0 -1
@@ -2,7 +2,8 @@
2
2
  * Kimi (Moonshot AI) OAuth Provider
3
3
  *
4
4
  * OAuth 2.0 authentication for Kimi Platform.
5
- * https://platform.moonshot.cn/
5
+ * Uses Device Code Flow per Kimi's official implementation.
6
+ * https://auth.kimi.com for OAuth endpoints.
6
7
  */
7
8
  import type { OAuthProviderInterface } from './types.js';
8
9
  export declare const kimiOAuthProvider: OAuthProviderInterface;
@@ -2,57 +2,71 @@
2
2
  * Kimi (Moonshot AI) OAuth Provider
3
3
  *
4
4
  * OAuth 2.0 authentication for Kimi Platform.
5
- * https://platform.moonshot.cn/
5
+ * Uses Device Code Flow per Kimi's official implementation.
6
+ * https://auth.kimi.com for OAuth endpoints.
6
7
  */
7
- const KIMI_OAUTH_BASE_URL = 'https://platform.moonshot.cn';
8
- const KIMI_OAUTH_AUTHORIZE_URL = `${KIMI_OAUTH_BASE_URL}/oauth/authorize`;
9
- const KIMI_OAUTH_TOKEN_URL = `${KIMI_OAUTH_BASE_URL}/oauth/token`;
10
- const KIMI_OAUTH_CLIENT_ID = 'your_client_id'; // Users need to register their own app
8
+ const KIMI_OAUTH_BASE_URL = 'https://auth.kimi.com';
9
+ const KIMI_OAUTH_DEVICE_URL = `${KIMI_OAUTH_BASE_URL}/api/oauth/device_authorization`;
10
+ const KIMI_OAUTH_TOKEN_URL = `${KIMI_OAUTH_BASE_URL}/api/oauth/token`;
11
+ const KIMI_OAUTH_CLIENT_ID = '17e5f671-d194-4dfb-9706-5516cb48c098';
11
12
  export const kimiOAuthProvider = {
12
13
  id: 'kimi',
13
14
  name: 'Kimi (月之暗面)',
14
15
  usesCallbackServer: true,
15
16
  async login(callbacks) {
16
- // Kimi uses authorization code flow with PKCE
17
- const codeVerifier = generateCodeVerifier();
18
- const codeChallenge = await generateCodeChallenge(codeVerifier);
19
- const authUrl = new URL(KIMI_OAUTH_AUTHORIZE_URL);
20
- authUrl.searchParams.set('client_id', KIMI_OAUTH_CLIENT_ID);
21
- authUrl.searchParams.set('redirect_uri', 'http://localhost:3000/callback');
22
- authUrl.searchParams.set('response_type', 'code');
23
- authUrl.searchParams.set('scope', 'api');
24
- authUrl.searchParams.set('code_challenge', codeChallenge);
25
- authUrl.searchParams.set('code_challenge_method', 'S256');
26
- callbacks.onAuth({
27
- url: authUrl.toString(),
28
- instructions: 'Please authorize the application and enter the code shown.',
29
- });
30
- const code = await callbacks.onPrompt({
31
- message: 'Enter the authorization code:',
32
- });
33
- const tokenResponse = await fetch(KIMI_OAUTH_TOKEN_URL, {
17
+ // Kimi uses Device Code Flow (not Authorization Code)
18
+ // First, request device code
19
+ const deviceResponse = await fetch(KIMI_OAUTH_DEVICE_URL, {
34
20
  method: 'POST',
35
21
  headers: {
36
22
  'Content-Type': 'application/x-www-form-urlencoded',
37
23
  },
38
24
  body: new URLSearchParams({
39
- grant_type: 'authorization_code',
40
25
  client_id: KIMI_OAUTH_CLIENT_ID,
41
- code,
42
- redirect_uri: 'http://localhost:3000/callback',
43
- code_verifier: codeVerifier,
26
+ scope: 'kimi-code',
44
27
  }),
45
28
  });
46
- if (!tokenResponse.ok) {
47
- const error = await tokenResponse.text();
48
- throw new Error(`Token exchange failed: ${error}`);
29
+ if (!deviceResponse.ok) {
30
+ const error = await deviceResponse.text();
31
+ throw new Error(`Device code request failed: ${error}`);
49
32
  }
50
- const tokenData = await tokenResponse.json();
51
- return {
52
- access: tokenData.access_token,
53
- refresh: tokenData.refresh_token,
54
- expires: Date.now() + tokenData.expires_in * 1000,
55
- };
33
+ const deviceData = await deviceResponse.json();
34
+ // Prompt user to auth
35
+ callbacks.onAuth({
36
+ url: deviceData.verification_uri_complete || deviceData.verification_uri,
37
+ instructions: `Please visit ${deviceData.verification_uri} and enter code: ${deviceData.user_code}`,
38
+ });
39
+ // Poll for token
40
+ const expiresAt = Date.now() + deviceData.expires_in * 1000;
41
+ const pollInterval = (deviceData.interval || 5) * 1000;
42
+ while (Date.now() < expiresAt) {
43
+ await new Promise(resolve => setTimeout(resolve, pollInterval));
44
+ const tokenResponse = await fetch(KIMI_OAUTH_TOKEN_URL, {
45
+ method: 'POST',
46
+ headers: {
47
+ 'Content-Type': 'application/x-www-form-urlencoded',
48
+ },
49
+ body: new URLSearchParams({
50
+ grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
51
+ client_id: KIMI_OAUTH_CLIENT_ID,
52
+ device_code: deviceData.device_code,
53
+ }),
54
+ });
55
+ if (tokenResponse.ok) {
56
+ const tokenData = await tokenResponse.json();
57
+ return {
58
+ access: tokenData.access_token,
59
+ refresh: tokenData.refresh_token,
60
+ expires: Date.now() + tokenData.expires_in * 1000,
61
+ };
62
+ }
63
+ const errorData = await tokenResponse.json();
64
+ if (errorData.error === 'expired_token') {
65
+ throw new Error('Device code expired. Please try again.');
66
+ }
67
+ // authorization_pending - continue polling
68
+ }
69
+ throw new Error('Device code expired. Please try again.');
56
70
  },
57
71
  async refreshToken(credentials) {
58
72
  if (!credentials.refresh) {
@@ -85,18 +99,7 @@ export const kimiOAuthProvider = {
85
99
  return credentials.access;
86
100
  },
87
101
  };
88
- function generateCodeVerifier() {
89
- const array = new Uint8Array(32);
90
- crypto.getRandomValues(array);
91
- return base64UrlEncode(array);
92
- }
93
- async function generateCodeChallenge(verifier) {
94
- const encoder = new TextEncoder();
95
- const data = encoder.encode(verifier);
96
- const digest = await crypto.subtle.digest('SHA-256', data);
97
- return base64UrlEncode(new Uint8Array(digest));
98
- }
99
- function base64UrlEncode(buffer) {
102
+ function _base64UrlEncode(buffer) {
100
103
  let str = '';
101
104
  buffer.forEach(b => str += String.fromCharCode(b));
102
105
  return btoa(str).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
@@ -1 +1 @@
1
- {"version":3,"file":"kimi.js","sourceRoot":"","sources":["../../../src/auth/oauth/kimi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kimi.js","sourceRoot":"","sources":["../../../src/auth/oauth/kimi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * MiniMax CN (国内版) OAuth Provider
3
+ *
4
+ * OAuth 2.0 authentication for MiniMax 国内版 Platform.
5
+ * https://platform.minimax.chat/ (国内版)
6
+ *
7
+ * 注意:国内版和国际版的 OAuth 端点不同
8
+ * - 国际版: platform.minimaxi.com
9
+ * - 国内版: platform.minimax.chat
10
+ */
11
+ import type { OAuthProviderInterface } from './types.js';
12
+ export declare const minimaxCnOAuthProvider: OAuthProviderInterface;
@@ -0,0 +1,111 @@
1
+ /**
2
+ * MiniMax CN (国内版) OAuth Provider
3
+ *
4
+ * OAuth 2.0 authentication for MiniMax 国内版 Platform.
5
+ * https://platform.minimax.chat/ (国内版)
6
+ *
7
+ * 注意:国内版和国际版的 OAuth 端点不同
8
+ * - 国际版: platform.minimaxi.com
9
+ * - 国内版: platform.minimax.chat
10
+ */
11
+ const MINIMAX_CN_OAUTH_BASE_URL = 'https://platform.minimax.chat';
12
+ const MINIMAX_CN_OAUTH_AUTHORIZE_URL = `${MINIMAX_CN_OAUTH_BASE_URL}/oauth/authorize`;
13
+ const MINIMAX_CN_OAUTH_TOKEN_URL = `${MINIMAX_CN_OAUTH_BASE_URL}/oauth/token`;
14
+ const MINIMAX_CN_OAUTH_CLIENT_ID = 'your_client_id'; // Users need to register their own app
15
+ export const minimaxCnOAuthProvider = {
16
+ id: 'minimax-cn',
17
+ name: 'MiniMax 国内版',
18
+ usesCallbackServer: true,
19
+ async login(callbacks) {
20
+ // MiniMax CN uses authorization code flow
21
+ const codeVerifier = generateCodeVerifier();
22
+ const codeChallenge = await generateCodeChallenge(codeVerifier);
23
+ const authUrl = new URL(MINIMAX_CN_OAUTH_AUTHORIZE_URL);
24
+ authUrl.searchParams.set('client_id', MINIMAX_CN_OAUTH_CLIENT_ID);
25
+ authUrl.searchParams.set('redirect_uri', 'http://localhost:3000/callback');
26
+ authUrl.searchParams.set('response_type', 'code');
27
+ authUrl.searchParams.set('scope', 'api');
28
+ authUrl.searchParams.set('code_challenge', codeChallenge);
29
+ authUrl.searchParams.set('code_challenge_method', 'S256');
30
+ // Show user the auth URL
31
+ callbacks.onAuth({
32
+ url: authUrl.toString(),
33
+ instructions: '请在浏览器中授权应用,然后输入返回的授权码。',
34
+ });
35
+ // Prompt for the authorization code
36
+ const code = await callbacks.onPrompt({
37
+ message: '请输入授权码:',
38
+ });
39
+ // Exchange code for token
40
+ const tokenResponse = await fetch(MINIMAX_CN_OAUTH_TOKEN_URL, {
41
+ method: 'POST',
42
+ headers: {
43
+ 'Content-Type': 'application/x-www-form-urlencoded',
44
+ },
45
+ body: new URLSearchParams({
46
+ grant_type: 'authorization_code',
47
+ client_id: MINIMAX_CN_OAUTH_CLIENT_ID,
48
+ code,
49
+ redirect_uri: 'http://localhost:3000/callback',
50
+ code_verifier: codeVerifier,
51
+ }),
52
+ });
53
+ if (!tokenResponse.ok) {
54
+ const error = await tokenResponse.text();
55
+ throw new Error(`Token exchange failed: ${error}`);
56
+ }
57
+ const tokenData = await tokenResponse.json();
58
+ return {
59
+ access: tokenData.access_token,
60
+ refresh: tokenData.refresh_token,
61
+ expires: Date.now() + tokenData.expires_in * 1000,
62
+ };
63
+ },
64
+ async refreshToken(credentials) {
65
+ if (!credentials.refresh) {
66
+ throw new Error('MiniMax CN OAuth refresh token missing. Re-authenticate.');
67
+ }
68
+ const response = await fetch(MINIMAX_CN_OAUTH_TOKEN_URL, {
69
+ method: 'POST',
70
+ headers: {
71
+ 'Content-Type': 'application/x-www-form-urlencoded',
72
+ },
73
+ body: new URLSearchParams({
74
+ grant_type: 'refresh_token',
75
+ client_id: MINIMAX_CN_OAUTH_CLIENT_ID,
76
+ refresh_token: credentials.refresh,
77
+ }),
78
+ });
79
+ if (!response.ok) {
80
+ const text = await response.text();
81
+ throw new Error(`MiniMax CN OAuth refresh failed: ${text}`);
82
+ }
83
+ const payload = await response.json();
84
+ return {
85
+ ...credentials,
86
+ access: payload.access_token,
87
+ refresh: payload.refresh_token || credentials.refresh,
88
+ expires: Date.now() + payload.expires_in * 1000,
89
+ };
90
+ },
91
+ getApiKey(credentials) {
92
+ return credentials.access;
93
+ },
94
+ };
95
+ function generateCodeVerifier() {
96
+ const array = new Uint8Array(32);
97
+ crypto.getRandomValues(array);
98
+ return base64UrlEncode(array);
99
+ }
100
+ async function generateCodeChallenge(verifier) {
101
+ const encoder = new TextEncoder();
102
+ const data = encoder.encode(verifier);
103
+ const digest = await crypto.subtle.digest('SHA-256', data);
104
+ return base64UrlEncode(new Uint8Array(digest));
105
+ }
106
+ function base64UrlEncode(buffer) {
107
+ let str = '';
108
+ buffer.forEach(b => str += String.fromCharCode(b));
109
+ return btoa(str).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
110
+ }
111
+ //# sourceMappingURL=minimax-cn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimax-cn.js","sourceRoot":"","sources":["../../../src/auth/oauth/minimax-cn.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,11 @@
2
2
  * Qwen Portal OAuth Provider
3
3
  *
4
4
  * OAuth 2.0 authentication for Qwen (DashScope).
5
+ *
6
+ * NOTE: Qwen now uses browser-based OAuth. Users need to:
7
+ * 1. Install Qwen Client: pip install qwen-cli
8
+ * 2. Run 'qwen' to authenticate in browser
9
+ * 3. Credentials are stored at ~/.qwen/oauth_creds.json
5
10
  */
6
11
  import type { OAuthProviderInterface } from './types.js';
7
12
  export declare const qwenPortalOAuthProvider: OAuthProviderInterface;
@@ -2,110 +2,80 @@
2
2
  * Qwen Portal OAuth Provider
3
3
  *
4
4
  * OAuth 2.0 authentication for Qwen (DashScope).
5
+ *
6
+ * NOTE: Qwen now uses browser-based OAuth. Users need to:
7
+ * 1. Install Qwen Client: pip install qwen-cli
8
+ * 2. Run 'qwen' to authenticate in browser
9
+ * 3. Credentials are stored at ~/.qwen/oauth_creds.json
5
10
  */
6
- const QWEN_OAUTH_BASE_URL = 'https://chat.qwen.ai';
7
- const QWEN_OAUTH_TOKEN_ENDPOINT = `${QWEN_OAUTH_BASE_URL}/api/v1/oauth2/token`;
8
- const QWEN_OAUTH_CLIENT_ID = 'f0304373b74a44d2b584a3fb70ca9e56';
11
+ import { readFileSync, existsSync } from 'fs';
12
+ import { join } from 'path';
13
+ import { homedir } from 'os';
14
+ const QWEN_CREDENTIALS_PATH = join(homedir(), '.qwen', 'oauth_creds.json');
9
15
  export const qwenPortalOAuthProvider = {
10
16
  id: 'qwen',
11
17
  name: 'Qwen (通义千问)',
12
18
  usesCallbackServer: false,
13
19
  async login(callbacks) {
14
- // Qwen uses device code flow
15
- const deviceCodeUrl = `${QWEN_OAUTH_BASE_URL}/api/v1/oauth2/device/code`;
16
- const deviceResponse = await fetch(deviceCodeUrl, {
17
- method: 'POST',
18
- headers: {
19
- 'Content-Type': 'application/json',
20
- Accept: 'application/json',
21
- },
22
- body: JSON.stringify({
23
- client_id: QWEN_OAUTH_CLIENT_ID,
24
- scope: 'user:email',
25
- }),
26
- });
27
- if (!deviceResponse.ok) {
28
- throw new Error(`Qwen device code request failed: ${deviceResponse.statusText}`);
29
- }
30
- const deviceData = await deviceResponse.json();
31
- // Show user the verification URL and code
20
+ // Qwen now uses browser-based OAuth
21
+ // User needs to install qwen-cli and run 'qwen' to authenticate
32
22
  callbacks.onAuth({
33
- url: deviceData.verification_uri,
34
- instructions: `Code: ${deviceData.user_code}`,
23
+ url: 'https://qwen.ai/',
24
+ instructions: `Please install Qwen CLI and authenticate:
25
+
26
+ 1. Install: pip install qwen-cli (or brew install qwen)
27
+ 2. Run: qwen
28
+ 3. Follow the browser login flow
29
+
30
+ Credentials will be saved to: ${QWEN_CREDENTIALS_PATH}`,
35
31
  });
36
- // Poll for token
37
- const tokenUrl = `${QWEN_OAUTH_BASE_URL}/api/v1/oauth2/token`;
38
- const expiresAt = Date.now() + deviceData.expires_in * 1000;
39
- const intervalMs = deviceData.interval * 1000;
40
- while (Date.now() < expiresAt) {
41
- await new Promise(r => setTimeout(r, intervalMs));
42
- const tokenResponse = await fetch(tokenUrl, {
43
- method: 'POST',
44
- headers: {
45
- 'Content-Type': 'application/x-www-form-urlencoded',
46
- Accept: 'application/json',
47
- },
48
- body: new URLSearchParams({
49
- grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
50
- device_code: deviceData.device_code,
51
- client_id: QWEN_OAUTH_CLIENT_ID,
52
- }),
53
- });
54
- if (!tokenResponse.ok) {
55
- const error = await tokenResponse.json();
56
- if (error.error === 'authorization_pending') {
57
- callbacks.onProgress?.('Waiting for authorization...');
58
- continue;
32
+ // Wait and check for credentials file
33
+ const maxAttempts = 30;
34
+ const interval = 2000;
35
+ for (let i = 0; i < maxAttempts; i++) {
36
+ await new Promise(r => setTimeout(r, interval));
37
+ if (existsSync(QWEN_CREDENTIALS_PATH)) {
38
+ try {
39
+ const credsData = JSON.parse(readFileSync(QWEN_CREDENTIALS_PATH, 'utf-8'));
40
+ // Qwen stores: access_token, refresh_token, expires_at, scope, token_type
41
+ return {
42
+ access: credsData.access_token,
43
+ refresh: credsData.refresh_token,
44
+ expires: credsData.expires_at * 1000, // Unix timestamp to ms
45
+ };
59
46
  }
60
- if (error.error === 'slow_down') {
61
- callbacks.onProgress?.('Slowing down polling...');
62
- await new Promise(r => setTimeout(r, 2000));
63
- continue;
47
+ catch (e) {
48
+ throw new Error(`Failed to read Qwen credentials: ${e}`);
64
49
  }
65
- throw new Error(`Token request failed: ${error.error}`);
66
50
  }
67
- const tokenData = await tokenResponse.json();
68
- return {
69
- access: tokenData.access_token,
70
- refresh: tokenData.refresh_token,
71
- expires: Date.now() + tokenData.expires_in * 1000,
72
- };
51
+ callbacks.onProgress?.(`Waiting for authentication... (${i + 1}/${maxAttempts})`);
73
52
  }
74
- throw new Error('Device code expired. Please try again.');
53
+ throw new Error('Authentication timeout. Please run "qwen" and complete the login flow.');
75
54
  },
76
55
  async refreshToken(credentials) {
77
56
  if (!credentials.refresh) {
78
57
  throw new Error('Qwen OAuth refresh token missing. Re-authenticate.');
79
58
  }
80
- const response = await fetch(QWEN_OAUTH_TOKEN_ENDPOINT, {
81
- method: 'POST',
82
- headers: {
83
- 'Content-Type': 'application/x-www-form-urlencoded',
84
- Accept: 'application/json',
85
- },
86
- body: new URLSearchParams({
87
- grant_type: 'refresh_token',
88
- refresh_token: credentials.refresh,
89
- client_id: QWEN_OAUTH_CLIENT_ID,
90
- }),
91
- });
92
- if (!response.ok) {
93
- const text = await response.text();
94
- if (response.status === 400) {
95
- throw new Error('Qwen OAuth refresh token expired or invalid. Re-authenticate.');
59
+ // Qwen tokens are stored in file, so we need to read the latest
60
+ if (!existsSync(QWEN_CREDENTIALS_PATH)) {
61
+ throw new Error('Qwen credentials file not found. Re-authenticate with "qwen" command.');
62
+ }
63
+ try {
64
+ const credsData = JSON.parse(readFileSync(QWEN_CREDENTIALS_PATH, 'utf-8'));
65
+ // Check if token is still valid
66
+ if (credsData.expires_at * 1000 > Date.now()) {
67
+ return {
68
+ access: credsData.access_token,
69
+ refresh: credsData.refresh_token,
70
+ expires: credsData.expires_at * 1000,
71
+ };
96
72
  }
97
- throw new Error(`Qwen OAuth refresh failed: ${text || response.statusText}`);
73
+ // Token expired, need re-auth
74
+ throw new Error('Qwen OAuth token expired. Please run "qwen" to re-authenticate.');
98
75
  }
99
- const payload = await response.json();
100
- if (!payload.access_token || !payload.expires_in) {
101
- throw new Error('Qwen OAuth refresh response missing access token.');
76
+ catch (e) {
77
+ throw new Error(`Failed to refresh Qwen credentials: ${e}`);
102
78
  }
103
- return {
104
- ...credentials,
105
- access: payload.access_token,
106
- refresh: payload.refresh_token || credentials.refresh,
107
- expires: Date.now() + payload.expires_in * 1000,
108
- };
109
79
  },
110
80
  getApiKey(credentials) {
111
81
  return credentials.access;
@@ -1 +1 @@
1
- {"version":3,"file":"qwen.js","sourceRoot":"","sources":["../../../src/auth/oauth/qwen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qwen.js","sourceRoot":"","sources":["../../../src/auth/oauth/qwen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC9D,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,aAAa;IACnB,kBAAkB,EAAE,KAAK;IAEzB,KAAK,CAAC,KAAK,CAAC,SAA8B;QACzC,oCAAoC;QACpC,gEAAgE;QAChE,SAAS,CAAC,MAAM,CAAC;YAChB,GAAG,EAAE,kBAAkB;YACvB,YAAY,EAAE;;;;;;gCAMe,qBAAqB,EAAE;SACpD,CAAC,CAAC;QAEH,sCAAsC;QACtC,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEhD,IAAI,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACJ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC;oBAE3E,0EAA0E;oBAC1E,OAAO;wBACN,MAAM,EAAE,SAAS,CAAC,YAAY;wBAC9B,OAAO,EAAE,SAAS,CAAC,aAAa;wBAChC,OAAO,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,EAAE,uBAAuB;qBAC7D,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;gBAC1D,CAAC;YACF,CAAC;YAED,SAAS,CAAC,UAAU,EAAE,CAAC,kCAAkC,CAAC,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAA6B;QAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACvE,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC;YAE3E,gCAAgC;YAChC,IAAI,SAAS,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC9C,OAAO;oBACN,MAAM,EAAE,SAAS,CAAC,YAAY;oBAC9B,OAAO,EAAE,SAAS,CAAC,aAAa;oBAChC,OAAO,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI;iBACpC,CAAC;YACH,CAAC;YAED,8BAA8B;YAC9B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;IAED,SAAS,CAAC,WAA6B;QACtC,OAAO,WAAW,CAAC,MAAM,CAAC;IAC3B,CAAC;CACD,CAAC"}
@@ -5,8 +5,6 @@
5
5
  * - API keys (static)
6
6
  * - Tokens (static bearer-style)
7
7
  * - OAuth (refreshable credentials)
8
- *
9
- * Based on openclaw's auth-profiles architecture.
10
8
  */
11
9
  export * from './types.js';
12
10
  export * from './store.js';
@@ -5,8 +5,6 @@
5
5
  * - API keys (static)
6
6
  * - Tokens (static bearer-style)
7
7
  * - OAuth (refreshable credentials)
8
- *
9
- * Based on openclaw's auth-profiles architecture.
10
8
  */
11
9
  export * from './types.js';
12
10
  export * from './store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/profiles/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrE,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/profiles/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrE,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -6,7 +6,13 @@
6
6
  */
7
7
  import { existsSync, mkdirSync, readFileSync, writeFileSync, chmodSync } from 'fs';
8
8
  import { dirname, join } from 'path';
9
- import { resolveConfigValue } from '../providers/registry.js';
9
+ /**
10
+ * Resolve config value (handles ${ENV_VAR} syntax)
11
+ */
12
+ function resolveConfigValue(value) {
13
+ const match = /^\$\{([A-Z0-9_]+)\}$/.exec(value);
14
+ return match ? process.env[match[1]] ?? value : value;
15
+ }
10
16
  export class AuthStorage {
11
17
  filePath;
12
18
  cache = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/auth/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAuB9D,MAAM,OAAO,WAAW;IACf,QAAQ,CAAS;IACjB,KAAK,GAA2B,IAAI,GAAG,EAAE,CAAC;IAC1C,OAAO,CAAS;IAChB,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAClD,cAAc,GAAwC,IAAI,GAAG,EAAE,CAAC;IAExE,YAAY,OAA4B;QACvC,wBAAwB;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAEO,IAAI;QACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,OAAO,GAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;IAEO,IAAI;QACX,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,QAAgC;QACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAgB,EAAE,MAAc;QAChD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,QAAgB;QACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC/B,0CAA0C;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,UAAU,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,6BAA6B;YAC7B,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;YACtE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,2BAA2B;YAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,GAAG,CAAC;QAClB,CAAC;QAED,6BAA6B;QAC7B,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;QACtE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,wEAAwE;YACxE,OAAO,KAAK,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,+BAA+B;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;YAC3B,gCAAgC;YAChC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACJ,MAAM,WAAW,GAAqB;wBACrC,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;wBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;qBAC3B,CAAC;oBACF,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBAErE,4BAA4B;oBAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;wBAC1B,GAAG,KAAK;wBACR,MAAM,EAAE,cAAc,CAAC,MAAM;wBAC7B,OAAO,EAAE,cAAc,CAAC,OAAO;wBAC/B,OAAO,EAAE,cAAc,CAAC,OAAO;wBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACnC,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,EAAE,CAAC;oBAEZ,OAAO,cAAc,CAAC,MAAM,CAAC;gBAC9B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,qCAAqC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;oBACzE,OAAO,SAAS,CAAC;gBAClB,CAAC;YACF,CAAC;YACD,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,oBAAoB;QACpB,OAAO,aAAa,CAAC,SAAS,CAAC;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;SAC3B,CAAC,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,QAAQ,CAAC,QAAgB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC,GAAG,CAAC;QAClB,CAAC;QAED,6BAA6B;QAC7B,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;QACpE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,iCAAiC;IACjC,SAAS,CAAC,QAAgB,EAAE,GAAW,EAAE,QAAiC;QACzE,sCAAsC;QACtC,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACxB,QAAQ;YACR,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,WAAW;YAChB,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED,+BAA+B;IAC/B,QAAQ,CAAC,QAAgB,EAAE,KAAa,EAAE,QAAiC;QAC1E,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACxB,QAAQ;YACR,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,aAAa;YAClB,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,QAAgB,EAAE,WAA6B;QAClE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACxB,QAAQ;YACR,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,QAAgB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO;gBACN,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;gBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;aAC3B,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,QAAgB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,SAA8B;QAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAgB;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,4CAA4C;IAC5C,OAAO,CAAC,QAAgB;QACvB,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;QACtE,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;QACtE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,mCAAmC;IACnC,sBAAsB;QACrB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,aAAa;QACb,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,qCAAqC;QACrC,MAAM,eAAe,GAAG;YACvB,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,SAAS;YACT,YAAY;YACZ,UAAU;YACV,MAAM;YACN,UAAU;YACV,MAAM;YACN,YAAY;YACZ,KAAK;YACL,UAAU;YACV,SAAS;YACT,QAAQ;YACR,kBAAkB;YAClB,WAAW;YACX,cAAc;YACd,mBAAmB;SACnB,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;YACtE,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;YACtE,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,yCAAyC;IACzC,iBAAiB,CAAC,QAAgB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,KAAK,EAAE,IAAI,CAAC;IACpB,CAAC;IAED,iCAAiC;IACjC,MAAM,CAAC,QAAgB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,qBAAqB;IACrB,KAAK;QACJ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED,mCAAmC;IACnC,MAAM;QACL,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED,4CAA4C;IAC5C,MAAM;QACL,MAAM,MAAM,GAA0E,EAAE,CAAC;QACzF,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,CAAC,QAAQ,CAAC,GAAG;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM;gBACrC,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO;aAChC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,6BAA6B;IAC7B,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/auth/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Media Integration Tests
3
+ *
4
+ * End-to-end tests for media processing pipeline.
5
+ */
6
+ export {};