@dazitech/cli 3.0.0
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/LICENSE +21 -0
- package/README.md +104 -0
- package/dist/bin/dazi-app.cjs +4 -0
- package/dist/bin/dazi-flow.cjs +4 -0
- package/dist/bin/dazi-onto.cjs +4 -0
- package/dist/bin/dazi.cjs +4 -0
- package/dist/bin/run-cli-bin.cjs +62 -0
- package/dist/clis/dazi-app.js +16697 -0
- package/dist/clis/dazi-flow.js +6093 -0
- package/dist/clis/dazi-onto.js +3948 -0
- package/dist/clis/dazi.js +5677 -0
- package/dist/docs/app/app-init.md +69 -0
- package/dist/docs/app/build-upload.md +77 -0
- package/dist/docs/app/release-guide.md +51 -0
- package/dist/docs/app//344/270/273/350/246/201/350/264/242/345/212/241/346/214/207/346/240/207/345/244/215/346/235/202/346/212/245/350/241/250/345/274/200/345/217/221/345/256/236/350/267/265.md +261 -0
- package/dist/docs/auth/auth-login.md +41 -0
- package/dist/docs/auth/token-management.md +42 -0
- package/dist/docs/data/cube-guide.md +23 -0
- package/dist/docs/data/data-spaces.md +30 -0
- package/dist/docs/data/table-preview.md +41 -0
- package/dist/docs/flow/flow-project-guide.md +505 -0
- package/dist/docs/flow/flows-guide.md +302 -0
- package/dist/docs/flow/node-code-guide.md +399 -0
- package/dist/docs/flow/plan-guide.md +59 -0
- package/dist/docs/flow/run-guide.md +98 -0
- package/dist/docs/flow/source-guide.md +44 -0
- package/dist/docs/flow/variables-guide.md +406 -0
- package/dist/docs/flow//346/265/201/347/250/213/345/274/200/345/217/221/346/234/200/344/275/263/345/256/236/350/267/265-VS-flow0/346/241/210/344/276/213.md +344 -0
- package/dist/docs/guides/cli-invocation.md +93 -0
- package/dist/docs/guides/cli-reference.md +98 -0
- package/dist/docs/guides/mcp-setup.md +89 -0
- package/dist/docs/guides/migrate-v2-v3.md +54 -0
- package/dist/docs/guides/quickstart.md +77 -0
- package/dist/docs/guides/troubleshooting.md +82 -0
- package/dist/docs/guides/workspace-v3.md +53 -0
- package/dist/docs/index.json +204 -0
- package/dist/docs/onto/action-guide.md +48 -0
- package/dist/docs/onto/dazi_script_sdk_reference.md +168 -0
- package/dist/docs/onto/dazi_script_seed_data_guide.md +155 -0
- package/dist/docs/onto/function-guide.md +68 -0
- package/dist/docs/onto/rule-guide.md +52 -0
- package/dist/docs/onto/space-management.md +46 -0
- 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 +145 -0
- package/dist/docs/onto//346/234/254/344/275/223/350/247/204/345/210/222/346/214/207/345/215/227.md +131 -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 +541 -0
- package/dist/examples/index.json +36 -0
- package/dist/examples/onto/function/profit_fn_customer_segmentation.py +117 -0
- package/dist/examples/onto/function/profit_fn_mom_analysis.py +89 -0
- package/dist/examples/onto/function/profit_fn_top_products.py +89 -0
- package/dist/examples/onto/function/profit_fn_yoy_analysis.py +89 -0
- package/dist/examples/onto/setup/profit_ontology_init.py +388 -0
- package/dist/prompts/app/ui-design.md +48 -0
- package/dist/prompts/data/data-analysis.md +42 -0
- package/dist/prompts/data/sql-query.md +36 -0
- package/dist/prompts/flow/flow-design.md +77 -0
- package/dist/prompts/flow/plan-generate.md +61 -0
- package/dist/prompts/flow/run-debug.md +66 -0
- package/dist/prompts/flow/run-fix-loop.md +77 -0
- package/dist/prompts/general/ask-dazi.md +30 -0
- package/dist/prompts/general/code-review.md +31 -0
- package/dist/prompts/general/troubleshoot.md +41 -0
- package/dist/prompts/index.json +20 -0
- package/dist/prompts/onto/action-design.md +47 -0
- package/dist/prompts/onto/function-design.md +44 -0
- package/dist/prompts/onto/rule-seed.md +41 -0
- package/dist/prompts/onto/script-publish-run.md +146 -0
- package/package.json +27 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 搭子科技
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# @dazitech/cli
|
|
2
|
+
|
|
3
|
+
搭子 v3 终端 CLI 的 **pnpm 可发布包**,与 `dazi-vscode` 扩展使用同一套 `bundled/clis` 产物。
|
|
4
|
+
|
|
5
|
+
## 与 `dazi.ps1` 的关系
|
|
6
|
+
|
|
7
|
+
| 方式 | 适用 |
|
|
8
|
+
|------|------|
|
|
9
|
+
| `.\scripts\dazi.ps1` | 仅拷贝 `dazi-work`、未装全局 CLI |
|
|
10
|
+
| **`dazi` / `dazi-flow`(本包)** | 开发机全局短命令 |
|
|
11
|
+
|
|
12
|
+
二者等价:`dazi flow …` ≈ `.\scripts\dazi.ps1 flow …`。
|
|
13
|
+
|
|
14
|
+
## 研发:准备发布目录
|
|
15
|
+
|
|
16
|
+
在 `dazi-vscode` 根目录:
|
|
17
|
+
|
|
18
|
+
```powershell
|
|
19
|
+
pnpm run bundle:clis
|
|
20
|
+
pnpm run prepare:cli-dist
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 本地全局安装(无需 publish,推荐研发机)
|
|
24
|
+
|
|
25
|
+
未登录 npm / 无 `@dazitech` 发布权限时,用 **link** 即可在本机得到 `dazi` 命令:
|
|
26
|
+
|
|
27
|
+
```powershell
|
|
28
|
+
cd dazi\dazi-vscode
|
|
29
|
+
pnpm run link:cli
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
若提示 `ERR_PNPM_NO_GLOBAL_BIN_DIR`,先执行一次 **`pnpm setup`**,重开终端,再把 `PNPM_HOME` 加入 PATH。
|
|
33
|
+
|
|
34
|
+
```powershell
|
|
35
|
+
pnpm bin -g
|
|
36
|
+
where.exe dazi
|
|
37
|
+
dazi --version
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**备选**(不依赖 link):
|
|
41
|
+
|
|
42
|
+
```powershell
|
|
43
|
+
pnpm add -g "D:\path\to\dazi-vscode\packages\cli-dist"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
更新 CLI 后重新执行 `pnpm run link:cli` 或 `pnpm add -g` 同上路径。
|
|
47
|
+
|
|
48
|
+
## 发布到 registry(需登录)
|
|
49
|
+
|
|
50
|
+
`pnpm run publish:cli` 默认指向 **https://registry.npmjs.org/**,须先登录且拥有 `@dazitech` 作用域发布权:
|
|
51
|
+
|
|
52
|
+
**方式 A — 交互登录(需账号已开 2FA,且为 Authorization and writes):**
|
|
53
|
+
|
|
54
|
+
```powershell
|
|
55
|
+
pnpm login
|
|
56
|
+
pnpm run publish:cli
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**方式 B — Granular Access Token + `.npmrc`(纯文本文件):**
|
|
60
|
+
|
|
61
|
+
```powershell
|
|
62
|
+
cd packages\cli-dist
|
|
63
|
+
copy .npmrc.example .npmrc
|
|
64
|
+
# 用编辑器打开 .npmrc,把 YOUR_NPM_TOKEN_HERE 换成 npm_ 开头的 token
|
|
65
|
+
cd ..\..
|
|
66
|
+
pnpm run publish:cli
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`.npmrc` 已加入 `.gitignore`,不要提交到 Git。也可放在用户目录 `%USERPROFILE%\.npmrc` 供本机所有项目使用。
|
|
70
|
+
|
|
71
|
+
内网 registry:把 `registry=` 和 token 行改成你们私服地址。
|
|
72
|
+
|
|
73
|
+
若仅内网使用、不上传 npmjs,可跳过 publish,只用上面的 `link:cli` 或 `dazi.ps1`。
|
|
74
|
+
|
|
75
|
+
## 从 registry 安装(publish 成功后)
|
|
76
|
+
|
|
77
|
+
```powershell
|
|
78
|
+
# 全局
|
|
79
|
+
pnpm add -g @dazitech/cli@3.0.0
|
|
80
|
+
|
|
81
|
+
# 确认 PATH(pnpm 全局 bin)
|
|
82
|
+
pnpm bin -g
|
|
83
|
+
where.exe dazi
|
|
84
|
+
|
|
85
|
+
dazi --version
|
|
86
|
+
dazi auth whoami
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
在 `dazi-work` 根目录:
|
|
90
|
+
|
|
91
|
+
```powershell
|
|
92
|
+
dazi flow project status --dir "项目\flow_xxx\流程\MyFlow"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 项目内安装(可选)
|
|
96
|
+
|
|
97
|
+
在 `dazi-work/package.json` 中声明 `@dazitech/cli` 为 devDependency,使用 `pnpm exec dazi ...`。
|
|
98
|
+
|
|
99
|
+
## 环境变量
|
|
100
|
+
|
|
101
|
+
| 变量 | 说明 |
|
|
102
|
+
|------|------|
|
|
103
|
+
| `DAZI_BUNDLED_DIR` | 默认:包内 `dist/clis` |
|
|
104
|
+
| `DAZI_WORKSPACE_ROOT` | 默认:从 cwd 向上查找含 `scripts/dazi.ps1` 的目录 |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @dazitech/cli 统一启动器:设置 DAZI_BUNDLED_DIR / 工作区根,再 spawn 对应 bundled CLI。
|
|
6
|
+
*/
|
|
7
|
+
const path = require('path');
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const { spawnSync } = require('child_process');
|
|
10
|
+
|
|
11
|
+
const CLI_NAME = process.env.DAZI_CLI_BIN;
|
|
12
|
+
if (!CLI_NAME) {
|
|
13
|
+
console.error('[dazi] 内部错误:未设置 DAZI_CLI_BIN');
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const PKG_ROOT = path.resolve(__dirname, '..');
|
|
18
|
+
const CLI_DIR = path.join(PKG_ROOT, 'clis');
|
|
19
|
+
const CLI_JS = path.join(CLI_DIR, `${CLI_NAME}.js`);
|
|
20
|
+
|
|
21
|
+
if (!fs.existsSync(CLI_JS)) {
|
|
22
|
+
console.error(`[dazi] 找不到 CLI:${CLI_JS}`);
|
|
23
|
+
console.error('请重新安装 @dazitech/cli,或执行 pnpm run prepare:cli-dist 后发布。');
|
|
24
|
+
process.exit(2);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (!process.env.DAZI_BUNDLED_DIR) {
|
|
28
|
+
process.env.DAZI_BUNDLED_DIR = CLI_DIR;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (!process.env.DAZI_WORKSPACE_ROOT) {
|
|
32
|
+
const found = findDaziWorkRoot(process.cwd());
|
|
33
|
+
if (found) process.env.DAZI_WORKSPACE_ROOT = found;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const cwd =
|
|
37
|
+
process.env.DAZI_WORKSPACE_ROOT &&
|
|
38
|
+
fs.existsSync(process.env.DAZI_WORKSPACE_ROOT)
|
|
39
|
+
? process.env.DAZI_WORKSPACE_ROOT
|
|
40
|
+
: process.cwd();
|
|
41
|
+
|
|
42
|
+
const args = process.argv.slice(2);
|
|
43
|
+
const result = spawnSync(process.execPath, [CLI_JS, ...args], {
|
|
44
|
+
stdio: 'inherit',
|
|
45
|
+
cwd,
|
|
46
|
+
env: process.env,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
process.exit(result.status ?? 1);
|
|
50
|
+
|
|
51
|
+
/** 向上查找 dazi-work 根(含 scripts/dazi.ps1 或 tools/dazi-clis) */
|
|
52
|
+
function findDaziWorkRoot(start) {
|
|
53
|
+
let dir = path.resolve(start);
|
|
54
|
+
for (let i = 0; i < 16; i++) {
|
|
55
|
+
if (fs.existsSync(path.join(dir, 'scripts', 'dazi.ps1'))) return dir;
|
|
56
|
+
if (fs.existsSync(path.join(dir, 'tools', 'dazi-clis', 'dazi.js'))) return dir;
|
|
57
|
+
const parent = path.dirname(dir);
|
|
58
|
+
if (parent === dir) break;
|
|
59
|
+
dir = parent;
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|