kumo-cli 1.2.3 → 1.3.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/README.md +5 -4
- package/dist/auth/credentialsStore.js +8 -6
- package/dist/auth/credentialsStore.js.map +1 -1
- package/dist/claude/conversation.js +26 -2
- package/dist/claude/conversation.js.map +1 -1
- package/dist/claude/goal.js +100 -0
- package/dist/claude/goal.js.map +1 -0
- package/dist/claude/sessionTasks.js +112 -0
- package/dist/claude/sessionTasks.js.map +1 -0
- package/dist/claude/transcriptParser.js +11 -0
- package/dist/claude/transcriptParser.js.map +1 -1
- package/dist/commands/agentPrompt.js +68 -4
- package/dist/commands/agentPrompt.js.map +1 -1
- package/dist/core/config.js +3 -2
- package/dist/core/config.js.map +1 -1
- package/dist/engine/claudeArgs.js +5 -0
- package/dist/engine/claudeArgs.js.map +1 -1
- package/dist/engine/claudeConfig.js +23 -9
- package/dist/engine/claudeConfig.js.map +1 -1
- package/dist/engine/designLogin.js +112 -0
- package/dist/engine/designLogin.js.map +1 -0
- package/dist/engine/liveTranscript.js +27 -4
- package/dist/engine/liveTranscript.js.map +1 -1
- package/dist/engine/notices.js +53 -0
- package/dist/engine/notices.js.map +1 -0
- package/dist/engine/sessionManager.js +81 -3
- package/dist/engine/sessionManager.js.map +1 -1
- package/dist/engine/sessionModes.js +50 -0
- package/dist/engine/sessionModes.js.map +1 -0
- package/dist/engine/settingsCommands.js +24 -0
- package/dist/engine/settingsCommands.js.map +1 -1
- package/dist/engine/streamSession.js +99 -6
- package/dist/engine/streamSession.js.map +1 -1
- package/dist/engine/taskTracker.js +87 -13
- package/dist/engine/taskTracker.js.map +1 -1
- package/dist/engine/toolLabels.js +5 -0
- package/dist/engine/toolLabels.js.map +1 -1
- package/dist/handlers/runtimeHandlers.js +23 -1
- package/dist/handlers/runtimeHandlers.js.map +1 -1
- package/dist/handlers/sessionHandlers.js +9 -1
- package/dist/handlers/sessionHandlers.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/bootstrapService.js +1 -1
- package/dist/services/bootstrapService.js.map +1 -1
- package/dist/services/cliRuntime.js +14 -0
- package/dist/services/cliRuntime.js.map +1 -1
- package/dist/services/sessionService.js +27 -4
- package/dist/services/sessionService.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,15 +39,16 @@ Kumo CLI is configured via environment variables. Export them in your shell or l
|
|
|
39
39
|
|
|
40
40
|
| Variable | Default | Description |
|
|
41
41
|
| --- | --- | --- |
|
|
42
|
-
| `
|
|
43
|
-
| `KUMO_SERVER_HTTP_URL` | derived | Override the HTTP endpoint explicitly. |
|
|
42
|
+
| `KUMO_SERVER_HTTP_URL` | `https://kumocli.com` | Base URL of the Kumo backend. The WS endpoint derives from it. |
|
|
44
43
|
| `KUMO_SERVER_WS_URL` | derived | Override the WebSocket endpoint explicitly. |
|
|
45
44
|
| `KUMO_PERMISSION_MODE` | `default` | Permission mode for new sessions: `default`, `acceptEdits`, `plan` or `bypassPermissions` (needs `--dangerously-skip-permissions`). |
|
|
46
45
|
| `KUMO_CLAUDE_BIN` | auto | Path to the `claude` executable when auto-discovery picks the wrong one. |
|
|
47
46
|
| `KUMO_HOME_DIR` | `~/.kumo` | Where credentials and the device identity are stored. |
|
|
48
47
|
| `KUMO_ALLOWED_TUNNEL_PORTS` | all | Comma-separated local ports the app may tunnel to, e.g. `3000,5173`. Tunnels always target `127.0.0.1`. |
|
|
49
48
|
|
|
50
|
-
Credentials are persisted to `~/.kumo/credentials.json`.
|
|
49
|
+
Credentials are persisted to `~/.kumo/credentials.json`. A server other than `https://kumocli.com` keeps its own in `~/.kumo/credentials-local.json`, so switching between them does not ask for a new pairing.
|
|
50
|
+
|
|
51
|
+
Each chat's permission mode is kept in `~/.kumo/session-modes.json`, so it survives a restart of the CLI. Bypass permissions comes back as auto: running every tool unasked has to be chosen again.
|
|
51
52
|
|
|
52
53
|
The CLI also keeps a stable device identity in `~/.kumo/device.json` so pairing the same machine again after a reset reuses the existing machine entry instead of creating a duplicate.
|
|
53
54
|
|
|
@@ -107,7 +108,7 @@ Likewise, bypass permissions mode is only available from the app when Kumo was s
|
|
|
107
108
|
|
|
108
109
|
- **In-app terminal unavailable on Linux** — `node-pty` failed to compile. Install the toolchain (above), run `npm cache npx rm` to drop the cached copy, then `npx kumo-cli@latest` again.
|
|
109
110
|
- **Pairing code rejected** — codes are single-use and expire quickly. Generate a fresh one in the app.
|
|
110
|
-
- **Cannot connect** — verify `
|
|
111
|
+
- **Cannot connect** — verify `KUMO_SERVER_HTTP_URL` matches the backend the app is talking to.
|
|
111
112
|
- **"Claude is not logged in"** — run `claude` once on the machine and sign in, then send the prompt again.
|
|
112
113
|
- **Wrong Claude binary** — set `KUMO_CLAUDE_BIN` to the `claude` executable you want the CLI to use.
|
|
113
114
|
|
|
@@ -2,11 +2,13 @@ import fs from 'node:fs';
|
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
|
+
import { DEFAULT_SERVER_HTTP, SERVER_HTTP } from '../core/config.js';
|
|
5
6
|
const KUMO_DIR_ENV = 'KUMO_HOME_DIR';
|
|
6
|
-
const CRED_FILE_NAME = 'credentials.json';
|
|
7
7
|
const DEVICE_FILE_NAME = 'device.json';
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
// a dev backend keeps its own token, so switching servers never drops the other's pairing
|
|
9
|
+
function credentialsFileName(agent, server) {
|
|
10
|
+
const name = agent === 'claude' ? 'credentials' : `${agent}-credentials`;
|
|
11
|
+
return server === DEFAULT_SERVER_HTTP ? `${name}.json` : `${name}-local.json`;
|
|
10
12
|
}
|
|
11
13
|
// resolve the local kumo state directory and allow tests to override it
|
|
12
14
|
export function kumoDir() {
|
|
@@ -33,7 +35,7 @@ function writePrivate(file, data) {
|
|
|
33
35
|
fs.writeFileSync(file, JSON.stringify(data, null, 2), { encoding: 'utf-8', mode: 0o600 });
|
|
34
36
|
restrict(file, 0o600);
|
|
35
37
|
}
|
|
36
|
-
// load credentials
|
|
38
|
+
// load the current server's credentials (~/.kumo/credentials.json, or credentials-local.json off production) if present
|
|
37
39
|
export function loadCredentials(agent = 'claude') {
|
|
38
40
|
try {
|
|
39
41
|
const file = credentialsPath(agent);
|
|
@@ -92,8 +94,8 @@ export function clearCredentials(agent = 'claude') {
|
|
|
92
94
|
return false;
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
|
-
export function credentialsPath(agent = 'claude') {
|
|
96
|
-
return path.join(kumoDir(), credentialsFileName(agent));
|
|
97
|
+
export function credentialsPath(agent = 'claude', server = SERVER_HTTP()) {
|
|
98
|
+
return path.join(kumoDir(), credentialsFileName(agent, server));
|
|
97
99
|
}
|
|
98
100
|
export function deviceIdentityPath() {
|
|
99
101
|
return path.join(kumoDir(), DEVICE_FILE_NAME);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentialsStore.js","sourceRoot":"","sources":["../../src/auth/credentialsStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"credentialsStore.js","sourceRoot":"","sources":["../../src/auth/credentialsStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
// drop out, then put back the sibling entries of assistant messages split over several lines
|
|
4
4
|
// (parallel tool calls) and turn answered queued prompts into user messages. unlike the
|
|
5
5
|
// extension the conversations before each compaction stay, above its boundary
|
|
6
|
+
import { goalNotice } from './goal.js';
|
|
7
|
+
// a message from another claude session: written as meta, shown all the same
|
|
8
|
+
const isPeer = (entry) => entry.type === 'user' && entry.origin?.kind === 'peer';
|
|
9
|
+
// what /goal printed and how a goal ended, shown as notice lines
|
|
10
|
+
export const isGoalNotice = (entry) => goalNotice(entry) !== null;
|
|
6
11
|
const CHAIN_TYPES = new Set(['user', 'assistant', 'progress', 'system', 'attachment']);
|
|
7
12
|
// the jsonl lines that take part in the chain
|
|
8
13
|
export function parseEntries(lines) {
|
|
@@ -246,6 +251,25 @@ function withEarlierSegments(chain, written) {
|
|
|
246
251
|
}
|
|
247
252
|
return earlier.length === 0 ? chain : [...earlier, ...chain.filter((e) => !visited.has(e.uuid))];
|
|
248
253
|
}
|
|
254
|
+
// the goal notices written after the last turn (a goal met by it), down the newest line of entries
|
|
255
|
+
function goalTail(leaf, byUuid, order) {
|
|
256
|
+
const children = new Map();
|
|
257
|
+
for (const e of byUuid.values())
|
|
258
|
+
if (e.parentUuid && !e.isSidechain && !e.teamName)
|
|
259
|
+
push(children, e.parentUuid, e);
|
|
260
|
+
const tail = [];
|
|
261
|
+
const seen = new Set();
|
|
262
|
+
for (let e = leaf; e && !seen.has(e.uuid);) {
|
|
263
|
+
seen.add(e.uuid);
|
|
264
|
+
const next = (children.get(e.uuid) ?? []).reduce((a, b) => (!a || (order.get(b.uuid) ?? -1) > (order.get(a.uuid) ?? -1) ? b : a), undefined);
|
|
265
|
+
if (!next || isTurn(next))
|
|
266
|
+
break;
|
|
267
|
+
if (isGoalNotice(next))
|
|
268
|
+
tail.push(next);
|
|
269
|
+
e = next;
|
|
270
|
+
}
|
|
271
|
+
return tail;
|
|
272
|
+
}
|
|
249
273
|
// the user and assistant entries of the active conversation and the compactions in it, oldest first
|
|
250
274
|
export function buildConversation(entries) {
|
|
251
275
|
const written = new Map();
|
|
@@ -263,10 +287,10 @@ export function buildConversation(entries) {
|
|
|
263
287
|
onChain.add(e.uuid);
|
|
264
288
|
chain.push(e);
|
|
265
289
|
}
|
|
266
|
-
const conversation = withEarlierSegments(chain.reverse(), written);
|
|
290
|
+
const conversation = withEarlierSegments([...chain.reverse(), ...goalTail(leaf, byUuid, order)], written);
|
|
267
291
|
for (const e of conversation)
|
|
268
292
|
onChain.add(e.uuid);
|
|
269
293
|
return queuedPrompts(withSiblings(byUuid, conversation, onChain))
|
|
270
|
-
.filter((e) => (isTurn(e) || isCompactBoundary(e)) && !e.isMeta && !e.isSidechain && !e.teamName && !e.isCompactSummary);
|
|
294
|
+
.filter((e) => (isTurn(e) || isCompactBoundary(e) || isGoalNotice(e)) && (!e.isMeta || isPeer(e)) && !e.isSidechain && !e.teamName && !e.isCompactSummary);
|
|
271
295
|
}
|
|
272
296
|
//# sourceMappingURL=conversation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/claude/conversation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/claude/conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// a session's /goal: claude keeps taking turns until a small model judges the condition met.
|
|
2
|
+
// the stream only tells it was set or cleared (the command's output) and each verdict short of
|
|
3
|
+
// met (the stop hook's feedback); how it ended is in the jsonl (goal_status attachments)
|
|
4
|
+
const SET_PREFIX = 'Goal set: ';
|
|
5
|
+
const CLEARED_PREFIX = 'Goal cleared';
|
|
6
|
+
const OUTPUT_RE = /<local-command-stdout>([\s\S]*?)<\/local-command-stdout>/;
|
|
7
|
+
// the goal after a line /goal printed, undefined when the text is no /goal output
|
|
8
|
+
export function goalAfterOutput(text) {
|
|
9
|
+
const output = (OUTPUT_RE.exec(text)?.[1] ?? text).trim();
|
|
10
|
+
if (output.startsWith(SET_PREFIX))
|
|
11
|
+
return { condition: output.slice(SET_PREFIX.length).trim(), active: true, iterations: 0 };
|
|
12
|
+
if (output.startsWith(CLEARED_PREFIX))
|
|
13
|
+
return null;
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
// the goal after the evaluator's "not yet" (Stop hook feedback: [condition]: reason); undefined
|
|
17
|
+
// when the text is not about this goal
|
|
18
|
+
export function goalAfterFeedback(goal, text) {
|
|
19
|
+
if (!goal?.active)
|
|
20
|
+
return undefined;
|
|
21
|
+
const prefix = `Stop hook feedback:\n[${goal.condition}]: `;
|
|
22
|
+
if (!text.startsWith(prefix))
|
|
23
|
+
return undefined;
|
|
24
|
+
return { ...goal, iterations: goal.iterations + 1, reason: text.slice(prefix.length).trim() };
|
|
25
|
+
}
|
|
26
|
+
const num = (value) => (typeof value === 'number' ? value : undefined);
|
|
27
|
+
// "8s", "2m 5s", "1h 3m"
|
|
28
|
+
function durationText(ms) {
|
|
29
|
+
const seconds = Math.max(1, Math.round(ms / 1000));
|
|
30
|
+
if (seconds < 60)
|
|
31
|
+
return `${seconds}s`;
|
|
32
|
+
const minutes = Math.floor(seconds / 60);
|
|
33
|
+
return minutes < 60 ? `${minutes}m ${seconds % 60}s` : `${Math.floor(minutes / 60)}h ${minutes % 60}m`;
|
|
34
|
+
}
|
|
35
|
+
// the chat's line for an ended goal: "Goal achieved: <condition> · 3 turns · 8s", or the
|
|
36
|
+
// condition and why it can't be met
|
|
37
|
+
export function goalEndText(goal) {
|
|
38
|
+
if (goal.outcome === 'failed')
|
|
39
|
+
return [`Goal can't be met: ${goal.condition}`, ...(goal.reason ? [goal.reason] : [])].join(' · ');
|
|
40
|
+
const turns = `${goal.iterations} ${goal.iterations === 1 ? 'turn' : 'turns'}`;
|
|
41
|
+
return [`Goal achieved: ${goal.condition}`, turns, ...(goal.durationMs !== undefined ? [durationText(goal.durationMs)] : [])].join(' · ');
|
|
42
|
+
}
|
|
43
|
+
// the notice kind of a goal line: set, cleared, met or failed
|
|
44
|
+
export const goalKind = (goal) => goal === null ? 'goal_cleared' : goal.outcome === 'failed' ? 'goal_failed' : goal.outcome === 'met' ? 'goal_met' : 'goal_set';
|
|
45
|
+
// the goal after one goal_status attachment
|
|
46
|
+
function goalAfterStatus(goal, status) {
|
|
47
|
+
const condition = typeof status['condition'] === 'string' ? status['condition'] : '';
|
|
48
|
+
if (!condition)
|
|
49
|
+
return goal;
|
|
50
|
+
// written when the goal is set, and as met when it ends unjudged (cleared, replaced)
|
|
51
|
+
if (status['sentinel'] === true)
|
|
52
|
+
return status['met'] === true ? null : { condition, active: true, iterations: 0 };
|
|
53
|
+
const reason = typeof status['reason'] === 'string' ? status['reason'] : undefined;
|
|
54
|
+
if (status['met'] === true || status['failed'] === true) {
|
|
55
|
+
return {
|
|
56
|
+
condition,
|
|
57
|
+
active: false,
|
|
58
|
+
iterations: num(status['iterations']) ?? (goal?.iterations ?? 0) + 1,
|
|
59
|
+
...(reason ? { reason } : {}),
|
|
60
|
+
outcome: status['met'] === true ? 'met' : 'failed',
|
|
61
|
+
...(num(status['durationMs']) !== undefined ? { durationMs: num(status['durationMs']) } : {}),
|
|
62
|
+
...(num(status['tokens']) !== undefined ? { tokens: num(status['tokens']) } : {}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (goal?.condition !== condition || !goal.active)
|
|
66
|
+
return goal;
|
|
67
|
+
return { ...goal, iterations: goal.iterations + 1, ...(reason ? { reason } : {}) };
|
|
68
|
+
}
|
|
69
|
+
// a session file entry the chat shows as a goal notice line: what /goal printed, or how a goal
|
|
70
|
+
// ended; null for any other entry
|
|
71
|
+
export function goalNotice(entry) {
|
|
72
|
+
const attachment = entry['attachment'];
|
|
73
|
+
if (entry['type'] === 'attachment' && attachment?.['type'] === 'goal_status' && attachment['sentinel'] !== true) {
|
|
74
|
+
const goal = goalAfterStatus(null, attachment);
|
|
75
|
+
return goal?.outcome ? { kind: goalKind(goal), content: goalEndText(goal) } : null;
|
|
76
|
+
}
|
|
77
|
+
if (entry['type'] === 'system' && entry['subtype'] === 'local_command' && typeof entry['content'] === 'string') {
|
|
78
|
+
const output = (OUTPUT_RE.exec(entry['content'])?.[1] ?? '').trim();
|
|
79
|
+
const goal = goalAfterOutput(output);
|
|
80
|
+
return goal === undefined ? null : { kind: goalKind(goal), content: output };
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
// the newest goal of a session file's entries, in the order claude wrote them
|
|
85
|
+
export function goalFromEntries(entries) {
|
|
86
|
+
let goal = null;
|
|
87
|
+
for (const entry of entries) {
|
|
88
|
+
const attachment = entry['attachment'];
|
|
89
|
+
if (entry['type'] === 'attachment' && attachment?.['type'] === 'goal_status') {
|
|
90
|
+
goal = goalAfterStatus(goal, attachment);
|
|
91
|
+
}
|
|
92
|
+
else if (entry['type'] === 'system' && entry['subtype'] === 'local_command' && typeof entry['content'] === 'string') {
|
|
93
|
+
const after = goalAfterOutput(entry['content']);
|
|
94
|
+
if (after !== undefined)
|
|
95
|
+
goal = after;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return goal;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=goal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal.js","sourceRoot":"","sources":["../../src/claude/goal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { list, obj, str } from '../utils/json.js';
|
|
2
|
+
const MAX_TASKS = 30;
|
|
3
|
+
const tag = (text, name) => text.match(new RegExp(`<${name}>([\\s\\S]*?)</${name}>`))?.[1]?.trim() ?? '';
|
|
4
|
+
const count = (value) => {
|
|
5
|
+
const n = typeof value === 'number' ? value : Number(value);
|
|
6
|
+
return Number.isFinite(n) && value !== '' ? n : undefined;
|
|
7
|
+
};
|
|
8
|
+
// the subagents and background shells the main thread started, as the live tracker listed them,
|
|
9
|
+
// told by a session's conversation: the Agent or background Bash call, its result, and the task
|
|
10
|
+
// notification claude got when it ended. one still unfinished where the jsonl ends died with its
|
|
11
|
+
// process
|
|
12
|
+
export function tasksFromConversation(entries) {
|
|
13
|
+
const byToolUse = new Map();
|
|
14
|
+
let last = 0;
|
|
15
|
+
for (const entry of entries) {
|
|
16
|
+
const at = Date.parse(entry.timestamp ?? '');
|
|
17
|
+
if (!Number.isNaN(at))
|
|
18
|
+
last = at;
|
|
19
|
+
if (entry.isSidechain)
|
|
20
|
+
continue;
|
|
21
|
+
const content = entry.message?.content;
|
|
22
|
+
if (entry.type === 'assistant') {
|
|
23
|
+
for (const block of list(content)) {
|
|
24
|
+
if (block['type'] !== 'tool_use' || !str(block['id']))
|
|
25
|
+
continue;
|
|
26
|
+
const id = str(block['id']);
|
|
27
|
+
const input = obj(block['input']);
|
|
28
|
+
const name = str(block['name']);
|
|
29
|
+
const agent = name === 'Agent' || name === 'Task';
|
|
30
|
+
if (!agent && !(name === 'Bash' && input['run_in_background'] === true))
|
|
31
|
+
continue;
|
|
32
|
+
byToolUse.set(id, {
|
|
33
|
+
taskId: id,
|
|
34
|
+
toolUseId: id,
|
|
35
|
+
kind: agent ? 'local_agent' : 'local_bash',
|
|
36
|
+
description: str(input['description']) || str(input['command']),
|
|
37
|
+
// the Agent tool's default type when the call names none
|
|
38
|
+
subagentType: agent ? str(input['subagent_type']) || 'general-purpose' : undefined,
|
|
39
|
+
status: 'running',
|
|
40
|
+
backgrounded: input['run_in_background'] === true,
|
|
41
|
+
startedAt: at || last,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (entry.type !== 'user')
|
|
47
|
+
continue;
|
|
48
|
+
if (typeof content === 'string') {
|
|
49
|
+
if (content.includes('<task-notification>'))
|
|
50
|
+
notified(byToolUse, content, at || last);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const results = list(content).filter((block) => block['type'] === 'tool_result');
|
|
54
|
+
// the line's toolUseResult belongs to its one result
|
|
55
|
+
const result = results.length === 1 ? obj(entry.toolUseResult) : {};
|
|
56
|
+
for (const block of results) {
|
|
57
|
+
const task = byToolUse.get(str(block['tool_use_id']));
|
|
58
|
+
if (task)
|
|
59
|
+
answered(task, result, block['is_error'] === true, at || last);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const tasks = [...byToolUse.values()].slice(-MAX_TASKS);
|
|
63
|
+
// when it died the jsonl does not tell: no end time, so no run time
|
|
64
|
+
for (const task of tasks)
|
|
65
|
+
if (task.status === 'running')
|
|
66
|
+
task.status = 'stopped';
|
|
67
|
+
return tasks;
|
|
68
|
+
}
|
|
69
|
+
// the call returned: a foreground agent with its report, a background one or shell with its id
|
|
70
|
+
function answered(task, result, isError, at) {
|
|
71
|
+
task.taskId = str(result['agentId']) || str(result['backgroundTaskId']) || task.taskId;
|
|
72
|
+
task.model = str(result['resolvedModel']) || task.model;
|
|
73
|
+
task.subagentType = str(result['agentType']) || task.subagentType;
|
|
74
|
+
if (result['isAsync'] === true || str(result['backgroundTaskId'])) {
|
|
75
|
+
task.backgrounded = true;
|
|
76
|
+
if (!isError)
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (isError) {
|
|
80
|
+
task.status = 'failed';
|
|
81
|
+
}
|
|
82
|
+
else if (str(result['status']) === 'completed') {
|
|
83
|
+
task.status = 'completed';
|
|
84
|
+
task.tokens = count(result['totalTokens']);
|
|
85
|
+
task.toolUses = count(result['totalToolUseCount']);
|
|
86
|
+
task.summary = list(result['content']).map((b) => str(b['text'])).join('\n').trim() || undefined;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const took = count(result['totalDurationMs']);
|
|
92
|
+
task.endedAt = took === undefined ? at : task.startedAt + took;
|
|
93
|
+
}
|
|
94
|
+
// <task-notification> of a background task: how it ended, its report and usage
|
|
95
|
+
function notified(byToolUse, text, at) {
|
|
96
|
+
const toolUseId = tag(text, 'tool-use-id');
|
|
97
|
+
const taskId = tag(text, 'task-id');
|
|
98
|
+
const task = byToolUse.get(toolUseId) ?? [...byToolUse.values()].find((t) => t.taskId === taskId);
|
|
99
|
+
if (!task)
|
|
100
|
+
return;
|
|
101
|
+
task.status = tag(text, 'status') || 'completed';
|
|
102
|
+
task.summary = tag(text, 'result') || tag(text, 'summary') || task.summary;
|
|
103
|
+
const usage = tag(text, 'usage');
|
|
104
|
+
task.tokens = count(tag(usage, 'subagent_tokens') || tag(usage, 'total_tokens')) ?? task.tokens;
|
|
105
|
+
task.toolUses = count(tag(usage, 'tool_uses')) ?? task.toolUses;
|
|
106
|
+
const took = count(tag(usage, 'duration_ms'));
|
|
107
|
+
// told on resume of a task the previous process left behind: when it ended nobody knows
|
|
108
|
+
if (took === undefined && /no completion record/i.test(tag(text, 'note')))
|
|
109
|
+
return;
|
|
110
|
+
task.endedAt = took === undefined ? at : task.startedAt + took;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=sessionTasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionTasks.js","sourceRoot":"","sources":["../../src/claude/sessionTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
// a message another claude session sent this one: claude reads it wrapped in a notice, the
|
|
2
|
+
// chat shows what the sender wrote
|
|
3
|
+
function peerMessage(message, timestamp) {
|
|
4
|
+
const body = typeof message.origin?.body === 'string' ? message.origin.body.trim() : '';
|
|
5
|
+
if (!body)
|
|
6
|
+
return null;
|
|
7
|
+
const name = typeof message.origin?.name === 'string' ? message.origin.name : '';
|
|
8
|
+
return { role: 'peer', content: body, id: message.uuid, timestamp: timestamp ?? message.timestamp, ...(name ? { peerName: name } : {}) };
|
|
9
|
+
}
|
|
1
10
|
// thinking blocks, whose text the app never shows
|
|
2
11
|
export const isThinkingBlock = (block) => {
|
|
3
12
|
const type = block?.type;
|
|
@@ -49,6 +58,8 @@ export function parseTranscriptMessage(message, options = {}) {
|
|
|
49
58
|
return null;
|
|
50
59
|
if (!message.message)
|
|
51
60
|
return null;
|
|
61
|
+
if (message.type === 'user' && message.origin?.kind === 'peer')
|
|
62
|
+
return peerMessage(message, options.timestamp);
|
|
52
63
|
if (message.isMeta || message.sourceToolUseID)
|
|
53
64
|
return null;
|
|
54
65
|
const role = message.message.role;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcriptParser.js","sourceRoot":"","sources":["../../src/claude/transcriptParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transcriptParser.js","sourceRoot":"","sources":["../../src/claude/transcriptParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import readline from 'node:readline';
|
|
2
|
+
// arrow keys (normal or application cursor mode), sgr mouse reports, enter and ctrl+c
|
|
3
|
+
const KEY_PATTERN = /\x1b\[<(\d+);\d+;\d+[Mm]|\x1b[[O]([AB])|[\r\n]|\x03/g;
|
|
4
|
+
// report the mouse in sgr form so the wheel reaches us, and hide the cursor while the menu is up
|
|
5
|
+
const MENU_ON = '\x1b[?1000h\x1b[?1006h\x1b[?25l';
|
|
6
|
+
const MENU_OFF = '\x1b[?1000l\x1b[?1006l\x1b[?25h';
|
|
2
7
|
// ask a single line question in the terminal and resolve the typed answer
|
|
3
8
|
function askLine(question) {
|
|
4
9
|
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
@@ -7,12 +12,71 @@ function askLine(question) {
|
|
|
7
12
|
resolve(answer);
|
|
8
13
|
}));
|
|
9
14
|
}
|
|
15
|
+
// arrow keys or the mouse wheel move, enter or a number picks, ctrl+c quits
|
|
16
|
+
function pickMenu(items) {
|
|
17
|
+
const { stdin, stdout } = process;
|
|
18
|
+
let index = 0;
|
|
19
|
+
const render = (redraw) => {
|
|
20
|
+
if (redraw)
|
|
21
|
+
stdout.write(`\x1b[${items.length}A`);
|
|
22
|
+
items.forEach((item, i) => {
|
|
23
|
+
const line = i === index ? `\x1b[36m❯ ${item.label}\x1b[0m` : ` ${item.label}`;
|
|
24
|
+
const hint = item.hint ? ` \x1b[2m(${item.hint})\x1b[0m` : '';
|
|
25
|
+
stdout.write(`\x1b[2K${line}${hint}\n`);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const restore = () => {
|
|
29
|
+
stdout.write(MENU_OFF);
|
|
30
|
+
};
|
|
31
|
+
return new Promise((resolve) => {
|
|
32
|
+
const finish = (picked) => {
|
|
33
|
+
stdin.off('data', onData);
|
|
34
|
+
restore();
|
|
35
|
+
process.off('exit', restore);
|
|
36
|
+
stdin.setRawMode(false);
|
|
37
|
+
stdin.pause();
|
|
38
|
+
resolve(picked);
|
|
39
|
+
};
|
|
40
|
+
const onData = (data) => {
|
|
41
|
+
const text = data.toString();
|
|
42
|
+
// a lone digit picks by number; digits inside a mouse report are coordinates
|
|
43
|
+
const number = /^[1-9]$/.test(text) ? Number(text) : 0;
|
|
44
|
+
if (number && number <= items.length)
|
|
45
|
+
return finish(number - 1);
|
|
46
|
+
for (const [key, button, arrow] of text.matchAll(KEY_PATTERN)) {
|
|
47
|
+
if (key === '\x03')
|
|
48
|
+
process.exit(130);
|
|
49
|
+
if (key === '\r' || key === '\n')
|
|
50
|
+
return finish(index);
|
|
51
|
+
// wheel up/down report buttons 64/65; clicks and releases are ignored
|
|
52
|
+
const step = arrow === 'A' || button === '64' ? -1 : arrow === 'B' || button === '65' ? 1 : 0;
|
|
53
|
+
const next = Math.min(Math.max(index + step, 0), items.length - 1);
|
|
54
|
+
if (next === index)
|
|
55
|
+
continue;
|
|
56
|
+
index = next;
|
|
57
|
+
render(true);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
process.on('exit', restore);
|
|
61
|
+
render(false);
|
|
62
|
+
// after raw mode: on windows the mouse request only reaches the terminal once input is vt
|
|
63
|
+
stdin.setRawMode(true);
|
|
64
|
+
stdout.write(MENU_ON);
|
|
65
|
+
stdin.resume();
|
|
66
|
+
stdin.on('data', onData);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
10
69
|
// let the user choose the target agent when no explicit command was provided
|
|
11
70
|
export async function chooseAgent(action) {
|
|
12
71
|
console.log(action === 'reset' ? '[kumo-cli] choose credentials to reset:' : '[kumo-cli] choose agent:');
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
72
|
+
// no keyboard to read keys from (piped stdin): fall back to a typed answer
|
|
73
|
+
if (!process.stdin.isTTY) {
|
|
74
|
+
console.log(' 1) claude');
|
|
75
|
+
console.log(' \x1b[2;37m2) codex (coming soon)\x1b[0m');
|
|
76
|
+
const answer = (await askLine('select › ')).trim().toLowerCase();
|
|
77
|
+
return answer === '2' || answer === 'codex' ? 'codex' : 'claude';
|
|
78
|
+
}
|
|
79
|
+
const picked = await pickMenu([{ label: 'claude' }, { label: 'codex', hint: 'coming soon' }]);
|
|
80
|
+
return picked === 1 ? 'codex' : 'claude';
|
|
17
81
|
}
|
|
18
82
|
//# sourceMappingURL=agentPrompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentPrompt.js","sourceRoot":"","sources":["../../src/commands/agentPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"agentPrompt.js","sourceRoot":"","sources":["../../src/commands/agentPrompt.ts"],"names":[],"mappings":"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"}
|