@qingflow-tech/qingflow-cli 1.1.42 → 1.1.43-beta.2

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 (63) hide show
  1. package/README.md +5 -4
  2. package/package.json +2 -1
  3. package/pyproject.toml +3 -2
  4. package/skills/qingflow-app-form/SKILL.md +53 -0
  5. package/skills/qingflow-app-form/agents/openai.yaml +4 -0
  6. package/skills/qingflow-cli/SKILL.md +6 -6
  7. package/skills/qingflow-cli/manifest.yaml +1 -1
  8. package/skills/qingflow-cli/reference/QINGFLOW_CLI_BUILDER_APP_DELIVERY_WORKFLOW.md +4 -4
  9. package/skills/qingflow-cli/reference/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
  10. package/skills/qingflow-cli/reference/QINGFLOW_CLI_FIELD_DATA_TYPES.md +1 -1
  11. package/skills/qingflow-cli/reference/QINGFLOW_CLI_SCHEMA_APPLY_FIELD_TYPES_AND_SCENARIOS.md +4 -4
  12. package/skills/qingflow-cli/reference/builder/10-build-single-app.md +5 -5
  13. package/skills/qingflow-cli/reference/builder/20-build-complete-system.md +14 -14
  14. package/skills/qingflow-cli/reference/builder/30-schema-fields.md +98 -101
  15. package/skills/qingflow-cli/reference/builder/40-layout.md +39 -31
  16. package/skills/qingflow-cli/reference/builder/README.md +9 -9
  17. package/skills/qingflow-cli/reference/builder/code-integrations/README.md +4 -2
  18. package/skills/qingflow-cli/reference/builder/code-integrations/code-block.md +2 -0
  19. package/skills/qingflow-cli/reference/builder/code-integrations/q-linker.md +2 -0
  20. package/skills/qingflow-cli/reference/builder/reference/app-delivery-sop.md +45 -38
  21. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
  22. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_FIELD_DATA_TYPES.md +1 -1
  23. package/skills/qingflow-cli/reference/examples/README.md +3 -3
  24. package/skills/qingflow-mcp-setup/SKILL.md +1 -1
  25. package/src/qingflow_mcp/app_form_compat.py +120 -0
  26. package/src/qingflow_mcp/app_form_validator.py +199 -0
  27. package/src/qingflow_mcp/builder_facade/app_form.py +3365 -0
  28. package/src/qingflow_mcp/builder_facade/app_form_schema.py +269 -0
  29. package/src/qingflow_mcp/builder_facade/schemas/app_form/manifest.json +37 -0
  30. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +2909 -0
  31. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +337 -0
  32. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +181 -0
  33. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +373 -0
  34. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/code_block.json +242 -0
  35. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/data_relation.json +557 -0
  36. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date.json +95 -0
  37. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/datetime.json +95 -0
  38. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/department.json +290 -0
  39. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/email.json +135 -0
  40. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/link.json +135 -0
  41. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/long_text.json +135 -0
  42. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/member.json +429 -0
  43. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/multi_select.json +159 -0
  44. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +181 -0
  45. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/phone.json +144 -0
  46. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +357 -0
  47. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +382 -0
  48. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_choice.json +159 -0
  49. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_select.json +159 -0
  50. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +1831 -0
  51. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/text.json +135 -0
  52. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +736 -0
  53. package/src/qingflow_mcp/builder_facade/service.py +5 -2
  54. package/src/qingflow_mcp/cli/commands/builder.py +91 -28
  55. package/src/qingflow_mcp/cli/json_io.py +21 -2
  56. package/src/qingflow_mcp/cli/main.py +3 -39
  57. package/src/qingflow_mcp/cloud_oauth_proxy.py +96 -3
  58. package/src/qingflow_mcp/public_surface.py +5 -2
  59. package/src/qingflow_mcp/response_trim.py +48 -0
  60. package/src/qingflow_mcp/server_app_builder.py +38 -86
  61. package/src/qingflow_mcp/server_cloud.py +66 -1
  62. package/src/qingflow_mcp/tools/ai_builder_tools.py +93 -100
  63. package/src/qingflow_mcp/tools/app_tools.py +46 -65
@@ -0,0 +1,736 @@
1
+ {
2
+ "$defs": {
3
+ "AppFormSpec": {
4
+ "additionalProperties": false,
5
+ "description": "表单基础配置与字段布局目标态;除 body 外,缺失属性表示保留当前值。",
6
+ "properties": {
7
+ "appName": {
8
+ "description": "应用名称;缺失时保留当前名称。",
9
+ "minLength": 1,
10
+ "type": "string"
11
+ },
12
+ "attachments": {
13
+ "description": "应用附件完整目标态;空数组表示删除全部应用附件。",
14
+ "items": {
15
+ "$ref": "#/$defs/Attachment"
16
+ },
17
+ "type": "array"
18
+ },
19
+ "body": {
20
+ "$ref": "#/$defs/Body",
21
+ "description": "业务字段与布局的完整目标态;缺失字段或段落表示删除。"
22
+ },
23
+ "color": {
24
+ "description": "新应用图标颜色;仅创建分支允许,必须来自 workspace icon color catalog。",
25
+ "minLength": 1,
26
+ "type": "string"
27
+ },
28
+ "description": {
29
+ "description": "应用描述;null 或空字符串表示清空。",
30
+ "type": [
31
+ "string",
32
+ "null"
33
+ ]
34
+ },
35
+ "icon": {
36
+ "description": "新应用图标;仅创建分支允许,必须来自 workspace icon catalog 且不得为 template。",
37
+ "minLength": 1,
38
+ "type": "string"
39
+ },
40
+ "serialNumber": {
41
+ "$ref": "#/$defs/SerialNumber",
42
+ "description": "应用编号规则;支持默认编号或自定义组件编号。"
43
+ },
44
+ "style": {
45
+ "description": "应用样式;对象内缺失属性保留当前值,null 表示清除全部自定义样式。",
46
+ "oneOf": [
47
+ {
48
+ "$ref": "#/$defs/Style"
49
+ },
50
+ {
51
+ "type": "null"
52
+ }
53
+ ]
54
+ },
55
+ "theme": {
56
+ "description": "应用主题 ID;null 表示清除自定义主题。",
57
+ "type": [
58
+ "integer",
59
+ "null"
60
+ ]
61
+ }
62
+ },
63
+ "required": [
64
+ "body"
65
+ ],
66
+ "type": "object"
67
+ },
68
+ "Attachment": {
69
+ "additionalProperties": false,
70
+ "description": "应用级附件;已有附件由 attachId 复用,新增附件省略 attachId。",
71
+ "properties": {
72
+ "attachId": {
73
+ "description": "后端生成的附件 ID;get 返回,新增时省略。",
74
+ "minimum": 1,
75
+ "type": "integer"
76
+ },
77
+ "fileName": {
78
+ "description": "附件展示名称。",
79
+ "minLength": 1,
80
+ "type": "string"
81
+ },
82
+ "fileUrl": {
83
+ "description": "已上传文件的可访问 URL。",
84
+ "minLength": 1,
85
+ "type": "string"
86
+ }
87
+ },
88
+ "required": [
89
+ "fileName",
90
+ "fileUrl"
91
+ ],
92
+ "type": "object"
93
+ },
94
+ "Body": {
95
+ "description": "有序表单内容块;空数组表示删除全部业务字段和段落。",
96
+ "items": {
97
+ "$ref": "#/$defs/BodyBlock"
98
+ },
99
+ "type": "array"
100
+ },
101
+ "BodyBlock": {
102
+ "description": "根级普通行或独占外层位置的段落。",
103
+ "oneOf": [
104
+ {
105
+ "$ref": "#/$defs/RowBlock"
106
+ },
107
+ {
108
+ "$ref": "#/$defs/SectionBlock"
109
+ }
110
+ ]
111
+ },
112
+ "FieldRow": {
113
+ "additionalProperties": false,
114
+ "description": "段落内部字段行。",
115
+ "properties": {
116
+ "fields": {
117
+ "description": "本行的 1 到 4 个顶层字段。",
118
+ "items": {
119
+ "$ref": "#/$defs/TopField"
120
+ },
121
+ "maxItems": 4,
122
+ "minItems": 1,
123
+ "type": "array"
124
+ }
125
+ },
126
+ "required": [
127
+ "fields"
128
+ ],
129
+ "type": "object"
130
+ },
131
+ "FieldSelector": {
132
+ "additionalProperties": false,
133
+ "anyOf": [
134
+ {
135
+ "required": [
136
+ "queId"
137
+ ]
138
+ },
139
+ {
140
+ "required": [
141
+ "name"
142
+ ]
143
+ }
144
+ ],
145
+ "description": "跨字段引用选择器;至少提供 queId 或 name,两者同时提供时必须指向同一字段。",
146
+ "properties": {
147
+ "name": {
148
+ "description": "字段名称;仅在当前作用域内唯一时可用于解析。",
149
+ "minLength": 1,
150
+ "type": "string"
151
+ },
152
+ "queId": {
153
+ "description": "已有字段的后端 ID;优先用于精确解析。",
154
+ "minimum": 1,
155
+ "type": "integer"
156
+ }
157
+ },
158
+ "type": "object"
159
+ },
160
+ "FieldSummary": {
161
+ "additionalProperties": false,
162
+ "properties": {
163
+ "config": {
164
+ "description": "调用对应 field_type 的详细 Schema 后生成。",
165
+ "type": "object"
166
+ },
167
+ "dataCover": {
168
+ "type": "boolean"
169
+ },
170
+ "dataTitle": {
171
+ "type": "boolean"
172
+ },
173
+ "defaultType": {
174
+ "default": 1,
175
+ "description": "默认值类型;1 表示静态值,2 表示关联/绑定值,3 表示公式值。",
176
+ "enum": [
177
+ 1,
178
+ 2,
179
+ 3
180
+ ],
181
+ "type": "integer"
182
+ },
183
+ "defaultValue": {
184
+ "$ref": "#/$defs/ScalarDefaultValue",
185
+ "description": "普通字段的标量默认值;结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
186
+ },
187
+ "description": {
188
+ "type": [
189
+ "string",
190
+ "null"
191
+ ]
192
+ },
193
+ "name": {
194
+ "minLength": 1,
195
+ "type": "string"
196
+ },
197
+ "queId": {
198
+ "minimum": 1,
199
+ "type": "integer"
200
+ },
201
+ "required": {
202
+ "type": "boolean"
203
+ },
204
+ "subfields": {
205
+ "description": "仅 subtable 使用;详情见 subtable Schema。",
206
+ "type": "array"
207
+ },
208
+ "type": {
209
+ "description": "必须来自 x-qingflow-supported-field-types。",
210
+ "type": "string"
211
+ },
212
+ "width": {
213
+ "maximum": 100,
214
+ "minimum": 1,
215
+ "type": "integer"
216
+ }
217
+ },
218
+ "required": [
219
+ "name",
220
+ "type"
221
+ ],
222
+ "type": "object"
223
+ },
224
+ "RowBlock": {
225
+ "additionalProperties": false,
226
+ "description": "根级普通字段行;字段顺序即展示顺序。",
227
+ "properties": {
228
+ "fields": {
229
+ "description": "本行的 1 到 4 个顶层字段。",
230
+ "items": {
231
+ "$ref": "#/$defs/TopField"
232
+ },
233
+ "maxItems": 4,
234
+ "minItems": 1,
235
+ "type": "array"
236
+ },
237
+ "kind": {
238
+ "const": "row",
239
+ "description": "普通行判别值。"
240
+ }
241
+ },
242
+ "required": [
243
+ "kind",
244
+ "fields"
245
+ ],
246
+ "type": "object"
247
+ },
248
+ "RowSummary": {
249
+ "additionalProperties": false,
250
+ "properties": {
251
+ "fields": {
252
+ "items": {
253
+ "$ref": "#/$defs/FieldSummary"
254
+ },
255
+ "maxItems": 4,
256
+ "minItems": 1,
257
+ "type": "array"
258
+ },
259
+ "kind": {
260
+ "const": "row"
261
+ }
262
+ },
263
+ "required": [
264
+ "kind",
265
+ "fields"
266
+ ],
267
+ "type": "object"
268
+ },
269
+ "ScalarDefaultValue": {
270
+ "description": "不包含对象或数组的普通字段默认值。",
271
+ "type": [
272
+ "null",
273
+ "boolean",
274
+ "number",
275
+ "string"
276
+ ]
277
+ },
278
+ "SectionBlock": {
279
+ "additionalProperties": false,
280
+ "description": "段落布局容器;不是业务字段,必须独占一个根级块。",
281
+ "properties": {
282
+ "kind": {
283
+ "const": "section",
284
+ "description": "段落判别值。"
285
+ },
286
+ "rows": {
287
+ "description": "段落内的非空有序字段行。",
288
+ "items": {
289
+ "$ref": "#/$defs/FieldRow"
290
+ },
291
+ "minItems": 1,
292
+ "type": "array"
293
+ },
294
+ "sectionId": {
295
+ "description": "已有段落的真实身份;get 把后端数值 queId 输出为无前导零的正十进制字符串,apply 仅在构造后端 payload 时转回数值 queId,新增段落省略。",
296
+ "pattern": "^[1-9][0-9]*$",
297
+ "type": "string"
298
+ },
299
+ "title": {
300
+ "description": "段落标题。",
301
+ "minLength": 1,
302
+ "type": "string"
303
+ }
304
+ },
305
+ "required": [
306
+ "kind",
307
+ "title",
308
+ "rows"
309
+ ],
310
+ "type": "object"
311
+ },
312
+ "SectionSummary": {
313
+ "additionalProperties": false,
314
+ "properties": {
315
+ "kind": {
316
+ "const": "section"
317
+ },
318
+ "rows": {
319
+ "items": {
320
+ "additionalProperties": false,
321
+ "properties": {
322
+ "fields": {
323
+ "items": {
324
+ "$ref": "#/$defs/FieldSummary"
325
+ },
326
+ "maxItems": 4,
327
+ "minItems": 1,
328
+ "type": "array"
329
+ }
330
+ },
331
+ "required": [
332
+ "fields"
333
+ ],
334
+ "type": "object"
335
+ },
336
+ "minItems": 1,
337
+ "type": "array"
338
+ },
339
+ "sectionId": {
340
+ "pattern": "^[1-9][0-9]*$",
341
+ "type": "string"
342
+ },
343
+ "title": {
344
+ "minLength": 1,
345
+ "type": "string"
346
+ }
347
+ },
348
+ "required": [
349
+ "kind",
350
+ "title",
351
+ "rows"
352
+ ],
353
+ "type": "object"
354
+ },
355
+ "SerialComponent": {
356
+ "description": "自定义编号的组成部分;id 仅用于复用已有组件。",
357
+ "oneOf": [
358
+ {
359
+ "additionalProperties": false,
360
+ "properties": {
361
+ "id": {
362
+ "description": "后端生成的组件 ID;get 返回,新增时省略。",
363
+ "minimum": 1,
364
+ "type": "integer"
365
+ },
366
+ "length": {
367
+ "description": "自动计数部分的位数。",
368
+ "maximum": 9,
369
+ "minimum": 3,
370
+ "type": "integer"
371
+ },
372
+ "repeatPeriod": {
373
+ "description": "自动计数器的重置周期。",
374
+ "enum": [
375
+ "none",
376
+ "day",
377
+ "week",
378
+ "month",
379
+ "year"
380
+ ]
381
+ },
382
+ "type": {
383
+ "const": "auto_count"
384
+ }
385
+ },
386
+ "required": [
387
+ "type",
388
+ "length",
389
+ "repeatPeriod"
390
+ ],
391
+ "type": "object"
392
+ },
393
+ {
394
+ "additionalProperties": false,
395
+ "properties": {
396
+ "dateFormat": {
397
+ "description": "提交时间在编号中的格式。",
398
+ "enum": [
399
+ "year",
400
+ "year_month",
401
+ "year_month_day"
402
+ ]
403
+ },
404
+ "id": {
405
+ "minimum": 1,
406
+ "type": "integer"
407
+ },
408
+ "type": {
409
+ "const": "submit_datetime"
410
+ }
411
+ },
412
+ "required": [
413
+ "type",
414
+ "dateFormat"
415
+ ],
416
+ "type": "object"
417
+ },
418
+ {
419
+ "additionalProperties": false,
420
+ "properties": {
421
+ "id": {
422
+ "minimum": 1,
423
+ "type": "integer"
424
+ },
425
+ "type": {
426
+ "const": "fixed_text"
427
+ },
428
+ "value": {
429
+ "description": "固定拼接文本。",
430
+ "minLength": 1,
431
+ "type": "string"
432
+ }
433
+ },
434
+ "required": [
435
+ "type",
436
+ "value"
437
+ ],
438
+ "type": "object"
439
+ },
440
+ {
441
+ "additionalProperties": false,
442
+ "properties": {
443
+ "dateFormat": {
444
+ "description": "来源为日期字段时的格式。",
445
+ "enum": [
446
+ "year",
447
+ "year_month",
448
+ "year_month_day"
449
+ ]
450
+ },
451
+ "field": {
452
+ "$ref": "#/$defs/FieldSelector",
453
+ "description": "取值来源字段。"
454
+ },
455
+ "id": {
456
+ "minimum": 1,
457
+ "type": "integer"
458
+ },
459
+ "type": {
460
+ "const": "field"
461
+ }
462
+ },
463
+ "required": [
464
+ "type",
465
+ "field"
466
+ ],
467
+ "type": "object"
468
+ }
469
+ ]
470
+ },
471
+ "SerialNumber": {
472
+ "description": "应用数据编号配置;自定义模式必须且只能包含一个自动计数组件。",
473
+ "oneOf": [
474
+ {
475
+ "additionalProperties": false,
476
+ "properties": {
477
+ "mode": {
478
+ "const": "default",
479
+ "description": "使用系统默认编号规则。"
480
+ }
481
+ },
482
+ "required": [
483
+ "mode"
484
+ ],
485
+ "type": "object"
486
+ },
487
+ {
488
+ "additionalProperties": false,
489
+ "properties": {
490
+ "components": {
491
+ "contains": {
492
+ "properties": {
493
+ "type": {
494
+ "const": "auto_count"
495
+ }
496
+ },
497
+ "required": [
498
+ "type"
499
+ ],
500
+ "type": "object"
501
+ },
502
+ "description": "自定义编号组件的完整有序目标态。",
503
+ "items": {
504
+ "$ref": "#/$defs/SerialComponent"
505
+ },
506
+ "maxContains": 1,
507
+ "minContains": 1,
508
+ "minItems": 1,
509
+ "type": "array"
510
+ },
511
+ "mode": {
512
+ "const": "custom",
513
+ "description": "使用按数组顺序拼接的自定义编号组件。"
514
+ }
515
+ },
516
+ "required": [
517
+ "mode",
518
+ "components"
519
+ ],
520
+ "type": "object"
521
+ }
522
+ ]
523
+ },
524
+ "Style": {
525
+ "additionalProperties": false,
526
+ "description": "表单背景和头部视觉样式;颜色使用 CSS 颜色字符串。",
527
+ "properties": {
528
+ "bgColor": {
529
+ "description": "表单背景色;null 表示清除。",
530
+ "type": [
531
+ "string",
532
+ "null"
533
+ ]
534
+ },
535
+ "bgImage": {
536
+ "description": "表单背景图片 URL;null 表示清除。",
537
+ "type": [
538
+ "string",
539
+ "null"
540
+ ]
541
+ },
542
+ "fontColor": {
543
+ "description": "表单头部字体颜色;null 表示清除。",
544
+ "type": [
545
+ "string",
546
+ "null"
547
+ ]
548
+ },
549
+ "headerColor": {
550
+ "description": "表单头部背景色;null 表示清除。",
551
+ "type": [
552
+ "string",
553
+ "null"
554
+ ]
555
+ },
556
+ "headerImage": {
557
+ "description": "表单头图 URL;null 表示清除。",
558
+ "type": [
559
+ "string",
560
+ "null"
561
+ ]
562
+ },
563
+ "opacity": {
564
+ "description": "背景透明度,取值 0 到 1;null 表示清除。",
565
+ "maximum": 1,
566
+ "minimum": 0,
567
+ "type": [
568
+ "number",
569
+ "null"
570
+ ]
571
+ }
572
+ },
573
+ "type": "object"
574
+ },
575
+ "TopField": {}
576
+ },
577
+ "$id": "https://builder.qingflow.com/schemas/app-form-apply/v1alpha1/summary.json",
578
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
579
+ "additionalProperties": false,
580
+ "oneOf": [
581
+ {
582
+ "properties": {
583
+ "spec": {
584
+ "not": {
585
+ "anyOf": [
586
+ {
587
+ "required": [
588
+ "icon"
589
+ ]
590
+ },
591
+ {
592
+ "required": [
593
+ "color"
594
+ ]
595
+ }
596
+ ]
597
+ }
598
+ }
599
+ },
600
+ "required": [
601
+ "appKey"
602
+ ]
603
+ },
604
+ {
605
+ "not": {
606
+ "required": [
607
+ "appKey"
608
+ ]
609
+ },
610
+ "properties": {
611
+ "spec": {
612
+ "required": [
613
+ "appName",
614
+ "icon",
615
+ "color"
616
+ ]
617
+ }
618
+ },
619
+ "required": [
620
+ "packageId"
621
+ ]
622
+ }
623
+ ],
624
+ "properties": {
625
+ "apiVersion": {
626
+ "const": "builder.qingflow.com/v1alpha1"
627
+ },
628
+ "appKey": {
629
+ "description": "更新已有应用时使用;存在非空值即进入更新模式。",
630
+ "minLength": 1,
631
+ "type": "string"
632
+ },
633
+ "packageId": {
634
+ "description": "创建时必填;更新时可选,提供后确保该包引用应用且不移除其他包引用。",
635
+ "minimum": 1,
636
+ "type": "integer"
637
+ },
638
+ "spec": {
639
+ "additionalProperties": false,
640
+ "properties": {
641
+ "appName": {
642
+ "minLength": 1,
643
+ "type": "string"
644
+ },
645
+ "attachments": {
646
+ "description": "应用附件完整目标态。",
647
+ "items": {
648
+ "type": "object"
649
+ },
650
+ "type": "array"
651
+ },
652
+ "body": {
653
+ "description": "业务字段与布局完整目标态;缺失业务字段表示删除。",
654
+ "items": {
655
+ "oneOf": [
656
+ {
657
+ "$ref": "#/$defs/RowSummary"
658
+ },
659
+ {
660
+ "$ref": "#/$defs/SectionSummary"
661
+ }
662
+ ]
663
+ },
664
+ "type": "array"
665
+ },
666
+ "color": {
667
+ "description": "仅创建时使用;必须来自 workspace icon color catalog。",
668
+ "minLength": 1,
669
+ "type": "string"
670
+ },
671
+ "description": {
672
+ "type": [
673
+ "string",
674
+ "null"
675
+ ]
676
+ },
677
+ "icon": {
678
+ "description": "仅创建时使用;必须来自 workspace icon catalog 且不得为 template。",
679
+ "minLength": 1,
680
+ "type": "string"
681
+ },
682
+ "serialNumber": {
683
+ "description": "default 或 custom 编号配置。",
684
+ "type": "object"
685
+ },
686
+ "style": {
687
+ "description": "应用样式;详细属性为 bgImage/bgColor/opacity/headerImage/headerColor/fontColor。",
688
+ "type": [
689
+ "object",
690
+ "null"
691
+ ]
692
+ },
693
+ "theme": {
694
+ "type": [
695
+ "integer",
696
+ "null"
697
+ ]
698
+ }
699
+ },
700
+ "required": [
701
+ "body"
702
+ ],
703
+ "type": "object"
704
+ }
705
+ },
706
+ "required": [
707
+ "apiVersion",
708
+ "spec"
709
+ ],
710
+ "title": "Qingflow AppFormApply v1alpha1 Summary",
711
+ "type": "object",
712
+ "x-qingflow-field-detail-query": "app_form_schema(schema_version, field_type)",
713
+ "x-qingflow-supported-field-types": [
714
+ "text",
715
+ "long_text",
716
+ "number",
717
+ "amount",
718
+ "link",
719
+ "date",
720
+ "datetime",
721
+ "member",
722
+ "department",
723
+ "single_choice",
724
+ "single_select",
725
+ "multi_select",
726
+ "phone",
727
+ "email",
728
+ "address",
729
+ "attachment",
730
+ "q_linker",
731
+ "code_block",
732
+ "data_relation",
733
+ "relation",
734
+ "subtable"
735
+ ]
736
+ }