helixlife-expert-cli 0.3.3 → 0.4.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 +1 -1
- package/cli/dist/modules/analysis/api.d.ts +1 -1
- package/cli/dist/modules/analysis/api.d.ts.map +1 -1
- package/cli/dist/modules/analysis/api.js +4 -3
- package/cli/dist/modules/analysis/api.js.map +1 -1
- package/cli/dist/modules/analysis/bio.d.ts +1 -1
- package/cli/dist/modules/analysis/bio.d.ts.map +1 -1
- package/cli/dist/modules/analysis/bio.js +1 -1
- package/cli/dist/modules/analysis/bio.js.map +1 -1
- package/cli/dist/modules/analysis/catalog.d.ts +1 -0
- package/cli/dist/modules/analysis/catalog.d.ts.map +1 -1
- package/cli/dist/modules/analysis/catalog.js +11 -8
- package/cli/dist/modules/analysis/catalog.js.map +1 -1
- package/cli/dist/modules/analysis/commands.d.ts.map +1 -1
- package/cli/dist/modules/analysis/commands.js +28 -16
- package/cli/dist/modules/analysis/commands.js.map +1 -1
- package/cli/dist/modules/analysis/constants.d.ts +2 -2
- package/cli/dist/modules/analysis/constants.d.ts.map +1 -1
- package/cli/dist/modules/analysis/constants.js +2 -2
- package/cli/dist/modules/analysis/constants.js.map +1 -1
- package/cli/dist/modules/analysis/errors.d.ts +1 -0
- package/cli/dist/modules/analysis/errors.d.ts.map +1 -1
- package/cli/dist/modules/analysis/errors.js +18 -6
- package/cli/dist/modules/analysis/errors.js.map +1 -1
- package/cli/dist/modules/analysis/files.d.ts +6 -0
- package/cli/dist/modules/analysis/files.d.ts.map +1 -1
- package/cli/dist/modules/analysis/files.js +29 -3
- package/cli/dist/modules/analysis/files.js.map +1 -1
- package/cli/dist/modules/analysis/index.js +5 -5
- package/cli/dist/modules/analysis/index.js.map +1 -1
- package/cli/dist/modules/analysis/overrides.d.ts +7 -0
- package/cli/dist/modules/analysis/overrides.d.ts.map +1 -1
- package/cli/dist/modules/analysis/overrides.js +36 -1
- package/cli/dist/modules/analysis/overrides.js.map +1 -1
- package/cli/dist/modules/analysis/prepare.d.ts.map +1 -1
- package/cli/dist/modules/analysis/prepare.js +60 -29
- package/cli/dist/modules/analysis/prepare.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// 数据分析业务错误:输出信封码(TOOL_* / INPUT_*),鉴权仍抛 helixlifeError
|
|
2
2
|
export class AnalysisError extends Error {
|
|
3
3
|
data;
|
|
4
4
|
constructor(message, data = null) {
|
|
@@ -13,7 +13,7 @@ export class AnalysisChoiceError extends AnalysisError {
|
|
|
13
13
|
this.name = "AnalysisChoiceError";
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
// 按文案映射信封 code
|
|
16
|
+
// 按文案映射信封 code
|
|
17
17
|
export function classifyAnalysisCode(message) {
|
|
18
18
|
if (message.includes("授权已过期") || message.includes("授权已过期或无效")) {
|
|
19
19
|
return "AUTH_EXPIRED";
|
|
@@ -27,7 +27,10 @@ export function classifyAnalysisCode(message) {
|
|
|
27
27
|
if (message.includes("需购买") || message.includes("无权限") || message.includes("权限")) {
|
|
28
28
|
return "PERMISSION_REQUIRED";
|
|
29
29
|
}
|
|
30
|
-
if (message.includes("匹配到多个结果") ||
|
|
30
|
+
if (message.includes("匹配到多个结果") ||
|
|
31
|
+
message.includes("匹配到多个云端数据") ||
|
|
32
|
+
message.includes("多个可下载文件") ||
|
|
33
|
+
message.includes("格式的产物")) {
|
|
31
34
|
return "TOOL_AMBIGUOUS";
|
|
32
35
|
}
|
|
33
36
|
if (message.includes("Missing 1 required arg") ||
|
|
@@ -38,7 +41,8 @@ export function classifyAnalysisCode(message) {
|
|
|
38
41
|
message.includes("请传入 FILE") ||
|
|
39
42
|
message.includes("需要 `--uuid`") ||
|
|
40
43
|
message.includes("需要 `--route`") ||
|
|
41
|
-
message.includes("需要 `--file`")
|
|
44
|
+
message.includes("需要 `--file`") ||
|
|
45
|
+
message.includes("请传入 `--file")) {
|
|
42
46
|
return "INPUT_REQUIRED";
|
|
43
47
|
}
|
|
44
48
|
if (message.includes("参数格式不正确") ||
|
|
@@ -47,10 +51,15 @@ export function classifyAnalysisCode(message) {
|
|
|
47
51
|
message.includes("不能同时使用") ||
|
|
48
52
|
message.includes("不能与") ||
|
|
49
53
|
message.includes("无效") ||
|
|
50
|
-
message.includes("不一致")
|
|
54
|
+
message.includes("不一致") ||
|
|
55
|
+
message.includes("在 args_main 中") ||
|
|
56
|
+
message.includes("在 args_specific 中") ||
|
|
57
|
+
message.includes("不在conf_args")) {
|
|
51
58
|
return "INPUT_INVALID";
|
|
52
59
|
}
|
|
53
|
-
if (message.includes("未返回可下载文件") ||
|
|
60
|
+
if (message.includes("未返回可下载文件") ||
|
|
61
|
+
message.includes("未获取到下载链接") ||
|
|
62
|
+
message.includes("未找到 fuid")) {
|
|
54
63
|
return "DOWNLOAD_NOT_AVAILABLE";
|
|
55
64
|
}
|
|
56
65
|
if (message.includes("频繁") || message.includes("速率限制") || message.includes("建议次日再试")) {
|
|
@@ -63,6 +72,9 @@ export function classifyAnalysisCode(message) {
|
|
|
63
72
|
}
|
|
64
73
|
return "INTERNAL_ERROR";
|
|
65
74
|
}
|
|
75
|
+
export function analysisProcessExitCode(error) {
|
|
76
|
+
return error.data?.selection_type === "download" ? 0 : 1;
|
|
77
|
+
}
|
|
66
78
|
export function createSuccessEnvelope(command, data) {
|
|
67
79
|
return {
|
|
68
80
|
ok: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/modules/analysis/errors.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/modules/analysis/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
export declare function downloadToPath(url: string, outputPath: string | undefined): Promise<string>;
|
|
2
|
+
export declare function downloadArtifact(path: string | undefined): {
|
|
3
|
+
path: string;
|
|
4
|
+
filename: string;
|
|
5
|
+
mimeType: string;
|
|
6
|
+
} | null;
|
|
7
|
+
export declare function writeDownloadBytes(target: string, bytes: Buffer): Promise<void>;
|
|
2
8
|
//# sourceMappingURL=files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/files.ts"],"names":[],"mappings":"AAQA,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAcjG"}
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/files.ts"],"names":[],"mappings":"AAQA,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAcjG;AAgBD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO7D;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { writeFile } from "node:fs/promises";
|
|
1
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
|
-
import { basename, join } from "node:path";
|
|
3
|
+
import { basename, dirname, extname, join } from "node:path";
|
|
4
4
|
import { fetchWithTimeout } from "../../core/index.js";
|
|
5
5
|
import { ANALYSIS_BIO_TIMEOUT_MS } from "./constants.js";
|
|
6
6
|
import { AnalysisError } from "./errors.js";
|
|
@@ -18,9 +18,35 @@ export async function downloadToPath(url, outputPath) {
|
|
|
18
18
|
}
|
|
19
19
|
const target = outputPath ? resolveUserPath(outputPath) : defaultDownloadPath(url);
|
|
20
20
|
const bytes = Buffer.from(await response.arrayBuffer());
|
|
21
|
-
await
|
|
21
|
+
await writeDownloadBytes(target, bytes);
|
|
22
22
|
return target;
|
|
23
23
|
}
|
|
24
|
+
const MIME_TYPES = {
|
|
25
|
+
".csv": "text/csv",
|
|
26
|
+
".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
27
|
+
".pdf": "application/pdf",
|
|
28
|
+
".png": "image/png",
|
|
29
|
+
".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
30
|
+
".svg": "image/svg+xml",
|
|
31
|
+
".tif": "image/tiff",
|
|
32
|
+
".tiff": "image/tiff",
|
|
33
|
+
".txt": "text/plain",
|
|
34
|
+
".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
35
|
+
".zip": "application/zip",
|
|
36
|
+
};
|
|
37
|
+
export function downloadArtifact(path) {
|
|
38
|
+
if (!path)
|
|
39
|
+
return null;
|
|
40
|
+
return {
|
|
41
|
+
path,
|
|
42
|
+
filename: basename(path),
|
|
43
|
+
mimeType: MIME_TYPES[extname(path).toLowerCase()] ?? "application/octet-stream",
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export async function writeDownloadBytes(target, bytes) {
|
|
47
|
+
await mkdir(dirname(target), { recursive: true });
|
|
48
|
+
await writeFile(target, bytes);
|
|
49
|
+
}
|
|
24
50
|
function defaultDownloadPath(url) {
|
|
25
51
|
try {
|
|
26
52
|
const name = decodeURIComponent(basename(new URL(url).pathname)) || "download.bin";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/modules/analysis/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/modules/analysis/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,UAA8B;IAC9E,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,aAAa,CAAC,SAAS,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,GAA2B;IACzC,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,yEAAyE;IAClF,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,2EAA2E;IACpF,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,mEAAmE;IAC5E,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAC9B,IAAwB;IAExB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;QACxB,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,0BAA0B;KAChF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,KAAa;IACpE,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,cAAc,CAAC;QACnF,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
|
|
@@ -7,7 +7,7 @@ function collect(value, previous = []) {
|
|
|
7
7
|
}
|
|
8
8
|
function addResolveOptions(command) {
|
|
9
9
|
return command
|
|
10
|
-
.option("--toolProductUuid <uuid>", "工具产品 UUID
|
|
10
|
+
.option("--toolProductUuid <uuid>", "工具产品 UUID,默认主产品")
|
|
11
11
|
.option("--uuid <uuid>", "工具 UUID;与 --route 同时传入时跳过菜单解析")
|
|
12
12
|
.option("--route <route>", "工具 route,例如 app1.violin_flat")
|
|
13
13
|
.option("--menuUuid <uuid>", "菜单 UUID");
|
|
@@ -51,7 +51,7 @@ export function registerAnalysisCommands(program) {
|
|
|
51
51
|
tool
|
|
52
52
|
.command("search <keyword>")
|
|
53
53
|
.description("按工具 id、标题、路径或 route 搜索")
|
|
54
|
-
.option("--toolProductUuid <uuid>", "工具产品 UUID
|
|
54
|
+
.option("--toolProductUuid <uuid>", "工具产品 UUID,默认主产品")
|
|
55
55
|
.option(...FORMAT)
|
|
56
56
|
.action(async (keyword, opts) => {
|
|
57
57
|
await runAnalysisCommand("tool search", () => runToolSearch(keyword, opts.toolProductUuid));
|
|
@@ -59,7 +59,7 @@ export function registerAnalysisCommands(program) {
|
|
|
59
59
|
tool
|
|
60
60
|
.command("menus")
|
|
61
61
|
.description("列出工具目录(标题、module_id、path、route)")
|
|
62
|
-
.option("--toolProductUuid <uuid>", "工具产品 UUID
|
|
62
|
+
.option("--toolProductUuid <uuid>", "工具产品 UUID,默认主产品")
|
|
63
63
|
.option(...FORMAT)
|
|
64
64
|
.action(async (opts) => {
|
|
65
65
|
await runAnalysisCommand("tool menus", () => runToolMenus(opts.toolProductUuid));
|
|
@@ -67,7 +67,7 @@ export function registerAnalysisCommands(program) {
|
|
|
67
67
|
tool
|
|
68
68
|
.command("inspect <tool>")
|
|
69
69
|
.description("查看工具动态输入与参数 schema")
|
|
70
|
-
.option("--toolProductUuid <uuid>", "工具产品 UUID
|
|
70
|
+
.option("--toolProductUuid <uuid>", "工具产品 UUID,默认主产品")
|
|
71
71
|
.option(...FORMAT)
|
|
72
72
|
.action(async (name, opts) => {
|
|
73
73
|
await runAnalysisCommand("tool inspect", () => runToolInspect(name, opts.toolProductUuid));
|
|
@@ -82,7 +82,7 @@ export function registerAnalysisCommands(program) {
|
|
|
82
82
|
.option("--recordJson <json>", "当前云端记录种子 JSON")
|
|
83
83
|
.option("--recordFile <path>", "当前云端记录种子 JSON 文件")
|
|
84
84
|
.option("--uuid <uuid>", "工具 UUID")
|
|
85
|
-
.option("--toolProductUuid <uuid>", "工具产品 UUID
|
|
85
|
+
.option("--toolProductUuid <uuid>", "工具产品 UUID,默认主产品")
|
|
86
86
|
.option(...FORMAT);
|
|
87
87
|
cloud.action(async (name, opts) => {
|
|
88
88
|
await runAnalysisCommand("tool cloud", () => runToolCloud(name, opts));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/analysis/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,GAAG,CAAC,mBAAmB,EAAE,kCAAkC,EAAE,MAAM,CAAU,CAAC;AAE1F,SAAS,OAAO,CAAC,KAAa,EAAE,WAAqB,EAAE;IACrD,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,OAAO,OAAO;SACX,MAAM,CAAC,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/analysis/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { type JsonObject } from "./json.js";
|
|
2
2
|
export declare function parseSetOverrides(entries: string[] | undefined): JsonObject;
|
|
3
|
+
export declare function assertOverrideSides(input: {
|
|
4
|
+
sets?: string[];
|
|
5
|
+
specifics?: string[];
|
|
6
|
+
mainSchema: unknown[];
|
|
7
|
+
specificSchema: unknown[];
|
|
8
|
+
}): void;
|
|
9
|
+
export declare function clarifyConfArgsMessage(message: string): string;
|
|
3
10
|
export declare function applySpecificOverrides(base: JsonObject, entries: string[] | undefined): JsonObject;
|
|
4
11
|
export declare function loadArgsMainConfig(moduleId: string, configPath: string | undefined): Promise<JsonObject>;
|
|
5
12
|
//# sourceMappingURL=overrides.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/overrides.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/overrides.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAI7E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,UAAU,CAiB3E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,cAAc,EAAE,OAAO,EAAE,CAAC;CAC3B,GAAG,IAAI,CAKP;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO9D;AA+BD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,UAAU,CAuBlG;AAGD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { AnalysisError } from "./errors.js";
|
|
3
|
-
import { asObject, isJsonObject } from "./json.js";
|
|
3
|
+
import { asArray, asObject, isJsonObject } from "./json.js";
|
|
4
4
|
import { resolveUserPath } from "../../core/paths.js";
|
|
5
5
|
// --set 写入 args_main,路径末段不是 value 时自动补 .value
|
|
6
6
|
export function parseSetOverrides(entries) {
|
|
@@ -21,6 +21,41 @@ export function parseSetOverrides(entries) {
|
|
|
21
21
|
}
|
|
22
22
|
return result;
|
|
23
23
|
}
|
|
24
|
+
export function assertOverrideSides(input) {
|
|
25
|
+
const mainKeys = new Set(schemaSectionKeys(input.mainSchema));
|
|
26
|
+
const specificKeys = new Set(schemaFieldKeys(input.specificSchema));
|
|
27
|
+
rejectMisplaced(input.sets, mainKeys, specificKeys, "--set", "--specific", "args_specific");
|
|
28
|
+
rejectMisplaced(input.specifics, specificKeys, mainKeys, "--specific", "--set", "args_main");
|
|
29
|
+
}
|
|
30
|
+
export function clarifyConfArgsMessage(message) {
|
|
31
|
+
const match = message.match(/args_(specific|main)的\[([^\]]+)\]不在conf_args/);
|
|
32
|
+
if (!match)
|
|
33
|
+
return message;
|
|
34
|
+
if (match[1] === "specific") {
|
|
35
|
+
return `\`--specific\` 的 \`${match[2]}\` 在 args_main 中,请改用 \`--set\`。`;
|
|
36
|
+
}
|
|
37
|
+
return `\`--set\` 的 \`${match[2]}\` 在 args_specific 中,请改用 \`--specific\`。`;
|
|
38
|
+
}
|
|
39
|
+
function schemaSectionKeys(sections) {
|
|
40
|
+
return sections.flatMap((section) => {
|
|
41
|
+
const key = asObject(section)?.key;
|
|
42
|
+
return typeof key === "string" && key ? [key] : [];
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function schemaFieldKeys(fields) {
|
|
46
|
+
return asArray(fields).flatMap((field) => {
|
|
47
|
+
const key = asObject(field)?.key;
|
|
48
|
+
return typeof key === "string" && key ? [key] : [];
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function rejectMisplaced(entries, ownKeys, otherKeys, flag, otherFlag, otherName) {
|
|
52
|
+
for (const entry of entries ?? []) {
|
|
53
|
+
const key = entry.split("=")[0]?.split(".")[0]?.trim();
|
|
54
|
+
if (!key || ownKeys.has(key) || !otherKeys.has(key))
|
|
55
|
+
continue;
|
|
56
|
+
throw new AnalysisError(`\`${flag}\` 的 \`${key}\` 在 ${otherName} 中,请改用 \`${otherFlag}\`。`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
24
59
|
export function applySpecificOverrides(base, entries) {
|
|
25
60
|
const result = structuredClone(base);
|
|
26
61
|
for (const entry of entries ?? []) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/modules/analysis/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAmB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/modules/analysis/overrides.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/prepare.ts"],"names":[],"mappings":"AAQA,OAAO,EAcL,KAAK,YAAY,EAEjB,KAAK,aAAa,EAGnB,MAAM,UAAU,CAAC;AAGlB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA6C,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/prepare.ts"],"names":[],"mappings":"AAQA,OAAO,EAcL,KAAK,YAAY,EAEjB,KAAK,aAAa,EAGnB,MAAM,UAAU,CAAC;AAGlB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA6C,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAUvF,KAAK,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAejE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC;IACzB,kBAAkB,EAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,WAAW,CAAC,CAqEtB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzE;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2BlC;AA8HD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAK3E;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmCpB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/E,YAAY,GAAG,SAAS,CA0B1B;AA0KD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,WAAW,EAAE,EACrB,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAwDzD"}
|
|
@@ -4,10 +4,10 @@ import { resolveToolProductUuid, uploadLocalFile } from "./api.js";
|
|
|
4
4
|
import { fetchToolMenuOrFallback, resolveToolByCode, } from "./catalog.js";
|
|
5
5
|
import { buildSubmitArgsData, fetchAllArgs, fetchCloudPage, fetchHistoryDownloads, fetchHistoryPage, findHistoryByFuid, historyStatus, isHistoryFailed, isHistoryFinished, resolveDownloadUrl, submitModule, updateArgs, verifyUpload, } from "./bio.js";
|
|
6
6
|
import { AnalysisChoiceError, AnalysisError } from "./errors.js";
|
|
7
|
-
import { downloadToPath } from "./files.js";
|
|
7
|
+
import { downloadArtifact, downloadToPath } from "./files.js";
|
|
8
8
|
import { findArgsDataType, findDefaultCloud, findDefaultRecord, findRecordField, listUploadFields, } from "./inputs.js";
|
|
9
9
|
import { asObject, deepMerge, isJsonObject, textOf } from "./json.js";
|
|
10
|
-
import { applySpecificOverrides, loadArgsMainConfig, parseSetOverrides } from "./overrides.js";
|
|
10
|
+
import { applySpecificOverrides, assertOverrideSides, loadArgsMainConfig, parseSetOverrides, } from "./overrides.js";
|
|
11
11
|
import { resolveUserPath } from "../../core/paths.js";
|
|
12
12
|
import { buildArgsMainFromSchema, buildArgsSpecificFromSchema } from "./schema.js";
|
|
13
13
|
export async function prepareTool(tool, flags) {
|
|
@@ -51,6 +51,12 @@ export async function prepareTool(tool, flags) {
|
|
|
51
51
|
argsMain = deepMerge(buildArgsMainFromSchema(schema), setOverrides);
|
|
52
52
|
argsSpecific = applySpecificOverrides(buildArgsSpecificFromSchema(specificSchema), flags.specifics);
|
|
53
53
|
}
|
|
54
|
+
assertOverrideSides({
|
|
55
|
+
sets: flags.sets,
|
|
56
|
+
specifics: flags.specifics,
|
|
57
|
+
mainSchema: schema,
|
|
58
|
+
specificSchema,
|
|
59
|
+
});
|
|
54
60
|
return {
|
|
55
61
|
agent: ANALYSIS_AGENT_NAME,
|
|
56
62
|
argsMain,
|
|
@@ -159,51 +165,54 @@ async function downloadHistoryWithRetry(fuid, moduleId, flags) {
|
|
|
159
165
|
throw last ?? new AnalysisError("下载失败,请稍后重试");
|
|
160
166
|
}
|
|
161
167
|
function directPayload(prepared, result, paths) {
|
|
168
|
+
// 路径与下载项放在 args_main / body 之前:宿主会截断长 stdout
|
|
162
169
|
return {
|
|
163
|
-
|
|
164
|
-
args_main: prepared.argsMain,
|
|
165
|
-
args_specific: prepared.argsSpecific,
|
|
166
|
-
body: result.body,
|
|
170
|
+
artifact: downloadArtifact(paths[0]),
|
|
167
171
|
download_path: paths[0],
|
|
168
172
|
download_paths: paths,
|
|
169
173
|
downloads: result.downloads,
|
|
174
|
+
result_source: "direct",
|
|
175
|
+
module_id: prepared.moduleId,
|
|
176
|
+
route: prepared.route,
|
|
177
|
+
submission_message: result.message,
|
|
178
|
+
agent: prepared.agent,
|
|
170
179
|
duid: prepared.duid,
|
|
171
180
|
file: result.file ?? null,
|
|
172
181
|
history: null,
|
|
173
182
|
history_hint: null,
|
|
174
183
|
...prepared.inputSummary,
|
|
175
184
|
mode: prepared.inputMode,
|
|
176
|
-
module_id: prepared.moduleId,
|
|
177
185
|
notice: prepared.notice,
|
|
178
|
-
result_source: "direct",
|
|
179
|
-
route: prepared.route,
|
|
180
|
-
submission_message: result.message,
|
|
181
186
|
tool_product_uuid: prepared.toolProductUuid,
|
|
182
187
|
uuid: prepared.uuid,
|
|
188
|
+
args_specific: prepared.argsSpecific,
|
|
189
|
+
args_main: prepared.argsMain,
|
|
190
|
+
body: result.body,
|
|
183
191
|
};
|
|
184
192
|
}
|
|
185
193
|
function historyPayload(prepared, history, message, body, downloads, paths) {
|
|
186
194
|
return {
|
|
187
|
-
|
|
188
|
-
args_main: prepared.argsMain,
|
|
189
|
-
args_specific: prepared.argsSpecific,
|
|
190
|
-
body,
|
|
195
|
+
artifact: downloadArtifact(paths[0]),
|
|
191
196
|
download_path: paths[0],
|
|
192
197
|
download_paths: paths,
|
|
193
198
|
downloads,
|
|
194
|
-
|
|
195
|
-
file: null,
|
|
199
|
+
result_source: "history",
|
|
196
200
|
history,
|
|
197
201
|
history_hint: historyHint(history),
|
|
198
|
-
...prepared.inputSummary,
|
|
199
|
-
mode: prepared.inputMode,
|
|
200
202
|
module_id: prepared.moduleId,
|
|
201
|
-
notice: prepared.notice,
|
|
202
|
-
result_source: "history",
|
|
203
203
|
route: prepared.route,
|
|
204
204
|
submission_message: message,
|
|
205
|
+
agent: prepared.agent,
|
|
206
|
+
duid: prepared.duid,
|
|
207
|
+
file: null,
|
|
208
|
+
...prepared.inputSummary,
|
|
209
|
+
mode: prepared.inputMode,
|
|
210
|
+
notice: prepared.notice,
|
|
205
211
|
tool_product_uuid: prepared.toolProductUuid,
|
|
206
212
|
uuid: prepared.uuid,
|
|
213
|
+
args_specific: prepared.argsSpecific,
|
|
214
|
+
args_main: prepared.argsMain,
|
|
215
|
+
body,
|
|
207
216
|
};
|
|
208
217
|
}
|
|
209
218
|
export function historyHint(history) {
|
|
@@ -220,13 +229,22 @@ export async function downloadResult(input) {
|
|
|
220
229
|
outputPath: input.downloadPath,
|
|
221
230
|
});
|
|
222
231
|
if (!item) {
|
|
223
|
-
throw
|
|
232
|
+
throw downloadChoiceError(input.downloads, "当前结果包含多个可下载文件。分析已经完成,请用 `--downloadLabel <名称>` 选择后再保存。第 1 项通常是整份报告 zip,不要用它代替图片或表格。");
|
|
233
|
+
}
|
|
234
|
+
let resolved;
|
|
235
|
+
try {
|
|
236
|
+
resolved = await resolveDownloadUrl({
|
|
237
|
+
item,
|
|
238
|
+
moduleId: input.moduleId,
|
|
239
|
+
uuid: input.uuid,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
if (error instanceof AnalysisError && error.message === "未获取到下载链接") {
|
|
244
|
+
throw downloadChoiceError(input.downloads, `未获取到「${item.label}」(${item.device}) 的下载链接。分析已经完成,请改用 --downloadLabel 选择 pdf、tiff 或表格。第 1 项整份报告 zip 经常没有链接。`);
|
|
245
|
+
}
|
|
246
|
+
throw error;
|
|
224
247
|
}
|
|
225
|
-
const resolved = await resolveDownloadUrl({
|
|
226
|
-
item,
|
|
227
|
-
moduleId: input.moduleId,
|
|
228
|
-
uuid: input.uuid,
|
|
229
|
-
});
|
|
230
248
|
return [await downloadToPath(resolved.url, input.downloadPath)];
|
|
231
249
|
}
|
|
232
250
|
if (input.file) {
|
|
@@ -247,8 +265,9 @@ export function pickDownloadItem(items, options) {
|
|
|
247
265
|
if (matched.length === 1)
|
|
248
266
|
return matched[0];
|
|
249
267
|
if (matched.length > 1) {
|
|
250
|
-
throw
|
|
268
|
+
throw downloadChoiceError(items, `下载格式 ${device} 匹配到多个结果。分析已经完成,请用 \`--downloadItem <n>\` 或 \`--downloadLabel <名称>\` 选择后再保存,不要重新检索工具。`);
|
|
251
269
|
}
|
|
270
|
+
throw downloadChoiceError(items, `没有 ${device} 格式的产物。分析已经完成,请按下列名称用 \`--downloadItem <n>\` 或 \`--downloadLabel <名称>\` 保存,不要重新检索工具。`);
|
|
252
271
|
}
|
|
253
272
|
const preferred = items.filter((item) => item.endpoint === "public.output.download-result");
|
|
254
273
|
if (preferred.length === 1)
|
|
@@ -477,7 +496,7 @@ async function resolveModule(tool, flags, toolProductUuid) {
|
|
|
477
496
|
}
|
|
478
497
|
const resolved = await resolveToolByCode(toolProductUuid, moduleId);
|
|
479
498
|
return {
|
|
480
|
-
moduleId,
|
|
499
|
+
moduleId: resolved.code,
|
|
481
500
|
route: route || resolved.route,
|
|
482
501
|
toolProductUuid,
|
|
483
502
|
uuid: uuid || resolved.uuid,
|
|
@@ -795,7 +814,7 @@ function pickByLabel(items, label) {
|
|
|
795
814
|
if (matched.length === 1)
|
|
796
815
|
return matched[0];
|
|
797
816
|
if (matched.length > 1) {
|
|
798
|
-
throw
|
|
817
|
+
throw downloadChoiceError(items, `下载项名称 ${label} 匹配到多个结果。分析已经完成,请改用 \`--downloadItem <n>\` 精确选择,不要重新检索工具。`);
|
|
799
818
|
}
|
|
800
819
|
return undefined;
|
|
801
820
|
}
|
|
@@ -813,6 +832,18 @@ function normalizeDevice(value) {
|
|
|
813
832
|
return "jpeg";
|
|
814
833
|
return device;
|
|
815
834
|
}
|
|
835
|
+
function downloadChoiceError(items, lead) {
|
|
836
|
+
return new AnalysisChoiceError(`${lead}\n${multipleDownloadsMessage(items)}`, {
|
|
837
|
+
choices: items.map((item, index) => ({
|
|
838
|
+
device: item.device,
|
|
839
|
+
endpoint: item.endpoint,
|
|
840
|
+
fuid: item.fuid,
|
|
841
|
+
index: index + 1,
|
|
842
|
+
label: item.label,
|
|
843
|
+
})),
|
|
844
|
+
selection_type: "download",
|
|
845
|
+
});
|
|
846
|
+
}
|
|
816
847
|
function multipleDownloadsMessage(items) {
|
|
817
848
|
const lines = [
|
|
818
849
|
"当前结果包含多个可下载文件,请使用 `--downloadItem`、`--downloadLabel`、`--item`、`--label` 或带目标扩展名的路径明确选择。",
|