@qingflow-tech/qingflow-cli 1.1.43 → 1.1.44-beta.1

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 (77) hide show
  1. package/README.md +13 -6
  2. package/entry_point.py +1 -1
  3. package/npm/bin/qingflow.mjs +1 -2
  4. package/npm/lib/runtime.mjs +3 -7
  5. package/package.json +2 -2
  6. package/pyproject.toml +3 -4
  7. package/skills/qingflow-app-form/SKILL.md +66 -0
  8. package/skills/qingflow-app-form/agents/openai.yaml +4 -0
  9. package/skills/qingflow-cli/SKILL.md +8 -6
  10. package/skills/qingflow-cli/manifest.yaml +1 -1
  11. package/skills/qingflow-cli/reference/QINGFLOW_CLI_BUILDER_APP_DELIVERY_WORKFLOW.md +4 -4
  12. package/skills/qingflow-cli/reference/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
  13. package/skills/qingflow-cli/reference/QINGFLOW_CLI_FIELD_DATA_TYPES.md +1 -1
  14. package/skills/qingflow-cli/reference/QINGFLOW_CLI_SCHEMA_APPLY_FIELD_TYPES_AND_SCENARIOS.md +4 -4
  15. package/skills/qingflow-cli/reference/builder/10-build-single-app.md +5 -5
  16. package/skills/qingflow-cli/reference/builder/20-build-complete-system.md +14 -14
  17. package/skills/qingflow-cli/reference/builder/30-schema-fields.md +106 -103
  18. package/skills/qingflow-cli/reference/builder/40-layout.md +39 -31
  19. package/skills/qingflow-cli/reference/builder/README.md +9 -9
  20. package/skills/qingflow-cli/reference/builder/code-integrations/README.md +4 -2
  21. package/skills/qingflow-cli/reference/builder/code-integrations/code-block.md +2 -0
  22. package/skills/qingflow-cli/reference/builder/code-integrations/q-linker.md +2 -0
  23. package/skills/qingflow-cli/reference/builder/reference/app-delivery-sop.md +45 -38
  24. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
  25. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_FIELD_DATA_TYPES.md +1 -1
  26. package/skills/qingflow-cli/reference/examples/README.md +3 -3
  27. package/skills/qingflow-common/SKILL.md +47 -0
  28. package/skills/qingflow-common/agents/openai.yaml +4 -0
  29. package/src/qingflow_mcp/__main__.py +2 -3
  30. package/src/qingflow_mcp/app_form_compat.py +104 -0
  31. package/src/qingflow_mcp/app_form_validator.py +462 -0
  32. package/src/qingflow_mcp/builder_facade/app_form.py +4196 -0
  33. package/src/qingflow_mcp/builder_facade/app_form_schema.py +425 -0
  34. package/src/qingflow_mcp/builder_facade/schemas/app_form/manifest.json +42 -0
  35. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +2969 -0
  36. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +392 -0
  37. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +236 -0
  38. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +425 -0
  39. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/code_block.json +318 -0
  40. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/data_relation.json +580 -0
  41. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date.json +150 -0
  42. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/datetime.json +150 -0
  43. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/department.json +345 -0
  44. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/email.json +190 -0
  45. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/link.json +190 -0
  46. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/long_text.json +190 -0
  47. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/member.json +484 -0
  48. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/multi_select.json +214 -0
  49. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +236 -0
  50. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/phone.json +199 -0
  51. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +412 -0
  52. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +454 -0
  53. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_choice.json +214 -0
  54. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_select.json +214 -0
  55. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +1921 -0
  56. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/text.json +190 -0
  57. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/formula.json +1594 -0
  58. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +718 -0
  59. package/src/qingflow_mcp/builder_facade/service.py +8 -4
  60. package/src/qingflow_mcp/cli/commands/builder.py +93 -28
  61. package/src/qingflow_mcp/cli/json_io.py +21 -2
  62. package/src/qingflow_mcp/cli/main.py +3 -39
  63. package/src/qingflow_mcp/public_surface.py +5 -2
  64. package/src/qingflow_mcp/response_trim.py +50 -0
  65. package/src/qingflow_mcp/server.py +24 -3
  66. package/src/qingflow_mcp/server_app_builder.py +44 -87
  67. package/src/qingflow_mcp/tools/ai_builder_tools.py +103 -100
  68. package/src/qingflow_mcp/tools/app_tools.py +46 -65
  69. package/src/qingflow_mcp/tools/record_tools.py +3 -3
  70. package/src/qingflow_mcp/version.py +2 -4
  71. package/docs/local-agent-install.md +0 -370
  72. package/skills/qingflow-mcp-setup/SKILL.md +0 -115
  73. package/skills/qingflow-mcp-setup/agents/openai.yaml +0 -4
  74. package/skills/qingflow-mcp-setup/references/claude-desktop.md +0 -34
  75. package/skills/qingflow-mcp-setup/references/environments.md +0 -62
  76. package/skills/qingflow-mcp-setup/references/generic-stdio.md +0 -32
  77. package/skills/qingflow-mcp-setup/scripts/check_local_server.sh +0 -38
@@ -0,0 +1,425 @@
1
+ {
2
+ "$defs": {
3
+ "AnswerValue": {
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "dataValue": {
7
+ "type": [
8
+ "string",
9
+ "null"
10
+ ]
11
+ },
12
+ "email": {
13
+ "type": [
14
+ "string",
15
+ "null"
16
+ ]
17
+ },
18
+ "id": {
19
+ "type": [
20
+ "integer",
21
+ "null"
22
+ ]
23
+ },
24
+ "optionId": {
25
+ "type": [
26
+ "string",
27
+ "null"
28
+ ]
29
+ },
30
+ "ordinal": {
31
+ "type": [
32
+ "integer",
33
+ "null"
34
+ ]
35
+ },
36
+ "otherInfo": {
37
+ "type": [
38
+ "string",
39
+ "null"
40
+ ]
41
+ },
42
+ "pluginValue": {
43
+ "type": [
44
+ "string",
45
+ "null"
46
+ ]
47
+ },
48
+ "queId": {
49
+ "type": [
50
+ "integer",
51
+ "null"
52
+ ]
53
+ },
54
+ "value": {
55
+ "type": [
56
+ "string",
57
+ "null"
58
+ ]
59
+ },
60
+ "valueStr": {
61
+ "type": [
62
+ "string",
63
+ "null"
64
+ ]
65
+ }
66
+ },
67
+ "type": "object"
68
+ },
69
+ "AttachmentConfig": {
70
+ "additionalProperties": false,
71
+ "description": "附件字段上传限制。",
72
+ "properties": {
73
+ "canScan": {
74
+ "type": [
75
+ "boolean",
76
+ "null"
77
+ ]
78
+ },
79
+ "defaultValues": {
80
+ "oneOf": [
81
+ {
82
+ "type": "null"
83
+ },
84
+ {
85
+ "$ref": "#/$defs/DefaultValues"
86
+ }
87
+ ]
88
+ },
89
+ "fileBeingCaptureOnly": {
90
+ "minimum": 0,
91
+ "type": [
92
+ "integer",
93
+ "null"
94
+ ]
95
+ },
96
+ "fileSize": {
97
+ "minimum": 1,
98
+ "type": [
99
+ "integer",
100
+ "null"
101
+ ]
102
+ },
103
+ "fileType": {
104
+ "items": {
105
+ "minLength": 1,
106
+ "type": "string"
107
+ },
108
+ "type": "array"
109
+ },
110
+ "imageCompress": {
111
+ "type": [
112
+ "boolean",
113
+ "null"
114
+ ]
115
+ },
116
+ "maxFileLimit": {
117
+ "minimum": 1,
118
+ "type": [
119
+ "integer",
120
+ "null"
121
+ ]
122
+ },
123
+ "maxFileLimitStatus": {
124
+ "type": [
125
+ "boolean",
126
+ "null"
127
+ ]
128
+ },
129
+ "pluginStatus": {
130
+ "type": [
131
+ "boolean",
132
+ "null"
133
+ ]
134
+ },
135
+ "scanType": {
136
+ "minimum": 0,
137
+ "type": [
138
+ "integer",
139
+ "null"
140
+ ]
141
+ }
142
+ },
143
+ "type": "object"
144
+ },
145
+ "DefaultValues": {
146
+ "additionalProperties": false,
147
+ "properties": {
148
+ "associatedQueType": {
149
+ "type": [
150
+ "integer",
151
+ "null"
152
+ ]
153
+ },
154
+ "beingCanDecrypted": {
155
+ "type": [
156
+ "boolean",
157
+ "null"
158
+ ]
159
+ },
160
+ "beingDesensitized": {
161
+ "type": [
162
+ "boolean",
163
+ "null"
164
+ ]
165
+ },
166
+ "canDecimal": {
167
+ "type": [
168
+ "boolean",
169
+ "null"
170
+ ]
171
+ },
172
+ "currencyStatus": {
173
+ "type": [
174
+ "boolean",
175
+ "null"
176
+ ]
177
+ },
178
+ "currencyType": {
179
+ "type": [
180
+ "integer",
181
+ "null"
182
+ ]
183
+ },
184
+ "dateType": {
185
+ "type": [
186
+ "integer",
187
+ "null"
188
+ ]
189
+ },
190
+ "decimalDigit": {
191
+ "type": [
192
+ "integer",
193
+ "null"
194
+ ]
195
+ },
196
+ "numberFormat": {
197
+ "type": [
198
+ "integer",
199
+ "null"
200
+ ]
201
+ },
202
+ "queId": {
203
+ "type": [
204
+ "integer",
205
+ "null"
206
+ ]
207
+ },
208
+ "queTitle": {
209
+ "type": [
210
+ "string",
211
+ "null"
212
+ ]
213
+ },
214
+ "queType": {
215
+ "type": [
216
+ "integer",
217
+ "null"
218
+ ]
219
+ },
220
+ "referValues": {
221
+ "items": {
222
+ "$ref": "#/$defs/ReferenceDefaultValue"
223
+ },
224
+ "type": "array"
225
+ },
226
+ "rowId": {
227
+ "type": [
228
+ "integer",
229
+ "null"
230
+ ]
231
+ },
232
+ "sourceValue": {
233
+ "type": [
234
+ "string",
235
+ "null"
236
+ ]
237
+ },
238
+ "tableValues": {
239
+ "items": {
240
+ "items": {
241
+ "$ref": "#/$defs/DefaultValues"
242
+ },
243
+ "type": "array"
244
+ },
245
+ "type": "array"
246
+ },
247
+ "values": {
248
+ "items": {
249
+ "$ref": "#/$defs/AnswerValue"
250
+ },
251
+ "type": "array"
252
+ }
253
+ },
254
+ "required": [
255
+ "values"
256
+ ],
257
+ "type": "object"
258
+ },
259
+ "FieldCommon": {
260
+ "allOf": [
261
+ {
262
+ "if": {
263
+ "properties": {
264
+ "defaultType": {
265
+ "const": 2
266
+ }
267
+ },
268
+ "required": [
269
+ "defaultType"
270
+ ]
271
+ },
272
+ "then": {
273
+ "properties": {
274
+ "defaultValue": {
275
+ "type": "null"
276
+ }
277
+ }
278
+ }
279
+ },
280
+ {
281
+ "if": {
282
+ "properties": {
283
+ "defaultType": {
284
+ "const": 3
285
+ }
286
+ },
287
+ "required": [
288
+ "defaultType"
289
+ ]
290
+ },
291
+ "then": {
292
+ "properties": {
293
+ "defaultValue": {
294
+ "minLength": 1,
295
+ "type": [
296
+ "string",
297
+ "null"
298
+ ]
299
+ }
300
+ }
301
+ }
302
+ }
303
+ ],
304
+ "anyOf": [
305
+ {
306
+ "required": [
307
+ "queId"
308
+ ]
309
+ },
310
+ {
311
+ "required": [
312
+ "name"
313
+ ]
314
+ }
315
+ ],
316
+ "description": "顶层业务字段的公共属性;字段类型由 TopField 的判别分支定义。",
317
+ "properties": {
318
+ "beingRequired": {
319
+ "description": "该字段是否必填;缺失时保留已有字段当前值。",
320
+ "type": "boolean"
321
+ },
322
+ "defaultType": {
323
+ "default": 1,
324
+ "description": "默认值类型,与 defaultValue 联动;1 表示静态值,2 表示关联/绑定值且 defaultValue 只能省略或为 null,3 表示公式值且提供 defaultValue 时必须为非空公式文本。省略 defaultType 但提供 defaultValue 时按 1 处理。",
325
+ "enum": [
326
+ 1,
327
+ 2,
328
+ 3
329
+ ],
330
+ "type": "integer"
331
+ },
332
+ "defaultValue": {
333
+ "$ref": "#/$defs/ScalarDefaultValue",
334
+ "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
335
+ },
336
+ "name": {
337
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
338
+ "minLength": 1,
339
+ "type": "string"
340
+ },
341
+ "queId": {
342
+ "description": "已有字段的后端 ID;更新时用于精确定位并复用,新增字段通常省略。",
343
+ "minimum": 1,
344
+ "type": "integer"
345
+ },
346
+ "questionDescription": {
347
+ "description": "字段说明;null 或空字符串表示清空。",
348
+ "type": [
349
+ "string",
350
+ "null"
351
+ ]
352
+ },
353
+ "questionType": {
354
+ "description": "字段类型;具体可用值由当前字段详情 Schema 的判别分支约束。",
355
+ "type": "string"
356
+ },
357
+ "width": {
358
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
359
+ "enum": [
360
+ 25,
361
+ 50,
362
+ 75,
363
+ 100
364
+ ],
365
+ "type": "integer"
366
+ }
367
+ },
368
+ "type": "object"
369
+ },
370
+ "ReferenceDefaultValue": {
371
+ "additionalProperties": false,
372
+ "properties": {
373
+ "applyId": {
374
+ "type": [
375
+ "integer",
376
+ "null"
377
+ ]
378
+ },
379
+ "dataTitle": {
380
+ "type": [
381
+ "string",
382
+ "null"
383
+ ]
384
+ },
385
+ "values": {
386
+ "items": {
387
+ "$ref": "#/$defs/DefaultValues"
388
+ },
389
+ "type": "array"
390
+ }
391
+ },
392
+ "type": "object"
393
+ },
394
+ "ScalarDefaultValue": {
395
+ "description": "后端 queDefaultValue 支持的普通字段默认值;非空值必须是字符串,显式 null 表示清除默认值。数字和布尔值应先转换为字符串,对象和数组必须使用字段专用默认值配置。defaultType 为 3 时,通过 AppForm Schema 查询能力传入当前 schema_version 并设置 schema_kind=formula 获取公式语法、字段引用、运算符和全部函数说明;CLI 使用 builder app-form schema --schema-kind formula。需要配置结构化默认值时,传入当前 schema_version,并将字段的 questionType 作为 field_type 获取字段详细 Schema。",
396
+ "type": [
397
+ "null",
398
+ "string"
399
+ ]
400
+ }
401
+ },
402
+ "$id": "https://builder.qingflow.com/schemas/app-form-apply/v1alpha1/fields/attachment.json",
403
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
404
+ "allOf": [
405
+ {
406
+ "$ref": "#/$defs/FieldCommon"
407
+ },
408
+ {
409
+ "properties": {
410
+ "config": {
411
+ "$ref": "#/$defs/AttachmentConfig"
412
+ },
413
+ "questionType": {
414
+ "const": "attachment"
415
+ }
416
+ },
417
+ "required": [
418
+ "questionType"
419
+ ]
420
+ }
421
+ ],
422
+ "title": "Qingflow AppForm v1alpha1 attachment field",
423
+ "type": "object",
424
+ "unevaluatedProperties": false
425
+ }