helixlife-expert-cli 0.3.1 → 0.3.3

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 (84) hide show
  1. package/README.md +3 -3
  2. package/cli/bin/helixlife-expert.js +1 -1
  3. package/cli/dist/modules/analysis/api.d.ts +28 -0
  4. package/cli/dist/modules/analysis/api.d.ts.map +1 -0
  5. package/cli/dist/modules/analysis/api.js +264 -0
  6. package/cli/dist/modules/analysis/api.js.map +1 -0
  7. package/cli/dist/modules/analysis/bio.d.ts +159 -0
  8. package/cli/dist/modules/analysis/bio.d.ts.map +1 -0
  9. package/cli/dist/modules/analysis/bio.js +275 -0
  10. package/cli/dist/modules/analysis/bio.js.map +1 -0
  11. package/cli/dist/modules/analysis/catalog.d.ts +21 -0
  12. package/cli/dist/modules/analysis/catalog.d.ts.map +1 -0
  13. package/cli/dist/modules/analysis/catalog.js +123 -0
  14. package/cli/dist/modules/analysis/catalog.js.map +1 -0
  15. package/cli/dist/modules/analysis/commands.d.ts +15 -0
  16. package/cli/dist/modules/analysis/commands.d.ts.map +1 -0
  17. package/cli/dist/modules/analysis/commands.js +463 -0
  18. package/cli/dist/modules/analysis/commands.js.map +1 -0
  19. package/cli/dist/modules/analysis/constants.d.ts +14 -0
  20. package/cli/dist/modules/analysis/constants.d.ts.map +1 -1
  21. package/cli/dist/modules/analysis/constants.js +15 -0
  22. package/cli/dist/modules/analysis/constants.js.map +1 -1
  23. package/cli/dist/modules/analysis/errors.d.ts +11 -0
  24. package/cli/dist/modules/analysis/errors.d.ts.map +1 -0
  25. package/cli/dist/modules/analysis/errors.js +84 -0
  26. package/cli/dist/modules/analysis/errors.js.map +1 -0
  27. package/cli/dist/modules/analysis/files.d.ts +2 -0
  28. package/cli/dist/modules/analysis/files.d.ts.map +1 -0
  29. package/cli/dist/modules/analysis/files.js +33 -0
  30. package/cli/dist/modules/analysis/files.js.map +1 -0
  31. package/cli/dist/modules/analysis/flags.d.ts +27 -0
  32. package/cli/dist/modules/analysis/flags.d.ts.map +1 -0
  33. package/cli/dist/modules/analysis/flags.js +58 -0
  34. package/cli/dist/modules/analysis/flags.js.map +1 -0
  35. package/cli/dist/modules/analysis/index.d.ts.map +1 -1
  36. package/cli/dist/modules/analysis/index.js +154 -7
  37. package/cli/dist/modules/analysis/index.js.map +1 -1
  38. package/cli/dist/modules/analysis/inputs.d.ts +36 -0
  39. package/cli/dist/modules/analysis/inputs.d.ts.map +1 -0
  40. package/cli/dist/modules/analysis/inputs.js +120 -0
  41. package/cli/dist/modules/analysis/inputs.js.map +1 -0
  42. package/cli/dist/modules/analysis/json.d.ts +7 -0
  43. package/cli/dist/modules/analysis/json.d.ts.map +1 -0
  44. package/cli/dist/modules/analysis/json.js +30 -0
  45. package/cli/dist/modules/analysis/json.js.map +1 -0
  46. package/cli/dist/modules/analysis/overrides.d.ts +5 -0
  47. package/cli/dist/modules/analysis/overrides.d.ts.map +1 -0
  48. package/cli/dist/modules/analysis/overrides.js +150 -0
  49. package/cli/dist/modules/analysis/overrides.js.map +1 -0
  50. package/cli/dist/modules/analysis/prepare.d.ts +47 -0
  51. package/cli/dist/modules/analysis/prepare.d.ts.map +1 -0
  52. package/cli/dist/modules/analysis/prepare.js +910 -0
  53. package/cli/dist/modules/analysis/prepare.js.map +1 -0
  54. package/cli/dist/modules/analysis/schema.d.ts +5 -0
  55. package/cli/dist/modules/analysis/schema.d.ts.map +1 -0
  56. package/cli/dist/modules/analysis/schema.js +39 -0
  57. package/cli/dist/modules/analysis/schema.js.map +1 -0
  58. package/cli/dist/modules/expert-scaffold.d.ts.map +1 -1
  59. package/cli/dist/modules/expert-scaffold.js +1 -0
  60. package/cli/dist/modules/expert-scaffold.js.map +1 -1
  61. package/cli/dist/modules/fund/index.d.ts.map +1 -1
  62. package/cli/dist/modules/fund/index.js +1 -0
  63. package/cli/dist/modules/fund/index.js.map +1 -1
  64. package/cli/dist/modules/literature/index.d.ts.map +1 -1
  65. package/cli/dist/modules/literature/index.js +1 -0
  66. package/cli/dist/modules/literature/index.js.map +1 -1
  67. package/cli/dist/modules/meta/index.d.ts.map +1 -1
  68. package/cli/dist/modules/meta/index.js +1 -0
  69. package/cli/dist/modules/meta/index.js.map +1 -1
  70. package/cli/dist/modules/proposal/index.d.ts.map +1 -1
  71. package/cli/dist/modules/proposal/index.js +2 -0
  72. package/cli/dist/modules/proposal/index.js.map +1 -1
  73. package/cli/dist/modules/sci/index.d.ts.map +1 -1
  74. package/cli/dist/modules/sci/index.js +1 -0
  75. package/cli/dist/modules/sci/index.js.map +1 -1
  76. package/cli/dist/modules/shared/workflow-app/command.js +11 -11
  77. package/cli/dist/modules/shared/workflow-app/command.js.map +1 -1
  78. package/cli/dist/modules/upgrade/index.d.ts.map +1 -1
  79. package/cli/dist/modules/upgrade/index.js +1 -0
  80. package/cli/dist/modules/upgrade/index.js.map +1 -1
  81. package/cli/dist/program.d.ts.map +1 -1
  82. package/cli/dist/program.js +3 -1
  83. package/cli/dist/program.js.map +1 -1
  84. package/package.json +1 -1
@@ -0,0 +1,150 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { AnalysisError } from "./errors.js";
3
+ import { asObject, isJsonObject } from "./json.js";
4
+ import { resolveUserPath } from "../../core/paths.js";
5
+ // --set 写入 args_main,路径末段不是 value 时自动补 .value
6
+ export function parseSetOverrides(entries) {
7
+ const result = {};
8
+ for (const entry of entries ?? []) {
9
+ const splitAt = entry.indexOf("=");
10
+ if (splitAt <= 0 || splitAt === entry.length - 1) {
11
+ throw new AnalysisError(`--set 参数格式不正确: ${entry}`);
12
+ }
13
+ const rawPath = entry.slice(0, splitAt).trim();
14
+ const rawValue = entry.slice(splitAt + 1).trim();
15
+ const parts = rawPath.split(".").filter(Boolean);
16
+ if (parts.length === 0) {
17
+ throw new AnalysisError(`--set 参数格式不正确: ${entry}`);
18
+ }
19
+ const path = parts.at(-1) === "value" ? parts : [...parts, "value"];
20
+ assignObjectPath(result, path, parseOverrideValue(rawValue, "--set"));
21
+ }
22
+ return result;
23
+ }
24
+ export function applySpecificOverrides(base, entries) {
25
+ const result = structuredClone(base);
26
+ for (const entry of entries ?? []) {
27
+ const splitAt = entry.indexOf("=");
28
+ if (splitAt <= 0 || splitAt === entry.length - 1) {
29
+ throw new AnalysisError(`--specific 参数格式不正确: ${entry}`);
30
+ }
31
+ const rawPath = entry.slice(0, splitAt).trim();
32
+ const rawValue = entry.slice(splitAt + 1).trim();
33
+ if (!rawPath) {
34
+ throw new AnalysisError(`--specific 参数格式不正确: ${entry}`);
35
+ }
36
+ const parts = rawPath.split(".").filter(Boolean);
37
+ if (parts.length === 0) {
38
+ throw new AnalysisError(`--specific 参数格式不正确: ${entry}`);
39
+ }
40
+ if (parts.length === 1) {
41
+ result[parts[0]] = parseOverrideValue(rawValue, "--specific");
42
+ continue;
43
+ }
44
+ assignNested(result, parts, parseOverrideValue(rawValue, "--specific"), "--specific");
45
+ }
46
+ return result;
47
+ }
48
+ // --config 文件:优先 plots[module].argsMain,其次 argsMain,否则整份对象当作覆盖
49
+ export async function loadArgsMainConfig(moduleId, configPath) {
50
+ if (!configPath) {
51
+ return {};
52
+ }
53
+ const raw = await readFile(resolveUserPath(configPath), "utf8");
54
+ let parsed;
55
+ try {
56
+ parsed = JSON.parse(raw);
57
+ }
58
+ catch {
59
+ throw new AnalysisError(`--config 不是合法 JSON。`);
60
+ }
61
+ if (!isJsonObject(parsed)) {
62
+ throw new AnalysisError(`JSON 配置格式不正确: ${configPath}`);
63
+ }
64
+ const plots = asObject(parsed.plots);
65
+ const moduleConfig = plots ? asObject(plots[moduleId]) : undefined;
66
+ const moduleArgs = moduleConfig ? asObject(moduleConfig.argsMain) : undefined;
67
+ if (moduleArgs) {
68
+ return moduleArgs;
69
+ }
70
+ const argsMain = asObject(parsed.argsMain);
71
+ return argsMain ?? parsed;
72
+ }
73
+ function parseOverrideValue(raw, flag) {
74
+ if (raw === "true")
75
+ return true;
76
+ if (raw === "false")
77
+ return false;
78
+ if (raw === "null")
79
+ return null;
80
+ if (/^-?\d+(\.\d+)?$/.test(raw))
81
+ return Number(raw);
82
+ if (raw.startsWith("{") || raw.startsWith("[") || raw.startsWith('"')) {
83
+ try {
84
+ return JSON.parse(raw);
85
+ }
86
+ catch {
87
+ throw new AnalysisError(`${flag} 参数值不是合法 JSON: ${raw}`);
88
+ }
89
+ }
90
+ return raw;
91
+ }
92
+ function assignObjectPath(target, path, value) {
93
+ let cursor = target;
94
+ for (const key of path.slice(0, -1)) {
95
+ const next = cursor[key];
96
+ if (!isJsonObject(next)) {
97
+ cursor[key] = {};
98
+ }
99
+ cursor = cursor[key];
100
+ }
101
+ cursor[path.at(-1)] = value;
102
+ }
103
+ function assignNested(target, path, value, flag) {
104
+ let cursor = target;
105
+ for (let index = 0; index < path.length - 1; index += 1) {
106
+ const key = path[index];
107
+ const nextKey = path[index + 1];
108
+ const current = readChild(cursor, key, flag);
109
+ if (isJsonObject(current) || Array.isArray(current)) {
110
+ cursor = current;
111
+ continue;
112
+ }
113
+ const created = isIndex(nextKey) ? [] : {};
114
+ writeChild(cursor, key, created, flag);
115
+ cursor = created;
116
+ }
117
+ writeChild(cursor, path.at(-1), value, flag);
118
+ }
119
+ function readChild(target, key, flag) {
120
+ if (Array.isArray(target)) {
121
+ return target[requireIndex(key, flag)];
122
+ }
123
+ if (isJsonObject(target)) {
124
+ return target[key];
125
+ }
126
+ return undefined;
127
+ }
128
+ function writeChild(target, key, value, flag) {
129
+ if (Array.isArray(target)) {
130
+ const index = requireIndex(key, flag);
131
+ if (index > target.length) {
132
+ throw new AnalysisError(`${flag} 数组索引超出范围: ${key}`);
133
+ }
134
+ target[index] = value;
135
+ return;
136
+ }
137
+ if (isJsonObject(target)) {
138
+ target[key] = value;
139
+ }
140
+ }
141
+ function requireIndex(raw, flag) {
142
+ if (!isIndex(raw)) {
143
+ throw new AnalysisError(`${flag} 数组路径必须使用非负整数索引: ${raw}`);
144
+ }
145
+ return Number(raw);
146
+ }
147
+ function isIndex(raw) {
148
+ return /^(0|[1-9]\d*)$/.test(raw);
149
+ }
150
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/modules/analysis/overrides.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { type DownloadItem, type PreparedInput } from "./bio.js";
2
+ import type { ToolRunFlags } from "./flags.js";
3
+ import { type UploadField } from "./inputs.js";
4
+ import { type JsonObject } from "./json.js";
5
+ type InputMode = "demo" | "upload" | "record" | "cloud" | "none";
6
+ export interface PreparedRun {
7
+ agent: string;
8
+ argsMain: JsonObject;
9
+ argsSpecific: JsonObject;
10
+ argsSpecificSchema: unknown[];
11
+ duid: string;
12
+ input: PreparedInput;
13
+ inputMode: InputMode;
14
+ inputSummary: JsonObject;
15
+ moduleId: string;
16
+ notice: string;
17
+ route: string;
18
+ schema: unknown[];
19
+ toolProductUuid: string;
20
+ uuid: string;
21
+ }
22
+ export declare function prepareTool(tool: string | undefined, flags: ToolRunFlags): Promise<PreparedRun>;
23
+ export declare function preparedPayload(run: PreparedRun): Record<string, unknown>;
24
+ export declare function executeTool(tool: string | undefined, flags: ToolRunFlags): Promise<Record<string, unknown>>;
25
+ export declare function historyHint(history: Record<string, unknown> | null): string;
26
+ export declare function downloadResult(input: {
27
+ moduleId: string;
28
+ uuid: string;
29
+ downloads: DownloadItem[];
30
+ file?: string;
31
+ downloadPath?: string;
32
+ downloadItem?: number;
33
+ downloadLabel?: string;
34
+ }): Promise<string[]>;
35
+ export declare function pickDownloadItem(items: DownloadItem[], options: {
36
+ item?: number;
37
+ label?: string;
38
+ outputPath?: string;
39
+ device?: string;
40
+ }): DownloadItem | undefined;
41
+ export declare function resolveUploadInputs(files: string[], fields: UploadField[], moduleId: string): Array<{
42
+ filePath: string;
43
+ key: string;
44
+ label: string;
45
+ }>;
46
+ export {};
47
+ //# sourceMappingURL=prepare.d.ts.map
@@ -0,0 +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;AAKvF,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,CA+DtB;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;AA2HD,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,CAqBpB;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,CAqB1B;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"}