@qingflow-tech/qingflow-cli 1.1.50-beta.1 → 1.1.50-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/package.json +1 -1
- package/pyproject.toml +8 -2
- package/skills/qingflow-cli/SKILL.md +74 -0
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_BUILDER_VIEWS_WORKFLOW.md +3 -9
- package/skills/qingflow-cli/reference/builder/20-build-complete-system.md +3 -2
- package/skills/qingflow-cli/reference/builder/30-schema-fields.md +9 -5
- package/skills/qingflow-cli/reference/builder/50-views.md +176 -190
- package/skills/qingflow-cli/reference/builder/README.md +1 -1
- package/skills/qingflow-cli/reference/builder/reference/app-delivery-sop.md +6 -6
- package/skills/qingflow-cli/reference/examples/README.md +1 -1
- package/skills/qingflow-cli/reference/examples/views/views_apply_v1alpha1.example.json +14 -0
- package/skills/qingflow-cli/reference/examples/views/views_upsert_table_minimal.example.json +30 -36
- package/src/qingflow_mcp/app_form_compat.py +3 -0
- package/src/qingflow_mcp/app_form_validator.py +16 -3
- package/src/qingflow_mcp/builder_facade/app_form.py +360 -68
- package/src/qingflow_mcp/builder_facade/models.py +208 -17
- package/src/qingflow_mcp/builder_facade/schemas/app_form/manifest.json +1 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +61 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +5 -9
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/code_block.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/data_relation.json +8 -15
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/datetime.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/department.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/email.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/link.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/long_text.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/member.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/multi_select.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/phone.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +43 -12
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/rich_text.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_choice.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_select.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +58 -24
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/text.json +3 -7
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/formula.json +8 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +5 -10
- package/src/qingflow_mcp/builder_facade/schemas/views/manifest.json +43 -0
- package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/complete.json +1193 -0
- package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/button-config.json +53 -0
- package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/data-permission.json +60 -0
- package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/display.json +71 -0
- package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/operation-permission.json +48 -0
- package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/query-condition.json +47 -0
- package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/summary.json +274 -0
- package/src/qingflow_mcp/builder_facade/service.py +1427 -410
- package/src/qingflow_mcp/builder_facade/views_extract.py +572 -0
- package/src/qingflow_mcp/builder_facade/views_schema.py +400 -0
- package/src/qingflow_mcp/cli/commands/builder.py +72 -53
- package/src/qingflow_mcp/public_surface.py +3 -0
- package/src/qingflow_mcp/response_trim.py +11 -2
- package/src/qingflow_mcp/server_app_builder.py +32 -8
- package/src/qingflow_mcp/solution/executor.py +93 -7
- package/src/qingflow_mcp/tools/ai_builder_tools.py +211 -393
- package/src/qingflow_mcp/tools/solution_tools.py +2 -0
- package/src/qingflow_mcp/tools/view_tools.py +0 -6
- package/src/qingflow_mcp/tools/view_writer.py +44 -0
- package/skills/qingflow-cli/reference/examples/views/views_batch_full.example.json +0 -159
- package/skills/qingflow-cli/reference/views_upsert_table_minimal.example.json +0 -42
|
@@ -1590,5 +1590,13 @@
|
|
|
1590
1590
|
"需要拼接字段当前值时,将该字段的实际 queId 写成未加引号的 #queId_<字段ID>$;字段 name、字段标题和字段默认值都不能替代字段引用。",
|
|
1591
1591
|
"新建应用的同一次 create 声明中尚未获得 queId 时,不得虚构 queId 或以字段 name 代替:先创建字段,app_form_get 回读实际 queId 后,再提交公式默认值更新。"
|
|
1592
1592
|
]
|
|
1593
|
+
},
|
|
1594
|
+
"x-qingflow-validation": {
|
|
1595
|
+
"functionCallPolicy": "validate 会识别公式文本中引号外的 函数名( 调用;函数名必须在 x-qingflow-functions 中声明。未知函数会被拒绝,字符串字面量中的 NAME() 不视为函数调用。",
|
|
1596
|
+
"scope": [
|
|
1597
|
+
"defaultType=3 的 defaultValue",
|
|
1598
|
+
"config.defaultValueFormula",
|
|
1599
|
+
"data_relation config.filters.mode=advanced 的 config.filters.formula"
|
|
1600
|
+
]
|
|
1593
1601
|
}
|
|
1594
1602
|
}
|
|
@@ -258,13 +258,9 @@
|
|
|
258
258
|
"type": "array"
|
|
259
259
|
},
|
|
260
260
|
"width": {
|
|
261
|
-
"description": "
|
|
262
|
-
"
|
|
263
|
-
|
|
264
|
-
50,
|
|
265
|
-
75,
|
|
266
|
-
100
|
|
267
|
-
],
|
|
261
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
262
|
+
"maximum": 100,
|
|
263
|
+
"minimum": 1,
|
|
268
264
|
"type": "integer"
|
|
269
265
|
}
|
|
270
266
|
},
|
|
@@ -334,11 +330,10 @@
|
|
|
334
330
|
"description": "段落判别值。"
|
|
335
331
|
},
|
|
336
332
|
"rows": {
|
|
337
|
-
"description": "
|
|
333
|
+
"description": "段落内的有序字段行;可为空数组(空 = 存量空段落形态,后端容忍,round-trip 空↔空稳定)。",
|
|
338
334
|
"items": {
|
|
339
335
|
"$ref": "#/$defs/FieldRow"
|
|
340
336
|
},
|
|
341
|
-
"minItems": 1,
|
|
342
337
|
"type": "array"
|
|
343
338
|
},
|
|
344
339
|
"sectionId": {
|
|
@@ -383,7 +378,6 @@
|
|
|
383
378
|
],
|
|
384
379
|
"type": "object"
|
|
385
380
|
},
|
|
386
|
-
"minItems": 1,
|
|
387
381
|
"type": "array"
|
|
388
382
|
},
|
|
389
383
|
"sectionId": {
|
|
@@ -695,6 +689,7 @@
|
|
|
695
689
|
"x-qingflow-supported-field-types": [
|
|
696
690
|
"text",
|
|
697
691
|
"long_text",
|
|
692
|
+
"rich_text",
|
|
698
693
|
"number",
|
|
699
694
|
"amount",
|
|
700
695
|
"link",
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifestDescription": "面向 app_views_apply 的版本化公开视图契约。summary 提供最小声明,complete 覆盖当前可写能力,details 提供按配置域读取的自包含专项 Schema。后端已知但尚不可写的能力以说明性元数据列出,不会被误报为公开能力。",
|
|
3
|
+
"latestVersion": "v1alpha1",
|
|
4
|
+
"versions": {
|
|
5
|
+
"v1alpha1": {
|
|
6
|
+
"versionDescription": "AI 和 CLI/MCP 使用的 canonical views DSL。字段名、更新语义和约束与 app_views_apply 对齐;schema 返回会内联专项 Schema 的依赖定义。",
|
|
7
|
+
"apiVersion": "builder.qingflow.com/v1alpha1",
|
|
8
|
+
"applyDto": "v1alpha1",
|
|
9
|
+
"contractSource": "app_views_apply",
|
|
10
|
+
"contractVersion": "v1alpha1",
|
|
11
|
+
"enabledByDefault": true,
|
|
12
|
+
"schemaKinds": [
|
|
13
|
+
"summary",
|
|
14
|
+
"complete",
|
|
15
|
+
"display",
|
|
16
|
+
"data-permission",
|
|
17
|
+
"operation-permission",
|
|
18
|
+
"query-condition",
|
|
19
|
+
"button-config"
|
|
20
|
+
],
|
|
21
|
+
"schemaFiles": {
|
|
22
|
+
"summary": "v1alpha1/summary.json",
|
|
23
|
+
"complete": "v1alpha1/complete.json",
|
|
24
|
+
"display": "v1alpha1/details/display.json",
|
|
25
|
+
"data-permission": "v1alpha1/details/data-permission.json",
|
|
26
|
+
"operation-permission": "v1alpha1/details/operation-permission.json",
|
|
27
|
+
"query-condition": "v1alpha1/details/query-condition.json",
|
|
28
|
+
"button-config": "v1alpha1/details/button-config.json"
|
|
29
|
+
},
|
|
30
|
+
"viewTypes": [
|
|
31
|
+
"table",
|
|
32
|
+
"card",
|
|
33
|
+
"board",
|
|
34
|
+
"gantt",
|
|
35
|
+
"hierarchy"
|
|
36
|
+
],
|
|
37
|
+
"backendKnownUnsupportedViewTypes": [
|
|
38
|
+
"calendar"
|
|
39
|
+
],
|
|
40
|
+
"status": "active"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|