@zhin.js/scaffold-wizard 1.1.1 → 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/lib/database.js CHANGED
@@ -1,4 +1,23 @@
1
1
  import inquirer from 'inquirer';
2
+ import { DATABASE_DIALECT_DEFINITIONS, databaseChoiceLabel, getDatabaseDialectDefinition, validateDatabaseConfig, } from './database-definitions.js';
3
+ function schemaDefault(dialect, ...path) {
4
+ let schema = getDatabaseDialectDefinition(dialect)?.schema;
5
+ for (const segment of path) {
6
+ const properties = schema?.properties;
7
+ schema = properties?.[segment];
8
+ }
9
+ return schema?.default;
10
+ }
11
+ function parseIntegerInput(input, minimum, maximum = Number.MAX_SAFE_INTEGER) {
12
+ const raw = String(input).trim();
13
+ if (!/^\d+$/u.test(raw))
14
+ return `请输入有效的整数 (${minimum}-${maximum})`;
15
+ const value = Number(raw);
16
+ if (!Number.isSafeInteger(value) || value < minimum || value > maximum) {
17
+ return `请输入有效的整数 (${minimum}-${maximum})`;
18
+ }
19
+ return value;
20
+ }
2
21
  // 配置数据库选项
3
22
  export async function configureDatabaseOptions() {
4
23
  const { dialect } = await inquirer.prompt([
@@ -6,30 +25,41 @@ export async function configureDatabaseOptions() {
6
25
  type: 'select',
7
26
  name: 'dialect',
8
27
  message: '选择数据库类型:',
9
- choices: [
10
- { name: 'SQLite (推荐, 零配置)', value: 'sqlite' },
11
- { name: 'MySQL', value: 'mysql' },
12
- { name: 'PostgreSQL', value: 'pg' },
13
- { name: 'MongoDB', value: 'mongodb' },
14
- { name: 'Redis', value: 'redis' }
15
- ],
28
+ choices: DATABASE_DIALECT_DEFINITIONS.map((definition) => ({
29
+ name: databaseChoiceLabel(definition),
30
+ value: definition.dialect,
31
+ })),
16
32
  default: 'sqlite'
17
33
  }
18
34
  ]);
35
+ let config;
19
36
  switch (dialect) {
20
37
  case 'sqlite':
21
- return await configureSQLite();
38
+ config = await configureSQLite();
39
+ break;
22
40
  case 'mysql':
23
- return await configureMySQL();
41
+ config = await configureMySQL();
42
+ break;
24
43
  case 'pg':
25
- return await configurePostgreSQL();
44
+ config = await configurePostgreSQL();
45
+ break;
26
46
  case 'mongodb':
27
- return await configureMongoDB();
47
+ config = await configureMongoDB();
48
+ break;
28
49
  case 'redis':
29
- return await configureRedis();
50
+ config = await configureRedis();
51
+ break;
52
+ case 'memory':
53
+ config = { dialect: 'memory' };
54
+ break;
30
55
  default:
31
56
  throw new Error(`未支持的数据库类型: ${dialect}`);
32
57
  }
58
+ const issues = validateDatabaseConfig(config);
59
+ if (issues.length > 0) {
60
+ throw new TypeError(`数据库配置不符合 Schema:${issues.map((issue) => issue.message).join(';')}`);
61
+ }
62
+ return config;
33
63
  }
34
64
  // SQLite 配置
35
65
  async function configureSQLite() {
@@ -38,7 +68,7 @@ async function configureSQLite() {
38
68
  type: 'input',
39
69
  name: 'filename',
40
70
  message: 'SQLite 数据库文件路径:',
41
- default: './data/bot.db',
71
+ default: schemaDefault('sqlite', 'filename'),
42
72
  validate: (input) => {
43
73
  if (!input.trim())
44
74
  return '文件路径不能为空';
@@ -54,7 +84,7 @@ async function configureSQLite() {
54
84
  { name: 'DELETE (默认)', value: 'delete' },
55
85
  { name: 'MEMORY (内存数据库)', value: 'memory' }
56
86
  ],
57
- default: 'wal'
87
+ default: schemaDefault('sqlite', 'mode')
58
88
  }
59
89
  ]);
60
90
  return {
@@ -70,26 +100,23 @@ async function configureMySQL() {
70
100
  type: 'input',
71
101
  name: 'host',
72
102
  message: 'MySQL 主机地址:',
73
- default: 'localhost'
103
+ default: schemaDefault('mysql', 'host')
74
104
  },
75
105
  {
76
106
  type: 'input',
77
107
  name: 'port',
78
108
  message: 'MySQL 端口:',
79
- default: '3306',
109
+ default: String(schemaDefault('mysql', 'port')),
80
110
  validate: (input) => {
81
- const port = parseInt(input);
82
- if (isNaN(port) || port < 1 || port > 65535) {
83
- return '请输入有效的端口号 (1-65535)';
84
- }
85
- return true;
111
+ const value = parseIntegerInput(input, 1, 65535);
112
+ return typeof value === 'number' ? true : value;
86
113
  }
87
114
  },
88
115
  {
89
116
  type: 'input',
90
117
  name: 'user',
91
118
  message: 'MySQL 用户名:',
92
- default: 'root'
119
+ default: schemaDefault('mysql', 'user')
93
120
  },
94
121
  {
95
122
  type: 'password',
@@ -100,7 +127,7 @@ async function configureMySQL() {
100
127
  type: 'input',
101
128
  name: 'database',
102
129
  message: 'MySQL 数据库名:',
103
- default: 'zhin_bot',
130
+ default: schemaDefault('mysql', 'database'),
104
131
  validate: (input) => {
105
132
  if (!input.trim())
106
133
  return '数据库名不能为空';
@@ -111,7 +138,7 @@ async function configureMySQL() {
111
138
  return {
112
139
  dialect: 'mysql',
113
140
  host: config.host,
114
- port: parseInt(config.port),
141
+ port: Number(config.port),
115
142
  user: config.user,
116
143
  password: config.password,
117
144
  database: config.database
@@ -124,26 +151,23 @@ async function configurePostgreSQL() {
124
151
  type: 'input',
125
152
  name: 'host',
126
153
  message: 'PostgreSQL 主机地址:',
127
- default: 'localhost'
154
+ default: schemaDefault('pg', 'host')
128
155
  },
129
156
  {
130
157
  type: 'input',
131
158
  name: 'port',
132
159
  message: 'PostgreSQL 端口:',
133
- default: '5432',
160
+ default: String(schemaDefault('pg', 'port')),
134
161
  validate: (input) => {
135
- const port = parseInt(input);
136
- if (isNaN(port) || port < 1 || port > 65535) {
137
- return '请输入有效的端口号 (1-65535)';
138
- }
139
- return true;
162
+ const value = parseIntegerInput(input, 1, 65535);
163
+ return typeof value === 'number' ? true : value;
140
164
  }
141
165
  },
142
166
  {
143
167
  type: 'input',
144
168
  name: 'user',
145
169
  message: 'PostgreSQL 用户名:',
146
- default: 'postgres'
170
+ default: schemaDefault('pg', 'user')
147
171
  },
148
172
  {
149
173
  type: 'password',
@@ -154,7 +178,7 @@ async function configurePostgreSQL() {
154
178
  type: 'input',
155
179
  name: 'database',
156
180
  message: 'PostgreSQL 数据库名:',
157
- default: 'zhin_bot',
181
+ default: schemaDefault('pg', 'database'),
158
182
  validate: (input) => {
159
183
  if (!input.trim())
160
184
  return '数据库名不能为空';
@@ -165,7 +189,7 @@ async function configurePostgreSQL() {
165
189
  return {
166
190
  dialect: 'pg',
167
191
  host: config.host,
168
- port: parseInt(config.port),
192
+ port: Number(config.port),
169
193
  user: config.user,
170
194
  password: config.password,
171
195
  database: config.database
@@ -178,7 +202,7 @@ async function configureMongoDB() {
178
202
  type: 'input',
179
203
  name: 'url',
180
204
  message: 'MongoDB 连接字符串:',
181
- default: 'mongodb://localhost:27017',
205
+ default: schemaDefault('mongodb', 'url'),
182
206
  validate: (input) => {
183
207
  if (!input.trim())
184
208
  return '连接字符串不能为空';
@@ -192,7 +216,7 @@ async function configureMongoDB() {
192
216
  type: 'input',
193
217
  name: 'dbName',
194
218
  message: 'MongoDB 数据库名:',
195
- default: 'zhin_bot',
219
+ default: schemaDefault('mongodb', 'dbName'),
196
220
  validate: (input) => {
197
221
  if (!input.trim())
198
222
  return '数据库名不能为空';
@@ -213,19 +237,16 @@ async function configureRedis() {
213
237
  type: 'input',
214
238
  name: 'host',
215
239
  message: 'Redis 主机地址:',
216
- default: 'localhost'
240
+ default: schemaDefault('redis', 'socket', 'host')
217
241
  },
218
242
  {
219
243
  type: 'input',
220
244
  name: 'port',
221
245
  message: 'Redis 端口:',
222
- default: '6379',
246
+ default: String(schemaDefault('redis', 'socket', 'port')),
223
247
  validate: (input) => {
224
- const port = parseInt(input);
225
- if (isNaN(port) || port < 1 || port > 65535) {
226
- return '请输入有效的端口号 (1-65535)';
227
- }
228
- return true;
248
+ const value = parseIntegerInput(input, 1, 65535);
249
+ return typeof value === 'number' ? true : value;
229
250
  }
230
251
  },
231
252
  {
@@ -237,13 +258,10 @@ async function configureRedis() {
237
258
  type: 'input',
238
259
  name: 'db',
239
260
  message: 'Redis 数据库索引:',
240
- default: '0',
261
+ default: String(schemaDefault('redis', 'database')),
241
262
  validate: (input) => {
242
- const db = parseInt(input);
243
- if (isNaN(db) || db < 0) {
244
- return '请输入有效的数据库索引 (>= 0)';
245
- }
246
- return true;
263
+ const value = parseIntegerInput(input, 0);
264
+ return typeof value === 'number' ? true : '请输入有效的数据库索引 (>= 0)';
247
265
  }
248
266
  }
249
267
  ]);
@@ -251,10 +269,10 @@ async function configureRedis() {
251
269
  dialect: 'redis',
252
270
  socket: {
253
271
  host: config.host,
254
- port: parseInt(config.port)
272
+ port: Number(config.port)
255
273
  },
256
274
  password: config.password || undefined,
257
- database: parseInt(config.db)
275
+ database: Number(config.db)
258
276
  };
259
277
  }
260
278
  //# sourceMappingURL=database.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
package/lib/env.d.ts CHANGED
@@ -11,4 +11,10 @@ export declare function formatEnvValue(value: unknown): string;
11
11
  export declare function mergeEnvText(existing: string, extra: string): string;
12
12
  /** 生成数据库连接环境变量(连接参数落 .env,配置文件只引用 ${VAR})。 */
13
13
  export declare function generateDatabaseEnvVars(config: DatabaseConfig): string;
14
+ /**
15
+ * Generate a version-control-safe database section for `.env.example`.
16
+ * User-entered passwords and credential-bearing connection URLs are never
17
+ * copied from the interactive wizard.
18
+ */
19
+ export declare function generateDatabaseEnvExample(config: DatabaseConfig): string;
14
20
  //# sourceMappingURL=env.d.ts.map
package/lib/env.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQrD;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAwCpE;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA+CtE"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQrD;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAwCpE;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAgDtE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA4CzE"}
package/lib/env.js CHANGED
@@ -80,10 +80,61 @@ export function generateDatabaseEnvVars(config) {
80
80
  envVars.push('# Redis 数据库配置', `REDIS_HOST=${formatEnvValue(config.socket?.host || 'localhost')}`, `REDIS_PORT=${formatEnvValue(config.socket?.port || 6379)}`, `REDIS_PASSWORD=${formatEnvValue(config.password || '')}`, `REDIS_DB=${formatEnvValue(config.database ?? 0)}`);
81
81
  break;
82
82
  case 'sqlite':
83
+ case 'memory':
83
84
  default:
84
85
  // SQLite 不需要额外的环境变量
85
86
  break;
86
87
  }
87
88
  return envVars.length > 0 ? `\n\n${envVars.join('\n')}` : '';
88
89
  }
90
+ /**
91
+ * Generate a version-control-safe database section for `.env.example`.
92
+ * User-entered passwords and credential-bearing connection URLs are never
93
+ * copied from the interactive wizard.
94
+ */
95
+ export function generateDatabaseEnvExample(config) {
96
+ let lines = [];
97
+ switch (config.dialect) {
98
+ case 'mysql':
99
+ lines = [
100
+ '# MySQL 数据库配置',
101
+ 'DB_HOST=127.0.0.1',
102
+ 'DB_PORT=3306',
103
+ 'DB_USER=root',
104
+ 'DB_PASSWORD=change-me',
105
+ 'DB_DATABASE=zhin_bot',
106
+ ];
107
+ break;
108
+ case 'pg':
109
+ lines = [
110
+ '# PostgreSQL 数据库配置',
111
+ 'DB_HOST=127.0.0.1',
112
+ 'DB_PORT=5432',
113
+ 'DB_USER=postgres',
114
+ 'DB_PASSWORD=change-me',
115
+ 'DB_DATABASE=zhin_bot',
116
+ ];
117
+ break;
118
+ case 'mongodb':
119
+ lines = [
120
+ '# MongoDB 数据库配置',
121
+ 'DB_URL=mongodb://127.0.0.1:27017',
122
+ 'DB_NAME=zhin_bot',
123
+ ];
124
+ break;
125
+ case 'redis':
126
+ lines = [
127
+ '# Redis 数据库配置',
128
+ 'REDIS_HOST=127.0.0.1',
129
+ 'REDIS_PORT=6379',
130
+ 'REDIS_PASSWORD=',
131
+ 'REDIS_DB=0',
132
+ ];
133
+ break;
134
+ case 'sqlite':
135
+ case 'memory':
136
+ return '';
137
+ }
138
+ return `\n\n${lines.join('\n')}`;
139
+ }
89
140
  //# sourceMappingURL=env.js.map
package/lib/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,15 +1,17 @@
1
1
  export type { InitOptions, DatabaseConfig } from './types.js';
2
- export { DATABASE_PACKAGES } from './types.js';
2
+ export { DATABASE_DRIVER_VERSIONS, DATABASE_PACKAGES } from './types.js';
3
+ export { DATABASE_DIALECT_DEFINITIONS, databaseChoiceLabel, getDatabaseDialectDefinition, validateDatabaseConfig, } from './database-definitions.js';
4
+ export type { DatabaseDialect, DatabaseDialectDefinition, DatabaseDriverDefinition, DatabaseSchemaIssue, } from './database-definitions.js';
3
5
  export type { AdapterSetupResult, AdapterPluginInstance, AdapterDefinition } from './adapter.js';
4
6
  export { ADAPTERS, findAdapterByPackage, configureAdapters, buildFieldBasedInstanceConfig, generateAdapterEnvVars, collectAdapterPluginConfigs, collectAdapterPluginManifest, getAdapterDependencies, getAdapterSetupNotes, } from './adapter.js';
5
7
  export { ADAPTERS_DOCS_URL, ADAPTERS_INDEX_URL, ADAPTERS_ESSENTIALS_URL, adapterDocsUrl, } from './adapter-configurers.js';
6
8
  export type { AISetupConfig } from './ai.js';
7
9
  export { configureAI, generateAIEnvVars, generateAIConfigYaml, generateAIConfigJSON, RECOMMENDED_AI_DEFAULTS, } from './ai.js';
8
10
  export { configureDatabaseOptions } from './database.js';
9
- export { formatEnvValue, mergeEnvText, generateDatabaseEnvVars, } from './env.js';
11
+ export { formatEnvValue, mergeEnvText, generateDatabaseEnvExample, generateDatabaseEnvVars, } from './env.js';
10
12
  export { AI_STACK_VERSIONS, MCP_SDK_VERSION, getAIDependencies, listAIDependencyNames, formatAIDependencyHint, isAiEnabledInConfig, resolveAgentProviderFromConfig, getRequiredAIDependenciesForConfig, diagnoseAIDependencies, formatAIDependencyFixCommand, packagesNeedingAiStackFix, findOutdatedAiStackInPackageJson, findInstalledAiStackIncompatibilities, ensureDatabaseForAI, ensureDatabaseForAdapters, } from './project-deps.js';
11
13
  export type { AiStackIncompatibility } from './project-deps.js';
12
- export { ZHIN_STACK_VERSIONS, DEFAULT_CREATE_BOT_HTTP_PORT, CREATE_BOT_NPMRC, getCreateBotBaseDependencies, getCreateBotPnpmConfig, getRequiredZhinDependenciesForConfig, diagnoseZhinStackDependencies, formatZhinStackFixCommand, packagesNeedingZhinStackFix, findOutdatedZhinStackInPackageJson, findInstalledZhinStackIncompatibilities, } from './zhin-stack-deps.js';
14
+ export { ZHIN_STACK_VERSIONS, DEFAULT_CREATE_BOT_HTTP_PORT, CREATE_BOT_PACKAGE_MANAGER, getCreateBotBaseDependencies, getCreateBotPnpmWorkspaceConfig, getRequiredZhinDependenciesForConfig, diagnoseZhinStackDependencies, formatZhinStackFixCommand, packagesNeedingZhinStackFix, findOutdatedZhinStackInPackageJson, findInstalledZhinStackIncompatibilities, } from './zhin-stack-deps.js';
13
15
  export type { ZhinStackDiagnosis, ZhinStackIncompatibility } from './zhin-stack-deps.js';
14
16
  export { SPEECH_PACKAGE, HTML_RENDERER_PACKAGE, ADAPTERS_PREFER_HTML_IMAGE, diagnoseOptionalPeers, formatOptionalPeerFixCommand, getOptionalPeerDependencies, } from './optional-peers.js';
15
17
  export type { OptionalPeerDiagnosis, OptionalPeersDiagnosis } from './optional-peers.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,gCAAgC,EAChC,qCAAqC,EACrC,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,EAC5B,sBAAsB,EACtB,oCAAoC,EACpC,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,kCAAkC,EAClC,uCAAuC,GACxC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,gCAAgC,EAChC,4BAA4B,EAC5B,kCAAkC,EAClC,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -1,11 +1,12 @@
1
- export { DATABASE_PACKAGES } from './types.js';
1
+ export { DATABASE_DRIVER_VERSIONS, DATABASE_PACKAGES } from './types.js';
2
+ export { DATABASE_DIALECT_DEFINITIONS, databaseChoiceLabel, getDatabaseDialectDefinition, validateDatabaseConfig, } from './database-definitions.js';
2
3
  export { ADAPTERS, findAdapterByPackage, configureAdapters, buildFieldBasedInstanceConfig, generateAdapterEnvVars, collectAdapterPluginConfigs, collectAdapterPluginManifest, getAdapterDependencies, getAdapterSetupNotes, } from './adapter.js';
3
4
  export { ADAPTERS_DOCS_URL, ADAPTERS_INDEX_URL, ADAPTERS_ESSENTIALS_URL, adapterDocsUrl, } from './adapter-configurers.js';
4
5
  export { configureAI, generateAIEnvVars, generateAIConfigYaml, generateAIConfigJSON, RECOMMENDED_AI_DEFAULTS, } from './ai.js';
5
6
  export { configureDatabaseOptions } from './database.js';
6
- export { formatEnvValue, mergeEnvText, generateDatabaseEnvVars, } from './env.js';
7
+ export { formatEnvValue, mergeEnvText, generateDatabaseEnvExample, generateDatabaseEnvVars, } from './env.js';
7
8
  export { AI_STACK_VERSIONS, MCP_SDK_VERSION, getAIDependencies, listAIDependencyNames, formatAIDependencyHint, isAiEnabledInConfig, resolveAgentProviderFromConfig, getRequiredAIDependenciesForConfig, diagnoseAIDependencies, formatAIDependencyFixCommand, packagesNeedingAiStackFix, findOutdatedAiStackInPackageJson, findInstalledAiStackIncompatibilities, ensureDatabaseForAI, ensureDatabaseForAdapters, } from './project-deps.js';
8
- export { ZHIN_STACK_VERSIONS, DEFAULT_CREATE_BOT_HTTP_PORT, CREATE_BOT_NPMRC, getCreateBotBaseDependencies, getCreateBotPnpmConfig, getRequiredZhinDependenciesForConfig, diagnoseZhinStackDependencies, formatZhinStackFixCommand, packagesNeedingZhinStackFix, findOutdatedZhinStackInPackageJson, findInstalledZhinStackIncompatibilities, } from './zhin-stack-deps.js';
9
+ export { ZHIN_STACK_VERSIONS, DEFAULT_CREATE_BOT_HTTP_PORT, CREATE_BOT_PACKAGE_MANAGER, getCreateBotBaseDependencies, getCreateBotPnpmWorkspaceConfig, getRequiredZhinDependenciesForConfig, diagnoseZhinStackDependencies, formatZhinStackFixCommand, packagesNeedingZhinStackFix, findOutdatedZhinStackInPackageJson, findInstalledZhinStackIncompatibilities, } from './zhin-stack-deps.js';
9
10
  export { SPEECH_PACKAGE, HTML_RENDERER_PACKAGE, ADAPTERS_PREFER_HTML_IMAGE, diagnoseOptionalPeers, formatOptionalPeerFixCommand, getOptionalPeerDependencies, } from './optional-peers.js';
10
11
  export { diagnoseUpgradeToL4, getUpgradeToL4Dependencies, } from './upgrade-l4.js';
11
12
  export { loadProjectConfig, createProjectConfigPlan, renderProjectConfigPatch, applyProjectConfigPlan, migrateAiLegacyConfig, diagnoseConsoleConfig, applyConsoleConfigFixes, packageToInstanceKey, } from './project-config-plan.js';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,gCAAgC,EAChC,qCAAqC,EACrC,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,EAC5B,sBAAsB,EACtB,oCAAoC,EACpC,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,kCAAkC,EAClC,uCAAuC,GACxC,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,gCAAgC,EAChC,4BAA4B,EAC5B,kCAAkC,EAClC,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AASnC,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,gCAAgC,EAChC,qCAAqC,EACrC,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,+BAA+B,EAC/B,oCAAoC,EACpC,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,kCAAkC,EAClC,uCAAuC,GACxC,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,gCAAgC,EAChC,4BAA4B,EAC5B,kCAAkC,EAClC,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
package/lib/types.d.ts CHANGED
@@ -16,8 +16,9 @@ export interface InitOptions {
16
16
  devSkills?: boolean;
17
17
  }
18
18
  export interface DatabaseConfig {
19
- dialect: 'sqlite' | 'mysql' | 'pg' | 'mongodb' | 'redis';
19
+ dialect: 'sqlite' | 'mysql' | 'pg' | 'mongodb' | 'redis' | 'memory';
20
20
  [key: string]: any;
21
21
  }
22
- export declare const DATABASE_PACKAGES: Record<DatabaseConfig['dialect'], string | undefined>;
22
+ export declare const DATABASE_PACKAGES: Readonly<Record<DatabaseConfig["dialect"], string | undefined>>;
23
+ export declare const DATABASE_DRIVER_VERSIONS: Readonly<Record<string, string>>;
23
24
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACzD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAMnF,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,eAAO,MAAM,iBAAiB,EAExB,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB,EAI/B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC"}
package/lib/types.js CHANGED
@@ -1,9 +1,7 @@
1
- // 数据库配置映射(SQLite 使用 Node 内置 node:sqlite,无需额外安装)
2
- export const DATABASE_PACKAGES = {
3
- sqlite: undefined,
4
- mysql: 'mysql2',
5
- pg: 'pg',
6
- mongodb: 'mongodb',
7
- redis: 'redis'
8
- };
1
+ import { DATABASE_DIALECT_DEFINITIONS } from './database-definitions.js';
2
+ // 数据库驱动映射(SQLite / Memory 使用内置实现,无需额外安装)
3
+ export const DATABASE_PACKAGES = Object.freeze(Object.fromEntries(DATABASE_DIALECT_DEFINITIONS.map((definition) => [definition.dialect, definition.driver?.package])));
4
+ export const DATABASE_DRIVER_VERSIONS = Object.freeze(Object.fromEntries(DATABASE_DIALECT_DEFINITIONS.flatMap((definition) => definition.driver
5
+ ? [[definition.driver.package, definition.driver.version]]
6
+ : [])));
9
7
  //# sourceMappingURL=types.js.map
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAyBA,gDAAgD;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAA0D;IACtF,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,QAAQ;IACf,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACf,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAwBzE,yCAAyC;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAC/D,4BAA4B,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACnG,CAAoE,CAAC;AAEtE,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CACtE,4BAA4B,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;IACpE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAU,CAAC;IACnE,CAAC,CAAC,EAAE,CAAC,CACR,CAAqC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { type PackageJsonLike } from './project-deps.js';
2
2
  /**
3
- * User project dependency policy: scaffolded dependencies intentionally float to latest.
4
- * WARNING: this is not reproducible; pin versions for production. See scaffold-wizard README.
3
+ * User project dependency policy: scaffolded Zhin packages intentionally float to latest.
4
+ * Database drivers use the live-tested ranges declared by the database definitions.
5
+ * WARNING: `latest` is not reproducible; pin Zhin package versions for production.
5
6
  */
6
7
  export declare const ZHIN_STACK_VERSIONS: {
7
8
  readonly 'zhin.js': "latest";
@@ -50,10 +51,10 @@ export declare const ZHIN_STACK_VERSIONS: {
50
51
  export type ZhinStackPackage = keyof typeof ZHIN_STACK_VERSIONS;
51
52
  /** create-zhin / minimal-bot 默认 Host 端口(避免与常见 8086 占用冲突) */
52
53
  export declare const DEFAULT_CREATE_BOT_HTTP_PORT = 8068;
53
- /** create-zhin 生成项目的 .npmrc(避免全局 strict-peer-dependencies 阻断 AI 栈安装) */
54
- export declare const CREATE_BOT_NPMRC = "strict-peer-dependencies=false\n";
55
- /** create-zhin 生成项目的 pnpm 配置 */
56
- export declare function getCreateBotPnpmConfig(_aiEnabled?: boolean): Record<string, unknown>;
54
+ /** create-zhin 生成项目固定使用的 pnpm 版本。 */
55
+ export declare const CREATE_BOT_PACKAGE_MANAGER = "pnpm@11.27.1";
56
+ /** create-zhin 生成项目的 pnpm-workspace.yaml 配置。 */
57
+ export declare function getCreateBotPnpmWorkspaceConfig(): Record<string, unknown>;
57
58
  /**
58
59
  * create-zhin-app Plugin Runtime 骨架 production 依赖(不含适配器 / AI / 数据库驱动)。
59
60
  * Stable Features(adapter/command/component/middleware)由 `@zhin.js/core` 的 `package.json#zhin.features` 继承;创作面 API 经 `zhin.js/*` 便利入口。
@@ -1 +1 @@
1
- {"version":3,"file":"zhin-stack-deps.d.ts","sourceRoot":"","sources":["../src/zhin-stack-deps.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsF,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7I;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AA0DhE,4DAA4D;AAC5D,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,qCAAqC,CAAC;AAEnE,gCAAgC;AAChC,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIpF;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKrE;AAED,oDAAoD;AACpD,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB5G;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,EAAE,CAYV;AAED,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,wBAAwB,EAAE,CA0B5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qBAAqB,EAAE,wBAAwB,EAAE,CAAC;IAClD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,EAAE,CASnF;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,CAAC,EAAE,eAAe,GACpB,kBAAkB,CAkBpB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAItG"}
1
+ {"version":3,"file":"zhin-stack-deps.d.ts","sourceRoot":"","sources":["../src/zhin-stack-deps.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsF,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7I;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AA0DhE,4DAA4D;AAC5D,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,qCAAqC;AACrC,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAEzD,gDAAgD;AAChD,wBAAgB,+BAA+B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKrE;AAED,oDAAoD;AACpD,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB5G;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,EAAE,CAYV;AAED,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,wBAAwB,EAAE,CA0B5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qBAAqB,EAAE,wBAAwB,EAAE,CAAC;IAClD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,EAAE,CASnF;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,CAAC,EAAE,eAAe,GACpB,kBAAkB,CAkBpB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAItG"}
@@ -1,11 +1,12 @@
1
1
  import { createRequire } from 'node:module';
2
2
  import fs from 'fs-extra';
3
3
  import path from 'node:path';
4
- import { DATABASE_PACKAGES } from './types.js';
4
+ import { DATABASE_DRIVER_VERSIONS, DATABASE_PACKAGES } from './types.js';
5
5
  import { findMissingPackageDependencies, findUnresolvedPackageInstalls, isAiEnabledInConfig } from './project-deps.js';
6
6
  /**
7
- * User project dependency policy: scaffolded dependencies intentionally float to latest.
8
- * WARNING: this is not reproducible; pin versions for production. See scaffold-wizard README.
7
+ * User project dependency policy: scaffolded Zhin packages intentionally float to latest.
8
+ * Database drivers use the live-tested ranges declared by the database definitions.
9
+ * WARNING: `latest` is not reproducible; pin Zhin package versions for production.
9
10
  */
10
11
  export const ZHIN_STACK_VERSIONS = {
11
12
  'zhin.js': 'latest',
@@ -109,12 +110,16 @@ function resolveStackVersion(packageName) {
109
110
  }
110
111
  /** create-zhin / minimal-bot 默认 Host 端口(避免与常见 8086 占用冲突) */
111
112
  export const DEFAULT_CREATE_BOT_HTTP_PORT = 8068;
112
- /** create-zhin 生成项目的 .npmrc(避免全局 strict-peer-dependencies 阻断 AI 栈安装) */
113
- export const CREATE_BOT_NPMRC = 'strict-peer-dependencies=false\n';
114
- /** create-zhin 生成项目的 pnpm 配置 */
115
- export function getCreateBotPnpmConfig(_aiEnabled) {
113
+ /** create-zhin 生成项目固定使用的 pnpm 版本。 */
114
+ export const CREATE_BOT_PACKAGE_MANAGER = 'pnpm@11.27.1';
115
+ /** create-zhin 生成项目的 pnpm-workspace.yaml 配置。 */
116
+ export function getCreateBotPnpmWorkspaceConfig() {
116
117
  return {
117
- onlyBuiltDependencies: ['esbuild'],
118
+ packages: ['.', 'plugins/*', 'packages/*'],
119
+ strictPeerDependencies: false,
120
+ allowBuilds: {
121
+ esbuild: true,
122
+ },
118
123
  };
119
124
  }
120
125
  /**
@@ -138,7 +143,7 @@ export function getRequiredZhinDependenciesForConfig(config) {
138
143
  const dialect = String(database.dialect ?? '');
139
144
  const driver = DATABASE_PACKAGES[dialect];
140
145
  if (driver) {
141
- deps[driver] = 'latest';
146
+ deps[driver] = DATABASE_DRIVER_VERSIONS[driver];
142
147
  }
143
148
  }
144
149
  return deps;