helixlife-expert-cli 0.3.2 → 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.
- package/README.md +3 -3
- package/cli/dist/modules/analysis/api.d.ts +28 -0
- package/cli/dist/modules/analysis/api.d.ts.map +1 -0
- package/cli/dist/modules/analysis/api.js +264 -0
- package/cli/dist/modules/analysis/api.js.map +1 -0
- package/cli/dist/modules/analysis/bio.d.ts +159 -0
- package/cli/dist/modules/analysis/bio.d.ts.map +1 -0
- package/cli/dist/modules/analysis/bio.js +275 -0
- package/cli/dist/modules/analysis/bio.js.map +1 -0
- package/cli/dist/modules/analysis/catalog.d.ts +21 -0
- package/cli/dist/modules/analysis/catalog.d.ts.map +1 -0
- package/cli/dist/modules/analysis/catalog.js +123 -0
- package/cli/dist/modules/analysis/catalog.js.map +1 -0
- package/cli/dist/modules/analysis/commands.d.ts +15 -0
- package/cli/dist/modules/analysis/commands.d.ts.map +1 -0
- package/cli/dist/modules/analysis/commands.js +463 -0
- package/cli/dist/modules/analysis/commands.js.map +1 -0
- package/cli/dist/modules/analysis/constants.d.ts +14 -0
- package/cli/dist/modules/analysis/constants.d.ts.map +1 -1
- package/cli/dist/modules/analysis/constants.js +15 -0
- package/cli/dist/modules/analysis/constants.js.map +1 -1
- package/cli/dist/modules/analysis/errors.d.ts +11 -0
- package/cli/dist/modules/analysis/errors.d.ts.map +1 -0
- package/cli/dist/modules/analysis/errors.js +84 -0
- package/cli/dist/modules/analysis/errors.js.map +1 -0
- package/cli/dist/modules/analysis/files.d.ts +2 -0
- package/cli/dist/modules/analysis/files.d.ts.map +1 -0
- package/cli/dist/modules/analysis/files.js +33 -0
- package/cli/dist/modules/analysis/files.js.map +1 -0
- package/cli/dist/modules/analysis/flags.d.ts +27 -0
- package/cli/dist/modules/analysis/flags.d.ts.map +1 -0
- package/cli/dist/modules/analysis/flags.js +58 -0
- package/cli/dist/modules/analysis/flags.js.map +1 -0
- package/cli/dist/modules/analysis/index.d.ts.map +1 -1
- package/cli/dist/modules/analysis/index.js +154 -8
- package/cli/dist/modules/analysis/index.js.map +1 -1
- package/cli/dist/modules/analysis/inputs.d.ts +36 -0
- package/cli/dist/modules/analysis/inputs.d.ts.map +1 -0
- package/cli/dist/modules/analysis/inputs.js +120 -0
- package/cli/dist/modules/analysis/inputs.js.map +1 -0
- package/cli/dist/modules/analysis/json.d.ts +7 -0
- package/cli/dist/modules/analysis/json.d.ts.map +1 -0
- package/cli/dist/modules/analysis/json.js +30 -0
- package/cli/dist/modules/analysis/json.js.map +1 -0
- package/cli/dist/modules/analysis/overrides.d.ts +5 -0
- package/cli/dist/modules/analysis/overrides.d.ts.map +1 -0
- package/cli/dist/modules/analysis/overrides.js +150 -0
- package/cli/dist/modules/analysis/overrides.js.map +1 -0
- package/cli/dist/modules/analysis/prepare.d.ts +47 -0
- package/cli/dist/modules/analysis/prepare.d.ts.map +1 -0
- package/cli/dist/modules/analysis/prepare.js +910 -0
- package/cli/dist/modules/analysis/prepare.js.map +1 -0
- package/cli/dist/modules/analysis/schema.d.ts +5 -0
- package/cli/dist/modules/analysis/schema.d.ts.map +1 -0
- package/cli/dist/modules/analysis/schema.js +39 -0
- package/cli/dist/modules/analysis/schema.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { emitJson, helixlifeError, resolveUserPath } from "../../core/index.js";
|
|
3
|
+
import { ANALYSIS_AGENT_NAME, ANALYSIS_HISTORY_UUID } from "./constants.js";
|
|
4
|
+
import { fetchToolMenus, resolveToolProductUuid } from "./api.js";
|
|
5
|
+
import { fetchToolMenuOrFallback, listMenuSummaries, resolveToolByCode, searchTools, } from "./catalog.js";
|
|
6
|
+
import { deleteHistory, fetchAllArgs, fetchCloudPage, fetchHistoryDownloads, fetchHistoryPage, findHistoryByFuid, historyStatus, renameHistory, resolveDownloadUrl, saveOutput, searchSpecificOptions, buildSubmitArgsData, } from "./bio.js";
|
|
7
|
+
import { AnalysisError, createErrorEnvelope, createSuccessEnvelope } from "./errors.js";
|
|
8
|
+
import { downloadToPath } from "./files.js";
|
|
9
|
+
import { readToolRunFlags } from "./flags.js";
|
|
10
|
+
import { findDefaultCloud, findDefaultRecord, findRecordField, listUploadFields, } from "./inputs.js";
|
|
11
|
+
import { asObject, isJsonObject, textOf } from "./json.js";
|
|
12
|
+
import { executeTool, pickDownloadItem, prepareTool, preparedPayload } from "./prepare.js";
|
|
13
|
+
import { buildArgsMainFromSchema, buildArgsSpecificFromSchema } from "./schema.js";
|
|
14
|
+
export async function runAnalysisCommand(command, action) {
|
|
15
|
+
try {
|
|
16
|
+
emitJson(createSuccessEnvelope(command, await action()));
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
if (error instanceof helixlifeError) {
|
|
20
|
+
throw error;
|
|
21
|
+
}
|
|
22
|
+
const normalized = error instanceof AnalysisError
|
|
23
|
+
? error
|
|
24
|
+
: new AnalysisError(error instanceof Error ? error.message : String(error));
|
|
25
|
+
emitJson(createErrorEnvelope(command, normalized));
|
|
26
|
+
process.exitCode = 1;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export async function runToolSearch(keyword, toolProductUuid) {
|
|
30
|
+
const product = resolveToolProductUuid(toolProductUuid);
|
|
31
|
+
const tools = searchTools(await fetchToolMenus(product), keyword);
|
|
32
|
+
return {
|
|
33
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
34
|
+
keyword,
|
|
35
|
+
tool_product_uuid: product,
|
|
36
|
+
tools,
|
|
37
|
+
total: tools.length,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export async function runToolMenus(toolProductUuid) {
|
|
41
|
+
const product = resolveToolProductUuid(toolProductUuid);
|
|
42
|
+
const menus = listMenuSummaries(await fetchToolMenus(product));
|
|
43
|
+
return {
|
|
44
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
45
|
+
menus,
|
|
46
|
+
tool_product_uuid: product,
|
|
47
|
+
total: menus.length,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export async function runToolInspect(tool, toolProductUuid) {
|
|
51
|
+
const product = resolveToolProductUuid(toolProductUuid);
|
|
52
|
+
const resolved = await resolveToolByCode(product, tool);
|
|
53
|
+
const fetched = await fetchAllArgs(tool, resolved.uuid);
|
|
54
|
+
const inputs = summarizeInputs(fetched.args_data, textOf(fetched.id.duid));
|
|
55
|
+
return {
|
|
56
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
57
|
+
args_data: fetched.args_data,
|
|
58
|
+
args_main: fetched.args_main,
|
|
59
|
+
args_main_defaults: buildArgsMainFromSchema(fetched.args_main),
|
|
60
|
+
args_specific: fetched.args_specific,
|
|
61
|
+
args_specific_defaults: buildArgsSpecificFromSchema(fetched.args_specific),
|
|
62
|
+
duid: textOf(fetched.id.duid),
|
|
63
|
+
inputs,
|
|
64
|
+
module_id: tool,
|
|
65
|
+
notice: fetched.notice,
|
|
66
|
+
path: resolved.path,
|
|
67
|
+
route: resolved.route,
|
|
68
|
+
summary: summarizeSchema(fetched.args_main),
|
|
69
|
+
title: resolved.title,
|
|
70
|
+
tool_product_uuid: product,
|
|
71
|
+
uuid: resolved.uuid,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export async function runToolPrepare(tool, rawFlags) {
|
|
75
|
+
return preparedPayload(await prepareTool(tool, readToolRunFlags(rawFlags)));
|
|
76
|
+
}
|
|
77
|
+
export async function runToolExec(tool, rawFlags) {
|
|
78
|
+
return executeTool(tool, readToolRunFlags(rawFlags));
|
|
79
|
+
}
|
|
80
|
+
export async function runToolCloud(tool, raw) {
|
|
81
|
+
if (raw.recordJson && raw.recordFile) {
|
|
82
|
+
throw new AnalysisError("`--recordJson` 与 `--recordFile` 不能同时使用。");
|
|
83
|
+
}
|
|
84
|
+
const product = resolveToolProductUuid(optionalText(raw.toolProductUuid));
|
|
85
|
+
const meta = await resolveCloudTool(product, tool, optionalText(raw.uuid));
|
|
86
|
+
const fetched = await fetchAllArgs(tool, meta.uuid);
|
|
87
|
+
const cloud = findDefaultCloud(fetched.args_data);
|
|
88
|
+
const argsKey = optionalText(raw.argsKey) || cloud?.key || "";
|
|
89
|
+
if (!argsKey) {
|
|
90
|
+
throw new AnalysisError(`模块 ${tool} 未自动识别云数据参数,请显式传入 \`--argsKey\`.`);
|
|
91
|
+
}
|
|
92
|
+
const selected = await readSelectedRecord(optionalText(raw.recordJson), optionalText(raw.recordFile), cloud?.record);
|
|
93
|
+
const page = positiveInt(raw.page, 1);
|
|
94
|
+
const first = await fetchCloudPage({
|
|
95
|
+
argsKey,
|
|
96
|
+
currentPage: page,
|
|
97
|
+
filter: optionalText(raw.filter) ?? "",
|
|
98
|
+
moduleId: tool,
|
|
99
|
+
selectedRecord: selected,
|
|
100
|
+
uuid: meta.uuid,
|
|
101
|
+
});
|
|
102
|
+
const pages = [first.currentPage];
|
|
103
|
+
const records = [...first.records];
|
|
104
|
+
if (raw.all === true) {
|
|
105
|
+
for (let current = first.currentPage + 1; current <= first.lastPage; current += 1) {
|
|
106
|
+
const next = await fetchCloudPage({
|
|
107
|
+
argsKey,
|
|
108
|
+
currentPage: current,
|
|
109
|
+
filter: optionalText(raw.filter) ?? "",
|
|
110
|
+
moduleId: tool,
|
|
111
|
+
selectedRecord: selected,
|
|
112
|
+
uuid: meta.uuid,
|
|
113
|
+
});
|
|
114
|
+
pages.push(next.currentPage);
|
|
115
|
+
records.push(...next.records);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
120
|
+
args_key: argsKey,
|
|
121
|
+
choices: records.map((record, index) => ({
|
|
122
|
+
data_id: textOf(record.data_id),
|
|
123
|
+
index,
|
|
124
|
+
label: textOf(record.label),
|
|
125
|
+
})),
|
|
126
|
+
columns: first.columnAttrs,
|
|
127
|
+
default_cloud: cloud
|
|
128
|
+
? { key: cloud.key, label: cloud.label, record: cloud.record }
|
|
129
|
+
: null,
|
|
130
|
+
filter: first.filter,
|
|
131
|
+
filter_keyword: optionalText(raw.filter) ?? "",
|
|
132
|
+
info: first.info,
|
|
133
|
+
module_id: tool,
|
|
134
|
+
page: first.currentPage,
|
|
135
|
+
pages_fetched: pages,
|
|
136
|
+
path: meta.path,
|
|
137
|
+
records,
|
|
138
|
+
route: meta.route,
|
|
139
|
+
selected_record: selected ?? null,
|
|
140
|
+
selected_record_source: raw.recordJson ? "record_json" : raw.recordFile ? "record_file" : cloud?.record ? "default" : "none",
|
|
141
|
+
title: meta.title,
|
|
142
|
+
tool_product_uuid: product,
|
|
143
|
+
total: first.total,
|
|
144
|
+
total_pages: first.lastPage,
|
|
145
|
+
uuid: meta.uuid,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export async function runSpecificSearch(tool, argsKey, query, rawFlags) {
|
|
149
|
+
const key = argsKey.trim();
|
|
150
|
+
const search = query.trim();
|
|
151
|
+
if (!search) {
|
|
152
|
+
throw new AnalysisError("搜索关键词不能为空。");
|
|
153
|
+
}
|
|
154
|
+
const flags = readToolRunFlags({ ...rawFlags, demo: false, file: [] });
|
|
155
|
+
const prepared = await prepareTool(tool, flags);
|
|
156
|
+
const field = prepared.argsSpecificSchema.map(asObject).find((item) => item?.key === key);
|
|
157
|
+
if (!field) {
|
|
158
|
+
throw new AnalysisError(`模块 ${prepared.moduleId} 未找到 argsSpecific 字段: ${key}`);
|
|
159
|
+
}
|
|
160
|
+
const type = textOf(field.type);
|
|
161
|
+
if (type && !type.includes("Search")) {
|
|
162
|
+
throw new AnalysisError(`字段 ${key} 不是动态搜索类型: ${type}`);
|
|
163
|
+
}
|
|
164
|
+
const selected = rawFlags.selected ?? prepared.argsSpecific[key] ?? field.default_value ?? "";
|
|
165
|
+
const options = await searchSpecificOptions({
|
|
166
|
+
argsData: buildSubmitArgsData(prepared.duid, prepared.input),
|
|
167
|
+
argsKey: key,
|
|
168
|
+
listen: field.listen ?? [],
|
|
169
|
+
moduleId: prepared.moduleId,
|
|
170
|
+
searchString: search,
|
|
171
|
+
selected,
|
|
172
|
+
uuid: prepared.uuid,
|
|
173
|
+
});
|
|
174
|
+
return {
|
|
175
|
+
agent: prepared.agent,
|
|
176
|
+
args_key: key,
|
|
177
|
+
choices: options.map((item, index) => toChoice(item, index)),
|
|
178
|
+
default_value: field.default_value ?? null,
|
|
179
|
+
field: {
|
|
180
|
+
key: field.key,
|
|
181
|
+
label: field.label ?? "",
|
|
182
|
+
listen: field.listen ?? [],
|
|
183
|
+
multiple: field.multiple ?? false,
|
|
184
|
+
type,
|
|
185
|
+
},
|
|
186
|
+
input_cloud: prepared.inputSummary.input_cloud,
|
|
187
|
+
input_record: prepared.inputSummary.input_record,
|
|
188
|
+
input_uploads: prepared.inputSummary.input_uploads,
|
|
189
|
+
mode: prepared.inputMode,
|
|
190
|
+
module_id: prepared.moduleId,
|
|
191
|
+
route: prepared.route,
|
|
192
|
+
search_string: search,
|
|
193
|
+
selected,
|
|
194
|
+
tool_product_uuid: prepared.toolProductUuid,
|
|
195
|
+
total: options.length,
|
|
196
|
+
uuid: prepared.uuid,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
export async function runHistoryList(pageRaw) {
|
|
200
|
+
const page = await fetchHistoryPage(positiveInt(pageRaw, 1));
|
|
201
|
+
const records = page.records.map((record) => ({
|
|
202
|
+
fuid: textOf(record.fuid),
|
|
203
|
+
id: typeof record.id === "number" ? record.id : null,
|
|
204
|
+
module_id: textOf(record.module_id),
|
|
205
|
+
module_name: textOf(record.module_name),
|
|
206
|
+
name: textOf(record.name),
|
|
207
|
+
status: historyStatus(record),
|
|
208
|
+
time: textOf(record.time),
|
|
209
|
+
type: textOf(record.type),
|
|
210
|
+
}));
|
|
211
|
+
return {
|
|
212
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
213
|
+
current_page: page.currentPage,
|
|
214
|
+
info: page.info,
|
|
215
|
+
last_page: page.lastPage,
|
|
216
|
+
per_page: page.perPage,
|
|
217
|
+
records,
|
|
218
|
+
total: page.total,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
export async function runHistoryView(fuid) {
|
|
222
|
+
const viewed = await fetchHistoryDownloads(fuid);
|
|
223
|
+
return {
|
|
224
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
225
|
+
downloads: viewed.downloads,
|
|
226
|
+
fuid,
|
|
227
|
+
body: viewed.body,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
export async function runHistoryDownload(fuid, raw) {
|
|
231
|
+
if (raw.item !== undefined && raw.item !== "" && raw.label) {
|
|
232
|
+
throw new AnalysisError("`--item` 与 `--label` 不能同时使用。");
|
|
233
|
+
}
|
|
234
|
+
const record = await findHistoryByFuid(fuid);
|
|
235
|
+
const moduleId = textOf(record?.module_id);
|
|
236
|
+
if (!moduleId) {
|
|
237
|
+
throw new AnalysisError(`未找到 fuid 为 ${fuid} 的历史记录。`);
|
|
238
|
+
}
|
|
239
|
+
const viewed = await fetchHistoryDownloads(fuid);
|
|
240
|
+
const item = pickDownloadItem(viewed.downloads, {
|
|
241
|
+
item: raw.item === undefined || raw.item === "" ? undefined : Number(raw.item),
|
|
242
|
+
label: optionalText(raw.label),
|
|
243
|
+
device: optionalText(raw.device),
|
|
244
|
+
outputPath: optionalText(raw.output),
|
|
245
|
+
});
|
|
246
|
+
if (!item) {
|
|
247
|
+
throw new AnalysisError(historyDownloadMessage(viewed.downloads));
|
|
248
|
+
}
|
|
249
|
+
const resolved = await resolveDownloadUrl({
|
|
250
|
+
item,
|
|
251
|
+
moduleId,
|
|
252
|
+
uuid: ANALYSIS_HISTORY_UUID,
|
|
253
|
+
});
|
|
254
|
+
const output = await downloadToPath(resolved.url, optionalText(raw.output));
|
|
255
|
+
return {
|
|
256
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
257
|
+
device: item.device,
|
|
258
|
+
endpoint: item.endpoint,
|
|
259
|
+
file_name: resolved.fileName ?? item.label,
|
|
260
|
+
fuid,
|
|
261
|
+
module_id: moduleId,
|
|
262
|
+
output,
|
|
263
|
+
url: resolved.url,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
export async function runHistoryRename(fuid, name) {
|
|
267
|
+
const record = await findHistoryByFuid(fuid);
|
|
268
|
+
await renameHistory(fuid, name);
|
|
269
|
+
return {
|
|
270
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
271
|
+
fuid,
|
|
272
|
+
module_id: textOf(record?.module_id),
|
|
273
|
+
module_name: textOf(record?.module_name),
|
|
274
|
+
name,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
export async function runHistoryDelete(fuid) {
|
|
278
|
+
const record = await findHistoryByFuid(fuid);
|
|
279
|
+
await deleteHistory(fuid);
|
|
280
|
+
return {
|
|
281
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
282
|
+
fuid,
|
|
283
|
+
module_id: textOf(record?.module_id),
|
|
284
|
+
module_name: textOf(record?.module_name),
|
|
285
|
+
name: textOf(record?.name),
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
export async function runHistorySave(fuid, uuid, moduleId, name) {
|
|
289
|
+
await saveOutput({ fuid, uuid, moduleId, name });
|
|
290
|
+
return {
|
|
291
|
+
agent: ANALYSIS_AGENT_NAME,
|
|
292
|
+
fuid,
|
|
293
|
+
module_id: moduleId,
|
|
294
|
+
name,
|
|
295
|
+
uuid,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
function summarizeInputs(argsData, duid) {
|
|
299
|
+
const uploads = listUploadFields(argsData);
|
|
300
|
+
const record = findDefaultRecord(argsData);
|
|
301
|
+
const cloud = findDefaultCloud(argsData);
|
|
302
|
+
const demo = !!(duid.trim() && uploads.length > 0 && uploads.every((field) => field.defaultUpload));
|
|
303
|
+
const recordAvailable = !!(duid.trim() && record);
|
|
304
|
+
const field = record ? findRecordField(argsData, record.key) : null;
|
|
305
|
+
return {
|
|
306
|
+
cloud_available: !!cloud,
|
|
307
|
+
cloud_default: cloud
|
|
308
|
+
? {
|
|
309
|
+
data_filter: optionValue(cloud.record.data_filter),
|
|
310
|
+
data_id: textOf(cloud.record.data_id),
|
|
311
|
+
data_process: optionValue(cloud.record.data_process),
|
|
312
|
+
key: cloud.key,
|
|
313
|
+
label: cloud.label,
|
|
314
|
+
record_label: textOf(cloud.record.label),
|
|
315
|
+
}
|
|
316
|
+
: null,
|
|
317
|
+
demo_available: demo,
|
|
318
|
+
record_available: recordAvailable,
|
|
319
|
+
record_default: recordAvailable && record
|
|
320
|
+
? {
|
|
321
|
+
key: record.key,
|
|
322
|
+
label: record.label,
|
|
323
|
+
module_id: record.moduleId,
|
|
324
|
+
module_name: record.moduleName,
|
|
325
|
+
record_id: record.recordId,
|
|
326
|
+
record_name: record.recordName,
|
|
327
|
+
time: record.time,
|
|
328
|
+
}
|
|
329
|
+
: null,
|
|
330
|
+
record_options: (field?.options ?? []).map((item) => ({
|
|
331
|
+
key: record?.key ?? "",
|
|
332
|
+
label: field?.label ?? "",
|
|
333
|
+
module_id: textOf(item.module_id),
|
|
334
|
+
module_name: textOf(item.module_name),
|
|
335
|
+
record_id: textOf(item.record_id),
|
|
336
|
+
record_name: textOf(item.record_name),
|
|
337
|
+
time: textOf(item.time),
|
|
338
|
+
})),
|
|
339
|
+
upload_available: uploads.length > 0,
|
|
340
|
+
upload_fields: uploads.map((fieldItem) => ({
|
|
341
|
+
demo_upload: fieldItem.defaultUpload
|
|
342
|
+
? {
|
|
343
|
+
file_name: fieldItem.defaultUpload.fileName,
|
|
344
|
+
file_oss: fieldItem.defaultUpload.fileOss,
|
|
345
|
+
file_size: fieldItem.defaultUpload.fileSize,
|
|
346
|
+
key: fieldItem.key,
|
|
347
|
+
label: fieldItem.label,
|
|
348
|
+
}
|
|
349
|
+
: null,
|
|
350
|
+
key: fieldItem.key,
|
|
351
|
+
label: fieldItem.label,
|
|
352
|
+
required: fieldItem.required,
|
|
353
|
+
})),
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
function summarizeSchema(sections) {
|
|
357
|
+
const fields = sections.flatMap((section) => {
|
|
358
|
+
const block = asObject(section);
|
|
359
|
+
return Array.isArray(block?.form) ? block.form : [];
|
|
360
|
+
});
|
|
361
|
+
return {
|
|
362
|
+
field_count: fields.length,
|
|
363
|
+
required_field_count: fields.filter((field) => asObject(field)?.required === true).length,
|
|
364
|
+
section_count: sections.length,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
async function resolveCloudTool(product, tool, uuid) {
|
|
368
|
+
if (!uuid) {
|
|
369
|
+
const resolved = await resolveToolByCode(product, tool);
|
|
370
|
+
return resolved;
|
|
371
|
+
}
|
|
372
|
+
const menu = await fetchToolMenuOrFallback(uuid, product);
|
|
373
|
+
const code = textOf(menu.code);
|
|
374
|
+
if (code && code !== tool) {
|
|
375
|
+
throw new AnalysisError(`\`--uuid\` 对应的模块是 ${code},与 ${tool} 不一致。`);
|
|
376
|
+
}
|
|
377
|
+
return {
|
|
378
|
+
path: textOf(menu.path),
|
|
379
|
+
route: textOf(menu.route),
|
|
380
|
+
title: textOf(menu.title),
|
|
381
|
+
uuid,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
async function readSelectedRecord(json, file, fallback) {
|
|
385
|
+
if (json)
|
|
386
|
+
return parseObject(json, "--recordJson");
|
|
387
|
+
if (file)
|
|
388
|
+
return parseObject(await readFile(resolveUserPath(file), "utf8"), "--recordFile");
|
|
389
|
+
return fallback;
|
|
390
|
+
}
|
|
391
|
+
function parseObject(raw, flag) {
|
|
392
|
+
let parsed;
|
|
393
|
+
try {
|
|
394
|
+
parsed = JSON.parse(raw);
|
|
395
|
+
}
|
|
396
|
+
catch {
|
|
397
|
+
throw new AnalysisError(`${flag} 不是合法 JSON。`);
|
|
398
|
+
}
|
|
399
|
+
if (!isJsonObject(parsed)) {
|
|
400
|
+
throw new AnalysisError(`${flag} 必须是 JSON 对象。`);
|
|
401
|
+
}
|
|
402
|
+
return parsed;
|
|
403
|
+
}
|
|
404
|
+
function toChoice(value, index) {
|
|
405
|
+
const cleaned = stripMarkup(value);
|
|
406
|
+
return {
|
|
407
|
+
index,
|
|
408
|
+
label: choiceLabel(cleaned),
|
|
409
|
+
raw: value,
|
|
410
|
+
value: cleaned,
|
|
411
|
+
value_type: Array.isArray(cleaned) ? "array" : isJsonObject(cleaned) ? "object" : typeof cleaned,
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
function stripMarkup(value) {
|
|
415
|
+
if (typeof value === "string") {
|
|
416
|
+
return value.replace(/<[^>]+>/g, "").replace(/\s+/g, " ").trim();
|
|
417
|
+
}
|
|
418
|
+
if (Array.isArray(value))
|
|
419
|
+
return value.map(stripMarkup);
|
|
420
|
+
if (isJsonObject(value)) {
|
|
421
|
+
return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, stripMarkup(item)]));
|
|
422
|
+
}
|
|
423
|
+
return value;
|
|
424
|
+
}
|
|
425
|
+
function choiceLabel(value) {
|
|
426
|
+
if (typeof value === "string")
|
|
427
|
+
return value;
|
|
428
|
+
if (isJsonObject(value)) {
|
|
429
|
+
for (const key of ["label", "variable", "name", "value", "title"]) {
|
|
430
|
+
const text = textOf(value[key]);
|
|
431
|
+
if (text)
|
|
432
|
+
return text;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
return JSON.stringify(value);
|
|
436
|
+
}
|
|
437
|
+
function optionValue(value) {
|
|
438
|
+
const text = textOf(asObject(value)?.value);
|
|
439
|
+
return text || null;
|
|
440
|
+
}
|
|
441
|
+
function optionalText(value) {
|
|
442
|
+
return typeof value === "string" && value.trim() ? value : undefined;
|
|
443
|
+
}
|
|
444
|
+
function positiveInt(value, fallback) {
|
|
445
|
+
if (value === undefined || value === null || value === "")
|
|
446
|
+
return fallback;
|
|
447
|
+
const parsed = Number(value);
|
|
448
|
+
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
449
|
+
throw new AnalysisError(`页码无效: ${String(value)}`);
|
|
450
|
+
}
|
|
451
|
+
return parsed;
|
|
452
|
+
}
|
|
453
|
+
function historyDownloadMessage(items) {
|
|
454
|
+
const lines = [
|
|
455
|
+
"当前历史记录包含多个可下载文件,请使用 `--item`、`--label` 或 `--device` 明确选择。",
|
|
456
|
+
"可选下载项:",
|
|
457
|
+
];
|
|
458
|
+
items.forEach((item, index) => {
|
|
459
|
+
lines.push(`${index + 1}. ${item.label} (device=${item.device}, endpoint=${item.endpoint})`);
|
|
460
|
+
});
|
|
461
|
+
return lines.join("\n");
|
|
462
|
+
}
|
|
463
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/modules/analysis/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,17 @@
|
|
|
1
1
|
export declare const ANALYSIS_EXPERT_ID = "analysis";
|
|
2
2
|
export declare const ANALYSIS_EXPERT_TITLE = "\u6570\u636E\u5206\u6790\u4E13\u5BB6";
|
|
3
|
+
/** 命令输出里标识本机单一凭证,不再按仙桃 profile 分账号 */
|
|
4
|
+
export declare const ANALYSIS_AGENT_NAME = "helixlife";
|
|
5
|
+
/** 仙桃主产品,用于菜单过滤;可用 --toolProductUuid 覆盖 */
|
|
6
|
+
export declare const DEFAULT_TOOL_PRODUCT_UUID = "c0b6febb-52dd-4525-970a-61bbe9e263ff";
|
|
7
|
+
/** 历史记录接口固定 uuid */
|
|
8
|
+
export declare const ANALYSIS_HISTORY_UUID = "2d491694-8c8d-11ee-9409-00163e118c99";
|
|
9
|
+
export declare const ANALYSIS_MENUS_PATH = "api/v1/agent/client/tool/menus";
|
|
10
|
+
export declare const ANALYSIS_BIO_API_PATH = "api/v1/agent/client/bio-api";
|
|
11
|
+
/** 上传凭证保持旧路径 */
|
|
12
|
+
export declare const ANALYSIS_UPLOAD_CONFIG_PATH = "api/v1/agent/upload/config";
|
|
13
|
+
export declare const ANALYSIS_BIO_VERSION = "v3";
|
|
14
|
+
/** 生信提交可能同步等待出图,与 Skill 前台等待对齐 */
|
|
15
|
+
export declare const ANALYSIS_BIO_TIMEOUT_MS = 600000;
|
|
16
|
+
export declare const ANALYSIS_MENU_TIMEOUT_MS = 60000;
|
|
3
17
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,qBAAqB,yCAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,qBAAqB,yCAAW,CAAC;AAE9C,sCAAsC;AACtC,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,2CAA2C;AAC3C,eAAO,MAAM,yBAAyB,yCAAyC,CAAC;AAEhF,oBAAoB;AACpB,eAAO,MAAM,qBAAqB,yCAAyC,CAAC;AAG5E,eAAO,MAAM,mBAAmB,mCAAmC,CAAC;AACpE,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AAEnE,gBAAgB;AAChB,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AAExE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,kCAAkC;AAClC,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAC/C,eAAO,MAAM,wBAAwB,QAAS,CAAC"}
|
|
@@ -1,3 +1,18 @@
|
|
|
1
1
|
export const ANALYSIS_EXPERT_ID = "analysis";
|
|
2
2
|
export const ANALYSIS_EXPERT_TITLE = "数据分析专家";
|
|
3
|
+
/** 命令输出里标识本机单一凭证,不再按仙桃 profile 分账号 */
|
|
4
|
+
export const ANALYSIS_AGENT_NAME = "helixlife";
|
|
5
|
+
/** 仙桃主产品,用于菜单过滤;可用 --toolProductUuid 覆盖 */
|
|
6
|
+
export const DEFAULT_TOOL_PRODUCT_UUID = "c0b6febb-52dd-4525-970a-61bbe9e263ff";
|
|
7
|
+
/** 历史记录接口固定 uuid */
|
|
8
|
+
export const ANALYSIS_HISTORY_UUID = "2d491694-8c8d-11ee-9409-00163e118c99";
|
|
9
|
+
// 图中的三条新接口挂在 agent_api 的 /api/v1 下。不带此前缀时网关返回 500 且没有 trace_id。
|
|
10
|
+
export const ANALYSIS_MENUS_PATH = "api/v1/agent/client/tool/menus";
|
|
11
|
+
export const ANALYSIS_BIO_API_PATH = "api/v1/agent/client/bio-api";
|
|
12
|
+
/** 上传凭证保持旧路径 */
|
|
13
|
+
export const ANALYSIS_UPLOAD_CONFIG_PATH = "api/v1/agent/upload/config";
|
|
14
|
+
export const ANALYSIS_BIO_VERSION = "v3";
|
|
15
|
+
/** 生信提交可能同步等待出图,与 Skill 前台等待对齐 */
|
|
16
|
+
export const ANALYSIS_BIO_TIMEOUT_MS = 600_000;
|
|
17
|
+
export const ANALYSIS_MENU_TIMEOUT_MS = 60_000;
|
|
3
18
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/modules/analysis/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/modules/analysis/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAE9C,sCAAsC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE/C,2CAA2C;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,sCAAsC,CAAC;AAEhF,oBAAoB;AACpB,MAAM,CAAC,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;AAE5E,gEAAgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AAEnE,gBAAgB;AAChB,MAAM,CAAC,MAAM,2BAA2B,GAAG,4BAA4B,CAAC;AAExE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,kCAAkC;AAClC,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class AnalysisError extends Error {
|
|
2
|
+
readonly data: Record<string, unknown> | null;
|
|
3
|
+
constructor(message: string, data?: Record<string, unknown> | null);
|
|
4
|
+
}
|
|
5
|
+
export declare class AnalysisChoiceError extends AnalysisError {
|
|
6
|
+
constructor(message: string, data: Record<string, unknown>);
|
|
7
|
+
}
|
|
8
|
+
export declare function classifyAnalysisCode(message: string): string;
|
|
9
|
+
export declare function createSuccessEnvelope(command: string, data: Record<string, unknown>): Record<string, unknown>;
|
|
10
|
+
export declare function createErrorEnvelope(command: string, error: AnalysisError): Record<string, unknown>;
|
|
11
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/errors.ts"],"names":[],"mappings":"AACA,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;gBAElC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAW;CAKzE;AAED,qBAAa,mBAAoB,SAAQ,aAAa;gBACxC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI3D;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsD5D;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// 数据分析业务错误:输出仙桃信封码(TOOL_* / INPUT_*),鉴权仍抛 helixlifeError
|
|
2
|
+
export class AnalysisError extends Error {
|
|
3
|
+
data;
|
|
4
|
+
constructor(message, data = null) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = "AnalysisError";
|
|
7
|
+
this.data = data;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export class AnalysisChoiceError extends AnalysisError {
|
|
11
|
+
constructor(message, data) {
|
|
12
|
+
super(message, data);
|
|
13
|
+
this.name = "AnalysisChoiceError";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
// 按文案映射信封 code,顺序与仙桃 envelope.js 一致
|
|
17
|
+
export function classifyAnalysisCode(message) {
|
|
18
|
+
if (message.includes("授权已过期") || message.includes("授权已过期或无效")) {
|
|
19
|
+
return "AUTH_EXPIRED";
|
|
20
|
+
}
|
|
21
|
+
if (message.includes("未找到") && message.includes("token")) {
|
|
22
|
+
return "AUTH_REQUIRED";
|
|
23
|
+
}
|
|
24
|
+
if (message.includes("未找到模块")) {
|
|
25
|
+
return "TOOL_NOT_FOUND";
|
|
26
|
+
}
|
|
27
|
+
if (message.includes("需购买") || message.includes("无权限") || message.includes("权限")) {
|
|
28
|
+
return "PERMISSION_REQUIRED";
|
|
29
|
+
}
|
|
30
|
+
if (message.includes("匹配到多个结果") || message.includes("匹配到多个云端数据")) {
|
|
31
|
+
return "TOOL_AMBIGUOUS";
|
|
32
|
+
}
|
|
33
|
+
if (message.includes("Missing 1 required arg") ||
|
|
34
|
+
message.includes("Missing 2 required args") ||
|
|
35
|
+
message.includes("Missing required arg") ||
|
|
36
|
+
message.includes("需要传入 TOOL") ||
|
|
37
|
+
message.includes("请传入 `module_id`") ||
|
|
38
|
+
message.includes("请传入 FILE") ||
|
|
39
|
+
message.includes("需要 `--uuid`") ||
|
|
40
|
+
message.includes("需要 `--route`") ||
|
|
41
|
+
message.includes("需要 `--file`")) {
|
|
42
|
+
return "INPUT_REQUIRED";
|
|
43
|
+
}
|
|
44
|
+
if (message.includes("参数格式不正确") ||
|
|
45
|
+
message.includes("不是合法 JSON") ||
|
|
46
|
+
message.includes("Unexpected argument:") ||
|
|
47
|
+
message.includes("不能同时使用") ||
|
|
48
|
+
message.includes("不能与") ||
|
|
49
|
+
message.includes("无效") ||
|
|
50
|
+
message.includes("不一致")) {
|
|
51
|
+
return "INPUT_INVALID";
|
|
52
|
+
}
|
|
53
|
+
if (message.includes("未返回可下载文件") || message.includes("未获取到下载链接")) {
|
|
54
|
+
return "DOWNLOAD_NOT_AVAILABLE";
|
|
55
|
+
}
|
|
56
|
+
if (message.includes("频繁") || message.includes("速率限制") || message.includes("建议次日再试")) {
|
|
57
|
+
return "RATE_LIMITED";
|
|
58
|
+
}
|
|
59
|
+
if (message.includes("网络") ||
|
|
60
|
+
message.includes("下载失败") ||
|
|
61
|
+
message.includes("服务返回了无法解析的响应")) {
|
|
62
|
+
return "NETWORK_ERROR";
|
|
63
|
+
}
|
|
64
|
+
return "INTERNAL_ERROR";
|
|
65
|
+
}
|
|
66
|
+
export function createSuccessEnvelope(command, data) {
|
|
67
|
+
return {
|
|
68
|
+
ok: true,
|
|
69
|
+
code: "OK",
|
|
70
|
+
message: "",
|
|
71
|
+
data,
|
|
72
|
+
meta: { command, version: "1" },
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export function createErrorEnvelope(command, error) {
|
|
76
|
+
return {
|
|
77
|
+
ok: false,
|
|
78
|
+
code: classifyAnalysisCode(error.message),
|
|
79
|
+
message: error.message,
|
|
80
|
+
data: error.data,
|
|
81
|
+
meta: { command, version: "1" },
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/modules/analysis/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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"}
|