kimaki 1.0.0 → 1.2.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 (108) hide show
  1. package/dist/autostart.js +15 -3
  2. package/dist/autostart.js.map +1 -1
  3. package/dist/bot.d.ts +7 -5
  4. package/dist/bot.js.map +1 -1
  5. package/dist/builtin-skills.d.ts +18 -0
  6. package/dist/builtin-skills.js +51 -0
  7. package/dist/builtin-skills.js.map +1 -0
  8. package/dist/builtin-skills.test.d.ts +1 -0
  9. package/dist/builtin-skills.test.js +28 -0
  10. package/dist/builtin-skills.test.js.map +1 -0
  11. package/dist/cli/bot.js +10 -0
  12. package/dist/cli/bot.js.map +1 -1
  13. package/dist/cli/discord.js +1 -1
  14. package/dist/cli/discord.js.map +1 -1
  15. package/dist/cli/session.js +17 -53
  16. package/dist/cli/session.js.map +1 -1
  17. package/dist/cli-discord.e2e.test.js +19 -1
  18. package/dist/cli-discord.e2e.test.js.map +1 -1
  19. package/dist/cli-lock.e2e.test.js +7 -6
  20. package/dist/cli-lock.e2e.test.js.map +1 -1
  21. package/dist/cli-read.e2e.test.js +8 -3
  22. package/dist/cli-read.e2e.test.js.map +1 -1
  23. package/dist/cli-sessions.e2e.test.js +2 -4
  24. package/dist/cli-sessions.e2e.test.js.map +1 -1
  25. package/dist/commands/login-commands.d.ts +1 -1
  26. package/dist/commands/preference-commands.d.ts +1 -1
  27. package/dist/commands/preference-commands.js +17 -3
  28. package/dist/commands/preference-commands.js.map +1 -1
  29. package/dist/commands/worktree-commands.d.ts +1 -1
  30. package/dist/effects.js +30 -6
  31. package/dist/effects.js.map +1 -1
  32. package/dist/errors.d.ts +1 -1
  33. package/dist/errors.js +1 -1
  34. package/dist/errors.js.map +1 -1
  35. package/dist/event-loop.d.ts +2 -1
  36. package/dist/event-loop.js +5 -1
  37. package/dist/event-loop.js.map +1 -1
  38. package/dist/ingress.d.ts +1 -1
  39. package/dist/ingress.js +14 -11
  40. package/dist/ingress.js.map +1 -1
  41. package/dist/lock-routes.d.ts +12 -12
  42. package/dist/login.e2e.test.js +2 -2
  43. package/dist/main.d.ts +2 -0
  44. package/dist/main.js +223 -151
  45. package/dist/main.js.map +1 -1
  46. package/dist/opencode-server.js +15 -11
  47. package/dist/opencode-server.js.map +1 -1
  48. package/dist/opencode-server.test.js +1 -1
  49. package/dist/opencode-server.test.js.map +1 -1
  50. package/dist/plugin/index.js +19 -1
  51. package/dist/plugin/index.js.map +1 -1
  52. package/dist/plugin/read-media.d.ts +23 -0
  53. package/dist/plugin/read-media.js +72 -0
  54. package/dist/plugin/read-media.js.map +1 -0
  55. package/dist/plugin.e2e.test.js +6 -1
  56. package/dist/plugin.e2e.test.js.map +1 -1
  57. package/dist/prompt.d.ts +6 -6
  58. package/dist/prompt.js +10 -11
  59. package/dist/prompt.js.map +1 -1
  60. package/dist/scheduler.d.ts +1 -1
  61. package/dist/session-events.d.ts +29 -1
  62. package/dist/session-events.js +70 -0
  63. package/dist/session-events.js.map +1 -1
  64. package/dist/sessions.d.ts +10 -10
  65. package/dist/sessions.js +3 -2
  66. package/dist/sessions.js.map +1 -1
  67. package/dist/slash-commands.js +4 -3
  68. package/dist/slash-commands.js.map +1 -1
  69. package/dist/system-prompt.d.ts +13 -2
  70. package/dist/system-prompt.js +41 -64
  71. package/dist/system-prompt.js.map +1 -1
  72. package/dist/voice-attachments.e2e.test.js +6 -3
  73. package/dist/voice-attachments.e2e.test.js.map +1 -1
  74. package/dist/voice-call.js +1 -1
  75. package/dist/voice-call.js.map +1 -1
  76. package/package.json +7 -6
  77. package/skills/kimaki-debug/SKILL.md +44 -0
  78. package/skills/kimaki-tunnel/SKILL.md +34 -0
  79. package/src/autostart.ts +15 -3
  80. package/src/bot.ts +4 -0
  81. package/src/builtin-skills.test.ts +29 -0
  82. package/src/builtin-skills.ts +59 -0
  83. package/src/cli/bot.ts +9 -0
  84. package/src/cli/discord.ts +1 -1
  85. package/src/cli/session.ts +14 -47
  86. package/src/cli-discord.e2e.test.ts +18 -1
  87. package/src/cli-lock.e2e.test.ts +7 -6
  88. package/src/cli-read.e2e.test.ts +8 -3
  89. package/src/cli-sessions.e2e.test.ts +2 -4
  90. package/src/commands/preference-commands.ts +19 -6
  91. package/src/effects.ts +40 -6
  92. package/src/errors.ts +1 -1
  93. package/src/event-loop.ts +9 -0
  94. package/src/ingress.ts +16 -11
  95. package/src/login.e2e.test.ts +2 -2
  96. package/src/main.ts +12 -2
  97. package/src/opencode-server.test.ts +1 -1
  98. package/src/opencode-server.ts +12 -9
  99. package/src/plugin/index.ts +20 -1
  100. package/src/plugin.e2e.test.ts +6 -1
  101. package/src/prompt.ts +10 -10
  102. package/src/session-events.ts +83 -0
  103. package/src/sessions.ts +3 -2
  104. package/src/slash-commands.ts +4 -3
  105. package/src/system-prompt.ts +43 -64
  106. package/src/voice-attachments.e2e.test.ts +6 -3
  107. package/src/voice-call.ts +1 -1
  108. package/src/plugin/session-id/index.ts +0 -19
package/dist/main.js CHANGED
@@ -1,6 +1,58 @@
1
1
  // Bot wiring. Order: lock port (bound by the caller) -> SQLite (migrate) -> OpenCode service and
2
2
  // Discord login in parallel. Returns a handle so tests can drive the bot
3
3
  // in-process and stop it cleanly.
4
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
5
+ if (value !== null && value !== void 0) {
6
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
7
+ var dispose, inner;
8
+ if (async) {
9
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
10
+ dispose = value[Symbol.asyncDispose];
11
+ }
12
+ if (dispose === void 0) {
13
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
14
+ dispose = value[Symbol.dispose];
15
+ if (async) inner = dispose;
16
+ }
17
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
18
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
19
+ env.stack.push({ value: value, dispose: dispose, async: async });
20
+ }
21
+ else if (async) {
22
+ env.stack.push({ async: true });
23
+ }
24
+ return value;
25
+ };
26
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
27
+ return function (env) {
28
+ function fail(e) {
29
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
30
+ env.hasError = true;
31
+ }
32
+ var r, s = 0;
33
+ function next() {
34
+ while (r = env.stack.pop()) {
35
+ try {
36
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
37
+ if (r.dispose) {
38
+ var result = r.dispose.call(r.value);
39
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
40
+ }
41
+ else s |= 1;
42
+ }
43
+ catch (e) {
44
+ fail(e);
45
+ }
46
+ }
47
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
48
+ if (env.hasError) throw env.error;
49
+ }
50
+ return next();
51
+ };
52
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
53
+ var e = new Error(message);
54
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
55
+ });
4
56
  import { setTimeout as sleep } from 'node:timers/promises';
5
57
  import { Client, Events, GatewayIntentBits, Partials } from 'discord.js';
6
58
  import * as errore from 'errore';
@@ -17,7 +69,7 @@ import { createLogger } from "./logger.js";
17
69
  import { installPluginShim, watchOpencode } from "./opencode-server.js";
18
70
  import { countUserProjects } from "./project.js";
19
71
  import { createScheduler, systemClock } from "./scheduler.js";
20
- import { createEventRecorder } from "./session-events.js";
72
+ import { createEventRecorder, syncSessionTranscript } from "./session-events.js";
21
73
  import { createPluginWait, refreshCliContext } from "./sessions.js";
22
74
  import { createInteractionRegistry, registerSlashCommands } from "./slash-commands.js";
23
75
  import { createSleepLock } from "./sleeps.js";
@@ -34,157 +86,177 @@ async function loginDiscord({ discord, token }) {
34
86
  await ready;
35
87
  }
36
88
  export async function startBot(options) {
37
- // Each resource registers its cleanup when acquired; disposal runs in reverse
38
- // (commands and scheduler first, the db and the lock port last). A startup
39
- // failure disposes it on return; a started bot moves it into stop().
40
- await using cleanup = new errore.AsyncDisposableStack();
41
- const lock = options.lock;
42
- cleanup.defer(() => lock.close());
43
- const opened = await openDb({ dataDir: options.dataDir, migrate: true });
44
- if (opened instanceof Error)
45
- return opened;
46
- cleanup.defer(() => opened.close());
47
- const db = opened.db;
48
- const discord = new Client({
49
- intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildVoiceStates],
50
- partials: [Partials.Channel, Partials.Message, Partials.User, Partials.ThreadMember],
51
- ...(options.discordRestUrl && { rest: { api: options.discordRestUrl, version: '10' } }),
52
- });
53
- // TODO: drop this once @discordjs/rest can keep its token on 401. handleErrors()
54
- // calls setToken(null) on any 401, and every later request fails with "Expected
55
- // token to be set" until a restart. One transient 401 (gateway-proxy restarting
56
- // with an empty client registry) must not kill the bot. Only Client.destroy()
57
- // may clear it: it sets client.token to null first.
58
- // https://github.com/discordjs/discord.js/blob/main/packages/rest/src/lib/handlers/Shared.ts
59
- const setToken = discord.rest.setToken.bind(discord.rest);
60
- discord.rest.setToken = (token) => {
61
- // Typed string, but handleErrors() and destroy() pass null.
62
- if (!token && discord.token !== null) {
63
- logger.warn('Discord REST answered 401; keeping the bot token for the next request');
64
- return discord.rest;
65
- }
66
- return setToken(token);
67
- };
68
- // Gateway lifecycle, to debug reconnects that break voice joins or event delivery.
69
- discord.on(Events.ShardDisconnect, (event, id) => logger.warn(`gateway shard ${id} disconnected with code ${event.code}`));
70
- discord.on(Events.ShardReconnecting, (id) => logger.warn(`gateway shard ${id} reconnecting`));
71
- discord.on(Events.ShardResume, (id, replayed) => logger.info(`gateway shard ${id} resumed, ${replayed} events replayed`));
72
- discord.on(Events.ShardReady, (id) => logger.info(`gateway shard ${id} ready`));
73
- discord.on(Events.ShardError, (error, id) => logger.warn(`gateway shard ${id} error`, error));
74
- // TODO: await destroy() fully once gateway-proxy uses Fly's `tls` handler. Fly's `http`
75
- // handler closes a WebSocket's client TCP ~5s after the proxy closed it, and destroy()
76
- // waits for that TCP close, so Ctrl+C took 5s. The close frames are exchanged by then.
77
- cleanup.defer(() => Promise.race([discord.destroy(), sleep(DISCORD_CLOSE_WAIT_MS, undefined, { ref: false })]));
78
- cleanup.defer(() => options.analytics.flush());
79
- const store = createBotStore();
80
- const recorder = createEventRecorder({ dataDir: options.dataDir });
81
- cleanup.defer(() => recorder.close());
82
- const effects = createEffectsRunner({
83
- discord,
84
- // Viewed effects come from OpenCode events, so `opencode` below is always set by then.
85
- markViewed: async ({ sessionId, idle }) => {
86
- const result = await oc({ opencode }, 'mark session viewed', (client) => client.session.view({ sessionID: sessionId, idle }));
87
- if (result instanceof Error)
88
- return result;
89
- },
90
- });
91
- cleanup.defer(() => effects.stop());
92
- const voiceCalls = createVoiceCalls({ opencodeConfigDir: options.opencodeConfigDir });
93
- const eventLoop = createEventLoop({ store, db, discord, effects, recorder, analytics: options.analytics, onRunEnded: voiceCalls.runEnded });
94
- const loaded = await eventLoop.load();
95
- if (loaded instanceof Error)
96
- return loaded;
97
- // Before the service is used, so a service started by ensure() loads it at once.
98
- const plugin = await installPluginShim({ configDir: options.opencodeConfigDir });
99
- if (plugin instanceof Error)
100
- return plugin;
101
- const opencode = watchOpencode({
102
- serviceFile: options.opencodeServiceFile,
103
- ensure: options.ensureOpencode,
104
- onConnect: eventLoop.onConnect,
105
- onEvent: eventLoop.onEvent,
106
- onDisconnect: eventLoop.onDisconnect,
107
- });
108
- cleanup.defer(() => opencode.stop());
109
- const shim = await installShim({ dataDir: options.dataDir, command: options.kimakiCommand });
110
- if (shim instanceof Error)
111
- return shim;
112
- // The features that non-interaction code reaches through bot.features.
113
- const agentUi = createAgentUi({ store, eventLoop, opencode });
114
- cleanup.defer(() => agentUi.stop());
115
- const bot = {
116
- discord,
117
- db,
118
- store,
119
- opencode,
120
- eventLoop,
121
- effects,
122
- analytics: options.analytics,
123
- clock: options.clock ?? systemClock,
124
- dataDir: options.dataDir,
125
- lockPort: lock.port,
126
- supervised: lock.supervised,
127
- token: options.token,
128
- appId: options.appId,
129
- opencodeDbFile: options.opencodeDbFile,
130
- transcriptionBaseUrls: options.transcriptionBaseUrls ?? {},
131
- realtimeBaseUrls: options.realtimeBaseUrls ?? {},
132
- autoWorktrees: options.autoWorktrees ?? false,
133
- features: { withSleepLock: createSleepLock(), waitForPlugin: createPluginWait({ opencode }), agentUi, voiceCalls },
134
- };
135
- const scheduler = createScheduler({
136
- bot,
137
- intervalMs: options.schedulerIntervalMs === undefined ? 5_000 : options.schedulerIntervalMs,
138
- });
139
- cleanup.defer(() => scheduler.stop());
140
- // The lock server only passes /kimaki/* paths.
141
- lock.handle((route, input, signal) => runLockRoute(bot, { route: route.slice('/kimaki/'.length), input, signal }));
142
- // Before login: gateway-proxy replays missed messages right after READY.
143
- registerIngress(bot);
144
- voiceCalls.register(bot);
145
- // Before discord.destroy() (registered earlier, so disposed later): leaving voice needs the gateway.
146
- cleanup.defer(() => voiceCalls.stop(bot));
147
- // Resolves with the first fatal error, or null when both sides are ready.
148
- // Not Promise.all: a failed side must not wait for the other (Discord login
149
- // or OpenCode retries can take long), and the other side's "stopped" error
150
- // would hide the real cause.
151
- const failure = await new Promise((resolve) => {
152
- const pending = { count: 2 };
153
- const settle = (result) => {
154
- if (result instanceof Error) {
155
- resolve(result);
156
- return;
89
+ const env_1 = { stack: [], error: void 0, hasError: false };
90
+ try {
91
+ // Each resource registers its cleanup when acquired; disposal runs in reverse
92
+ // (commands and scheduler first, the db and the lock port last). A startup
93
+ // failure disposes it on return; a started bot moves it into stop().
94
+ const cleanup = __addDisposableResource(env_1, new errore.AsyncDisposableStack(), true);
95
+ const lock = options.lock;
96
+ cleanup.defer(() => lock.close());
97
+ const opened = await openDb({ dataDir: options.dataDir, migrate: true });
98
+ if (opened instanceof Error)
99
+ return opened;
100
+ cleanup.defer(() => opened.close());
101
+ const db = opened.db;
102
+ const discord = new Client({
103
+ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildVoiceStates],
104
+ partials: [Partials.Channel, Partials.Message, Partials.User, Partials.ThreadMember],
105
+ ...(options.discordRestUrl && { rest: { api: options.discordRestUrl, version: '10' } }),
106
+ });
107
+ // TODO: drop this once @discordjs/rest can keep its token on 401. handleErrors()
108
+ // calls setToken(null) on any 401, and every later request fails with "Expected
109
+ // token to be set" until a restart. One transient 401 (gateway-proxy restarting
110
+ // with an empty client registry) must not kill the bot. Only Client.destroy()
111
+ // may clear it: it sets client.token to null first.
112
+ // https://github.com/discordjs/discord.js/blob/main/packages/rest/src/lib/handlers/Shared.ts
113
+ const setToken = discord.rest.setToken.bind(discord.rest);
114
+ discord.rest.setToken = (token) => {
115
+ // Typed string, but handleErrors() and destroy() pass null.
116
+ if (!token && discord.token !== null) {
117
+ logger.warn('Discord REST answered 401; keeping the bot token for the next request');
118
+ return discord.rest;
157
119
  }
158
- pending.count--;
159
- if (pending.count === 0)
160
- resolve(null);
120
+ return setToken(token);
121
+ };
122
+ // Gateway lifecycle, to debug reconnects that break voice joins or event delivery.
123
+ discord.on(Events.ShardDisconnect, (event, id) => logger.warn(`gateway shard ${id} disconnected with code ${event.code}`));
124
+ discord.on(Events.ShardReconnecting, (id) => logger.warn(`gateway shard ${id} reconnecting`));
125
+ discord.on(Events.ShardResume, (id, replayed) => logger.info(`gateway shard ${id} resumed, ${replayed} events replayed`));
126
+ discord.on(Events.ShardReady, (id) => logger.info(`gateway shard ${id} ready`));
127
+ discord.on(Events.ShardError, (error, id) => logger.warn(`gateway shard ${id} error`, error));
128
+ // TODO: await destroy() fully once gateway-proxy uses Fly's `tls` handler. Fly's `http`
129
+ // handler closes a WebSocket's client TCP ~5s after the proxy closed it, and destroy()
130
+ // waits for that TCP close, so Ctrl+C took 5s. The close frames are exchanged by then.
131
+ cleanup.defer(() => Promise.race([discord.destroy(), sleep(DISCORD_CLOSE_WAIT_MS, undefined, { ref: false })]));
132
+ cleanup.defer(() => options.analytics.flush());
133
+ const store = createBotStore();
134
+ const recorder = createEventRecorder({ dataDir: options.dataDir });
135
+ cleanup.defer(() => recorder.close());
136
+ const effects = createEffectsRunner({
137
+ discord,
138
+ // Viewed effects come from OpenCode events, so `opencode` below is always set by then.
139
+ markViewed: async ({ sessionId, idle }) => {
140
+ const result = await oc({ opencode }, 'mark session viewed', (client) => client.session.view({ sessionID: sessionId, idle }));
141
+ if (result instanceof Error)
142
+ return result;
143
+ },
144
+ });
145
+ cleanup.defer(() => effects.stop());
146
+ const voiceCalls = createVoiceCalls({ opencodeConfigDir: options.opencodeConfigDir });
147
+ const onTranscriptDue = (sessionId) => {
148
+ void oc({ opencode }, 'sync transcript', (client) => syncSessionTranscript({ client, dataDir: options.dataDir, sessionId })).then((result) => {
149
+ if (result instanceof Error)
150
+ logger.warn(`transcript of ${sessionId} not synced`, result);
151
+ });
152
+ };
153
+ const eventLoop = createEventLoop({ store, db, discord, effects, recorder, analytics: options.analytics, onRunEnded: voiceCalls.runEnded, onTranscriptDue });
154
+ const loaded = await eventLoop.load();
155
+ if (loaded instanceof Error)
156
+ return loaded;
157
+ // Before the service is used, so a service started by ensure() loads it at once.
158
+ const plugin = await installPluginShim({ configDir: options.opencodeConfigDir });
159
+ if (plugin instanceof Error)
160
+ return plugin;
161
+ const opencode = watchOpencode({
162
+ serviceFile: options.opencodeServiceFile,
163
+ ensure: options.ensureOpencode,
164
+ onConnect: eventLoop.onConnect,
165
+ onEvent: eventLoop.onEvent,
166
+ onDisconnect: eventLoop.onDisconnect,
167
+ });
168
+ cleanup.defer(() => opencode.stop());
169
+ const shim = await installShim({ dataDir: options.dataDir, command: options.kimakiCommand });
170
+ if (shim instanceof Error)
171
+ return shim;
172
+ // The features that non-interaction code reaches through bot.features.
173
+ const agentUi = createAgentUi({ store, eventLoop, opencode });
174
+ cleanup.defer(() => agentUi.stop());
175
+ const bot = {
176
+ discord,
177
+ db,
178
+ store,
179
+ opencode,
180
+ eventLoop,
181
+ effects,
182
+ analytics: options.analytics,
183
+ clock: options.clock ?? systemClock,
184
+ dataDir: options.dataDir,
185
+ lockPort: lock.port,
186
+ supervised: lock.supervised,
187
+ token: options.token,
188
+ appId: options.appId,
189
+ opencodeDbFile: options.opencodeDbFile,
190
+ transcriptionBaseUrls: options.transcriptionBaseUrls ?? {},
191
+ realtimeBaseUrls: options.realtimeBaseUrls ?? {},
192
+ autoWorktrees: options.autoWorktrees ?? false,
193
+ allowAllUsers: options.allowAllUsers ?? false,
194
+ disabledSkills: options.disabledSkills ?? [],
195
+ features: { withSleepLock: createSleepLock(), waitForPlugin: createPluginWait({ opencode }), agentUi, voiceCalls },
161
196
  };
162
- void opencode.ready.then(settle);
163
- void loginDiscord({ discord, token: options.token }).then(settle);
164
- });
165
- if (failure)
166
- return failure;
167
- const refreshed = await refreshCliContext(bot);
168
- if (refreshed instanceof Error)
169
- return refreshed;
170
- const commands = registerSlashCommands(bot, createInteractionRegistry(), { globalDirectory: options.opencodeConfigDir });
171
- cleanup.defer(() => commands.stop());
172
- // Awaited so the handle is only returned once every guild has its commands.
173
- await commands.registerAll();
174
- // After Discord and OpenCode are ready: a due task needs both.
175
- const scheduling = await scheduler.start();
176
- if (scheduling instanceof Error)
177
- return scheduling;
178
- logger.info(`bot ready as ${discord.user?.tag} in ${discord.guilds.cache.size} server(s)`);
179
- const projects = await countUserProjects({ db, dataDir: options.dataDir });
180
- if (projects instanceof Error)
181
- logger.warn(projects);
182
- options.analytics.track('bot_started', {
183
- guild_count: discord.guilds.cache.size,
184
- ...(!(projects instanceof Error) && { user_project_count: projects }),
185
- });
186
- const resources = cleanup.move();
187
- let stopping;
188
- return { ...bot, lock, scheduler: { runDueTasks: scheduler.runDueTasks }, stop: () => (stopping ??= resources.disposeAsync()) };
197
+ const scheduler = createScheduler({
198
+ bot,
199
+ intervalMs: options.schedulerIntervalMs === undefined ? 5_000 : options.schedulerIntervalMs,
200
+ });
201
+ cleanup.defer(() => scheduler.stop());
202
+ // The lock server only passes /kimaki/* paths.
203
+ lock.handle((route, input, signal) => runLockRoute(bot, { route: route.slice('/kimaki/'.length), input, signal }));
204
+ // Before login: gateway-proxy replays missed messages right after READY.
205
+ registerIngress(bot);
206
+ voiceCalls.register(bot);
207
+ // Before discord.destroy() (registered earlier, so disposed later): leaving voice needs the gateway.
208
+ cleanup.defer(() => voiceCalls.stop(bot));
209
+ // Resolves with the first fatal error, or null when both sides are ready.
210
+ // Not Promise.all: a failed side must not wait for the other (Discord login
211
+ // or OpenCode retries can take long), and the other side's "stopped" error
212
+ // would hide the real cause.
213
+ const failure = await new Promise((resolve) => {
214
+ const pending = { count: 2 };
215
+ const settle = (result) => {
216
+ if (result instanceof Error) {
217
+ resolve(result);
218
+ return;
219
+ }
220
+ pending.count--;
221
+ if (pending.count === 0)
222
+ resolve(null);
223
+ };
224
+ void opencode.ready.then(settle);
225
+ void loginDiscord({ discord, token: options.token }).then(settle);
226
+ });
227
+ if (failure)
228
+ return failure;
229
+ const refreshed = await refreshCliContext(bot);
230
+ if (refreshed instanceof Error)
231
+ return refreshed;
232
+ const commands = registerSlashCommands(bot, createInteractionRegistry(), { globalDirectory: options.opencodeConfigDir });
233
+ cleanup.defer(() => commands.stop());
234
+ // Awaited so the handle is only returned once every guild has its commands.
235
+ await commands.registerAll();
236
+ // After Discord and OpenCode are ready: a due task needs both.
237
+ const scheduling = await scheduler.start();
238
+ if (scheduling instanceof Error)
239
+ return scheduling;
240
+ logger.info(`bot ready as ${discord.user?.tag} in ${discord.guilds.cache.size} server(s)`);
241
+ const projects = await countUserProjects({ db, dataDir: options.dataDir });
242
+ if (projects instanceof Error)
243
+ logger.warn(projects);
244
+ options.analytics.track('bot_started', {
245
+ guild_count: discord.guilds.cache.size,
246
+ ...(!(projects instanceof Error) && { user_project_count: projects }),
247
+ });
248
+ const resources = cleanup.move();
249
+ let stopping;
250
+ return { ...bot, lock, scheduler: { runDueTasks: scheduler.runDueTasks }, stop: () => (stopping ??= resources.disposeAsync()) };
251
+ }
252
+ catch (e_1) {
253
+ env_1.error = e_1;
254
+ env_1.hasError = true;
255
+ }
256
+ finally {
257
+ const result_1 = __disposeResources(env_1);
258
+ if (result_1)
259
+ await result_1;
260
+ }
189
261
  }
190
262
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -131,13 +131,14 @@ export function opencodeDbFile() {
131
131
  // through its index module. Always dist, also when the bot runs from src: OpenCode
132
132
  // reloads the plugin when its files change, so a src target would reload half
133
133
  // edited code on every save. dist only changes on `pnpm build`.
134
- // `kimaki` acts only on marked sessions; `kimaki-anthropic` (provider auth) and
135
- // `kimaki-session-id` (session ID in the system prompt) apply to every session.
134
+ // `kimaki` acts only on marked sessions (except the session ID line);
135
+ // `kimaki-anthropic` (provider auth) applies to every session.
136
136
  const PLUGIN_SHIMS = [
137
137
  { name: 'kimaki', directory: '' },
138
138
  { name: 'kimaki-anthropic', directory: 'anthropic' },
139
- { name: 'kimaki-session-id', directory: 'session-id' },
140
139
  ];
140
+ // Shims of older Kimaki versions, removed on bot start. kimaki-session-id moved into the kimaki plugin.
141
+ const LEGACY_SHIMS = ['kimaki-session-id'];
141
142
  export function kimakiPluginEntry(directory = '') {
142
143
  // This module is <package>/src/opencode-server.ts or <package>/dist/opencode-server.js.
143
144
  const root = path.dirname(path.dirname(fileURLToPath(import.meta.url)));
@@ -218,7 +219,7 @@ async function installShim({ configDir, name, entry }) {
218
219
  // A shim whose plugin the global config already lists would load one plugin ID
219
220
  // twice. OpenCode keeps the first and reports the other as a failed plugin
220
221
  // ("Duplicate plugin ID", plugin/supervisor.ts), so the shim is removed instead.
221
- async function removeShim({ configDir, name }) {
222
+ async function removeShim({ configDir, name, why }) {
222
223
  const directory = path.join(configDir, 'plugins', name);
223
224
  if (!fs.existsSync(directory))
224
225
  return { file: directory, written: false };
@@ -227,17 +228,20 @@ async function removeShim({ configDir, name }) {
227
228
  .catch((cause) => new ConfigError({ reason: `Cannot remove the Kimaki OpenCode plugin shim ${directory}. Check permissions of ${configDir}`, cause }));
228
229
  if (removed instanceof Error)
229
230
  return removed;
230
- logger.log(`removed OpenCode plugin shim ${directory}: opencode.json already loads this plugin`);
231
+ logger.log(`removed OpenCode plugin shim ${directory}: ${why}`);
231
232
  return { file: directory, written: true };
232
233
  }
233
234
  export async function installPluginShim({ configDir }) {
234
235
  const targets = await configuredPluginTargets({ configDir });
235
- const results = await Promise.all(PLUGIN_SHIMS.map(async (shim) => {
236
- const configured = await Promise.all(targets.map((target) => isKimakiPluginDirectory({ target, directory: shim.directory })));
237
- if (configured.includes(true))
238
- return removeShim({ configDir, name: shim.name });
239
- return installShim({ configDir, name: shim.name, entry: kimakiPluginEntry(shim.directory) });
240
- }));
236
+ const results = await Promise.all([
237
+ ...PLUGIN_SHIMS.map(async (shim) => {
238
+ const configured = await Promise.all(targets.map((target) => isKimakiPluginDirectory({ target, directory: shim.directory })));
239
+ if (configured.includes(true))
240
+ return removeShim({ configDir, name: shim.name, why: 'opencode.json already loads this plugin' });
241
+ return installShim({ configDir, name: shim.name, entry: kimakiPluginEntry(shim.directory) });
242
+ }),
243
+ ...LEGACY_SHIMS.map((name) => removeShim({ configDir, name, why: 'replaced by the kimaki plugin' })),
244
+ ]);
241
245
  const failed = results.find((result) => result instanceof Error);
242
246
  if (failed instanceof Error)
243
247
  return failed;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-server.js","sourceRoot":"","sources":["../src/opencode-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-server.js","sourceRoot":"","sources":["../src/opencode-server.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ test('supported binary wins over OpenCode 1, only OpenCode 1 is an error, nothin
14
14
  const message = (value) => (value instanceof Error ? value.message.replace(dir, '<dir>') : value);
15
15
  expect(await findOpencodeBinary({ candidates: ['kimaki-missing-opencode2', v2, v1] })).toBe(v2);
16
16
  expect(await findOpencodeBinary({ candidates: ['kimaki-missing-opencode2', v1, v2] })).toBe(v2);
17
- expect(message(await findOpencodeBinary({ candidates: ['kimaki-missing-opencode2', v1] }))).toMatchInlineSnapshot(`"Kimaki now requires OpenCode 2, but <dir>/opencode is OpenCode 1.15.5. Install OpenCode 2 with: curl -fsSL https://opencode.ai/v2/install | bash (or: npm i -g @opencode/cli). Then run kimaki again"`);
17
+ expect(message(await findOpencodeBinary({ candidates: ['kimaki-missing-opencode2', v1] }))).toMatchInlineSnapshot(`"Kimaki now requires OpenCode 2, but <dir>/opencode is OpenCode 1.15.5. Install OpenCode 2 with: curl -fsSL https://opencode.ai/v2/install | bash (or: npm i -g @opencode/cli). Then run kimaki again. To keep using OpenCode 1, run the older Kimaki instead: npx kimaki@0"`);
18
18
  expect(await findOpencodeBinary({ candidates: ['kimaki-missing-opencode2'] })).toBe(null);
19
19
  fs.rmSync(dir, { recursive: true, force: true });
20
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-server.test.js","sourceRoot":"","sources":["../src/opencode-server.test.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yDAAyD;AAEzD,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,IAAI,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;IAC3G,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAC1E,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACrC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACjE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;IAC3B,MAAM,OAAO,GAAG,CAAC,KAA4B,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAExH,MAAM,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,0BAA0B,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/F,MAAM,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,0BAA0B,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/F,MAAM,CAAC,OAAO,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,0BAA0B,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,wMAAwM,CAAC,CAAA;IAC3T,MAAM,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzF,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAClD,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"opencode-server.test.js","sourceRoot":"","sources":["../src/opencode-server.test.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yDAAyD;AAEzD,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,IAAI,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;IAC3G,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAC1E,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACrC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACjE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;IAC3B,MAAM,OAAO,GAAG,CAAC,KAA4B,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAExH,MAAM,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,0BAA0B,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/F,MAAM,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,0BAA0B,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/F,MAAM,CAAC,OAAO,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,0BAA0B,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,8QAA8Q,CAAC,CAAA;IACjY,MAAM,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzF,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAClD,CAAC,CAAC,CAAA"}