helixlife-expert-cli 0.5.9 → 0.6.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.
- package/README.md +5 -5
- package/cli/dist/core/api/client.d.ts +1 -1
- package/cli/dist/core/api/client.d.ts.map +1 -1
- package/cli/dist/core/api/client.js +39 -35
- package/cli/dist/core/api/client.js.map +1 -1
- package/cli/dist/core/api/response.d.ts.map +1 -1
- package/cli/dist/core/api/response.js +12 -8
- package/cli/dist/core/api/response.js.map +1 -1
- package/cli/dist/core/env-config.d.ts +2 -2
- package/cli/dist/core/env-config.d.ts.map +1 -1
- package/cli/dist/core/env-config.js +44 -23
- package/cli/dist/core/env-config.js.map +1 -1
- package/cli/dist/core/index.d.ts +1 -1
- package/cli/dist/core/index.d.ts.map +1 -1
- package/cli/dist/core/index.js +1 -1
- package/cli/dist/core/index.js.map +1 -1
- package/cli/dist/core/token/index.js +1 -1
- package/cli/dist/core/token/index.js.map +1 -1
- package/cli/dist/core/types/config.d.ts.map +1 -1
- package/cli/dist/core/types/config.js +3 -2
- package/cli/dist/core/types/config.js.map +1 -1
- package/cli/dist/modules/analysis/api.d.ts.map +1 -1
- package/cli/dist/modules/analysis/api.js +7 -43
- package/cli/dist/modules/analysis/api.js.map +1 -1
- package/cli/dist/modules/meta/api.js +1 -1
- package/cli/dist/modules/meta/api.js.map +1 -1
- package/package.json +1 -1
- package/cli/dist/core/auth/index.d.ts +0 -35
- package/cli/dist/core/auth/index.d.ts.map +0 -1
- package/cli/dist/core/auth/index.js +0 -150
- package/cli/dist/core/auth/index.js.map +0 -1
- package/cli/dist/modules/auth/index.d.ts +0 -3
- package/cli/dist/modules/auth/index.d.ts.map +0 -1
- package/cli/dist/modules/auth/index.js +0 -76
- package/cli/dist/modules/auth/index.js.map +0 -1
- package/cli/dist/modules/proposal/artifacts.d.ts +0 -18
- package/cli/dist/modules/proposal/artifacts.d.ts.map +0 -1
- package/cli/dist/modules/proposal/artifacts.js +0 -43
- package/cli/dist/modules/proposal/artifacts.js.map +0 -1
- package/cli/dist/modules/proposal/commands/basic-create.d.ts +0 -22
- package/cli/dist/modules/proposal/commands/basic-create.d.ts.map +0 -1
- package/cli/dist/modules/proposal/commands/basic-create.js +0 -81
- package/cli/dist/modules/proposal/commands/basic-create.js.map +0 -1
- package/cli/dist/modules/proposal/commands/basic-result.d.ts +0 -24
- package/cli/dist/modules/proposal/commands/basic-result.d.ts.map +0 -1
- package/cli/dist/modules/proposal/commands/basic-result.js +0 -96
- package/cli/dist/modules/proposal/commands/basic-result.js.map +0 -1
- package/cli/dist/modules/proposal/newidea-env.d.ts +0 -28
- package/cli/dist/modules/proposal/newidea-env.d.ts.map +0 -1
- package/cli/dist/modules/proposal/newidea-env.js +0 -69
- package/cli/dist/modules/proposal/newidea-env.js.map +0 -1
- package/cli/dist/modules/proposal/newidea-runner.d.ts +0 -25
- package/cli/dist/modules/proposal/newidea-runner.d.ts.map +0 -1
- package/cli/dist/modules/proposal/newidea-runner.js +0 -158
- package/cli/dist/modules/proposal/newidea-runner.js.map +0 -1
- package/cli/dist/modules/proposal/parse.d.ts +0 -25
- package/cli/dist/modules/proposal/parse.d.ts.map +0 -1
- package/cli/dist/modules/proposal/parse.js +0 -173
- package/cli/dist/modules/proposal/parse.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/modules/analysis/api.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/modules/analysis/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ function normalizeMetaResponse(response) {
|
|
|
18
18
|
// 校验 Meta 业务响应。真实响应可能已经由 ApiClient 从转发层 data 中归一化出来。
|
|
19
19
|
export function unwrapMetaResponse(response, action) {
|
|
20
20
|
if (response.code !== 2000) {
|
|
21
|
-
throw new helixlifeError(helixlifeErrorCode.REQUEST_FAILED, response.
|
|
21
|
+
throw new helixlifeError(helixlifeErrorCode.REQUEST_FAILED, response.message || response.msg || `${action}失败`);
|
|
22
22
|
}
|
|
23
23
|
if (response.data === undefined) {
|
|
24
24
|
throw new helixlifeError(helixlifeErrorCode.INVALID_RESPONSE, `${action}响应缺少 data 字段`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/modules/meta/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGpF,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,8DAA8D;AAC9D,qEAAqE;AACrE,SAAS,qBAAqB,CAAC,QAAiB;IAC9C,IACE,QAAQ,CAAC,QAAQ,CAAC;QAClB,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS;QACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI;YACxB,MAAM,IAAI,QAAQ,CAAC,IAAI;YACvB,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,EACzB,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,kBAAkB,CAChC,QAA4B,EAC5B,MAAc;IAEd,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,cAAc,EACjC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/modules/meta/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGpF,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,8DAA8D;AAC9D,qEAAqE;AACrE,SAAS,qBAAqB,CAAC,QAAiB;IAC9C,IACE,QAAQ,CAAC,QAAQ,CAAC;QAClB,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS;QACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI;YACxB,MAAM,IAAI,QAAQ,CAAC,IAAI;YACvB,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,EACzB,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,kBAAkB,CAChC,QAA4B,EAC5B,MAAc;IAEd,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,cAAc,EACjC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,IAAI,GAAG,MAAM,IAAI,CAClD,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,gBAAgB,EACnC,GAAG,MAAM,cAAc,CACxB,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,OAOC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAqB,IAAI,EAAE;QAC9D,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,iBAAiB,EAAE,qBAAqB;KACzC,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export type TokenCheckStatus = "valid" | "unauthorized" | "error";
|
|
2
|
-
export interface TokenCheckResult {
|
|
3
|
-
status: TokenCheckStatus;
|
|
4
|
-
message: string;
|
|
5
|
-
code?: string | number;
|
|
6
|
-
}
|
|
7
|
-
export interface AuthorizeOptions {
|
|
8
|
-
openBrowser?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export interface AuthResult {
|
|
11
|
-
token: string;
|
|
12
|
-
linkUrl: string;
|
|
13
|
-
finalUrl: string;
|
|
14
|
-
browserOpened: boolean;
|
|
15
|
-
}
|
|
16
|
-
interface CheckTokenResponse {
|
|
17
|
-
success?: boolean;
|
|
18
|
-
code?: number | string;
|
|
19
|
-
msg?: string;
|
|
20
|
-
message?: string;
|
|
21
|
-
data?: {
|
|
22
|
-
success?: boolean;
|
|
23
|
-
code?: number | string;
|
|
24
|
-
msg?: string;
|
|
25
|
-
message?: string;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
export declare function buildAuthLinkUrl(linkUrl: string): string;
|
|
29
|
-
export declare function openBrowser(url: string): boolean;
|
|
30
|
-
export declare function interpretCheckToken(httpStatus: number, payload: CheckTokenResponse): TokenCheckResult;
|
|
31
|
-
export declare function checkToken(token: string | undefined): Promise<TokenCheckResult>;
|
|
32
|
-
export declare function startAuthorization(options?: AuthorizeOptions): Promise<AuthResult>;
|
|
33
|
-
export declare function reauthorize(options?: AuthorizeOptions): Promise<AuthResult>;
|
|
34
|
-
export {};
|
|
35
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/auth/index.ts"],"names":[],"mappings":"AA8BA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,gBAAgB;IAE/B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,UAAU;IAEzB,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,EAAE,OAAO,CAAC;CACxB;AAcD,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAmBhD;AAgDD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,CAqClB;AAID,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA6B3B;AAMD,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,UAAU,CAAC,CASrB;AAGD,wBAAsB,WAAW,CAC/B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,UAAU,CAAC,CAGrB"}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { exec } from "node:child_process";
|
|
2
|
-
import { platform } from "node:os";
|
|
3
|
-
import { helixlifeError, helixlifeErrorCode } from "../errors.js";
|
|
4
|
-
import { getDefaultAuthBaseUrl } from "../types/config.js";
|
|
5
|
-
import { saveTokenFile, clearTokenFile } from "../token/index.js";
|
|
6
|
-
import { fetchWithTimeout } from "../api/http.js";
|
|
7
|
-
// 授权类请求超时(毫秒):授权/检测接口耗时短,无需业务级 60s,避免网络挂起时长时间无响应
|
|
8
|
-
const AUTH_REQUEST_TIMEOUT_MS = 30_000;
|
|
9
|
-
// 授权接口基址:由本地 config.json 的 agent_api 覆盖(运行时重读),缺省为生产默认。
|
|
10
|
-
// 去除结尾多余的 / 避免拼接双斜杠。
|
|
11
|
-
function getAuthBaseUrl() {
|
|
12
|
-
return getDefaultAuthBaseUrl().replace(/\/+$/, "");
|
|
13
|
-
}
|
|
14
|
-
// 检测授权接口路径:每次重算,确保 config set 后立即联动
|
|
15
|
-
function getAuthUrlEndpoint() {
|
|
16
|
-
return `${getAuthBaseUrl()}/api/v1/agent/skills/auth-url`;
|
|
17
|
-
}
|
|
18
|
-
// 检测授权接口路径:每次重算
|
|
19
|
-
function getCheckTokenEndpoint() {
|
|
20
|
-
return `${getAuthBaseUrl()}/api/v1/agent/skills/check-token`;
|
|
21
|
-
}
|
|
22
|
-
// 规范化授权链接(去除首尾空白)
|
|
23
|
-
export function buildAuthLinkUrl(linkUrl) {
|
|
24
|
-
return linkUrl.trim();
|
|
25
|
-
}
|
|
26
|
-
// 跨平台自动唤起浏览器打开授权链接,失败时返回 false 由调用方回退到提示复制
|
|
27
|
-
export function openBrowser(url) {
|
|
28
|
-
const os = platform();
|
|
29
|
-
let command;
|
|
30
|
-
if (os === "win32") {
|
|
31
|
-
command = `start "" "${url}"`;
|
|
32
|
-
}
|
|
33
|
-
else if (os === "darwin") {
|
|
34
|
-
command = `open "${url}"`;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
command = `xdg-open "${url}"`;
|
|
38
|
-
}
|
|
39
|
-
try {
|
|
40
|
-
exec(command, () => {
|
|
41
|
-
// 唤起为异步执行,失败无法同步感知,此处保持静默;调用方以提示复制兜底
|
|
42
|
-
});
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// 调用获取授权链接接口,返回 token_key 与 link_url
|
|
50
|
-
async function fetchAuthUrl() {
|
|
51
|
-
let response;
|
|
52
|
-
try {
|
|
53
|
-
response = await fetchWithTimeout(getAuthUrlEndpoint(), { method: "GET", headers: { Accept: "application/json" } }, AUTH_REQUEST_TIMEOUT_MS);
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
throw new helixlifeError(helixlifeErrorCode.NETWORK_ERROR, "获取授权链接失败,请检查网络后重试");
|
|
57
|
-
}
|
|
58
|
-
if (!response.ok) {
|
|
59
|
-
throw new helixlifeError(helixlifeErrorCode.REQUEST_FAILED, `获取授权链接失败 (${response.status}): ${response.statusText}`);
|
|
60
|
-
}
|
|
61
|
-
const payload = (await response.json().catch(() => ({})));
|
|
62
|
-
const data = payload.data ?? {};
|
|
63
|
-
if (!data.token_key || !data.link_url) {
|
|
64
|
-
const hint = payload.msg ?? payload.message ?? `错误码 ${payload.code ?? "未知"}`;
|
|
65
|
-
throw new helixlifeError(helixlifeErrorCode.INVALID_RESPONSE, `授权接口返回异常:${hint}`);
|
|
66
|
-
}
|
|
67
|
-
return { tokenKey: data.token_key, linkUrl: data.link_url };
|
|
68
|
-
}
|
|
69
|
-
// 检测授权接口对「未授权 / 待授权 / token 无效或不存在 / 已过期」统一返回该错误码
|
|
70
|
-
const CHECK_TOKEN_UNAUTHORIZED_CODE = "40004";
|
|
71
|
-
// 将检测授权接口响应归一化为三态结果
|
|
72
|
-
//
|
|
73
|
-
// 实测(dev agent.youlika.net)响应约定:
|
|
74
|
-
// - 已授权: { success: true, code: 200000000, message: "", data: null }
|
|
75
|
-
// - 未授权/待授权:{ success: false, code: 40004, message: "{#title}不存在" }(新建未确认、无效、不存在、过期均返回此码)
|
|
76
|
-
// - 其他错误: success:false 且 code 非 40004(权限不足、账号异常、限流等)—— 仅提示,不引导重新授权
|
|
77
|
-
export function interpretCheckToken(httpStatus, payload) {
|
|
78
|
-
const success = payload.success === true || payload.data?.success === true;
|
|
79
|
-
const rawMessage = payload.message ??
|
|
80
|
-
payload.msg ??
|
|
81
|
-
payload.data?.message ??
|
|
82
|
-
payload.data?.msg ??
|
|
83
|
-
"";
|
|
84
|
-
const code = payload.code ?? payload.data?.code;
|
|
85
|
-
// 后台部分文案是未渲染的 i18n 模板(如 "{#title}不存在"),对用户无意义,做兜底替换
|
|
86
|
-
const message = rawMessage.includes("{#") ? "" : rawMessage;
|
|
87
|
-
if (success) {
|
|
88
|
-
return { status: "valid", message: message || "已授权" };
|
|
89
|
-
}
|
|
90
|
-
// 未授权判定(需引导重新授权):以 HTTP 401 与后台未授权码 40004 为主判据
|
|
91
|
-
//(新建未确认 / 无效 / 不存在 / 过期均返回 40004);正则仅作后台文案漂移时的最后兜底。
|
|
92
|
-
const unauthorized = httpStatus === 401 ||
|
|
93
|
-
String(code ?? "") === CHECK_TOKEN_UNAUTHORIZED_CODE ||
|
|
94
|
-
/未授权|未登录|请登录/.test(rawMessage);
|
|
95
|
-
if (unauthorized) {
|
|
96
|
-
return {
|
|
97
|
-
status: "unauthorized",
|
|
98
|
-
message: message || "未授权或登录已过期",
|
|
99
|
-
code,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
return {
|
|
103
|
-
status: "error",
|
|
104
|
-
message: message || `检测授权失败(HTTP ${httpStatus},code ${code ?? "未知"})`,
|
|
105
|
-
code,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
// 检测授权:调用 check-token 接口校验 token 是否有效,返回三态结果。
|
|
109
|
-
// 注意:不抛异常(网络错误也归一化为 error 态),由调用方按状态决策。
|
|
110
|
-
export async function checkToken(token) {
|
|
111
|
-
const trimmed = token?.trim();
|
|
112
|
-
if (!trimmed) {
|
|
113
|
-
return { status: "unauthorized", message: "本地无有效 token" };
|
|
114
|
-
}
|
|
115
|
-
const url = `${getCheckTokenEndpoint()}?token_key=${encodeURIComponent(trimmed)}`;
|
|
116
|
-
let response;
|
|
117
|
-
try {
|
|
118
|
-
response = await fetchWithTimeout(url, { method: "GET", headers: { Accept: "application/json" } }, AUTH_REQUEST_TIMEOUT_MS);
|
|
119
|
-
}
|
|
120
|
-
catch {
|
|
121
|
-
return { status: "error", message: "检测授权失败,请检查网络后重试" };
|
|
122
|
-
}
|
|
123
|
-
const payload = (await response
|
|
124
|
-
.json()
|
|
125
|
-
.catch(() => ({})));
|
|
126
|
-
const result = interpretCheckToken(response.status, payload);
|
|
127
|
-
// 失效即清:判定为未授权时统一在此清除本地失效 token,命令层无需重复处理
|
|
128
|
-
if (result.status === "unauthorized") {
|
|
129
|
-
clearTokenFile();
|
|
130
|
-
}
|
|
131
|
-
return result;
|
|
132
|
-
}
|
|
133
|
-
// 获取授权链接流程:
|
|
134
|
-
// 1. 调用获取授权链接接口,拿到 token_key 与 link_url
|
|
135
|
-
// 2. 将 token_key 持久化写入本地 token 文件(此时尚未与账号绑定,需用户在网站确认)
|
|
136
|
-
// 3. 自动唤起浏览器,引导用户完成授权
|
|
137
|
-
export async function startAuthorization(options = {}) {
|
|
138
|
-
const { tokenKey, linkUrl } = await fetchAuthUrl();
|
|
139
|
-
saveTokenFile(tokenKey);
|
|
140
|
-
const finalUrl = buildAuthLinkUrl(linkUrl);
|
|
141
|
-
const shouldOpen = options.openBrowser !== false;
|
|
142
|
-
const browserOpened = shouldOpen ? openBrowser(finalUrl) : false;
|
|
143
|
-
return { token: tokenKey, linkUrl, finalUrl, browserOpened };
|
|
144
|
-
}
|
|
145
|
-
// 重新授权:先清空本地失效 token,再执行获取授权链接流程
|
|
146
|
-
export async function reauthorize(options = {}) {
|
|
147
|
-
clearTokenFile();
|
|
148
|
-
return startAuthorization(options);
|
|
149
|
-
}
|
|
150
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,iDAAiD;AACjD,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,wDAAwD;AACxD,qBAAqB;AACrB,SAAS,cAAc;IACrB,OAAO,qBAAqB,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,oCAAoC;AACpC,SAAS,kBAAkB;IACzB,OAAO,GAAG,cAAc,EAAE,+BAA+B,CAAC;AAC5D,CAAC;AAED,gBAAgB;AAChB,SAAS,qBAAqB;IAC5B,OAAO,GAAG,cAAc,EAAE,kCAAkC,CAAC;AAC/D,CAAC;AAyDD,kBAAkB;AAClB,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtB,IAAI,OAAe,CAAC;IACpB,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACnB,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;IAChC,CAAC;SAAM,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;IAChC,CAAC;IAED,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACjB,qCAAqC;QACvC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,qCAAqC;AACrC,KAAK,UAAU,YAAY;IACzB,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,gBAAgB,CAC/B,kBAAkB,EAAE,EACpB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAC1D,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,aAAa,EAChC,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,cAAc,EACjC,aAAa,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,EAAE,CACxD,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAoB,CAAC;IAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,GACR,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAClE,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,gBAAgB,EACnC,YAAY,IAAI,EAAE,CACnB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9D,CAAC;AAED,kDAAkD;AAClD,MAAM,6BAA6B,GAAG,OAAO,CAAC;AAE9C,oBAAoB;AACpB,EAAE;AACF,iCAAiC;AACjC,2EAA2E;AAC3E,8FAA8F;AAC9F,uEAAuE;AACvE,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,OAA2B;IAE3B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3E,MAAM,UAAU,GACd,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,GAAG;QACX,OAAO,CAAC,IAAI,EAAE,OAAO;QACrB,OAAO,CAAC,IAAI,EAAE,GAAG;QACjB,EAAE,CAAC;IACL,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAChD,oDAAoD;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IAE5D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,+CAA+C;IAC/C,oDAAoD;IACpD,MAAM,YAAY,GAChB,UAAU,KAAK,GAAG;QAClB,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,6BAA6B;QACpD,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO;YACL,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,OAAO,IAAI,WAAW;YAC/B,IAAI;SACL,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO;QACf,OAAO,EACL,OAAO,IAAI,eAAe,UAAU,SAAS,IAAI,IAAI,IAAI,GAAG;QAC9D,IAAI;KACL,CAAC;AACJ,CAAC;AAED,8CAA8C;AAC9C,wCAAwC;AACxC,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAyB;IAEzB,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,qBAAqB,EAAE,cAAc,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IAClF,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,gBAAgB,CAC/B,GAAG,EACH,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAC1D,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ;SAC5B,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAC;IAC5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7D,yCAAyC;IACzC,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACrC,cAAc,EAAE,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,YAAY;AACZ,wCAAwC;AACxC,sDAAsD;AACtD,sBAAsB;AACtB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAA4B,EAAE;IAE9B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IACnD,aAAa,CAAC,QAAQ,CAAC,CAAC;IAExB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC;IACjD,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEjE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAC/D,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAA4B,EAAE;IAE9B,cAAc,EAAE,CAAC;IACjB,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiF3D"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { checkToken, reauthorize, loadTokenFromFile, clearTokenFile, emitJson, } from "../../core/index.js";
|
|
2
|
-
// 注册授权与鉴权命名空间:helixlife-expert auth status / login / logout
|
|
3
|
-
export function registerAuthCommands(program) {
|
|
4
|
-
const auth = program.command("auth").description("授权与鉴权管理");
|
|
5
|
-
auth
|
|
6
|
-
.command("status")
|
|
7
|
-
.description("检测本地 token 的授权状态(调用检测授权接口 check-token)")
|
|
8
|
-
.action(async () => {
|
|
9
|
-
const token = loadTokenFromFile();
|
|
10
|
-
if (!token) {
|
|
11
|
-
emitJson({
|
|
12
|
-
authorized: false,
|
|
13
|
-
status: "no_token",
|
|
14
|
-
message: "本地无 token,请运行 `helixlife-expert auth login` 获取授权链接并完成授权",
|
|
15
|
-
});
|
|
16
|
-
process.exitCode = 2;
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
// 未授权时 checkToken 内部已统一清除本地失效 token,命令层无需重复处理
|
|
20
|
-
const result = await checkToken(token);
|
|
21
|
-
if (result.status === "valid") {
|
|
22
|
-
emitJson({
|
|
23
|
-
authorized: true,
|
|
24
|
-
status: "valid",
|
|
25
|
-
message: result.message,
|
|
26
|
-
});
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (result.status === "unauthorized") {
|
|
30
|
-
emitJson({
|
|
31
|
-
authorized: false,
|
|
32
|
-
status: "unauthorized",
|
|
33
|
-
code: result.code,
|
|
34
|
-
message: `${result.message},请运行 \`helixlife-expert auth login\` 重新授权`,
|
|
35
|
-
});
|
|
36
|
-
process.exitCode = 2;
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
// error:其他错误(网络 / 权限 / 账号异常等)仅提示,不引导重新授权
|
|
40
|
-
emitJson({
|
|
41
|
-
authorized: false,
|
|
42
|
-
status: "error",
|
|
43
|
-
code: result.code,
|
|
44
|
-
message: result.message,
|
|
45
|
-
});
|
|
46
|
-
process.exitCode = 3;
|
|
47
|
-
});
|
|
48
|
-
auth
|
|
49
|
-
.command("login")
|
|
50
|
-
.description("获取授权链接并自动打开浏览器,引导用户完成授权")
|
|
51
|
-
.option("--no-open", "不自动打开浏览器,仅输出授权链接")
|
|
52
|
-
.action(async (opts) => {
|
|
53
|
-
// 始终重新授权:先清除本地失效 token,再获取授权链接,
|
|
54
|
-
// 避免未绑定的新 token 覆盖有效旧 token 造成「假登录」
|
|
55
|
-
const result = await reauthorize({
|
|
56
|
-
openBrowser: opts.open,
|
|
57
|
-
});
|
|
58
|
-
emitJson({
|
|
59
|
-
action: "authorize",
|
|
60
|
-
token_saved: true,
|
|
61
|
-
auth_url: result.finalUrl,
|
|
62
|
-
browser_opened: result.browserOpened,
|
|
63
|
-
message: result.browserOpened
|
|
64
|
-
? "已打开浏览器,请完成授权;完成后运行 `helixlife-expert auth status` 确认授权是否成功。"
|
|
65
|
-
: "请手动复制 auth_url 到浏览器完成授权;完成后运行 `helixlife-expert auth status` 确认授权是否成功。",
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
auth
|
|
69
|
-
.command("logout")
|
|
70
|
-
.description("清除本地 token")
|
|
71
|
-
.action(() => {
|
|
72
|
-
clearTokenFile();
|
|
73
|
-
emitJson({ action: "logout", message: "已清除本地 token" });
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,QAAQ,GAET,MAAM,qBAAqB,CAAC;AAE7B,4DAA4D;AAC5D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAE5D,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC;gBACP,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,UAAU;gBAClB,OAAO,EACL,yDAAyD;aAC5D,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,QAAQ,CAAC;gBACP,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACrC,QAAQ,CAAC;gBACP,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,2CAA2C;aACtE,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,yCAAyC;QACzC,QAAQ,CAAC;YACP,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,gCAAgC;QAChC,oCAAoC;QACpC,MAAM,MAAM,GAAe,MAAM,WAAW,CAAC;YAC3C,WAAW,EAAE,IAAI,CAAC,IAAI;SACvB,CAAC,CAAC;QAEH,QAAQ,CAAC;YACP,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,cAAc,EAAE,MAAM,CAAC,aAAa;YACpC,OAAO,EAAE,MAAM,CAAC,aAAa;gBAC3B,CAAC,CAAC,6DAA6D;gBAC/D,CAAC,CAAC,wEAAwE;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,GAAG,EAAE;QACX,cAAc,EAAE,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export interface ArtifactDownloadResult {
|
|
2
|
-
zipPath: string;
|
|
3
|
-
bytes: number;
|
|
4
|
-
}
|
|
5
|
-
/** 默认落盘目录:<Downloads>/helixlife-proposal-basic */
|
|
6
|
-
export declare function defaultArtifactDir(): string;
|
|
7
|
-
/** 产物文件名:<课题条件片段>-<runRecordId 前 8 位>.zip */
|
|
8
|
-
export declare function buildArtifactFileName(topic: string | undefined, runRecordId: string): string;
|
|
9
|
-
export interface DownloadArtifactOptions {
|
|
10
|
-
url: string;
|
|
11
|
-
runRecordId: string;
|
|
12
|
-
topic?: string;
|
|
13
|
-
/** 落盘目录;未传则用默认目录 */
|
|
14
|
-
outputDir?: string;
|
|
15
|
-
}
|
|
16
|
-
/** 下载 ZIP 到本地(不解压) */
|
|
17
|
-
export declare function downloadProposalArtifact(options: DownloadArtifactOptions): Promise<ArtifactDownloadResult>;
|
|
18
|
-
//# sourceMappingURL=artifacts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/modules/proposal/artifacts.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,6CAA6C;AAC7C,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,EAAE,MAAM,GAClB,MAAM,CAIR;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sBAAsB;AACtB,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAiCjC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 课题方案产物处理:默认只把 newidea 返回的 ZIP 直链交给上层,
|
|
3
|
-
* 仅在用户显式要求(--download)时才落盘,且不解压。
|
|
4
|
-
*/
|
|
5
|
-
import { mkdir, writeFile } from "node:fs/promises";
|
|
6
|
-
import { join } from "node:path";
|
|
7
|
-
import { getUserDownloadsDir, helixlifeError, helixlifeErrorCode, resolveUserPath, sanitizeFilename, } from "../../core/index.js";
|
|
8
|
-
import { PROPOSAL_ARTIFACT_DIR_NAME } from "./constants.js";
|
|
9
|
-
const DOWNLOAD_TIMEOUT_MS = 180_000;
|
|
10
|
-
/** 默认落盘目录:<Downloads>/helixlife-proposal-basic */
|
|
11
|
-
export function defaultArtifactDir() {
|
|
12
|
-
return join(getUserDownloadsDir(), PROPOSAL_ARTIFACT_DIR_NAME);
|
|
13
|
-
}
|
|
14
|
-
/** 产物文件名:<课题条件片段>-<runRecordId 前 8 位>.zip */
|
|
15
|
-
export function buildArtifactFileName(topic, runRecordId) {
|
|
16
|
-
const suffix = runRecordId.replace(/[^A-Za-z0-9-]/g, "").slice(0, 8) || "task";
|
|
17
|
-
const stem = sanitizeFilename(topic?.trim() || "课题方案", { maxLength: 40 });
|
|
18
|
-
return `${stem}-${suffix}.zip`;
|
|
19
|
-
}
|
|
20
|
-
/** 下载 ZIP 到本地(不解压) */
|
|
21
|
-
export async function downloadProposalArtifact(options) {
|
|
22
|
-
let response;
|
|
23
|
-
try {
|
|
24
|
-
response = await fetch(options.url, {
|
|
25
|
-
signal: AbortSignal.timeout(DOWNLOAD_TIMEOUT_MS),
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
throw new helixlifeError(helixlifeErrorCode.NETWORK_ERROR, `下载课题方案产物失败:${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
30
|
-
}
|
|
31
|
-
if (!response.ok) {
|
|
32
|
-
throw new helixlifeError(helixlifeErrorCode.REQUEST_FAILED, `下载课题方案产物失败:HTTP ${response.status}`);
|
|
33
|
-
}
|
|
34
|
-
const outputDir = options.outputDir
|
|
35
|
-
? resolveUserPath(options.outputDir)
|
|
36
|
-
: defaultArtifactDir();
|
|
37
|
-
await mkdir(outputDir, { recursive: true });
|
|
38
|
-
const zipPath = join(outputDir, buildArtifactFileName(options.topic, options.runRecordId));
|
|
39
|
-
const buffer = Buffer.from(await response.arrayBuffer());
|
|
40
|
-
await writeFile(zipPath, buffer);
|
|
41
|
-
return { zipPath, bytes: buffer.byteLength };
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=artifacts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/modules/proposal/artifacts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAOpC,kDAAkD;AAClD,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,mBAAmB,EAAE,EAAE,0BAA0B,CAAC,CAAC;AACjE,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,qBAAqB,CACnC,KAAyB,EACzB,WAAmB;IAEnB,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC;IAC/E,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,IAAI,IAAI,MAAM,MAAM,CAAC;AACjC,CAAC;AAUD,sBAAsB;AACtB,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAgC;IAEhC,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;YAClC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,aAAa,EAChC,cAAc,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACtE,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,cAAc,CACtB,kBAAkB,CAAC,cAAc,EACjC,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CACrC,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;QACjC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;QACpC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACzB,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAI,CAClB,SAAS,EACT,qBAAqB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAC1D,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type OutputFormat } from "../../../core/index.js";
|
|
2
|
-
export interface CreateProposalBasicOptions {
|
|
3
|
-
input?: string;
|
|
4
|
-
inputFile?: string;
|
|
5
|
-
/** 发起后继续在本条命令内轮询,直到完成或封顶 */
|
|
6
|
-
wait?: boolean;
|
|
7
|
-
maxWaitMs?: number;
|
|
8
|
-
/** 传入目录则把成功产物 ZIP 额外存到本地(不解压) */
|
|
9
|
-
download?: string;
|
|
10
|
-
format?: OutputFormat;
|
|
11
|
-
}
|
|
12
|
-
export interface ProposalBasicCreateResult {
|
|
13
|
-
status: "running";
|
|
14
|
-
topic: string;
|
|
15
|
-
note: string;
|
|
16
|
-
}
|
|
17
|
-
/** 课题条件文本:--input 与 --input-file 二选一 */
|
|
18
|
-
export declare function resolveProposalInput(options: CreateProposalBasicOptions): Promise<string>;
|
|
19
|
-
/** 发起任务并解析任务标识;start 输出不含标识时回落最近一条记录 */
|
|
20
|
-
export declare function startProposalBasicTask(topic: string): Promise<string>;
|
|
21
|
-
export declare function runCreateProposalBasic(options?: CreateProposalBasicOptions): Promise<void>;
|
|
22
|
-
//# sourceMappingURL=basic-create.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basic-create.d.ts","sourceRoot":"","sources":["../../../../src/modules/proposal/commands/basic-create.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAShC,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wCAAwC;AACxC,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED,wCAAwC;AACxC,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB3E;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,IAAI,CAAC,CAkCf"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
// 课题方案 - 基础研究(第一步):发起 newidea 异步任务,返回任务标识供轮询
|
|
2
|
-
import { readFile } from "node:fs/promises";
|
|
3
|
-
import { helixlifeError, helixlifeErrorCode, printOutput, resolveUserPath, } from "../../../core/index.js";
|
|
4
|
-
import { wrapWorkbenchResult } from "../../shared/result-wrapper.js";
|
|
5
|
-
import { PROPOSAL_BASIC_TOOL_ID } from "../constants.js";
|
|
6
|
-
import { runNewideaJson } from "../newidea-runner.js";
|
|
7
|
-
import { parseRunRecordId } from "../parse.js";
|
|
8
|
-
import { runProposalBasicResult } from "./basic-result.js";
|
|
9
|
-
const MAX_INPUT_CHARS = 20_000;
|
|
10
|
-
/** 课题条件文本:--input 与 --input-file 二选一 */
|
|
11
|
-
export async function resolveProposalInput(options) {
|
|
12
|
-
if (options.input && options.inputFile) {
|
|
13
|
-
throw new helixlifeError(helixlifeErrorCode.INVALID_ARGUMENT, "--input 与 --input-file 互斥,请二选一");
|
|
14
|
-
}
|
|
15
|
-
let text = options.input?.trim() ?? "";
|
|
16
|
-
if (options.inputFile) {
|
|
17
|
-
try {
|
|
18
|
-
text = (await readFile(resolveUserPath(options.inputFile), "utf8")).trim();
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
throw new helixlifeError(helixlifeErrorCode.INVALID_ARGUMENT, `无法读取课题条件文件: ${options.inputFile}`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
if (!text) {
|
|
25
|
-
throw new helixlifeError(helixlifeErrorCode.INVALID_ARGUMENT, "请通过 --input <课题条件> 或 --input-file <path> 提供课题条件");
|
|
26
|
-
}
|
|
27
|
-
if (text.length > MAX_INPUT_CHARS) {
|
|
28
|
-
throw new helixlifeError(helixlifeErrorCode.INVALID_ARGUMENT, `课题条件过长(${text.length} 字符),请压缩到 ${MAX_INPUT_CHARS} 字符以内`);
|
|
29
|
-
}
|
|
30
|
-
return text;
|
|
31
|
-
}
|
|
32
|
-
/** 发起任务并解析任务标识;start 输出不含标识时回落最近一条记录 */
|
|
33
|
-
export async function startProposalBasicTask(topic) {
|
|
34
|
-
const started = await runNewideaJson([
|
|
35
|
-
"invocation",
|
|
36
|
-
"start",
|
|
37
|
-
PROPOSAL_BASIC_TOOL_ID,
|
|
38
|
-
"--input",
|
|
39
|
-
topic,
|
|
40
|
-
"--json",
|
|
41
|
-
]);
|
|
42
|
-
const direct = parseRunRecordId(started);
|
|
43
|
-
if (direct) {
|
|
44
|
-
return direct;
|
|
45
|
-
}
|
|
46
|
-
const last = await runNewideaJson(["invocation", "last", "--json"]);
|
|
47
|
-
const fallback = parseRunRecordId(last);
|
|
48
|
-
if (fallback) {
|
|
49
|
-
return fallback;
|
|
50
|
-
}
|
|
51
|
-
throw new helixlifeError(helixlifeErrorCode.INVALID_RESPONSE, "任务已提交但未能解析任务标识,请稍后重试");
|
|
52
|
-
}
|
|
53
|
-
export async function runCreateProposalBasic(options = {}) {
|
|
54
|
-
const format = options.format ?? "json";
|
|
55
|
-
const topic = await resolveProposalInput(options);
|
|
56
|
-
const runRecordId = await startProposalBasicTask(topic);
|
|
57
|
-
if (options.wait) {
|
|
58
|
-
await runProposalBasicResult({
|
|
59
|
-
runRecordId,
|
|
60
|
-
topic,
|
|
61
|
-
wait: true,
|
|
62
|
-
maxWaitMs: options.maxWaitMs,
|
|
63
|
-
download: options.download,
|
|
64
|
-
format,
|
|
65
|
-
});
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const result = {
|
|
69
|
-
status: "running",
|
|
70
|
-
topic,
|
|
71
|
-
note: "任务已发起,请用 proposal basic result 轮询进度,直到返回产物链接或失败",
|
|
72
|
-
};
|
|
73
|
-
if (format === "json") {
|
|
74
|
-
printOutput(wrapWorkbenchResult(result, { step: "create", subType: "basic" }, {
|
|
75
|
-
runRecordId,
|
|
76
|
-
}), "json");
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
console.log("课题方案(基础研究)任务已发起,接口正在处理中,请耐心等待...");
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=basic-create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basic-create.js","sourceRoot":"","sources":["../../../../src/modules/proposal/commands/basic-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { type OutputFormat } from "../../../core/index.js";
|
|
2
|
-
export interface ProposalBasicResultOptions {
|
|
3
|
-
runRecordId: string;
|
|
4
|
-
topic?: string;
|
|
5
|
-
wait?: boolean;
|
|
6
|
-
maxWaitMs?: number;
|
|
7
|
-
/** 传入目录则额外把 ZIP 存到本地(不解压);空字符串表示用默认目录 */
|
|
8
|
-
download?: string;
|
|
9
|
-
format?: OutputFormat;
|
|
10
|
-
}
|
|
11
|
-
export interface ProposalBasicResultData {
|
|
12
|
-
status: "running" | "success";
|
|
13
|
-
note: string;
|
|
14
|
-
/** 成功且服务端返回产物时给出 ZIP 直链 */
|
|
15
|
-
zipUrl?: string;
|
|
16
|
-
zipPath?: string;
|
|
17
|
-
zipBytes?: number;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* 轮询任务进度直到成功 / 失败。`--wait` 下单条命令最多等待 maxWaitMs
|
|
21
|
-
* (受 Shell 单条命令预算限制),到点仍在生成则返回 running,由上层再调一次继续轮询。
|
|
22
|
-
*/
|
|
23
|
-
export declare function runProposalBasicResult(options: ProposalBasicResultOptions): Promise<ProposalBasicResultData>;
|
|
24
|
-
//# sourceMappingURL=basic-result.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basic-result.d.ts","sourceRoot":"","sources":["../../../../src/modules/proposal/commands/basic-result.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAahC,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkBD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,uBAAuB,CAAC,CAqFlC"}
|