kimaki 1.4.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.
- package/assets/fonts/Geist-Bold.ttf +0 -0
- package/assets/fonts/Geist-Regular.ttf +0 -0
- package/assets/fonts/GeistMono-Regular.ttf +0 -0
- package/assets/fonts/OFL.txt +92 -0
- package/dist/agent-ui.e2e.test.js +27 -13
- package/dist/agent-ui.e2e.test.js.map +1 -1
- package/dist/agent-ui.js +2 -1
- package/dist/agent-ui.js.map +1 -1
- package/dist/analytics.e2e.test.js +1 -1
- package/dist/analytics.e2e.test.js.map +1 -1
- package/dist/autostart.d.ts +4 -0
- package/dist/autostart.js +55 -10
- package/dist/autostart.js.map +1 -1
- package/dist/bot.d.ts +10 -1
- package/dist/bot.js +14 -6
- package/dist/bot.js.map +1 -1
- package/dist/btw.e2e.test.js +3 -3
- package/dist/builtin-skills.d.ts +1 -1
- package/dist/builtin-skills.js +1 -1
- package/dist/builtin-skills.js.map +1 -1
- package/dist/builtin-skills.test.js +3 -4
- package/dist/builtin-skills.test.js.map +1 -1
- package/dist/catalog-refresh.e2e.test.js +2 -2
- package/dist/cli/bot.js +25 -14
- package/dist/cli/bot.js.map +1 -1
- package/dist/cli/discord.js +32 -6
- package/dist/cli/discord.js.map +1 -1
- package/dist/cli/schedule.js +23 -9
- package/dist/cli/schedule.js.map +1 -1
- package/dist/cli/session.js +37 -12
- package/dist/cli/session.js.map +1 -1
- package/dist/cli/shared.d.ts +5 -3
- package/dist/cli/shared.js +45 -10
- package/dist/cli/shared.js.map +1 -1
- package/dist/cli-discord.e2e.test.js +13 -8
- package/dist/cli-discord.e2e.test.js.map +1 -1
- package/dist/cli-lock.e2e.test.js +87 -20
- package/dist/cli-lock.e2e.test.js.map +1 -1
- package/dist/cli-read.e2e.test.js +18 -9
- package/dist/cli-read.e2e.test.js.map +1 -1
- package/dist/cli-sessions.e2e.test.js +4 -3
- package/dist/cli-sessions.e2e.test.js.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/preference-commands.d.ts +4 -0
- package/dist/commands/preference-commands.js +38 -4
- package/dist/commands/preference-commands.js.map +1 -1
- package/dist/commands/session-commands.js +11 -8
- package/dist/commands/session-commands.js.map +1 -1
- package/dist/commands/thread-commands.js +94 -24
- package/dist/commands/thread-commands.js.map +1 -1
- package/dist/commands/worktree-commands.d.ts +5 -6
- package/dist/commands/worktree-commands.js +8 -7
- package/dist/commands/worktree-commands.js.map +1 -1
- package/dist/commands.e2e.test.js +25 -21
- package/dist/commands.e2e.test.js.map +1 -1
- package/dist/coordinator-agents.e2e.test.d.ts +1 -0
- package/dist/coordinator-agents.e2e.test.js +113 -0
- package/dist/coordinator-agents.e2e.test.js.map +1 -0
- package/dist/coordinator-idle.e2e.test.d.ts +1 -0
- package/dist/coordinator-idle.e2e.test.js +100 -0
- package/dist/coordinator-idle.e2e.test.js.map +1 -0
- package/dist/coordinator-queue.e2e.test.d.ts +1 -0
- package/dist/coordinator-queue.e2e.test.js +244 -0
- package/dist/coordinator-queue.e2e.test.js.map +1 -0
- package/dist/coordinator-warmup.e2e.test.d.ts +1 -0
- package/dist/coordinator-warmup.e2e.test.js +131 -0
- package/dist/coordinator-warmup.e2e.test.js.map +1 -0
- package/dist/coordinator.d.ts +6 -0
- package/dist/coordinator.e2e.test.d.ts +1 -0
- package/dist/coordinator.e2e.test.js +505 -0
- package/dist/coordinator.e2e.test.js.map +1 -0
- package/dist/coordinator.js +164 -0
- package/dist/coordinator.js.map +1 -0
- package/dist/db.d.ts +78 -3
- package/dist/db.test.js +1 -0
- package/dist/db.test.js.map +1 -1
- package/dist/diagram.d.ts +11 -0
- package/dist/diagram.js +232 -0
- package/dist/diagram.js.map +1 -0
- package/dist/diagram.test.d.ts +1 -0
- package/dist/diagram.test.js +52 -0
- package/dist/diagram.test.js.map +1 -0
- package/dist/duration.js +13 -5
- package/dist/duration.js.map +1 -1
- package/dist/effects.d.ts +6 -1
- package/dist/effects.js +97 -26
- package/dist/effects.js.map +1 -1
- package/dist/event-loop.d.ts +1 -1
- package/dist/event-loop.js +73 -43
- package/dist/event-loop.js.map +1 -1
- package/dist/format-parts.d.ts +21 -4
- package/dist/format-parts.js +40 -23
- package/dist/format-parts.js.map +1 -1
- package/dist/gateway-replay.e2e.test.js +4 -4
- package/dist/harness.e2e.test.js +2 -2
- package/dist/harness.e2e.test.js.map +1 -1
- package/dist/hello-thread.e2e.test.js +56 -5
- package/dist/hello-thread.e2e.test.js.map +1 -1
- package/dist/ingress.js +47 -12
- package/dist/ingress.js.map +1 -1
- package/dist/interaction-context.d.ts +4 -4
- package/dist/interaction-context.js +9 -7
- package/dist/interaction-context.js.map +1 -1
- package/dist/interrupt.e2e.test.js +8 -5
- package/dist/interrupt.e2e.test.js.map +1 -1
- package/dist/legacy.e2e.test.js +1 -1
- package/dist/lock-routes.d.ts +83 -31
- package/dist/lock-routes.js +68 -8
- package/dist/lock-routes.js.map +1 -1
- package/dist/lock-server.d.ts +3 -2
- package/dist/lock-server.js +23 -7
- package/dist/lock-server.js.map +1 -1
- package/dist/main.d.ts +4 -2
- package/dist/main.js +13 -3
- package/dist/main.js.map +1 -1
- package/dist/mainmast-idle.e2e.test.d.ts +1 -0
- package/dist/mainmast-idle.e2e.test.js +99 -0
- package/dist/mainmast-idle.e2e.test.js.map +1 -0
- package/dist/mainmast-queue.e2e.test.d.ts +1 -0
- package/dist/mainmast-queue.e2e.test.js +244 -0
- package/dist/mainmast-queue.e2e.test.js.map +1 -0
- package/dist/mainmast-warmup.e2e.test.d.ts +1 -0
- package/dist/mainmast-warmup.e2e.test.js +130 -0
- package/dist/mainmast-warmup.e2e.test.js.map +1 -0
- package/dist/mainmast.d.ts +6 -0
- package/dist/mainmast.e2e.test.d.ts +1 -0
- package/dist/mainmast.e2e.test.js +428 -0
- package/dist/mainmast.e2e.test.js.map +1 -0
- package/dist/mainmast.js +156 -0
- package/dist/mainmast.js.map +1 -0
- package/dist/markdown/markdown.test.js +4 -4
- package/dist/markdown/render-markdown.js +6 -5
- package/dist/markdown/render-markdown.js.map +1 -1
- package/dist/onboarding-cli.e2e.test.js +7 -6
- package/dist/onboarding-cli.e2e.test.js.map +1 -1
- package/dist/onboarding.d.ts +3 -10
- package/dist/onboarding.e2e.test.js +8 -10
- package/dist/onboarding.e2e.test.js.map +1 -1
- package/dist/onboarding.js +14 -24
- package/dist/onboarding.js.map +1 -1
- package/dist/permissions.e2e.test.js +3 -3
- package/dist/plugin/coordinator.d.ts +4 -0
- package/dist/plugin/coordinator.js +389 -0
- package/dist/plugin/coordinator.js.map +1 -0
- package/dist/plugin/index.js +76 -17
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/mainmast.d.ts +4 -0
- package/dist/plugin/mainmast.js +379 -0
- package/dist/plugin/mainmast.js.map +1 -0
- package/dist/plugin.e2e.test.js +1 -1
- package/dist/preference-commands.e2e.test.js +103 -24
- package/dist/preference-commands.e2e.test.js.map +1 -1
- package/dist/project.d.ts +1 -1
- package/dist/prompt.d.ts +22 -9
- package/dist/prompt.js +64 -48
- package/dist/prompt.js.map +1 -1
- package/dist/questions.e2e.test.js +13 -13
- package/dist/queue-sources.e2e.test.d.ts +1 -0
- package/dist/queue-sources.e2e.test.js +168 -0
- package/dist/queue-sources.e2e.test.js.map +1 -0
- package/dist/queue.d.ts +9 -1
- package/dist/queue.e2e.test.js +48 -30
- package/dist/queue.e2e.test.js.map +1 -1
- package/dist/queue.js +97 -24
- package/dist/queue.js.map +1 -1
- package/dist/queue.test.d.ts +1 -0
- package/dist/queue.test.js +57 -0
- package/dist/queue.test.js.map +1 -0
- package/dist/remote-send.e2e.test.js +6 -6
- package/dist/remote-send.js +2 -1
- package/dist/remote-send.js.map +1 -1
- package/dist/renderer.e2e.test.js +7 -7
- package/dist/restart.e2e.test.js +2 -2
- package/dist/routines.e2e.test.js +2 -2
- package/dist/scheduler.d.ts +3 -3
- package/dist/scheduler.e2e.test.js +43 -20
- package/dist/scheduler.e2e.test.js.map +1 -1
- package/dist/scheduler.js +4 -2
- package/dist/scheduler.js.map +1 -1
- package/dist/schema-sql.d.ts +1 -1
- package/dist/schema-sql.js +1 -1
- package/dist/schema-sql.js.map +1 -1
- package/dist/schema.d.ts +152 -6
- package/dist/schema.js +12 -0
- package/dist/schema.js.map +1 -1
- package/dist/session-commands.e2e.test.js +36 -11
- package/dist/session-commands.e2e.test.js.map +1 -1
- package/dist/session-events.d.ts +18 -6
- package/dist/session-events.js +166 -22
- package/dist/session-events.js.map +1 -1
- package/dist/session-ops.e2e.test.js +63 -12
- package/dist/session-ops.e2e.test.js.map +1 -1
- package/dist/sessions.d.ts +44 -21
- package/dist/sessions.js +174 -63
- package/dist/sessions.js.map +1 -1
- package/dist/shell.e2e.test.js +4 -4
- package/dist/slash-commands.js +6 -4
- package/dist/slash-commands.js.map +1 -1
- package/dist/slash-commands.test.js +2 -0
- package/dist/slash-commands.test.js.map +1 -1
- package/dist/sleep.e2e.test.js +29 -14
- package/dist/sleep.e2e.test.js.map +1 -1
- package/dist/sleeps.d.ts +2 -1
- package/dist/sleeps.js +21 -3
- package/dist/sleeps.js.map +1 -1
- package/dist/store.d.ts +1 -0
- package/dist/store.js +3 -2
- package/dist/store.js.map +1 -1
- package/dist/system-prompt.d.ts +3 -1
- package/dist/system-prompt.js +138 -64
- package/dist/system-prompt.js.map +1 -1
- package/dist/test/generate-log-plugin/index.d.ts +3 -0
- package/dist/test/generate-log-plugin/index.js +15 -0
- package/dist/test/generate-log-plugin/index.js.map +1 -0
- package/dist/test/harness.d.ts +20 -1
- package/dist/test/harness.js +51 -10
- package/dist/test/harness.js.map +1 -1
- package/dist/test/replay.js +11 -7
- package/dist/test/replay.js.map +1 -1
- package/dist/thread-reducer.d.ts +29 -3
- package/dist/thread-reducer.fixtures.test.js +58 -51
- package/dist/thread-reducer.fixtures.test.js.map +1 -1
- package/dist/thread-reducer.js +112 -25
- package/dist/thread-reducer.js.map +1 -1
- package/dist/thread-reducer.test.js +197 -24
- package/dist/thread-reducer.test.js.map +1 -1
- package/dist/voice-attachments.e2e.test.js +108 -18
- package/dist/voice-attachments.e2e.test.js.map +1 -1
- package/dist/voice-call.e2e.test.js +9 -9
- package/dist/voice-call.js +6 -6
- package/dist/voice-call.js.map +1 -1
- package/dist/voice-openai.e2e.test.js +59 -23
- package/dist/voice-openai.e2e.test.js.map +1 -1
- package/dist/voice.d.ts +1 -1
- package/dist/voice.js +72 -24
- package/dist/voice.js.map +1 -1
- package/dist/working-directory.e2e.test.js +11 -11
- package/dist/working-directory.e2e.test.js.map +1 -1
- package/package.json +12 -6
- package/src/agent-ui.e2e.test.ts +27 -13
- package/src/agent-ui.ts +2 -1
- package/src/analytics.e2e.test.ts +1 -1
- package/src/autostart.ts +55 -10
- package/src/bot.ts +29 -5
- package/src/btw.e2e.test.ts +3 -3
- package/src/builtin-skills.test.ts +3 -4
- package/src/builtin-skills.ts +1 -1
- package/src/catalog-refresh.e2e.test.ts +2 -2
- package/src/cli/bot.ts +23 -14
- package/src/cli/discord.ts +30 -6
- package/src/cli/schedule.ts +23 -9
- package/src/cli/session.ts +35 -12
- package/src/cli/shared.ts +43 -8
- package/src/cli-discord.e2e.test.ts +13 -8
- package/src/cli-lock.e2e.test.ts +88 -20
- package/src/cli-read.e2e.test.ts +17 -8
- package/src/cli-sessions.e2e.test.ts +4 -3
- package/src/cli.ts +2 -0
- package/src/commands/preference-commands.ts +38 -4
- package/src/commands/session-commands.ts +12 -7
- package/src/commands/thread-commands.ts +92 -24
- package/src/commands/worktree-commands.ts +10 -9
- package/src/commands.e2e.test.ts +25 -21
- package/src/coordinator-agents.e2e.test.ts +145 -0
- package/src/coordinator-idle.e2e.test.ts +122 -0
- package/src/coordinator-queue.e2e.test.ts +279 -0
- package/src/coordinator-warmup.e2e.test.ts +158 -0
- package/src/coordinator.e2e.test.ts +545 -0
- package/src/coordinator.ts +168 -0
- package/src/db.test.ts +1 -0
- package/src/diagram.test.ts +56 -0
- package/src/diagram.ts +243 -0
- package/src/duration.ts +13 -5
- package/src/effects.ts +99 -27
- package/src/event-loop.ts +71 -42
- package/src/format-parts.ts +53 -22
- package/src/gateway-replay.e2e.test.ts +4 -4
- package/src/harness.e2e.test.ts +2 -2
- package/src/hello-thread.e2e.test.ts +59 -5
- package/src/ingress.ts +44 -11
- package/src/interaction-context.ts +12 -11
- package/src/interrupt.e2e.test.ts +8 -5
- package/src/legacy.e2e.test.ts +1 -1
- package/src/lock-routes.ts +62 -8
- package/src/lock-server.ts +23 -7
- package/src/main.ts +22 -7
- package/src/markdown/markdown.test.ts +4 -4
- package/src/markdown/render-markdown.ts +6 -5
- package/src/onboarding-cli.e2e.test.ts +7 -6
- package/src/onboarding.e2e.test.ts +8 -10
- package/src/onboarding.ts +13 -29
- package/src/permissions.e2e.test.ts +3 -3
- package/src/plugin/coordinator.ts +401 -0
- package/src/plugin/index.ts +68 -15
- package/src/plugin.e2e.test.ts +1 -1
- package/src/preference-commands.e2e.test.ts +103 -23
- package/src/prompt.ts +87 -43
- package/src/questions.e2e.test.ts +13 -13
- package/src/queue-sources.e2e.test.ts +197 -0
- package/src/queue.e2e.test.ts +48 -30
- package/src/queue.test.ts +59 -0
- package/src/queue.ts +104 -24
- package/src/remote-send.e2e.test.ts +6 -6
- package/src/remote-send.ts +2 -1
- package/src/renderer.e2e.test.ts +7 -7
- package/src/restart.e2e.test.ts +2 -2
- package/src/routines.e2e.test.ts +2 -2
- package/src/scheduler.e2e.test.ts +45 -19
- package/src/scheduler.ts +4 -2
- package/src/schema-sql.ts +1 -1
- package/src/schema.ts +13 -0
- package/src/session-commands.e2e.test.ts +38 -11
- package/src/session-events.ts +160 -21
- package/src/session-ops.e2e.test.ts +64 -11
- package/src/sessions.ts +214 -64
- package/src/shell.e2e.test.ts +4 -4
- package/src/slash-commands.test.ts +2 -0
- package/src/slash-commands.ts +6 -4
- package/src/sleep.e2e.test.ts +30 -13
- package/src/sleeps.ts +20 -3
- package/src/store.ts +5 -2
- package/src/system-prompt.ts +143 -63
- package/src/test/generate-log-plugin/index.ts +16 -0
- package/src/test/harness.ts +77 -14
- package/src/test/replay.ts +12 -6
- package/src/thread-reducer.fixtures.test.ts +58 -51
- package/src/thread-reducer.test.ts +207 -26
- package/src/thread-reducer.ts +138 -37
- package/src/voice-attachments.e2e.test.ts +110 -18
- package/src/voice-call.e2e.test.ts +9 -9
- package/src/voice-call.ts +6 -6
- package/src/voice-openai.e2e.test.ts +64 -24
- package/src/voice.ts +93 -26
- package/src/working-directory.e2e.test.ts +11 -11
package/dist/cli/session.js
CHANGED
|
@@ -10,7 +10,7 @@ import { parseDuration } from "../duration.js";
|
|
|
10
10
|
import { OpenCodeError } from "../errors.js";
|
|
11
11
|
import { editorsForFile, loadFileEditEvents } from "../file-edit-log.js";
|
|
12
12
|
import { allMessages, allSessions, readSessionMarkdown, sessionEventsFile, syncTranscripts, transcriptsDir } from "../session-events.js";
|
|
13
|
-
import { action, DATA_DIR_HELP, dataDirOrDefault, discordApi, fail, isThread, printJson, printRows, projectDirectory, readClient, SESSION_HELP, resolveTarget, targetOrEnv,
|
|
13
|
+
import { action, DATA_DIR_HELP, dataDirOrDefault, discordApi, fail, isThread, printJson, printRows, projectDirectory, readClient, SESSION_HELP, resolveTarget, targetOrEnv, waitAndPrintSessions, } from "./shared.js";
|
|
14
14
|
const execFileAsync = promisify(execFile);
|
|
15
15
|
// list, sync, wait, editors, diff, url
|
|
16
16
|
export function registerSessionQueryCommands(cli) {
|
|
@@ -25,8 +25,12 @@ export function registerSessionQueryCommands(cli) {
|
|
|
25
25
|
const errorCode = options.active ? 64 : 1;
|
|
26
26
|
const client = await readClient(errorCode);
|
|
27
27
|
const directory = options.all ? undefined : await projectDirectory({ project: options.project, channel: undefined, dataDir: options.dataDir });
|
|
28
|
+
// By project ID, not directory: sessions in linked worktrees of the same clone belong to the project too.
|
|
29
|
+
const location = directory ? await client.location.get({ location: { directory } }).catch((error) => error) : undefined;
|
|
30
|
+
if (location instanceof Error)
|
|
31
|
+
fail(location, errorCode);
|
|
28
32
|
const [sessions, active, forms, permissions] = await Promise.all([
|
|
29
|
-
allSessions({ client,
|
|
33
|
+
allSessions({ client, project: location?.project.id }),
|
|
30
34
|
client.session.active().catch((error) => error),
|
|
31
35
|
client.form.list().catch((error) => error),
|
|
32
36
|
client.permission.request.list().catch((error) => error),
|
|
@@ -70,16 +74,33 @@ export function registerSessionQueryCommands(cli) {
|
|
|
70
74
|
return printJson({ dir: transcriptsDir({ dataDir }), ...result });
|
|
71
75
|
process.stdout.write(`${transcriptsDir({ dataDir })}: ${result.written} written, ${result.skipped} skipped, ${result.failed} failed\n`);
|
|
72
76
|
});
|
|
73
|
-
cli.command('session wait
|
|
77
|
+
cli.command('session wait [...ids]', 'Wait until every session is idle or waits for the user, then print each one and why it returned')
|
|
78
|
+
.example('kimaki session wait ses_abc 1495130000000000000')
|
|
79
|
+
.example(`kimaki session wait $(kimaki session list --all --active | awk '{print $1}')`)
|
|
74
80
|
.option('--data-dir <path>', DATA_DIR_HELP)
|
|
75
|
-
.option('--timeout <duration>', 'Timeout, for example 30m or 2h')
|
|
76
|
-
.action(async (
|
|
77
|
-
const { sessionId } = await resolveTarget(id, options.dataDir);
|
|
81
|
+
.option('--timeout <duration>', 'Timeout, for example 30m or 2h; exit 1 when a session still runs')
|
|
82
|
+
.action(async (ids, options) => {
|
|
78
83
|
const timeout = options.timeout ? parseDuration(options.timeout) : undefined;
|
|
79
84
|
if (timeout instanceof Error)
|
|
80
85
|
fail(new Error('Use --timeout 30m, 2h, or another positive duration'));
|
|
86
|
+
// Empty when `$(kimaki session list --active)` found nothing.
|
|
87
|
+
if (ids.length === 0) {
|
|
88
|
+
process.stdout.write('No sessions to wait for\n');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const sessionIds = [];
|
|
92
|
+
for (const id of ids)
|
|
93
|
+
sessionIds.push((await resolveTarget(id, options.dataDir)).sessionId);
|
|
81
94
|
const client = await readClient();
|
|
82
|
-
|
|
95
|
+
const done = await waitAndPrintSessions({
|
|
96
|
+
client,
|
|
97
|
+
sessionIds: [...new Set(sessionIds)],
|
|
98
|
+
dataDir: options.dataDir,
|
|
99
|
+
signal: timeout === undefined ? undefined : AbortSignal.timeout(timeout),
|
|
100
|
+
timeout: options.timeout ?? '',
|
|
101
|
+
});
|
|
102
|
+
if (!done)
|
|
103
|
+
process.exitCode = 1;
|
|
83
104
|
});
|
|
84
105
|
cli.command('session editors <file>', 'List sessions that last edited a file, newest first')
|
|
85
106
|
.option('--data-dir <path>', DATA_DIR_HELP)
|
|
@@ -144,7 +165,7 @@ export function registerSessionQueryCommands(cli) {
|
|
|
144
165
|
process.stdout.write(`https://discord.com/channels/${thread.guild_id}/${result.threadId}\n`);
|
|
145
166
|
});
|
|
146
167
|
}
|
|
147
|
-
// abort, archive, title, queue, command, shell, btw, fork, resume: all through the bot.
|
|
168
|
+
// abort, archive, compact, title, queue, command, shell, btw, fork, resume: all through the bot.
|
|
148
169
|
export function registerSessionActionCommands(cli) {
|
|
149
170
|
cli.command('session abort [id]', 'Stop the running turn and clear its queue')
|
|
150
171
|
.option('--data-dir <path>', DATA_DIR_HELP)
|
|
@@ -152,6 +173,9 @@ export function registerSessionActionCommands(cli) {
|
|
|
152
173
|
cli.command('session archive [id]', 'Archive a session thread')
|
|
153
174
|
.option('--data-dir <path>', DATA_DIR_HELP)
|
|
154
175
|
.action(async (id, options) => action({ route: 'session.archive', dataDir: options.dataDir, input: targetOrEnv(id) }));
|
|
176
|
+
cli.command('session compact [id]', 'Summarize the session history after its current turn (default: this session)')
|
|
177
|
+
.option('--data-dir <path>', DATA_DIR_HELP)
|
|
178
|
+
.action(async (id, options) => action({ route: 'session.compact', dataDir: options.dataDir, input: targetOrEnv(id) }));
|
|
155
179
|
cli.command('session title <title>', 'Rename the session and its Discord thread')
|
|
156
180
|
.option('--data-dir <path>', DATA_DIR_HELP)
|
|
157
181
|
.option('-s, --session <id>', SESSION_HELP)
|
|
@@ -215,10 +239,11 @@ export function registerSessionHistoryCommands(cli) {
|
|
|
215
239
|
fail(new Error(`No events recorded for thread ${resolved.threadId} yet (${file})`));
|
|
216
240
|
await pipeline(fs.createReadStream(file), process.stdout);
|
|
217
241
|
});
|
|
218
|
-
cli.command('session read <id>', 'Print the
|
|
242
|
+
cli.command('session read <id>', 'Print the prompts and final answers of a session as markdown')
|
|
219
243
|
.option('--data-dir <path>', DATA_DIR_HELP)
|
|
220
|
-
.option('--
|
|
221
|
-
.option('--
|
|
244
|
+
.option('--full', 'Every message with tool calls')
|
|
245
|
+
.option('--thinking', 'Full output with reasoning')
|
|
246
|
+
.option('--verbose', 'Full output with tool inputs and outputs')
|
|
222
247
|
.option('--json', 'Print raw OpenCode messages')
|
|
223
248
|
.action(async (id, options) => {
|
|
224
249
|
// Subagent sessions are not in SQLite: resolveTarget keeps their ID.
|
|
@@ -230,7 +255,7 @@ export function registerSessionHistoryCommands(cli) {
|
|
|
230
255
|
fail(messages);
|
|
231
256
|
return printJson(messages);
|
|
232
257
|
}
|
|
233
|
-
const markdown = await readSessionMarkdown({ client, sessionId, thinking: options.thinking, verbose: options.verbose });
|
|
258
|
+
const markdown = await readSessionMarkdown({ client, sessionId, full: options.full, thinking: options.thinking, verbose: options.verbose });
|
|
234
259
|
if (markdown instanceof Error)
|
|
235
260
|
fail(markdown);
|
|
236
261
|
process.stdout.write(`${markdown}\n`);
|
package/dist/cli/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/cli/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/cli/session.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/shared.d.ts
CHANGED
|
@@ -26,11 +26,13 @@ export declare function resolveTarget(value: string, dataDir: string | undefined
|
|
|
26
26
|
sessionId: string;
|
|
27
27
|
threadId: string | null;
|
|
28
28
|
}>;
|
|
29
|
-
export declare function
|
|
29
|
+
export declare function waitAndPrintSessions({ client, sessionIds, dataDir, signal, timeout }: {
|
|
30
30
|
client: OpenCodeClient;
|
|
31
|
-
|
|
31
|
+
sessionIds: readonly string[];
|
|
32
|
+
dataDir: string | undefined;
|
|
32
33
|
signal?: AbortSignal;
|
|
33
|
-
|
|
34
|
+
timeout: string;
|
|
35
|
+
}): Promise<boolean>;
|
|
34
36
|
export declare function discordApi(dataDir: string | undefined): Promise<{
|
|
35
37
|
credentials: import("../credentials.ts").Credentials;
|
|
36
38
|
api: import("@discordjs/core/http-only").API;
|
package/dist/cli/shared.js
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
import os from 'node:os';
|
|
8
8
|
import path from 'node:path';
|
|
9
9
|
import { ChannelType } from 'discord-api-types/v10';
|
|
10
|
-
import { DbError } from "../errors.js";
|
|
10
|
+
import { BotNotRunningError, DbError } from "../errors.js";
|
|
11
11
|
import { canonicalPath } from "../file-edit-log.js";
|
|
12
12
|
import { callBot } from "../lock-server.js";
|
|
13
13
|
import { resolveOpencode } from "../opencode-server.js";
|
|
14
|
-
import { readSessionMarkdown, resolveSession,
|
|
14
|
+
import { readSessionMarkdown, resolveSession, waitForSessions } from "../session-events.js";
|
|
15
15
|
export const DATA_DIR_HELP = 'Data directory (default: ~/.kimaki)';
|
|
16
16
|
export const SESSION_HELP = 'Session ID, Discord thread ID or thread URL (default: OPENCODE_SESSION_ID)';
|
|
17
17
|
// Prints the error and its cause chain: "Discord login failed" alone hides why.
|
|
@@ -85,14 +85,49 @@ export async function resolveTarget(value, dataDir) {
|
|
|
85
85
|
return { sessionId: target.sessionId, threadId: null };
|
|
86
86
|
fail(result);
|
|
87
87
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
88
|
+
function statusText({ sessionId, status, buttons, timeout }) {
|
|
89
|
+
// `kimaki buttons` ends the turn, so the run looks finished while the session waits for a click.
|
|
90
|
+
if (buttons.length > 0 && status !== 'running' && status !== 'question' && status !== 'permission') {
|
|
91
|
+
return `is paused: it showed buttons (${buttons.join(', ')}) and waits for the user to click one, so its work may not be done`;
|
|
92
|
+
}
|
|
93
|
+
if (status === 'finished')
|
|
94
|
+
return 'finished its run';
|
|
95
|
+
if (status === 'failed')
|
|
96
|
+
return 'ended its run with an error';
|
|
97
|
+
if (status === 'interrupted')
|
|
98
|
+
return 'was interrupted, by an abort or by a new user message that started another run';
|
|
99
|
+
if (status === 'idle')
|
|
100
|
+
return 'was already idle: its last run ended before the wait started';
|
|
101
|
+
if (status === 'question')
|
|
102
|
+
return 'is paused: it waits for the user to answer a question, so its work is not done';
|
|
103
|
+
if (status === 'permission')
|
|
104
|
+
return 'is paused: it waits for the user to allow a permission, so its work is not done';
|
|
105
|
+
return `is still running after ${timeout}. Run kimaki session wait ${sessionId} to wait for the rest`;
|
|
106
|
+
}
|
|
107
|
+
// Waits until every session ended its run or paused for the user, then prints each one in
|
|
108
|
+
// order under a header that says why it returned. Returns false when `signal` ended the wait first.
|
|
109
|
+
export async function waitAndPrintSessions({ client, sessionIds, dataDir, signal, timeout }) {
|
|
110
|
+
const statuses = await waitForSessions({ client, sessionIds, signal });
|
|
111
|
+
if (statuses instanceof Error)
|
|
112
|
+
fail(statuses);
|
|
113
|
+
// Buttons live in the bot's memory. Without a bot nothing can show them.
|
|
114
|
+
const buttons = await callBot({ dataDir: dataDirOrDefault(dataDir), route: 'session.buttons', input: { sessionIds: [...sessionIds] } });
|
|
115
|
+
if (buttons instanceof Error && !(buttons instanceof BotNotRunningError))
|
|
116
|
+
process.stderr.write(`cannot read pending buttons: ${buttons.message}\n`);
|
|
117
|
+
for (const sessionId of sessionIds) {
|
|
118
|
+
const status = statuses.get(sessionId) ?? 'running';
|
|
119
|
+
const text = statusText({ sessionId, status, buttons: buttons instanceof Error ? [] : buttons.data[sessionId] ?? [], timeout });
|
|
120
|
+
const header = `=== ${sessionId} ${text} ===`;
|
|
121
|
+
if (status === 'running') {
|
|
122
|
+
process.stdout.write(`${header}\n\n`);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const markdown = await readSessionMarkdown({ client, sessionId });
|
|
126
|
+
if (markdown instanceof Error)
|
|
127
|
+
fail(markdown);
|
|
128
|
+
process.stdout.write(`${header}\n\n${markdown}\n\n`);
|
|
129
|
+
}
|
|
130
|
+
return [...statuses.values()].every((status) => status !== 'running');
|
|
96
131
|
}
|
|
97
132
|
// Discord REST with the bot token: KIMAKI_BOT_TOKEN (no kimaki.db needed, e.g. CI), else saved credentials.
|
|
98
133
|
export async function discordApi(dataDir) {
|
package/dist/cli/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/cli/shared.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,qEAAqE;AACrE,wEAAwE;AACxE,qEAAqE;AACrE,+EAA+E;AAC/E,uEAAuE;AAEvE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/cli/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,12 @@ test('independent Discord CLI lists threads and users, uploads a file, and reads
|
|
|
42
42
|
fs.mkdirSync(path.join(server.root, 'other'), { recursive: true });
|
|
43
43
|
for (const name of ['b.png', 'my shot.png', 'other/b.png'])
|
|
44
44
|
fs.writeFileSync(path.join(server.root, name), 'png');
|
|
45
|
-
await cli(['upload-to-discord', ...['b.png', 'report.txt', 'my shot.png', 'other/b.png'].map((name) => path.join(server.root, name)), '--session', started.sessionId]);
|
|
45
|
+
const uploaded = await cli(['upload-to-discord', ...['b.png', 'report.txt', 'my shot.png', 'other/b.png'].map((name) => path.join(server.root, name)), '--session', started.sessionId]);
|
|
46
|
+
// Each file with its Discord URL, in argument order, so a coordinator can repost them (the twin uses data: URLs).
|
|
47
|
+
expect(uploaded.stdout).toMatchInlineSnapshot(`
|
|
48
|
+
"{"uploaded":[{"name":"b.png","url":"data:application/octet-stream;base64,cG5n"},{"name":"report.txt","url":"data:application/octet-stream;base64,cmVwb3J0"},{"name":"my shot.png","url":"data:application/octet-stream;base64,cG5n"},{"name":"b.png","url":"data:application/octet-stream;base64,cG5n"}]}
|
|
49
|
+
"
|
|
50
|
+
`);
|
|
46
51
|
// The agent learns that nothing was posted.
|
|
47
52
|
const missing = await cli(['upload-to-discord', path.join(server.root, 'missing.png'), '--session', started.sessionId]).catch((error) => error);
|
|
48
53
|
expect(missing.stderr.replace(server.root, '<root>')).toMatchInlineSnapshot(`
|
|
@@ -53,20 +58,20 @@ test('independent Discord CLI lists threads and users, uploads a file, and reads
|
|
|
53
58
|
const install = await cli(['bot', 'install-url']);
|
|
54
59
|
expect(await twin.discord.thread(started.threadId).text()).toMatchInlineSnapshot(`
|
|
55
60
|
"--- from: assistant (TestBot)
|
|
56
|
-
» **CLI:** Discord CLI flow
|
|
61
|
+
-# » **CLI:** Discord CLI flow
|
|
57
62
|
-# *using deterministic-provider/deterministic-v2 ⋅ build*
|
|
58
63
|
ok
|
|
59
|
-
-# *
|
|
60
|
-
[file:
|
|
64
|
+
-# *main ⋅ Ns ⋅ deterministic-v2*
|
|
65
|
+
[file: data:application/octet-stream;base64,cmVwb3J0]
|
|
61
66
|
[attachment: report.txt]
|
|
62
67
|
-# 1. \`b.png\`
|
|
63
|
-
[media:
|
|
68
|
+
[media: data:application/octet-stream;base64,cG5n]
|
|
64
69
|
-# 2. \`report.txt\`
|
|
65
|
-
[file:
|
|
70
|
+
[file: data:application/octet-stream;base64,cmVwb3J0]
|
|
66
71
|
-# 3. \`my shot.png\`
|
|
67
|
-
[media:
|
|
72
|
+
[media: data:application/octet-stream;base64,cG5n]
|
|
68
73
|
-# 4. \`b.png\`
|
|
69
|
-
[media:
|
|
74
|
+
[media: data:application/octet-stream;base64,cG5n]
|
|
70
75
|
[attachment: b.png]
|
|
71
76
|
[attachment: report.txt]
|
|
72
77
|
[attachment: my_shot.png]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-discord.e2e.test.js","sourceRoot":"","sources":["../src/cli-discord.e2e.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-discord.e2e.test.js","sourceRoot":"","sources":["../src/cli-discord.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,16 +30,23 @@ test('CLI send starts and continues a session through the authenticated bot API'
|
|
|
30
30
|
const first = await cli(['send', '--channel', twin.channelId, '--prompt', 'CLI first']);
|
|
31
31
|
const ids = JSON.parse(first.stdout);
|
|
32
32
|
await waitForFooter({ discord: twin.discord, threadId: ids.threadId });
|
|
33
|
+
// Follow-ups into an idle thread have no Discord message: the thread must still show them.
|
|
33
34
|
await cli(['send', '--thread', ids.threadId, '--prompt', 'CLI second. queue']);
|
|
34
35
|
await waitForFooter({ discord: twin.discord, threadId: ids.threadId, count: 2 });
|
|
36
|
+
await cli(['send', '--thread', ids.threadId, '--prompt', 'CLI third']);
|
|
37
|
+
await waitForFooter({ discord: twin.discord, threadId: ids.threadId, count: 3 });
|
|
35
38
|
expect(await twin.discord.thread(ids.threadId).text()).toMatchInlineSnapshot(`
|
|
36
39
|
"--- from: assistant (TestBot)
|
|
37
|
-
» **CLI:** CLI first
|
|
40
|
+
-# » **CLI:** CLI first
|
|
38
41
|
-# *using deterministic-provider/deterministic-v2 ⋅ build*
|
|
39
42
|
ok
|
|
40
|
-
-# *
|
|
43
|
+
-# *main ⋅ Ns ⋅ deterministic-v2*
|
|
44
|
+
-# » **CLI:** CLI second
|
|
41
45
|
ok
|
|
42
|
-
-# *
|
|
46
|
+
-# *main ⋅ Ns ⋅ deterministic-v2*
|
|
47
|
+
-# » **CLI:** CLI third
|
|
48
|
+
ok
|
|
49
|
+
-# *main ⋅ Ns ⋅ deterministic-v2*"
|
|
43
50
|
`);
|
|
44
51
|
expect(ids.sessionId).toMatch(/^ses_/);
|
|
45
52
|
const tokenFile = path.join(dataDir, 'lock-token');
|
|
@@ -52,12 +59,57 @@ test('CLI send starts and continues a session through the authenticated bot API'
|
|
|
52
59
|
});
|
|
53
60
|
expect(invalid.status).toBe(400);
|
|
54
61
|
});
|
|
62
|
+
test('CLI send shows a prompt over 2000 chars in full, split into messages', async () => {
|
|
63
|
+
const prompt = Array.from({ length: 30 }, (_, index) => `line ${String(index).padStart(2, '0')}: ${'x'.repeat(70)}`).join('\n');
|
|
64
|
+
const sent = await cli(['send', '--channel', twin.channelId, '--prompt', prompt]);
|
|
65
|
+
const ids = JSON.parse(sent.stdout);
|
|
66
|
+
await waitForFooter({ discord: twin.discord, threadId: ids.threadId });
|
|
67
|
+
expect(await twin.discord.thread(ids.threadId).text()).toMatchInlineSnapshot(`
|
|
68
|
+
"--- from: assistant (TestBot)
|
|
69
|
+
-# » **CLI:** line 00: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
70
|
+
-# line 01: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
71
|
+
-# line 02: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
72
|
+
-# line 03: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
73
|
+
-# line 04: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
74
|
+
-# line 05: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
75
|
+
-# line 06: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
76
|
+
-# line 07: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
77
|
+
-# line 08: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
78
|
+
-# line 09: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
79
|
+
-# line 10: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
80
|
+
-# line 11: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
81
|
+
-# line 12: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
82
|
+
-# line 13: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
83
|
+
-# line 14: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
84
|
+
-# line 15: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
85
|
+
-# line 16: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
86
|
+
-# line 17: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
87
|
+
-# line 18: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
88
|
+
-# line 19: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
89
|
+
-# line 20: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
90
|
+
-# line 21: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
91
|
+
-# line 22: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
92
|
+
-# line 23: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
93
|
+
-# line 24: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
94
|
+
-# line 25: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
95
|
+
-# line 26: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
96
|
+
-# line 27: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
97
|
+
-# line 28: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
98
|
+
-# line 29: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
99
|
+
-# *using deterministic-provider/deterministic-v2 ⋅ build*
|
|
100
|
+
ok
|
|
101
|
+
-# *main ⋅ Ns ⋅ deterministic-v2*"
|
|
102
|
+
`);
|
|
103
|
+
const messages = await twin.discord.thread(ids.threadId).getMessages();
|
|
104
|
+
expect(messages.every((message) => message.content.length <= 2000)).toBe(true);
|
|
105
|
+
});
|
|
55
106
|
test('CLI help documents the supported P7 commands', async () => {
|
|
56
107
|
const output = await cli(['--help']);
|
|
57
108
|
expect(output.stdout).toContain('send');
|
|
58
109
|
expect(output.stdout).toContain('upload-request');
|
|
59
|
-
|
|
60
|
-
|
|
110
|
+
// The header is `kimaki/<version>`; keep the snapshot stable across releases.
|
|
111
|
+
expect(output.stdout.replace(/^kimaki\/[^\n]+/, 'kimaki/<version>')).toMatchInlineSnapshot(`
|
|
112
|
+
"kimaki/<version>
|
|
61
113
|
|
|
62
114
|
Usage:
|
|
63
115
|
$ kimaki [options]
|
|
@@ -91,9 +143,9 @@ test('CLI help documents the supported P7 commands', async () => {
|
|
|
91
143
|
--rebuild Write transcripts again, also current ones
|
|
92
144
|
--json Output as JSON
|
|
93
145
|
|
|
94
|
-
session wait
|
|
146
|
+
session wait [...ids] Wait until every session is idle or waits for the user, then print each one and why it returned
|
|
95
147
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
96
|
-
--timeout <duration> Timeout, for example 30m or 2h
|
|
148
|
+
--timeout <duration> Timeout, for example 30m or 2h; exit 1 when a session still runs
|
|
97
149
|
|
|
98
150
|
session editors <file> List sessions that last edited a file, newest first
|
|
99
151
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
@@ -129,6 +181,9 @@ test('CLI help documents the supported P7 commands', async () => {
|
|
|
129
181
|
session archive [id] Archive a session thread
|
|
130
182
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
131
183
|
|
|
184
|
+
session compact [id] Summarize the session history after its current turn (default: this session)
|
|
185
|
+
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
186
|
+
|
|
132
187
|
session title <title> Rename the session and its Discord thread
|
|
133
188
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
134
189
|
-s, --session <id> Session ID, Discord thread ID or thread URL (default: OPENCODE_SESSION_ID)
|
|
@@ -177,7 +232,7 @@ test('CLI help documents the supported P7 commands', async () => {
|
|
|
177
232
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
178
233
|
-c, --channel <id> Destination channel (default: channel of the session folder)
|
|
179
234
|
|
|
180
|
-
buttons Show 1-3 action buttons.
|
|
235
|
+
buttons Show 1-3 action buttons. Explain them in your text
|
|
181
236
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
182
237
|
-s, --session <id> Session ID, Discord thread ID or thread URL (default: OPENCODE_SESSION_ID)
|
|
183
238
|
-b, --button <spec> Repeatable: Label[:white|blue|green|red]
|
|
@@ -207,7 +262,7 @@ test('CLI help documents the supported P7 commands', async () => {
|
|
|
207
262
|
-d, --project <path> Project directory of the new thread
|
|
208
263
|
--thread <id> Continue this thread (ID or URL)
|
|
209
264
|
-s, --session <id> Continue this session: session ID, thread ID or thread URL
|
|
210
|
-
-p, --prompt <text> Prompt; thread suffixes . queue and . btw are supported
|
|
265
|
+
-p, --prompt <text> Prompt; thread suffixes . queue and . btw are supported (required)
|
|
211
266
|
-f, --file <path> Attach a local file (repeatable)
|
|
212
267
|
-n, --name <text> Thread name
|
|
213
268
|
--agent <name> Agent ID
|
|
@@ -219,7 +274,7 @@ test('CLI help documents the supported P7 commands', async () => {
|
|
|
219
274
|
--parent-session <id> Record the parent session in session metadata
|
|
220
275
|
--permission <rule> Repeatable: tool[:pattern]:allow|deny|ask
|
|
221
276
|
--notify-only Post a notification thread without a model turn
|
|
222
|
-
--wait
|
|
277
|
+
--wait [seconds] Wait until idle or input is needed (at most this many seconds, default 1 day), then print the session
|
|
223
278
|
--send-at <when> Schedule: UTC ISO date ending in Z, or cron expression (UTC)
|
|
224
279
|
--pre-run <command> Scheduled only: run first in the project. Exit 0 starts, stdout is appended
|
|
225
280
|
--allow-concurrency Scheduled only: allow overlapping runs of this routine
|
|
@@ -227,10 +282,11 @@ test('CLI help documents the supported P7 commands', async () => {
|
|
|
227
282
|
session events <id> Print the recorded OpenCode events of a thread as JSONL (root + subagents)
|
|
228
283
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
229
284
|
|
|
230
|
-
session read <id> Print the
|
|
285
|
+
session read <id> Print the prompts and final answers of a session as markdown
|
|
231
286
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
232
|
-
--
|
|
233
|
-
--
|
|
287
|
+
--full Every message with tool calls
|
|
288
|
+
--thinking Full output with reasoning
|
|
289
|
+
--verbose Full output with tool inputs and outputs
|
|
234
290
|
--json Print raw OpenCode messages
|
|
235
291
|
|
|
236
292
|
session cwd [directory] Show or change the working directory at a native safe boundary
|
|
@@ -290,7 +346,7 @@ test('CLI help documents the supported P7 commands', async () => {
|
|
|
290
346
|
routine run <routineId> Run a routine now
|
|
291
347
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
292
348
|
|
|
293
|
-
sleep Wake this session later with a new message in the same thread. Run it last, after your text. To monitor slow events (email replies, PR reviews), wait 2h or more; never poll every few minutes
|
|
349
|
+
sleep Wake this session later with a new message in the same thread. Run it last, after your text. To monitor slow events (email replies, PR reviews), wait 2h or more; never poll every few minutes. When blocked on a user action outside the chat (a sudo or permission dialog, a login), ask for it, assume they will do it, and sleep 5m, then check and continue on your own
|
|
294
350
|
--data-dir <path> Data directory (default: ~/.kimaki)
|
|
295
351
|
--duration <duration> Relative wait, e.g. 30m, 2h, 1d
|
|
296
352
|
--until <date> UTC ISO date ending in Z
|
|
@@ -315,6 +371,10 @@ test('CLI help documents the supported P7 commands', async () => {
|
|
|
315
371
|
-s, --session <id> Session ID, Discord thread ID or thread URL (default: OPENCODE_SESSION_ID)
|
|
316
372
|
-c, --channel <id> Kimaki voice channel to post in (default in voice calls: KIMAKI_CHANNEL_ID)
|
|
317
373
|
|
|
374
|
+
diagram <input> Render a Mermaid diagram (file path, or - for stdin) to a light themed PNG. Upload it with upload-to-discord
|
|
375
|
+
-o, --output <path> PNG file to write (default: input path with .png, or a temp file for stdin)
|
|
376
|
+
--dark Dark theme instead of light
|
|
377
|
+
|
|
318
378
|
Tools:
|
|
319
379
|
tunnel Run a command and expose its local port with a public opentunnel.xyz URL. The child gets KIMAKI_TUNNEL_URL
|
|
320
380
|
-p, --port <port> Local port (default: read from the command output)
|
|
@@ -373,10 +433,13 @@ test('CLI help documents the supported P7 commands', async () => {
|
|
|
373
433
|
--allow-all-users Every server member can use the bot (role "no-kimaki" still denies; provider login stays admin-only)
|
|
374
434
|
--voice <name> Voice of voice calls, saved for later starts (e.g. cove, juniper, sol). "default" resets it
|
|
375
435
|
--disable-skills <list> Built-in Kimaki skills to turn off: "all" or a comma separated list (kimaki-debug,kimaki-tunnel)
|
|
376
|
-
--disable-prompt <section> System prompt section to remove from new sessions (repeatable): 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,
|
|
436
|
+
--disable-prompt <section> System prompt section to remove from new sessions (repeatable): 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
|
|
377
437
|
--no-analytics Disable anonymous usage analytics (same as KIMAKI_STRADA_ENABLED=0)
|
|
438
|
+
--coordinator [enabled] Channel messages go to one long coordinator session that starts threads for the work. "false" turns it off (/toggle-coordinator sets one channel) (default: true)
|
|
439
|
+
--no-autostart Do not open a terminal with the bot when OpenCode starts (for bots run by launchd, systemd or pm2)
|
|
378
440
|
--if-not-running Start only if no bot runs; never stop the running one (used by autostart)
|
|
379
441
|
-h, --help Display this message
|
|
442
|
+
-V, --version Display version number
|
|
380
443
|
"
|
|
381
444
|
`);
|
|
382
445
|
});
|
|
@@ -402,16 +465,20 @@ test('CLI registry shares thread actions, preferences, title and archive', async
|
|
|
402
465
|
await cli(['session', 'queue', 'add', 'Registry queued', '--session', started.threadId]);
|
|
403
466
|
await expect(cli(['session', 'queue', 'list', '--session', 'not-an-id'])).rejects.toThrow('Not a session ID, Discord thread ID or thread URL: not-an-id');
|
|
404
467
|
await waitForFooter({ discord: twin.discord, threadId: started.threadId, count: 2 });
|
|
468
|
+
// The deterministic model writes no summary template, so the compaction runs and fails.
|
|
469
|
+
expect(JSON.parse((await cli(['session', 'compact', started.threadId])).stdout)).toEqual({ sessionId: started.sessionId, queued: true });
|
|
405
470
|
await cli(['session', 'abort', started.sessionId]);
|
|
406
471
|
await cli(['session', 'archive', started.threadId]);
|
|
407
472
|
expect(await twin.discord.thread(started.threadId).text()).toMatchInlineSnapshot(`
|
|
408
473
|
"--- from: assistant (TestBot)
|
|
409
|
-
» **CLI:** Registry first
|
|
474
|
+
-# » **CLI:** Registry first
|
|
410
475
|
-# *using deterministic-provider/deterministic-v2 ⋅ build*
|
|
411
476
|
ok
|
|
412
|
-
-# *
|
|
477
|
+
-# *main ⋅ Ns ⋅ deterministic-v2*
|
|
478
|
+
-# » **CLI:** Registry queued
|
|
413
479
|
ok
|
|
414
|
-
-# *
|
|
480
|
+
-# *main ⋅ Ns ⋅ deterministic-v2 ⋅ build*
|
|
481
|
+
✗ compaction failed: Compaction summary did not match the required template"
|
|
415
482
|
`);
|
|
416
483
|
expect((await twin.discord.channel(twin.channelId).getThreads()).find((thread) => thread.id === started.threadId)?.name).toBe('CLI renamed');
|
|
417
484
|
});
|
|
@@ -423,10 +490,10 @@ test('send settings reach native session creation; notifications create no sessi
|
|
|
423
490
|
await waitForFooter({ discord: twin.discord, threadId: ids.threadId });
|
|
424
491
|
expect(await twin.discord.thread(ids.threadId).text()).toMatchInlineSnapshot(`
|
|
425
492
|
"--- from: assistant (TestBot)
|
|
426
|
-
» **CLI:** Send settings
|
|
493
|
+
-# » **CLI:** Send settings
|
|
427
494
|
-# *using deterministic-provider/deterministic-v2 ⋅ build*
|
|
428
495
|
ok
|
|
429
|
-
-# *subfolder ⋅ main ⋅ Ns ⋅ deterministic-v2*"
|
|
496
|
+
-# *subfolder ⋅ main ⋅ Ns ⋅ deterministic-v2 ⋅ build*"
|
|
430
497
|
`);
|
|
431
498
|
const info = await (await server.client()).session.get({ sessionID: ids.sessionId });
|
|
432
499
|
expect(info.location.directory).toBe(subdir);
|