@dazitech/cli 3.0.6 → 3.0.8
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 +1 -1
- package/dist/clis/dazi-app.js +1 -1
- package/dist/clis/dazi-flow.js +43 -24
- package/dist/clis/dazi-onto.js +73 -22
- package/dist/clis/dazi.js +266 -171
- package/dist/docs/flow/ai-workflow-playbook.md +4 -2
- package/dist/docs/flow/flow-project-guide.md +9 -5
- package/dist/docs/flow/flows-guide.md +2 -2
- package/dist/docs/flow/node-code-guide.md +408 -401
- package/dist/docs/flow/run-guide.md +13 -6
- package/dist/docs/flow/variables-guide.md +407 -406
- package/dist/docs/guides/quickstart.md +18 -4
- package/dist/docs/guides/troubleshooting.md +1 -1
- package/dist/docs/guides/workspace-v3.md +43 -23
- package/dist/docs/index.json +9 -3
- package/dist/docs/onto/action-guide.md +3 -3
- package/dist/docs/onto/dazi_script_sdk_reference.md +178 -174
- package/dist/docs/onto/dazi_script_seed_data_guide.md +158 -155
- package/dist/docs/onto/function-guide.md +37 -10
- package/dist/docs/onto/space-management.md +3 -1
- package/dist/docs/onto//346/234/254/344/275/223/350/204/232/346/234/254/347/274/226/345/206/231/346/214/207/345/215/227.md +138 -34
- package/dist/docs/onto//346/234/254/344/275/223/350/247/204/345/210/222/346/214/207/345/215/227.md +73 -31
- package/dist/docs/onto//350/247/204/345/210/222/347/244/272/344/276/213_/344/272/247/345/223/201/351/224/200/345/224/256/346/234/254/344/275/223/350/247/204/345/210/222/346/226/271/346/241/210.md +497 -0
- package/dist/docs/onto//350/247/204/345/210/222/347/244/272/344/276/213_/345/210/251/346/266/246/345/210/206/346/236/220/346/234/254/344/275/223/346/226/271/346/241/210.md +597 -541
- package/dist/examples/index.json +202 -22
- package/dist/examples/onto/README.md +43 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/profit_fn_account_breakdown.py +99 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/profit_fn_budget_vs_actual.py +116 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/profit_fn_cost_center_profit.py +85 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/profit_fn_get_summary.py +76 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/profit_fn_mom_analysis.py +86 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/profit_fn_top_accounts.py +103 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/profit_fn_yoy_analysis.py +86 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/save_test_arguments.ps1 +27 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/test_arguments/profit.fn.account_breakdown.json +10 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/test_arguments/profit.fn.budget_vs_actual.json +10 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/test_arguments/profit.fn.cost_center_profit.json +9 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/test_arguments/profit.fn.get_summary.json +9 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/test_arguments/profit.fn.mom_analysis.json +9 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/test_arguments/profit.fn.top_accounts.json +11 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/function/test_arguments/profit.fn.yoy_analysis.json +9 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/setup/profit_ontology_init.py +521 -0
- package/dist/examples/onto//345/210/251/346/266/246/347/244/272/344/276/213/setup/profit_seed_data.py +213 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/README.md +25 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/sales_fn_channel_mix.py +86 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/sales_fn_customer_segmentation.py +123 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/sales_fn_get_summary.py +81 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/sales_fn_mom_analysis.py +90 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/sales_fn_region_breakdown.py +85 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/sales_fn_top_products.py +101 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/sales_fn_yoy_analysis.py +90 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/save_test_arguments.ps1 +25 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/test_arguments/sales.fn.channel_mix.json +8 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/test_arguments/sales.fn.customer_segmentation.json +10 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/test_arguments/sales.fn.get_summary.json +8 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/test_arguments/sales.fn.mom_analysis.json +8 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/test_arguments/sales.fn.region_breakdown.json +8 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/test_arguments/sales.fn.top_products.json +10 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/functions/test_arguments/sales.fn.yoy_analysis.json +8 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/setup/README.md +5 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/setup/sales_ontology_init.py +403 -0
- package/dist/examples/onto//351/224/200/345/224/256/347/244/272/344/276/213/setup/sales_seed_data.py +124 -0
- package/dist/prompts/flow/ai-workflow-playbook.md +4 -2
- package/dist/prompts/flow/flow-design.md +12 -9
- package/dist/prompts/flow/run-fix-loop.md +37 -22
- package/dist/prompts/index.json +2 -2
- package/dist/prompts/onto/action-design.md +4 -1
- package/dist/prompts/onto/function-design.md +9 -2
- package/dist/prompts/onto/rule-seed.md +5 -1
- package/dist/prompts/onto/script-publish-run.md +72 -24
- package/package.json +1 -1
- package/dist/examples/onto/function/profit_fn_customer_segmentation.py +0 -117
- package/dist/examples/onto/function/profit_fn_mom_analysis.py +0 -89
- package/dist/examples/onto/function/profit_fn_top_products.py +0 -89
- package/dist/examples/onto/function/profit_fn_yoy_analysis.py +0 -89
- package/dist/examples/onto/setup/profit_ontology_init.py +0 -388
package/README.md
CHANGED
package/dist/clis/dazi-app.js
CHANGED
|
@@ -13077,7 +13077,7 @@ var {
|
|
|
13077
13077
|
} = import_index.default;
|
|
13078
13078
|
|
|
13079
13079
|
// cli/shared/src/version.ts
|
|
13080
|
-
var DAZI_VERSION = true ? "3.0.
|
|
13080
|
+
var DAZI_VERSION = true ? "3.0.8" : readDevVersion();
|
|
13081
13081
|
|
|
13082
13082
|
// cli/dazi-app/src/lib/httpClient.ts
|
|
13083
13083
|
init_config();
|
package/dist/clis/dazi-flow.js
CHANGED
|
@@ -3578,6 +3578,7 @@ function buildFlowConsistencyMarkdown(audit, localFilesSpecLink = "../../\u8D44\
|
|
|
3578
3578
|
'| **\u65B0\u589E\u4EE3\u7801\u8282\u70B9** | `dazi flow node new --type <type> --dir . --label "<\u540D>"` \u2192 \u6539\u914D\u7F6E \u2192 `push --canvas` \u2192 \u5199 code \u2192 `node push` |',
|
|
3579
3579
|
"",
|
|
3580
3580
|
"> \u7981\u6B62\u53EA\u6539 `flow.json` \u800C\u4E0D\u66F4\u65B0 `flow.meta.json`\uFF08\u987B `node new` / `pull` / `repair-meta`\uFF09\u3002",
|
|
3581
|
+
"> \u6539 `code.*` \u540E\u9A8C\u8BC1\u987A\u5E8F\uFF1A**`node push` \u2192 `node-exec` \u2192 `variable pull`**\uFF08\u6709\u8F93\u51FA\u53D8\u91CF\u65F6\uFF09\uFF1B`node-exec` \u6267\u884C\u5E73\u53F0\u5DF2 push \u7684\u4EE3\u7801\u3002",
|
|
3581
3582
|
""
|
|
3582
3583
|
);
|
|
3583
3584
|
return lines;
|
|
@@ -3707,11 +3708,15 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3707
3708
|
"",
|
|
3708
3709
|
"\u4E0D\u4F9D\u8D56\u7EC8\u7AEF\u5F53\u524D\u76EE\u5F55\uFF0C\u907F\u514D `cd` \u5230\u9519\u8BEF\u6D41\u7A0B\uFF1A",
|
|
3709
3710
|
"",
|
|
3711
|
+
"> \u6539 `code.*` \u540E\u6D4B\u8BD5\u987A\u5E8F\uFF1A**`node push` \u2192 `node-exec` \u2192 `variable pull`**\uFF08\u6709 `output_variable_name` \u65F6\uFF09\uFF1B`node-exec` \u4E0D\u8BFB\u672C\u5730\u672A\u63D0\u4EA4\u4EE3\u7801\u3002",
|
|
3712
|
+
"",
|
|
3710
3713
|
"```powershell",
|
|
3711
3714
|
(0, flowCliText_1.psFlowLine)(`project status --dir "${absDir}"`),
|
|
3712
3715
|
(0, flowCliText_1.psFlowLine)(`project pull --flow ${opts.flowId} --dir "${absDir}"`),
|
|
3713
3716
|
(0, flowCliText_1.psFlowLine)(`project push --dir "${absDir}" --canvas`),
|
|
3717
|
+
(0, flowCliText_1.psFlowLine)(`node push --node <node_uuid> --dir "${absDir}"`),
|
|
3714
3718
|
(0, flowCliText_1.psFlowLine)(`run node-exec --node <node_uuid> --dir "${absDir}"`),
|
|
3719
|
+
(0, flowCliText_1.psFlowLine)(`variable pull --name <output_variable_name> --dir "${absDir}"`),
|
|
3715
3720
|
(0, flowCliText_1.psFlowLine)(`run flow-exec --dir "${absDir}" --type debug`),
|
|
3716
3721
|
(0, flowCliText_1.psFlowLine)(`variable sync --dir "${absDir}"`),
|
|
3717
3722
|
"```",
|
|
@@ -3745,7 +3750,7 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3745
3750
|
"",
|
|
3746
3751
|
"| \u8DEF\u5F84 | \u8BF4\u660E |",
|
|
3747
3752
|
"|------|------|",
|
|
3748
|
-
"|
|
|
3753
|
+
"| `plans/` | \u6D41\u7A0B\u8BBE\u8BA1\u6587\u6863\uFF08\u6570\u636E\u6E90\u3001\u62D3\u6251\u8349\u6848\u7B49\uFF09 |",
|
|
3749
3754
|
"| `flows/` | \u5404\u6D41\u7A0B\u5B9E\u4F8B\u76EE\u5F55\uFF08`flow.json`\u3001`\u8282\u70B9/`\u3001`\u53D8\u91CF/`\uFF09 |",
|
|
3750
3755
|
"",
|
|
3751
3756
|
"\u5355\u4E2A\u6D41\u7A0B\u4F4D\u4E8E `flows/<\u6D41\u7A0B\u540D>/`\uFF1A",
|
|
@@ -3784,9 +3789,10 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3784
3789
|
"## 3. \u5F00\u53D1\u4E0E\u63D0\u4EA4",
|
|
3785
3790
|
"",
|
|
3786
3791
|
"1. \u7F16\u8F91 `\u8282\u70B9/<\u540D>/code.sql` \u6216 `code.py`",
|
|
3787
|
-
"2. \u53F3\u952E **\
|
|
3788
|
-
"3. \u53F3\u952E **\
|
|
3789
|
-
"4. \u67E5\u770B\u8868\u53D8\u91CF\uFF1A\u8BBE\u8BA1\u5668 **output_variable_name** \u65C1 \u{1F4CA}\uFF0C\u6216 `flow variable pull --name <\u540D
|
|
3792
|
+
"2. \u53F3\u952E **\u63D0\u4EA4\u8282\u70B9** \u6216 `flow node push`\uFF08**\u5148\u4E8E\u6D4B\u8BD5**\uFF1B`node-exec` \u8DD1\u5E73\u53F0\u5DF2 push \u7684\u4EE3\u7801\uFF09",
|
|
3793
|
+
"3. \u53F3\u952E **\u6D4B\u8BD5\u8FD0\u884C\u8282\u70B9** / \u8BBE\u8BA1\u5668 **\u642D\u5B50\u6267\u884C**\uFF0C\u6216 `flow run node-exec --node <uuid>`",
|
|
3794
|
+
"4. \u67E5\u770B\u8868\u53D8\u91CF\uFF1A\u8BBE\u8BA1\u5668 **output_variable_name** \u65C1 \u{1F4CA}\uFF0C\u6216 `flow variable pull --name <\u540D>`\uFF08\u6709\u8F93\u51FA\u53D8\u91CF\u65F6\u5EFA\u8BAE\u5FC5\u505A\uFF09",
|
|
3795
|
+
"5. \u6539\u8FDE\u7EBF/\u914D\u7F6E\uFF1A\u53F3\u952E **\u63D0\u4EA4\u6D41\u7A0B** \u6216 `flow project push --canvas`",
|
|
3790
3796
|
"",
|
|
3791
3797
|
"\u547D\u4EE4\u524D\u7F00\uFF1A" + cliPrefix(),
|
|
3792
3798
|
"",
|
|
@@ -3803,7 +3809,7 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3803
3809
|
"| \u5206\u6790\u7528\u6237\u7C98\u8D34\u7684\u9519\u8BEF | `flow/run-debug` |",
|
|
3804
3810
|
"",
|
|
3805
3811
|
"\u4FA7\u680F **\u5E2E\u52A9 \u2192 \u{1F916} \u63D0\u793A\u8BCD** \u4E2D \u2B50 \u4E3A\u6D41\u7A0B\u63A8\u8350\u3002\u53F3\u952E **`flow.json`** \u2192 **\u6253\u5F00 AI \u6539\u9519\u63D0\u793A\u8BCD**\u3002",
|
|
3806
|
-
"\u7ED9 AI \u7684\u4EFB\u52A1\u793A\u4F8B\uFF1A\u300C\u6539 XX \u8282\u70B9\uFF0C\
|
|
3812
|
+
"\u7ED9 AI \u7684\u4EFB\u52A1\u793A\u4F8B\uFF1A\u300C\u6539 XX \u8282\u70B9\uFF0C**\u5148 node push \u518D\u6D4B**\uFF0C\u5931\u8D25\u6309 last-error \u6539\u5230\u6EE1\u8DB3\u6210\u529F\u5224\u636E\uFF08\u542B variable pull\uFF09\u300D\u3002",
|
|
3807
3813
|
"",
|
|
3808
3814
|
...buildDocsTable("project-root")
|
|
3809
3815
|
].join("\n");
|
|
@@ -3902,7 +3908,9 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3902
3908
|
(0, flowCliText_1.psFlowLine)('project status --dir "<FLOW_DIR>"'),
|
|
3903
3909
|
(0, flowCliText_1.psFlowLine)(`project pull --flow ${opts.flowId} --dir "<FLOW_DIR>"`),
|
|
3904
3910
|
(0, flowCliText_1.psFlowLine)('project push --dir "<FLOW_DIR>" --canvas'),
|
|
3911
|
+
(0, flowCliText_1.psFlowLine)('node push --node <node_uuid> --dir "<FLOW_DIR>"'),
|
|
3905
3912
|
(0, flowCliText_1.psFlowLine)('run node-exec --node <node_uuid> --dir "<FLOW_DIR>"'),
|
|
3913
|
+
(0, flowCliText_1.psFlowLine)('variable pull --name <output_variable_name> --dir "<FLOW_DIR>"'),
|
|
3906
3914
|
(0, flowCliText_1.psFlowLine)('run flow-exec --dir "<FLOW_DIR>" --type debug'),
|
|
3907
3915
|
(0, flowCliText_1.psFlowLine)('variable sync --dir "<FLOW_DIR>"'),
|
|
3908
3916
|
"```",
|
|
@@ -3918,14 +3926,17 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3918
3926
|
`2. **\u5FC5\u987B**\u7528 CLI \u65B0\u5EFA\u8282\u70B9\uFF08\u7981\u6B62\u624B\u6413 uuid\uFF09\uFF1A${(0, flowCliText_1.mdFlowCmd)('node new --type <node_type> --dir . --label "<\u8282\u70B9\u540D>"')}`,
|
|
3919
3927
|
"3. \u5728 `flow.json` \u91CC\u8865 `nodes/edges`\uFF08\u9075\u5B88\u951A\u70B9\uFF1A`sourceHandle` \u4EC5 `r/b/true/false`\uFF0C`targetHandle` \u4EC5 `l/t`\uFF09",
|
|
3920
3928
|
"4. \u7F16\u8F91 `\u8282\u70B9/<\u540D>/code.sql|py`\uFF08`node new` \u4F1A\u521B\u5EFA\u76EE\u5F55\u4E0E meta \u7D22\u5F15\uFF09",
|
|
3921
|
-
`5. \
|
|
3922
|
-
`6. \
|
|
3929
|
+
`5. \u63D0\u4EA4\u4EE3\u7801\uFF1A${(0, flowCliText_1.mdFlowCmd)("node push --node <node_uuid> --dir .")}\uFF08\u5148\u4E8E\u6D4B\u8BD5\uFF09`,
|
|
3930
|
+
`6. \u5355\u8282\u70B9\u6D4B\u8BD5\uFF1A${(0, flowCliText_1.mdFlowCmd)("run node-exec --node <node_uuid> --dir .")}`,
|
|
3931
|
+
`7. \u6838\u5BF9\u53D8\u91CF\uFF08\u82E5\u914D\u7F6E\u4E86 output_variable_name\uFF09\uFF1A${(0, flowCliText_1.mdFlowCmd)("variable pull --name <\u540D> --dir .")}`,
|
|
3932
|
+
`8. \u63D0\u4EA4\u753B\u5E03\uFF08\u542B\u8FDE\u7EBF/\u914D\u7F6E\uFF09\uFF1A${(0, flowCliText_1.mdFlowCmd)("project push --dir . --canvas")}`,
|
|
3923
3933
|
"",
|
|
3924
3934
|
"### \u573A\u666F B\uFF1A\u4EC5\u6539\u8282\u70B9\u4EE3\u7801",
|
|
3925
3935
|
"",
|
|
3926
3936
|
"1. \u7F16\u8F91 `\u8282\u70B9/<\u540D>/code.sql|py`\uFF08\u4E0D\u8981\u628A\u6B63\u6587\u5199\u56DE `flow.json`\uFF09",
|
|
3927
|
-
`2. \
|
|
3928
|
-
`3. \
|
|
3937
|
+
`2. \u63D0\u4EA4\u4EE3\u7801\uFF08\u5148\u4E8E\u6D4B\u8BD5\uFF09\uFF1A${(0, flowCliText_1.mdFlowCmd)("node push --node <node_uuid> --dir .")}`,
|
|
3938
|
+
`3. \u8FD0\u884C\u8282\u70B9\uFF1A${(0, flowCliText_1.mdFlowCmd)("run node-exec --node <node_uuid> --dir .")}`,
|
|
3939
|
+
`4. \u6838\u5BF9\u8F93\u51FA\u53D8\u91CF\uFF08\u82E5\u9002\u7528\uFF09\uFF1A${(0, flowCliText_1.mdFlowCmd)("variable pull --name <output_variable_name> --dir .")}`,
|
|
3929
3940
|
"",
|
|
3930
3941
|
"### \u573A\u666F C\uFF1A\u753B\u5E03\u548C\u4EE3\u7801\u4E0D\u540C\u6B65",
|
|
3931
3942
|
"",
|
|
@@ -3941,13 +3952,18 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3941
3952
|
"- `code.*` \u662F\u5426\u4E0E\u8282\u70B9\u4E1A\u52A1\u7C7B\u578B\u4E00\u81F4\uFF08SQL \u8282\u70B9 `code.sql`\uFF0CPython \u8282\u70B9 `code.py`\uFF09",
|
|
3942
3953
|
"- \u6761\u4EF6\u8282\u70B9\u51FA\u8FB9\u662F\u5426\u4EC5\u4F7F\u7528 `true/false`\uFF0C\u672A\u8BEF\u7528 `r/b`",
|
|
3943
3954
|
"- \u82E5\u6539\u52A8\u753B\u5E03\uFF0C\u662F\u5426\u6267\u884C\u4E86 `flow project push --canvas`",
|
|
3955
|
+
"- \u6539 `code.*` \u540E\u662F\u5426 **\u5148\u4E8E `node-exec` \u6267\u884C\u4E86 `node push`**",
|
|
3956
|
+
"- `node-exec` \u662F\u5426 JSON `success: true`",
|
|
3957
|
+
"- \u6709 `output_variable_name` \u65F6\u662F\u5426 **`variable pull` \u4E14\u53D8\u91CF\u5408\u7406**",
|
|
3958
|
+
"- \u662F\u5426\u7981\u6B62\u672A push \u5C31\u6D4B\u4EE3\u7801\u3001\u7981\u6B62\u4EC5\u51ED exit code \u58F0\u79F0\u901A\u8FC7",
|
|
3944
3959
|
"",
|
|
3945
3960
|
"## \u5E38\u89C1\u9519\u8BEF\u4E0E\u4FEE\u590D",
|
|
3946
3961
|
"",
|
|
3947
3962
|
"| \u73B0\u8C61 | \u5E38\u89C1\u539F\u56E0 | \u4FEE\u590D |",
|
|
3948
3963
|
"|------|----------|------|",
|
|
3949
3964
|
`| \u547D\u4EE4\u627E\u4E0D\u5230 | \u672A\u88C5\u5168\u5C40 CLI \u6216\u4E0D\u5728 dazi-work | \`pnpm add -g @dazitech/cli\` \u6216 ${(0, flowCliText_1.mdFlowCmd)("...")} / \`.scriptsdazi.ps1 flow ...\` |`,
|
|
3950
|
-
"| \u8282\u70B9\u6D4B\u8BD5\u62A5\u4E0A\u6E38\u53D8\u91CF\u4E0D\u5B58\u5728 | \u672A\u5148\u8FD0\u884C\u4E0A\u6E38\u8282\u70B9\u4EA7\u51FA\u53D8\u91CF | \
|
|
3965
|
+
"| \u8282\u70B9\u6D4B\u8BD5\u62A5\u4E0A\u6E38\u53D8\u91CF\u4E0D\u5B58\u5728 | \u672A\u5148\u8FD0\u884C\u4E0A\u6E38\u8282\u70B9\u4EA7\u51FA\u53D8\u91CF | \u4E0A\u6E38 **`node push` \u2192 `node-exec`**\uFF0C\u6216\u6574\u6D41\u7A0B `flow-exec --type debug`\uFF0C\u518D `variable pull` \u540E\u6D4B\u76EE\u6807\u8282\u70B9 |",
|
|
3966
|
+
"| \u672C\u5730\u5DF2\u6539\u4EE3\u7801\u4F46\u6D4B\u8BD5\u4ECD\u50CF\u65E7\u7248 | \u672A `node push` \u5C31 `node-exec` | **\u5148 `node push`\uFF0C\u518D `node-exec`** |",
|
|
3951
3967
|
"| excel-python \u627E\u4E0D\u5230\u6587\u4EF6 | code.py \u5199\u4E86\u6587\u4EF6\u540D/\u672C\u5730\u8DEF\u5F84 | \u753B\u5E03\u914D `managed_file_id`\uFF08UUID\uFF09\uFF1B\u4EE3\u7801\u7528 `excel_source_path` |",
|
|
3952
3968
|
"| Excel \u7528\u4E86 file-source | file-source \u4E0D\u89E3\u6790 xlsx | \u6539\u4E3A **`excel-python`** + `managed_file_id` |",
|
|
3953
3969
|
"| excel-python \u65E0\u4E3B\u8F93\u51FA | \u672A `set_table_output` \u6216\u540D\u79F0\u4E0E `output_variable_name` \u4E0D\u4E00\u81F4 | \u89C1 node-code-guide \xA75 |",
|
|
@@ -3957,13 +3973,13 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3957
3973
|
"",
|
|
3958
3974
|
"## AI \u81EA\u4E3B\u8FD0\u884C\u4E0E\u6539\u9519\u95ED\u73AF\uFF08Agent \u5FC5\u8BFB\uFF09",
|
|
3959
3975
|
"",
|
|
3960
|
-
"> **\u6269\u5C55/\u83DC\u5355\u4E0D\u4F1A\u81EA\u52A8\u6539\u4EE3\u7801**\uFF08\u5E73\u53F0 D6\uFF09\uFF1B\u7528\u6237\u59D4\u6258\u4F60\u6539\u6D41\u7A0B\u65F6\uFF0C\u4F60**\u5FC5\u987B\u4E3B\u52A8**\u6267\u884C\u300C\u6539 \u2192 \u8DD1 \u2192 \
|
|
3976
|
+
"> **\u6269\u5C55/\u83DC\u5355\u4E0D\u4F1A\u81EA\u52A8\u6539\u4EE3\u7801**\uFF08\u5E73\u53F0 D6\uFF09\uFF1B\u7528\u6237\u59D4\u6258\u4F60\u6539\u6D41\u7A0B\u65F6\uFF0C\u4F60**\u5FC5\u987B\u4E3B\u52A8**\u6267\u884C\u300C\u6539 \u2192 **push** \u2192 \u8DD1 \u2192 **variable pull**\uFF08\u82E5\u9002\u7528\uFF09\u2192 \u8BFB\u9519 \u2192 \u518D\u6539\u300D\uFF0C\u76F4\u5230\u6EE1\u8DB3\u6210\u529F\u5224\u636E\u6216\u8FBE\u5230\u91CD\u8BD5\u4E0A\u9650\u3002",
|
|
3961
3977
|
"",
|
|
3962
3978
|
"### \u9519\u8BEF\u843D\u5728\u54EA\u91CC\uFF08\u8DD1\u5B8C\u5FC5\u67E5\uFF09",
|
|
3963
3979
|
"",
|
|
3964
3980
|
"| \u8FD0\u884C\u65B9\u5F0F | \u5931\u8D25\u65F6\u8BFB | \u6210\u529F/\u6B65\u9AA4\u6458\u8981 |",
|
|
3965
3981
|
"|----------|----------|---------------|",
|
|
3966
|
-
"| \u5355\u8282\u70B9 `run node-exec` | `_run/<\u8282\u70B9\u540D>.last-error.md` | \
|
|
3982
|
+
"| \u5355\u8282\u70B9 `run node-exec` | `_run/<\u8282\u70B9\u540D>.last-error.md` | push \u6210\u529F + JSON `success:true` +\uFF08\u6709\u8F93\u51FA\u53D8\u91CF\u65F6\uFF09`variable pull` \u6838\u5BF9 |",
|
|
3967
3983
|
"| \u6574\u6D41\u7A0B `run flow-exec` | `_run/flow.last-error.md` | `_run/flow.last-run.md`\uFF08\u6B65\u9AA4+\u65E5\u5FD7\uFF09 |",
|
|
3968
3984
|
"",
|
|
3969
3985
|
"CLI \u5E26 `--json` \u65F6\uFF1A\u770B\u8FD4\u56DE `success: false` \u6216 `errorFile` \u5B57\u6BB5\uFF0C**\u518D\u6253\u5F00\u5BF9\u5E94 md \u6587\u4EF6**\uFF0C\u4E0D\u8981\u53EA\u770B\u7EC8\u7AEF\u4E00\u884C\u62A5\u9519\u3002",
|
|
@@ -3972,12 +3988,14 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3972
3988
|
"",
|
|
3973
3989
|
"1. **\u5B9A\u4F4D**\uFF1A\u8BFB `flow.json` + \u76EE\u6807 `\u8282\u70B9/<\u540D>/code.*` + `flow.meta.json`\uFF08\u53D6 `node_uuid`\uFF09",
|
|
3974
3990
|
"2. **\u4FEE\u6539**\uFF1A\u53EA\u6539\u5FC5\u8981\u6587\u4EF6\uFF08\u4EE3\u7801 \u2192 `code.*`\uFF1B\u8FDE\u7EBF/\u914D\u7F6E \u2192 `flow.json`\uFF09",
|
|
3975
|
-
"3. **\
|
|
3991
|
+
"3. **\u63D0\u4EA4**\uFF08\u5148\u4E8E\u6D4B\u8BD5\uFF09\uFF1A\u6539 `code.*` \u2192 `node push`\uFF1B\u6539\u753B\u5E03/\u914D\u7F6E \u2192 `project push --canvas`",
|
|
3992
|
+
"4. **\u9A8C\u8BC1**\uFF08\u5148\u5C0F\u540E\u5927\uFF09\uFF1A",
|
|
3976
3993
|
` - \u5355\u8282\u70B9\uFF1A${(0, flowCliText_1.mdFlowCmd)("run node-exec --node <node_uuid> --dir .")}`,
|
|
3977
3994
|
` - \u6574\u6D41\u7A0B\uFF1A${(0, flowCliText_1.mdFlowCmd)("run flow-exec --dir . --type debug")}`,
|
|
3978
|
-
|
|
3979
|
-
"5. **\
|
|
3980
|
-
"6. **\
|
|
3995
|
+
` - \u6709 output_variable_name\uFF1A${(0, flowCliText_1.mdFlowCmd)("variable pull --name <\u540D> --dir .")}`,
|
|
3996
|
+
"5. **\u6210\u529F\u5224\u636E**\uFF1Apush \u6210\u529F \u2192 node-exec `success:true` \u2192 \u53D8\u91CF\u5408\u7406\uFF08\u82E5\u9002\u7528\uFF09\uFF1B\u7981\u6B62\u4EC5\u51ED exit code",
|
|
3997
|
+
"6. **\u5224\u9519**\uFF1AJSON `success:false` \u2192 \u6253\u5F00 `_run/*.last-error.md`\uFF0C\u6309**\u9519\u8BEF\u5206\u7C7B**\u4E0E traceback \u4FEE\u590D",
|
|
3998
|
+
"7. **\u91CD\u8BD5**\uFF1A\u56DE\u5230\u6B65\u9AA4 2\uFF1B\u82E5 3 \u8F6E\u4ECD\u5931\u8D25\uFF0C\u6C47\u603B\u5DF2\u5C1D\u8BD5\u4FEE\u590D\u70B9\u5E76\u8BF7\u6C42\u7528\u6237\u4ECB\u5165",
|
|
3981
3999
|
"",
|
|
3982
4000
|
"### \u5E38\u89C1\u5931\u8D25 \u2192 \u4F18\u5148\u52A8\u4F5C",
|
|
3983
4001
|
"",
|
|
@@ -3985,14 +4003,15 @@ var require_flowScaffoldDocs = __commonJS({
|
|
|
3985
4003
|
"|-----------------|----------|",
|
|
3986
4004
|
"| \u7F3A\u4E0A\u6E38\u53D8\u91CF | \u5148\u8DD1\u4E0A\u6E38\u8282\u70B9\u6216\u6574\u6D41\u7A0B debug\uFF0C\u518D `variable pull` \u770B schema |",
|
|
3987
4005
|
"| \u914D\u7F6E\u7F3A\u5931 | `flow.json` \u8BE5\u8282\u70B9 `data`\uFF08connectionId / output_variable_name \u7B49\uFF09 |",
|
|
3988
|
-
"| \u4EE3\u7801\u9519\u8BEF | `code.*` \u4E0E traceback\uFF1B\u6539\u540E\
|
|
4006
|
+
"| \u4EE3\u7801\u9519\u8BEF | `code.*` \u4E0E traceback\uFF1B\u6539\u540E **`node push` \u2192 `node-exec` \u2192 `variable pull`**\uFF08\u82E5\u9002\u7528\uFF09 |",
|
|
3989
4007
|
"| \u8FDE\u63A5/\u6570\u636E\u6E90 | connectionId / spaceId \u662F\u5426\u6709\u6548 |",
|
|
3990
4008
|
"",
|
|
3991
4009
|
"### Agent \u7981\u6B62\u9879",
|
|
3992
4010
|
"",
|
|
3993
4011
|
"- **\u7981\u6B62**\u672A\u5B9E\u9645\u8FD0\u884C\u5C31\u58F0\u79F0\u300C\u5DF2\u4FEE\u590D/\u5DF2\u901A\u8FC7\u300D",
|
|
3994
4012
|
"- **\u7981\u6B62**\u4E0D\u8BFB `_run/*.last-error.md` \u5C31\u731C\u6D4B\u539F\u56E0",
|
|
3995
|
-
"- **\u7981\u6B62**\
|
|
4013
|
+
"- **\u7981\u6B62**\u672A `node push` \u5C31 `node-exec` \u9A8C\u8BC1\u4EE3\u7801",
|
|
4014
|
+
"- **\u7981\u6B62**\u4EC5\u51ED exit code \u901A\u8FC7\u5C31\u58F0\u79F0\u5B8C\u6210\uFF08\u987B variable pull\uFF0C\u82E5\u9002\u7528\uFF09",
|
|
3996
4015
|
"- **\u7981\u6B62**\u628A SQL/Python \u6B63\u6587\u5199\u56DE `flow.json`",
|
|
3997
4016
|
"",
|
|
3998
4017
|
"\u4FA7\u680F\u63D0\u793A\u8BCD\u53EF\u9009\u7528 **`flow/run-fix-loop`**\uFF08\u81EA\u4E3B\u6539\u9519\u4E13\u7528\uFF09\u3002",
|
|
@@ -4454,7 +4473,7 @@ var require_flowWorkspaceAudit = __commonJS({
|
|
|
4454
4473
|
lines.push(`- ${w}`);
|
|
4455
4474
|
lines.push("", "\u4FEE\u590D\uFF08\u5728\u6D41\u7A0B\u76EE\u5F55\uFF09\uFF1A", "", "```powershell", "dazi flow project repair-meta --dir .", "dazi flow project doctor --dir .", "```", "", `\u8BE6\u89C1 [\u6D41\u7A0B\u672C\u5730\u6587\u4EF6\u89C4\u8303](${localFilesSpecLink})\u3002`, "");
|
|
4456
4475
|
}
|
|
4457
|
-
lines.push("## \u53D8\u66F4\u63D0\u4EA4\u547D\u4EE4\u77E9\u9635", "", "| \u6539\u4E86\u4EC0\u4E48 | \u547D\u4EE4 |", "|----------|------|", "| `managed_file_id`\u3001`output_variable_name`\u3001\u8FDE\u7EBF\u3001\u589E\u5220\u8282\u70B9 | `dazi flow project push --dir . --canvas` |", "| `\u8282\u70B9/<\u540D>/code.py` \u6216 `code.sql` | `dazi flow node push --node <uuid> --dir .` |", '| **\u65B0\u589E\u4EE3\u7801\u8282\u70B9** | `dazi flow node new --type <type> --dir . --label "<\u540D>"` \u2192 \u6539\u914D\u7F6E \u2192 `push --canvas` \u2192 \u5199 code \u2192 `node push` |', "", "> \u7981\u6B62\u53EA\u6539 `flow.json` \u800C\u4E0D\u66F4\u65B0 `flow.meta.json`\uFF08\u987B `node new` / `pull` / `repair-meta`\uFF09\u3002", "");
|
|
4476
|
+
lines.push("## \u53D8\u66F4\u63D0\u4EA4\u547D\u4EE4\u77E9\u9635", "", "| \u6539\u4E86\u4EC0\u4E48 | \u547D\u4EE4 |", "|----------|------|", "| `managed_file_id`\u3001`output_variable_name`\u3001\u8FDE\u7EBF\u3001\u589E\u5220\u8282\u70B9 | `dazi flow project push --dir . --canvas` |", "| `\u8282\u70B9/<\u540D>/code.py` \u6216 `code.sql` | `dazi flow node push --node <uuid> --dir .` |", '| **\u65B0\u589E\u4EE3\u7801\u8282\u70B9** | `dazi flow node new --type <type> --dir . --label "<\u540D>"` \u2192 \u6539\u914D\u7F6E \u2192 `push --canvas` \u2192 \u5199 code \u2192 `node push` |', "", "> \u7981\u6B62\u53EA\u6539 `flow.json` \u800C\u4E0D\u66F4\u65B0 `flow.meta.json`\uFF08\u987B `node new` / `pull` / `repair-meta`\uFF09\u3002", "> \u6539 `code.*` \u540E\u9A8C\u8BC1\u987A\u5E8F\uFF1A**`node push` \u2192 `node-exec` \u2192 `variable pull`**\uFF08\u6709\u8F93\u51FA\u53D8\u91CF\u65F6\uFF09\uFF1B`node-exec` \u6267\u884C\u5E73\u53F0\u5DF2 push \u7684\u4EE3\u7801\u3002", "");
|
|
4458
4477
|
return lines;
|
|
4459
4478
|
}
|
|
4460
4479
|
exports2.buildFlowConsistencyMarkdown = buildFlowConsistencyMarkdown2;
|
|
@@ -4480,7 +4499,7 @@ var require_flowDirResolve = __commonJS({
|
|
|
4480
4499
|
if (m)
|
|
4481
4500
|
return m[1];
|
|
4482
4501
|
m = norm.match(/(?:^|\/)项目\/([^/]+)\/流程\/([^/]+)(?:\/|$)/);
|
|
4483
|
-
if (m && m[2] !== "flows" && m[2] !== "\u89C4\u5212")
|
|
4502
|
+
if (m && m[2] !== "flows" && m[2] !== "plans" && m[2] !== "\u89C4\u5212")
|
|
4484
4503
|
return m[1];
|
|
4485
4504
|
m = norm.match(/(?:^|\/)项目\/(flow_[^/]+)\/流程(?:\/|$)/);
|
|
4486
4505
|
if (m)
|
|
@@ -4517,12 +4536,12 @@ var require_flowDirResolve = __commonJS({
|
|
|
4517
4536
|
return false;
|
|
4518
4537
|
const norm = path_1.default.resolve(dir).replace(/\\/g, "/");
|
|
4519
4538
|
const base = path_1.default.basename(norm.replace(/\/$/, ""));
|
|
4520
|
-
if (["flows", "\u89C4\u5212", "\u6D41\u7A0B", "\u9879\u76EE", "\u8282\u70B9", "\u53D8\u91CF", "_run"].includes(base))
|
|
4539
|
+
if (["flows", "plans", "\u89C4\u5212", "\u6D41\u7A0B", "\u9879\u76EE", "\u8282\u70B9", "\u53D8\u91CF", "_run"].includes(base))
|
|
4521
4540
|
return false;
|
|
4522
4541
|
if (/(?:^|\/)项目\/[^/]+\/流程\/flows\/[^/]+(?:\/|$)/.test(norm))
|
|
4523
4542
|
return true;
|
|
4524
4543
|
const legacy = norm.match(/(?:^|\/)项目\/([^/]+)\/流程\/([^/]+)(?:\/|$)/);
|
|
4525
|
-
if (legacy && legacy[2] !== "flows" && legacy[2] !== "\u89C4\u5212")
|
|
4544
|
+
if (legacy && legacy[2] !== "flows" && legacy[2] !== "plans" && legacy[2] !== "\u89C4\u5212")
|
|
4526
4545
|
return true;
|
|
4527
4546
|
if (/(?:^|\/)项目\/flow_[^/]+\/流程\/[^/]+(?:\/|$)/.test(norm))
|
|
4528
4547
|
return true;
|
|
@@ -4963,7 +4982,7 @@ function resolveWorkspace(cwd = process.cwd()) {
|
|
|
4963
4982
|
}
|
|
4964
4983
|
|
|
4965
4984
|
// cli/shared/src/version.ts
|
|
4966
|
-
var DAZI_VERSION = true ? "3.0.
|
|
4985
|
+
var DAZI_VERSION = true ? "3.0.8" : readDevVersion();
|
|
4967
4986
|
|
|
4968
4987
|
// cli/dazi-flow/src/commands/flows.ts
|
|
4969
4988
|
var import_path3 = __toESM(require("path"), 1);
|
|
@@ -5608,7 +5627,7 @@ function makeProjectCommand() {
|
|
|
5608
5627
|
process.exit(1);
|
|
5609
5628
|
}
|
|
5610
5629
|
import_fs8.default.mkdirSync(import_path9.default.join(projectRoot, "\u6D41\u7A0B", "flows"), { recursive: true });
|
|
5611
|
-
import_fs8.default.mkdirSync(import_path9.default.join(projectRoot, "\u6D41\u7A0B", "
|
|
5630
|
+
import_fs8.default.mkdirSync(import_path9.default.join(projectRoot, "\u6D41\u7A0B", "plans"), { recursive: true });
|
|
5612
5631
|
import_fs8.default.writeFileSync(
|
|
5613
5632
|
import_path9.default.join(projectRoot, "README.md"),
|
|
5614
5633
|
`# ${folder}
|
package/dist/clis/dazi-onto.js
CHANGED
|
@@ -3216,7 +3216,14 @@ function resolveWorkspace(cwd = process.cwd()) {
|
|
|
3216
3216
|
}
|
|
3217
3217
|
|
|
3218
3218
|
// cli/shared/src/version.ts
|
|
3219
|
-
var DAZI_VERSION = true ? "3.0.
|
|
3219
|
+
var DAZI_VERSION = true ? "3.0.8" : readDevVersion();
|
|
3220
|
+
|
|
3221
|
+
// cli/shared/src/ontoWorkspaceAudit.ts
|
|
3222
|
+
function ontoItemSubdirForScriptType(scriptType) {
|
|
3223
|
+
const t = (scriptType ?? "").toLowerCase();
|
|
3224
|
+
if (t === "ontology_function" || t === "ontology_action") return "functions";
|
|
3225
|
+
return "setup";
|
|
3226
|
+
}
|
|
3220
3227
|
|
|
3221
3228
|
// cli/dazi-onto/src/commands/space.ts
|
|
3222
3229
|
var import_path3 = __toESM(require("path"), 1);
|
|
@@ -3705,9 +3712,36 @@ function makeRuleCommand() {
|
|
|
3705
3712
|
// cli/dazi-onto/src/commands/script.ts
|
|
3706
3713
|
var import_path6 = __toESM(require("path"), 1);
|
|
3707
3714
|
var import_fs5 = __toESM(require("fs"), 1);
|
|
3715
|
+
async function fetchScriptCode(scriptId) {
|
|
3716
|
+
const detail = await apiRequest(`/api/scripts/${encodeURIComponent(scriptId)}`);
|
|
3717
|
+
return detail.code ?? "";
|
|
3718
|
+
}
|
|
3719
|
+
function scriptOutFileName(s) {
|
|
3720
|
+
const fromPath = s.filePath ? import_path6.default.basename(s.filePath) : "";
|
|
3721
|
+
if (fromPath && fromPath.endsWith(".py")) return fromPath;
|
|
3722
|
+
const stem = (s.name ?? s.id).replace(/\.py$/i, "");
|
|
3723
|
+
return `${stem}.py`;
|
|
3724
|
+
}
|
|
3725
|
+
function resolveSyncOutDir(opts, ws) {
|
|
3726
|
+
if (opts.targetDir) {
|
|
3727
|
+
return { base: import_path6.default.resolve(opts.targetDir), perItem: true };
|
|
3728
|
+
}
|
|
3729
|
+
return { base: import_path6.default.join(ws.onto, opts.space, "scripts"), perItem: false };
|
|
3730
|
+
}
|
|
3708
3731
|
function inferScriptTypeFromPath(filePath, explicit) {
|
|
3709
3732
|
if (explicit) return explicit;
|
|
3710
3733
|
const norm = filePath.replace(/\\/g, "/");
|
|
3734
|
+
if (norm.includes("/\u811A\u672C/")) {
|
|
3735
|
+
console.warn(
|
|
3736
|
+
"[deprecated] \u68C0\u6D4B\u5230\u65E7\u8DEF\u5F84\u300C\u811A\u672C/\u300D\u3002\u8BF7\u8FC1\u81F3 \u9879\u76EE/<\u4E1A\u52A1>/\u672C\u4F53/ontos/<\u5B9E\u73B0\u540D>/setup|functions/"
|
|
3737
|
+
);
|
|
3738
|
+
if (norm.includes("/\u811A\u672C/functions/")) return "ontology_function";
|
|
3739
|
+
if (norm.includes("/\u811A\u672C/setup/")) {
|
|
3740
|
+
const stem = import_path6.default.basename(filePath, ".py").toLowerCase();
|
|
3741
|
+
if (stem.includes("seed")) return "data";
|
|
3742
|
+
return "setup";
|
|
3743
|
+
}
|
|
3744
|
+
}
|
|
3711
3745
|
if (norm.includes("/functions/")) return "ontology_function";
|
|
3712
3746
|
if (norm.includes("/setup/")) {
|
|
3713
3747
|
const stem = import_path6.default.basename(filePath, ".py").toLowerCase();
|
|
@@ -3817,29 +3851,46 @@ function makeScriptCommand() {
|
|
|
3817
3851
|
handleError(err);
|
|
3818
3852
|
}
|
|
3819
3853
|
});
|
|
3820
|
-
cmd.command("sync").description(
|
|
3854
|
+
cmd.command("sync").description(
|
|
3855
|
+
"\u4ECE\u5E73\u53F0\u540C\u6B65\u811A\u672C\u5230\u672C\u5730 onto/<spaceId>/scripts/\uFF08legacy\uFF09\uFF1B\u65E5\u5E38\u5F00\u53D1\u8BF7\u7528 \u9879\u76EE/<\u4E1A\u52A1>/\u672C\u4F53/ontos/<\u5B9E\u73B0\u540D>/setup|functions/"
|
|
3856
|
+
).requiredOption("--space <spaceId>", "\u7A7A\u95F4 ID").option("--type <scriptType>", "\u811A\u672C\u7C7B\u578B\uFF08\u5982 ontology_function\uFF09").option("--ids <ids>", "\u9017\u53F7\u5206\u9694\u7684\u811A\u672C ID \u5217\u8868").option("--target-dir <path>", "\u843D\u76D8\u5230 ontos/<\u5B9E\u73B0\u540D>/ \u76EE\u5F55\uFF08\u6309 setup|functions \u5206\u5B50\u76EE\u5F55\uFF09").option("--with-docs", "\u540C\u65F6\u540C\u6B65\u5173\u8054\u6587\u6863\u5230 docs/").option("--dry-run", "\u4EC5\u9884\u89C8\uFF0C\u4E0D\u5199\u6587\u4EF6").option("--json", "\u8F93\u51FA JSON").action(async (opts) => {
|
|
3821
3857
|
try {
|
|
3822
|
-
const
|
|
3823
|
-
if (opts.type)
|
|
3824
|
-
|
|
3825
|
-
if (opts.
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
{ method: "POST", body }
|
|
3829
|
-
);
|
|
3830
|
-
if (!opts.dryRun) {
|
|
3831
|
-
const ws = resolveWorkspace();
|
|
3832
|
-
const scriptsDir = import_path6.default.join(ws.onto, opts.space, "scripts");
|
|
3833
|
-
if (!import_fs5.default.existsSync(scriptsDir)) import_fs5.default.mkdirSync(scriptsDir, { recursive: true });
|
|
3834
|
-
for (const s of result.scripts ?? []) {
|
|
3835
|
-
if (s.filePath) {
|
|
3836
|
-
const outFile = import_path6.default.join(scriptsDir, import_path6.default.basename(s.filePath));
|
|
3837
|
-
console.log(` \u2193 ${outFile}`);
|
|
3838
|
-
}
|
|
3839
|
-
}
|
|
3858
|
+
const params = new URLSearchParams({ space_id: opts.space });
|
|
3859
|
+
if (opts.type) params.set("script_type", opts.type);
|
|
3860
|
+
let scripts = await apiRequest(`/api/scripts?${params}`);
|
|
3861
|
+
if (opts.ids) {
|
|
3862
|
+
const idSet = new Set(opts.ids.split(",").map((s) => s.trim()).filter(Boolean));
|
|
3863
|
+
scripts = scripts.filter((s) => idSet.has(s.id));
|
|
3840
3864
|
}
|
|
3841
|
-
|
|
3842
|
-
|
|
3865
|
+
const ws = resolveWorkspace();
|
|
3866
|
+
const { base: outBase, perItem } = resolveSyncOutDir(opts, ws);
|
|
3867
|
+
const written = [];
|
|
3868
|
+
for (const s of scripts) {
|
|
3869
|
+
const sub = perItem ? ontoItemSubdirForScriptType(s.scriptType) : "";
|
|
3870
|
+
const outDir = sub ? import_path6.default.join(outBase, sub) : outBase;
|
|
3871
|
+
const outFile = import_path6.default.join(outDir, scriptOutFileName(s));
|
|
3872
|
+
if (opts.dryRun) {
|
|
3873
|
+
console.log(` [dry-run] \u2193 ${outFile}`);
|
|
3874
|
+
written.push(outFile);
|
|
3875
|
+
continue;
|
|
3876
|
+
}
|
|
3877
|
+
if (!import_fs5.default.existsSync(outDir)) import_fs5.default.mkdirSync(outDir, { recursive: true });
|
|
3878
|
+
const code = s.code?.length ? s.code : await fetchScriptCode(s.id);
|
|
3879
|
+
if (!code.trim()) {
|
|
3880
|
+
console.warn(` \u26A0 \u8DF3\u8FC7 ${s.id}\uFF1A\u65E0\u811A\u672C\u4EE3\u7801`);
|
|
3881
|
+
continue;
|
|
3882
|
+
}
|
|
3883
|
+
import_fs5.default.writeFileSync(outFile, code, "utf8");
|
|
3884
|
+
console.log(` \u2193 ${outFile}`);
|
|
3885
|
+
written.push(outFile);
|
|
3886
|
+
}
|
|
3887
|
+
if (opts.withDocs) {
|
|
3888
|
+
console.warn(" --with-docs \u6682\u672A\u5B9E\u73B0\uFF0C\u8BF7\u4F7F\u7528 dazi docs sync");
|
|
3889
|
+
}
|
|
3890
|
+
console.log(
|
|
3891
|
+
`${opts.dryRun ? "[dry-run] " : ""}\u540C\u6B65 ${written.length}/${scripts.length} \u4E2A\u811A\u672C \u2192 ${outBase}`
|
|
3892
|
+
);
|
|
3893
|
+
ok({ count: written.length, total: scripts.length, dryRun: opts.dryRun, targetDir: outBase });
|
|
3843
3894
|
} catch (err) {
|
|
3844
3895
|
handleError(err);
|
|
3845
3896
|
}
|