create-zhin-app 1.1.0 → 1.1.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 +17 -30
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +2 -4
- package/lib/config.js.map +1 -1
- package/lib/index.js +8 -5
- package/lib/index.js.map +1 -1
- package/lib/stable-yes-defaults.js +1 -1
- package/lib/stable-yes-defaults.js.map +1 -1
- package/lib/utils.d.ts +1 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +7 -1
- package/lib/utils.js.map +1 -1
- package/lib/workspace.d.ts.map +1 -1
- package/lib/workspace.js +78 -43
- package/lib/workspace.js.map +1 -1
- package/package.json +2 -2
- package/template/skills/plugin-develop/SKILL.md +7 -7
- package/template/skills/plugin-develop/test-prompts.json +2 -2
- package/template/skills/plugin-init/SKILL.md +9 -9
- package/template/skills/plugin-quality/SKILL.md +2 -2
- package/template/skills/plugin-test/SKILL.md +2 -2
- package/template/skills/summarize/SKILL.md +1 -1
- package/lib/read-existing.d.ts +0 -18
- package/lib/read-existing.d.ts.map +0 -1
- package/lib/read-existing.js +0 -129
- package/lib/read-existing.js.map +0 -1
package/README.md
CHANGED
|
@@ -86,7 +86,7 @@ npm create zhin-app my-awesome-bot
|
|
|
86
86
|
**交互式配置流程:**
|
|
87
87
|
1. 📝 输入项目名称
|
|
88
88
|
2. ⚙️ 选择运行时(Node.js / Bun)
|
|
89
|
-
3. 📄 选择配置格式(YAML / JSON
|
|
89
|
+
3. 📄 选择配置格式(YAML / JSON)
|
|
90
90
|
4. 🔐 配置 Web 控制台 Token
|
|
91
91
|
- Token(默认:随机 32 位 hex 字符串,用于 Authorization: Bearer 或 ?token= 认证)
|
|
92
92
|
5. 🗄️ 配置数据库
|
|
@@ -183,14 +183,14 @@ my-awesome-bot/
|
|
|
183
183
|
├── commands/ # 消息命令
|
|
184
184
|
├── components/ # 消息组件
|
|
185
185
|
├── middlewares/ # 消息中间件
|
|
186
|
-
├── tools/
|
|
187
|
-
├── skills
|
|
186
|
+
├── tools/ # 可选 AI tools(默认空)
|
|
187
|
+
├── skills/<name>/SKILL.md # Skill 能力包,可附带参考资料与脚本
|
|
188
188
|
├── agents/ # 可选 Agent 定义(默认空)
|
|
189
189
|
├── pages/ # Console page + $nav/$footer 布局
|
|
190
190
|
├── plugins/ # 仅一级的本地子插件 workspace
|
|
191
191
|
├── packages/ # 提供给 Zhin 的 Feature workspace
|
|
192
192
|
├── data/ # 数据存储目录
|
|
193
|
-
├── zhin.config.yml #
|
|
193
|
+
├── zhin.config.yml # Root 配置文件(YAML 或 JSON)
|
|
194
194
|
├── package.json # 根 package.json(包含依赖和脚本)
|
|
195
195
|
├── tsconfig.json # TypeScript 根配置
|
|
196
196
|
├── pnpm-workspace.yaml # workspace 配置
|
|
@@ -214,47 +214,34 @@ packages:
|
|
|
214
214
|
```json
|
|
215
215
|
{
|
|
216
216
|
"scripts": {
|
|
217
|
-
"dev": "zhin
|
|
218
|
-
"start": "zhin start",
|
|
219
|
-
"
|
|
220
|
-
"stop": "zhin stop", // 停止服务
|
|
221
|
-
"build": "zhin build" // 构建插件和客户端页面
|
|
217
|
+
"dev": "zhin runtime start",
|
|
218
|
+
"start": "zhin runtime start --mode production --no-watch",
|
|
219
|
+
"build": "tsc --noEmit"
|
|
222
220
|
}
|
|
223
221
|
}
|
|
224
222
|
```
|
|
225
223
|
|
|
226
224
|
## 配置文件格式
|
|
227
225
|
|
|
228
|
-
|
|
226
|
+
脚手架生成 Runtime 可直接加载的 YAML 或 JSON。`-y` 默认生成 `zhin.config.yml`(节选):
|
|
229
227
|
|
|
230
228
|
```yaml
|
|
231
|
-
endpoints: []
|
|
232
|
-
|
|
233
|
-
plugins:
|
|
234
|
-
- "@zhin.js/adapter-sandbox"
|
|
235
|
-
- example
|
|
236
|
-
|
|
237
229
|
http:
|
|
238
230
|
token: ${HTTP_TOKEN}
|
|
231
|
+
port: 8068
|
|
232
|
+
base: /api
|
|
239
233
|
corsOrigins:
|
|
240
234
|
- "https://console.zhin.dev"
|
|
241
235
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
zhin:
|
|
249
|
-
provider: ollama
|
|
250
|
-
model: qwen3:14b
|
|
251
|
-
agent:
|
|
252
|
-
toolSearch: false
|
|
253
|
-
execSecurity: allowlist
|
|
254
|
-
execPreset: readonly
|
|
236
|
+
plugins:
|
|
237
|
+
sandbox:
|
|
238
|
+
commandPrefix: /
|
|
239
|
+
endpoints:
|
|
240
|
+
- id: sandbox-bot
|
|
241
|
+
owner: sandbox-user
|
|
255
242
|
```
|
|
256
243
|
|
|
257
|
-
|
|
244
|
+
交互式选择数据库时会追加 `database:`。Remote Console 用法见 [Console 文档](../../docs/console/index.md);Stable 手测见 [examples/minimal-bot/README.md](../../examples/minimal-bot/README.md)。
|
|
258
245
|
|
|
259
246
|
## 完整工作流
|
|
260
247
|
|
package/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsD,MAAM,0BAA0B,CAAC;AAG3G,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsD,MAAM,0BAA0B,CAAC;AAG3G,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3G"}
|
package/lib/config.js
CHANGED
|
@@ -8,13 +8,11 @@ export { generateDatabaseEnvVars } from '@zhin.js/scaffold-wizard';
|
|
|
8
8
|
* 与 packages/im/runtime/src/config-composer.ts 的 effectiveSchema 对齐)
|
|
9
9
|
*/
|
|
10
10
|
export async function createConfigFile(appPath, format, options) {
|
|
11
|
-
const configFormat =
|
|
11
|
+
const configFormat = format === 'json' ? 'json' : 'yaml';
|
|
12
12
|
const doc = buildRuntimeConfigDocument(options);
|
|
13
13
|
const filename = configFormat === 'json'
|
|
14
14
|
? 'zhin.config.json'
|
|
15
|
-
:
|
|
16
|
-
? 'zhin.config.toml'
|
|
17
|
-
: 'zhin.config.yml';
|
|
15
|
+
: 'zhin.config.yml';
|
|
18
16
|
await fs.writeFile(path.join(appPath, filename), serializeRuntimeConfig(doc, configFormat));
|
|
19
17
|
}
|
|
20
18
|
//# sourceMappingURL=config.js.map
|
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAe,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAE3G,oEAAoE;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,MAAc,EAAE,OAAoB;IAC1F,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAe,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAE3G,oEAAoE;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,MAAc,EAAE,OAAoB;IAC1F,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACzD,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,YAAY,KAAK,MAAM;QACtC,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,iBAAiB,CAAC;IACtB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,sBAAsB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AAC9F,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import fs from 'fs-extra';
|
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import inquirer from 'inquirer';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { generateToken, getDatabaseDisplayName, isValidProjectName } from './utils.js';
|
|
6
|
+
import { generateToken, getDatabaseDisplayName, getDatabasePersistenceLabel, isValidProjectName, } from './utils.js';
|
|
7
7
|
import { configureDatabaseOptions, configureAdapters, configureAI, getAdapterSetupNotes, ensureDatabaseForAI, ensureDatabaseForAdapters, formatAIDependencyHint, DEFAULT_CREATE_BOT_HTTP_PORT, } from '@zhin.js/scaffold-wizard';
|
|
8
8
|
import { createWorkspace } from './workspace.js';
|
|
9
9
|
import { ensurePnpmInstalled, installDependencies, runPostInstallDoctor } from './install.js';
|
|
@@ -94,8 +94,7 @@ async function main() {
|
|
|
94
94
|
message: '选择配置文件格式:',
|
|
95
95
|
choices: [
|
|
96
96
|
{ name: 'YAML (推荐)', value: 'yaml' },
|
|
97
|
-
{ name: 'JSON', value: 'json' }
|
|
98
|
-
{ name: 'TOML', value: 'toml' }
|
|
97
|
+
{ name: 'JSON', value: 'json' }
|
|
99
98
|
],
|
|
100
99
|
default: 'yaml'
|
|
101
100
|
}
|
|
@@ -224,9 +223,13 @@ async function main() {
|
|
|
224
223
|
console.log(` ${chalk.gray('模式:')} ${chalk.cyan(options.database.mode.toUpperCase())}`);
|
|
225
224
|
}
|
|
226
225
|
}
|
|
226
|
+
else if (options.database.dialect === 'memory') {
|
|
227
|
+
console.log(` ${chalk.yellow('⚠ 仅用于测试,进程退出后数据不会保留')}`);
|
|
228
|
+
}
|
|
227
229
|
else {
|
|
228
230
|
console.log(` ${chalk.yellow('⚠ 数据库连接信息已保存到')} ${chalk.cyan('.env')} ${chalk.yellow('文件')}`);
|
|
229
231
|
console.log(` ${chalk.gray('请根据实际情况修改数据库连接参数')}`);
|
|
232
|
+
console.log(` ${chalk.gray('启动前校验:')} ${chalk.cyan('npx zhin config check')}`);
|
|
230
233
|
}
|
|
231
234
|
}
|
|
232
235
|
// 显示适配器信息
|
|
@@ -251,7 +254,7 @@ async function main() {
|
|
|
251
254
|
}
|
|
252
255
|
// 显示 AI 配置信息
|
|
253
256
|
if (options.ai?.enabled) {
|
|
254
|
-
const agentProvider = options.ai.agentProvider
|
|
257
|
+
const agentProvider = options.ai.agentProvider;
|
|
255
258
|
console.log('');
|
|
256
259
|
console.log(chalk.blue('🤖 AI 智能体配置:'));
|
|
257
260
|
console.log(` ${chalk.gray('提供商:')} ${chalk.cyan(agentProvider || 'N/A')}`);
|
|
@@ -272,7 +275,7 @@ async function main() {
|
|
|
272
275
|
}
|
|
273
276
|
console.log(` ${chalk.gray('依赖:')} ${chalk.cyan(formatAIDependencyHint(agentProvider))}`);
|
|
274
277
|
if (options.database && options.ai.sessions?.useDatabase !== false) {
|
|
275
|
-
console.log(` ${chalk.gray('会话存储:')} ${chalk.cyan(
|
|
278
|
+
console.log(` ${chalk.gray('会话存储:')} ${chalk.cyan(getDatabasePersistenceLabel(options.database.dialect))}`);
|
|
276
279
|
}
|
|
277
280
|
const providerKey = options.ai.providers && Object.values(options.ai.providers)[0];
|
|
278
281
|
if (providerKey && providerKey.apiKey) {
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export function applyStableYesDefaults(options) {
|
|
|
18
18
|
// 无前缀文本落入 unmatched(AI 对话)路径。
|
|
19
19
|
config: {
|
|
20
20
|
commandPrefix: '/',
|
|
21
|
-
endpoints: [{
|
|
21
|
+
endpoints: [{ id: 'sandbox-bot', owner: 'sandbox-user' }],
|
|
22
22
|
},
|
|
23
23
|
}],
|
|
24
24
|
envVars: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-yes-defaults.js","sourceRoot":"","sources":["../src/stable-yes-defaults.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAoB;IACzD,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO;IAEzB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IAE1B,OAAO,CAAC,QAAQ,GAAG;QACjB,QAAQ,EAAE,CAAC,0BAA0B,CAAC;QACtC,OAAO,EAAE,CAAC,0BAA0B,CAAC;QACrC,SAAS,EAAE,CAAC;gBACV,OAAO,EAAE,0BAA0B;gBACnC,WAAW,EAAE,SAAS;gBACtB,2DAA2D;gBAC3D,8BAA8B;gBAC9B,MAAM,EAAE;oBACN,aAAa,EAAE,GAAG;oBAClB,SAAS,EAAE,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"stable-yes-defaults.js","sourceRoot":"","sources":["../src/stable-yes-defaults.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAoB;IACzD,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO;IAEzB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IAE1B,OAAO,CAAC,QAAQ,GAAG;QACjB,QAAQ,EAAE,CAAC,0BAA0B,CAAC;QACtC,OAAO,EAAE,CAAC,0BAA0B,CAAC;QACrC,SAAS,EAAE,CAAC;gBACV,OAAO,EAAE,0BAA0B;gBACnC,WAAW,EAAE,SAAS;gBACtB,2DAA2D;gBAC3D,8BAA8B;gBAC9B,MAAM,EAAE;oBACN,aAAa,EAAE,GAAG;oBAClB,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;iBAC1D;aACF,CAAC;QACF,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC"}
|
package/lib/utils.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export declare const PROJECT_NAME_PATTERN: RegExp;
|
|
|
2
2
|
export declare function isValidProjectName(name: string): boolean;
|
|
3
3
|
export declare function generateToken(bytes?: number): string;
|
|
4
4
|
export declare function getDatabaseDisplayName(dialect: string): string;
|
|
5
|
+
export declare function getDatabasePersistenceLabel(dialect: string): string;
|
|
5
6
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,QAAqB,CAAC;AAEvD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAGD,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM,CAKxD;AAGD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,QAAqB,CAAC;AAEvD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAGD,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM,CAKxD;AAGD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAU9D;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGnE"}
|
package/lib/utils.js
CHANGED
|
@@ -18,8 +18,14 @@ export function getDatabaseDisplayName(dialect) {
|
|
|
18
18
|
mysql: 'MySQL',
|
|
19
19
|
pg: 'PostgreSQL',
|
|
20
20
|
mongodb: 'MongoDB',
|
|
21
|
-
redis: 'Redis'
|
|
21
|
+
redis: 'Redis',
|
|
22
|
+
memory: 'Memory'
|
|
22
23
|
};
|
|
23
24
|
return names[dialect] || dialect;
|
|
24
25
|
}
|
|
26
|
+
export function getDatabasePersistenceLabel(dialect) {
|
|
27
|
+
if (dialect === 'memory')
|
|
28
|
+
return 'Memory(仅进程内,不持久化)';
|
|
29
|
+
return `${getDatabaseDisplayName(dialect)} 持久化`;
|
|
30
|
+
}
|
|
25
31
|
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,uBAAuB;AACvB,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE;IAC9C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,YAAY;AACZ,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;QACd,EAAE,EAAE,YAAY;QAChB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,uBAAuB;AACvB,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE;IAC9C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,YAAY;AACZ,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;QACd,EAAE,EAAE,YAAY;QAChB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,OAAO,KAAK,CAAC,OAA6B,CAAC,IAAI,OAAO,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAe;IACzD,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,mBAAmB,CAAC;IACrD,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC;AAClD,CAAC"}
|
package/lib/workspace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAIA,OAAO,EAgBL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAOlC,eAAO,MAAM,gBAAgB,mDAAoD,CAAC;AAClF,eAAO,MAAM,eAAe,+FAAgG,CAAC;AA0E7H,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyenH"}
|
package/lib/workspace.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
|
-
import {
|
|
4
|
+
import { stringify } from 'yaml';
|
|
5
|
+
import { DATABASE_PACKAGES, DATABASE_DRIVER_VERSIONS, ZHIN_STACK_VERSIONS, collectAdapterPluginManifest, formatEnvValue, generateAdapterEnvVars, generateAIEnvVars, generateDatabaseEnvExample, getAdapterDependencies, getAIDependencies, getCreateBotBaseDependencies, CREATE_BOT_PACKAGE_MANAGER, getCreateBotPnpmWorkspaceConfig, } from '@zhin.js/scaffold-wizard';
|
|
5
6
|
import { createConfigFile, generateDatabaseEnvVars } from './config.js';
|
|
6
7
|
import { CREATE_NODE_REQUIREMENT } from './node-requirement.js';
|
|
7
8
|
import { SOUL_MD_TEMPLATE, TOOLS_MD_TEMPLATE, AGENTS_MD_TEMPLATE, ASSISTANT_PROFILE_YML_EXAMPLE } from './templates/bootstrap.js';
|
|
@@ -21,13 +22,44 @@ function getConfigFilename(format) {
|
|
|
21
22
|
switch (format) {
|
|
22
23
|
case 'json':
|
|
23
24
|
return 'zhin.config.json';
|
|
24
|
-
case 'toml':
|
|
25
|
-
return 'zhin.config.toml';
|
|
26
25
|
case 'yaml':
|
|
27
26
|
default:
|
|
28
27
|
return 'zhin.config.yml';
|
|
29
28
|
}
|
|
30
29
|
}
|
|
30
|
+
function renderDatabaseReadme(database, configFilename) {
|
|
31
|
+
if (!database)
|
|
32
|
+
return '';
|
|
33
|
+
if (database.dialect === 'sqlite') {
|
|
34
|
+
return `
|
|
35
|
+
## 🗄️ 数据库
|
|
36
|
+
|
|
37
|
+
当前使用 SQLite,文件路径在 \`${configFilename}\` 的 \`database.filename\` 中配置,不需要连接环境变量。
|
|
38
|
+
如需切换数据库,运行 \`npx zhin setup --database\`。
|
|
39
|
+
`;
|
|
40
|
+
}
|
|
41
|
+
if (database.dialect === 'memory') {
|
|
42
|
+
return `
|
|
43
|
+
## 🗄️ 数据库
|
|
44
|
+
|
|
45
|
+
当前使用进程内 Memory 数据库,仅适合测试,进程退出后数据不会保留。需要持久化时运行
|
|
46
|
+
\`npx zhin setup --database\` 切换到 SQLite 或网络数据库。
|
|
47
|
+
`;
|
|
48
|
+
}
|
|
49
|
+
return `
|
|
50
|
+
## 🗄️ 数据库
|
|
51
|
+
|
|
52
|
+
当前使用 \`${database.dialect}\`。连接字段在 \`${configFilename}\` 中引用环境变量,实际值保存在项目根目录 \`.env\`;
|
|
53
|
+
\`.env.example\` 列出了该方言需要的变量,可复制后填写。启动前先确认数据库服务已创建目标数据库并允许当前机器连接,然后执行:
|
|
54
|
+
|
|
55
|
+
\`\`\`bash
|
|
56
|
+
npx zhin config check
|
|
57
|
+
pnpm dev
|
|
58
|
+
\`\`\`
|
|
59
|
+
|
|
60
|
+
若端口、主机或数据库名为空,重新运行 \`npx zhin setup --database\`。PostgreSQL 的方言名固定为 \`pg\`。
|
|
61
|
+
`;
|
|
62
|
+
}
|
|
31
63
|
/** 未显式配置适配器时默认挂载 Sandbox(对齐 examples/test-bot 的 sandbox 实例) */
|
|
32
64
|
function resolveAdapterResult(options) {
|
|
33
65
|
if (options.adapters)
|
|
@@ -41,7 +73,7 @@ function resolveAdapterResult(options) {
|
|
|
41
73
|
// 对齐 examples/minimal-bot 的 Stable 黄金路径:命令保留 / 前缀(/hello)
|
|
42
74
|
config: {
|
|
43
75
|
commandPrefix: '/',
|
|
44
|
-
endpoints: [{
|
|
76
|
+
endpoints: [{ id: 'sandbox-bot', owner: 'sandbox-user' }],
|
|
45
77
|
},
|
|
46
78
|
}],
|
|
47
79
|
envVars: {},
|
|
@@ -52,18 +84,13 @@ export async function createWorkspace(projectPath, projectName, options) {
|
|
|
52
84
|
const adapters = resolveAdapterResult(options);
|
|
53
85
|
const aiEnabled = options.ai?.enabled === true;
|
|
54
86
|
await fs.ensureDir(projectPath);
|
|
55
|
-
await fs.writeFile(path.join(projectPath, '.
|
|
56
|
-
await fs.writeFile(path.join(projectPath, 'pnpm-workspace.yaml'), `packages:
|
|
57
|
-
- '.'
|
|
58
|
-
- 'plugins/*'
|
|
59
|
-
- 'packages/*'
|
|
60
|
-
`);
|
|
87
|
+
await fs.writeFile(path.join(projectPath, 'pnpm-workspace.yaml'), stringify(getCreateBotPnpmWorkspaceConfig()));
|
|
61
88
|
// 根据数据库类型添加相应依赖
|
|
62
89
|
const databaseDeps = {};
|
|
63
90
|
if (options.database) {
|
|
64
91
|
const dbPackage = DATABASE_PACKAGES[options.database.dialect];
|
|
65
92
|
if (dbPackage) {
|
|
66
|
-
databaseDeps[dbPackage] =
|
|
93
|
+
databaseDeps[dbPackage] = DATABASE_DRIVER_VERSIONS[dbPackage];
|
|
67
94
|
}
|
|
68
95
|
databaseDeps['@zhin.js/database'] = 'latest';
|
|
69
96
|
}
|
|
@@ -95,7 +122,7 @@ export async function createWorkspace(projectPath, projectName, options) {
|
|
|
95
122
|
name: projectName,
|
|
96
123
|
private: true,
|
|
97
124
|
version: '0.1.0',
|
|
98
|
-
packageManager:
|
|
125
|
+
packageManager: CREATE_BOT_PACKAGE_MANAGER,
|
|
99
126
|
type: 'module',
|
|
100
127
|
description: `${projectName} - Zhin.js Bot`,
|
|
101
128
|
scripts: {
|
|
@@ -123,7 +150,6 @@ export async function createWorkspace(projectPath, projectName, options) {
|
|
|
123
150
|
'typescript': '^6.0.0',
|
|
124
151
|
'pm2': '^6.0.0'
|
|
125
152
|
},
|
|
126
|
-
pnpm: getCreateBotPnpmConfig(aiEnabled),
|
|
127
153
|
engines: {
|
|
128
154
|
node: CREATE_NODE_REQUIREMENT
|
|
129
155
|
},
|
|
@@ -137,6 +163,7 @@ export async function createWorkspace(projectPath, projectName, options) {
|
|
|
137
163
|
features: [
|
|
138
164
|
{ package: '@zhin.js/page', api: '^1.0.0' },
|
|
139
165
|
{ package: '@zhin.js/layout', api: '^1.0.0' },
|
|
166
|
+
{ package: '@zhin.js/skill', api: '^1.0.0' },
|
|
140
167
|
...(aiEnabled ? [{ package: '@zhin.js/tool', api: '^1.0.0' }] : []),
|
|
141
168
|
...(aiEnabled ? [{ package: '@zhin.js/prompt-section', api: '^1.0.0' }] : []),
|
|
142
169
|
],
|
|
@@ -407,18 +434,18 @@ ${projectName}/
|
|
|
407
434
|
├── schema.json # 根插件配置契约(JSON Schema)
|
|
408
435
|
├── ${configFilename} # 顶层 http/database/ai + plugins.<instanceKey> 配置
|
|
409
436
|
├── commands/
|
|
410
|
-
│ ├── hello.ts
|
|
411
|
-
│ └── card.ts
|
|
437
|
+
│ ├── hello/index.ts # /hello 命令(defineCommand)
|
|
438
|
+
│ └── card/index.ts # /card -> component("status-card")
|
|
412
439
|
├── components/
|
|
413
|
-
│ └── status-card.ts
|
|
440
|
+
│ └── status-card/index.ts # defineComponent(),Satori 卡片
|
|
414
441
|
├── middlewares/ # 消息中间件(约定目录)
|
|
415
442
|
├── pages/
|
|
416
|
-
│ ├── index.tsx
|
|
417
|
-
│ ├──
|
|
418
|
-
│ └──
|
|
419
|
-
├── tools/ #
|
|
420
|
-
├── skills/ # SKILL.md
|
|
421
|
-
├── agents/ #
|
|
443
|
+
│ ├── index/index.tsx # Console 页面(/)
|
|
444
|
+
│ ├── nav/index.tsx # 最近插件导航布局
|
|
445
|
+
│ └── footer/index.tsx # 最近插件页脚布局
|
|
446
|
+
├── tools/ # <name>/index.ts AI 工具入口
|
|
447
|
+
├── skills/ # <name>/SKILL.md,可同目录放参考资料与脚本
|
|
448
|
+
├── agents/ # <name>/agent.json + 核心 Markdown 子 Agent 目录
|
|
422
449
|
├── plugins/ # 本地子插件 workspace(仅一级)
|
|
423
450
|
├── packages/ # 贡献给 Zhin 的 Feature workspace
|
|
424
451
|
├── package.json # zhin 清单(protocol 1 / features / plugins)
|
|
@@ -430,6 +457,8 @@ ${projectName}/
|
|
|
430
457
|
\`zhin.plugins\` 清单声明挂载的子插件(适配器)实例,实例配置写在 \`${configFilename}\` 的 \`plugins.<instanceKey>\`。
|
|
431
458
|
根项目默认声明 page/layout Feature;它们只提供发现与拓扑契约,浏览器构建器并不作为项目依赖安装。
|
|
432
459
|
|
|
460
|
+
${renderDatabaseReadme(options.database, configFilename)}
|
|
461
|
+
|
|
433
462
|
## 🚀 快速开始
|
|
434
463
|
|
|
435
464
|
### 开发模式
|
|
@@ -468,7 +497,7 @@ pnpm dev
|
|
|
468
497
|
|
|
469
498
|
### 新增命令
|
|
470
499
|
|
|
471
|
-
在 \`commands
|
|
500
|
+
在 \`commands/<name>/index.ts\` 创建入口文件(默认导出 \`defineCommand\`)。同目录其他文件是普通模块,可以被入口自由导入:
|
|
472
501
|
|
|
473
502
|
\`\`\`typescript
|
|
474
503
|
import { defineCommand } from 'zhin.js/command';
|
|
@@ -481,8 +510,8 @@ export default defineCommand({
|
|
|
481
510
|
|
|
482
511
|
### Console 页面与布局
|
|
483
512
|
|
|
484
|
-
在 \`pages
|
|
485
|
-
|
|
513
|
+
在 \`pages/<name>/index.tsx\` 新增页面:\`pages/index/index.tsx\` 映射到插件路径,其他页面映射为 \`/p-<name>\`。
|
|
514
|
+
\`pages/nav/index.tsx\` 与 \`pages/footer/index.tsx\` 分别覆盖当前插件及其子插件的最近导航、页脚布局。
|
|
486
515
|
页面元数据必须用 \`@zhin.js/console-contract\` 的 \`definePage\` 声明;默认示例不依赖 React 或浏览器构建工具。
|
|
487
516
|
|
|
488
517
|
### 接入更多平台
|
|
@@ -494,7 +523,7 @@ npx zhin setup --adapters # 选择平台并写入 plugins.<instanceKey> 配置
|
|
|
494
523
|
## 🤖 AI Agent
|
|
495
524
|
|
|
496
525
|
如果初始化时启用了 AI,配置会写入 \`${configFilename}\` 的 \`ai:\` 段,API Key 会写入 \`.env\`。
|
|
497
|
-
启用后 \`tools
|
|
526
|
+
启用后 \`tools/<name>/index.ts\` 默认导出的 \`defineAgentTool\` 会被 Agent 自动发现;辅助模块与入口共置在命名目录中。
|
|
498
527
|
|
|
499
528
|
## ✅ 验证项目
|
|
500
529
|
|
|
@@ -521,12 +550,13 @@ async function createRuntimeProjectFiles(projectPath, projectName, options) {
|
|
|
521
550
|
fs.ensureDir(path.join(projectPath, 'pages')),
|
|
522
551
|
fs.ensureDir(path.join(projectPath, 'skills')),
|
|
523
552
|
fs.ensureDir(path.join(projectPath, 'data')),
|
|
524
|
-
...['agents', '
|
|
553
|
+
...['agents', 'hooks', 'middlewares', 'plugins', 'packages', 'prompt-sections', 'tools'].map(async (directory) => {
|
|
525
554
|
await fs.outputFile(path.join(projectPath, directory, '.gitkeep'), '');
|
|
526
555
|
}),
|
|
527
556
|
]);
|
|
528
557
|
// 创建 .env 文件(使用简单的变量名)
|
|
529
558
|
const databaseEnvVars = options.database ? generateDatabaseEnvVars(options.database) : '';
|
|
559
|
+
const databaseEnvExample = options.database ? generateDatabaseEnvExample(options.database) : '';
|
|
530
560
|
const adapterEnvVars = options.adapters ? generateAdapterEnvVars(options.adapters) : '';
|
|
531
561
|
const aiEnvVars = options.ai ? generateAIEnvVars(options.ai) : '';
|
|
532
562
|
await fs.writeFile(path.join(projectPath, '.env'), `# HTTP 服务配置(Web 控制台 Token 认证)
|
|
@@ -541,7 +571,7 @@ DEBUG=false
|
|
|
541
571
|
NODE_ENV=production
|
|
542
572
|
`);
|
|
543
573
|
await fs.writeFile(path.join(projectPath, '.env.example'), `# HTTP 服务配置(复制为 .env 后填写真实 Token)
|
|
544
|
-
HTTP_TOKEN=change-me
|
|
574
|
+
HTTP_TOKEN=change-me${databaseEnvExample}
|
|
545
575
|
`);
|
|
546
576
|
// tsconfig.json(独立项目,对齐 examples/minimal-bot 的编译选项)
|
|
547
577
|
await fs.writeJson(path.join(projectPath, 'tsconfig.json'), {
|
|
@@ -555,6 +585,8 @@ HTTP_TOKEN=change-me
|
|
|
555
585
|
"forceConsistentCasingInFileNames": true,
|
|
556
586
|
"resolveJsonModule": true,
|
|
557
587
|
"isolatedModules": true,
|
|
588
|
+
"jsx": "react-jsx",
|
|
589
|
+
"jsxImportSource": "zhin.js",
|
|
558
590
|
"noEmit": true,
|
|
559
591
|
"types": ["node"]
|
|
560
592
|
},
|
|
@@ -568,6 +600,9 @@ HTTP_TOKEN=change-me
|
|
|
568
600
|
"middlewares/**/*.tsx",
|
|
569
601
|
"tools/**/*.ts",
|
|
570
602
|
"tools/**/*.tsx",
|
|
603
|
+
"hooks/**/*.ts",
|
|
604
|
+
"agents/**/*.ts",
|
|
605
|
+
"skills/**/*.ts",
|
|
571
606
|
"pages/**/*.ts",
|
|
572
607
|
"pages/**/*.tsx"
|
|
573
608
|
],
|
|
@@ -594,7 +629,7 @@ export default definePlugin({
|
|
|
594
629
|
}, { spaces: 2 });
|
|
595
630
|
// pages/ follows the Feature conventions. These components deliberately
|
|
596
631
|
// return text, keeping the initial IM project free of a browser UI runtime.
|
|
597
|
-
await fs.
|
|
632
|
+
await fs.outputFile(path.join(projectPath, 'pages', 'index', 'index.tsx'), `import { definePage } from '@zhin.js/console-contract';
|
|
598
633
|
|
|
599
634
|
export const meta = definePage({
|
|
600
635
|
title: '${projectName}',
|
|
@@ -605,20 +640,20 @@ export default function HomePage() {
|
|
|
605
640
|
return 'Zhin Console is ready. Add pages in pages/ to extend this plugin.';
|
|
606
641
|
}
|
|
607
642
|
`);
|
|
608
|
-
await fs.
|
|
643
|
+
await fs.outputFile(path.join(projectPath, 'pages', 'nav', 'index.tsx'), `import type { NavSlotProps } from '@zhin.js/console-contract';
|
|
609
644
|
|
|
610
645
|
export default function ProjectNavigation({ current }: NavSlotProps) {
|
|
611
646
|
return current ? \`Current page: \${current}\` : '${projectName}';
|
|
612
647
|
}
|
|
613
648
|
`);
|
|
614
|
-
await fs.
|
|
649
|
+
await fs.outputFile(path.join(projectPath, 'pages', 'footer', 'index.tsx'), `import type { FooterSlotProps } from '@zhin.js/console-contract';
|
|
615
650
|
|
|
616
651
|
export default function ProjectFooter({ owner }: FooterSlotProps) {
|
|
617
652
|
return \`Plugin: \${owner}\`;
|
|
618
653
|
}
|
|
619
654
|
`);
|
|
620
|
-
// commands/hello.ts
|
|
621
|
-
await fs.
|
|
655
|
+
// commands/hello/index.ts
|
|
656
|
+
await fs.outputFile(path.join(projectPath, 'commands', 'hello', 'index.ts'), `import { defineCommand } from 'zhin.js/command';
|
|
622
657
|
|
|
623
658
|
export default defineCommand({
|
|
624
659
|
description: '打招呼',
|
|
@@ -629,8 +664,8 @@ export default defineCommand({
|
|
|
629
664
|
].join('\\n'),
|
|
630
665
|
});
|
|
631
666
|
`);
|
|
632
|
-
// commands/card.ts(组件渲染示例,对齐 examples/minimal-bot)
|
|
633
|
-
await fs.
|
|
667
|
+
// commands/card/index.ts(组件渲染示例,对齐 examples/minimal-bot)
|
|
668
|
+
await fs.outputFile(path.join(projectPath, 'commands', 'card', 'index.ts'), `import { defineCommand } from 'zhin.js/command';
|
|
634
669
|
import { component } from 'zhin.js/core/runtime';
|
|
635
670
|
|
|
636
671
|
export default defineCommand({
|
|
@@ -647,8 +682,8 @@ export default defineCommand({
|
|
|
647
682
|
},
|
|
648
683
|
});
|
|
649
684
|
`);
|
|
650
|
-
// components/status-card.ts
|
|
651
|
-
await fs.
|
|
685
|
+
// components/status-card/index.ts
|
|
686
|
+
await fs.outputFile(path.join(projectPath, 'components', 'status-card', 'index.ts'), `import { defineComponent } from 'zhin.js/component';
|
|
652
687
|
import { raw } from 'zhin.js/core/runtime';
|
|
653
688
|
import {
|
|
654
689
|
Card,
|
|
@@ -693,10 +728,10 @@ export default defineComponent<StatusCardProps>({
|
|
|
693
728
|
},
|
|
694
729
|
});
|
|
695
730
|
`);
|
|
696
|
-
// tools/echo.ts(AI 启用时生成,defineAgentTool 约定目录)
|
|
731
|
+
// tools/echo/index.ts(AI 启用时生成,defineAgentTool 约定目录)
|
|
697
732
|
if (aiEnabled) {
|
|
698
|
-
await fs.ensureDir(path.join(projectPath, 'tools'));
|
|
699
|
-
await fs.writeFile(path.join(projectPath, 'tools', 'echo.ts'), `import { defineAgentTool } from '@zhin.js/tool';
|
|
733
|
+
await fs.ensureDir(path.join(projectPath, 'tools', 'echo'));
|
|
734
|
+
await fs.writeFile(path.join(projectPath, 'tools', 'echo', 'index.ts'), `import { defineAgentTool } from '@zhin.js/tool';
|
|
700
735
|
import { z } from 'zod';
|
|
701
736
|
|
|
702
737
|
export default defineAgentTool<{ message: string }>({
|
|
@@ -750,7 +785,7 @@ export default defineAgentTool<{ message: string }>({
|
|
|
750
785
|
- 你不执行危险的 bash 命令
|
|
751
786
|
`);
|
|
752
787
|
// 生活助手命令与工具(工具需 AI 启用才挂载 @zhin.js/tool feature)
|
|
753
|
-
await fs.
|
|
788
|
+
await fs.outputFile(path.join(projectPath, 'commands', 'remind', 'index.ts'), `import { defineCommand } from 'zhin.js/command';
|
|
754
789
|
|
|
755
790
|
export default defineCommand({
|
|
756
791
|
description: '设置提醒',
|
|
@@ -758,8 +793,8 @@ export default defineCommand({
|
|
|
758
793
|
});
|
|
759
794
|
`);
|
|
760
795
|
if (aiEnabled) {
|
|
761
|
-
await fs.ensureDir(path.join(projectPath, 'tools'));
|
|
762
|
-
await fs.writeFile(path.join(projectPath, 'tools', 'get_current_time.ts'), `import { defineAgentTool } from '@zhin.js/tool';
|
|
796
|
+
await fs.ensureDir(path.join(projectPath, 'tools', 'get_current_time'));
|
|
797
|
+
await fs.writeFile(path.join(projectPath, 'tools', 'get_current_time', 'index.ts'), `import { defineAgentTool } from '@zhin.js/tool';
|
|
763
798
|
import { z } from 'zod';
|
|
764
799
|
|
|
765
800
|
export default defineAgentTool({
|
package/lib/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-zhin-app",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Create a new zhin bot project",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"fs-extra": "^11.4.0",
|
|
16
16
|
"inquirer": "^14.0.2",
|
|
17
17
|
"yaml": "^2.9.0",
|
|
18
|
-
"@zhin.js/scaffold-wizard": "1.1.
|
|
18
|
+
"@zhin.js/scaffold-wizard": "1.1.2"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/fs-extra": "^11.0.4",
|
|
@@ -35,12 +35,12 @@ tags:
|
|
|
35
35
|
|
|
36
36
|
| 能力 | 做法 | 目录 / 位置 |
|
|
37
37
|
|------|------|-------------|
|
|
38
|
-
| 聊天命令 | `defineCommand()` default export | `commands
|
|
39
|
-
| AI 工具 | `defineAgentTool()` | `tools
|
|
40
|
-
| 中间件 | `defineMiddleware()` | `middlewares
|
|
41
|
-
| 组件 | `defineComponent()` | `components
|
|
38
|
+
| 聊天命令 | `defineCommand()` default export | `commands/**/*/index.ts`(`$` 入口路径即路由) |
|
|
39
|
+
| AI 工具 | `defineAgentTool()` | `tools/<name>/index.ts` |
|
|
40
|
+
| 中间件 | `defineMiddleware()` | `middlewares/*/index.ts` |
|
|
41
|
+
| 组件 | `defineComponent()` | `components/*/index.tsx` |
|
|
42
42
|
| 定时任务 | `scheduleHostToken.register(...)` + `lifecycle` | `plugin.ts` setup |
|
|
43
|
-
| 控制台页 | `definePage()` | `pages
|
|
43
|
+
| 控制台页 | `definePage()` | `pages/*/index.tsx` |
|
|
44
44
|
| 单文件 demo | `setup({ addCommand })` | 仅 `examples/single-file-bot` 风格 |
|
|
45
45
|
|
|
46
46
|
3. 确认 `package.json#zhin.features` 已挂对应 Feature(如 `@zhin.js/command`)
|
|
@@ -53,7 +53,7 @@ tags:
|
|
|
53
53
|
- **出站**:走统一发送链(`$reply` / Adapter.sendMessage),禁止直调平台 Bot
|
|
54
54
|
- 本地导入带 `.js` 扩展名
|
|
55
55
|
|
|
56
|
-
**命令示例** `commands/greet/[name].ts`:
|
|
56
|
+
**命令示例** `commands/greet/[name]/index.ts`:
|
|
57
57
|
|
|
58
58
|
```typescript
|
|
59
59
|
import { defineCommand } from 'zhin.js/command';
|
|
@@ -69,7 +69,7 @@ export default defineCommand({
|
|
|
69
69
|
});
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
**工具示例** `tools/get_weather.ts`:
|
|
72
|
+
**工具示例** `tools/get_weather/index.ts`:
|
|
73
73
|
|
|
74
74
|
```typescript
|
|
75
75
|
import { defineAgentTool } from 'zhin.js/tool';
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
{
|
|
3
3
|
"id": 1,
|
|
4
4
|
"prompt": "帮我在 my-plugin 里加一个 greet 命令,用户发 greet 张三 就回复 Hello 张三",
|
|
5
|
-
"expected": "
|
|
5
|
+
"expected": "定位 commands 约定目录、用 defineCommand 默认导出、提到 build/test 验证"
|
|
6
6
|
},
|
|
7
7
|
{
|
|
8
8
|
"id": 2,
|
|
9
9
|
"prompt": "给插件加一个每天 9 点执行的定时任务,打印日志",
|
|
10
|
-
"expected": "
|
|
10
|
+
"expected": "scheduleHostToken、6 段 Cron 表达式、lifecycle 清理"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
@@ -78,13 +78,13 @@ plugins/{name}/
|
|
|
78
78
|
|
|
79
79
|
| 目录 | API |
|
|
80
80
|
|------|-----|
|
|
81
|
-
| `commands
|
|
82
|
-
| `middlewares
|
|
83
|
-
| `components
|
|
84
|
-
| `tools
|
|
85
|
-
| `pages
|
|
86
|
-
| `skills/<name>/SKILL.md` | Markdown Skill |
|
|
87
|
-
| `agents/<name
|
|
81
|
+
| `commands/**/*/index.ts` | `defineCommand()`;未加 `$` 的文件是普通依赖模块 |
|
|
82
|
+
| `middlewares/*/index.ts` | `defineMiddleware()` |
|
|
83
|
+
| `components/*/index.tsx` | `defineComponent()` |
|
|
84
|
+
| `tools/<name>/index.ts` | `defineAgentTool()` |
|
|
85
|
+
| `pages/*/index.tsx` | `definePage()` |
|
|
86
|
+
| `skills/<name>/SKILL.md` | Markdown Skill 入口 |
|
|
87
|
+
| `agents/<name>/` | `agent.json` + `system.md` + `boundaries.md` + `conventions.md` 子 Agent |
|
|
88
88
|
|
|
89
89
|
### 第 3 步:生成 package.json
|
|
90
90
|
|
|
@@ -142,7 +142,7 @@ export default definePlugin({
|
|
|
142
142
|
|
|
143
143
|
### 第 5 步:生成首个命令
|
|
144
144
|
|
|
145
|
-
`commands/hello.ts`(文件路径即路由 `hello`):
|
|
145
|
+
`commands/hello/index.ts`(文件路径即路由 `hello`):
|
|
146
146
|
|
|
147
147
|
```typescript
|
|
148
148
|
import { defineCommand } from 'zhin.js/command';
|
|
@@ -155,7 +155,7 @@ export default defineCommand({
|
|
|
155
155
|
});
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
-
带参数用 Next.js
|
|
158
|
+
带参数用 Next.js 风格方括号目录,例如 `commands/hello/[[name]]/index.ts` → `hello [name]`(可选);类型与默认值在 `defineCommand({ params })` 中声明(如 `params: { name: { type: 'string', default: 'world' } }`),在 `execute` 里读 `params.name`。必需参数用 `[name]/index.ts`,捕获所有用 `[...name]/index.ts`(运行时 `params.name` 为 `string[]`)。
|
|
159
159
|
|
|
160
160
|
### 第 6 步:生成 tsconfig.json
|
|
161
161
|
|
|
@@ -50,7 +50,7 @@ plugin.addCommand(new MessageCommand('hi').action(() => 'hi'))
|
|
|
50
50
|
// ✅ Runtime
|
|
51
51
|
import { definePlugin } from 'zhin.js'
|
|
52
52
|
export default definePlugin({ name: 'my-plugin', setup() {} })
|
|
53
|
-
// + commands/hi.ts → defineCommand(...)
|
|
53
|
+
// + commands/hi/index.ts → defineCommand(...)
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
### 2. 生命周期与资源
|
|
@@ -69,7 +69,7 @@ export default definePlugin({ name: 'my-plugin', setup() {} })
|
|
|
69
69
|
|
|
70
70
|
- 至少覆盖核心 `execute` 路径
|
|
71
71
|
- README 写明命令触发方式与 Feature 依赖
|
|
72
|
-
-
|
|
72
|
+
- 带能力目录的包检查 `files` / `prepublishOnly`(`pnpm check:plugin-capability-publish`)
|
|
73
73
|
|
|
74
74
|
## 审查流程
|
|
75
75
|
|
|
@@ -48,7 +48,7 @@ pnpm test:coverage
|
|
|
48
48
|
|
|
49
49
|
```typescript
|
|
50
50
|
import { describe, it, expect } from 'vitest';
|
|
51
|
-
import hello from '../commands/hello.js';
|
|
51
|
+
import hello from '../commands/hello/index.js';
|
|
52
52
|
|
|
53
53
|
describe('commands/hello', () => {
|
|
54
54
|
it('returns greeting', async () => {
|
|
@@ -69,7 +69,7 @@ describe('commands/hello', () => {
|
|
|
69
69
|
|
|
70
70
|
```typescript
|
|
71
71
|
import { describe, it, expect } from 'vitest';
|
|
72
|
-
import weather from '../tools/get_weather.js';
|
|
72
|
+
import weather from '../tools/get_weather/index.js';
|
|
73
73
|
|
|
74
74
|
describe('tools/get_weather', () => {
|
|
75
75
|
it('formats city weather', async () => {
|
package/lib/read-existing.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { type InitOptions } from '@zhin.js/scaffold-wizard';
|
|
2
|
-
export interface ExistingProjectState {
|
|
3
|
-
/** 从现有配置推断的 InitOptions 默认值 */
|
|
4
|
-
options: Partial<InitOptions>;
|
|
5
|
-
/** 现有 plugins 列表(用于 in-place 时保留) */
|
|
6
|
-
existingPlugins: string[];
|
|
7
|
-
/** 现有 bots 配置(用于 in-place 时保留) */
|
|
8
|
-
existingBots: any[];
|
|
9
|
-
/** 检测到的配置格式 */
|
|
10
|
-
configFormat: 'yaml' | 'json' | 'toml';
|
|
11
|
-
/** 配置文件路径 */
|
|
12
|
-
configPath: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* 从现有项目目录读取配置与 .env,返回用于 in-place 的默认选项
|
|
16
|
-
*/
|
|
17
|
-
export declare function readExistingProjectConfig(cwd: string): Promise<ExistingProjectState | null>;
|
|
18
|
-
//# sourceMappingURL=read-existing.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-existing.d.ts","sourceRoot":"","sources":["../src/read-existing.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,qCAAqC;IACrC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kCAAkC;IAClC,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,eAAe;IACf,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAyED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA+CjG"}
|
package/lib/read-existing.js
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 读取已有 Zhin 项目的配置与 .env,用于 in-place 重新配置时回显默认值
|
|
3
|
-
*/
|
|
4
|
-
import fs from 'fs-extra';
|
|
5
|
-
import path from 'path';
|
|
6
|
-
import { loadProjectConfig, } from '@zhin.js/scaffold-wizard';
|
|
7
|
-
function parseEnvFile(content) {
|
|
8
|
-
const out = {};
|
|
9
|
-
for (const line of content.split('\n')) {
|
|
10
|
-
const trimmed = line.trim();
|
|
11
|
-
if (!trimmed || trimmed.startsWith('#'))
|
|
12
|
-
continue;
|
|
13
|
-
const eq = trimmed.indexOf('=');
|
|
14
|
-
if (eq <= 0)
|
|
15
|
-
continue;
|
|
16
|
-
const key = trimmed.slice(0, eq).trim();
|
|
17
|
-
const value = trimmed.slice(eq + 1).trim();
|
|
18
|
-
const unquoted = value.replace(/^["']|["']$/g, '');
|
|
19
|
-
out[key] = unquoted;
|
|
20
|
-
}
|
|
21
|
-
return out;
|
|
22
|
-
}
|
|
23
|
-
function mapDatabaseFromConfig(db) {
|
|
24
|
-
if (!db || !db.dialect)
|
|
25
|
-
return undefined;
|
|
26
|
-
return {
|
|
27
|
-
dialect: db.dialect,
|
|
28
|
-
filename: db.filename,
|
|
29
|
-
mode: db.mode,
|
|
30
|
-
host: db.host,
|
|
31
|
-
port: db.port,
|
|
32
|
-
user: db.user,
|
|
33
|
-
password: db.password,
|
|
34
|
-
database: db.database,
|
|
35
|
-
url: db.url,
|
|
36
|
-
dbName: db.dbName,
|
|
37
|
-
socket: db.socket,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
function mapAIFromConfig(ai, env) {
|
|
41
|
-
if (!ai)
|
|
42
|
-
return undefined;
|
|
43
|
-
const enabled = ai.enabled !== false;
|
|
44
|
-
if (!enabled)
|
|
45
|
-
return { enabled: false };
|
|
46
|
-
const agentProvider = ai.agents?.zhin?.provider ?? ai.defaultProvider;
|
|
47
|
-
const providers = {};
|
|
48
|
-
if (ai.providers) {
|
|
49
|
-
for (const [name, p] of Object.entries(ai.providers)) {
|
|
50
|
-
if (!p)
|
|
51
|
-
continue;
|
|
52
|
-
providers[name] = {
|
|
53
|
-
sdk: p.sdk,
|
|
54
|
-
apiKey: p.apiKey,
|
|
55
|
-
host: p.host,
|
|
56
|
-
baseUrl: p.baseUrl,
|
|
57
|
-
models: p.models,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
enabled: true,
|
|
63
|
-
agentProvider,
|
|
64
|
-
providers: Object.keys(providers).length ? providers : undefined,
|
|
65
|
-
trigger: ai.trigger
|
|
66
|
-
? {
|
|
67
|
-
respondToAt: ai.trigger.respondToAt !== false,
|
|
68
|
-
respondToPrivate: ai.trigger.respondToPrivate !== false,
|
|
69
|
-
prefixes: Array.isArray(ai.trigger.prefixes) ? ai.trigger.prefixes : ['#', 'AI:'],
|
|
70
|
-
ignorePrefixes: Array.isArray(ai.trigger.ignorePrefixes) ? ai.trigger.ignorePrefixes : ['/', '!', '!'],
|
|
71
|
-
timeout: typeof ai.trigger.timeout === 'number' ? ai.trigger.timeout : 60_000,
|
|
72
|
-
}
|
|
73
|
-
: undefined,
|
|
74
|
-
sessions: ai.sessions,
|
|
75
|
-
context: ai.context,
|
|
76
|
-
agent: ai.agent,
|
|
77
|
-
memoryMcp: ai.memoryMcp === true,
|
|
78
|
-
mcpServers: Array.isArray(ai.mcpServers) ? ai.mcpServers : [],
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* 从现有项目目录读取配置与 .env,返回用于 in-place 的默认选项
|
|
83
|
-
*/
|
|
84
|
-
export async function readExistingProjectConfig(cwd) {
|
|
85
|
-
const loaded = loadProjectConfig(cwd);
|
|
86
|
-
if (loaded.status !== 'loaded' || !loaded.configPath || !loaded.format)
|
|
87
|
-
return null;
|
|
88
|
-
if (loaded.format === 'ts')
|
|
89
|
-
return null;
|
|
90
|
-
const configPath = loaded.configPath;
|
|
91
|
-
const config = loaded.config;
|
|
92
|
-
const envPath = path.join(cwd, '.env');
|
|
93
|
-
let env = {};
|
|
94
|
-
if (await fs.pathExists(envPath)) {
|
|
95
|
-
const envContent = await fs.readFile(envPath, 'utf-8');
|
|
96
|
-
env = parseEnvFile(envContent);
|
|
97
|
-
}
|
|
98
|
-
const configFormat = loaded.format;
|
|
99
|
-
// 新 runtime:plugins 为 <instanceKey>: <配置> 映射;legacy 为字符串数组
|
|
100
|
-
const existingPlugins = Array.isArray(config.plugins)
|
|
101
|
-
? config.plugins
|
|
102
|
-
: config.plugins && typeof config.plugins === 'object'
|
|
103
|
-
? Object.keys(config.plugins)
|
|
104
|
-
: [];
|
|
105
|
-
const existingBots = [];
|
|
106
|
-
// 新格式下包名记录于 package.json zhin.plugins 清单,配置文件仅含 instanceKey,
|
|
107
|
-
// 此处不再反推适配器包名(回显默认值留空即可)
|
|
108
|
-
const envVars = { ...env };
|
|
109
|
-
const options = {
|
|
110
|
-
config: configFormat,
|
|
111
|
-
httpToken: env.HTTP_TOKEN || env.token || '',
|
|
112
|
-
database: mapDatabaseFromConfig(config.database),
|
|
113
|
-
ai: mapAIFromConfig(config.ai, env),
|
|
114
|
-
adapters: {
|
|
115
|
-
packages: [],
|
|
116
|
-
plugins: [],
|
|
117
|
-
instances: [],
|
|
118
|
-
envVars,
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
return {
|
|
122
|
-
options,
|
|
123
|
-
existingPlugins,
|
|
124
|
-
existingBots,
|
|
125
|
-
configFormat,
|
|
126
|
-
configPath,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=read-existing.js.map
|
package/lib/read-existing.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-existing.js","sourceRoot":"","sources":["../src/read-existing.ts"],"names":[],"mappings":"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"}
|