@qingflow-tech/qingflow-cli 1.1.61-beta.4 → 1.1.61-beta.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 +3 -3
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/skills/qingflow-cli/reference/builder/30-schema-fields.md +13 -0
- package/skills/qingflow-cli/reference/builder/70-portal.md +37 -16
- package/skills/qingflow-cli/reference/examples/portal/portal_apply_v1alpha1.example.json +100 -0
- package/skills/qingflow-cli/reference/examples/portal/portal_sections_all_types.example.json +6 -7
- package/src/qingflow_mcp/app_form_validator.py +20 -3
- package/src/qingflow_mcp/builder_facade/app_form.py +137 -17
- package/src/qingflow_mcp/builder_facade/models.py +164 -13
- package/src/qingflow_mcp/builder_facade/portals_schema.py +397 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/manifest.json +14 -1
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +49 -9
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +27 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_content_classification.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_content_extraction.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_content_generation.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_document_parsing.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_image_generation.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_image_recognition.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_machine_translation.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_text_summary.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +2 -2
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +27 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date_duration.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/embed_field.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/image_select.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/location.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +2 -2
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ocr.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +2 -2
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +27 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +29 -2
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +20 -7
- package/src/qingflow_mcp/builder_facade/schemas/portals/manifest.json +59 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/complete.json +1397 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/carousel.json +193 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/chart.json +643 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/favourite.json +203 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/filter.json +268 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/grid.json +265 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/link.json +131 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/task.json +199 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/text.json +123 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/view.json +196 -0
- package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/summary.json +800 -0
- package/src/qingflow_mcp/builder_facade/service.py +1104 -71
- package/src/qingflow_mcp/cli/commands/builder.py +114 -5
- package/src/qingflow_mcp/public_surface.py +2 -0
- package/src/qingflow_mcp/server_app_builder.py +32 -1
- package/src/qingflow_mcp/solution/compiler/icon_utils.py +73 -0
- package/src/qingflow_mcp/solution/executor.py +5 -2
- package/src/qingflow_mcp/tools/ai_builder_tools.py +110 -12
- package/src/qingflow_mcp/tools/portal_tools.py +4 -54
- package/src/qingflow_mcp/tools/portal_writer.py +59 -0
- package/src/qingflow_mcp/tools/solution_tools.py +2 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$defs": {
|
|
3
|
+
"EmptyConfig": {
|
|
4
|
+
"additionalProperties": false,
|
|
5
|
+
"description": "该字段类型没有特殊配置。",
|
|
6
|
+
"type": "object"
|
|
7
|
+
},
|
|
8
|
+
"FieldCommon": {
|
|
9
|
+
"allOf": [
|
|
10
|
+
{
|
|
11
|
+
"if": {
|
|
12
|
+
"properties": {
|
|
13
|
+
"defaultType": {
|
|
14
|
+
"const": 2
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"required": [
|
|
18
|
+
"defaultType"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"then": {
|
|
22
|
+
"properties": {
|
|
23
|
+
"defaultValue": {
|
|
24
|
+
"type": "null"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"if": {
|
|
31
|
+
"properties": {
|
|
32
|
+
"defaultType": {
|
|
33
|
+
"const": 3
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": [
|
|
37
|
+
"defaultType"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"then": {
|
|
41
|
+
"properties": {
|
|
42
|
+
"defaultValue": {
|
|
43
|
+
"minLength": 1,
|
|
44
|
+
"type": [
|
|
45
|
+
"string",
|
|
46
|
+
"null"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"anyOf": [
|
|
54
|
+
{
|
|
55
|
+
"required": [
|
|
56
|
+
"queId"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"required": [
|
|
61
|
+
"name"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"description": "顶层业务字段的公共属性;字段类型由 TopField 的判别分支定义。",
|
|
66
|
+
"properties": {
|
|
67
|
+
"beingRequired": {
|
|
68
|
+
"description": "该字段是否必填;缺失时保留已有字段当前值。",
|
|
69
|
+
"type": "boolean"
|
|
70
|
+
},
|
|
71
|
+
"defaultType": {
|
|
72
|
+
"default": 1,
|
|
73
|
+
"description": "默认值类型,与 defaultValue 联动;1 表示静态值,2 表示关联/绑定值且 defaultValue 只能省略或为 null,3 表示公式值且提供 defaultValue 时必须为非空公式文本。省略 defaultType 但提供 defaultValue 时按 1 处理。",
|
|
74
|
+
"enum": [
|
|
75
|
+
1,
|
|
76
|
+
2,
|
|
77
|
+
3
|
|
78
|
+
],
|
|
79
|
+
"type": "integer"
|
|
80
|
+
},
|
|
81
|
+
"defaultValue": {
|
|
82
|
+
"$ref": "#/$defs/ScalarDefaultValue",
|
|
83
|
+
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
84
|
+
},
|
|
85
|
+
"name": {
|
|
86
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
87
|
+
"minLength": 1,
|
|
88
|
+
"type": "string"
|
|
89
|
+
},
|
|
90
|
+
"queId": {
|
|
91
|
+
"description": "已有字段的后端 ID;更新时用于精确定位并复用,新增字段通常省略。",
|
|
92
|
+
"minimum": 1,
|
|
93
|
+
"type": "integer"
|
|
94
|
+
},
|
|
95
|
+
"questionDescription": {
|
|
96
|
+
"description": "字段说明;null 或空字符串表示清空。",
|
|
97
|
+
"type": [
|
|
98
|
+
"string",
|
|
99
|
+
"null"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"questionType": {
|
|
103
|
+
"description": "字段类型;具体可用值由当前字段详情 Schema 的判别分支约束。",
|
|
104
|
+
"type": "string"
|
|
105
|
+
},
|
|
106
|
+
"width": {
|
|
107
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
108
|
+
"maximum": 100,
|
|
109
|
+
"minimum": 1,
|
|
110
|
+
"type": "integer"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"type": "object"
|
|
114
|
+
},
|
|
115
|
+
"ScalarDefaultValue": {
|
|
116
|
+
"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。",
|
|
117
|
+
"type": [
|
|
118
|
+
"null",
|
|
119
|
+
"string"
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"$id": "https://builder.qingflow.com/schemas/app-form-apply/v1alpha1/fields/location.json",
|
|
124
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
125
|
+
"allOf": [
|
|
126
|
+
{
|
|
127
|
+
"$ref": "#/$defs/FieldCommon"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"properties": {
|
|
131
|
+
"config": {
|
|
132
|
+
"$ref": "#/$defs/EmptyConfig"
|
|
133
|
+
},
|
|
134
|
+
"questionType": {
|
|
135
|
+
"const": "location"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"required": [
|
|
139
|
+
"questionType"
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"title": "Qingflow AppForm v1alpha1 location field",
|
|
144
|
+
"type": "object",
|
|
145
|
+
"unevaluatedProperties": false
|
|
146
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$defs": {
|
|
3
|
+
"EmptyConfig": {
|
|
4
|
+
"additionalProperties": false,
|
|
5
|
+
"description": "该字段类型没有特殊配置。",
|
|
6
|
+
"type": "object"
|
|
7
|
+
},
|
|
8
|
+
"FieldCommon": {
|
|
9
|
+
"allOf": [
|
|
10
|
+
{
|
|
11
|
+
"if": {
|
|
12
|
+
"properties": {
|
|
13
|
+
"defaultType": {
|
|
14
|
+
"const": 2
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"required": [
|
|
18
|
+
"defaultType"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"then": {
|
|
22
|
+
"properties": {
|
|
23
|
+
"defaultValue": {
|
|
24
|
+
"type": "null"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"if": {
|
|
31
|
+
"properties": {
|
|
32
|
+
"defaultType": {
|
|
33
|
+
"const": 3
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": [
|
|
37
|
+
"defaultType"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"then": {
|
|
41
|
+
"properties": {
|
|
42
|
+
"defaultValue": {
|
|
43
|
+
"minLength": 1,
|
|
44
|
+
"type": [
|
|
45
|
+
"string",
|
|
46
|
+
"null"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"anyOf": [
|
|
54
|
+
{
|
|
55
|
+
"required": [
|
|
56
|
+
"queId"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"required": [
|
|
61
|
+
"name"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"description": "顶层业务字段的公共属性;字段类型由 TopField 的判别分支定义。",
|
|
66
|
+
"properties": {
|
|
67
|
+
"beingRequired": {
|
|
68
|
+
"description": "该字段是否必填;缺失时保留已有字段当前值。",
|
|
69
|
+
"type": "boolean"
|
|
70
|
+
},
|
|
71
|
+
"defaultType": {
|
|
72
|
+
"default": 1,
|
|
73
|
+
"description": "默认值类型,与 defaultValue 联动;1 表示静态值,2 表示关联/绑定值且 defaultValue 只能省略或为 null,3 表示公式值且提供 defaultValue 时必须为非空公式文本。省略 defaultType 但提供 defaultValue 时按 1 处理。",
|
|
74
|
+
"enum": [
|
|
75
|
+
1,
|
|
76
|
+
2,
|
|
77
|
+
3
|
|
78
|
+
],
|
|
79
|
+
"type": "integer"
|
|
80
|
+
},
|
|
81
|
+
"defaultValue": {
|
|
82
|
+
"$ref": "#/$defs/ScalarDefaultValue",
|
|
83
|
+
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
84
|
+
},
|
|
85
|
+
"name": {
|
|
86
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
87
|
+
"minLength": 1,
|
|
88
|
+
"type": "string"
|
|
89
|
+
},
|
|
90
|
+
"queId": {
|
|
91
|
+
"description": "已有字段的后端 ID;更新时用于精确定位并复用,新增字段通常省略。",
|
|
92
|
+
"minimum": 1,
|
|
93
|
+
"type": "integer"
|
|
94
|
+
},
|
|
95
|
+
"questionDescription": {
|
|
96
|
+
"description": "字段说明;null 或空字符串表示清空。",
|
|
97
|
+
"type": [
|
|
98
|
+
"string",
|
|
99
|
+
"null"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"questionType": {
|
|
103
|
+
"description": "字段类型;具体可用值由当前字段详情 Schema 的判别分支约束。",
|
|
104
|
+
"type": "string"
|
|
105
|
+
},
|
|
106
|
+
"width": {
|
|
107
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
108
|
+
"maximum": 100,
|
|
109
|
+
"minimum": 1,
|
|
110
|
+
"type": "integer"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"type": "object"
|
|
114
|
+
},
|
|
115
|
+
"ScalarDefaultValue": {
|
|
116
|
+
"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。",
|
|
117
|
+
"type": [
|
|
118
|
+
"null",
|
|
119
|
+
"string"
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"$id": "https://builder.qingflow.com/schemas/app-form-apply/v1alpha1/fields/ocr.json",
|
|
124
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
125
|
+
"allOf": [
|
|
126
|
+
{
|
|
127
|
+
"$ref": "#/$defs/FieldCommon"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"properties": {
|
|
131
|
+
"config": {
|
|
132
|
+
"$ref": "#/$defs/EmptyConfig"
|
|
133
|
+
},
|
|
134
|
+
"questionType": {
|
|
135
|
+
"const": "ocr"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"required": [
|
|
139
|
+
"questionType"
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"title": "Qingflow AppForm v1alpha1 ocr field",
|
|
144
|
+
"type": "object",
|
|
145
|
+
"unevaluatedProperties": false
|
|
146
|
+
}
|
|
@@ -349,8 +349,8 @@
|
|
|
349
349
|
]
|
|
350
350
|
},
|
|
351
351
|
"url": {
|
|
352
|
-
"description": "请求 URL;动态嵌入字段值时使用 {{key}},并在 inputs 中提供同名 source=json_path
|
|
353
|
-
"minLength":
|
|
352
|
+
"description": "请求 URL;动态嵌入字段值时使用 {{key}},并在 inputs 中提供同名 source=json_path 映射。自定义模式(configMode=1)后端要求非空;插件模板/连接中心/轻翼智能体模式的 URL 由模板侧提供,存量声明可为空字符串(写回按读面形态透传)。",
|
|
353
|
+
"minLength": 0,
|
|
354
354
|
"type": "string"
|
|
355
355
|
},
|
|
356
356
|
"urlEncodedValue": {
|
|
@@ -75,6 +75,12 @@
|
|
|
75
75
|
"null"
|
|
76
76
|
]
|
|
77
77
|
},
|
|
78
|
+
"auditValueDescription": {
|
|
79
|
+
"type": [
|
|
80
|
+
"string",
|
|
81
|
+
"null"
|
|
82
|
+
]
|
|
83
|
+
},
|
|
78
84
|
"beingCanDecrypted": {
|
|
79
85
|
"type": [
|
|
80
86
|
"boolean",
|
|
@@ -105,6 +111,12 @@
|
|
|
105
111
|
"null"
|
|
106
112
|
]
|
|
107
113
|
},
|
|
114
|
+
"dataId": {
|
|
115
|
+
"type": [
|
|
116
|
+
"integer",
|
|
117
|
+
"null"
|
|
118
|
+
]
|
|
119
|
+
},
|
|
108
120
|
"dateType": {
|
|
109
121
|
"type": [
|
|
110
122
|
"integer",
|
|
@@ -123,6 +135,15 @@
|
|
|
123
135
|
"null"
|
|
124
136
|
]
|
|
125
137
|
},
|
|
138
|
+
"previousTableRowOrdinalList": {
|
|
139
|
+
"items": {
|
|
140
|
+
"type": "integer"
|
|
141
|
+
},
|
|
142
|
+
"type": [
|
|
143
|
+
"array",
|
|
144
|
+
"null"
|
|
145
|
+
]
|
|
146
|
+
},
|
|
126
147
|
"queId": {
|
|
127
148
|
"type": [
|
|
128
149
|
"integer",
|
|
@@ -141,6 +162,12 @@
|
|
|
141
162
|
"null"
|
|
142
163
|
]
|
|
143
164
|
},
|
|
165
|
+
"questionOrdinal": {
|
|
166
|
+
"type": [
|
|
167
|
+
"integer",
|
|
168
|
+
"null"
|
|
169
|
+
]
|
|
170
|
+
},
|
|
144
171
|
"referValues": {
|
|
145
172
|
"items": {
|
|
146
173
|
"$ref": "#/$defs/ReferenceDefaultValue"
|
|
@@ -621,6 +621,12 @@
|
|
|
621
621
|
"null"
|
|
622
622
|
]
|
|
623
623
|
},
|
|
624
|
+
"auditValueDescription": {
|
|
625
|
+
"type": [
|
|
626
|
+
"string",
|
|
627
|
+
"null"
|
|
628
|
+
]
|
|
629
|
+
},
|
|
624
630
|
"beingCanDecrypted": {
|
|
625
631
|
"type": [
|
|
626
632
|
"boolean",
|
|
@@ -651,6 +657,12 @@
|
|
|
651
657
|
"null"
|
|
652
658
|
]
|
|
653
659
|
},
|
|
660
|
+
"dataId": {
|
|
661
|
+
"type": [
|
|
662
|
+
"integer",
|
|
663
|
+
"null"
|
|
664
|
+
]
|
|
665
|
+
},
|
|
654
666
|
"dateType": {
|
|
655
667
|
"type": [
|
|
656
668
|
"integer",
|
|
@@ -669,6 +681,15 @@
|
|
|
669
681
|
"null"
|
|
670
682
|
]
|
|
671
683
|
},
|
|
684
|
+
"previousTableRowOrdinalList": {
|
|
685
|
+
"items": {
|
|
686
|
+
"type": "integer"
|
|
687
|
+
},
|
|
688
|
+
"type": [
|
|
689
|
+
"array",
|
|
690
|
+
"null"
|
|
691
|
+
]
|
|
692
|
+
},
|
|
672
693
|
"queId": {
|
|
673
694
|
"type": [
|
|
674
695
|
"integer",
|
|
@@ -687,6 +708,12 @@
|
|
|
687
708
|
"null"
|
|
688
709
|
]
|
|
689
710
|
},
|
|
711
|
+
"questionOrdinal": {
|
|
712
|
+
"type": [
|
|
713
|
+
"integer",
|
|
714
|
+
"null"
|
|
715
|
+
]
|
|
716
|
+
},
|
|
690
717
|
"referValues": {
|
|
691
718
|
"items": {
|
|
692
719
|
"$ref": "#/$defs/ReferenceDefaultValue"
|
|
@@ -1289,8 +1316,8 @@
|
|
|
1289
1316
|
]
|
|
1290
1317
|
},
|
|
1291
1318
|
"numberFormat": {
|
|
1292
|
-
"description": "数字展示格式 ID。",
|
|
1293
|
-
"minimum":
|
|
1319
|
+
"description": "数字展示格式 ID(1 默认/2 千分位/3 百分比;0 为历史存量值——后端写链无值域校验,原样落库回读)。",
|
|
1320
|
+
"minimum": 0,
|
|
1294
1321
|
"type": [
|
|
1295
1322
|
"integer",
|
|
1296
1323
|
"null"
|
|
@@ -108,11 +108,11 @@
|
|
|
108
108
|
"description": "段落内部字段行。",
|
|
109
109
|
"properties": {
|
|
110
110
|
"fields": {
|
|
111
|
-
"description": "本行的 1 到
|
|
111
|
+
"description": "本行的 1 到 12 个顶层字段(后端无每行字段数上限,按 queWidth 渲染;上限仅约束声明输入)。",
|
|
112
112
|
"items": {
|
|
113
113
|
"$ref": "#/$defs/TopField"
|
|
114
114
|
},
|
|
115
|
-
"maxItems":
|
|
115
|
+
"maxItems": 12,
|
|
116
116
|
"minItems": 1,
|
|
117
117
|
"type": "array"
|
|
118
118
|
}
|
|
@@ -274,11 +274,11 @@
|
|
|
274
274
|
"description": "根级普通字段行;字段顺序即展示顺序。",
|
|
275
275
|
"properties": {
|
|
276
276
|
"fields": {
|
|
277
|
-
"description": "本行的 1 到
|
|
277
|
+
"description": "本行的 1 到 12 个顶层字段(后端无每行字段数上限,按 queWidth 渲染;上限仅约束声明输入)。",
|
|
278
278
|
"items": {
|
|
279
279
|
"$ref": "#/$defs/TopField"
|
|
280
280
|
},
|
|
281
|
-
"maxItems":
|
|
281
|
+
"maxItems": 12,
|
|
282
282
|
"minItems": 1,
|
|
283
283
|
"type": "array"
|
|
284
284
|
},
|
|
@@ -300,7 +300,7 @@
|
|
|
300
300
|
"items": {
|
|
301
301
|
"$ref": "#/$defs/FieldSummary"
|
|
302
302
|
},
|
|
303
|
-
"maxItems":
|
|
303
|
+
"maxItems": 12,
|
|
304
304
|
"minItems": 1,
|
|
305
305
|
"type": "array"
|
|
306
306
|
},
|
|
@@ -368,7 +368,7 @@
|
|
|
368
368
|
"items": {
|
|
369
369
|
"$ref": "#/$defs/FieldSummary"
|
|
370
370
|
},
|
|
371
|
-
"maxItems":
|
|
371
|
+
"maxItems": 12,
|
|
372
372
|
"minItems": 1,
|
|
373
373
|
"type": "array"
|
|
374
374
|
}
|
|
@@ -708,6 +708,19 @@
|
|
|
708
708
|
"code_block",
|
|
709
709
|
"data_relation",
|
|
710
710
|
"relation",
|
|
711
|
-
"subtable"
|
|
711
|
+
"subtable",
|
|
712
|
+
"date_duration",
|
|
713
|
+
"image_select",
|
|
714
|
+
"location",
|
|
715
|
+
"ocr",
|
|
716
|
+
"embed_field",
|
|
717
|
+
"ai_content_generation",
|
|
718
|
+
"ai_content_extraction",
|
|
719
|
+
"ai_content_classification",
|
|
720
|
+
"ai_machine_translation",
|
|
721
|
+
"ai_image_recognition",
|
|
722
|
+
"ai_image_generation",
|
|
723
|
+
"ai_document_parsing",
|
|
724
|
+
"ai_text_summary"
|
|
712
725
|
]
|
|
713
726
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifestDescription": "面向 builder portal apply 的版本化公开门户契约。summary 提供最小声明(名称 + 布局 + 组件清单),complete 覆盖当前可写能力(全局配置 + 九类组件明细 + 可见性授权),components 提供九类组件的自包含专项 Schema。后端已知但尚不可写的能力以说明性元数据列出,不会被误报为公开能力。",
|
|
3
|
+
"latestVersion": "v1alpha1",
|
|
4
|
+
"versions": {
|
|
5
|
+
"v1alpha1": {
|
|
6
|
+
"versionDescription": "AI 和 CLI/MCP 使用的 canonical portals DSL。字段名、更新语义和约束与 builder portal apply 对齐;schema 返回会内联组件专项 Schema 的依赖定义。",
|
|
7
|
+
"apiVersion": "builder.qingflow.com/v1alpha1",
|
|
8
|
+
"applyDto": "v1alpha1",
|
|
9
|
+
"contractSource": "portal_apply",
|
|
10
|
+
"contractVersion": "v1alpha1",
|
|
11
|
+
"enabledByDefault": true,
|
|
12
|
+
"schemaKinds": [
|
|
13
|
+
"summary",
|
|
14
|
+
"complete",
|
|
15
|
+
"chart",
|
|
16
|
+
"view",
|
|
17
|
+
"grid",
|
|
18
|
+
"filter",
|
|
19
|
+
"text",
|
|
20
|
+
"link",
|
|
21
|
+
"carousel",
|
|
22
|
+
"task",
|
|
23
|
+
"favourite"
|
|
24
|
+
],
|
|
25
|
+
"schemaFiles": {
|
|
26
|
+
"summary": "v1alpha1/summary.json",
|
|
27
|
+
"complete": "v1alpha1/complete.json",
|
|
28
|
+
"chart": "v1alpha1/components/chart.json",
|
|
29
|
+
"view": "v1alpha1/components/view.json",
|
|
30
|
+
"grid": "v1alpha1/components/grid.json",
|
|
31
|
+
"filter": "v1alpha1/components/filter.json",
|
|
32
|
+
"text": "v1alpha1/components/text.json",
|
|
33
|
+
"link": "v1alpha1/components/link.json",
|
|
34
|
+
"carousel": "v1alpha1/components/carousel.json",
|
|
35
|
+
"task": "v1alpha1/components/task.json",
|
|
36
|
+
"favourite": "v1alpha1/components/favourite.json"
|
|
37
|
+
},
|
|
38
|
+
"componentTypes": [
|
|
39
|
+
"chart",
|
|
40
|
+
"view",
|
|
41
|
+
"grid",
|
|
42
|
+
"filter",
|
|
43
|
+
"text",
|
|
44
|
+
"link",
|
|
45
|
+
"carousel",
|
|
46
|
+
"task",
|
|
47
|
+
"favourite"
|
|
48
|
+
],
|
|
49
|
+
"summaryComponentTypes": [
|
|
50
|
+
"chart",
|
|
51
|
+
"view",
|
|
52
|
+
"grid",
|
|
53
|
+
"text",
|
|
54
|
+
"link"
|
|
55
|
+
],
|
|
56
|
+
"status": "active"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|