@lingjingai/lj-awb-cli-pre 0.4.0 → 0.4.5
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 +45 -0
- package/build/_shared.mjs +54 -5
- package/build/prod.mjs +12 -3
- package/package.json +2 -2
- package/packages/awb-cli/package.json +2 -2
- package/packages/awb-core/package.json +1 -1
- package/packages/awb-core/src/api.js +22 -0
- package/packages/awb-core/src/commands.js +112 -39
- package/packages/awb-core/src/common.js +8 -0
- package/packages/awb-core/src/output.js +166 -9
- package/packages/awb-core/src/services.js +1669 -186
- package/packages/awb-core/src/standalone.js +110 -12
- package/packages/awb-core/src/update.js +327 -0
- package/skills/lj-awb/SKILL.md +29 -9
- package/skills/lj-awb/VERSION +1 -1
- package/skills/lj-awb/compat.json +3 -3
- package/skills/lj-awb/modules/asset.md +10 -1
- package/skills/lj-awb/modules/auth.md +9 -1
- package/skills/lj-awb/modules/create-contract.md +5 -2
- package/skills/lj-awb/modules/create.md +4 -2
- package/skills/lj-awb/modules/driver.md +1 -0
- package/skills/lj-awb/modules/image.md +3 -1
- package/skills/lj-awb/modules/model.md +5 -4
- package/skills/lj-awb/modules/task.md +4 -1
- package/skills/lj-awb/modules/upload.md +1 -1
- package/skills/lj-awb/modules/video.md +11 -2
- package/skills/lj-awb/modules/workflows.md +3 -1
- package/skills/lj-awb/references/error-codes.md +24 -0
- package/skills/lj-awb/references/model-options-read.md +7 -6
- package/skills/lj-awb/references/output-fields.md +8 -5
- package/skills/lj-awb/scripts/resolve-lj-awb-cmd.sh +106 -4
|
@@ -52,6 +52,7 @@ function requestSummary(request = {}) {
|
|
|
52
52
|
const promptParams = request.promptParams || {};
|
|
53
53
|
return compactRecord({
|
|
54
54
|
requestSource: request.requestSource,
|
|
55
|
+
objectName: request.objectName,
|
|
55
56
|
modelCode: request.modelCode,
|
|
56
57
|
modelGroupCode: request.modelGroupCode,
|
|
57
58
|
projectGroupNo: request.projectGroupNo,
|
|
@@ -121,16 +122,38 @@ function normalizeAuthStatus(data = {}) {
|
|
|
121
122
|
}
|
|
122
123
|
|
|
123
124
|
function normalizeAuthLogin(data = {}) {
|
|
125
|
+
const userId = data.user?.userId;
|
|
126
|
+
const userName = data.user?.userName;
|
|
127
|
+
const userDisplay = userName
|
|
128
|
+
? (userId ? `${userName} (${userId})` : userName)
|
|
129
|
+
: (userId || undefined);
|
|
124
130
|
return compactRecord({
|
|
131
|
+
loginMethod: data.loginMethod,
|
|
132
|
+
status: data.status,
|
|
125
133
|
saved: data.saved ?? Boolean(data.auth || data.accessKey),
|
|
126
134
|
verified: data.verified,
|
|
127
135
|
accessKey: data.accessKey || data.auth?.accessKey,
|
|
128
136
|
source: data.auth ? [data.auth.accessKeySource, data.auth.accessKeySourceName].filter(Boolean).join('/') : undefined,
|
|
137
|
+
userDisplay,
|
|
138
|
+
userId,
|
|
139
|
+
userName,
|
|
140
|
+
groupId: data.user?.groupId,
|
|
141
|
+
groupName: data.user?.groupName,
|
|
129
142
|
user: data.user,
|
|
143
|
+
flowId: data.flowId,
|
|
144
|
+
verifyUrl: data.verifyUrl,
|
|
145
|
+
nextCommand: data.nextCommand,
|
|
130
146
|
dryRun: data.dryRun,
|
|
131
147
|
});
|
|
132
148
|
}
|
|
133
149
|
|
|
150
|
+
function normalizeAuthLogout(data = {}) {
|
|
151
|
+
return compactRecord({
|
|
152
|
+
loggedOut: data.loggedOut,
|
|
153
|
+
authPath: data.authPath,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
|
|
134
157
|
function normalizeDryRunResult(row = {}) {
|
|
135
158
|
if (!isPlainObject(row) || !row.dryRun) return cleanNested(row);
|
|
136
159
|
const localFiles = Array.isArray(row.localFiles) ? row.localFiles : (row.localFile ? [row.localFile] : []);
|
|
@@ -158,6 +181,26 @@ function normalizeDryRun(data = {}) {
|
|
|
158
181
|
resourceConversion: Array.isArray(resourceConversions) && resourceConversions.length === 1
|
|
159
182
|
? `${resourceConversions[0].resource || 'resource'} ${resourceConversions[0].fromFormat}->${resourceConversions[0].toFormat}`
|
|
160
183
|
: undefined,
|
|
184
|
+
validationLegal: data.validation?.legal,
|
|
185
|
+
conversionRequired: Boolean(data.conversionPlan),
|
|
186
|
+
converted: Boolean(data.conversion?.converted),
|
|
187
|
+
conversionReason: data.conversionPlan?.reason ?? data.conversion?.reason ?? (Array.isArray(data.validation?.violations) ? data.validation.violations.map((item) => item.message).join(';') : undefined),
|
|
188
|
+
conversionTargetFormat: data.conversionPlan?.toFormat ?? data.conversion?.toFormat,
|
|
189
|
+
conversionTargetWidth: data.conversionPlan?.targetWidth ?? data.conversion?.targetWidth,
|
|
190
|
+
conversionTargetHeight: data.conversionPlan?.targetHeight ?? data.conversion?.targetHeight,
|
|
191
|
+
conversionTargetPixels: data.conversionPlan?.targetPixels ?? data.conversion?.targetPixels,
|
|
192
|
+
conversionTargetFps: data.conversionPlan?.targetFps ?? data.conversion?.targetFps,
|
|
193
|
+
conversionTargetDuration: data.conversionPlan?.targetDuration ?? data.conversion?.targetDuration,
|
|
194
|
+
conversionTarget: data.conversionPlan
|
|
195
|
+
? compactRecord({
|
|
196
|
+
format: data.conversionPlan.toFormat,
|
|
197
|
+
width: data.conversionPlan.targetWidth,
|
|
198
|
+
height: data.conversionPlan.targetHeight,
|
|
199
|
+
pixels: data.conversionPlan.targetPixels,
|
|
200
|
+
fps: data.conversionPlan.targetFps,
|
|
201
|
+
duration: data.conversionPlan.targetDuration,
|
|
202
|
+
})
|
|
203
|
+
: undefined,
|
|
161
204
|
fileCount: Array.isArray(data.files) ? data.files.length : undefined,
|
|
162
205
|
assetCount: Array.isArray(data.assets) ? data.assets.length : undefined,
|
|
163
206
|
files: data.files,
|
|
@@ -168,10 +211,19 @@ function normalizeDryRun(data = {}) {
|
|
|
168
211
|
});
|
|
169
212
|
}
|
|
170
213
|
|
|
171
|
-
function
|
|
214
|
+
function submissionStatusCommand(commandName, data = {}) {
|
|
215
|
+
if (!data?.taskId) return null;
|
|
216
|
+
if (commandName === 'create image') return `${commandPrefix()} task image-status --task-id ${data.taskId}`;
|
|
217
|
+
if (commandName === 'create video') return `${commandPrefix()} task video-status --task-id ${data.taskId}`;
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function normalizeTaskSubmission(commandName, data = {}) {
|
|
222
|
+
const statusCommand = rewriteCommandPrefix(data.statusCommand || submissionStatusCommand(commandName, data));
|
|
172
223
|
return compactRecord({
|
|
173
224
|
taskId: data.taskId,
|
|
174
225
|
taskType: data.taskType,
|
|
226
|
+
objectName: data.objectName,
|
|
175
227
|
modelGroupCode: data.modelGroupCode,
|
|
176
228
|
projectGroupNo: data.projectGroupNo,
|
|
177
229
|
pointNo: data.pointNo,
|
|
@@ -184,6 +236,7 @@ function normalizeTaskSubmission(data = {}) {
|
|
|
184
236
|
projectBudgetRemainingAfter: data.projectBudgetRemainingAfter ?? data.projectPointRemainingAfter,
|
|
185
237
|
uploadCount: Array.isArray(data.uploads) ? data.uploads.length : undefined,
|
|
186
238
|
nextCommand: rewriteCommandPrefix(data.nextCommand),
|
|
239
|
+
statusCommand,
|
|
187
240
|
waited: data.waited ? normalizeTaskStatus(data.waited) : undefined,
|
|
188
241
|
});
|
|
189
242
|
}
|
|
@@ -207,6 +260,7 @@ function normalizeSubtitleSubmission(data = {}) {
|
|
|
207
260
|
|
|
208
261
|
function normalizeFee(data = {}) {
|
|
209
262
|
return compactRecord({
|
|
263
|
+
objectName: data.objectName,
|
|
210
264
|
modelGroupCode: data.modelGroupCode,
|
|
211
265
|
projectGroupNo: data.projectGroupNo,
|
|
212
266
|
pointCost: data.pointCost,
|
|
@@ -334,6 +388,7 @@ function normalizeSubjectVoice(data = {}) {
|
|
|
334
388
|
}
|
|
335
389
|
|
|
336
390
|
function normalizeAsset(data = {}) {
|
|
391
|
+
const conversion = data.conversionPlan ?? data.conversion ?? null;
|
|
337
392
|
return compactRecord({
|
|
338
393
|
created: data.created,
|
|
339
394
|
updated: data.updated,
|
|
@@ -341,9 +396,30 @@ function normalizeAsset(data = {}) {
|
|
|
341
396
|
groupId: data.groupId,
|
|
342
397
|
assetId: data.assetId,
|
|
343
398
|
platform: data.platform,
|
|
399
|
+
assetType: data.assetType,
|
|
344
400
|
name: data.name,
|
|
345
401
|
projectName: data.projectName,
|
|
346
402
|
assetPath: data.assetPath,
|
|
403
|
+
validationLegal: data.validation?.legal ?? (data.conversion ? true : undefined),
|
|
404
|
+
conversionRequired: Boolean(data.conversionPlan ?? data.conversion),
|
|
405
|
+
converted: Boolean(data.conversion?.converted),
|
|
406
|
+
conversionReason: conversion?.reason,
|
|
407
|
+
conversionTargetFormat: conversion?.toFormat,
|
|
408
|
+
conversionTargetWidth: conversion?.targetWidth,
|
|
409
|
+
conversionTargetHeight: conversion?.targetHeight,
|
|
410
|
+
conversionTargetPixels: conversion?.targetPixels,
|
|
411
|
+
conversionTargetFps: conversion?.targetFps,
|
|
412
|
+
conversionTargetDuration: conversion?.targetDuration,
|
|
413
|
+
conversionTarget: conversion
|
|
414
|
+
? compactRecord({
|
|
415
|
+
format: conversion.toFormat,
|
|
416
|
+
width: conversion.targetWidth,
|
|
417
|
+
height: conversion.targetHeight,
|
|
418
|
+
pixels: conversion.targetPixels,
|
|
419
|
+
fps: conversion.targetFps,
|
|
420
|
+
duration: conversion.targetDuration,
|
|
421
|
+
})
|
|
422
|
+
: undefined,
|
|
347
423
|
uploadBackendPath: data.upload?.backendPath,
|
|
348
424
|
uploadUrl: data.upload?.url,
|
|
349
425
|
});
|
|
@@ -497,6 +573,8 @@ export function normalizeOutputData(commandName, data) {
|
|
|
497
573
|
return normalizeAuthStatus(data);
|
|
498
574
|
case 'auth login':
|
|
499
575
|
return normalizeAuthLogin(data);
|
|
576
|
+
case 'auth logout':
|
|
577
|
+
return normalizeAuthLogout(data);
|
|
500
578
|
default:
|
|
501
579
|
break;
|
|
502
580
|
}
|
|
@@ -504,11 +582,13 @@ export function normalizeOutputData(commandName, data) {
|
|
|
504
582
|
switch (commandName) {
|
|
505
583
|
case 'create image':
|
|
506
584
|
case 'create video':
|
|
507
|
-
|
|
585
|
+
case 'create video-super-resolution':
|
|
586
|
+
return normalizeTaskSubmission(commandName, data);
|
|
508
587
|
case 'create video-subtitle-removal':
|
|
509
588
|
return normalizeSubtitleSubmission(data);
|
|
510
589
|
case 'create image-fee':
|
|
511
590
|
case 'create video-fee':
|
|
591
|
+
case 'create video-super-resolution-fee':
|
|
512
592
|
return normalizeFee(data);
|
|
513
593
|
case 'account info':
|
|
514
594
|
return normalizeAccountInfo(data);
|
|
@@ -526,6 +606,7 @@ export function normalizeOutputData(commandName, data) {
|
|
|
526
606
|
case 'task video-status':
|
|
527
607
|
case 'task wait':
|
|
528
608
|
case 'task video-subtitle-status':
|
|
609
|
+
case 'task video-super-resolution-status':
|
|
529
610
|
return normalizeTaskStatus(data);
|
|
530
611
|
case 'create subject':
|
|
531
612
|
case 'create subject-wait':
|
|
@@ -559,6 +640,8 @@ export function normalizeOutputData(commandName, data) {
|
|
|
559
640
|
return normalizeList(data, ['subjects']);
|
|
560
641
|
case 'create subject-voice-list':
|
|
561
642
|
return normalizeList(data, ['voices']);
|
|
643
|
+
case 'update':
|
|
644
|
+
return normalizeUpdateResult(data);
|
|
562
645
|
default:
|
|
563
646
|
break;
|
|
564
647
|
}
|
|
@@ -647,6 +730,22 @@ function normalizeArtifactByCommand(commandName, data) {
|
|
|
647
730
|
return cleanNested(data);
|
|
648
731
|
}
|
|
649
732
|
|
|
733
|
+
function normalizeUpdateResult(data = {}) {
|
|
734
|
+
return compactRecord({
|
|
735
|
+
checked: data.checked,
|
|
736
|
+
updated: data.updated,
|
|
737
|
+
updateAvailable: data.updateAvailable,
|
|
738
|
+
packageName: data.packageName,
|
|
739
|
+
previousVersion: data.previousVersion,
|
|
740
|
+
currentVersion: data.currentVersion,
|
|
741
|
+
latestVersion: data.latestVersion,
|
|
742
|
+
command: rewriteCommandPrefix(data.command),
|
|
743
|
+
skillUpdated: data.skillUpdated,
|
|
744
|
+
restartRecommended: data.restartRecommended,
|
|
745
|
+
message: data.message,
|
|
746
|
+
});
|
|
747
|
+
}
|
|
748
|
+
|
|
650
749
|
export function normalizeJsonData(commandName, data) {
|
|
651
750
|
if (!isPlainObject(data)) return rewriteNested(data);
|
|
652
751
|
if (data.dryRun) return rewriteNested(data);
|
|
@@ -1200,6 +1299,16 @@ function formatModelCreateSpecOutput(data = {}) {
|
|
|
1200
1299
|
}
|
|
1201
1300
|
pushSectionCount(lines, 'examples', examples.length);
|
|
1202
1301
|
for (const [index, example] of examples.entries()) pushSectionItem(lines, index, rewriteCommandPrefix(example));
|
|
1302
|
+
const userParams = Array.isArray(data.parameterControls?.userParams) ? data.parameterControls.userParams : [];
|
|
1303
|
+
pushSectionCount(lines, 'params', userParams.length);
|
|
1304
|
+
for (const [index, param] of userParams.entries()) {
|
|
1305
|
+
pushSectionRecordItem(lines, index, {
|
|
1306
|
+
key: param.key,
|
|
1307
|
+
cliArg: param.cliArg,
|
|
1308
|
+
values: valueList(param.allowedValues),
|
|
1309
|
+
generic: param.genericModelParam,
|
|
1310
|
+
}, ['key', 'cliArg', 'values', 'generic']);
|
|
1311
|
+
}
|
|
1203
1312
|
lines.push('next:');
|
|
1204
1313
|
if (data.optionsCommand) pushSectionKeyValue(lines, 'options', `${commandPrefix()} ${data.optionsCommand}`);
|
|
1205
1314
|
const feeNext = modelFeeNextCommand(data);
|
|
@@ -1305,9 +1414,12 @@ const OUTPUT_KIND_BY_COMMAND = {
|
|
|
1305
1414
|
'create video-fee': 'fee_estimate',
|
|
1306
1415
|
'create video': 'task_submission',
|
|
1307
1416
|
'create video-batch': 'batch_task_submission',
|
|
1417
|
+
'create video-super-resolution-fee': 'fee_estimate',
|
|
1418
|
+
'create video-super-resolution': 'task_submission',
|
|
1308
1419
|
'task video-status': 'task_status',
|
|
1309
1420
|
'create video-subtitle-removal': 'subtitle_task_submission',
|
|
1310
1421
|
'task video-subtitle-status': 'subtitle_task_status',
|
|
1422
|
+
'task video-super-resolution-status': 'task_status',
|
|
1311
1423
|
'task list': 'task_list',
|
|
1312
1424
|
'task wait': 'task_status',
|
|
1313
1425
|
'task records': 'local_task_records',
|
|
@@ -1376,6 +1488,7 @@ const OUTPUT_KIND_BY_COMMAND = {
|
|
|
1376
1488
|
'create subject-voice': 'subject_voice_create_result',
|
|
1377
1489
|
'create subject-voice-wait': 'subject_voice_status',
|
|
1378
1490
|
'create subject-batch': 'batch_subject_publish_result',
|
|
1491
|
+
update: 'update_result',
|
|
1379
1492
|
};
|
|
1380
1493
|
|
|
1381
1494
|
const KIND_TITLES = {
|
|
@@ -1424,13 +1537,16 @@ const KIND_TITLES = {
|
|
|
1424
1537
|
task_status: '任务状态',
|
|
1425
1538
|
task_submission: '任务提交结果',
|
|
1426
1539
|
team_list: '团队列表',
|
|
1540
|
+
update_result: 'CLI 更新',
|
|
1427
1541
|
upload_result: '上传结果',
|
|
1428
1542
|
};
|
|
1429
1543
|
|
|
1430
1544
|
const COMMAND_TITLES = {
|
|
1431
1545
|
doctor: '环境体检',
|
|
1432
1546
|
schema: '命令 Schema',
|
|
1547
|
+
update: 'CLI 更新',
|
|
1433
1548
|
'auth clear': '清空认证结果',
|
|
1549
|
+
'auth logout': '退出登录结果',
|
|
1434
1550
|
'account switch-team': '团队切换结果',
|
|
1435
1551
|
'project use': '项目组切换结果',
|
|
1436
1552
|
'project create': '项目组创建结果',
|
|
@@ -1440,6 +1556,8 @@ const COMMAND_TITLES = {
|
|
|
1440
1556
|
'create video': '生视频任务提交结果',
|
|
1441
1557
|
'create image-batch': '批量生图提交结果',
|
|
1442
1558
|
'create video-batch': '批量生视频提交结果',
|
|
1559
|
+
'create video-super-resolution-fee': '视频超分积分预估',
|
|
1560
|
+
'create video-super-resolution': '视频超分任务提交结果',
|
|
1443
1561
|
'create video-subtitle-removal': '去字幕任务提交结果',
|
|
1444
1562
|
'create subject': '主体创建结果',
|
|
1445
1563
|
'create subject-wait': '主体状态',
|
|
@@ -1460,6 +1578,17 @@ const FIELD_LABELS = {
|
|
|
1460
1578
|
assetKind: '素材类型',
|
|
1461
1579
|
assetName: '素材名',
|
|
1462
1580
|
assetPath: '素材路径',
|
|
1581
|
+
assetType: '素材类型',
|
|
1582
|
+
converted: '已转码',
|
|
1583
|
+
conversionReason: '转码原因',
|
|
1584
|
+
conversionRequired: '需要转码',
|
|
1585
|
+
conversionTargetDuration: '目标时长',
|
|
1586
|
+
conversionTargetFormat: '目标格式',
|
|
1587
|
+
conversionTargetFps: '目标帧率',
|
|
1588
|
+
conversionTargetHeight: '目标高度',
|
|
1589
|
+
conversionTargetPixels: '目标像素',
|
|
1590
|
+
conversionTargetWidth: '目标宽度',
|
|
1591
|
+
validationLegal: '规格合法',
|
|
1463
1592
|
authType: '认证方式',
|
|
1464
1593
|
backendPath: '后端路径',
|
|
1465
1594
|
batchCount: '批次数',
|
|
@@ -1467,6 +1596,8 @@ const FIELD_LABELS = {
|
|
|
1467
1596
|
billingPointRemainingAfter: '扣除后可扣积分',
|
|
1468
1597
|
checkedAt: '检查时间',
|
|
1469
1598
|
cleared: '已清空',
|
|
1599
|
+
loggedOut: '已退出登录',
|
|
1600
|
+
authPath: '认证文件',
|
|
1470
1601
|
clipCount: 'Clip 数',
|
|
1471
1602
|
clipId: 'Clip ID',
|
|
1472
1603
|
command: '命令',
|
|
@@ -1518,6 +1649,7 @@ const FIELD_LABELS = {
|
|
|
1518
1649
|
nextCommand: '下一步命令',
|
|
1519
1650
|
nextRefSubject: '主体引用参数',
|
|
1520
1651
|
nextVoiceArg: '音色参数',
|
|
1652
|
+
objectName: '对象路径',
|
|
1521
1653
|
originUrls: '原始素材',
|
|
1522
1654
|
parentKey: '父级 Key',
|
|
1523
1655
|
platform: '平台',
|
|
@@ -1558,6 +1690,7 @@ const FIELD_LABELS = {
|
|
|
1558
1690
|
sourceTaskId: '来源任务 ID',
|
|
1559
1691
|
stateKey: '状态 Key',
|
|
1560
1692
|
status: '状态',
|
|
1693
|
+
statusCommand: '状态查询命令',
|
|
1561
1694
|
statusCommandTaskType: '状态任务类型',
|
|
1562
1695
|
submitted: '已提交',
|
|
1563
1696
|
successRate: '成功率',
|
|
@@ -1570,6 +1703,7 @@ const FIELD_LABELS = {
|
|
|
1570
1703
|
timedOut: '已超时',
|
|
1571
1704
|
title: '标题',
|
|
1572
1705
|
updated: '已更新',
|
|
1706
|
+
userDisplay: '用户',
|
|
1573
1707
|
userId: '用户 ID',
|
|
1574
1708
|
userName: '用户名',
|
|
1575
1709
|
verification: '验证方式',
|
|
@@ -1587,11 +1721,18 @@ const FIELD_LABELS = {
|
|
|
1587
1721
|
commandCount: '命令数',
|
|
1588
1722
|
commandFilter: '命令过滤',
|
|
1589
1723
|
commonFieldCount: '通用字段数',
|
|
1724
|
+
currentVersion: '当前版本',
|
|
1590
1725
|
domainFilter: '领域过滤',
|
|
1726
|
+
latestVersion: '最新版本',
|
|
1591
1727
|
nodeVersion: 'Node 版本',
|
|
1728
|
+
packageName: '包名',
|
|
1729
|
+
previousVersion: '更新前版本',
|
|
1592
1730
|
resourceFieldCount: '资源字段数',
|
|
1593
1731
|
resourceRuleCount: '资源规则数',
|
|
1732
|
+
restartRecommended: '建议重启',
|
|
1594
1733
|
schemaVersion: 'Schema 版本',
|
|
1734
|
+
skillUpdated: 'Skill 已更新',
|
|
1735
|
+
updateAvailable: '有新版本',
|
|
1595
1736
|
version: '版本',
|
|
1596
1737
|
type: '类型',
|
|
1597
1738
|
message: '消息',
|
|
@@ -1617,8 +1758,8 @@ const DETAIL_FIELDS_BY_KIND = {
|
|
|
1617
1758
|
artifact_write_result: ['id', 'projectId', 'rowKind', 'entityKey', 'parentKey', 'actorKey', 'propKey', 'locationKey', 'stateKey', 'episodeId', 'sceneId', 'clipId', 'videoEpisodeId', 'status', 'title', 'name', 'displayName'],
|
|
1618
1759
|
asset_group_detail: ['groupId', 'platform', 'name', 'projectName', 'description', 'status', 'assetCount'],
|
|
1619
1760
|
asset_group_write_result: ['created', 'updated', 'groupId', 'platform', 'name', 'projectName', 'assetPath'],
|
|
1620
|
-
asset_register_result: ['created', 'updated', 'registered', 'assetId', 'groupId', 'platform', 'name', 'projectName', 'assetPath', 'uploadBackendPath', 'uploadUrl'],
|
|
1621
|
-
auth_result: ['
|
|
1761
|
+
asset_register_result: ['created', 'updated', 'registered', 'assetId', 'groupId', 'platform', 'assetType', 'name', 'projectName', 'assetPath', 'validationLegal', 'conversionRequired', 'converted', 'conversionReason', 'conversionTargetFormat', 'conversionTargetWidth', 'conversionTargetHeight', 'conversionTargetPixels', 'conversionTargetFps', 'conversionTargetDuration', 'uploadBackendPath', 'uploadUrl'],
|
|
1762
|
+
auth_result: ['userDisplay', 'loggedOut', 'saved', 'verified', 'accessKey', 'source', 'dryRun', 'groupName', 'authPath'],
|
|
1622
1763
|
auth_status: ['configured', 'authType', 'accessKey', 'source', 'verified', 'verification', 'verifyCommand', 'userId', 'userName', 'groupId', 'groupName'],
|
|
1623
1764
|
batch_subject_publish_result: ['dryRun', 'submitted', 'count', 'successCount', 'failureCount', 'modelCode', 'projectGroupNo'],
|
|
1624
1765
|
batch_task_status: ['count', 'taskCount', 'successTaskCount', 'resultCount', 'pointTotal', 'timedOut', 'waitedMs'],
|
|
@@ -1626,7 +1767,7 @@ const DETAIL_FIELDS_BY_KIND = {
|
|
|
1626
1767
|
credits_balance: ['billingPointBalance', 'currentProjectGroupNo', 'currentProjectGroupName', 'projectBudgetBalance', 'projectBudgetMax'],
|
|
1627
1768
|
credits_usage: ['projectGroupNo', 'sinceText', 'untilText', 'scannedTaskCount', 'pointTotal'],
|
|
1628
1769
|
environment_report: ['doctorStatus', 'verify'],
|
|
1629
|
-
fee_estimate: ['modelGroupCode', 'projectGroupNo', 'pointCost', 'billingPointBalance', 'billingPointRemainingAfter', 'projectBudgetBalance', 'projectBudgetMax', 'projectBudgetRemainingAfter'],
|
|
1770
|
+
fee_estimate: ['objectName', 'modelGroupCode', 'projectGroupNo', 'pointCost', 'billingPointBalance', 'billingPointRemainingAfter', 'projectBudgetBalance', 'projectBudgetMax', 'projectBudgetRemainingAfter'],
|
|
1630
1771
|
generic: ['cleared', 'selected', 'created', 'updated', 'reused', 'dryRun', 'action', 'projectGroupNo', 'projectGroupName', 'groupId', 'groupName', 'projectGroupName', 'point', 'memberCount', 'note'],
|
|
1631
1772
|
local_task_records: ['count', 'taskCount', 'successTaskCount', 'resultCount', 'pointTotal'],
|
|
1632
1773
|
project_summary: ['selected', 'created', 'updated', 'reused', 'projectGroupNo', 'projectGroupName', 'isSelected', 'projectBudgetBalance', 'projectBudgetMax', 'memberCount'],
|
|
@@ -1637,7 +1778,8 @@ const DETAIL_FIELDS_BY_KIND = {
|
|
|
1637
1778
|
subtitle_task_status: ['taskId', 'publicId', 'remoteTaskId', 'taskType', 'taskStatus', 'isTerminal', 'projectGroupNo', 'resultCount', 'errorMessage', 'timedOut', 'waitedMs'],
|
|
1638
1779
|
subtitle_task_submission: ['submitted', 'taskId', 'taskType', 'sourceTaskId', 'projectGroupNo', 'pointCost', 'billingPointBalance', 'billingPointRemainingAfter', 'projectBudgetBalance', 'projectBudgetMax', 'projectBudgetRemainingAfter', 'nextCommand'],
|
|
1639
1780
|
task_status: ['taskId', 'publicId', 'remoteTaskId', 'taskType', 'taskStatus', 'isTerminal', 'modelGroupCode', 'projectGroupNo', 'pointNo', 'gmtCreate', 'resultCount', 'errorMessage', 'timedOut', 'waitedMs'],
|
|
1640
|
-
task_submission: ['taskId', 'taskType', 'modelGroupCode', 'projectGroupNo', 'pointNo', 'points', 'pointCost', 'billingPointBalance', 'billingPointRemainingAfter', 'projectBudgetBalance', 'projectBudgetMax', 'projectBudgetRemainingAfter', 'uploadCount', 'nextCommand'],
|
|
1781
|
+
task_submission: ['taskId', 'taskType', 'objectName', 'modelGroupCode', 'projectGroupNo', 'pointNo', 'points', 'pointCost', 'billingPointBalance', 'billingPointRemainingAfter', 'projectBudgetBalance', 'projectBudgetMax', 'projectBudgetRemainingAfter', 'uploadCount', 'nextCommand', 'statusCommand'],
|
|
1782
|
+
update_result: ['checked', 'updated', 'updateAvailable', 'packageName', 'previousVersion', 'currentVersion', 'latestVersion', 'command', 'skillUpdated', 'restartRecommended', 'message'],
|
|
1641
1783
|
upload_result: ['dryRun', 'fileCount', 'assetCount', 'localFileCount', 'resourceConversionCount'],
|
|
1642
1784
|
};
|
|
1643
1785
|
|
|
@@ -1654,10 +1796,12 @@ const DRY_RUN_FIELDS_BY_COMMAND = {
|
|
|
1654
1796
|
'create video': ['dryRun', 'action', 'modelGroupCode', 'projectGroupNo', 'prompt', 'duration', 'ratio', 'quality', 'needAudio', 'resourceCount', 'localFileCount', 'assetCount'],
|
|
1655
1797
|
'create image-batch': ['dryRun', 'count', 'modelGroupCode', 'projectGroupNo'],
|
|
1656
1798
|
'create video-batch': ['dryRun', 'count', 'modelGroupCode', 'projectGroupNo'],
|
|
1799
|
+
'create video-super-resolution-fee': ['dryRun', 'action', 'objectName', 'projectGroupNo', 'pointCost', 'billingPointBalance', 'billingPointRemainingAfter', 'projectBudgetBalance', 'projectBudgetMax', 'projectBudgetRemainingAfter'],
|
|
1800
|
+
'create video-super-resolution': ['dryRun', 'action', 'objectName', 'projectGroupNo', 'taskId', 'pointCost', 'billingPointBalance', 'billingPointRemainingAfter', 'projectBudgetBalance', 'projectBudgetMax', 'projectBudgetRemainingAfter', 'nextCommand'],
|
|
1657
1801
|
'create video-subtitle-removal': ['dryRun', 'action', 'sourceTaskId', 'projectGroupNo'],
|
|
1658
1802
|
'create asset-group': ['dryRun', 'action', 'platform', 'name', 'projectName'],
|
|
1659
1803
|
'create asset-group-update': ['dryRun', 'action', 'groupId', 'platform', 'name', 'projectName'],
|
|
1660
|
-
'create asset': ['dryRun', 'action', 'groupId', 'platform', 'name', 'assetPath', 'localFileCount', 'fileCount'],
|
|
1804
|
+
'create asset': ['dryRun', 'action', 'groupId', 'platform', 'assetType', 'name', 'assetPath', 'validationLegal', 'conversionRequired', 'converted', 'conversionReason', 'conversionTargetFormat', 'conversionTargetWidth', 'conversionTargetHeight', 'conversionTargetPixels', 'conversionTargetFps', 'conversionTargetDuration', 'localFileCount', 'fileCount'],
|
|
1661
1805
|
'create subject': ['dryRun', 'action', 'name', 'modelCode', 'elementFrontalImage', 'assetCount', 'localFileCount', 'nextRefSubject'],
|
|
1662
1806
|
'create subject-voice': ['dryRun', 'action', 'name', 'voiceName', 'voiceUrl', 'remoteUrl', 'remoteUpload', 'localFileCount', 'nextVoiceArg'],
|
|
1663
1807
|
'create subject-batch': ['dryRun', 'count', 'modelCode'],
|
|
@@ -2332,7 +2476,7 @@ function cliFlagForParam(key) {
|
|
|
2332
2476
|
need_audio: '--need-audio',
|
|
2333
2477
|
prompt: '--prompt',
|
|
2334
2478
|
};
|
|
2335
|
-
return flags[key];
|
|
2479
|
+
return flags[key] || (key ? `--model-param ${key}=...` : '');
|
|
2336
2480
|
}
|
|
2337
2481
|
|
|
2338
2482
|
function localizedResourceParam(value) {
|
|
@@ -2737,6 +2881,7 @@ function collectPrettyActions(commandName, normalized, context = {}) {
|
|
|
2737
2881
|
actions.push({ label, value: rewriteCommandPrefix(value) });
|
|
2738
2882
|
};
|
|
2739
2883
|
if (normalized?.nextCommand) add('继续查询', normalized.nextCommand);
|
|
2884
|
+
if (normalized?.statusCommand) add('状态查询', normalized.statusCommand);
|
|
2740
2885
|
if (normalized?.nextRefSubject) add('主体引用', normalized.nextRefSubject);
|
|
2741
2886
|
if (normalized?.nextVoiceArg) add('音色参数', normalized.nextVoiceArg);
|
|
2742
2887
|
if (normalized?.dryRun && context.confirmCommand) add('确认执行', context.confirmCommand);
|
|
@@ -2852,6 +2997,11 @@ function formatPrettyModelCreateSpec(data = {}, context = {}) {
|
|
|
2852
2997
|
column('素材用途', (row) => localizedList(row.resourceUsages, localizedUsage), { minWidth: 10, maxWidth: 24 }),
|
|
2853
2998
|
column('Prompt 绑定', (row) => localizedPromptBinding(row.promptBinding), { maxWidth: 14 }),
|
|
2854
2999
|
]);
|
|
3000
|
+
renderArraySection(lines, '可控参数', data.parameterControls?.userParams, [
|
|
3001
|
+
column('参数', (row) => localizedParamKey(row.key), { minWidth: 10, maxWidth: 20 }),
|
|
3002
|
+
column('写法', 'cliArg', { minWidth: 12, maxWidth: 34 }),
|
|
3003
|
+
column('可选值', (row) => Array.isArray(row.allowedValues) ? row.allowedValues.join('、') : '', { minWidth: 12, maxWidth: 36 }),
|
|
3004
|
+
]);
|
|
2855
3005
|
renderScalarList(lines, '示例', (data.examples || []).map((example) => modelCreateExampleWithCode(example, data.modelGroupCode)).map((item) => item.replaceAll('--model-group-code <code>', `--model-group-code ${data.modelGroupCode || '<code>'}`)), 8);
|
|
2856
3006
|
const actions = [];
|
|
2857
3007
|
if (data.optionsCommand) actions.push({ label: '查看参数', value: `${commandPrefix()} ${data.optionsCommand}` });
|
|
@@ -3081,6 +3231,12 @@ export function formatTextOutput(commandName, data, context = {}) {
|
|
|
3081
3231
|
'parentKey',
|
|
3082
3232
|
'assetKind',
|
|
3083
3233
|
'assetKey',
|
|
3234
|
+
'assetType',
|
|
3235
|
+
'assetPath',
|
|
3236
|
+
'validationLegal',
|
|
3237
|
+
'conversionRequired',
|
|
3238
|
+
'converted',
|
|
3239
|
+
'conversionReason',
|
|
3084
3240
|
'actorKey',
|
|
3085
3241
|
'propKey',
|
|
3086
3242
|
'locationKey',
|
|
@@ -3103,7 +3259,7 @@ export function formatTextOutput(commandName, data, context = {}) {
|
|
|
3103
3259
|
'dryRun',
|
|
3104
3260
|
'action',
|
|
3105
3261
|
],
|
|
3106
|
-
['nextCommand', 'nextRefSubject', ...(list ? ['count'] : []), ...(isModelList ? ['usage'] : [])],
|
|
3262
|
+
['nextCommand', 'statusCommand', 'nextRefSubject', ...(list ? ['count'] : []), ...(isModelList ? ['usage'] : [])],
|
|
3107
3263
|
);
|
|
3108
3264
|
if (scalarLine) lines.push(scalarLine);
|
|
3109
3265
|
if (list) {
|
|
@@ -3130,6 +3286,7 @@ export function formatTextOutput(commandName, data, context = {}) {
|
|
|
3130
3286
|
}
|
|
3131
3287
|
}
|
|
3132
3288
|
if (normalized.nextCommand) lines.push(`next=${normalized.nextCommand}`);
|
|
3289
|
+
if (normalized.statusCommand) lines.push(`statusCommand=${normalized.statusCommand}`);
|
|
3133
3290
|
if (normalized.nextRefSubject) lines.push(`nextRefSubject=${normalized.nextRefSubject}`);
|
|
3134
3291
|
if (normalized.dryRun && context.confirmCommand) lines.push(`nextAfterConfirm=${context.confirmCommand}`);
|
|
3135
3292
|
if (normalized.dryRun && !context.confirmCommand && context.executeCommand) lines.push(`next=${context.executeCommand}`);
|