@jsbot-tellus/core 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/README.md +8 -5
  2. package/dist/app/cli.d.ts +10 -0
  3. package/dist/app/cli.d.ts.map +1 -0
  4. package/dist/app/cli.js +37 -0
  5. package/dist/app/cli.js.map +1 -0
  6. package/dist/app/runtime.d.ts +121 -0
  7. package/dist/app/runtime.d.ts.map +1 -0
  8. package/dist/app/runtime.js +296 -0
  9. package/dist/app/runtime.js.map +1 -0
  10. package/dist/app.js +63 -273
  11. package/dist/app.js.map +1 -1
  12. package/dist/core/plugin/command-params.d.ts +3 -37
  13. package/dist/core/plugin/command-params.d.ts.map +1 -1
  14. package/dist/core/plugin/command-params.js +2 -580
  15. package/dist/core/plugin/command-params.js.map +1 -1
  16. package/dist/core/plugin/install/paths.d.ts +7 -0
  17. package/dist/core/plugin/install/paths.d.ts.map +1 -0
  18. package/dist/core/plugin/install/paths.js +49 -0
  19. package/dist/core/plugin/install/paths.js.map +1 -0
  20. package/dist/core/plugin/install/state.d.ts +23 -0
  21. package/dist/core/plugin/install/state.d.ts.map +1 -0
  22. package/dist/core/plugin/install/state.js +129 -0
  23. package/dist/core/plugin/install/state.js.map +1 -0
  24. package/dist/core/plugin/install/validate-script.d.ts +3 -0
  25. package/dist/core/plugin/install/validate-script.d.ts.map +1 -0
  26. package/dist/core/plugin/install/validate-script.js +154 -0
  27. package/dist/core/plugin/install/validate-script.js.map +1 -0
  28. package/dist/core/plugin/install-dir.d.ts +3 -28
  29. package/dist/core/plugin/install-dir.d.ts.map +1 -1
  30. package/dist/core/plugin/install-dir.js +3 -326
  31. package/dist/core/plugin/install-dir.js.map +1 -1
  32. package/dist/core/plugin/installer/checks.d.ts +6 -0
  33. package/dist/core/plugin/installer/checks.d.ts.map +1 -0
  34. package/dist/core/plugin/installer/checks.js +99 -0
  35. package/dist/core/plugin/installer/checks.js.map +1 -0
  36. package/dist/core/plugin/installer/support.d.ts +37 -0
  37. package/dist/core/plugin/installer/support.d.ts.map +1 -0
  38. package/dist/core/plugin/installer/support.js +67 -0
  39. package/dist/core/plugin/installer/support.js.map +1 -0
  40. package/dist/core/plugin/installer/warnings.d.ts +5 -0
  41. package/dist/core/plugin/installer/warnings.d.ts.map +1 -0
  42. package/dist/core/plugin/installer/warnings.js +28 -0
  43. package/dist/core/plugin/installer/warnings.js.map +1 -0
  44. package/dist/core/plugin/installer.d.ts +4 -30
  45. package/dist/core/plugin/installer.d.ts.map +1 -1
  46. package/dist/core/plugin/installer.js +21 -202
  47. package/dist/core/plugin/installer.js.map +1 -1
  48. package/dist/core/plugin/params/compile.d.ts +3 -0
  49. package/dist/core/plugin/params/compile.d.ts.map +1 -0
  50. package/dist/core/plugin/params/compile.js +23 -0
  51. package/dist/core/plugin/params/compile.js.map +1 -0
  52. package/dist/core/plugin/params/declaration.d.ts +9 -0
  53. package/dist/core/plugin/params/declaration.d.ts.map +1 -0
  54. package/dist/core/plugin/params/declaration.js +286 -0
  55. package/dist/core/plugin/params/declaration.js.map +1 -0
  56. package/dist/core/plugin/params/input.d.ts +5 -0
  57. package/dist/core/plugin/params/input.d.ts.map +1 -0
  58. package/dist/core/plugin/params/input.js +196 -0
  59. package/dist/core/plugin/params/input.js.map +1 -0
  60. package/dist/core/plugin/params/reply.d.ts +3 -0
  61. package/dist/core/plugin/params/reply.d.ts.map +1 -0
  62. package/dist/core/plugin/params/reply.js +49 -0
  63. package/dist/core/plugin/params/reply.js.map +1 -0
  64. package/dist/core/plugin/params/type-level.d.ts +24 -0
  65. package/dist/core/plugin/params/type-level.d.ts.map +1 -0
  66. package/dist/core/plugin/params/type-level.js +2 -0
  67. package/dist/core/plugin/params/type-level.js.map +1 -0
  68. package/dist/core/plugin/params/types.d.ts +33 -0
  69. package/dist/core/plugin/params/types.d.ts.map +1 -0
  70. package/dist/core/plugin/params/types.js +12 -0
  71. package/dist/core/plugin/params/types.js.map +1 -0
  72. package/dist/core/plugin/params/values.d.ts +7 -0
  73. package/dist/core/plugin/params/values.d.ts.map +1 -0
  74. package/dist/core/plugin/params/values.js +111 -0
  75. package/dist/core/plugin/params/values.js.map +1 -0
  76. package/dist/core/web/api.d.ts +2 -14
  77. package/dist/core/web/api.d.ts.map +1 -1
  78. package/dist/core/web/api.js +8 -500
  79. package/dist/core/web/api.js.map +1 -1
  80. package/dist/core/web/routes/actions.d.ts +4 -0
  81. package/dist/core/web/routes/actions.d.ts.map +1 -0
  82. package/dist/core/web/routes/actions.js +33 -0
  83. package/dist/core/web/routes/actions.js.map +1 -0
  84. package/dist/core/web/routes/config.d.ts +5 -0
  85. package/dist/core/web/routes/config.d.ts.map +1 -0
  86. package/dist/core/web/routes/config.js +30 -0
  87. package/dist/core/web/routes/config.js.map +1 -0
  88. package/dist/core/web/routes/kv.d.ts +6 -0
  89. package/dist/core/web/routes/kv.d.ts.map +1 -0
  90. package/dist/core/web/routes/kv.js +80 -0
  91. package/dist/core/web/routes/kv.js.map +1 -0
  92. package/dist/core/web/routes/plugins.d.ts +5 -0
  93. package/dist/core/web/routes/plugins.d.ts.map +1 -0
  94. package/dist/core/web/routes/plugins.js +98 -0
  95. package/dist/core/web/routes/plugins.js.map +1 -0
  96. package/dist/core/web/routes/sessions.d.ts +8 -0
  97. package/dist/core/web/routes/sessions.d.ts.map +1 -0
  98. package/dist/core/web/routes/sessions.js +130 -0
  99. package/dist/core/web/routes/sessions.js.map +1 -0
  100. package/dist/core/web/routes/shared.d.ts +18 -0
  101. package/dist/core/web/routes/shared.d.ts.map +1 -0
  102. package/dist/core/web/routes/shared.js +19 -0
  103. package/dist/core/web/routes/shared.js.map +1 -0
  104. package/dist/core/web/routes/status.d.ts +6 -0
  105. package/dist/core/web/routes/status.d.ts.map +1 -0
  106. package/dist/core/web/routes/status.js +132 -0
  107. package/dist/core/web/routes/status.js.map +1 -0
  108. package/dist/core/web/server/auth.d.ts +17 -0
  109. package/dist/core/web/server/auth.d.ts.map +1 -0
  110. package/dist/core/web/server/auth.js +68 -0
  111. package/dist/core/web/server/auth.js.map +1 -0
  112. package/dist/core/web/server/csp.d.ts +11 -0
  113. package/dist/core/web/server/csp.d.ts.map +1 -0
  114. package/dist/core/web/server/csp.js +31 -0
  115. package/dist/core/web/server/csp.js.map +1 -0
  116. package/dist/core/web/server/request.d.ts +6 -0
  117. package/dist/core/web/server/request.d.ts.map +1 -0
  118. package/dist/core/web/server/request.js +33 -0
  119. package/dist/core/web/server/request.js.map +1 -0
  120. package/dist/core/web/server/security.d.ts +4 -0
  121. package/dist/core/web/server/security.d.ts.map +1 -0
  122. package/dist/core/web/server/security.js +12 -0
  123. package/dist/core/web/server/security.js.map +1 -0
  124. package/dist/core/web/server/sse.d.ts +18 -0
  125. package/dist/core/web/server/sse.d.ts.map +1 -0
  126. package/dist/core/web/server/sse.js +49 -0
  127. package/dist/core/web/server/sse.js.map +1 -0
  128. package/dist/core/web/server/static.d.ts +16 -0
  129. package/dist/core/web/server/static.d.ts.map +1 -0
  130. package/dist/core/web/server/static.js +80 -0
  131. package/dist/core/web/server/static.js.map +1 -0
  132. package/dist/core/web/server.d.ts +0 -7
  133. package/dist/core/web/server.d.ts.map +1 -1
  134. package/dist/core/web/server.js +41 -263
  135. package/dist/core/web/server.js.map +1 -1
  136. package/docs/architecture.md +28 -11
  137. package/docs/configuration.md +1 -1
  138. package/docs/migration.md +2 -2
  139. package/docs/plugin-api.md +24 -11
  140. package/docs/plugin-development.md +1 -1
  141. package/package.json +19 -17
  142. package/src/app/cli.ts +47 -0
  143. package/src/app/runtime.ts +522 -0
  144. package/src/app.ts +87 -395
  145. package/src/core/plugin/command-params.ts +8 -871
  146. package/src/core/plugin/install/paths.ts +72 -0
  147. package/src/core/plugin/install/state.ts +196 -0
  148. package/src/core/plugin/install/validate-script.ts +154 -0
  149. package/src/core/plugin/install-dir.ts +19 -427
  150. package/src/core/plugin/installer/checks.ts +137 -0
  151. package/src/core/plugin/installer/support.ts +120 -0
  152. package/src/core/plugin/installer/warnings.ts +52 -0
  153. package/src/core/plugin/installer.ts +52 -301
  154. package/src/core/plugin/params/compile.ts +41 -0
  155. package/src/core/plugin/params/declaration.ts +394 -0
  156. package/src/core/plugin/params/input.ts +281 -0
  157. package/src/core/plugin/params/reply.ts +59 -0
  158. package/src/core/plugin/params/type-level.ts +75 -0
  159. package/src/core/plugin/params/types.ts +55 -0
  160. package/src/core/plugin/params/values.ts +150 -0
  161. package/src/core/web/api.ts +33 -759
  162. package/src/core/web/routes/actions.ts +43 -0
  163. package/src/core/web/routes/config.ts +42 -0
  164. package/src/core/web/routes/kv.ts +122 -0
  165. package/src/core/web/routes/plugins.ts +151 -0
  166. package/src/core/web/routes/sessions.ts +188 -0
  167. package/src/core/web/routes/shared.ts +42 -0
  168. package/src/core/web/routes/status.ts +191 -0
  169. package/src/core/web/server/auth.ts +126 -0
  170. package/src/core/web/server/csp.ts +33 -0
  171. package/src/core/web/server/request.ts +38 -0
  172. package/src/core/web/server/security.ts +14 -0
  173. package/src/core/web/server/sse.ts +74 -0
  174. package/src/core/web/server/static.ts +112 -0
  175. package/src/core/web/server.ts +41 -383
package/dist/app.js CHANGED
@@ -1,178 +1,25 @@
1
1
  #!/usr/bin/env node
2
- import { existsSync, readFileSync } from 'node:fs';
3
- import { dirname, join, resolve } from 'node:path';
4
- import { parseArgs } from 'node:util';
2
+ import { dirname } from 'node:path';
5
3
  import { fileURLToPath } from 'node:url';
6
- import { createBotClient } from './core/client.js';
7
- import { ConfigError, loadConfig, resolveConfigPath, resolveDataDir, } from './core/config/loader.js';
8
- import { Kernel } from './core/kernel.js';
4
+ import { parseCli, pick, USAGE } from './app/cli.js';
5
+ import { createAppLogging, createExclusiveRunner, createRestartRequester, createRuntime, createSerialRunner, createShutdown, createWebUiDeps, credentialSignature, describeError, loadRuntimeSpec, readVersion, registerShutdownSignals, resolveRuntimeSettings, resolveStaticDir, restartDrainTimeout, startInitialRuntime, } from './app/runtime.js';
6
+ import { ConfigError } from './core/config/loader.js';
9
7
  import { ConfigStore } from './core/web/config-store.js';
10
- import { EventFeed } from './core/web/event-feed.js';
11
- import { LogBuffer } from './core/logging/log-buffer.js';
12
- import { createLogger, defaultLogSink, parseLogLevel, } from './core/logging/logger.js';
13
- import { NpmPluginInstaller } from './core/plugin/installer.js';
14
- import { loadLocalPlugins } from './core/plugin/loader.js';
15
- import { openDatabase } from './core/storage/database.js';
16
8
  import { WebUiServer } from './core/web/server.js';
17
- import { builtinPlugins } from './plugins/index.js';
18
- const LOCAL_PLUGIN_DIR = 'plugins';
19
- const USAGE = `Usage: jsbot [options]
20
-
21
- Options:
22
- --config <path> Config file path (env: BOT_CONFIG)
23
- --data-dir <path> Data directory (env: BOT_DATA_DIR)
24
- --log-level <level> debug, info, warn or error (env: BOT_LOG_LEVEL)
25
- --help Show this help
26
-
27
- Config precedence: CLI > environment > ./bot.config.json.
28
- Data precedence: CLI > environment > ./data.
29
- Local plugins: ./${LOCAL_PLUGIN_DIR}/<id>/dist (auto-built when missing).
30
- `;
31
- function pick(value) {
32
- return typeof value === 'string' && value.trim().length > 0
33
- ? value
34
- : undefined;
35
- }
36
- function mergePlugins(sources, logger) {
37
- const seen = new Set();
38
- const plugins = [];
39
- for (const source of sources) {
40
- for (const plugin of source.plugins) {
41
- const id = plugin.manifest.id;
42
- if (seen.has(id)) {
43
- logger.warn(`skipping ${source.label} plugin ${id}: plugin id already loaded`);
44
- continue;
45
- }
46
- seen.add(id);
47
- plugins.push(plugin);
48
- }
49
- }
50
- return plugins;
51
- }
52
- async function loadRuntimeSpec(settings) {
53
- const { logger } = settings;
54
- logger.info('loading config', settings.configPath);
55
- const config = await loadConfig(settings.configPath);
56
- const pluginDir = resolve(LOCAL_PLUGIN_DIR);
57
- logger.info('loading plugins from', pluginDir);
58
- const localPlugins = await loadLocalPlugins(pluginDir, logger, {
59
- buildTimeoutMs: config.installer.timeoutMs,
60
- });
61
- if (localPlugins.length > 0) {
62
- logger.info(`loaded ${localPlugins.length} plugin(s) from ${pluginDir}`);
63
- }
64
- const plugins = mergePlugins([
65
- { label: 'built-in', plugins: builtinPlugins },
66
- { label: 'plugins', plugins: localPlugins },
67
- ], logger);
68
- return {
69
- config,
70
- dataDir: settings.dataDir,
71
- pluginDir,
72
- plugins,
73
- };
74
- }
75
- function createRuntime(spec, settings, onRestart, onEvent) {
76
- const { logger } = settings;
77
- const installer = new NpmPluginInstaller({
78
- dir: spec.pluginDir,
79
- config: spec.config.installer,
80
- logger: logger.child('installer'),
81
- reservedIds: () => new Set(spec.plugins.map((plugin) => plugin.manifest.id)),
82
- configuredPluginIds: () => new Set(Object.keys(spec.config.plugins)),
83
- });
84
- const database = openDatabase({ dataDir: spec.dataDir });
85
- const client = createBotClient({
86
- url: spec.config.url,
87
- ...(spec.config.accessToken
88
- ? { accessToken: spec.config.accessToken }
89
- : {}),
90
- });
91
- const kernel = new Kernel({
92
- config: spec.config,
93
- client,
94
- logger,
95
- database,
96
- plugins: spec.plugins,
97
- installer,
98
- onRestart,
99
- onEvent,
100
- });
101
- return { spec, kernel, database, installer };
102
- }
103
- function describeError(error) {
104
- if (error instanceof Error) {
105
- return error.stack ?? `${error.name}: ${error.message}`;
106
- }
107
- return String(error);
108
- }
109
- function credentialSignature(config) {
110
- const webui = config.webui;
111
- return [webui.username ?? '', webui.password ?? ''].join(':');
112
- }
113
- function resolveStaticDir() {
114
- const scriptDir = dirname(fileURLToPath(import.meta.url));
115
- const candidates = [
116
- join(scriptDir, 'webui'),
117
- resolve(process.cwd(), 'dist/webui'),
118
- ];
119
- for (const candidate of candidates) {
120
- if (existsSync(join(candidate, 'index.html')))
121
- return candidate;
122
- }
123
- return null;
124
- }
125
- function readVersion() {
126
- try {
127
- const pkgPath = new URL('../package.json', import.meta.url);
128
- const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
129
- return pkg.version ?? 'unknown';
130
- }
131
- catch {
132
- return 'unknown';
133
- }
134
- }
9
+ const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url));
135
10
  async function main() {
136
- const { values } = parseArgs({
137
- options: {
138
- config: { type: 'string' },
139
- 'data-dir': { type: 'string' },
140
- 'log-level': { type: 'string' },
141
- help: { type: 'boolean', short: 'h' },
142
- },
143
- allowPositionals: false,
144
- });
145
- if (values.help) {
11
+ const cli = parseCli();
12
+ if (cli.help) {
146
13
  process.stdout.write(USAGE);
147
14
  return;
148
15
  }
149
- const logs = new LogBuffer();
150
- const events = new EventFeed();
151
- const tapEvents = (event) => {
152
- events.add(event);
153
- };
154
- const sink = (record) => {
155
- defaultLogSink(record);
156
- logs.push(record);
157
- };
158
- const logger = createLogger({
159
- level: parseLogLevel(pick(values['log-level']) ?? process.env.BOT_LOG_LEVEL),
160
- scope: 'app',
161
- sink,
162
- });
163
- const configPath = resolveConfigPath({
164
- config: pick(values.config),
165
- env: process.env,
166
- });
167
- const dataDir = resolveDataDir({
168
- dataDir: pick(values['data-dir']),
16
+ const { logs, events, logger, tapEvents } = createAppLogging(pick(cli.logLevel) ?? process.env.BOT_LOG_LEVEL);
17
+ const settings = resolveRuntimeSettings(logger, {
18
+ config: pick(cli.config),
19
+ dataDir: pick(cli.dataDir),
169
20
  env: process.env,
170
21
  });
171
- const settings = {
172
- logger,
173
- configPath,
174
- dataDir,
175
- };
22
+ const { configPath, dataDir } = settings;
176
23
  // Config file errors remain fatal: there is nothing the WebUI can restore
177
24
  // from when the config cannot even be parsed.
178
25
  const initialSpec = await loadRuntimeSpec(settings);
@@ -183,15 +30,8 @@ async function main() {
183
30
  let shuttingDown = false;
184
31
  let restarting = false;
185
32
  let restartPending = false;
186
- let restartTimer = null;
187
- let restartTail = Promise.resolve(true);
188
- let exclusiveTail = Promise.resolve();
189
33
  let boundWebUi = null;
190
34
  let credentials = credentialSignature(initialSpec.config);
191
- const restartDrainTimeout = (previous) => {
192
- const installTimeout = previous?.spec.config.installer.timeoutMs ?? 5_000;
193
- return Math.max(installTimeout, 5_000) * 2 + 5_000;
194
- };
195
35
  const restartRuntimeOnce = async () => {
196
36
  if (shuttingDown)
197
37
  return false;
@@ -243,107 +83,59 @@ async function main() {
243
83
  }
244
84
  }
245
85
  };
246
- const restartRuntime = () => {
247
- const run = restartTail.then(restartRuntimeOnce, restartRuntimeOnce);
248
- restartTail = run.then(() => true, () => false);
249
- return run;
250
- };
251
- const requestRestart = () => {
252
- if (shuttingDown)
253
- return;
254
- if (restarting) {
86
+ const restartRuntime = createSerialRunner(restartRuntimeOnce);
87
+ const restartRequester = createRestartRequester({
88
+ isShuttingDown: () => shuttingDown,
89
+ isRestarting: () => restarting,
90
+ markPending: () => {
255
91
  restartPending = true;
256
- return;
257
- }
258
- if (restartTimer !== null)
259
- return;
260
- restartTimer = setTimeout(() => {
261
- restartTimer = null;
262
- void restartRuntime();
263
- }, 250);
264
- };
92
+ },
93
+ restart: () => restartRuntime(),
94
+ });
95
+ const requestRestart = restartRequester.request;
265
96
  const store = new ConfigStore({
266
97
  configPath,
267
98
  getPlugins: () => runtime?.spec.plugins ?? [],
268
99
  restart: () => restartRuntime(),
269
100
  });
270
- const deps = {
271
- logger: logger.child('webui'),
272
- paths: {
273
- configPath,
274
- dataDir,
275
- pluginDir: initialSpec.pluginDir,
276
- staticDir: resolveStaticDir(),
277
- },
278
- version: readVersion(),
101
+ const runExclusive = createExclusiveRunner();
102
+ const deps = createWebUiDeps({
103
+ logger,
104
+ configPath,
105
+ dataDir,
106
+ pluginDir: initialSpec.pluginDir,
107
+ staticDir: resolveStaticDir(SCRIPT_DIR),
108
+ version: readVersion(SCRIPT_DIR),
279
109
  logs,
280
110
  events,
281
- getWebUiConfig: () => currentConfig.webui,
282
- readConfig: () => store.read(),
283
- validateConfig: (value) => store.validate(value),
284
- applyConfig: (value, baseHash) => store.apply(value, baseHash),
111
+ store,
112
+ getCurrentConfig: () => currentConfig,
113
+ getRuntime: () => runtime,
114
+ getGeneration: () => generation,
285
115
  restart: () => restartRuntime(),
286
116
  requestRestart,
287
- pause: () => runtime?.kernel.pause(),
288
- resume: () => runtime?.kernel.resume(),
289
117
  getListening: () => server.address,
290
118
  invalidateSessions: () => server.invalidateSessions(),
291
- runExclusive: async (task) => {
292
- const run = exclusiveTail.then(task, task);
293
- exclusiveTail = run.then(() => undefined, () => undefined);
294
- return run;
295
- },
296
- getRuntime: () => runtime === null
297
- ? null
298
- : {
299
- generation,
300
- config: runtime.spec.config,
301
- kernel: runtime.kernel,
302
- api: runtime.kernel.api,
303
- database: runtime.database,
304
- installer: runtime.installer,
305
- plugins: runtime.spec.plugins,
306
- },
119
+ runExclusive,
307
120
  isRestarting: () => restarting,
308
121
  getStartupError: () => startupError,
309
- getRequiresProcessRestart: () => {
310
- const webui = currentConfig.webui;
311
- if (boundWebUi === null)
312
- return webui.enabled;
313
- if (!webui.enabled)
314
- return true;
315
- return (webui.host !== boundWebUi.host || webui.port !== boundWebUi.port);
316
- },
317
- };
122
+ getBoundWebUi: () => boundWebUi,
123
+ });
318
124
  const server = new WebUiServer({
319
125
  config: initialSpec.config.webui,
320
126
  deps,
321
127
  });
322
- const shutdown = async (signal, exitCode = 0) => {
323
- if (shuttingDown)
324
- return;
325
- shuttingDown = true;
326
- if (restartTimer !== null) {
327
- clearTimeout(restartTimer);
328
- restartTimer = null;
329
- }
330
- logger.info(`received ${signal}, shutting down`);
331
- try {
332
- await runtime?.kernel.stop();
333
- await server.stop();
334
- process.exit(exitCode);
335
- }
336
- catch (error) {
337
- logger.error('shutdown failed', error);
338
- process.exit(1);
339
- }
340
- };
341
- process.once('SIGINT', () => {
342
- void shutdown('SIGINT');
343
- });
344
- process.once('SIGTERM', () => {
345
- void shutdown('SIGTERM');
128
+ const shutdown = createShutdown({
129
+ logger,
130
+ isShuttingDown: () => shuttingDown,
131
+ onBegin: () => {
132
+ shuttingDown = true;
133
+ restartRequester.clear();
134
+ },
135
+ getRuntime: () => runtime,
136
+ stopServer: () => server.stop(),
346
137
  });
138
+ registerShutdownSignals(shutdown);
347
139
  // Start the WebUI before the kernel so it stays online when startup fails.
348
140
  if (initialSpec.config.webui.enabled) {
349
141
  const address = await server.start(initialSpec.config.webui);
@@ -354,25 +146,23 @@ async function main() {
354
146
  };
355
147
  }
356
148
  }
357
- try {
358
- runtime = createRuntime(initialSpec, settings, requestRestart, tapEvents);
359
- await runtime.kernel.start();
360
- generation = 1;
361
- startupError = null;
362
- credentials = credentialSignature(currentConfig);
363
- logger.info('runtime started');
364
- }
365
- catch (error) {
366
- runtime = null;
367
- startupError = describeError(error);
368
- logger.error('runtime startup failed', error);
369
- if (boundWebUi === null) {
370
- await shutdown('startup failure', 1);
371
- }
372
- else {
373
- logger.info('webui stays online; fix the configuration on the config page and restart the runtime');
374
- }
375
- }
149
+ const started = await startInitialRuntime({
150
+ spec: initialSpec,
151
+ settings,
152
+ requestRestart,
153
+ onEvent: tapEvents,
154
+ getCurrentConfig: () => currentConfig,
155
+ hasWebUi: boundWebUi !== null,
156
+ onFailure: () => shutdown('startup failure', 1),
157
+ setRuntime: (value) => {
158
+ runtime = value;
159
+ },
160
+ generation,
161
+ credentials,
162
+ });
163
+ generation = started.generation;
164
+ startupError = started.startupError;
165
+ credentials = started.credentials;
376
166
  }
377
167
  await main().catch((error) => {
378
168
  if (error instanceof ConfigError) {
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GAGtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGlD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE1D,KAAK,UAAU,IAAI;IACf,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;IAEtB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAM;IACV,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,CACxD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAClD,CAAA;IAED,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,EAAE;QAC5C,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QACxB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;KACnB,CAAC,CAAA;IAEF,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;IAExC,0EAA0E;IAC1E,8CAA8C;IAC9C,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;IAEnD,IAAI,OAAO,GAAmB,IAAI,CAAA;IAClC,IAAI,aAAa,GAAc,WAAW,CAAC,MAAM,CAAA;IACjD,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,YAAY,GAAkB,IAAI,CAAA;IACtC,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,IAAI,UAAU,GAAyB,IAAI,CAAA;IAC3C,IAAI,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAEzD,MAAM,kBAAkB,GAAG,KAAK,IAAsB,EAAE;QACpD,IAAI,YAAY;YAAE,OAAO,KAAK,CAAA;QAE9B,UAAU,GAAG,IAAI,CAAA;QACjB,cAAc,GAAG,KAAK,CAAA;QAEtB,MAAM,QAAQ,GAAG,OAAO,CAAA;QAExB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAEjC,IAAI,CAAC;YACD,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;YAExB,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;YAElD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBAEzD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;gBAC9D,CAAC;gBAED,cAAc,GAAG,KAAK,CAAA;gBAEtB,IAAI,YAAY;oBAAE,OAAO,KAAK,CAAA;gBAE9B,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YAChC,CAAC;YAED,IAAI,YAAY;gBAAE,OAAO,KAAK,CAAA;YAE9B,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;YAE5C,aAAa,GAAG,IAAI,CAAC,MAAM,CAAA;YAE3B,MAAM,IAAI,GAAG,aAAa,CACtB,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,SAAS,CACZ,CAAA;YAED,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YAEzB,UAAU,IAAI,CAAC,CAAA;YACf,YAAY,GAAG,IAAI,CAAA;YAEnB,MAAM,SAAS,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;YAEpD,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC5B,WAAW,GAAG,SAAS,CAAA;gBACvB,MAAM,CAAC,kBAAkB,EAAE,CAAA;YAC/B,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAEhC,OAAO,IAAI,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,CAAA;YACd,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;YAE7C,OAAO,KAAK,CAAA;QAChB,CAAC;gBAAS,CAAC;YACP,UAAU,GAAG,KAAK,CAAA;YAElB,IAAI,cAAc,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClC,cAAc,GAAG,KAAK,CAAA;gBACtB,cAAc,EAAE,CAAA;YACpB,CAAC;QACL,CAAC;IACL,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;IAE7D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;QAC5C,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY;QAClC,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU;QAC9B,WAAW,EAAE,GAAG,EAAE;YACd,cAAc,GAAG,IAAI,CAAA;QACzB,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;KAClC,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAA;IAE/C,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC;QAC1B,UAAU;QACV,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;QAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;KAClC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAA;IAE5C,MAAM,IAAI,GAAG,eAAe,CAAC;QACzB,MAAM;QACN,UAAU;QACV,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,SAAS,EAAE,gBAAgB,CAAC,UAAU,CAAC;QACvC,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC;QAChC,IAAI;QACJ,MAAM;QACN,KAAK;QACL,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa;QACrC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO;QACzB,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU;QAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;QAC/B,cAAc;QACd,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO;QAClC,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE;QACrD,YAAY;QACZ,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU;QAC9B,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;QACnC,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU;KAClC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;QAC3B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK;QAChC,IAAI;KACP,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC5B,MAAM;QACN,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY;QAClC,OAAO,EAAE,GAAG,EAAE;YACV,YAAY,GAAG,IAAI,CAAA;YACnB,gBAAgB,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC;QACD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO;QACzB,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;KAClC,CAAC,CAAA;IAEF,uBAAuB,CAAC,QAAQ,CAAC,CAAA;IAEjC,2EAA2E;IAC3E,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,OAAO,GAAwB,MAAM,MAAM,CAAC,KAAK,CACnD,WAAW,CAAC,MAAM,CAAC,KAAK,CAC3B,CAAA;QAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,UAAU,GAAG;gBACT,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;aACrB,CAAA;QACL,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;QACtC,IAAI,EAAE,WAAW;QACjB,QAAQ;QACR,cAAc;QACd,OAAO,EAAE,SAAS;QAClB,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa;QACrC,QAAQ,EAAE,UAAU,KAAK,IAAI;QAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC/C,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,OAAO,GAAG,KAAK,CAAA;QACnB,CAAC;QACD,UAAU;QACV,WAAW;KACd,CAAC,CAAA;IAEF,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IAC/B,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;IACnC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;AACrC,CAAC;AAED,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAClC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CACT,KAAK,YAAY,KAAK;YAClB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;YAChC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtB,CAAA;IACL,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACxB,CAAC,CAAC,CAAA"}
@@ -1,38 +1,4 @@
1
- import { type OneBotMessageEvent } from '@snowluma/sdk';
2
- export type CommandParamType = 'string' | 'text' | 'number' | 'integer' | 'boolean' | 'at' | 'reply' | 'time';
3
- export interface ParsedCommandParams {
4
- args: unknown[];
5
- ignored: string[];
6
- }
7
- export interface CompiledCommandParams {
8
- usage: string;
9
- parse(input: string, event?: OneBotMessageEvent): ParsedCommandParams;
10
- }
11
- export declare class CommandParamsError extends Error {
12
- readonly usage: string;
13
- constructor(message: string, usage: string);
14
- }
15
- export declare function compileCommandParams(declaration: string): CompiledCommandParams;
16
- type Whitespace = ' ' | '\n' | '\r' | '\t' | '\v' | '\f';
17
- type TrimLeft<Source extends string> = Source extends `${Whitespace}${infer Rest}` ? TrimLeft<Rest> : Source;
18
- type TrimRight<Source extends string> = Source extends `${infer Rest}${Whitespace}` ? TrimRight<Rest> : Source;
19
- type Trim<Source extends string> = TrimLeft<TrimRight<Source>>;
20
- type ParamValue<Type extends string> = Trim<Type> extends 'string' | 'text' ? string : Trim<Type> extends 'number' | 'integer' | 'at' | 'reply' | 'time' ? number : Trim<Type> extends 'boolean' ? boolean : unknown;
21
- interface VariadicParam {
22
- readonly variadic: true;
23
- }
24
- type ParamType<Head extends string> = Head extends `${string}:${infer Type}` ? ParamValue<Type> : string;
25
- type ParamElement<Body extends string, Required extends boolean> = Trim<Body> extends `...${string}` ? VariadicParam : Trim<Body> extends `${infer Head}=${string}` ? ParamType<Head> : Required extends true ? ParamType<Body> : ParamType<Body> | undefined;
26
- type AppendParam<Acc extends unknown[], Element> = [Element] extends [
27
- VariadicParam
28
- ] ? [...Acc, ...string[]] : [...Acc, Element];
29
- type ParseCommandParams<Source extends string, Acc extends unknown[] = []> = Trim<Source> extends '' ? Acc : Trim<Source> extends `<${infer Body}>${infer Rest}` ? ParamElement<Body, true> extends VariadicParam ? any[] : ParseCommandParams<Rest, AppendParam<Acc, ParamElement<Body, true>>> : Trim<Source> extends `[${infer Body}]${infer Rest}` ? ParamElement<Body, false> extends VariadicParam ? Trim<Rest> extends '' ? [...Acc, ...string[]] : any[] : ParseCommandParams<Rest, AppendParam<Acc, ParamElement<Body, false>>> : any[];
30
- /**
31
- * 把 `params` 声明字符串推导成 handler 的位置参数 tuple。
32
- *
33
- * 非字面量声明(例如运行时拼接的 `string`)或无法解析的声明会回退为
34
- * `any[]`,以保证现有插件仍然可以编译。
35
- */
36
- export type CommandParamArgs<Declaration extends string> = string extends Declaration ? any[] : ParseCommandParams<Declaration>;
37
- export {};
1
+ export { CommandParamsError, type CommandParamType, type CompiledCommandParams, type ParsedCommandParams, } from './params/types.js';
2
+ export { compileCommandParams } from './params/compile.js';
3
+ export type { CommandParamArgs } from './params/type-level.js';
38
4
  //# sourceMappingURL=command-params.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-params.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/command-params.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-params.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/command-params.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GAC3B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA"}