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 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 / TOML)
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/ # 可选 AI tools(默认空)
187
- ├── skills/ # SKILL.md 能力目录
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 # 配置文件(可选 YAML / JSON / TOML)
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 dev", // 开发模式
218
- "start": "zhin start", // 生产启动
219
- "daemon": "zhin start --daemon", // 后台运行
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
- 脚手架当前支持 YAML、JSON、TOML。`-y` 默认生成 `zhin.config.yml`(节选):
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
- ai:
243
- providers:
244
- ollama:
245
- sdk: ollama
246
- host: http://127.0.0.1:11434
247
- agents:
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
- 交互式选择 SQLite 等数据库时会追加 `database:` 与 `inbox: enabled: true`。Remote Console 用法见 [docs/console-remote.md](../../docs/console-remote.md);Stable 手测见 [examples/minimal-bot/README.md](../../examples/minimal-bot/README.md)。
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
 
@@ -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,CAS3G"}
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 = (format === 'json' || format === 'toml' ? format : 'yaml');
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
- : configFormat === 'toml'
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,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAA6B,CAAC;IAC5G,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,YAAY,KAAK,MAAM;QACtC,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,YAAY,KAAK,MAAM;YACvB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,iBAAiB,CAAC;IACxB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,sBAAsB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AAC9F,CAAC"}
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 ?? options.ai.defaultProvider;
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('SQLite 持久化')}`);
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: [{ context: 'sandbox', id: 'sandbox-bot', owner: 'sandbox-user' }],
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,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;iBAC9E;aACF,CAAC;QACF,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC"}
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
@@ -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,CAS9D"}
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;KACf,CAAC;IACF,OAAO,KAAK,CAAC,OAA6B,CAAC,IAAI,OAAO,CAAC;AACzD,CAAC"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,EAaL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAOlC,eAAO,MAAM,gBAAgB,mDAAoD,CAAC;AAClF,eAAO,MAAM,eAAe,+FAAgG,CAAC;AA2C7H,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2enH"}
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 { DATABASE_PACKAGES, ZHIN_STACK_VERSIONS, collectAdapterPluginManifest, formatEnvValue, generateAdapterEnvVars, generateAIEnvVars, getAdapterDependencies, getAIDependencies, getCreateBotBaseDependencies, CREATE_BOT_NPMRC, getCreateBotPnpmConfig, } from '@zhin.js/scaffold-wizard';
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: [{ context: 'sandbox', id: 'sandbox-bot', owner: 'sandbox-user' }],
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, '.npmrc'), CREATE_BOT_NPMRC);
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] = 'latest';
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: 'pnpm@9.0.2',
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 # /hello 命令(defineCommand)
411
- │ └── card.ts # /card -> component("status-card")
437
+ │ ├── hello/index.ts # /hello 命令(defineCommand)
438
+ │ └── card/index.ts # /card -> component("status-card")
412
439
  ├── components/
413
- │ └── status-card.ts # defineComponent(),Satori 卡片
440
+ │ └── status-card/index.ts # defineComponent(),Satori 卡片
414
441
  ├── middlewares/ # 消息中间件(约定目录)
415
442
  ├── pages/
416
- │ ├── index.tsx # Console 页面(/)
417
- │ ├── $nav.tsx # 最近插件导航布局
418
- │ └── $footer.tsx # 最近插件页脚布局
419
- ├── tools/ # AI 工具(启用 AI 后自动发现)
420
- ├── skills/ # SKILL.md 能力目录
421
- ├── agents/ # *.agent.md Agent 目录
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/\` 下创建 \`.ts\` 文件(默认导出 \`defineCommand\`):
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/\` 下新增页面:\`index.tsx\` 映射到插件路径,其他页面映射为 \`/p-<name>\`。
485
- \`$nav.tsx\` 与 \`$footer.tsx\` 分别覆盖当前插件及其子插件的最近导航、页脚布局。
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/\` 约定目录下的 \`defineAgentTool\` 工具会被 Agent 自动发现。
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', 'middlewares', 'tools', 'plugins', 'packages'].map(async (directory) => {
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.writeFile(path.join(projectPath, 'pages', 'index.tsx'), `import { definePage } from '@zhin.js/console-contract';
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.writeFile(path.join(projectPath, 'pages', '$nav.tsx'), `import type { NavSlotProps } from '@zhin.js/console-contract';
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.writeFile(path.join(projectPath, 'pages', '$footer.tsx'), `import type { FooterSlotProps } from '@zhin.js/console-contract';
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.writeFile(path.join(projectPath, 'commands', 'hello.ts'), `import { defineCommand } from 'zhin.js/command';
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.writeFile(path.join(projectPath, 'commands', 'card.ts'), `import { defineCommand } from 'zhin.js/command';
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.writeFile(path.join(projectPath, 'components', 'status-card.ts'), `import { defineComponent } from 'zhin.js/component';
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.writeFile(path.join(projectPath, 'commands', 'remind.ts'), `import { defineCommand } from 'zhin.js/command';
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({
@@ -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.0",
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.0"
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/**/*.ts`(路径即路由) |
39
- | AI 工具 | `defineAgentTool()` | `tools/*.ts` 或 `agent/tools/*.ts` |
40
- | 中间件 | `defineMiddleware()` | `middlewares/*.ts` |
41
- | 组件 | `defineComponent()` | `components/*.tsx` |
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/*.tsx` |
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": "定位插件入口、用 MessageCommand 注册、提到 build/test 验证"
5
+ "expected": "定位 commands 约定目录、用 defineCommand 默认导出、提到 build/test 验证"
6
6
  },
7
7
  {
8
8
  "id": 2,
9
9
  "prompt": "给插件加一个每天 9 点执行的定时任务,打印日志",
10
- "expected": "addCron、declareConfig 或 Cron 表达式、清理函数"
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/**/*.ts` | `defineCommand()` |
82
- | `middlewares/*.ts` | `defineMiddleware()` |
83
- | `components/*.tsx` | `defineComponent()` |
84
- | `tools/*.ts` | `defineAgentTool()` |
85
- | `pages/*.tsx` | `definePage()` |
86
- | `skills/<name>/SKILL.md` | Markdown Skill |
87
- | `agents/<name>.agent.md` | Markdown Agent |
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 风格方括号文件名,例如 `commands/hello/[[name]].ts` → `hello [name]`(可选);类型与默认值在 `defineCommand({ params })` 中声明(如 `params: { name: { type: 'string', default: 'world' } }`),在 `execute` 里读 `params.name`。必需参数用单方括号 `[name].ts`,捕获所有用 `[...name].ts`(运行时 `params.name` 为 `string[]`)。
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
- - 带 `agent/` 的包检查 `files` / `prepublishOnly`(`pnpm check:plugin-agent-publish`)
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 () => {
@@ -173,4 +173,4 @@ Job/包:… | 首条错误:…
173
173
  |------|------|
174
174
  | Issue/PR 正文 | skill `github` |
175
175
  | ADR | `docs/adr/` |
176
- | 记忆落盘 | `examples/full-bot/skills/memory-consolidate/` |
176
+ | 记忆落盘 | `examples/full-bot/skills/memory-consolidate/SKILL.md` |
@@ -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"}
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-existing.js","sourceRoot":"","sources":["../src/read-existing.ts"],"names":[],"mappings":"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"}