kimaki 1.3.0 → 1.5.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 (346) hide show
  1. package/assets/fonts/Geist-Bold.ttf +0 -0
  2. package/assets/fonts/Geist-Regular.ttf +0 -0
  3. package/assets/fonts/GeistMono-Regular.ttf +0 -0
  4. package/assets/fonts/OFL.txt +92 -0
  5. package/dist/agent-ui.e2e.test.js +27 -13
  6. package/dist/agent-ui.e2e.test.js.map +1 -1
  7. package/dist/agent-ui.js +2 -1
  8. package/dist/agent-ui.js.map +1 -1
  9. package/dist/analytics.e2e.test.js +1 -1
  10. package/dist/analytics.e2e.test.js.map +1 -1
  11. package/dist/autostart.d.ts +4 -0
  12. package/dist/autostart.js +55 -10
  13. package/dist/autostart.js.map +1 -1
  14. package/dist/bot.d.ts +13 -6
  15. package/dist/bot.js +17 -15
  16. package/dist/bot.js.map +1 -1
  17. package/dist/btw.e2e.test.js +3 -3
  18. package/dist/builtin-skills.d.ts +3 -0
  19. package/dist/builtin-skills.js +29 -0
  20. package/dist/builtin-skills.js.map +1 -1
  21. package/dist/builtin-skills.test.js +72 -1
  22. package/dist/builtin-skills.test.js.map +1 -1
  23. package/dist/catalog-refresh.e2e.test.js +2 -2
  24. package/dist/cli/bot.d.ts +1 -1
  25. package/dist/cli/bot.js +33 -18
  26. package/dist/cli/bot.js.map +1 -1
  27. package/dist/cli/discord.js +32 -6
  28. package/dist/cli/discord.js.map +1 -1
  29. package/dist/cli/schedule.js +23 -9
  30. package/dist/cli/schedule.js.map +1 -1
  31. package/dist/cli/session.js +37 -12
  32. package/dist/cli/session.js.map +1 -1
  33. package/dist/cli/shared.d.ts +5 -3
  34. package/dist/cli/shared.js +45 -10
  35. package/dist/cli/shared.js.map +1 -1
  36. package/dist/cli-discord.e2e.test.js +13 -8
  37. package/dist/cli-discord.e2e.test.js.map +1 -1
  38. package/dist/cli-lock.e2e.test.js +87 -20
  39. package/dist/cli-lock.e2e.test.js.map +1 -1
  40. package/dist/cli-read.e2e.test.js +18 -9
  41. package/dist/cli-read.e2e.test.js.map +1 -1
  42. package/dist/cli-sessions.e2e.test.js +4 -3
  43. package/dist/cli-sessions.e2e.test.js.map +1 -1
  44. package/dist/cli.js +2 -0
  45. package/dist/cli.js.map +1 -1
  46. package/dist/commands/preference-commands.d.ts +4 -0
  47. package/dist/commands/preference-commands.js +38 -4
  48. package/dist/commands/preference-commands.js.map +1 -1
  49. package/dist/commands/session-commands.js +11 -8
  50. package/dist/commands/session-commands.js.map +1 -1
  51. package/dist/commands/thread-commands.js +94 -24
  52. package/dist/commands/thread-commands.js.map +1 -1
  53. package/dist/commands/worktree-commands.d.ts +5 -6
  54. package/dist/commands/worktree-commands.js +8 -7
  55. package/dist/commands/worktree-commands.js.map +1 -1
  56. package/dist/commands.e2e.test.js +25 -21
  57. package/dist/commands.e2e.test.js.map +1 -1
  58. package/dist/coordinator-agents.e2e.test.d.ts +1 -0
  59. package/dist/coordinator-agents.e2e.test.js +113 -0
  60. package/dist/coordinator-agents.e2e.test.js.map +1 -0
  61. package/dist/coordinator-idle.e2e.test.d.ts +1 -0
  62. package/dist/coordinator-idle.e2e.test.js +100 -0
  63. package/dist/coordinator-idle.e2e.test.js.map +1 -0
  64. package/dist/coordinator-queue.e2e.test.d.ts +1 -0
  65. package/dist/coordinator-queue.e2e.test.js +244 -0
  66. package/dist/coordinator-queue.e2e.test.js.map +1 -0
  67. package/dist/coordinator-warmup.e2e.test.d.ts +1 -0
  68. package/dist/coordinator-warmup.e2e.test.js +131 -0
  69. package/dist/coordinator-warmup.e2e.test.js.map +1 -0
  70. package/dist/coordinator.d.ts +6 -0
  71. package/dist/coordinator.e2e.test.d.ts +1 -0
  72. package/dist/coordinator.e2e.test.js +505 -0
  73. package/dist/coordinator.e2e.test.js.map +1 -0
  74. package/dist/coordinator.js +164 -0
  75. package/dist/coordinator.js.map +1 -0
  76. package/dist/db.d.ts +78 -3
  77. package/dist/db.test.js +1 -0
  78. package/dist/db.test.js.map +1 -1
  79. package/dist/diagram.d.ts +11 -0
  80. package/dist/diagram.js +232 -0
  81. package/dist/diagram.js.map +1 -0
  82. package/dist/diagram.test.d.ts +1 -0
  83. package/dist/diagram.test.js +52 -0
  84. package/dist/diagram.test.js.map +1 -0
  85. package/dist/duration.js +13 -5
  86. package/dist/duration.js.map +1 -1
  87. package/dist/effects.d.ts +6 -1
  88. package/dist/effects.js +97 -26
  89. package/dist/effects.js.map +1 -1
  90. package/dist/event-loop.d.ts +2 -3
  91. package/dist/event-loop.js +74 -44
  92. package/dist/event-loop.js.map +1 -1
  93. package/dist/format-parts.d.ts +21 -4
  94. package/dist/format-parts.js +40 -23
  95. package/dist/format-parts.js.map +1 -1
  96. package/dist/gateway-replay.e2e.test.js +4 -4
  97. package/dist/harness.e2e.test.js +2 -2
  98. package/dist/harness.e2e.test.js.map +1 -1
  99. package/dist/hello-thread.e2e.test.js +56 -5
  100. package/dist/hello-thread.e2e.test.js.map +1 -1
  101. package/dist/ingress.js +47 -12
  102. package/dist/ingress.js.map +1 -1
  103. package/dist/interaction-context.d.ts +4 -4
  104. package/dist/interaction-context.js +9 -7
  105. package/dist/interaction-context.js.map +1 -1
  106. package/dist/interrupt.e2e.test.js +8 -5
  107. package/dist/interrupt.e2e.test.js.map +1 -1
  108. package/dist/legacy.e2e.test.js +1 -1
  109. package/dist/lock-routes.d.ts +83 -31
  110. package/dist/lock-routes.js +68 -8
  111. package/dist/lock-routes.js.map +1 -1
  112. package/dist/lock-server.d.ts +3 -2
  113. package/dist/lock-server.js +23 -7
  114. package/dist/lock-server.js.map +1 -1
  115. package/dist/main.d.ts +6 -3
  116. package/dist/main.js +14 -4
  117. package/dist/main.js.map +1 -1
  118. package/dist/mainmast-idle.e2e.test.d.ts +1 -0
  119. package/dist/mainmast-idle.e2e.test.js +99 -0
  120. package/dist/mainmast-idle.e2e.test.js.map +1 -0
  121. package/dist/mainmast-queue.e2e.test.d.ts +1 -0
  122. package/dist/mainmast-queue.e2e.test.js +244 -0
  123. package/dist/mainmast-queue.e2e.test.js.map +1 -0
  124. package/dist/mainmast-warmup.e2e.test.d.ts +1 -0
  125. package/dist/mainmast-warmup.e2e.test.js +130 -0
  126. package/dist/mainmast-warmup.e2e.test.js.map +1 -0
  127. package/dist/mainmast.d.ts +6 -0
  128. package/dist/mainmast.e2e.test.d.ts +1 -0
  129. package/dist/mainmast.e2e.test.js +428 -0
  130. package/dist/mainmast.e2e.test.js.map +1 -0
  131. package/dist/mainmast.js +156 -0
  132. package/dist/mainmast.js.map +1 -0
  133. package/dist/markdown/markdown.test.js +14 -4
  134. package/dist/markdown/markdown.test.js.map +1 -1
  135. package/dist/markdown/render-markdown.js +9 -6
  136. package/dist/markdown/render-markdown.js.map +1 -1
  137. package/dist/onboarding-cli.e2e.test.js +7 -6
  138. package/dist/onboarding-cli.e2e.test.js.map +1 -1
  139. package/dist/onboarding.d.ts +3 -10
  140. package/dist/onboarding.e2e.test.js +8 -10
  141. package/dist/onboarding.e2e.test.js.map +1 -1
  142. package/dist/onboarding.js +14 -24
  143. package/dist/onboarding.js.map +1 -1
  144. package/dist/permissions.e2e.test.js +3 -3
  145. package/dist/plugin/coordinator.d.ts +4 -0
  146. package/dist/plugin/coordinator.js +389 -0
  147. package/dist/plugin/coordinator.js.map +1 -0
  148. package/dist/plugin/index.js +93 -61
  149. package/dist/plugin/index.js.map +1 -1
  150. package/dist/plugin/mainmast.d.ts +4 -0
  151. package/dist/plugin/mainmast.js +379 -0
  152. package/dist/plugin/mainmast.js.map +1 -0
  153. package/dist/plugin.e2e.test.js +1 -1
  154. package/dist/preference-commands.e2e.test.js +103 -24
  155. package/dist/preference-commands.e2e.test.js.map +1 -1
  156. package/dist/project.d.ts +1 -1
  157. package/dist/prompt.d.ts +22 -9
  158. package/dist/prompt.js +64 -48
  159. package/dist/prompt.js.map +1 -1
  160. package/dist/questions.e2e.test.js +13 -13
  161. package/dist/queue-sources.e2e.test.d.ts +1 -0
  162. package/dist/queue-sources.e2e.test.js +168 -0
  163. package/dist/queue-sources.e2e.test.js.map +1 -0
  164. package/dist/queue.d.ts +9 -1
  165. package/dist/queue.e2e.test.js +48 -30
  166. package/dist/queue.e2e.test.js.map +1 -1
  167. package/dist/queue.js +97 -24
  168. package/dist/queue.js.map +1 -1
  169. package/dist/queue.test.d.ts +1 -0
  170. package/dist/queue.test.js +57 -0
  171. package/dist/queue.test.js.map +1 -0
  172. package/dist/remote-send.e2e.test.js +6 -6
  173. package/dist/remote-send.js +2 -1
  174. package/dist/remote-send.js.map +1 -1
  175. package/dist/renderer.e2e.test.js +7 -7
  176. package/dist/restart.e2e.test.js +2 -2
  177. package/dist/routines.e2e.test.js +2 -2
  178. package/dist/scheduler.d.ts +3 -3
  179. package/dist/scheduler.e2e.test.js +43 -20
  180. package/dist/scheduler.e2e.test.js.map +1 -1
  181. package/dist/scheduler.js +4 -2
  182. package/dist/scheduler.js.map +1 -1
  183. package/dist/schema-sql.d.ts +1 -1
  184. package/dist/schema-sql.js +1 -1
  185. package/dist/schema-sql.js.map +1 -1
  186. package/dist/schema.d.ts +152 -6
  187. package/dist/schema.js +12 -0
  188. package/dist/schema.js.map +1 -1
  189. package/dist/session-commands.e2e.test.js +36 -11
  190. package/dist/session-commands.e2e.test.js.map +1 -1
  191. package/dist/session-events.d.ts +18 -6
  192. package/dist/session-events.js +175 -27
  193. package/dist/session-events.js.map +1 -1
  194. package/dist/session-ops.e2e.test.js +63 -12
  195. package/dist/session-ops.e2e.test.js.map +1 -1
  196. package/dist/sessions.d.ts +44 -21
  197. package/dist/sessions.js +177 -65
  198. package/dist/sessions.js.map +1 -1
  199. package/dist/shell.e2e.test.js +4 -4
  200. package/dist/slash-commands.js +6 -4
  201. package/dist/slash-commands.js.map +1 -1
  202. package/dist/slash-commands.test.js +2 -0
  203. package/dist/slash-commands.test.js.map +1 -1
  204. package/dist/sleep.e2e.test.js +29 -14
  205. package/dist/sleep.e2e.test.js.map +1 -1
  206. package/dist/sleeps.d.ts +2 -1
  207. package/dist/sleeps.js +21 -3
  208. package/dist/sleeps.js.map +1 -1
  209. package/dist/store.d.ts +1 -0
  210. package/dist/store.js +3 -2
  211. package/dist/store.js.map +1 -1
  212. package/dist/system-prompt.d.ts +5 -15
  213. package/dist/system-prompt.js +180 -131
  214. package/dist/system-prompt.js.map +1 -1
  215. package/dist/test/generate-log-plugin/index.d.ts +3 -0
  216. package/dist/test/generate-log-plugin/index.js +15 -0
  217. package/dist/test/generate-log-plugin/index.js.map +1 -0
  218. package/dist/test/harness.d.ts +20 -2
  219. package/dist/test/harness.js +51 -11
  220. package/dist/test/harness.js.map +1 -1
  221. package/dist/test/replay.js +11 -8
  222. package/dist/test/replay.js.map +1 -1
  223. package/dist/thread-reducer.d.ts +29 -6
  224. package/dist/thread-reducer.fixtures.test.js +58 -51
  225. package/dist/thread-reducer.fixtures.test.js.map +1 -1
  226. package/dist/thread-reducer.js +109 -50
  227. package/dist/thread-reducer.js.map +1 -1
  228. package/dist/thread-reducer.test.js +190 -48
  229. package/dist/thread-reducer.test.js.map +1 -1
  230. package/dist/tunnel.d.ts +9 -0
  231. package/dist/tunnel.js +117 -28
  232. package/dist/tunnel.js.map +1 -1
  233. package/dist/tunnel.test.js +81 -5
  234. package/dist/tunnel.test.js.map +1 -1
  235. package/dist/voice-attachments.e2e.test.js +108 -18
  236. package/dist/voice-attachments.e2e.test.js.map +1 -1
  237. package/dist/voice-call.e2e.test.js +9 -9
  238. package/dist/voice-call.js +6 -6
  239. package/dist/voice-call.js.map +1 -1
  240. package/dist/voice-openai.e2e.test.js +59 -23
  241. package/dist/voice-openai.e2e.test.js.map +1 -1
  242. package/dist/voice.d.ts +1 -1
  243. package/dist/voice.js +72 -24
  244. package/dist/voice.js.map +1 -1
  245. package/dist/working-directory.e2e.test.js +11 -11
  246. package/dist/working-directory.e2e.test.js.map +1 -1
  247. package/package.json +11 -5
  248. package/skills/kimaki-tunnel/SKILL.md +3 -2
  249. package/src/agent-ui.e2e.test.ts +27 -13
  250. package/src/agent-ui.ts +2 -1
  251. package/src/analytics.e2e.test.ts +1 -1
  252. package/src/autostart.ts +55 -10
  253. package/src/bot.ts +36 -19
  254. package/src/btw.e2e.test.ts +3 -3
  255. package/src/builtin-skills.test.ts +73 -1
  256. package/src/builtin-skills.ts +33 -0
  257. package/src/catalog-refresh.e2e.test.ts +2 -2
  258. package/src/cli/bot.ts +30 -19
  259. package/src/cli/discord.ts +30 -6
  260. package/src/cli/schedule.ts +23 -9
  261. package/src/cli/session.ts +35 -12
  262. package/src/cli/shared.ts +43 -8
  263. package/src/cli-discord.e2e.test.ts +13 -8
  264. package/src/cli-lock.e2e.test.ts +88 -20
  265. package/src/cli-read.e2e.test.ts +17 -8
  266. package/src/cli-sessions.e2e.test.ts +4 -3
  267. package/src/cli.ts +2 -0
  268. package/src/commands/preference-commands.ts +38 -4
  269. package/src/commands/session-commands.ts +12 -7
  270. package/src/commands/thread-commands.ts +92 -24
  271. package/src/commands/worktree-commands.ts +10 -9
  272. package/src/commands.e2e.test.ts +25 -21
  273. package/src/coordinator-agents.e2e.test.ts +145 -0
  274. package/src/coordinator-idle.e2e.test.ts +122 -0
  275. package/src/coordinator-queue.e2e.test.ts +279 -0
  276. package/src/coordinator-warmup.e2e.test.ts +158 -0
  277. package/src/coordinator.e2e.test.ts +545 -0
  278. package/src/coordinator.ts +168 -0
  279. package/src/db.test.ts +1 -0
  280. package/src/diagram.test.ts +56 -0
  281. package/src/diagram.ts +243 -0
  282. package/src/duration.ts +13 -5
  283. package/src/effects.ts +99 -27
  284. package/src/event-loop.ts +71 -45
  285. package/src/format-parts.ts +53 -22
  286. package/src/gateway-replay.e2e.test.ts +4 -4
  287. package/src/harness.e2e.test.ts +2 -2
  288. package/src/hello-thread.e2e.test.ts +59 -5
  289. package/src/ingress.ts +44 -11
  290. package/src/interaction-context.ts +12 -11
  291. package/src/interrupt.e2e.test.ts +8 -5
  292. package/src/legacy.e2e.test.ts +1 -1
  293. package/src/lock-routes.ts +62 -8
  294. package/src/lock-server.ts +23 -7
  295. package/src/main.ts +26 -10
  296. package/src/markdown/markdown.test.ts +15 -4
  297. package/src/markdown/render-markdown.ts +9 -6
  298. package/src/onboarding-cli.e2e.test.ts +7 -6
  299. package/src/onboarding.e2e.test.ts +8 -10
  300. package/src/onboarding.ts +13 -29
  301. package/src/permissions.e2e.test.ts +3 -3
  302. package/src/plugin/coordinator.ts +401 -0
  303. package/src/plugin/index.ts +86 -59
  304. package/src/plugin.e2e.test.ts +1 -1
  305. package/src/preference-commands.e2e.test.ts +103 -23
  306. package/src/prompt.ts +87 -43
  307. package/src/questions.e2e.test.ts +13 -13
  308. package/src/queue-sources.e2e.test.ts +197 -0
  309. package/src/queue.e2e.test.ts +48 -30
  310. package/src/queue.test.ts +59 -0
  311. package/src/queue.ts +104 -24
  312. package/src/remote-send.e2e.test.ts +6 -6
  313. package/src/remote-send.ts +2 -1
  314. package/src/renderer.e2e.test.ts +7 -7
  315. package/src/restart.e2e.test.ts +2 -2
  316. package/src/routines.e2e.test.ts +2 -2
  317. package/src/scheduler.e2e.test.ts +45 -19
  318. package/src/scheduler.ts +4 -2
  319. package/src/schema-sql.ts +1 -1
  320. package/src/schema.ts +13 -0
  321. package/src/session-commands.e2e.test.ts +38 -11
  322. package/src/session-events.ts +168 -25
  323. package/src/session-ops.e2e.test.ts +64 -11
  324. package/src/sessions.ts +217 -67
  325. package/src/shell.e2e.test.ts +4 -4
  326. package/src/slash-commands.test.ts +2 -0
  327. package/src/slash-commands.ts +6 -4
  328. package/src/sleep.e2e.test.ts +30 -13
  329. package/src/sleeps.ts +20 -3
  330. package/src/store.ts +5 -2
  331. package/src/system-prompt.ts +190 -134
  332. package/src/test/generate-log-plugin/index.ts +16 -0
  333. package/src/test/harness.ts +77 -17
  334. package/src/test/replay.ts +12 -7
  335. package/src/thread-reducer.fixtures.test.ts +58 -51
  336. package/src/thread-reducer.test.ts +199 -49
  337. package/src/thread-reducer.ts +135 -66
  338. package/src/tunnel.test.ts +81 -5
  339. package/src/tunnel.ts +124 -25
  340. package/src/voice-attachments.e2e.test.ts +110 -18
  341. package/src/voice-call.e2e.test.ts +9 -9
  342. package/src/voice-call.ts +6 -6
  343. package/src/voice-openai.e2e.test.ts +64 -24
  344. package/src/voice.ts +93 -26
  345. package/src/working-directory.e2e.test.ts +11 -11
  346. package/src/message-tool.e2e.test.ts +0 -45
package/dist/bot.js CHANGED
@@ -30,6 +30,10 @@ export async function sessionDirectory(bot, sessionId) {
30
30
  return info;
31
31
  return info.location.directory;
32
32
  }
33
+ // A project channel in coordinator mode: its /toggle-coordinator choice, else the default.
34
+ export function isCoordinatorChannel(bot, channelId) {
35
+ return bot.store.getState().coordinator[channelId] ?? bot.coordinatorDefault;
36
+ }
33
37
  export function rootSession(bot, threadId) {
34
38
  return bot.store.getState().roots[threadId] ?? new OpenCodeError({ operation: `find the session of thread ${threadId}` });
35
39
  }
@@ -39,15 +43,19 @@ export function threadOfSession(bot, sessionId) {
39
43
  const threadId = sessionThreads[sessionId];
40
44
  return threadId && roots[threadId] === sessionId ? threadId : null;
41
45
  }
42
- export async function fetchThread(bot, threadId) {
46
+ // The project channel of a conversation.
47
+ export function projectChannelOf(conversation) {
48
+ return conversation.isThread() ? conversation.parentId : conversation.id;
49
+ }
50
+ export async function fetchConversation(bot, id) {
43
51
  const channel = await bot.discord.channels
44
- .fetch(threadId)
45
- .catch((cause) => new DiscordError({ operation: `fetch thread ${threadId}`, cause }));
52
+ .fetch(id)
53
+ .catch((cause) => new DiscordError({ operation: `fetch conversation ${id}`, cause }));
46
54
  if (channel instanceof Error)
47
55
  return channel;
48
- if (!channel?.isThread())
49
- return new ConfigError({ reason: 'Target is not a thread' });
50
- return channel;
56
+ if (channel?.isThread() || channel?.type === ChannelType.GuildText)
57
+ return channel;
58
+ return new ConfigError({ reason: 'Target is not a thread or a text channel' });
51
59
  }
52
60
  export async function textChannel(bot, channelId) {
53
61
  const channel = await bot.discord.channels
@@ -66,7 +74,7 @@ export function readMarker(metadata) {
66
74
  const fields = jsonObject(metadata?.['kimaki']);
67
75
  if (!fields)
68
76
  return null;
69
- const { dataDir, lockPort, messageTool, parentSessionId } = fields;
77
+ const { dataDir, lockPort, parentSessionId } = fields;
70
78
  const task = jsonObject(fields['task']);
71
79
  const taskId = task?.['id'];
72
80
  const cronExpr = task?.['cronExpr'];
@@ -75,21 +83,15 @@ export function readMarker(metadata) {
75
83
  fields,
76
84
  dataDir: typeof dataDir === 'string' ? dataDir : null,
77
85
  lockPort: typeof lockPort === 'number' ? lockPort : null,
78
- messageTool: messageTool === true,
79
86
  parentSessionId: typeof parentSessionId === 'string' ? parentSessionId : null,
80
87
  task: typeof taskId === 'number'
81
88
  ? { id: taskId, cronExpr: typeof cronExpr === 'string' ? cronExpr : null, timezone: typeof timezone === 'string' ? timezone : null }
82
89
  : null,
83
90
  };
84
91
  }
85
- // The marker fields that follow this bot run: where the agent's `kimaki` calls
86
- // go, and whether the plugin gives the session send_message.
92
+ // The marker fields that point the agent's `kimaki` calls at this bot.
87
93
  export function cliContext(bot) {
88
- return { dataDir: bot.dataDir, lockPort: bot.lockPort, messageTool: bot.messageTool };
89
- }
90
- // False when the session marker was written by another bot run or with another --message-tool.
91
- export function markerIsCurrent(bot, marker) {
92
- return marker.dataDir === bot.dataDir && marker.lockPort === bot.lockPort && marker.messageTool === bot.messageTool;
94
+ return { dataDir: bot.dataDir, lockPort: bot.lockPort };
93
95
  }
94
96
  // Default model of new sessions in channels without their own (/model "All channels").
95
97
  export async function globalModel(bot) {
package/dist/bot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
@@ -60,14 +60,14 @@ test('. btw forks into a side thread while the source run continues', async () =
60
60
  --- from: assistant (TestBot)
61
61
  Session forked! Continue in <#THREAD>
62
62
  slow-done
63
- -# *project ⋅ main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
63
+ -# *main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
64
64
  `);
65
65
  expect(hideIds(await discord.thread(fork.id).text())).toMatchInlineSnapshot(`
66
66
  "--- from: assistant (TestBot)
67
67
  Reusing context from <#THREAD> to answer prompt...
68
68
  What is 2+2 side-marker
69
69
  side answer
70
- -# *project ⋅ main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
70
+ -# *main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
71
71
  `);
72
72
  const rows = await bot.db.query.thread_sessions.findMany({ where: { thread_id: fork.id } });
73
73
  expect(rows.length).toBe(1);
@@ -96,7 +96,7 @@ test('/btw forks from a thread with an idle session', async () => {
96
96
  Reusing context from <#THREAD> to answer prompt...
97
97
  Side slash-marker
98
98
  slash answer
99
- -# *project ⋅ main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
99
+ -# *main ⋅ Ns ⋅ N% ⋅ deterministic-v2*"
100
100
  `);
101
101
  });
102
102
  //# sourceMappingURL=btw.e2e.test.js.map
@@ -11,6 +11,9 @@ export type BuiltinSkill = {
11
11
  };
12
12
  export declare function readBuiltinSkills(): Promise<FilesystemError | BuiltinSkill[]>;
13
13
  export declare function parseDisabledSkills(value: string | undefined): ConfigError | BuiltinSkillId[];
14
+ export declare const PROMPT_SECTIONS: readonly ["discord-permissions", "kimaki-debugging", "file-upload-requests", "action-buttons", "session-sleep", "session-abort", "cross-project-commands", "waiting-sessions", "critique-diffs", "markdown-formatting", "discord-callouts", "search-result-urls", "diagrams"];
15
+ export type PromptSection = (typeof PROMPT_SECTIONS)[number];
16
+ export declare function parseDisabledPromptSections(values: readonly string[] | undefined): ConfigError | PromptSection[];
14
17
  export declare function disabledSkillRules(disabled: readonly string[]): {
15
18
  readonly action: "skill";
16
19
  readonly resource: string;
@@ -44,6 +44,35 @@ export function parseDisabledSkills(value) {
44
44
  return new ConfigError({ reason: `Unknown built-in skill ${unknown.join(', ')}. Choose from: all, ${BUILTIN_SKILL_IDS.join(', ')}` });
45
45
  return items;
46
46
  }
47
+ // Static parts of the session instructions (system-prompt.ts) that
48
+ // `kimaki --disable-prompt <section>` removes. Here, not in system-prompt.ts,
49
+ // so the CLI help can list them without loading zod.
50
+ export const PROMPT_SECTIONS = [
51
+ 'discord-permissions',
52
+ 'kimaki-debugging',
53
+ 'file-upload-requests',
54
+ 'action-buttons',
55
+ 'session-sleep',
56
+ 'session-abort',
57
+ 'cross-project-commands',
58
+ 'waiting-sessions',
59
+ 'critique-diffs',
60
+ 'markdown-formatting',
61
+ 'discord-callouts',
62
+ 'search-result-urls',
63
+ 'diagrams',
64
+ ];
65
+ function isPromptSection(item) {
66
+ return PROMPT_SECTIONS.some((section) => section === item);
67
+ }
68
+ // Repeatable flag; each value can also be a comma separated list.
69
+ export function parseDisabledPromptSections(values) {
70
+ const items = (values ?? []).flatMap((value) => value.split(',')).map((item) => item.trim()).filter(Boolean);
71
+ const unknown = items.filter((item) => !isPromptSection(item));
72
+ if (unknown.length > 0)
73
+ return new ConfigError({ reason: `Unknown prompt section ${unknown.join(', ')}. Choose from: ${PROMPT_SECTIONS.join(', ')}` });
74
+ return items.filter(isPromptSection);
75
+ }
47
76
  // OpenCode hides a skill from the model and the skill tool when its permission is denied.
48
77
  export function disabledSkillRules(disabled) {
49
78
  return disabled.map((id) => ({ action: 'skill', resource: id, effect: 'deny' }));
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-skills.js","sourceRoot":"","sources":["../src/builtin-skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin-skills.js","sourceRoot":"","sources":["../src/builtin-skills.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { expect, test } from 'vitest';
2
- import { BUILTIN_SKILL_IDS, disabledSkillRules, parseDisabledSkills, readBuiltinSkills } from "./builtin-skills.js";
2
+ import { BUILTIN_SKILL_IDS, disabledSkillRules, parseDisabledPromptSections, parseDisabledSkills, PROMPT_SECTIONS, readBuiltinSkills } from "./builtin-skills.js";
3
+ import { baseInstructions } from "./system-prompt.js";
3
4
  test('every built-in skill file parses', async () => {
4
5
  const skills = await readBuiltinSkills();
5
6
  if (skills instanceof Error)
@@ -25,4 +26,74 @@ test('--disable-skills accepts all, a list, and rejects unknown ids', () => {
25
26
  ]
26
27
  `);
27
28
  });
29
+ test('--disable-prompt removes exactly the headings of each section', () => {
30
+ expect(parseDisabledPromptSections(['critique-diffs,discord-callouts', 'search-result-urls'])).toEqual(['critique-diffs', 'discord-callouts', 'search-result-urls']);
31
+ expect(parseDisabledPromptSections(['critique'])).toBeInstanceOf(Error);
32
+ const input = { sessionId: 'ses_1', threadId: '2', channelId: '3', guildId: '4', userId: '5', dataDir: '/data', channelTopic: null, agents: [], parentSessionId: null };
33
+ const headings = (text) => text.split('\n').filter((line) => line.startsWith('## '));
34
+ const full = headings(baseInstructions(input));
35
+ const removed = Object.fromEntries(PROMPT_SECTIONS.map((section) => {
36
+ const kept = new Set(headings(baseInstructions({ ...input, disabled: [section] })));
37
+ return [section, full.filter((heading) => !kept.has(heading))];
38
+ }));
39
+ expect(removed).toMatchInlineSnapshot(`
40
+ {
41
+ "action-buttons": [
42
+ "## action buttons",
43
+ "## ending conversations with options",
44
+ ],
45
+ "critique-diffs": [
46
+ "## showing diffs",
47
+ ],
48
+ "cross-project-commands": [
49
+ "## cross-project commands",
50
+ ],
51
+ "diagrams": [
52
+ "## diagrams",
53
+ ],
54
+ "discord-callouts": [
55
+ "## Callouts in Kimaki Discord",
56
+ ],
57
+ "discord-permissions": [
58
+ "## permissions",
59
+ ],
60
+ "file-upload-requests": [
61
+ "## requesting files from the user",
62
+ ],
63
+ "kimaki-debugging": [
64
+ "## debugging kimaki issues",
65
+ ],
66
+ "markdown-formatting": [
67
+ "## markdown formatting",
68
+ ],
69
+ "search-result-urls": [
70
+ "## URLs in search results",
71
+ ],
72
+ "session-abort": [
73
+ "## aborting a session",
74
+ ],
75
+ "session-sleep": [
76
+ "## sleeping the session",
77
+ ],
78
+ "waiting-sessions": [
79
+ "## waiting for a session to finish",
80
+ ],
81
+ }
82
+ `);
83
+ expect(headings(baseInstructions({ ...input, disabled: [...PROMPT_SECTIONS] }))).toMatchInlineSnapshot(`
84
+ [
85
+ "## Discord output",
86
+ "## shell tool",
87
+ "## commit messages",
88
+ "## uploading files to discord",
89
+ "## generating audio from text",
90
+ "## archiving the current thread",
91
+ "## updating the session title",
92
+ "## discord user mentions",
93
+ "## starting new sessions from CLI",
94
+ "## scheduled sends and routines",
95
+ "## reading other sessions",
96
+ ]
97
+ `);
98
+ });
28
99
  //# sourceMappingURL=builtin-skills.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-skills.test.js","sourceRoot":"","sources":["../src/builtin-skills.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAErC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEnH,IAAI,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAClD,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAA;IACxC,IAAI,MAAM,YAAY,KAAK;QAAE,MAAM,MAAM,CAAA;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAA;IACvE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAA;QACjF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;IACzE,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAClD,MAAM,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAA;IACrG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAA;IAClE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;GAQnE,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"builtin-skills.test.js","sourceRoot":"","sources":["../src/builtin-skills.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAErC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACjK,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,IAAI,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAClD,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAA;IACxC,IAAI,MAAM,YAAY,KAAK;QAAE,MAAM,MAAM,CAAA;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAA;IACvE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAA;QACjF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;IACzE,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAClD,MAAM,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAA;IACrG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAA;IAClE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;GAQnE,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;IACzE,MAAM,CAAC,2BAA2B,CAAC,CAAC,iCAAiC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,CAAA;IACpK,MAAM,CAAC,2BAA2B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACvE,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAA;IACvK,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5F,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACnF,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CAAC,CAAA;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CrC,CAAC,CAAA;IACF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;GActG,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -46,10 +46,10 @@ test('agents loaded after startup get their slash commands', async () => {
46
46
  await waitForFooter({ discord, threadId: thread.id });
47
47
  expect(await discord.thread(thread.id).text()).toMatchInlineSnapshot(`
48
48
  "--- from: assistant (TestBot)
49
- » **tommy:** Go late-marker
49
+ -# » **tommy:** Go late-marker
50
50
  -# *using deterministic-provider/deterministic-v2 ⋅ late*
51
51
  late reply
52
- -# *project ⋅ main ⋅ Ns ⋅ N% ⋅ deterministic-v2 ⋅ late*"
52
+ -# *main ⋅ Ns ⋅ N% ⋅ deterministic-v2 ⋅ late*"
53
53
  `);
54
54
  });
55
55
  test('a skill change adds its command; catalog events with the same catalog write nothing to Discord', async () => {
package/dist/cli/bot.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Goke } from 'goke';
1
+ import { type Goke } from 'goke';
2
2
  export declare function registerStartCommand(cli: Goke): void;
3
3
  export declare function registerLoginCommands(cli: Goke): void;
4
4
  export declare function registerToolCommands(cli: Goke): void;
package/dist/cli/bot.js CHANGED
@@ -7,8 +7,9 @@ import fs from 'node:fs';
7
7
  import path from 'node:path';
8
8
  import { setTimeout as sleep } from 'node:timers/promises';
9
9
  import dedent from 'string-dedent';
10
- import { distCliEntry, writeAutostartScript } from "../autostart.js";
11
- import { parseDisabledSkills } from "../builtin-skills.js";
10
+ import { wrapJsonSchema } from 'goke';
11
+ import { distCliEntry, removeAutostartScript, stableNodePath, writeAutostartScript } from "../autostart.js";
12
+ import { parseDisabledPromptSections, parseDisabledSkills, PROMPT_SECTIONS } from "../builtin-skills.js";
12
13
  import { callBot, DEFAULT_LOCK_PORT, RESTART_EXIT_CODE, startLockServer } from "../lock-server.js";
13
14
  import { parseDuration } from "../duration.js";
14
15
  import { createLogger, setLogFile } from "../logger.js";
@@ -55,8 +56,10 @@ async function supervise() {
55
56
  for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP']) {
56
57
  process.on(signal, () => state.child?.kill('SIGTERM'));
57
58
  }
59
+ // Resolved before any Node upgrade: `kimaki restart` must not spawn the deleted binary.
60
+ const node = stableNodePath();
58
61
  while (true) {
59
- const child = spawn(process.execPath, [...process.execArgv, ...process.argv.slice(1)], {
62
+ const child = spawn(node, [...process.execArgv, ...process.argv.slice(1)], {
60
63
  stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
61
64
  env: { ...process.env, KIMAKI_SUPERVISED: '1' },
62
65
  });
@@ -85,10 +88,12 @@ export function registerStartCommand(cli) {
85
88
  .option('--restart-onboarding', 'Choose credentials again')
86
89
  .option('--worktrees', 'Use a fresh Git worktree for new sessions unless the channel overrides it')
87
90
  .option('--allow-all-users', 'Every server member can use the bot (role "no-kimaki" still denies; provider login stays admin-only)')
88
- .option('--message-tool', 'Discord shows only a concise reply the agent sends with a send_message tool; plain text stays visible in the OpenCode TUI')
89
91
  .option('--voice <name>', 'Voice of voice calls, saved for later starts (e.g. cove, juniper, sol). "default" resets it')
90
92
  .option('--disable-skills <list>', 'Built-in Kimaki skills to turn off: "all" or a comma separated list (kimaki-debug,kimaki-tunnel)')
93
+ .option('--disable-prompt <section>', wrapJsonSchema({ type: 'array', items: { type: 'string' }, description: `System prompt section to remove from new sessions (repeatable): ${PROMPT_SECTIONS.join(', ')}` }))
91
94
  .option('--no-analytics', 'Disable anonymous usage analytics (same as KIMAKI_STRADA_ENABLED=0)')
95
+ .option('--coordinator [enabled]', wrapJsonSchema({ type: 'boolean', default: true, description: 'Channel messages go to one long coordinator session that starts threads for the work. "false" turns it off (/toggle-coordinator sets one channel)' }))
96
+ .option('--no-autostart', 'Do not open a terminal with the bot when OpenCode starts (for bots run by launchd, systemd or pm2)')
92
97
  .option('--if-not-running', 'Start only if no bot runs; never stop the running one (used by autostart)')
93
98
  .action(async (options) => {
94
99
  // The IPC check ignores a KIMAKI_SUPERVISED leaked into a shell by an older bot.
@@ -98,7 +103,7 @@ export function registerStartCommand(cli) {
98
103
  // session (tests) would otherwise think it is supervised and SIGTERM itself on restart.
99
104
  delete process.env['KIMAKI_SUPERVISED'];
100
105
  // Bot code loads only here: the other subcommands start without it.
101
- const [{ startBot }, { ensureOpencode, kimakiShellCommand, runOnboarding, startCaffeinate }, { emitEvent, gatewayCredentials, gatewayUrlsFromEnv, installUrlFor, readSavedCredentials, resolveCredentials, restApiUrl }, { openDb }, { createAnalytics }, { opencodeConfigDir, opencodeDbFile }, { defaultMachineName }, { ensureVoiceChannels, parseRealtimeVoice, saveVoiceCallVoice },] = await Promise.all([
106
+ const [{ startBot }, { ensureOpencode, runOnboarding, startCaffeinate }, { emitEvent, gatewayCredentials, gatewayUrlsFromEnv, installUrlFor, readSavedCredentials, resolveCredentials, restApiUrl }, { openDb }, { createAnalytics }, { opencodeConfigDir, opencodeDbFile }, { defaultMachineName }, { ensureVoiceChannels, parseRealtimeVoice, saveVoiceCallVoice },] = await Promise.all([
102
107
  import("../main.js"),
103
108
  import("../onboarding.js"),
104
109
  import("../credentials.js"),
@@ -120,6 +125,9 @@ export function registerStartCommand(cli) {
120
125
  const disabledSkills = parseDisabledSkills(options.disableSkills);
121
126
  if (disabledSkills instanceof Error)
122
127
  fail(disabledSkills);
128
+ const disabledPrompt = parseDisabledPromptSections(options.disablePrompt);
129
+ if (disabledPrompt instanceof Error)
130
+ fail(disabledPrompt);
123
131
  const machine = options.machineName ?? defaultMachineName();
124
132
  // Validated before the lock, so a typo never stops the running bot. null: reset to the default.
125
133
  const voice = (() => {
@@ -197,13 +205,12 @@ export function registerStartCommand(cli) {
197
205
  // The agent calls this same install. Prefer the built dist entry, so agent
198
206
  // commands skip the tsx loader also when the bot runs from src.
199
207
  const distCli = distCliEntry();
200
- const kimaki = kimakiShellCommand({
201
- command: fs.existsSync(distCli)
202
- ? [process.execPath, distCli]
203
- : [process.execPath, ...process.execArgv, process.argv[1] ?? 'kimaki'],
204
- });
208
+ const node = stableNodePath();
209
+ const kimakiArgv = fs.existsSync(distCli)
210
+ ? [node, distCli]
211
+ : [node, ...process.execArgv, process.argv[1] ?? 'kimaki'];
205
212
  const bot = await startBot({
206
- kimakiCommand: kimaki,
213
+ kimakiArgv,
207
214
  dataDir,
208
215
  token: credentials.token,
209
216
  appId: credentials.appId,
@@ -217,7 +224,8 @@ export function registerStartCommand(cli) {
217
224
  autoWorktrees: Boolean(options.worktrees),
218
225
  allowAllUsers: Boolean(options.allowAllUsers),
219
226
  disabledSkills,
220
- messageTool: Boolean(options.messageTool),
227
+ disabledPrompt,
228
+ coordinator: options.coordinator,
221
229
  });
222
230
  if (bot instanceof Error)
223
231
  failStartup(bot);
@@ -230,7 +238,7 @@ export function registerStartCommand(cli) {
230
238
  // The supervisor died (SIGKILL, crash): nobody owns this bot anymore.
231
239
  process.once('disconnect', shutdown);
232
240
  const gateway = credentials.mode === 'gateway';
233
- const onboarded = await runOnboarding({ bot, dataDir, guildId: options.guild ?? install?.guildId, installUrl, kimaki, gateway, installerId: install?.installerId, machine });
241
+ const onboarded = await runOnboarding({ bot, dataDir, guildId: options.guild ?? install?.guildId, installUrl, gateway, installerId: install?.installerId, machine });
234
242
  // The bot keeps running; the next start retries onboarding.
235
243
  if (onboarded instanceof Error) {
236
244
  logger.error(`onboarding failed`, onboarded);
@@ -239,19 +247,26 @@ export function registerStartCommand(cli) {
239
247
  return;
240
248
  }
241
249
  if (onboarded)
242
- process.stderr.write(`Onboarding thread: https://discord.com/channels/${onboarded.guildId}/${onboarded.threadId}\n`);
250
+ process.stderr.write(`Onboarding: https://discord.com/channels/${onboarded.guildId}/${onboarded.threadId}\n`);
243
251
  const voiceChannels = await ensureVoiceChannels(bot, { machine });
244
252
  if (voiceChannels instanceof Error)
245
253
  logger.warn('cannot create the Kimaki voice channel', voiceChannels);
246
- // Only the default port: the plugin checks that one. Runtime flags only;
247
- // credentials, onboarding and --voice are saved in SQLite.
248
- if (lock.port === DEFAULT_LOCK_PORT) {
254
+ // --no-autostart removes the script on every start, so the opt-out sticks while
255
+ // launchd or systemd passes the flag. Only the default port: the plugin checks
256
+ // that one. Runtime flags only; credentials, onboarding and --voice are saved in SQLite.
257
+ if (options.noAutostart) {
258
+ const removed = await removeAutostartScript({ dataDir });
259
+ if (removed instanceof Error)
260
+ logger.warn('cannot remove the autostart script', removed);
261
+ }
262
+ else if (lock.port === DEFAULT_LOCK_PORT) {
249
263
  const autostart = await writeAutostartScript({ dataDir, args: [
250
264
  ...(options.worktrees ? ['--worktrees'] : []),
251
265
  ...(options.allowAllUsers ? ['--allow-all-users'] : []),
252
266
  ...(options.disableSkills ? ['--disable-skills', options.disableSkills] : []),
253
- ...(options.messageTool ? ['--message-tool'] : []),
267
+ ...disabledPrompt.flatMap((section) => ['--disable-prompt', section]),
254
268
  ...(options.noAnalytics ? ['--no-analytics'] : []),
269
+ ...(options.coordinator ? [] : ['--coordinator', 'false']),
255
270
  ...(options.machineName ? ['--machine-name', options.machineName] : []),
256
271
  ] });
257
272
  if (autostart instanceof Error)
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/cli/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/cli/bot.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  // Discord-facing commands: agent UI (buttons, upload requests) through the
2
2
  // running bot, plus thread/user lookups and uploads with the saved bot token.
3
+ import fs from 'node:fs';
4
+ import os from 'node:os';
3
5
  import path from 'node:path';
4
6
  import { ChannelType } from 'discord-api-types/v10';
5
7
  import { wrapJsonSchema } from 'goke';
@@ -10,22 +12,23 @@ import { action, DATA_DIR_HELP, dataDirOrDefault, discordApi, fail, isThread, pr
10
12
  function agentShell() {
11
13
  return { fromShell: Boolean(process.env['OPENCODE_SESSION_ID']), toolCall: process.env['KIMAKI_TOOL_CALL'] };
12
14
  }
13
- // The model reads this after `kimaki buttons`: a reminder to explain the buttons if it did not.
15
+ // The model reads this after `kimaki buttons`. Text planned before a tool call
16
+ // is sometimes never written (#256), so it asks for a missing answer or explanation.
14
17
  const BUTTONS_SHOWN = dedent `
15
18
 
16
19
  Buttons shown in Discord.
17
20
 
18
- NB: never show only buttons with short labels.
19
- The user cannot see tool calls, command outputs, or subagent and task results. They only see your text.
20
- Check the text you wrote before this call. It must explain:
21
+ The user cannot see tool calls, command outputs, your reasoning, or subagent and task results. They only see your text.
22
+ If this turn has no text yet that answers the user and explains the buttons, write it now:
23
+ - your answer to what the user asked, if anything
21
24
  - what was done in this session, concisely, including any findings from tool or task outputs that the choice depends on
22
25
  - what each button does and its tradeoffs
23
- If anything is missing, write it now. Be concise: a few short lines, no walls of text. Do not only repeat the button labels. Then stop and wait for the click.
26
+ Be concise: a few short lines in plain sentences, no walls of text. Do not only repeat the button labels. Then stop and wait for the click.
24
27
 
25
28
  `;
26
29
  // buttons, upload-request
27
30
  export function registerAgentUiCommands(cli) {
28
- cli.command('buttons', 'Show 1-3 action buttons. Call last, after visible text')
31
+ cli.command('buttons', 'Show 1-3 action buttons. Explain them in your text')
29
32
  .option('--data-dir <path>', DATA_DIR_HELP)
30
33
  .option('-s, --session <id>', SESSION_HELP)
31
34
  .option('-b, --button <spec>', wrapJsonSchema({ type: 'array', items: { type: 'string' }, description: "Repeatable: Label[:white|blue|green|red]" }))
@@ -114,5 +117,28 @@ export function registerDiscordCommands(cli) {
114
117
  // Waits for Discord: big files and a busy thread take longer than the 30s default.
115
118
  await action({ route: 'upload', dataDir: options.dataDir, input, signal: AbortSignal.timeout(5 * 60_000) });
116
119
  });
120
+ cli.command('diagram <input>', 'Render a Mermaid diagram (file path, or - for stdin) to a light themed PNG. Upload it with upload-to-discord')
121
+ .option('-o, --output <path>', 'PNG file to write (default: input path with .png, or a temp file for stdin)')
122
+ .option('--dark', 'Dark theme instead of light')
123
+ .action(async (input, options) => {
124
+ const source = input === '-' ? await readStdin() : await fs.promises.readFile(input, 'utf8').catch((error) => error);
125
+ if (source instanceof Error)
126
+ fail(source);
127
+ const { renderDiagram } = await import("../diagram.js");
128
+ const png = renderDiagram(source, { theme: options.dark ? 'dark' : 'light' });
129
+ if (png instanceof Error)
130
+ fail(png);
131
+ const output = path.resolve(options.output ?? (input === '-' ? path.join(os.tmpdir(), `kimaki-diagram-${Date.now()}.png`) : input.replace(/(\.\w+)?$/, '.png')));
132
+ const written = await fs.promises.writeFile(output, png).catch((error) => error);
133
+ if (written instanceof Error)
134
+ fail(written);
135
+ process.stdout.write(`${output}\n`);
136
+ });
137
+ }
138
+ async function readStdin() {
139
+ const chunks = [];
140
+ for await (const chunk of process.stdin)
141
+ chunks.push(Buffer.from(chunk));
142
+ return Buffer.concat(chunks).toString('utf8');
117
143
  }
118
144
  //# sourceMappingURL=discord.js.map