@josephyan/qingflow-cli 1.1.13 → 1.1.14
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 +2 -2
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/qingflow_mcp/tools/ai_builder_tools.py +20 -0
package/README.md
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Install:
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install @josephyan/qingflow-cli@1.1.
|
|
6
|
+
npm install @josephyan/qingflow-cli@1.1.14
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Run:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npx -y -p @josephyan/qingflow-cli@1.1.
|
|
12
|
+
npx -y -p @josephyan/qingflow-cli@1.1.14 qingflow
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Environment:
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED
|
@@ -4510,6 +4510,8 @@ def _builder_apply_summary(payload: JSONObject, resources: list[JSONObject]) ->
|
|
|
4510
4510
|
and str(item.get("operation") or "") in {"updated", "layout_updated", "workflow_updated", "verified", "published"}
|
|
4511
4511
|
)
|
|
4512
4512
|
published_value = payload.get("published")
|
|
4513
|
+
if published_value is None:
|
|
4514
|
+
published_value = _builder_batch_published_value(payload)
|
|
4513
4515
|
if published_value is None:
|
|
4514
4516
|
publish_requested = payload.get("publish_requested")
|
|
4515
4517
|
published_value = bool(publish_requested) and status in {"success", "partial_success"}
|
|
@@ -4539,6 +4541,24 @@ def _builder_apply_summary(payload: JSONObject, resources: list[JSONObject]) ->
|
|
|
4539
4541
|
return summary
|
|
4540
4542
|
|
|
4541
4543
|
|
|
4544
|
+
def _builder_batch_published_value(payload: JSONObject) -> bool | None:
|
|
4545
|
+
apps = payload.get("apps")
|
|
4546
|
+
if not isinstance(apps, list) or not apps:
|
|
4547
|
+
return None
|
|
4548
|
+
values: list[bool] = []
|
|
4549
|
+
for item in apps:
|
|
4550
|
+
if not isinstance(item, dict):
|
|
4551
|
+
continue
|
|
4552
|
+
result = item.get("result") if isinstance(item.get("result"), dict) else {}
|
|
4553
|
+
if "published" in result:
|
|
4554
|
+
values.append(bool(result.get("published")))
|
|
4555
|
+
elif "published" in item:
|
|
4556
|
+
values.append(bool(item.get("published")))
|
|
4557
|
+
if not values:
|
|
4558
|
+
return None
|
|
4559
|
+
return all(values)
|
|
4560
|
+
|
|
4561
|
+
|
|
4542
4562
|
def _builder_verification_truthy(value: object) -> bool:
|
|
4543
4563
|
if value is None:
|
|
4544
4564
|
return True
|