discord-agent-bridge 0.12.0 → 0.13.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.
- package/dist/app.js +142 -4
- package/dist/app.js.map +1 -1
- package/dist/cli.js +5 -10
- package/dist/cli.js.map +1 -1
- package/dist/core/config.js +15 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/configSchema.js +32 -0
- package/dist/core/configSchema.js.map +1 -1
- package/dist/core/state/schema.js +17 -1
- package/dist/core/state/schema.js.map +1 -1
- package/dist/core/state/store.js +13 -0
- package/dist/core/state/store.js.map +1 -1
- package/dist/discord/client.js +5 -2
- package/dist/discord/client.js.map +1 -1
- package/dist/discord/configPanel.js +46 -1
- package/dist/discord/configPanel.js.map +1 -1
- package/dist/discord/i18n.js +43 -0
- package/dist/discord/i18n.js.map +1 -1
- package/dist/discord/interactionRouter.js +129 -0
- package/dist/discord/interactionRouter.js.map +1 -1
- package/dist/discord/render/blockParser.js +121 -0
- package/dist/discord/render/blockParser.js.map +1 -0
- package/dist/discord/render/browserRenderer.js +214 -0
- package/dist/discord/render/browserRenderer.js.map +1 -0
- package/dist/discord/render/chrome.js +28 -0
- package/dist/discord/render/chrome.js.map +1 -0
- package/dist/discord/render/chromiumProvisioner.js +151 -0
- package/dist/discord/render/chromiumProvisioner.js.map +1 -0
- package/dist/discord/render/htmlTemplates.js +64 -0
- package/dist/discord/render/htmlTemplates.js.map +1 -0
- package/dist/discord/render/segment.js +6 -0
- package/dist/discord/render/segment.js.map +1 -0
- package/dist/discord/renderers/answerDelivery.js +56 -0
- package/dist/discord/renderers/answerDelivery.js.map +1 -0
- package/dist/discord/renderers/index.js +33 -11
- package/dist/discord/renderers/index.js.map +1 -1
- package/dist/discord/renderers/renderSetupButton.js +31 -0
- package/dist/discord/renderers/renderSetupButton.js.map +1 -0
- package/dist/discord/renderers/streamEmbed.js +18 -25
- package/dist/discord/renderers/streamEmbed.js.map +1 -1
- package/dist/discord/renderers/updateButton.js +57 -0
- package/dist/discord/renderers/updateButton.js.map +1 -0
- package/dist/discord/renderers/usageEmbed.js +14 -4
- package/dist/discord/renderers/usageEmbed.js.map +1 -1
- package/dist/discord/wiring.js +52 -0
- package/dist/discord/wiring.js.map +1 -1
- package/dist/modes/claude/session.js +3 -1
- package/dist/modes/claude/session.js.map +1 -1
- package/dist/service/launchd.js +7 -1
- package/dist/service/launchd.js.map +1 -1
- package/dist/service/runScript.js +5 -0
- package/dist/service/runScript.js.map +1 -1
- package/dist/service/systemd.js +7 -1
- package/dist/service/systemd.js.map +1 -1
- package/dist/update/autoUpdater.js +108 -0
- package/dist/update/autoUpdater.js.map +1 -0
- package/dist/update/environment.js +33 -0
- package/dist/update/environment.js.map +1 -0
- package/dist/update/installer.js +55 -0
- package/dist/update/installer.js.map +1 -0
- package/dist/update/registry.js +49 -0
- package/dist/update/registry.js.map +1 -0
- package/dist/update/version.js +76 -0
- package/dist/update/version.js.map +1 -0
- package/dist/version.js +18 -0
- package/dist/version.js.map +1 -0
- package/package.json +4 -1
package/dist/app.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as os from 'node:os';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import { spawn } from 'node:child_process';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
1
6
|
import { PermissionFlagsBits } from 'discord.js';
|
|
2
7
|
import { ConfigStore } from './core/config.js';
|
|
3
8
|
import { StateStore } from './core/state/store.js';
|
|
@@ -19,9 +24,30 @@ import { getClaudeModels, getCodexModels } from './core/providerCatalog.js';
|
|
|
19
24
|
import { MessageRouter } from './discord/messageRouter.js';
|
|
20
25
|
import { InteractionRouter } from './discord/interactionRouter.js';
|
|
21
26
|
import { SessionWiring } from './discord/wiring.js';
|
|
27
|
+
import { ChromiumProvisioner } from './discord/render/chromiumProvisioner.js';
|
|
22
28
|
import { DiscordClient, resolveGuildProvisioner } from './discord/client.js';
|
|
23
29
|
import { autoProvisionGuild } from './discord/guildChannels.js';
|
|
30
|
+
import { resolveNotifications } from './discord/notifier.js';
|
|
31
|
+
import { buildUpdatePrompt } from './discord/renderers/updateButton.js';
|
|
24
32
|
import { setLocale, t } from './discord/i18n.js';
|
|
33
|
+
import { readVersion } from './version.js';
|
|
34
|
+
import { AutoUpdater } from './update/autoUpdater.js';
|
|
35
|
+
import { fetchLatestVersion } from './update/registry.js';
|
|
36
|
+
import { detectRestartStrategy } from './update/environment.js';
|
|
37
|
+
import { installLatest, performRestart, realCommandRunner, writePidFile, removePidFile, } from './update/installer.js';
|
|
38
|
+
// The real fs slice for PID-file writes (§3.5). Module-level so startBot (write) and
|
|
39
|
+
// App.destroy (remove) share one implementation.
|
|
40
|
+
const realMinimalFs = {
|
|
41
|
+
writeFileSync: (filePath, data) => fs.writeFileSync(filePath, data, 'utf-8'),
|
|
42
|
+
existsSync: (filePath) => fs.existsSync(filePath),
|
|
43
|
+
rmSync: (filePath, options) => fs.rmSync(filePath, options),
|
|
44
|
+
};
|
|
45
|
+
// dist/cli.js resolved relative to this module (dist/app.js → ./cli.js; src/app.ts →
|
|
46
|
+
// ./cli.ts in dev). The method-B respawn runs `node <this>` — after `npm i -g` the
|
|
47
|
+
// global package was replaced in place, so the same entry path is now the new version.
|
|
48
|
+
function appCliEntry() {
|
|
49
|
+
return path.join(path.dirname(fileURLToPath(import.meta.url)), 'cli.js');
|
|
50
|
+
}
|
|
25
51
|
export function createApp(deps) {
|
|
26
52
|
const { config, configStore } = deps;
|
|
27
53
|
// Locale is a global default the i18n catalog reads; set it before any user-facing
|
|
@@ -33,6 +59,13 @@ export function createApp(deps) {
|
|
|
33
59
|
const stateStore = new StateStore(configStore.dir);
|
|
34
60
|
const channelRegistry = new ChannelRegistry(stateStore);
|
|
35
61
|
const eventBus = new EventBus();
|
|
62
|
+
// Chromium provisioner for image rendering (tables/mermaid → PNG). Cheap to construct
|
|
63
|
+
// (no download/launch here); shared by the wiring layer (executable resolution) and the
|
|
64
|
+
// interaction router (/init + /config install prompts). Cache dir lives in the app home.
|
|
65
|
+
const imageProvisioner = new ChromiumProvisioner({
|
|
66
|
+
cacheDir: ChromiumProvisioner.cacheDirFor(configStore.dir),
|
|
67
|
+
logger,
|
|
68
|
+
});
|
|
36
69
|
const configResolver = new ConfigResolver(configStore, channelRegistry);
|
|
37
70
|
const permissionResolver = new PermissionResolver(configStore, configResolver);
|
|
38
71
|
const authorizer = new Authorizer(configStore, channelRegistry);
|
|
@@ -59,6 +92,8 @@ export function createApp(deps) {
|
|
|
59
92
|
// Read the guild's notifications config at attach() to forward key session events
|
|
60
93
|
// (result/error; tool_use if enabled) to the per-guild status channel.
|
|
61
94
|
configStore,
|
|
95
|
+
// Resolve the browser executable + install state for image rendering at attach().
|
|
96
|
+
imageProvisioner,
|
|
62
97
|
permissionTimeoutSec: config.limits.permissionTimeoutSec,
|
|
63
98
|
// Always-allow persistence (§7A): a tool the operator chose "always-allow" for
|
|
64
99
|
// is written into the GLOBAL autoAllowClaudeTools set, so the next turn (on any
|
|
@@ -119,6 +154,9 @@ export function createApp(deps) {
|
|
|
119
154
|
wiring,
|
|
120
155
|
usageService,
|
|
121
156
|
logger,
|
|
157
|
+
// Chromium provisioner: /init offers a background-install prompt when no browser is
|
|
158
|
+
// present, and /config can install/toggle image rendering later.
|
|
159
|
+
imageProvisioner,
|
|
122
160
|
// Folder-browser roots + per-backend model list are config-driven (§8.1): the
|
|
123
161
|
// saved project favorites seed the browse roots; the model step offers the
|
|
124
162
|
// per-backend model list. Codex's list is a small documented default (the
|
|
@@ -158,15 +196,26 @@ export function createApp(deps) {
|
|
|
158
196
|
for (const binding of channelRegistry.list().filter((b) => !b.archived)) {
|
|
159
197
|
await wiring.attach(binding.guildId, binding.channelId, binding.mode);
|
|
160
198
|
}
|
|
199
|
+
// Start the auto-updater only now — the gateway + guilds are ready, so postPrompt
|
|
200
|
+
// can enumerate guilds and resolve their status channels (§4). No-op when disabled.
|
|
201
|
+
autoUpdater.start();
|
|
161
202
|
logger.info('boot complete', { guilds: client.guilds.cache.size });
|
|
162
203
|
},
|
|
163
204
|
// Auto-provision each guild's channel structure on ready / guild-join so /init is
|
|
164
205
|
// optional. Resolves the guild's provisioner over the live gateway, then runs the
|
|
165
206
|
// idempotent, Manage-Channels-guarded, non-throwing provisioner.
|
|
166
|
-
autoProvisionGuild: async (guildId) => {
|
|
207
|
+
autoProvisionGuild: async (guildId, isNewGuild) => {
|
|
167
208
|
const provisioner = await resolveGuildProvisioner(discord.raw, guildId);
|
|
168
|
-
if (provisioner)
|
|
169
|
-
|
|
209
|
+
if (!provisioner)
|
|
210
|
+
return;
|
|
211
|
+
const channels = await autoProvisionGuild(provisioner, configStore, logger);
|
|
212
|
+
// Only a FRESH invite (GuildCreate) posts the one-time Chromium install prompt to the
|
|
213
|
+
// new control channel. ClientReady re-provisions every existing guild on each restart,
|
|
214
|
+
// so prompting there would re-post the prompt after every boot. The prompt is further
|
|
215
|
+
// gated (render.enabled + chromium.decision==='undecided' + !isInstalled) inside
|
|
216
|
+
// maybePromptRenderSetup, and is best-effort (never affects provisioning).
|
|
217
|
+
if (isNewGuild && channels)
|
|
218
|
+
await interactionRouter.maybePromptRenderSetup(channels.controlChannelId);
|
|
170
219
|
},
|
|
171
220
|
// A user deleted a channel directly in Discord. If it was a BOUND, non-archived
|
|
172
221
|
// session channel, detach its renderers (dispose cancels any armed stream/thinking
|
|
@@ -190,6 +239,73 @@ export function createApp(deps) {
|
|
|
190
239
|
// session channels (same late-binding pattern: the client depends on the router).
|
|
191
240
|
interactionRouter.setResolveGuildProvisioner((guildId) => resolveGuildProvisioner(discord.raw, guildId));
|
|
192
241
|
interactionRouter.setResolveChannel(SessionWiring.resolveOverClient(discord.raw));
|
|
242
|
+
// ---- Auto-update (§7). Created AFTER the client so postPrompt/announce can enumerate
|
|
243
|
+
// guilds and resolve each guild's status channel over the live gateway. This closure is
|
|
244
|
+
// the ONE place guild/discord.js meets the updater — src/update/ depends only on ports.
|
|
245
|
+
// Notifications target each guild's status channel (notifier's resolution), admin-gated
|
|
246
|
+
// at the button in interactionRouter. ----
|
|
247
|
+
const resolveStatusChannel = SessionWiring.resolveOverClient(discord.raw);
|
|
248
|
+
const forEachStatusChannel = async (fn) => {
|
|
249
|
+
for (const guildId of discord.raw.guilds.cache.keys()) {
|
|
250
|
+
const server = configStore.loadServerConfig(guildId);
|
|
251
|
+
const channelId = resolveNotifications(server).channelId;
|
|
252
|
+
if (!channelId)
|
|
253
|
+
continue;
|
|
254
|
+
const channel = await resolveStatusChannel(channelId);
|
|
255
|
+
if (!channel)
|
|
256
|
+
continue;
|
|
257
|
+
try {
|
|
258
|
+
await fn(channel);
|
|
259
|
+
}
|
|
260
|
+
catch (err) {
|
|
261
|
+
logger.warn('auto-update notify failed', { guildId, err: String(err) });
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
const autoUpdater = new AutoUpdater({
|
|
266
|
+
currentVersion: readVersion(),
|
|
267
|
+
// Read fresh each check so a config.json edit + restart takes effect.
|
|
268
|
+
enabled: () => config.autoUpdate.enabled,
|
|
269
|
+
fetchLatest: () => fetchLatestVersion(deps.fetchFn ?? fetch, { logger, userAgent: `discord-agent-bridge/${readVersion()}` }),
|
|
270
|
+
readMeta: () => stateStore.getUpdateMeta(),
|
|
271
|
+
writeMeta: (patch) => stateStore.setUpdateMeta(patch),
|
|
272
|
+
postPrompt: async (version) => {
|
|
273
|
+
const { embed, rows } = buildUpdatePrompt(version, readVersion());
|
|
274
|
+
await forEachStatusChannel(async (channel) => {
|
|
275
|
+
await channel.send({ embeds: [embed], components: rows });
|
|
276
|
+
});
|
|
277
|
+
},
|
|
278
|
+
announce: async (text) => {
|
|
279
|
+
await forEachStatusChannel(async (channel) => {
|
|
280
|
+
await channel.send({ content: text });
|
|
281
|
+
});
|
|
282
|
+
},
|
|
283
|
+
install: () => installLatest(realCommandRunner, process.platform),
|
|
284
|
+
// Detect the run form (§3.3) and restart accordingly: supervised = exit only (the
|
|
285
|
+
// service manager relaunches, so `service restart`/`uninstall` stay in control);
|
|
286
|
+
// respawn = spawn a detached successor then exit (foreground / npx / Windows).
|
|
287
|
+
restart: () => performRestart({
|
|
288
|
+
strategy: detectRestartStrategy({
|
|
289
|
+
platform: process.platform,
|
|
290
|
+
env: process.env,
|
|
291
|
+
home: os.homedir(),
|
|
292
|
+
fileExists: (p) => fs.existsSync(p),
|
|
293
|
+
}),
|
|
294
|
+
nodePath: process.execPath,
|
|
295
|
+
cliEntry: appCliEntry(),
|
|
296
|
+
spawn: (command, args, options) => spawn(command, args, options),
|
|
297
|
+
exit: (code) => process.exit(code),
|
|
298
|
+
env: process.env,
|
|
299
|
+
}),
|
|
300
|
+
messages: {
|
|
301
|
+
busy: t('update.busy'),
|
|
302
|
+
installed: t('update.installed'),
|
|
303
|
+
installFailed: t('update.installFailed'),
|
|
304
|
+
dismissed: t('update.dismissed'),
|
|
305
|
+
},
|
|
306
|
+
logger,
|
|
307
|
+
});
|
|
308
|
+
interactionRouter.setAutoUpdater(autoUpdater);
|
|
193
309
|
return {
|
|
194
310
|
discord,
|
|
195
311
|
orchestrator,
|
|
@@ -199,7 +315,20 @@ export function createApp(deps) {
|
|
|
199
315
|
logger,
|
|
200
316
|
config,
|
|
201
317
|
login: () => discord.login(config.discord.token),
|
|
202
|
-
destroy: () =>
|
|
318
|
+
destroy: async () => {
|
|
319
|
+
// Stop the update interval and clear the PID file before tearing down the gateway.
|
|
320
|
+
autoUpdater.stop();
|
|
321
|
+
try {
|
|
322
|
+
removePidFile(configStore.dir, realMinimalFs);
|
|
323
|
+
}
|
|
324
|
+
catch (err) {
|
|
325
|
+
logger.warn('failed to remove pid file', { err: String(err) });
|
|
326
|
+
}
|
|
327
|
+
// Release the warm image-render browser (if one was launched) before tearing down the
|
|
328
|
+
// gateway, so a graceful shutdown frees Chromium instead of relying on the idle timer.
|
|
329
|
+
await wiring.closeImageRenderer();
|
|
330
|
+
await discord.destroy();
|
|
331
|
+
},
|
|
203
332
|
};
|
|
204
333
|
}
|
|
205
334
|
// LAST-LINE-OF-DEFENSE process safety net. This is NOT the primary crash fix — the
|
|
@@ -254,6 +383,15 @@ export async function startBot(opts = {}) {
|
|
|
254
383
|
const logger = createLogger('app', { level: config.logLevel });
|
|
255
384
|
installGlobalSafetyNet(logger);
|
|
256
385
|
const app = createApp({ config, configStore, logger });
|
|
386
|
+
// Record this process's PID (§3.5) so an operator can terminate a detached-respawned
|
|
387
|
+
// (method-B) instance in the foreground case. Best-effort — a write failure never
|
|
388
|
+
// blocks boot. App.destroy removes it.
|
|
389
|
+
try {
|
|
390
|
+
writePidFile(configStore.dir, process.pid, realMinimalFs);
|
|
391
|
+
}
|
|
392
|
+
catch (err) {
|
|
393
|
+
logger.warn('failed to write pid file', { err: String(err) });
|
|
394
|
+
}
|
|
257
395
|
await app.login();
|
|
258
396
|
return app;
|
|
259
397
|
}
|
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":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
|
-
import * as path from 'node:path';
|
|
4
3
|
import { fileURLToPath } from 'node:url';
|
|
5
4
|
import { startBot } from './app.js';
|
|
6
5
|
import { runSetup } from './setup/wizard.js';
|
|
7
6
|
import { runServiceCommand } from './service/index.js';
|
|
8
7
|
import { ConfigStore } from './core/config.js';
|
|
8
|
+
import { readVersion } from './version.js';
|
|
9
9
|
// Thin entrypoint (§4): `--version` prints the package version, `--setup` runs the
|
|
10
10
|
// first-run wizard only (explicit re-configure), `service <sub>` manages OS auto-start
|
|
11
11
|
// registration (never boots the bot), and the default/no-flag path is a one-command
|
|
12
12
|
// first-run — it runs the wizard automatically when nothing is configured yet, then
|
|
13
13
|
// boots the bot. All real work lives in app.ts / setup/wizard.ts / service/; this file
|
|
14
14
|
// only parses argv, decides, and dispatches.
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
// dist/cli.js → ../package.json ; src/cli.ts → ../package.json
|
|
20
|
-
const pkgPath = path.join(here, '..', 'package.json');
|
|
21
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
22
|
-
return pkg.version ?? '0.0.0';
|
|
23
|
-
}
|
|
15
|
+
// readVersion lives in version.ts (extracted so app.ts can read the package version
|
|
16
|
+
// without an app↔cli import cycle). Re-exported here so existing callers — and cli.test
|
|
17
|
+
// — keep importing it from './cli.js' unchanged.
|
|
18
|
+
export { readVersion } from './version.js';
|
|
24
19
|
// Is this a first run that needs the wizard? True when there is no config.json yet,
|
|
25
20
|
// OR a config exists but its Discord token is empty/whitespace — the same two
|
|
26
21
|
// EXPECTED first-run conditions startBot() treats as "not set up" (the friendly
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,mFAAmF;AACnF,uFAAuF;AACvF,oFAAoF;AACpF,oFAAoF;AACpF,uFAAuF;AACvF,6CAA6C;AAE7C,oFAAoF;AACpF,wFAAwF;AACxF,iDAAiD;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,oFAAoF;AACpF,8EAA8E;AAC9E,gFAAgF;AAChF,kFAAkF;AAClF,6EAA6E;AAC7E,mFAAmF;AACnF,wDAAwD;AACxD,SAAS,UAAU,CAAC,KAAkB;IACpC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,2EAA2E;IAC3E,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IACD,mFAAmF;IACnF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IACD,kFAAkF;IAClF,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,IAAI,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,QAAQ,EAAE,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,mFAAmF;AACnF,+EAA+E;AAC/E,sFAAsF;AACtF,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,IAAI,MAAM,EAAE,CAAC;IACX,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/core/config.js
CHANGED
|
@@ -48,6 +48,9 @@ function applyDefaults(raw) {
|
|
|
48
48
|
policy: mergeNested(raw['policy'], CONFIG_DEFAULTS.policy),
|
|
49
49
|
usage: mergeNested(raw['usage'], CONFIG_DEFAULTS.usage),
|
|
50
50
|
audit: mergeNested(raw['audit'], CONFIG_DEFAULTS.audit),
|
|
51
|
+
render: mergeNested(raw['render'], CONFIG_DEFAULTS.render),
|
|
52
|
+
chromium: mergeNested(raw['chromium'], CONFIG_DEFAULTS.chromium),
|
|
53
|
+
autoUpdate: mergeNested(raw['autoUpdate'], CONFIG_DEFAULTS.autoUpdate),
|
|
51
54
|
};
|
|
52
55
|
}
|
|
53
56
|
export class ConfigStore {
|
|
@@ -99,6 +102,18 @@ export class ConfigStore {
|
|
|
99
102
|
this.save(config);
|
|
100
103
|
return true;
|
|
101
104
|
}
|
|
105
|
+
// Global partial-update helpers for the image-render feature (load → patch → save,
|
|
106
|
+
// mirroring addAutoAllowClaudeTool). Both keys are host-wide (no per-server override).
|
|
107
|
+
setRenderEnabled(enabled) {
|
|
108
|
+
const config = this.load();
|
|
109
|
+
config.render = { enabled };
|
|
110
|
+
this.save(config);
|
|
111
|
+
}
|
|
112
|
+
setChromiumDecision(decision) {
|
|
113
|
+
const config = this.load();
|
|
114
|
+
config.chromium = { decision };
|
|
115
|
+
this.save(config);
|
|
116
|
+
}
|
|
102
117
|
// Fail-safe: a corrupt/hand-edited server file (bad JSON or failing zod) is
|
|
103
118
|
// treated as NO override — return null so the caller falls through to global —
|
|
104
119
|
// with a loud warning. This runs at request time inside authorize()/resolve(),
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAI3B,+EAA+E;AAC/E,2EAA2E;AAC3E,+DAA+D;AAC/D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAEjD,SAAS,cAAc;IACrB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AACnD,CAAC;AAED,6EAA6E;AAC7E,sEAAsE;AACtE,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;AACtG,CAAC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,mFAAmF;AACnF,iFAAiF;AACjF,6EAA6E;AAC7E,+DAA+D;AAC/D,SAAS,WAAW,CAAC,GAAY,EAAE,GAA4B;IAC7D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,CAAC,+BAA+B;IACpE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,qCAAqC;AACrC,SAAS,aAAa,CAAC,GAA4B;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,OAAO;QACL,GAAG,eAAe;QAClB,GAAG,GAAG;QACN,OAAO,EAAE,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc;QAC7E,OAAO;QACP,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;QACpD,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;QAChE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;QAC1D,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;QAC1D,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC;QACvD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,9 +68,32 @@ export const configSchema = z.object({
|
|
|
68
68
|
audit: z.object({
|
|
69
69
|
channelId: z.string().nullable(),
|
|
70
70
|
}),
|
|
71
|
+
// Image rendering (tables/mermaid → PNG). GLOBAL only — Chromium is a single host
|
|
72
|
+
// resource shared by all guilds, so the toggle is host-wide (no per-server override).
|
|
73
|
+
// Optional with a default so existing config.json files load unchanged.
|
|
74
|
+
render: z
|
|
75
|
+
.object({
|
|
76
|
+
enabled: z.boolean(),
|
|
77
|
+
})
|
|
78
|
+
.optional(),
|
|
79
|
+
// Chromium provisioning decision (host-wide). 'undecided' → the /init prompt may offer
|
|
80
|
+
// the install button; 'declined' → never re-prompt (only /config can re-enable);
|
|
81
|
+
// 'accepted' → the operator opted in. The installed state itself is NOT stored here —
|
|
82
|
+
// it is detected on disk (chromiumProvisioner) to avoid drift.
|
|
83
|
+
chromium: z
|
|
84
|
+
.object({
|
|
85
|
+
decision: z.enum(['undecided', 'accepted', 'declined']),
|
|
86
|
+
})
|
|
87
|
+
.optional(),
|
|
71
88
|
locale: z.string(),
|
|
72
89
|
logLevel: z.enum(['debug', 'info', 'warn', 'error']),
|
|
73
90
|
favorites: z.array(z.string()),
|
|
91
|
+
// Host-wide auto-update toggle (§8). Filled by CONFIG_DEFAULTS/applyDefaults so an
|
|
92
|
+
// existing config.json without it still loads. The 24h cadence stays a constant
|
|
93
|
+
// (not exposed); on/off is edited directly in config.json (no /config or wizard UI).
|
|
94
|
+
autoUpdate: z.object({
|
|
95
|
+
enabled: z.boolean(),
|
|
96
|
+
}),
|
|
74
97
|
});
|
|
75
98
|
// ---- per-server servers/<guildId>.json (§8.1) — all overrides optional ----
|
|
76
99
|
export const serverConfigSchema = z.object({
|
|
@@ -185,8 +208,17 @@ export const CONFIG_DEFAULTS = {
|
|
|
185
208
|
audit: {
|
|
186
209
|
channelId: null,
|
|
187
210
|
},
|
|
211
|
+
render: {
|
|
212
|
+
enabled: true,
|
|
213
|
+
},
|
|
214
|
+
chromium: {
|
|
215
|
+
decision: 'undecided',
|
|
216
|
+
},
|
|
188
217
|
locale: 'ko',
|
|
189
218
|
logLevel: 'info',
|
|
190
219
|
favorites: [],
|
|
220
|
+
// Auto-update is ON by default; disable by setting "autoUpdate": { "enabled": false }
|
|
221
|
+
// in config.json (documented; no in-app toggle — §14).
|
|
222
|
+
autoUpdate: { enabled: true },
|
|
191
223
|
};
|
|
192
224
|
//# sourceMappingURL=configSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/core/configSchema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/core/configSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,13 +40,29 @@ export const channelBindingSchema = z.object({
|
|
|
40
40
|
updatedAt: z.string(),
|
|
41
41
|
archived: z.boolean(),
|
|
42
42
|
});
|
|
43
|
+
// Auto-update bookkeeping (§8). lastCheckAt guards the 24h cadence across restarts;
|
|
44
|
+
// dismissedVersion silences a version the operator declined (a newer one re-enables it).
|
|
45
|
+
// A .default (like scheduledCommands) means NO version bump / migration is needed — an
|
|
46
|
+
// existing state.json without the field loads with the default.
|
|
47
|
+
export const autoUpdateStateSchema = z
|
|
48
|
+
.object({
|
|
49
|
+
lastCheckAt: z.number(),
|
|
50
|
+
dismissedVersion: z.string().nullable(),
|
|
51
|
+
})
|
|
52
|
+
.default({ lastCheckAt: 0, dismissedVersion: null });
|
|
43
53
|
export const appStateSchema = z.object({
|
|
44
54
|
version: z.number(),
|
|
45
55
|
channels: z.record(z.string(), channelBindingSchema),
|
|
46
56
|
scheduledCommands: z.array(z.unknown()).default([]),
|
|
57
|
+
autoUpdate: autoUpdateStateSchema,
|
|
47
58
|
});
|
|
48
59
|
// A fresh, empty v2 state used when no state.json exists yet.
|
|
49
60
|
export function emptyState() {
|
|
50
|
-
return {
|
|
61
|
+
return {
|
|
62
|
+
version: STATE_VERSION,
|
|
63
|
+
channels: {},
|
|
64
|
+
scheduledCommands: [],
|
|
65
|
+
autoUpdate: { lastCheckAt: 0, dismissedVersion: null },
|
|
66
|
+
};
|
|
51
67
|
}
|
|
52
68
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/state/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,4CAA4C;AAE5C,uFAAuF;AACvF,sFAAsF;AACtF,uFAAuF;AACvF,gEAAgE;AAChE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,SAAS;IACT,aAAa;IACb,mBAAmB;IACnB,MAAM;IACN,SAAS;IACT,MAAM;IACN,WAAW;IACX,iBAAiB;IACjB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,kFAAkF;IAClF,mCAAmC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACnC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACpC,CAAC;SACD,QAAQ,EAAE;IACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC;IACpD,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/state/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,4CAA4C;AAE5C,uFAAuF;AACvF,sFAAsF;AACtF,uFAAuF;AACvF,gEAAgE;AAChE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,SAAS;IACT,aAAa;IACb,mBAAmB;IACnB,MAAM;IACN,SAAS;IACT,MAAM;IACN,WAAW;IACX,iBAAiB;IACjB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,kFAAkF;IAClF,mCAAmC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACnC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACpC,CAAC;SACD,QAAQ,EAAE;IACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CACtB,CAAC,CAAC;AAEH,oFAAoF;AACpF,yFAAyF;AACzF,uFAAuF;AACvF,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC;IACpD,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,UAAU,EAAE,qBAAqB;CAClC,CAAC,CAAC;AAMH,8DAA8D;AAC9D,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,EAAE;QACZ,iBAAiB,EAAE,EAAE;QACrB,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE;KACvD,CAAC;AACJ,CAAC"}
|
package/dist/core/state/store.js
CHANGED
|
@@ -82,5 +82,18 @@ export class StateStore {
|
|
|
82
82
|
fs.writeFileSync(tmp, data, { encoding: 'utf-8' });
|
|
83
83
|
fs.renameSync(tmp, this.statePath);
|
|
84
84
|
}
|
|
85
|
+
// Auto-update bookkeeping convenience accessors (§8), mirroring ConfigStore's
|
|
86
|
+
// addAutoAllowClaudeTool style: the AutoUpdater reads/patches this block without
|
|
87
|
+
// touching the channel bindings. getUpdateMeta returns the resolved (defaulted) block.
|
|
88
|
+
getUpdateMeta() {
|
|
89
|
+
return this.load().autoUpdate;
|
|
90
|
+
}
|
|
91
|
+
// Patch the auto-update block (lastCheckAt and/or dismissedVersion) and persist.
|
|
92
|
+
// Load → merge → save so an unrelated concurrent field is preserved.
|
|
93
|
+
setUpdateMeta(patch) {
|
|
94
|
+
const state = this.load();
|
|
95
|
+
state.autoUpdate = { ...state.autoUpdate, ...patch };
|
|
96
|
+
this.save(state);
|
|
97
|
+
}
|
|
85
98
|
}
|
|
86
99
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/core/state/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/core/state/store.ts"],"names":[],"mappings":"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"}
|
package/dist/discord/client.js
CHANGED
|
@@ -408,7 +408,8 @@ export class DiscordClient {
|
|
|
408
408
|
this.logger.error('guild-join command registration failed', { guildId: guild.id, err: String(err) });
|
|
409
409
|
});
|
|
410
410
|
if (this.autoProvisionGuild) {
|
|
411
|
-
|
|
411
|
+
// isNewGuild=true: a fresh invite → the app may post the one-time render-setup prompt.
|
|
412
|
+
void this.autoProvisionGuild(guild.id, true).catch((err) => {
|
|
412
413
|
this.logger.error('guild-join auto-provision failed', { guildId: guild.id, err: String(err) });
|
|
413
414
|
});
|
|
414
415
|
}
|
|
@@ -522,8 +523,10 @@ export class DiscordClient {
|
|
|
522
523
|
});
|
|
523
524
|
// Auto-provision each existing guild so the control/session channels appear
|
|
524
525
|
// without a manual /init (idempotent + Manage-Channels-guarded + non-throwing).
|
|
526
|
+
// isNewGuild=false: re-provisioning an existing guild on (re)boot must NOT re-post the
|
|
527
|
+
// render-setup prompt — only a fresh invite (GuildCreate) does.
|
|
525
528
|
if (this.autoProvisionGuild) {
|
|
526
|
-
await this.autoProvisionGuild(guildId).catch((err) => {
|
|
529
|
+
await this.autoProvisionGuild(guildId, false).catch((err) => {
|
|
527
530
|
this.logger.error('auto-provision failed', { guildId, err: String(err) });
|
|
528
531
|
});
|
|
529
532
|
}
|