gaoding-cli 1.0.0-alpha.8 → 1.0.0-alpha.9

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 (45) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +47 -64
  3. package/dist/bin/gd-cli.js +2 -2
  4. package/dist/src/api/app-runner.d.ts +1 -4
  5. package/dist/src/api/app-runner.js +10 -42
  6. package/dist/src/api/dam-client.d.ts +0 -7
  7. package/dist/src/api/dam-client.js +0 -17
  8. package/dist/src/commands/auth.js +5 -41
  9. package/dist/src/commands/creative.js +37 -45
  10. package/dist/src/commands/dam.js +248 -110
  11. package/dist/src/commands/org.js +17 -39
  12. package/dist/src/commands/skills.js +24 -114
  13. package/dist/src/commands/update.js +10 -85
  14. package/dist/src/commands/usage.js +4 -17
  15. package/dist/src/commands/workflows.d.ts +1 -1
  16. package/dist/src/commands/workflows.js +283 -199
  17. package/dist/src/core/output/envelope.d.ts +1 -0
  18. package/dist/src/core/output/envelope.js +76 -6
  19. package/dist/src/creative/contract.d.ts +28 -80
  20. package/dist/src/creative/contract.js +23 -44
  21. package/dist/src/creative/protocol.js +6 -6
  22. package/dist/src/io.d.ts +0 -2
  23. package/dist/src/io.js +0 -8
  24. package/dist/src/middleware/error-handler.d.ts +7 -1
  25. package/dist/src/middleware/error-handler.js +59 -54
  26. package/dist/src/program.d.ts +1 -0
  27. package/dist/src/program.js +138 -41
  28. package/dist/src/registry/agent-contracts.d.ts +14 -26
  29. package/dist/src/registry/agent-contracts.js +214 -64
  30. package/dist/src/utils/capability-presenter.js +6 -29
  31. package/dist/src/utils/config.d.ts +2 -2
  32. package/dist/src/utils/config.js +1 -1
  33. package/dist/src/utils/sensitive-path.js +1 -4
  34. package/package.json +2 -1
  35. package/skills/gd-cli/SKILL.md +6 -6
  36. package/skills/gd-cli/references/auth.md +3 -10
  37. package/skills/gd-cli/references/creative.md +11 -11
  38. package/skills/gd-cli/references/entitlement.md +2 -2
  39. package/skills/gd-cli/references/errors.md +4 -4
  40. package/skills/gd-cli/references/org.md +3 -3
  41. package/skills/gd-cli/references/sop.md +5 -5
  42. package/skills/gd-cli/references/update.md +4 -3
  43. package/skills/gd-cli/references/workflows.md +6 -5
  44. package/dist/src/utils/list-output-format.d.ts +0 -10
  45. package/dist/src/utils/list-output-format.js +0 -34
@@ -24,7 +24,7 @@ function normalizeEnvelopeStatus(value) {
24
24
  return "completed";
25
25
  }
26
26
  export function failedEnvelope(error, meta) {
27
- return { status: "failed", data: null, error, meta };
27
+ return { status: "failed", data: null, error: publicCliErrorBody(error), meta };
28
28
  }
29
29
  function normalizePayloadError(value) {
30
30
  if (!value)
@@ -45,7 +45,7 @@ function normalizePayloadError(value) {
45
45
  }
46
46
  const error = value;
47
47
  const type = error.type;
48
- return {
48
+ return publicCliErrorBody({
49
49
  code: typeof error.code === "string" ? error.code : "ERROR",
50
50
  type: type === "business" ||
51
51
  type === "auth" ||
@@ -54,11 +54,9 @@ function normalizePayloadError(value) {
54
54
  type === "unknown"
55
55
  ? type
56
56
  : "unknown",
57
- message: typeof error.message === "string" ? error.message : JSON.stringify(error),
57
+ message: typeof error.message === "string" ? error.message : "请求失败",
58
58
  reason: typeof error.reason === "string" ? error.reason : undefined,
59
59
  hint: typeof error.hint === "string" ? error.hint : undefined,
60
- app_id: typeof error.app_id === "string" ? error.app_id : undefined,
61
- tool_id: typeof error.tool_id === "string" ? error.tool_id : undefined,
62
60
  retryable: typeof error.retryable === "boolean" ? error.retryable : undefined,
63
61
  next_command: typeof error.next_command === "string" ? error.next_command : undefined,
64
62
  next_steps: Array.isArray(error.next_steps) ? error.next_steps.map(String) : undefined,
@@ -67,8 +65,80 @@ function normalizePayloadError(value) {
67
65
  forbidden_actions: Array.isArray(error.forbidden_actions) ? error.forbidden_actions.map(String) : undefined,
68
66
  allow_org_check: typeof error.allow_org_check === "boolean" ? error.allow_org_check : undefined,
69
67
  agent_message_template: typeof error.agent_message_template === "string" ? error.agent_message_template : undefined,
70
- detail: error,
68
+ });
69
+ }
70
+ export function publicCliErrorBody(error) {
71
+ const body = {
72
+ code: publicString(error.code) ?? "ERROR",
73
+ type: publicErrorType(error.type),
74
+ message: publicString(error.message) ?? "请求失败",
75
+ reason: publicString(error.reason),
76
+ hint: publicString(error.hint),
77
+ retryable: typeof error.retryable === "boolean" ? error.retryable : undefined,
78
+ diagnostic_context: publicDiagnosticContext(error.diagnostic_context),
79
+ next_command: publicString(error.next_command),
80
+ next_steps: publicStringArray(error.next_steps),
81
+ pricing_url: publicString(error.pricing_url),
82
+ user_action_required: publicString(error.user_action_required),
83
+ forbidden_actions: publicStringArray(error.forbidden_actions),
84
+ allow_org_check: typeof error.allow_org_check === "boolean" ? error.allow_org_check : undefined,
85
+ agent_message_template: publicString(error.agent_message_template),
71
86
  };
87
+ return Object.fromEntries(Object.entries(body).filter(([, value]) => value !== undefined));
88
+ }
89
+ const PUBLIC_DIAGNOSTIC_KEYS = new Set([
90
+ "environment",
91
+ "business_id",
92
+ "channel_id",
93
+ "org_id",
94
+ "org_name",
95
+ "user_id",
96
+ "api_path",
97
+ "selected_model",
98
+ "attempted_models",
99
+ ]);
100
+ function publicDiagnosticContext(value) {
101
+ if (!value || typeof value !== "object" || Array.isArray(value))
102
+ return undefined;
103
+ const entries = Object.entries(value)
104
+ .filter(([key]) => PUBLIC_DIAGNOSTIC_KEYS.has(key))
105
+ .flatMap(([key, item]) => {
106
+ const projected = publicDiagnosticValue(item);
107
+ return projected === undefined ? [] : [[key, projected]];
108
+ });
109
+ return entries.length > 0 ? Object.fromEntries(entries) : undefined;
110
+ }
111
+ function publicDiagnosticValue(value) {
112
+ if (typeof value === "string" ||
113
+ typeof value === "number" ||
114
+ typeof value === "boolean") {
115
+ return value;
116
+ }
117
+ if (Array.isArray(value)) {
118
+ const items = value.filter((item) => typeof item === "string" ||
119
+ typeof item === "number" ||
120
+ typeof item === "boolean");
121
+ return items.length > 0 ? items : undefined;
122
+ }
123
+ return undefined;
124
+ }
125
+ function publicString(value) {
126
+ return typeof value === "string" && value.length > 0 ? value : undefined;
127
+ }
128
+ function publicStringArray(value) {
129
+ if (!Array.isArray(value))
130
+ return undefined;
131
+ const items = value.filter((item) => typeof item === "string" && item.length > 0);
132
+ return items.length > 0 ? items : undefined;
133
+ }
134
+ function publicErrorType(value) {
135
+ return value === "business" ||
136
+ value === "auth" ||
137
+ value === "network" ||
138
+ value === "validation" ||
139
+ value === "unknown"
140
+ ? value
141
+ : "unknown";
72
142
  }
73
143
  function extractAssets(obj) {
74
144
  const out = [];
@@ -4,7 +4,7 @@ export interface CreativeInput {
4
4
  media?: CreativeMedia[];
5
5
  parameters?: CreativeParameters;
6
6
  conversation_id?: string;
7
- last_tool_message_id?: string;
7
+ question_message_id?: string;
8
8
  answers?: CreativeAnswer[];
9
9
  }
10
10
  export interface CreativeMedia {
@@ -51,7 +51,7 @@ export interface CreativeResult {
51
51
  finish_reason: "completed" | "requires_input";
52
52
  message: string;
53
53
  outputs: CreativeOutput[];
54
- last_tool_message_id?: string;
54
+ question_message_id?: string;
55
55
  questions?: CreativeQuestionGroup;
56
56
  }
57
57
  export interface CreativeError {
@@ -73,7 +73,6 @@ export interface CreativeEnvelope {
73
73
  export declare const CREATIVE_INPUT_SCHEMA: {
74
74
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
75
75
  readonly $id: "https://www.gaoding.com/cli/schemas/creative-input-v1.json";
76
- readonly title: "Creative Input";
77
76
  readonly description: "发起或继续一次稿定 Creative 创作所需的完整输入。";
78
77
  readonly type: "object";
79
78
  readonly additionalProperties: false;
@@ -89,7 +88,6 @@ export declare const CREATIVE_INPUT_SCHEMA: {
89
88
  readonly description: "本次创作使用的输入素材;媒体不能脱离 prompt 或 answers 单独提交。";
90
89
  readonly items: {
91
90
  readonly type: "object";
92
- readonly description: "一份带有明确用途的输入素材。";
93
91
  readonly additionalProperties: false;
94
92
  readonly required: readonly ["source", "role"];
95
93
  readonly properties: {
@@ -133,7 +131,7 @@ export declare const CREATIVE_INPUT_SCHEMA: {
133
131
  readonly minLength: 1;
134
132
  readonly description: "继续已有创作或回答追问时使用的会话标识;首次请求和独立的新创作不传。";
135
133
  };
136
- readonly last_tool_message_id: {
134
+ readonly question_message_id: {
137
135
  readonly type: "string";
138
136
  readonly minLength: 1;
139
137
  readonly description: "正在回答或跳过的追问消息标识,原样使用上一次 requires_input 输出中的值。";
@@ -144,7 +142,6 @@ export declare const CREATIVE_INPUT_SCHEMA: {
144
142
  readonly description: "对上一次 requires_input 输出中一个或多个问题的结构化回答。";
145
143
  readonly items: {
146
144
  readonly type: "object";
147
- readonly description: "对一条 GD Agent 追问的回答。";
148
145
  readonly additionalProperties: false;
149
146
  readonly required: readonly ["question", "values"];
150
147
  readonly properties: {
@@ -160,7 +157,6 @@ export declare const CREATIVE_INPUT_SCHEMA: {
160
157
  readonly items: {
161
158
  readonly type: "string";
162
159
  readonly minLength: 1;
163
- readonly description: "一项非空的选择值或自定义回答。";
164
160
  };
165
161
  };
166
162
  };
@@ -168,18 +164,15 @@ export declare const CREATIVE_INPUT_SCHEMA: {
168
164
  };
169
165
  };
170
166
  readonly anyOf: readonly [{
171
- readonly description: "普通新创作或连续编辑必须提供 prompt。";
172
167
  readonly required: readonly ["prompt"];
173
168
  }, {
174
- readonly description: "回答追问时 answers 可以替代 prompt,但必须同时携带两个连续对话标识。";
175
- readonly required: readonly ["answers", "conversation_id", "last_tool_message_id"];
169
+ readonly required: readonly ["answers"];
176
170
  }];
177
171
  readonly dependentRequired: {
178
- readonly answers: readonly ["conversation_id", "last_tool_message_id"];
179
- readonly last_tool_message_id: readonly ["conversation_id"];
172
+ readonly answers: readonly ["conversation_id", "question_message_id"];
173
+ readonly question_message_id: readonly ["conversation_id"];
180
174
  };
181
175
  readonly allOf: readonly [{
182
- readonly description: "first_frame 最多出现一次。";
183
176
  readonly properties: {
184
177
  readonly media: {
185
178
  readonly description: "用于检查首帧数量的素材列表。";
@@ -198,7 +191,6 @@ export declare const CREATIVE_INPUT_SCHEMA: {
198
191
  };
199
192
  };
200
193
  }, {
201
- readonly description: "last_frame 最多出现一次。";
202
194
  readonly properties: {
203
195
  readonly media: {
204
196
  readonly description: "用于检查尾帧数量的素材列表。";
@@ -221,7 +213,6 @@ export declare const CREATIVE_INPUT_SCHEMA: {
221
213
  export declare const CREATIVE_OUTPUT_SCHEMA: {
222
214
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
223
215
  readonly $id: "https://www.gaoding.com/cli/schemas/creative-output-v1.json";
224
- readonly title: "Creative Output";
225
216
  readonly description: "creative run 的统一最终输出;中间事件和内部调用过程不属于本 Schema。";
226
217
  readonly type: "object";
227
218
  readonly additionalProperties: false;
@@ -234,19 +225,9 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
234
225
  };
235
226
  readonly data: {
236
227
  readonly description: "status 为 completed 时存在的 Creative 最终结果;failed 时为 null。";
237
- readonly oneOf: readonly [{
238
- readonly $ref: "#/$defs/result";
239
- }, {
240
- readonly type: "null";
241
- }];
242
228
  };
243
229
  readonly error: {
244
230
  readonly description: "status 为 failed 时存在的结构化错误;completed 时为 null。";
245
- readonly oneOf: readonly [{
246
- readonly $ref: "#/$defs/error";
247
- }, {
248
- readonly type: "null";
249
- }];
250
231
  };
251
232
  readonly meta: {
252
233
  readonly type: "object";
@@ -266,7 +247,6 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
266
247
  };
267
248
  };
268
249
  readonly oneOf: readonly [{
269
- readonly description: "成功完成或需要使用者继续回答的结果。";
270
250
  readonly properties: {
271
251
  readonly status: {
272
252
  readonly const: "completed";
@@ -282,7 +262,6 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
282
262
  };
283
263
  };
284
264
  }, {
285
- readonly description: "校验、认证、业务或网络失败的结果。";
286
265
  readonly properties: {
287
266
  readonly status: {
288
267
  readonly const: "failed";
@@ -301,7 +280,6 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
301
280
  readonly $defs: {
302
281
  readonly result: {
303
282
  readonly type: "object";
304
- readonly description: "GD Agent 本轮的最终结果。";
305
283
  readonly additionalProperties: false;
306
284
  readonly required: readonly ["conversation_id", "finish_reason", "message", "outputs"];
307
285
  readonly properties: {
@@ -324,10 +302,9 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
324
302
  readonly description: "本轮最终产出的文本、结构化数据或媒体。";
325
303
  readonly items: {
326
304
  readonly $ref: "#/$defs/output";
327
- readonly description: "一项 Creative 最终产出。";
328
305
  };
329
306
  };
330
- readonly last_tool_message_id: {
307
+ readonly question_message_id: {
331
308
  readonly type: "string";
332
309
  readonly minLength: 1;
333
310
  readonly description: "requires_input 时必填,并在下一次请求中原样回传。";
@@ -347,12 +324,12 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
347
324
  };
348
325
  };
349
326
  readonly then: {
350
- readonly required: readonly ["last_tool_message_id", "questions"];
327
+ readonly required: readonly ["question_message_id", "questions"];
351
328
  };
352
329
  readonly else: {
353
330
  readonly not: {
354
331
  readonly anyOf: readonly [{
355
- readonly required: readonly ["last_tool_message_id"];
332
+ readonly required: readonly ["question_message_id"];
356
333
  }, {
357
334
  readonly required: readonly ["questions"];
358
335
  }];
@@ -362,7 +339,6 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
362
339
  };
363
340
  readonly question_group: {
364
341
  readonly type: "object";
365
- readonly description: "GD Agent 在本轮提出的一组问题。";
366
342
  readonly additionalProperties: false;
367
343
  readonly required: readonly ["title", "questions"];
368
344
  readonly properties: {
@@ -376,7 +352,6 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
376
352
  readonly description: "需要使用者回答的一个或多个问题。";
377
353
  readonly items: {
378
354
  readonly type: "object";
379
- readonly description: "一条 GD Agent 追问。";
380
355
  readonly additionalProperties: false;
381
356
  readonly required: readonly ["question", "options", "allow_multiple"];
382
357
  readonly properties: {
@@ -390,7 +365,6 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
390
365
  readonly description: "推荐选项,可以为空;label 不是严格枚举。";
391
366
  readonly items: {
392
367
  readonly type: "object";
393
- readonly description: "一项推荐回答。";
394
368
  readonly additionalProperties: false;
395
369
  readonly required: readonly ["label"];
396
370
  readonly properties: {
@@ -412,10 +386,8 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
412
386
  };
413
387
  };
414
388
  readonly output: {
415
- readonly description: "文本、JSON、图片、视频、音频或文件结果。";
416
389
  readonly oneOf: readonly [{
417
390
  readonly type: "object";
418
- readonly description: "文本结果。";
419
391
  readonly additionalProperties: false;
420
392
  readonly required: readonly ["type", "text"];
421
393
  readonly properties: {
@@ -430,7 +402,6 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
430
402
  };
431
403
  }, {
432
404
  readonly type: "object";
433
- readonly description: "可机器解析的结构化结果。";
434
405
  readonly additionalProperties: false;
435
406
  readonly required: readonly ["type", "value"];
436
407
  readonly properties: {
@@ -444,7 +415,6 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
444
415
  };
445
416
  }, {
446
417
  readonly type: "object";
447
- readonly description: "最终媒体或文件结果。";
448
418
  readonly additionalProperties: false;
449
419
  readonly required: readonly ["type", "url", "mime_type"];
450
420
  readonly properties: {
@@ -494,7 +464,6 @@ export declare const CREATIVE_OUTPUT_SCHEMA: {
494
464
  };
495
465
  readonly error: {
496
466
  readonly type: "object";
497
- readonly description: "Creative 失败时的稳定错误信息。";
498
467
  readonly additionalProperties: false;
499
468
  readonly required: readonly ["code", "type", "message"];
500
469
  readonly properties: {
@@ -531,7 +500,6 @@ export declare function getCreativeSchema(): {
531
500
  input_schema: {
532
501
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
533
502
  readonly $id: "https://www.gaoding.com/cli/schemas/creative-input-v1.json";
534
- readonly title: "Creative Input";
535
503
  readonly description: "发起或继续一次稿定 Creative 创作所需的完整输入。";
536
504
  readonly type: "object";
537
505
  readonly additionalProperties: false;
@@ -547,7 +515,6 @@ export declare function getCreativeSchema(): {
547
515
  readonly description: "本次创作使用的输入素材;媒体不能脱离 prompt 或 answers 单独提交。";
548
516
  readonly items: {
549
517
  readonly type: "object";
550
- readonly description: "一份带有明确用途的输入素材。";
551
518
  readonly additionalProperties: false;
552
519
  readonly required: readonly ["source", "role"];
553
520
  readonly properties: {
@@ -591,7 +558,7 @@ export declare function getCreativeSchema(): {
591
558
  readonly minLength: 1;
592
559
  readonly description: "继续已有创作或回答追问时使用的会话标识;首次请求和独立的新创作不传。";
593
560
  };
594
- readonly last_tool_message_id: {
561
+ readonly question_message_id: {
595
562
  readonly type: "string";
596
563
  readonly minLength: 1;
597
564
  readonly description: "正在回答或跳过的追问消息标识,原样使用上一次 requires_input 输出中的值。";
@@ -602,7 +569,6 @@ export declare function getCreativeSchema(): {
602
569
  readonly description: "对上一次 requires_input 输出中一个或多个问题的结构化回答。";
603
570
  readonly items: {
604
571
  readonly type: "object";
605
- readonly description: "对一条 GD Agent 追问的回答。";
606
572
  readonly additionalProperties: false;
607
573
  readonly required: readonly ["question", "values"];
608
574
  readonly properties: {
@@ -618,7 +584,6 @@ export declare function getCreativeSchema(): {
618
584
  readonly items: {
619
585
  readonly type: "string";
620
586
  readonly minLength: 1;
621
- readonly description: "一项非空的选择值或自定义回答。";
622
587
  };
623
588
  };
624
589
  };
@@ -626,18 +591,15 @@ export declare function getCreativeSchema(): {
626
591
  };
627
592
  };
628
593
  readonly anyOf: readonly [{
629
- readonly description: "普通新创作或连续编辑必须提供 prompt。";
630
594
  readonly required: readonly ["prompt"];
631
595
  }, {
632
- readonly description: "回答追问时 answers 可以替代 prompt,但必须同时携带两个连续对话标识。";
633
- readonly required: readonly ["answers", "conversation_id", "last_tool_message_id"];
596
+ readonly required: readonly ["answers"];
634
597
  }];
635
598
  readonly dependentRequired: {
636
- readonly answers: readonly ["conversation_id", "last_tool_message_id"];
637
- readonly last_tool_message_id: readonly ["conversation_id"];
599
+ readonly answers: readonly ["conversation_id", "question_message_id"];
600
+ readonly question_message_id: readonly ["conversation_id"];
638
601
  };
639
602
  readonly allOf: readonly [{
640
- readonly description: "first_frame 最多出现一次。";
641
603
  readonly properties: {
642
604
  readonly media: {
643
605
  readonly description: "用于检查首帧数量的素材列表。";
@@ -656,7 +618,6 @@ export declare function getCreativeSchema(): {
656
618
  };
657
619
  };
658
620
  }, {
659
- readonly description: "last_frame 最多出现一次。";
660
621
  readonly properties: {
661
622
  readonly media: {
662
623
  readonly description: "用于检查尾帧数量的素材列表。";
@@ -679,7 +640,6 @@ export declare function getCreativeSchema(): {
679
640
  output_schema: {
680
641
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
681
642
  readonly $id: "https://www.gaoding.com/cli/schemas/creative-output-v1.json";
682
- readonly title: "Creative Output";
683
643
  readonly description: "creative run 的统一最终输出;中间事件和内部调用过程不属于本 Schema。";
684
644
  readonly type: "object";
685
645
  readonly additionalProperties: false;
@@ -692,19 +652,9 @@ export declare function getCreativeSchema(): {
692
652
  };
693
653
  readonly data: {
694
654
  readonly description: "status 为 completed 时存在的 Creative 最终结果;failed 时为 null。";
695
- readonly oneOf: readonly [{
696
- readonly $ref: "#/$defs/result";
697
- }, {
698
- readonly type: "null";
699
- }];
700
655
  };
701
656
  readonly error: {
702
657
  readonly description: "status 为 failed 时存在的结构化错误;completed 时为 null。";
703
- readonly oneOf: readonly [{
704
- readonly $ref: "#/$defs/error";
705
- }, {
706
- readonly type: "null";
707
- }];
708
658
  };
709
659
  readonly meta: {
710
660
  readonly type: "object";
@@ -724,7 +674,6 @@ export declare function getCreativeSchema(): {
724
674
  };
725
675
  };
726
676
  readonly oneOf: readonly [{
727
- readonly description: "成功完成或需要使用者继续回答的结果。";
728
677
  readonly properties: {
729
678
  readonly status: {
730
679
  readonly const: "completed";
@@ -740,7 +689,6 @@ export declare function getCreativeSchema(): {
740
689
  };
741
690
  };
742
691
  }, {
743
- readonly description: "校验、认证、业务或网络失败的结果。";
744
692
  readonly properties: {
745
693
  readonly status: {
746
694
  readonly const: "failed";
@@ -759,7 +707,6 @@ export declare function getCreativeSchema(): {
759
707
  readonly $defs: {
760
708
  readonly result: {
761
709
  readonly type: "object";
762
- readonly description: "GD Agent 本轮的最终结果。";
763
710
  readonly additionalProperties: false;
764
711
  readonly required: readonly ["conversation_id", "finish_reason", "message", "outputs"];
765
712
  readonly properties: {
@@ -782,10 +729,9 @@ export declare function getCreativeSchema(): {
782
729
  readonly description: "本轮最终产出的文本、结构化数据或媒体。";
783
730
  readonly items: {
784
731
  readonly $ref: "#/$defs/output";
785
- readonly description: "一项 Creative 最终产出。";
786
732
  };
787
733
  };
788
- readonly last_tool_message_id: {
734
+ readonly question_message_id: {
789
735
  readonly type: "string";
790
736
  readonly minLength: 1;
791
737
  readonly description: "requires_input 时必填,并在下一次请求中原样回传。";
@@ -805,12 +751,12 @@ export declare function getCreativeSchema(): {
805
751
  };
806
752
  };
807
753
  readonly then: {
808
- readonly required: readonly ["last_tool_message_id", "questions"];
754
+ readonly required: readonly ["question_message_id", "questions"];
809
755
  };
810
756
  readonly else: {
811
757
  readonly not: {
812
758
  readonly anyOf: readonly [{
813
- readonly required: readonly ["last_tool_message_id"];
759
+ readonly required: readonly ["question_message_id"];
814
760
  }, {
815
761
  readonly required: readonly ["questions"];
816
762
  }];
@@ -820,7 +766,6 @@ export declare function getCreativeSchema(): {
820
766
  };
821
767
  readonly question_group: {
822
768
  readonly type: "object";
823
- readonly description: "GD Agent 在本轮提出的一组问题。";
824
769
  readonly additionalProperties: false;
825
770
  readonly required: readonly ["title", "questions"];
826
771
  readonly properties: {
@@ -834,7 +779,6 @@ export declare function getCreativeSchema(): {
834
779
  readonly description: "需要使用者回答的一个或多个问题。";
835
780
  readonly items: {
836
781
  readonly type: "object";
837
- readonly description: "一条 GD Agent 追问。";
838
782
  readonly additionalProperties: false;
839
783
  readonly required: readonly ["question", "options", "allow_multiple"];
840
784
  readonly properties: {
@@ -848,7 +792,6 @@ export declare function getCreativeSchema(): {
848
792
  readonly description: "推荐选项,可以为空;label 不是严格枚举。";
849
793
  readonly items: {
850
794
  readonly type: "object";
851
- readonly description: "一项推荐回答。";
852
795
  readonly additionalProperties: false;
853
796
  readonly required: readonly ["label"];
854
797
  readonly properties: {
@@ -870,10 +813,8 @@ export declare function getCreativeSchema(): {
870
813
  };
871
814
  };
872
815
  readonly output: {
873
- readonly description: "文本、JSON、图片、视频、音频或文件结果。";
874
816
  readonly oneOf: readonly [{
875
817
  readonly type: "object";
876
- readonly description: "文本结果。";
877
818
  readonly additionalProperties: false;
878
819
  readonly required: readonly ["type", "text"];
879
820
  readonly properties: {
@@ -888,7 +829,6 @@ export declare function getCreativeSchema(): {
888
829
  };
889
830
  }, {
890
831
  readonly type: "object";
891
- readonly description: "可机器解析的结构化结果。";
892
832
  readonly additionalProperties: false;
893
833
  readonly required: readonly ["type", "value"];
894
834
  readonly properties: {
@@ -902,7 +842,6 @@ export declare function getCreativeSchema(): {
902
842
  };
903
843
  }, {
904
844
  readonly type: "object";
905
- readonly description: "最终媒体或文件结果。";
906
845
  readonly additionalProperties: false;
907
846
  readonly required: readonly ["type", "url", "mime_type"];
908
847
  readonly properties: {
@@ -952,7 +891,6 @@ export declare function getCreativeSchema(): {
952
891
  };
953
892
  readonly error: {
954
893
  readonly type: "object";
955
- readonly description: "Creative 失败时的稳定错误信息。";
956
894
  readonly additionalProperties: false;
957
895
  readonly required: readonly ["code", "type", "message"];
958
896
  readonly properties: {
@@ -989,12 +927,14 @@ export declare const CREATIVE_EXAMPLES: {
989
927
  readonly examples: readonly [{
990
928
  readonly name: "text_creation";
991
929
  readonly description: "纯文本创作";
930
+ readonly command: "gd-cli creative run --prompt \"为一款轻量缓震跑鞋写三条电商主图标题,语言简洁有力。\" --json";
992
931
  readonly input: {
993
932
  readonly prompt: "为一款轻量缓震跑鞋写三条电商主图标题,语言简洁有力。";
994
933
  };
995
934
  }, {
996
935
  readonly name: "image_with_reference";
997
936
  readonly description: "使用参考图创作图片";
937
+ readonly command: "gd-cli creative run --input creative-request.json --json";
998
938
  readonly input: {
999
939
  readonly prompt: "以产品为主体生成一张户外晨跑场景广告图,保持鞋款外观和配色。";
1000
940
  readonly media: readonly [{
@@ -1009,6 +949,7 @@ export declare const CREATIVE_EXAMPLES: {
1009
949
  }, {
1010
950
  readonly name: "video_with_first_and_last_frames";
1011
951
  readonly description: "使用首尾帧创作视频";
952
+ readonly command: "gd-cli creative run --input creative-request.json --json";
1012
953
  readonly input: {
1013
954
  readonly prompt: "生成从清晨城市街道过渡到终点冲线的运动广告视频,镜头运动自然。";
1014
955
  readonly media: readonly [{
@@ -1027,6 +968,7 @@ export declare const CREATIVE_EXAMPLES: {
1027
968
  }, {
1028
969
  readonly name: "continue_creation";
1029
970
  readonly description: "继续修改已有创作";
971
+ readonly command: "gd-cli creative run --input creative-request.json --json";
1030
972
  readonly input: {
1031
973
  readonly conversation_id: "conversation_123";
1032
974
  readonly prompt: "保留主体和构图,把整体风格调整得更克制,并降低背景饱和度。";
@@ -1034,9 +976,10 @@ export declare const CREATIVE_EXAMPLES: {
1034
976
  }, {
1035
977
  readonly name: "answer_questions";
1036
978
  readonly description: "回答 GD Agent 的结构化追问";
979
+ readonly command: "gd-cli creative run --input creative-request.json --json";
1037
980
  readonly input: {
1038
981
  readonly conversation_id: "conversation_123";
1039
- readonly last_tool_message_id: "message_456";
982
+ readonly question_message_id: "message_456";
1040
983
  readonly answers: readonly [{
1041
984
  readonly question: "希望采用什么视觉风格?";
1042
985
  readonly values: readonly ["极简"];
@@ -1051,12 +994,14 @@ export declare function getCreativeExamples(): {
1051
994
  readonly examples: readonly [{
1052
995
  readonly name: "text_creation";
1053
996
  readonly description: "纯文本创作";
997
+ readonly command: "gd-cli creative run --prompt \"为一款轻量缓震跑鞋写三条电商主图标题,语言简洁有力。\" --json";
1054
998
  readonly input: {
1055
999
  readonly prompt: "为一款轻量缓震跑鞋写三条电商主图标题,语言简洁有力。";
1056
1000
  };
1057
1001
  }, {
1058
1002
  readonly name: "image_with_reference";
1059
1003
  readonly description: "使用参考图创作图片";
1004
+ readonly command: "gd-cli creative run --input creative-request.json --json";
1060
1005
  readonly input: {
1061
1006
  readonly prompt: "以产品为主体生成一张户外晨跑场景广告图,保持鞋款外观和配色。";
1062
1007
  readonly media: readonly [{
@@ -1071,6 +1016,7 @@ export declare function getCreativeExamples(): {
1071
1016
  }, {
1072
1017
  readonly name: "video_with_first_and_last_frames";
1073
1018
  readonly description: "使用首尾帧创作视频";
1019
+ readonly command: "gd-cli creative run --input creative-request.json --json";
1074
1020
  readonly input: {
1075
1021
  readonly prompt: "生成从清晨城市街道过渡到终点冲线的运动广告视频,镜头运动自然。";
1076
1022
  readonly media: readonly [{
@@ -1089,6 +1035,7 @@ export declare function getCreativeExamples(): {
1089
1035
  }, {
1090
1036
  readonly name: "continue_creation";
1091
1037
  readonly description: "继续修改已有创作";
1038
+ readonly command: "gd-cli creative run --input creative-request.json --json";
1092
1039
  readonly input: {
1093
1040
  readonly conversation_id: "conversation_123";
1094
1041
  readonly prompt: "保留主体和构图,把整体风格调整得更克制,并降低背景饱和度。";
@@ -1096,9 +1043,10 @@ export declare function getCreativeExamples(): {
1096
1043
  }, {
1097
1044
  readonly name: "answer_questions";
1098
1045
  readonly description: "回答 GD Agent 的结构化追问";
1046
+ readonly command: "gd-cli creative run --input creative-request.json --json";
1099
1047
  readonly input: {
1100
1048
  readonly conversation_id: "conversation_123";
1101
- readonly last_tool_message_id: "message_456";
1049
+ readonly question_message_id: "message_456";
1102
1050
  readonly answers: readonly [{
1103
1051
  readonly question: "希望采用什么视觉风格?";
1104
1052
  readonly values: readonly ["极简"];