create-zhin-app 1.0.59 → 1.0.61

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
@@ -177,14 +177,18 @@ npm create zhin-app experimental-bot
177
177
 
178
178
  ```
179
179
  my-awesome-bot/
180
- ├── src/ # 应用源代码
181
- │ └── plugins/ # 本地插件目录
182
- │ └── example.ts # 示例插件
183
- ├── client/ # 客户端页面
184
- │ └── index.tsx # 示例页面
180
+ ├── plugin.ts # 根 Plugin Runtime 入口
181
+ ├── schema.json # 根插件配置 JSON Schema
182
+ ├── commands/ # 消息命令
183
+ ├── components/ # 消息组件
184
+ ├── middlewares/ # 消息中间件
185
+ ├── tools/ # 可选 AI tools(默认空)
186
+ ├── skills/ # SKILL.md 能力目录
187
+ ├── agents/ # 可选 Agent 定义(默认空)
188
+ ├── pages/ # Console page + $nav/$footer 布局
189
+ ├── plugins/ # 仅一级的本地子插件 workspace
190
+ ├── packages/ # 提供给 Zhin 的 Feature workspace
185
191
  ├── data/ # 数据存储目录
186
- ├── plugins/ # 插件开发目录(独立包)
187
- │ └── .gitkeep
188
192
  ├── zhin.config.yml # 配置文件(可选 YAML / JSON / TOML)
189
193
  ├── package.json # 根 package.json(包含依赖和脚本)
190
194
  ├── tsconfig.json # TypeScript 根配置
@@ -201,7 +205,8 @@ my-awesome-bot/
201
205
  ```yaml
202
206
  packages:
203
207
  - '.' # 根目录即为主应用
204
- - 'plugins/*' # plugins 下的所有插件包
208
+ - 'plugins/*' # plugins 下的一级子插件包
209
+ - 'packages/*' # 本地 Feature 包
205
210
  ```
206
211
 
207
212
  **根 package.json 脚本:**
@@ -6,5 +6,5 @@ export declare const SOUL_MD_TEMPLATE = "# Soul\n\nAction-oriented AI assistant
6
6
  export declare const TOOLS_MD_TEMPLATE = "# Tools Guide\n\n- After skill activation, call its declared tools immediately \u2014 no explaining or waiting\n- Answers must be based on actual tool results, never guess\n- On tool failure, try alternatives instead of reporting raw errors\n- Use `spawn_task` for complex/long-running background tasks\n- Persist important info to `memory/MEMORY.md`, periodic tasks to `HEARTBEAT.md`\n";
7
7
  export declare const AGENTS_MD_TEMPLATE = "# Agent Instructions\n\nHelpful AI assistant. Be concise, accurate, and action-oriented.\n\n## Guidelines\n\n- Briefly state what you're doing before acting\n- Clarify ambiguous requests before executing\n- Use tools to accomplish tasks; persist important info to memory\n\n## Reminders\n\nUse `cron_add` for scheduled reminders \u2014 do NOT just write to memory files.\n\n## Heartbeat\n\nIf enabled, `HEARTBEAT.md` is checked periodically. Manage task lists via `edit_file` / `write_file`. Keep the file small to save tokens.\n\n---\n\n# Agent Memory\n\nLong-term memory for conversation history, user preferences, and system state.\n\n## User Preferences\n\n- Language: Simplified Chinese (\u7B80\u4F53\u4E2D\u6587)\n- Style: concise, action-first, execute over explain\n\n## Important Records\n\n*(AI can append here via write_file / write_memory)*\n\n## TODO\n\n*(Track pending work here)*\n";
8
8
  /** Advanced:可选 Assistant Profile 示例(见 docs/advanced/assistant-profile.md) */
9
- export declare const ASSISTANT_PROFILE_YML_EXAMPLE = "# Assistant Profile (optional, Advanced)\n# Runtime only: Job routines + default notify. Persona/tools \u2192 SOUL.md / AGENTS.md / TOOLS.md\n# Enable: zhin.config.yml \u2192 assistant.profile.enabled: true\nversion: 1\n\ndefaults:\n notify:\n channel: im\n target:\n channel: im\n scene:\n platform: icqq\n endpointId: \"<endpoint_id>\"\n sceneId: \"<master_user_id>\"\n kind: private\n notifyOnFailure: false\n\nroutines:\n heartbeat:\n enabled: false\n everyMs: 1800000\n notify:\n channel: silent\n morningBrief:\n enabled: false\n cron: \"0 8 * * *\"\n prompt: |\n \u6C47\u603B\u4ECA\u65E5\u5F85\u529E\u4E0E\u63D0\u9192\uFF0C\u751F\u6210\u7B80\u77ED\u65E9\u62A5\u3002\n notify:\n channel: im\n";
9
+ export declare const ASSISTANT_PROFILE_YML_EXAMPLE = "# Assistant Profile (optional, Advanced)\n# Runtime only: Job routines + default notify. Persona/tools \u2192 SOUL.md / AGENTS.md / TOOLS.md\n# Enable: zhin.config.yml \u2192 assistant.profile.enabled: true\nversion: 1\n\ndefaults:\n notify:\n channel: im\n target:\n channel: im\n scene:\n platform: icqq\n endpointKey: \"<endpoint_id>\"\n sceneId: \"<master_user_id>\"\n kind: private\n notifyOnFailure: false\n\nroutines:\n heartbeat:\n enabled: false\n everyMs: 1800000\n notify:\n channel: silent\n morningBrief:\n enabled: false\n cron: \"0 8 * * *\"\n prompt: |\n \u6C47\u603B\u4ECA\u65E5\u5F85\u529E\u4E0E\u63D0\u9192\uFF0C\u751F\u6210\u7B80\u77ED\u65E9\u62A5\u3002\n notify:\n channel: im\n";
10
10
  //# sourceMappingURL=bootstrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/templates/bootstrap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,gBAAgB,g/BA0B5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,uYAO7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,q4BAoC9B,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B,mxBA8BzC,CAAC"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/templates/bootstrap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,gBAAgB,g/BA0B5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,uYAO7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,q4BAoC9B,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B,oxBA8BzC,CAAC"}
@@ -87,7 +87,7 @@ defaults:
87
87
  channel: im
88
88
  scene:
89
89
  platform: icqq
90
- endpointId: "<endpoint_id>"
90
+ endpointKey: "<endpoint_id>"
91
91
  sceneId: "<master_user_id>"
92
92
  kind: private
93
93
  notifyOnFailure: false
@@ -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;AAMlC,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,CA0cnH"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,EAaL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAMlC,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,CAwenH"}
package/lib/workspace.js CHANGED
@@ -54,6 +54,8 @@ export async function createWorkspace(projectPath, projectName, options) {
54
54
  await fs.writeFile(path.join(projectPath, '.npmrc'), CREATE_BOT_NPMRC);
55
55
  await fs.writeFile(path.join(projectPath, 'pnpm-workspace.yaml'), `packages:
56
56
  - '.'
57
+ - 'plugins/*'
58
+ - 'packages/*'
57
59
  `);
58
60
  // 根据数据库类型添加相应依赖
59
61
  const databaseDeps = {};
@@ -78,6 +80,14 @@ export async function createWorkspace(projectPath, projectName, options) {
78
80
  const cardDeps = {
79
81
  '@zhin.js/satori': ZHIN_STACK_VERSIONS['@zhin.js/satori'],
80
82
  };
83
+ // Page/Layout Features only discover client modules. Their compiler remains
84
+ // owned by the optional Console Host, so the IM project itself adds no
85
+ // browser compiler or UI runtime dependency.
86
+ const consoleFeatureDeps = {
87
+ '@zhin.js/console-contract': ZHIN_STACK_VERSIONS['@zhin.js/console-contract'],
88
+ '@zhin.js/layout': ZHIN_STACK_VERSIONS['@zhin.js/layout'],
89
+ '@zhin.js/page': ZHIN_STACK_VERSIONS['@zhin.js/page'],
90
+ };
81
91
  // package.json:zhin 清单是 Plugin Runtime 拓扑 SSOT(features + plugins)
82
92
  await fs.writeJson(path.join(projectPath, 'package.json'), {
83
93
  name: projectName,
@@ -102,6 +112,7 @@ export async function createWorkspace(projectPath, projectName, options) {
102
112
  ...databaseDeps,
103
113
  ...aiDeps,
104
114
  ...cardDeps,
115
+ ...consoleFeatureDeps,
105
116
  },
106
117
  devDependencies: {
107
118
  '@zhin.js/cli': ZHIN_STACK_VERSIONS['@zhin.js/cli'],
@@ -121,6 +132,8 @@ export async function createWorkspace(projectPath, projectName, options) {
121
132
  runtime: 'trusted',
122
133
  // Stable Features(adapter/command/component/middleware)由 @zhin.js/core 的 package.json#zhin.features 继承
123
134
  features: [
135
+ { package: '@zhin.js/page', api: '^1.0.0' },
136
+ { package: '@zhin.js/layout', api: '^1.0.0' },
124
137
  ...(aiEnabled ? [{ package: '@zhin.js/tool', api: '^1.0.0' }] : []),
125
138
  ],
126
139
  plugins: collectAdapterPluginManifest(adapters),
@@ -394,6 +407,16 @@ ${projectName}/
394
407
  │ └── card.ts # /card -> component("status-card")
395
408
  ├── components/
396
409
  │ └── status-card.ts # defineComponent(),Satori 卡片
410
+ ├── middlewares/ # 消息中间件(约定目录)
411
+ ├── pages/
412
+ │ ├── index.tsx # Console 页面(/)
413
+ │ ├── $nav.tsx # 最近插件导航布局
414
+ │ └── $footer.tsx # 最近插件页脚布局
415
+ ├── tools/ # AI 工具(启用 AI 后自动发现)
416
+ ├── skills/ # SKILL.md 能力目录
417
+ ├── agents/ # *.agent.md Agent 目录
418
+ ├── plugins/ # 本地子插件 workspace(仅一级)
419
+ ├── packages/ # 贡献给 Zhin 的 Feature workspace
397
420
  ├── package.json # zhin 清单(protocol 1 / features / plugins)
398
421
  ├── tsconfig.json
399
422
  └── pnpm-workspace.yaml
@@ -401,6 +424,7 @@ ${projectName}/
401
424
 
402
425
  \`package.json#zhin\` 是拓扑 SSOT:\`features\` 挂载的 Feature provider 会发现对应约定目录,
403
426
  \`zhin.plugins\` 清单声明挂载的子插件(适配器)实例,实例配置写在 \`${configFilename}\` 的 \`plugins.<instanceKey>\`。
427
+ 根项目默认声明 page/layout Feature;它们只提供发现与拓扑契约,浏览器构建器并不作为项目依赖安装。
404
428
 
405
429
  ## 🚀 快速开始
406
430
 
@@ -451,6 +475,12 @@ export default defineCommand({
451
475
  });
452
476
  \`\`\`
453
477
 
478
+ ### Console 页面与布局
479
+
480
+ 在 \`pages/\` 下新增页面:\`index.tsx\` 映射到插件路径,其他页面映射为 \`/p-<name>\`。
481
+ \`$nav.tsx\` 与 \`$footer.tsx\` 分别覆盖当前插件及其子插件的最近导航、页脚布局。
482
+ 页面元数据必须用 \`@zhin.js/console-contract\` 的 \`definePage\` 声明;默认示例不依赖 React 或浏览器构建工具。
483
+
454
484
  ### 接入更多平台
455
485
 
456
486
  \`\`\`bash
@@ -481,9 +511,16 @@ MIT License
481
511
  }
482
512
  async function createRuntimeProjectFiles(projectPath, projectName, options) {
483
513
  const aiEnabled = options.ai?.enabled === true;
484
- await fs.ensureDir(path.join(projectPath, 'commands'));
485
- await fs.ensureDir(path.join(projectPath, 'components'));
486
- await fs.ensureDir(path.join(projectPath, 'data'));
514
+ await Promise.all([
515
+ fs.ensureDir(path.join(projectPath, 'commands')),
516
+ fs.ensureDir(path.join(projectPath, 'components')),
517
+ fs.ensureDir(path.join(projectPath, 'pages')),
518
+ fs.ensureDir(path.join(projectPath, 'skills')),
519
+ fs.ensureDir(path.join(projectPath, 'data')),
520
+ ...['agents', 'middlewares', 'tools', 'plugins', 'packages'].map(async (directory) => {
521
+ await fs.outputFile(path.join(projectPath, directory, '.gitkeep'), '');
522
+ }),
523
+ ]);
487
524
  // 创建 .env 文件(使用简单的变量名)
488
525
  const databaseEnvVars = options.database ? generateDatabaseEnvVars(options.database) : '';
489
526
  const adapterEnvVars = options.adapters ? generateAdapterEnvVars(options.adapters) : '';
@@ -520,8 +557,15 @@ HTTP_TOKEN=change-me
520
557
  "include": [
521
558
  "plugin.ts",
522
559
  "commands/**/*.ts",
560
+ "commands/**/*.tsx",
523
561
  "components/**/*.ts",
524
- "tools/**/*.ts"
562
+ "components/**/*.tsx",
563
+ "middlewares/**/*.ts",
564
+ "middlewares/**/*.tsx",
565
+ "tools/**/*.ts",
566
+ "tools/**/*.tsx",
567
+ "pages/**/*.ts",
568
+ "pages/**/*.tsx"
525
569
  ],
526
570
  "exclude": [
527
571
  "node_modules"
@@ -544,6 +588,31 @@ export default definePlugin({
544
588
  "additionalProperties": false,
545
589
  "properties": {}
546
590
  }, { spaces: 2 });
591
+ // pages/ follows the Feature conventions. These components deliberately
592
+ // return text, keeping the initial IM project free of a browser UI runtime.
593
+ await fs.writeFile(path.join(projectPath, 'pages', 'index.tsx'), `import { definePage } from '@zhin.js/console-contract';
594
+
595
+ export const meta = definePage({
596
+ title: '${projectName}',
597
+ order: 10,
598
+ });
599
+
600
+ export default function HomePage() {
601
+ return 'Zhin Console is ready. Add pages in pages/ to extend this plugin.';
602
+ }
603
+ `);
604
+ await fs.writeFile(path.join(projectPath, 'pages', '$nav.tsx'), `import type { NavSlotProps } from '@zhin.js/console-contract';
605
+
606
+ export default function ProjectNavigation({ current }: NavSlotProps) {
607
+ return current ? \`Current page: \${current}\` : '${projectName}';
608
+ }
609
+ `);
610
+ await fs.writeFile(path.join(projectPath, 'pages', '$footer.tsx'), `import type { FooterSlotProps } from '@zhin.js/console-contract';
611
+
612
+ export default function ProjectFooter({ owner }: FooterSlotProps) {
613
+ return \`Plugin: \${owner}\`;
614
+ }
615
+ `);
547
616
  // commands/hello.ts
548
617
  await fs.writeFile(path.join(projectPath, 'commands', 'hello.ts'), `import { defineCommand } from 'zhin.js/command';
549
618
 
@@ -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.0.59",
3
+ "version": "1.0.61",
4
4
  "description": "Create a new zhin bot project",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,16 +11,16 @@
11
11
  "template"
12
12
  ],
13
13
  "dependencies": {
14
- "fs-extra": "^11.3.6",
15
- "inquirer": "^14.0.2",
16
14
  "chalk": "^5.6.2",
15
+ "fs-extra": "^11.4.0",
16
+ "inquirer": "^14.0.2",
17
17
  "yaml": "^2.9.0",
18
- "@zhin.js/scaffold-wizard": "0.2.2"
18
+ "@zhin.js/scaffold-wizard": "0.2.4"
19
19
  },
20
20
  "devDependencies": {
21
- "@types/node": "^26.1.0",
22
21
  "@types/fs-extra": "^11.0.4",
23
22
  "@types/inquirer": "^9.0.10",
23
+ "@types/node": "^26.1.2",
24
24
  "typescript": "^6.0.3"
25
25
  },
26
26
  "engines": {
@@ -49,17 +49,20 @@ tags:
49
49
  ### 第 2 步:实现(禁止旧 API)
50
50
 
51
51
  - **禁止**:`usePlugin`、`getPlugin`、`MessageCommand`、`plugin.addCommand`、`addCron(new Cron)`、`useContext('web')` 旧写法
52
- - **命令**:文件路径是路由 SSOT;参数用 `[name:type=default].ts`;`execute` 读 `params` / `args` / `input`
52
+ - **命令**:文件路径是路由 SSOT;参数用 Next.js 风格文件名(`[name].ts` 必需 / `[[name]].ts` 可选 / `[...name].ts` 捕获所有),类型与默认值在 `defineCommand({ params })` 中声明;`execute` 读 `params` / `args` / `input`
53
53
  - **出站**:走统一发送链(`$reply` / Adapter.sendMessage),禁止直调平台 Bot
54
54
  - 本地导入带 `.js` 扩展名
55
55
 
56
- **命令示例** `commands/greet/[name:string].ts`:
56
+ **命令示例** `commands/greet/[name].ts`:
57
57
 
58
58
  ```typescript
59
59
  import { defineCommand } from 'zhin.js/command';
60
60
 
61
61
  export default defineCommand({
62
62
  description: '问候用户',
63
+ params: {
64
+ name: { type: 'string', description: '用户名字' },
65
+ },
63
66
  execute({ params }) {
64
67
  return `你好,${params.name}!`;
65
68
  },
@@ -155,7 +155,7 @@ export default defineCommand({
155
155
  });
156
156
  ```
157
157
 
158
- 带参数用方括号文件名,例如 `commands/hello/[name:string=world].ts` → `hello <name:string=world>`,在 `execute` 里读 `params.name`。
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[]`)。
159
159
 
160
160
  ### 第 6 步:生成 tsconfig.json
161
161