@round2ai/r2-cli 1.0.2 → 1.0.4

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 (161) hide show
  1. package/README.md +159 -75
  2. package/dist/README.md +221 -0
  3. package/dist/package.json +55 -0
  4. package/dist/r2-cli.js +28 -0
  5. package/package.json +26 -22
  6. package/dist/api.d.ts +0 -45
  7. package/dist/api.d.ts.map +0 -1
  8. package/dist/api.js +0 -90
  9. package/dist/api.js.map +0 -1
  10. package/dist/auth.d.ts +0 -35
  11. package/dist/auth.d.ts.map +0 -1
  12. package/dist/auth.js +0 -240
  13. package/dist/auth.js.map +0 -1
  14. package/dist/commands/ai/chat.d.ts +0 -9
  15. package/dist/commands/ai/chat.d.ts.map +0 -1
  16. package/dist/commands/ai/chat.js +0 -16
  17. package/dist/commands/ai/chat.js.map +0 -1
  18. package/dist/commands/ai/skills.d.ts +0 -9
  19. package/dist/commands/ai/skills.d.ts.map +0 -1
  20. package/dist/commands/ai/skills.js +0 -16
  21. package/dist/commands/ai/skills.js.map +0 -1
  22. package/dist/commands/auth/login.d.ts +0 -24
  23. package/dist/commands/auth/login.d.ts.map +0 -1
  24. package/dist/commands/auth/login.js +0 -288
  25. package/dist/commands/auth/login.js.map +0 -1
  26. package/dist/commands/auth/logout.d.ts +0 -16
  27. package/dist/commands/auth/logout.d.ts.map +0 -1
  28. package/dist/commands/auth/logout.js +0 -49
  29. package/dist/commands/auth/logout.js.map +0 -1
  30. package/dist/commands/auth/status.d.ts +0 -28
  31. package/dist/commands/auth/status.d.ts.map +0 -1
  32. package/dist/commands/auth/status.js +0 -92
  33. package/dist/commands/auth/status.js.map +0 -1
  34. package/dist/commands/base.d.ts +0 -107
  35. package/dist/commands/base.d.ts.map +0 -1
  36. package/dist/commands/base.js +0 -153
  37. package/dist/commands/base.js.map +0 -1
  38. package/dist/commands/business/pricing.d.ts +0 -9
  39. package/dist/commands/business/pricing.d.ts.map +0 -1
  40. package/dist/commands/business/pricing.js +0 -16
  41. package/dist/commands/business/pricing.js.map +0 -1
  42. package/dist/commands/business/report.d.ts +0 -9
  43. package/dist/commands/business/report.d.ts.map +0 -1
  44. package/dist/commands/business/report.js +0 -16
  45. package/dist/commands/business/report.js.map +0 -1
  46. package/dist/commands/inventory/risk.d.ts +0 -9
  47. package/dist/commands/inventory/risk.d.ts.map +0 -1
  48. package/dist/commands/inventory/risk.js +0 -16
  49. package/dist/commands/inventory/risk.js.map +0 -1
  50. package/dist/config.d.ts +0 -54
  51. package/dist/config.d.ts.map +0 -1
  52. package/dist/config.js +0 -111
  53. package/dist/config.js.map +0 -1
  54. package/dist/index.d.ts +0 -7
  55. package/dist/index.d.ts.map +0 -1
  56. package/dist/index.js +0 -186
  57. package/dist/index.js.map +0 -1
  58. package/dist/query/executor.d.ts +0 -138
  59. package/dist/query/executor.d.ts.map +0 -1
  60. package/dist/query/executor.js +0 -232
  61. package/dist/query/executor.js.map +0 -1
  62. package/dist/query/types.d.ts +0 -116
  63. package/dist/query/types.d.ts.map +0 -1
  64. package/dist/query/types.js +0 -15
  65. package/dist/query/types.js.map +0 -1
  66. package/dist/query/utils.d.ts +0 -99
  67. package/dist/query/utils.d.ts.map +0 -1
  68. package/dist/query/utils.js +0 -151
  69. package/dist/query/utils.js.map +0 -1
  70. package/dist/services/ServiceContainer.d.ts +0 -110
  71. package/dist/services/ServiceContainer.d.ts.map +0 -1
  72. package/dist/services/ServiceContainer.js +0 -242
  73. package/dist/services/ServiceContainer.js.map +0 -1
  74. package/dist/services/api/client.d.ts +0 -88
  75. package/dist/services/api/client.d.ts.map +0 -1
  76. package/dist/services/api/client.js +0 -188
  77. package/dist/services/api/client.js.map +0 -1
  78. package/dist/services/api/types.d.ts +0 -233
  79. package/dist/services/api/types.d.ts.map +0 -1
  80. package/dist/services/api/types.js +0 -83
  81. package/dist/services/api/types.js.map +0 -1
  82. package/dist/services/auth/provider.d.ts +0 -73
  83. package/dist/services/auth/provider.d.ts.map +0 -1
  84. package/dist/services/auth/provider.js +0 -339
  85. package/dist/services/auth/provider.js.map +0 -1
  86. package/dist/services/auth/session.d.ts +0 -73
  87. package/dist/services/auth/session.d.ts.map +0 -1
  88. package/dist/services/auth/session.js +0 -200
  89. package/dist/services/auth/session.js.map +0 -1
  90. package/dist/services/business/demand.d.ts +0 -70
  91. package/dist/services/business/demand.d.ts.map +0 -1
  92. package/dist/services/business/demand.js +0 -240
  93. package/dist/services/business/demand.js.map +0 -1
  94. package/dist/services/business/fulfillment.d.ts +0 -122
  95. package/dist/services/business/fulfillment.d.ts.map +0 -1
  96. package/dist/services/business/fulfillment.js +0 -267
  97. package/dist/services/business/fulfillment.js.map +0 -1
  98. package/dist/services/business/inventory.d.ts +0 -54
  99. package/dist/services/business/inventory.d.ts.map +0 -1
  100. package/dist/services/business/inventory.js +0 -245
  101. package/dist/services/business/inventory.js.map +0 -1
  102. package/dist/services/business/pricing.d.ts +0 -41
  103. package/dist/services/business/pricing.d.ts.map +0 -1
  104. package/dist/services/business/pricing.js +0 -133
  105. package/dist/services/business/pricing.js.map +0 -1
  106. package/dist/services/business/report.d.ts +0 -74
  107. package/dist/services/business/report.d.ts.map +0 -1
  108. package/dist/services/business/report.js +0 -380
  109. package/dist/services/business/report.js.map +0 -1
  110. package/dist/services/config/manager.d.ts +0 -105
  111. package/dist/services/config/manager.d.ts.map +0 -1
  112. package/dist/services/config/manager.js +0 -324
  113. package/dist/services/config/manager.js.map +0 -1
  114. package/dist/services/config/types.d.ts +0 -128
  115. package/dist/services/config/types.d.ts.map +0 -1
  116. package/dist/services/config/types.js +0 -209
  117. package/dist/services/config/types.js.map +0 -1
  118. package/dist/services/index.d.ts +0 -17
  119. package/dist/services/index.d.ts.map +0 -1
  120. package/dist/services/index.js +0 -44
  121. package/dist/services/index.js.map +0 -1
  122. package/dist/services/storage/index.d.ts +0 -63
  123. package/dist/services/storage/index.d.ts.map +0 -1
  124. package/dist/services/storage/index.js +0 -136
  125. package/dist/services/storage/index.js.map +0 -1
  126. package/dist/types/api.d.ts +0 -58
  127. package/dist/types/api.d.ts.map +0 -1
  128. package/dist/types/api.js +0 -5
  129. package/dist/types/api.js.map +0 -1
  130. package/dist/types/auth.d.ts +0 -59
  131. package/dist/types/auth.d.ts.map +0 -1
  132. package/dist/types/auth.js +0 -11
  133. package/dist/types/auth.js.map +0 -1
  134. package/dist/types/business.d.ts +0 -201
  135. package/dist/types/business.d.ts.map +0 -1
  136. package/dist/types/business.js +0 -5
  137. package/dist/types/business.js.map +0 -1
  138. package/dist/types/command.d.ts +0 -106
  139. package/dist/types/command.d.ts.map +0 -1
  140. package/dist/types/command.js +0 -5
  141. package/dist/types/command.js.map +0 -1
  142. package/dist/types/config.d.ts +0 -66
  143. package/dist/types/config.d.ts.map +0 -1
  144. package/dist/types/config.js +0 -5
  145. package/dist/types/config.js.map +0 -1
  146. package/dist/utils/async.d.ts +0 -79
  147. package/dist/utils/async.d.ts.map +0 -1
  148. package/dist/utils/async.js +0 -179
  149. package/dist/utils/async.js.map +0 -1
  150. package/dist/utils/format.d.ts +0 -90
  151. package/dist/utils/format.d.ts.map +0 -1
  152. package/dist/utils/format.js +0 -227
  153. package/dist/utils/format.js.map +0 -1
  154. package/dist/utils/logger.d.ts +0 -136
  155. package/dist/utils/logger.d.ts.map +0 -1
  156. package/dist/utils/logger.js +0 -249
  157. package/dist/utils/logger.js.map +0 -1
  158. package/dist/utils/validation.d.ts +0 -100
  159. package/dist/utils/validation.d.ts.map +0 -1
  160. package/dist/utils/validation.js +0 -334
  161. package/dist/utils/validation.js.map +0 -1
package/package.json CHANGED
@@ -1,21 +1,16 @@
1
1
  {
2
2
  "name": "@round2ai/r2-cli",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "R2-CLI,向 AI 开放二手潮奢交易全链路能力",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
5
+ "main": "dist/r2-cli.js",
7
6
  "type": "module",
8
7
  "bin": {
9
- "r2": "./dist/index.js"
8
+ "r2-cli": "./dist/r2-cli.js"
10
9
  },
11
- "files": [
12
- "dist",
13
- "package.json",
14
- "README.md"
15
- ],
16
10
  "scripts": {
17
- "build": "tsc",
18
- "dev": "nodemon --exec ts-node src/index.ts"
11
+ "build": "cross-env NODE_ENV=development node scripts/build.js",
12
+ "build:prod": "cross-env NODE_ENV=production node scripts/build.js",
13
+ "dev": "node scripts/dev.js"
19
14
  },
20
15
  "keywords": [
21
16
  "round2ai",
@@ -26,26 +21,35 @@
26
21
  "luxury",
27
22
  "second-hand"
28
23
  ],
24
+ "files": [
25
+ "dist",
26
+ ".claude/skills/r2-cli-0.1.0",
27
+ "package.json",
28
+ "README.md"
29
+ ],
29
30
  "author": "Round2AI - PURESNAKE Team",
30
31
  "license": "MIT",
32
+ "engines": {
33
+ "node": ">=18.0.0"
34
+ },
31
35
  "repository": "https://github.com/Round2AI/r2-cli",
32
36
  "dependencies": {
37
+ "@inquirer/prompts": "^8.4.2",
33
38
  "chalk": "^5.3.0",
34
39
  "commander": "^14.0.3",
35
40
  "figlet": "^1.11.0",
36
- "fs-extra": "^11.3.4",
37
- "inquirer": "^9.2.19",
38
- "mammoth": "^1.12.0",
39
- "open": "^11.0.0",
40
- "qrcode-terminal": "^0.12.0"
41
+ "ink": "^7.0.0",
42
+ "ora": "^9.3.0",
43
+ "qrcode": "^1.5.4",
44
+ "react": "^19.2.5"
41
45
  },
42
46
  "devDependencies": {
43
- "@types/fs-extra": "^11.0.4",
44
- "@types/inquirer": "^9.0.7",
45
- "@types/node": "^25.5.0",
46
- "@types/open": "^6.1.0",
47
- "@types/qrcode-terminal": "^0.12.2",
48
- "ts-node": "^10.9.2",
47
+ "@types/node": "^25.5.2",
48
+ "@types/qrcode": "^1.5.6",
49
+ "@types/react": "^19.2.14",
50
+ "cross-env": "^10.1.0",
51
+ "dotenv": "^17.4.2",
52
+ "esbuild": "^0.28.0",
49
53
  "typescript": "^6.0.2"
50
54
  }
51
55
  }
package/dist/api.d.ts DELETED
@@ -1,45 +0,0 @@
1
- export interface ApiResponse<T = unknown> {
2
- code: number;
3
- message: string;
4
- data: T;
5
- }
6
- /**
7
- * API 客户端
8
- */
9
- export declare class ApiClient {
10
- private baseUrl;
11
- constructor(baseUrl?: string);
12
- /**
13
- * 获取基础 URL
14
- */
15
- getBaseUrl(): Promise<string>;
16
- /**
17
- * 获取请求头
18
- */
19
- private getHeaders;
20
- /**
21
- * 发送请求
22
- */
23
- private request;
24
- /**
25
- * GET 请求
26
- */
27
- get<T>(endpoint: string): Promise<ApiResponse<T>>;
28
- /**
29
- * POST 请求
30
- */
31
- post<T>(endpoint: string, data?: unknown): Promise<ApiResponse<T>>;
32
- /**
33
- * PUT 请求
34
- */
35
- put<T>(endpoint: string, data?: unknown): Promise<ApiResponse<T>>;
36
- /**
37
- * DELETE 请求
38
- */
39
- delete<T>(endpoint: string): Promise<ApiResponse<T>>;
40
- }
41
- /**
42
- * 创建 API 客户端实例
43
- */
44
- export declare const apiClient: ApiClient;
45
- //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM;IAI5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAKnC;;OAEG;YACW,UAAU;IAaxB;;OAEG;YACW,OAAO;IA8BrB;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIvD;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAOxE;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAOvE;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAG3D;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC"}
package/dist/api.js DELETED
@@ -1,90 +0,0 @@
1
- import { getAccessToken, readConfig } from "./config.js";
2
- /**
3
- * API 客户端
4
- */
5
- export class ApiClient {
6
- baseUrl;
7
- constructor(baseUrl) {
8
- this.baseUrl = baseUrl || process.env.R2_API_BASE_URL || "https://api.round2ai.com";
9
- }
10
- /**
11
- * 获取基础 URL
12
- */
13
- async getBaseUrl() {
14
- const config = await readConfig();
15
- return config.api?.baseUrl || this.baseUrl;
16
- }
17
- /**
18
- * 获取请求头
19
- */
20
- async getHeaders() {
21
- const headers = {
22
- "Content-Type": "application/json",
23
- };
24
- const token = await getAccessToken();
25
- if (token) {
26
- headers["Authorization"] = `Bearer ${token}`;
27
- }
28
- return headers;
29
- }
30
- /**
31
- * 发送请求
32
- */
33
- async request(endpoint, options = {}) {
34
- const baseUrl = await this.getBaseUrl();
35
- const url = `${baseUrl}${endpoint}`;
36
- const headers = await this.getHeaders();
37
- try {
38
- const response = await fetch(url, {
39
- ...options,
40
- headers: { ...headers, ...options.headers },
41
- });
42
- const result = await response.json();
43
- if (!response.ok || result.code !== 0) {
44
- throw new Error(result.message || "请求失败");
45
- }
46
- return result;
47
- }
48
- catch (error) {
49
- if (error instanceof Error) {
50
- throw error;
51
- }
52
- throw new Error("未知错误");
53
- }
54
- }
55
- /**
56
- * GET 请求
57
- */
58
- async get(endpoint) {
59
- return this.request(endpoint, { method: "GET" });
60
- }
61
- /**
62
- * POST 请求
63
- */
64
- async post(endpoint, data) {
65
- return this.request(endpoint, {
66
- method: "POST",
67
- body: JSON.stringify(data),
68
- });
69
- }
70
- /**
71
- * PUT 请求
72
- */
73
- async put(endpoint, data) {
74
- return this.request(endpoint, {
75
- method: "PUT",
76
- body: JSON.stringify(data),
77
- });
78
- }
79
- /**
80
- * DELETE 请求
81
- */
82
- async delete(endpoint) {
83
- return this.request(endpoint, { method: "DELETE" });
84
- }
85
- }
86
- /**
87
- * 创建 API 客户端实例
88
- */
89
- export const apiClient = new ApiClient();
90
- //# sourceMappingURL=api.js.map
package/dist/api.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts DELETED
@@ -1,35 +0,0 @@
1
- export interface QrCodeResponse {
2
- qrCodeUrl: string;
3
- qrCodeData: string;
4
- expireIn: number;
5
- loginId: string;
6
- }
7
- export interface LoginStatusResponse {
8
- status: "pending" | "scanned" | "confirmed" | "expired" | "canceled";
9
- userId?: string;
10
- username?: string;
11
- accessToken?: string;
12
- refreshToken?: string;
13
- expiresIn?: number;
14
- }
15
- /**
16
- * 生成登录二维码
17
- */
18
- export declare function generateQrCode(): Promise<QrCodeResponse>;
19
- /**
20
- * 检查登录状态
21
- */
22
- export declare function checkLoginStatus(loginId: string): Promise<LoginStatusResponse>;
23
- /**
24
- * 执行扫码登录
25
- */
26
- export declare function performQrCodeLogin(): Promise<void>;
27
- /**
28
- * 退出登录
29
- */
30
- export declare function logout(): Promise<void>;
31
- /**
32
- * 获取当前登录用户信息
33
- */
34
- export declare function getCurrentUser(): Promise<void>;
35
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,CAe9D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAkB9B;AAwDD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8DxD;AAED;;GAEG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB5C;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAkCpD"}
package/dist/auth.js DELETED
@@ -1,240 +0,0 @@
1
- import chalk from "chalk";
2
- import open from "open";
3
- import inquirer from "inquirer";
4
- import qrcode from "qrcode-terminal";
5
- import { apiClient } from "./api.js";
6
- import { clearAuthInfo, getAuthStatus, getUserInfo, saveAuthInfo, } from "./config.js";
7
- /**
8
- * 生成登录二维码
9
- */
10
- export async function generateQrCode() {
11
- try {
12
- const response = await apiClient.post("/auth/qrcode");
13
- return response.data;
14
- }
15
- catch (error) {
16
- // 模拟响应(实际使用时移除)
17
- const timestamp = Date.now();
18
- console.log(chalk.yellow("⚠️ 使用模拟模式(请配置正确的 API 地址)"));
19
- return {
20
- qrCodeUrl: `https://round2ai.com/auth/qr/${timestamp}`,
21
- qrCodeData: `r2://auth/login/${timestamp}`,
22
- expireIn: 300,
23
- loginId: `login-${timestamp}`,
24
- };
25
- }
26
- }
27
- /**
28
- * 检查登录状态
29
- */
30
- export async function checkLoginStatus(loginId) {
31
- try {
32
- const response = await apiClient.get(`/auth/qrcode/${loginId}/status`);
33
- return response.data;
34
- }
35
- catch (error) {
36
- // 模拟响应(实际使用时移除)
37
- const mockData = {
38
- status: "confirmed",
39
- userId: "user-123456",
40
- username: "test_user",
41
- accessToken: "mock-access-token-" + Date.now(),
42
- refreshToken: "mock-refresh-token-" + Date.now(),
43
- expiresIn: 7200,
44
- };
45
- return mockData;
46
- }
47
- }
48
- /**
49
- * 显示二维码
50
- */
51
- function displayQrCode(qrCodeUrl, qrCodeData) {
52
- console.log(chalk.blue("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"));
53
- console.log(chalk.cyan(" 📱 扫码登录 Round2AI"));
54
- console.log(chalk.blue("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"));
55
- // 使用 qrcode-terminal 在终端显示二维码
56
- qrcode.generate(qrCodeData, { small: true });
57
- console.log(chalk.yellow("\n🔗 登录链接:"));
58
- console.log(chalk.cyan(` ${qrCodeUrl}\n`));
59
- }
60
- /**
61
- * 轮询登录状态
62
- */
63
- async function pollLoginStatus(loginId, onStatusChange) {
64
- const maxAttempts = 60; // 最多轮询 60 次(5 分钟)
65
- const interval = 5000; // 每 5 秒轮询一次
66
- for (let attempt = 0; attempt < maxAttempts; attempt++) {
67
- const status = await checkLoginStatus(loginId);
68
- if (onStatusChange && status.status !== "pending") {
69
- onStatusChange(status.status);
70
- }
71
- switch (status.status) {
72
- case "confirmed":
73
- return status;
74
- case "expired":
75
- throw new Error("二维码已过期,请重新获取");
76
- case "canceled":
77
- throw new Error("用户取消登录");
78
- case "scanned":
79
- console.log(chalk.yellow("⏳ 已扫码,请在手机上确认登录..."));
80
- break;
81
- case "pending":
82
- console.log(chalk.gray("⏳ 等待扫码..."));
83
- break;
84
- }
85
- // 等待下次轮询
86
- await new Promise((resolve) => setTimeout(resolve, interval));
87
- }
88
- throw new Error("登录超时,请重试");
89
- }
90
- /**
91
- * 执行扫码登录
92
- */
93
- export async function performQrCodeLogin() {
94
- // 检查是否已登录
95
- const isLoggedIn = await getAuthStatus();
96
- if (isLoggedIn) {
97
- const userInfo = await getUserInfo();
98
- if (userInfo) {
99
- console.log(chalk.green("✅ 您已登录"));
100
- console.log(chalk.cyan(` 用户: ${userInfo.username}`));
101
- return;
102
- }
103
- }
104
- try {
105
- // 生成二维码
106
- const qrCode = await generateQrCode();
107
- displayQrCode(qrCode.qrCodeUrl, qrCode.qrCodeData);
108
- // 询问是否自动打开浏览器
109
- console.log(chalk.yellow("💡 提示: 您可以手动访问上方链接,或按回车自动打开浏览器"));
110
- // 轮询登录状态
111
- const result = await pollLoginStatus(qrCode.loginId, (status) => {
112
- if (status === "scanned") {
113
- console.log(chalk.yellow("📱 已扫描二维码,请在手机上确认登录"));
114
- }
115
- });
116
- // 保存登录信息
117
- if (result.accessToken && result.refreshToken && result.userId && result.username) {
118
- await saveAuthInfo({
119
- accessToken: result.accessToken,
120
- refreshToken: result.refreshToken,
121
- userId: result.userId,
122
- username: result.username,
123
- expiresIn: result.expiresIn || 7200,
124
- });
125
- console.log(chalk.green("\n✅ 登录成功!"));
126
- console.log(chalk.cyan(` 欢迎,${result.username}!\n`));
127
- }
128
- else {
129
- throw new Error("登录信息不完整");
130
- }
131
- }
132
- catch (error) {
133
- console.error(chalk.red(`\n❌ 登录失败: ${error instanceof Error ? error.message : "未知错误"}`));
134
- // 提供模拟登录选项
135
- console.log(chalk.blue("\n💡 是否使用模拟登录演示功能?"));
136
- const { mockLogin } = await inquirer.prompt([
137
- {
138
- type: "confirm",
139
- name: "mockLogin",
140
- message: "使用模拟登录(仅演示)",
141
- default: true,
142
- },
143
- ]);
144
- if (mockLogin) {
145
- await mockQrCodeLogin();
146
- }
147
- else {
148
- throw error;
149
- }
150
- }
151
- }
152
- /**
153
- * 退出登录
154
- */
155
- export async function logout() {
156
- const userInfo = await getUserInfo();
157
- if (!userInfo) {
158
- console.log(chalk.yellow("⚠️ 您尚未登录"));
159
- return;
160
- }
161
- try {
162
- // 调用后端登出接口
163
- await apiClient.post("/auth/logout");
164
- }
165
- catch (error) {
166
- // 即使后端调用失败也清除本地缓存
167
- console.log(chalk.yellow("⚠️ 后端登出请求失败,仅清除本地缓存"));
168
- }
169
- await clearAuthInfo();
170
- console.log(chalk.green("✅ 已退出登录"));
171
- }
172
- /**
173
- * 获取当前登录用户信息
174
- */
175
- export async function getCurrentUser() {
176
- const isLoggedIn = await getAuthStatus();
177
- if (!isLoggedIn) {
178
- console.log(chalk.yellow("⚠️ 您尚未登录,请使用 'r2 auth login' 登录"));
179
- return;
180
- }
181
- const userInfo = await getUserInfo();
182
- if (!userInfo) {
183
- console.log(chalk.yellow("⚠️ 无法获取用户信息,请重新登录"));
184
- return;
185
- }
186
- try {
187
- // 调用后端获取用户详细信息
188
- const response = await apiClient.get("/auth/user");
189
- const userData = response.data;
190
- console.log(chalk.green("✅ 已登录"));
191
- console.log(chalk.cyan(` 用户名: ${userInfo.username}`));
192
- console.log(chalk.cyan(` 用户ID: ${userInfo.userId}`));
193
- if (userData.email) {
194
- console.log(chalk.cyan(` 邮箱: ${userData.email}`));
195
- }
196
- if (userData.phone) {
197
- console.log(chalk.cyan(` 手机: ${userData.phone}`));
198
- }
199
- }
200
- catch (error) {
201
- // 后端请求失败时显示缓存信息
202
- console.log(chalk.green("✅ 已登录"));
203
- console.log(chalk.cyan(` 用户名: ${userInfo.username}`));
204
- console.log(chalk.cyan(` 用户ID: ${userInfo.userId}`));
205
- console.log(chalk.gray(" (离线模式)"));
206
- }
207
- }
208
- /**
209
- * 模拟扫码登录
210
- */
211
- async function mockQrCodeLogin() {
212
- console.log(chalk.blue("\n📱 模拟扫码登录演示"));
213
- console.log(chalk.blue("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"));
214
- // 生成模拟的二维码数据
215
- const mockQrCodeData = `r2://auth/mock/${Date.now()}`;
216
- const mockQrCodeUrl = `https://round2ai.com/auth/demo/${Date.now()}`;
217
- // 使用 qrcode-terminal 显示真实二维码
218
- qrcode.generate(mockQrCodeData, { small: true });
219
- console.log(chalk.yellow("\n🔗 演示链接:"));
220
- console.log(chalk.cyan(` ${mockQrCodeUrl}`));
221
- console.log(chalk.gray(" (此为演示二维码,扫码无实际效果)\n"));
222
- // 模拟等待扫码和确认
223
- console.log(chalk.yellow("⏳ 模拟扫码中..."));
224
- await new Promise((resolve) => setTimeout(resolve, 1500));
225
- console.log(chalk.yellow("⏳ 模拟手机确认中..."));
226
- await new Promise((resolve) => setTimeout(resolve, 1500));
227
- // 模拟登录成功
228
- const mockUserInfo = {
229
- accessToken: "mock-access-token-" + Date.now(),
230
- refreshToken: "mock-refresh-token-" + Date.now(),
231
- userId: "user-123456",
232
- username: "demo_user",
233
- expiresIn: 7200,
234
- };
235
- // 保存登录信息
236
- await saveAuthInfo(mockUserInfo);
237
- console.log(chalk.green("\n✅ 模拟登录成功!"));
238
- console.log(chalk.cyan(` 欢迎,${mockUserInfo.username}!\n`));
239
- }
240
- //# sourceMappingURL=auth.js.map
package/dist/auth.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC;AAkBrB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAiB,cAAc,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACvD,OAAO;YACL,SAAS,EAAE,gCAAgC,SAAS,EAAE;YACtD,UAAU,EAAE,mBAAmB,SAAS,EAAE;YAC1C,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,SAAS,SAAS,EAAE;SAC9B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAClC,gBAAgB,OAAO,SAAS,CACjC,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB;QAChB,MAAM,QAAQ,GAAwB;YACpC,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE;YAC9C,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE;YAChD,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,SAAiB,EAAE,UAAkB;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAEtE,8BAA8B;IAC9B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,OAAe,EACf,cAAyC;IAEzC,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,kBAAkB;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,YAAY;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,cAAc,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClD,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,WAAW;gBACd,OAAO,MAAM,CAAC;YAChB,KAAK,SAAS;gBACZ,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;YAClC,KAAK,UAAU;gBACb,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5B,KAAK,SAAS;gBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAChD,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBACrC,MAAM;QACV,CAAC;QAED,SAAS;QACT,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,UAAU;IACV,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;IACzC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,QAAQ;QACR,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QACtC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAEnD,cAAc;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAE5D,SAAS;QACT,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YAC9D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClF,MAAM,YAAY,CAAC;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;aACpC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEzF,WAAW;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,eAAe,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,WAAW;QACX,MAAM,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,aAAa,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;IACzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,eAAe;QACf,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAmC,YAAY,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAEtE,aAAa;IACb,MAAM,cAAc,GAAG,kBAAkB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACtD,MAAM,aAAa,GAAG,kCAAkC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAErE,6BAA6B;IAC7B,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAElD,YAAY;IACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACxC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1D,SAAS;IACT,MAAM,YAAY,GAAG;QACnB,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE;QAC9C,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE;QAChD,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,IAAI;KAChB,CAAC;IAEF,SAAS;IACT,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * AI 聊天命令 - 简化版
3
- */
4
- import { Command } from "commander";
5
- /**
6
- * 创建聊天命令
7
- */
8
- export declare function createChatCommand(container: any): Command;
9
- //# sourceMappingURL=chat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/commands/ai/chat.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CASzD"}
@@ -1,16 +0,0 @@
1
- /**
2
- * AI 聊天命令 - 简化版
3
- */
4
- import { Command } from "commander";
5
- /**
6
- * 创建聊天命令
7
- */
8
- export function createChatCommand(container) {
9
- const command = new Command("chat");
10
- command.description("与 AI 助手聊天,获取经营建议");
11
- command.action(() => {
12
- console.log("AI 聊天功能开发中...");
13
- });
14
- return command;
15
- }
16
- //# sourceMappingURL=chat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/commands/ai/chat.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAc;IAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAExC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * AI 技能管理命令 - 简化版
3
- */
4
- import { Command } from "commander";
5
- /**
6
- * 创建技能管理命令
7
- */
8
- export declare function createSkillsCommand(container: any): Command;
9
- //# sourceMappingURL=skills.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/commands/ai/skills.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAS3D"}
@@ -1,16 +0,0 @@
1
- /**
2
- * AI 技能管理命令 - 简化版
3
- */
4
- import { Command } from "commander";
5
- /**
6
- * 创建技能管理命令
7
- */
8
- export function createSkillsCommand(container) {
9
- const command = new Command("skills");
10
- command.description("AI Agent 技能管理");
11
- command.action(() => {
12
- console.log("技能管理功能开发中...");
13
- });
14
- return command;
15
- }
16
- //# sourceMappingURL=skills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/commands/ai/skills.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAc;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAErC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * 扫码登录命令实现
3
- *
4
- * 参考 claude-code 的查询执行模式,实现完整的扫码登录流程:
5
- * 1. 生成二维码
6
- * 2. 显示二维码(使用终端 ASCII 艺术或链接)
7
- * 3. 轮询查询状态
8
- * 4. 等待用户扫码确认
9
- * 5. 保存登录凭证
10
- */
11
- import type { Command } from "commander";
12
- /**
13
- * 创建登录命令
14
- */
15
- export declare function createLoginCommand(): Command;
16
- /**
17
- * 创建登出命令
18
- */
19
- export declare function createLogoutCommand(): Command;
20
- /**
21
- * 创建状态命令
22
- */
23
- export declare function createStatusCommand(): Command;
24
- //# sourceMappingURL=login.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkQzC;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CA6B5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAkB7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAkB7C"}