@qingflow-tech/qingflow-cli 1.1.44-beta.1 → 1.1.44-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.
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Qingflow CLI 是轻流面向开发者和 AI Agent 的命令行工具。它把轻
|
|
|
7
7
|
## 安装
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npm install @qingflow-tech/qingflow-cli@1.1.44-beta.
|
|
10
|
+
npm install @qingflow-tech/qingflow-cli@1.1.44-beta.2
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
推荐从官网复制这一条一键安装 Qingflow CLI:
|
|
@@ -21,7 +21,7 @@ npx qingflow-cli@latest install
|
|
|
21
21
|
## 运行
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
npx -y -p @qingflow-tech/qingflow-cli@1.1.44-beta.
|
|
24
|
+
npx -y -p @qingflow-tech/qingflow-cli@1.1.44-beta.2 qingflow
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
全局安装后可以直接运行:
|
|
@@ -62,7 +62,7 @@ qingflow-skills install --agent codex --scope user
|
|
|
62
62
|
如果你通过一次性 `npx -p` 执行 skills 安装,建议加 `--copy`,避免 symlink 指向 npm 临时执行缓存:
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
npx -y -p @qingflow-tech/qingflow-cli@1.1.44-beta.
|
|
65
|
+
npx -y -p @qingflow-tech/qingflow-cli@1.1.44-beta.2 qingflow-skills install --agent codex --scope user --copy
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
`qingflow-skills install` 默认使用 symlink,且遇到同名 skill 不会覆盖;只有显式传入 `--force` 才会替换。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qingflow-tech/qingflow-cli",
|
|
3
|
-
"version": "1.1.44-beta.
|
|
3
|
+
"version": "1.1.44-beta.2",
|
|
4
4
|
"description": "Human-friendly Qingflow command line interface for auth, record operations, import, tasks, and stable builder flows.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
package/pyproject.toml
CHANGED
|
@@ -219,6 +219,8 @@ current CLI payload.
|
|
|
219
219
|
| `data_relation` | 数据关联/引用填充 |
|
|
220
220
|
| `subtable` | 子表(**`subfields[]`**) |
|
|
221
221
|
|
|
222
|
+
历史表单中的后端 `queType=1` 是“描述文字”布局控件,不属于上述新建字段类型。`app-form get` 为了保持完整声明可校验,会将它兼容输出为 `long_text`;`app-form apply` 会根据已有字段模板恢复原始 `queType=1` 和 `queDefaultValue`,所以修改其他字段时不会丢失描述文字。新建可填写多行文本仍使用 `long_text`,不要用它创建描述文字控件。
|
|
223
|
+
|
|
222
224
|
**`config.relationMode`**:仅 **`relation`** 使用,取值为 **`single`** 或 **`multiple`**。一个应用可以有多个 `relation` 字段;不要因为 relation 数量超过 1 就改成文本字段。
|
|
223
225
|
|
|
224
226
|
### 1.1 历史字段类型别名
|
|
@@ -31,6 +31,10 @@ from .service import (
|
|
|
31
31
|
|
|
32
32
|
API_VERSION = "builder.qingflow.com/v1alpha1"
|
|
33
33
|
QUE_TYPE_TO_CANONICAL = {
|
|
34
|
+
# Historical description-text controls are read as long_text for the
|
|
35
|
+
# public declaration shape; the compiler restores queType=1 from the
|
|
36
|
+
# existing backend template when writing them back.
|
|
37
|
+
1: "long_text",
|
|
34
38
|
2: "text",
|
|
35
39
|
3: "long_text",
|
|
36
40
|
5: "member",
|
|
@@ -2377,6 +2381,11 @@ class AppFormCompiler:
|
|
|
2377
2381
|
"queHint": field.get("questionDescription") or "",
|
|
2378
2382
|
}
|
|
2379
2383
|
)
|
|
2384
|
+
if _positive_int((template or {}).get("queType")) == 1 and field_type == "long_text":
|
|
2385
|
+
# queType=1 is a non-data description control. Keep its backend
|
|
2386
|
+
# type and template-only settings while allowing the declaration
|
|
2387
|
+
# to carry its stable identity and default content.
|
|
2388
|
+
question["queType"] = 1
|
|
2380
2389
|
config = field.get("config") if isinstance(field.get("config"), dict) else {}
|
|
2381
2390
|
if field_type in {"text", "long_text", "link", "phone", "email"}:
|
|
2382
2391
|
for key in ("minWordCount", "maxWordCount", "noRepeat", "canScan", "scanType"):
|