koneck 2.22.0 → 2.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ink-chat.d.ts.map +1 -1
- package/dist/ink-chat.js +323 -15
- package/dist/ink-chat.js.map +1 -1
- package/dist/session-bus.d.ts +112 -0
- package/dist/session-bus.d.ts.map +1 -0
- package/dist/session-bus.js +280 -0
- package/dist/session-bus.js.map +1 -0
- package/package.json +1 -1
package/dist/ink-chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ink-chat.d.ts","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ink-chat.d.ts","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAsD9C,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM7C;AA+DD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAEjE,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4DzE,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,QAAQ,CAKtE;AAED,0FAA0F;AAC1F,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAGtG;AAgDD,UAAU,UAAU;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;AAMtG;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAWlF;AA02CD,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvE"}
|
package/dist/ink-chat.js
CHANGED
|
@@ -4,12 +4,13 @@ import { Box, Static, Text, render, useApp, useInput } from 'ink';
|
|
|
4
4
|
import { execa } from 'execa';
|
|
5
5
|
import { createAgentSession, buildClient } from './engine.js';
|
|
6
6
|
import { estimateCost, formatCost } from './pricing.js';
|
|
7
|
-
import { generateSessionId, saveSession, listSessions } from './session.js';
|
|
7
|
+
import { generateSessionId, saveSession, listSessions, loadSession } from './session.js';
|
|
8
8
|
import { loadMemory } from './memory.js';
|
|
9
9
|
import { loadKoneckConfig, saveKoneckConfig, setConfigKey, configKeyDescriptions, CONFIG_FILE } from './config-store.js';
|
|
10
10
|
import { PROVIDERS, resolveProvider, getApiKey, addUserProvider, userProvidersPath } from './providers.js';
|
|
11
11
|
import { listCheckpoints, revertCheckpoint } from './checkpoint.js';
|
|
12
12
|
import { Markdown, Panel } from './markdown-ink.js';
|
|
13
|
+
import { startBus, listSessions as listBusSessions, resolveTarget, deliver, } from './session-bus.js';
|
|
13
14
|
const CYAN = '#54D7E7';
|
|
14
15
|
const GREEN = '#9BCB8F';
|
|
15
16
|
const CRIMSON = '#E8878D';
|
|
@@ -209,6 +210,9 @@ const COMMANDS = [
|
|
|
209
210
|
{ cmd: '/provider', desc: 'Show or switch provider' },
|
|
210
211
|
{ cmd: '/status', desc: 'Provider, model, mode, tokens, cost, workspace' },
|
|
211
212
|
{ cmd: '/revert', desc: 'Undo file edits KONECK made' },
|
|
213
|
+
{ cmd: '/sessions', desc: 'List running KONECK sessions and their state' },
|
|
214
|
+
{ cmd: '/send', desc: 'Hand work to another session: /send <repo> <instruction>' },
|
|
215
|
+
{ cmd: '/ask', desc: 'Ask another session and wait: /ask <repo> <question>' },
|
|
212
216
|
{ cmd: '/agents', desc: 'How parallel sub-agents are configured' },
|
|
213
217
|
{ cmd: '/subtask', desc: 'Run a task in an isolated sub-agent' },
|
|
214
218
|
{ cmd: '/clear', desc: 'Clear conversation history' },
|
|
@@ -225,7 +229,8 @@ const COMMANDS = [
|
|
|
225
229
|
{ cmd: '/rewind', desc: 'Drop the last exchange from history' },
|
|
226
230
|
{ cmd: '/copy', desc: 'Copy the last response to the clipboard' },
|
|
227
231
|
{ cmd: '/save', desc: 'Save session to disk' },
|
|
228
|
-
{ cmd: '/
|
|
232
|
+
{ cmd: '/history', desc: 'List saved sessions on disk' },
|
|
233
|
+
{ cmd: '/resume', desc: 'Resume a saved session (picker, or /resume <id>)' },
|
|
229
234
|
{ cmd: '/exit', desc: 'Save and exit' },
|
|
230
235
|
{ cmd: '/quit', desc: 'Save and exit (alias of /exit)' },
|
|
231
236
|
];
|
|
@@ -352,12 +357,17 @@ function App({ config: initialConfig }) {
|
|
|
352
357
|
}))[0];
|
|
353
358
|
const [rows, setRows] = useState([{ role: 'header' }]);
|
|
354
359
|
const [draft, setDraft] = useState('');
|
|
360
|
+
/** Caret offset into `draft`. Kept beside it so every edit can place the caret deliberately. */
|
|
361
|
+
const [caret, setCaret] = useState(0);
|
|
355
362
|
const [busy, setBusy] = useState(false);
|
|
356
363
|
const [agentState, setAgentState] = useState('ready');
|
|
357
364
|
const [mode, setMode] = useState('auto');
|
|
358
365
|
const [effort, setEffort] = useState('medium');
|
|
359
366
|
const [showAnalytics, setShowAnalytics] = useState(false);
|
|
360
367
|
const [sessionId] = useState(() => generateSessionId());
|
|
368
|
+
/** Messages that arrived while a turn was running; drained when the agent goes idle. */
|
|
369
|
+
const inboxRef = useRef([]);
|
|
370
|
+
const busRef = useRef(null);
|
|
361
371
|
const [stats, setStats] = useState({ turns: 0, promptTokens: 0, completionTokens: 0, totalTokens: 0 });
|
|
362
372
|
const [lastAgentText, setLastAgentText] = useState('');
|
|
363
373
|
// Masked credential entry. The value is held in component state for the session and passed
|
|
@@ -368,6 +378,7 @@ function App({ config: initialConfig }) {
|
|
|
368
378
|
const [pickIndex, setPickIndex] = useState(0);
|
|
369
379
|
const [pickQuery, setPickQuery] = useState('');
|
|
370
380
|
const visiblePickerItems = React.useMemo(() => (picker ? filterPickerItems(picker.items, pickQuery) : []), [picker, pickQuery]);
|
|
381
|
+
const [inboxTick, setInboxTick] = useState(0);
|
|
371
382
|
const [spinFrame, setSpinFrame] = useState(0);
|
|
372
383
|
const [shimmerFrame, setShimmerFrame] = useState(0);
|
|
373
384
|
const [spinWord, setSpinWord] = useState(0);
|
|
@@ -376,6 +387,55 @@ function App({ config: initialConfig }) {
|
|
|
376
387
|
const turnRecoveredRef = useRef(false); // a tool failed and was worked around
|
|
377
388
|
const busyStart = useRef(0);
|
|
378
389
|
const wordTimer = useRef(0);
|
|
390
|
+
// Register on the session bus so other running KONECK instances can reach this one.
|
|
391
|
+
useEffect(() => {
|
|
392
|
+
const bus = startBus({ id: sessionId, cwd: cfg.cwd, model: cfg.model, provider: cfg.provider }, {
|
|
393
|
+
onSend: (from, payload) => {
|
|
394
|
+
// Never interrupt a turn: queue it and let the idle drain pick it up.
|
|
395
|
+
inboxRef.current.push({ from, payload });
|
|
396
|
+
process.stdout.write('\u0007'); // a bell, so an unattended session is noticed
|
|
397
|
+
setInboxTick(t => t + 1);
|
|
398
|
+
},
|
|
399
|
+
onAsk: async (from, question) => {
|
|
400
|
+
// A question is answered from this session's own context, in its own sub-session, so
|
|
401
|
+
// the asking side gets a real answer without this session losing its place.
|
|
402
|
+
const active = await getSession();
|
|
403
|
+
const before = active.messages.length;
|
|
404
|
+
try {
|
|
405
|
+
await active.send(`[Question from the KONECK session in ${from.repoName} (${from.cwd})]\n${question}\n\n` +
|
|
406
|
+
'Answer concisely from what you know about this project. Do not modify any file.');
|
|
407
|
+
const last = active.messages
|
|
408
|
+
.filter(m => m.role === 'assistant' && typeof m.content === 'string' && m.content.trim())
|
|
409
|
+
.at(-1);
|
|
410
|
+
return typeof last?.content === 'string' ? last.content.trim() : '(no answer)';
|
|
411
|
+
}
|
|
412
|
+
finally {
|
|
413
|
+
// The exchange is not part of this session's own conversation.
|
|
414
|
+
active.messages.splice(before);
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
});
|
|
418
|
+
busRef.current = bus;
|
|
419
|
+
return () => bus?.close();
|
|
420
|
+
}, []);
|
|
421
|
+
// The bus only knows idle from busy if it is told.
|
|
422
|
+
useEffect(() => { busRef.current?.setStatus(busy ? 'busy' : 'idle'); }, [busy]);
|
|
423
|
+
// Drain the inbox the moment the agent is free, so a handoff is never lost or interleaved.
|
|
424
|
+
useEffect(() => {
|
|
425
|
+
if (busy || inboxRef.current.length === 0)
|
|
426
|
+
return;
|
|
427
|
+
const queued = inboxRef.current.splice(0);
|
|
428
|
+
for (const { from, payload } of queued) {
|
|
429
|
+
addRow({ role: 'steps', steps: [{ kind: 'say',
|
|
430
|
+
text: `Handoff from ${from.repoName} (${from.cwd})\n\n${payload.summary}` +
|
|
431
|
+
(payload.changedFiles.length ? `\n\nChanged: ${payload.changedFiles.join(', ')}` : '') }] });
|
|
432
|
+
}
|
|
433
|
+
const combined = queued.map(q => `[Handoff from the KONECK session in ${q.from.repoName} (${q.from.cwd})]\n` +
|
|
434
|
+
`Context: ${q.payload.summary}\n` +
|
|
435
|
+
(q.payload.changedFiles.length ? `Files they changed: ${q.payload.changedFiles.join(', ')}\n` : '') +
|
|
436
|
+
`Your task: ${q.payload.instruction}`).join('\n\n');
|
|
437
|
+
submitDraft(combined);
|
|
438
|
+
}, [busy, inboxTick]);
|
|
379
439
|
// Drive spinner + elapsed counter while busy
|
|
380
440
|
useEffect(() => {
|
|
381
441
|
if (!busy) {
|
|
@@ -420,6 +480,75 @@ function App({ config: initialConfig }) {
|
|
|
420
480
|
turns: stats.turns, totalTokens: stats.totalTokens,
|
|
421
481
|
}, s?.messages ?? []);
|
|
422
482
|
}
|
|
483
|
+
/**
|
|
484
|
+
* Compresses this session's state into something worth sending. One small model call, capped
|
|
485
|
+
* hard, because the point of a handoff is to save the receiver the reading, not to move the
|
|
486
|
+
* transcript across the wire.
|
|
487
|
+
*/
|
|
488
|
+
async function buildHandoff(instruction) {
|
|
489
|
+
const changed = [...new Set(rows.flatMap(r => (r.steps ?? [])
|
|
490
|
+
.filter((st) => st.kind === 'tool')
|
|
491
|
+
.filter(st => ['write_file', 'search_replace', 'apply_diff', 'move_file', 'delete_file'].includes(st.name))
|
|
492
|
+
.map(st => st.detail)
|
|
493
|
+
.filter(Boolean)))].slice(0, 12);
|
|
494
|
+
const transcript = rows
|
|
495
|
+
.filter(r => r.role === 'user' || r.role === 'agent')
|
|
496
|
+
.slice(-8)
|
|
497
|
+
.map(r => `${r.role === 'user' ? 'User' : 'Agent'}: ${(r.text ?? '').slice(0, 400)}`)
|
|
498
|
+
.join('\n');
|
|
499
|
+
let summary = transcript ? transcript.slice(0, 600) : 'No work has been done in this session yet.';
|
|
500
|
+
if (transcript.trim() !== '') {
|
|
501
|
+
try {
|
|
502
|
+
const client = buildClient(cfg);
|
|
503
|
+
const res = await client.chat.completions.create({
|
|
504
|
+
model: cfg.model,
|
|
505
|
+
max_tokens: 220,
|
|
506
|
+
temperature: 0,
|
|
507
|
+
messages: [{ role: 'user', content: 'Summarise this coding session in 2-3 sentences for a colleague picking up related ' +
|
|
508
|
+
'work in another repository. State what was done and anything they must know. No preamble.\n\n' +
|
|
509
|
+
transcript }],
|
|
510
|
+
});
|
|
511
|
+
const text = res.choices[0]?.message?.content;
|
|
512
|
+
if (typeof text === 'string' && text.trim())
|
|
513
|
+
summary = text.trim();
|
|
514
|
+
}
|
|
515
|
+
catch { /* the raw tail is a serviceable fallback */ }
|
|
516
|
+
}
|
|
517
|
+
return { summary, changedFiles: changed, instruction };
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Replaces the live conversation with a saved one. The agent session is rebuilt from the
|
|
521
|
+
* stored messages, so the model genuinely has the old context rather than a summary of it,
|
|
522
|
+
* and the transcript is repainted so the screen matches what the agent now believes.
|
|
523
|
+
*/
|
|
524
|
+
async function resumeSession(id) {
|
|
525
|
+
try {
|
|
526
|
+
const { meta, messages } = await loadSession(cfg.cwd, id);
|
|
527
|
+
activeSession.p = createAgentSession({ ...cfg, silent: true, ...sessionOpts }, messages);
|
|
528
|
+
const restored = [{ role: 'header' }];
|
|
529
|
+
for (const m of messages) {
|
|
530
|
+
if (m.role === 'user' && typeof m.content === 'string' && !m.content.startsWith('[')) {
|
|
531
|
+
restored.push({ role: 'user', text: m.content });
|
|
532
|
+
}
|
|
533
|
+
else if (m.role === 'assistant' && typeof m.content === 'string' && m.content.trim()) {
|
|
534
|
+
restored.push({ role: 'agent', text: m.content });
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
setRows(restored);
|
|
538
|
+
setStats({
|
|
539
|
+
turns: meta.turns, promptTokens: 0,
|
|
540
|
+
completionTokens: 0, totalTokens: meta.totalTokens,
|
|
541
|
+
});
|
|
542
|
+
addSystem(`Resumed ${id}\n` +
|
|
543
|
+
` ${meta.turns} turns, ${meta.totalTokens.toLocaleString()} tokens\n` +
|
|
544
|
+
` originally: ${meta.provider}/${meta.model}\n` +
|
|
545
|
+
` task: ${meta.task.slice(0, 90)}\n\n` +
|
|
546
|
+
`The agent has the full history; carry on where it left off.`);
|
|
547
|
+
}
|
|
548
|
+
catch (e) {
|
|
549
|
+
addSystem(`Could not resume ${id}: ${e instanceof Error ? e.message : String(e)}`);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
423
552
|
/** Live model list from the connected provider's OpenAI-compatible /models endpoint. */
|
|
424
553
|
async function fetchModels() {
|
|
425
554
|
const client = buildClient(cfg);
|
|
@@ -459,6 +588,11 @@ function App({ config: initialConfig }) {
|
|
|
459
588
|
if (kind === 'command') {
|
|
460
589
|
// Leave it in the composer so arguments can still be typed before submitting.
|
|
461
590
|
setDraft(item.value + ' ');
|
|
591
|
+
setCaret(item.value.length + 1);
|
|
592
|
+
return;
|
|
593
|
+
}
|
|
594
|
+
if (kind === 'resume') {
|
|
595
|
+
await resumeSession(item.value);
|
|
462
596
|
return;
|
|
463
597
|
}
|
|
464
598
|
if (kind === 'effort') {
|
|
@@ -681,7 +815,31 @@ function App({ config: initialConfig }) {
|
|
|
681
815
|
addSystem(`Saved: ${file}`);
|
|
682
816
|
return;
|
|
683
817
|
}
|
|
684
|
-
case '/
|
|
818
|
+
case '/resume': {
|
|
819
|
+
const saved = await listSessions(cfg.cwd).catch(() => []);
|
|
820
|
+
if (saved.length === 0) {
|
|
821
|
+
addSystem('No saved sessions in .koneck/sessions/ for this workspace.');
|
|
822
|
+
return;
|
|
823
|
+
}
|
|
824
|
+
// With an id, restore straight away; without one, offer a picker.
|
|
825
|
+
const pick = arg.trim();
|
|
826
|
+
if (pick === '') {
|
|
827
|
+
openPicker('resume', saved.slice(0, 20).map(x => ({
|
|
828
|
+
value: x.id,
|
|
829
|
+
label: x.id,
|
|
830
|
+
desc: `${x.turns} turns ${x.totalTokens.toLocaleString()} tok ${x.task.slice(0, 44)}`,
|
|
831
|
+
})));
|
|
832
|
+
return;
|
|
833
|
+
}
|
|
834
|
+
const chosen = saved.find(x => x.id === pick) ?? saved.find(x => x.id.startsWith(pick));
|
|
835
|
+
if (!chosen) {
|
|
836
|
+
addSystem(`No saved session matching "${pick}". /history lists them.`);
|
|
837
|
+
return;
|
|
838
|
+
}
|
|
839
|
+
await resumeSession(chosen.id);
|
|
840
|
+
return;
|
|
841
|
+
}
|
|
842
|
+
case '/history': {
|
|
685
843
|
const sessions = await listSessions(cfg.cwd).catch(() => []);
|
|
686
844
|
if (!sessions.length) {
|
|
687
845
|
addSystem('No sessions found.');
|
|
@@ -797,6 +955,73 @@ function App({ config: initialConfig }) {
|
|
|
797
955
|
setKeyPrompt({ provider: cfg.provider, env: def?.apiKeyEnv ?? 'KONECK_API_KEY', value: '' });
|
|
798
956
|
return;
|
|
799
957
|
}
|
|
958
|
+
case '/sessions': {
|
|
959
|
+
const live = listBusSessions();
|
|
960
|
+
if (live.length === 0) {
|
|
961
|
+
addSystem('No KONECK sessions are registered.');
|
|
962
|
+
return;
|
|
963
|
+
}
|
|
964
|
+
const rows = live.map(x => {
|
|
965
|
+
const me = x.id === sessionId ? ' (this one)' : '';
|
|
966
|
+
// Kept short so the row cannot wrap and tear the column alignment.
|
|
967
|
+
const full = x.cwd.replace(process.env['HOME'] ?? '', '~');
|
|
968
|
+
const parts = full.split('/').filter(Boolean);
|
|
969
|
+
const where = full.length <= 30 || parts.length <= 2 ? full : '.../' + parts.slice(-2).join('/');
|
|
970
|
+
return `${('#' + x.id).padEnd(22)} ${x.repoName.slice(0, 16).padEnd(17)} ${x.status.toUpperCase().padEnd(5)} ${where}${me}`;
|
|
971
|
+
});
|
|
972
|
+
addSystem(`${'SESSION'.padEnd(22)} ${'REPO'.padEnd(17)} ${'STATE'.padEnd(5)} DIRECTORY\n` +
|
|
973
|
+
rows.join('\n') +
|
|
974
|
+
`\n\nAddress a session by repo or folder name, not its id:\n` +
|
|
975
|
+
` /send ${live.find(x => x.id !== sessionId)?.repoName ?? '<repo>'} <instruction>\n` +
|
|
976
|
+
` /ask ${live.find(x => x.id !== sessionId)?.repoName ?? '<repo>'} <question>`);
|
|
977
|
+
return;
|
|
978
|
+
}
|
|
979
|
+
case '/send':
|
|
980
|
+
case '/ask': {
|
|
981
|
+
const twoWay = cmd === '/ask';
|
|
982
|
+
const gap = arg.indexOf(' ');
|
|
983
|
+
if (gap === -1) {
|
|
984
|
+
addSystem(`Usage: ${cmd} <target> <${twoWay ? 'question' : 'instruction'}>\n` +
|
|
985
|
+
`Target is a repo or folder name, or #id. /sessions lists them.`);
|
|
986
|
+
return;
|
|
987
|
+
}
|
|
988
|
+
const target = arg.slice(0, gap);
|
|
989
|
+
const body = arg.slice(gap + 1).trim();
|
|
990
|
+
if (body === '') {
|
|
991
|
+
addSystem(`Nothing to ${twoWay ? 'ask' : 'send'}.`);
|
|
992
|
+
return;
|
|
993
|
+
}
|
|
994
|
+
const found = resolveTarget(target, sessionId);
|
|
995
|
+
if (!found.ok) {
|
|
996
|
+
addSystem(found.error);
|
|
997
|
+
return;
|
|
998
|
+
}
|
|
999
|
+
const bus = busRef.current;
|
|
1000
|
+
if (!bus) {
|
|
1001
|
+
addSystem('This session is not on the bus, so it cannot send.');
|
|
1002
|
+
return;
|
|
1003
|
+
}
|
|
1004
|
+
const from = { id: sessionId, repoName: bus.record.repoName, cwd: cfg.cwd };
|
|
1005
|
+
if (twoWay) {
|
|
1006
|
+
addSystem(`Asking ${found.session.repoName}: "${body}"\nWaiting for its answer…`);
|
|
1007
|
+
const reply = await deliver(found.session, { kind: 'ask', token: found.session.authToken, from, question: body });
|
|
1008
|
+
addSystem(reply.ok
|
|
1009
|
+
? `${found.session.repoName} replied:\n\n${reply.answer ?? '(empty)'}`
|
|
1010
|
+
: `${found.session.repoName} could not answer: ${reply.error}`);
|
|
1011
|
+
return;
|
|
1012
|
+
}
|
|
1013
|
+
// A handoff carries a summary, never the transcript: the receiving session pays for
|
|
1014
|
+
// every token, and a raw history mostly restates what this one already worked out.
|
|
1015
|
+
const payload = await buildHandoff(body);
|
|
1016
|
+
const reply = await deliver(found.session, { kind: 'send', token: found.session.authToken, from, instruction: body, payload });
|
|
1017
|
+
addSystem(reply.ok
|
|
1018
|
+
? `Handed off to ${found.session.repoName} (${found.session.status}).\n` +
|
|
1019
|
+
(found.session.status === 'busy'
|
|
1020
|
+
? 'It is mid-task, so the work is queued and starts when it finishes.'
|
|
1021
|
+
: 'It picks the work up immediately.')
|
|
1022
|
+
: `Could not reach ${found.session.repoName}: ${reply.error}`);
|
|
1023
|
+
return;
|
|
1024
|
+
}
|
|
800
1025
|
case '/agents': {
|
|
801
1026
|
// spawn_agents is a tool the model calls itself; this reports how it is configured
|
|
802
1027
|
// rather than pretending to be a separate agent registry.
|
|
@@ -923,8 +1148,10 @@ function App({ config: initialConfig }) {
|
|
|
923
1148
|
if (key.escape) {
|
|
924
1149
|
// The command palette owns the composer while open, so cancelling clears the "/…"
|
|
925
1150
|
// it put there rather than leaving an orphan the user has to backspace away.
|
|
926
|
-
if (picker.kind === 'command')
|
|
1151
|
+
if (picker.kind === 'command') {
|
|
927
1152
|
setDraft('');
|
|
1153
|
+
setCaret(0);
|
|
1154
|
+
}
|
|
928
1155
|
closePicker();
|
|
929
1156
|
return;
|
|
930
1157
|
}
|
|
@@ -954,12 +1181,16 @@ function App({ config: initialConfig }) {
|
|
|
954
1181
|
if (picker.kind === 'command' && pickQuery === '') {
|
|
955
1182
|
closePicker();
|
|
956
1183
|
setDraft('');
|
|
1184
|
+
setCaret(0);
|
|
957
1185
|
return;
|
|
958
1186
|
}
|
|
959
1187
|
setPickQuery(q => q.slice(0, -1));
|
|
960
1188
|
setPickIndex(0);
|
|
961
|
-
if (picker.kind === 'command')
|
|
962
|
-
|
|
1189
|
+
if (picker.kind === 'command') {
|
|
1190
|
+
const t = '/' + pickQuery.slice(0, -1);
|
|
1191
|
+
setDraft(t);
|
|
1192
|
+
setCaret(t.length);
|
|
1193
|
+
}
|
|
963
1194
|
return;
|
|
964
1195
|
}
|
|
965
1196
|
// A space means the command name is finished and arguments follow, so the palette
|
|
@@ -967,14 +1198,17 @@ function App({ config: initialConfig }) {
|
|
|
967
1198
|
// the list, and left Enter with nothing to select.
|
|
968
1199
|
if (input === ' ' && picker.kind === 'command') {
|
|
969
1200
|
closePicker();
|
|
970
|
-
setDraft(d =>
|
|
1201
|
+
setDraft(d => { const t = d.endsWith(' ') ? d : d + ' '; setCaret(t.length); return t; });
|
|
971
1202
|
return;
|
|
972
1203
|
}
|
|
973
1204
|
if (!key.ctrl && !key.meta && input) {
|
|
974
1205
|
setPickQuery(q => q + input);
|
|
975
1206
|
setPickIndex(0);
|
|
976
|
-
if (picker.kind === 'command')
|
|
977
|
-
|
|
1207
|
+
if (picker.kind === 'command') {
|
|
1208
|
+
const t = '/' + pickQuery + input;
|
|
1209
|
+
setDraft(t);
|
|
1210
|
+
setCaret(t.length);
|
|
1211
|
+
}
|
|
978
1212
|
return;
|
|
979
1213
|
}
|
|
980
1214
|
return;
|
|
@@ -998,19 +1232,87 @@ function App({ config: initialConfig }) {
|
|
|
998
1232
|
submitDraft(draft);
|
|
999
1233
|
return;
|
|
1000
1234
|
}
|
|
1001
|
-
|
|
1002
|
-
|
|
1235
|
+
// ── Line editing ────────────────────────────────────────────────────────
|
|
1236
|
+
// The composer used to be append-and-backspace only, so fixing a typo near the start of a
|
|
1237
|
+
// long prompt meant deleting everything after it. Everything below is the readline set a
|
|
1238
|
+
// shell gives you, so an edit costs one keystroke rather than a retype.
|
|
1239
|
+
if (key.leftArrow) {
|
|
1240
|
+
setCaret(c => (key.ctrl || key.meta ? wordStart(draft, c) : Math.max(0, c - 1)));
|
|
1241
|
+
return;
|
|
1242
|
+
}
|
|
1243
|
+
if (key.rightArrow) {
|
|
1244
|
+
setCaret(c => (key.ctrl || key.meta ? wordEnd(draft, c) : Math.min(draft.length, c + 1)));
|
|
1245
|
+
return;
|
|
1246
|
+
}
|
|
1247
|
+
// ctrl+a / ctrl+e are line start and end, as in bash. Home/End arrive as these on most
|
|
1248
|
+
// terminals, so both spellings land here.
|
|
1249
|
+
if (key.ctrl && input === 'a') {
|
|
1250
|
+
setCaret(0);
|
|
1251
|
+
return;
|
|
1252
|
+
}
|
|
1253
|
+
if (key.ctrl && input === 'e') {
|
|
1254
|
+
setCaret(draft.length);
|
|
1255
|
+
return;
|
|
1256
|
+
}
|
|
1257
|
+
// ctrl+u clears to line start, ctrl+k to line end, ctrl+w deletes the word behind.
|
|
1258
|
+
if (key.ctrl && input === 'u') {
|
|
1259
|
+
setDraft(d => d.slice(caret));
|
|
1260
|
+
setCaret(0);
|
|
1261
|
+
return;
|
|
1262
|
+
}
|
|
1263
|
+
if (key.ctrl && input === 'k') {
|
|
1264
|
+
setDraft(d => d.slice(0, caret));
|
|
1265
|
+
return;
|
|
1266
|
+
}
|
|
1267
|
+
if (key.ctrl && input === 'w') {
|
|
1268
|
+
const from = wordStart(draft, caret);
|
|
1269
|
+
setDraft(d => d.slice(0, from) + d.slice(caret));
|
|
1270
|
+
setCaret(from);
|
|
1271
|
+
return;
|
|
1272
|
+
}
|
|
1273
|
+
if (key.backspace) {
|
|
1274
|
+
if (caret === 0)
|
|
1275
|
+
return;
|
|
1276
|
+
setDraft(d => d.slice(0, caret - 1) + d.slice(caret));
|
|
1277
|
+
setCaret(c => Math.max(0, c - 1));
|
|
1278
|
+
return;
|
|
1279
|
+
}
|
|
1280
|
+
if (key.delete) { // forward delete leaves the caret put
|
|
1281
|
+
setDraft(d => d.slice(0, caret) + d.slice(caret + 1));
|
|
1003
1282
|
return;
|
|
1004
1283
|
}
|
|
1005
1284
|
// Typing "/" on an empty composer opens the command palette.
|
|
1006
1285
|
if (input === '/' && draft === '') {
|
|
1007
1286
|
setDraft('/');
|
|
1287
|
+
setCaret(1);
|
|
1008
1288
|
openPicker('command', COMMANDS.map(c => ({ value: c.cmd, label: c.cmd, desc: c.desc })));
|
|
1009
1289
|
return;
|
|
1010
1290
|
}
|
|
1011
|
-
|
|
1012
|
-
|
|
1291
|
+
// Insert at the caret rather than appending, so typing mid-string works. A paste arrives as
|
|
1292
|
+
// one chunk and is inserted whole.
|
|
1293
|
+
if (!key.ctrl && !key.meta && input) {
|
|
1294
|
+
setDraft(d => d.slice(0, caret) + input + d.slice(caret));
|
|
1295
|
+
setCaret(c => c + input.length);
|
|
1296
|
+
}
|
|
1013
1297
|
});
|
|
1298
|
+
/** Start of the word at or before `i`, for word-wise movement and deletion. */
|
|
1299
|
+
function wordStart(text, i) {
|
|
1300
|
+
let j = i;
|
|
1301
|
+
while (j > 0 && /\s/.test(text[j - 1] ?? ''))
|
|
1302
|
+
j--; // skip the gap
|
|
1303
|
+
while (j > 0 && !/\s/.test(text[j - 1] ?? ''))
|
|
1304
|
+
j--; // then the word
|
|
1305
|
+
return j;
|
|
1306
|
+
}
|
|
1307
|
+
/** Start of the word after `i`. */
|
|
1308
|
+
function wordEnd(text, i) {
|
|
1309
|
+
let j = i;
|
|
1310
|
+
while (j < text.length && !/\s/.test(text[j] ?? ''))
|
|
1311
|
+
j++;
|
|
1312
|
+
while (j < text.length && /\s/.test(text[j] ?? ''))
|
|
1313
|
+
j++;
|
|
1314
|
+
return j;
|
|
1315
|
+
}
|
|
1014
1316
|
/** Sends the composer contents: a slash command, or a task for the agent. */
|
|
1015
1317
|
function submitDraft(raw) {
|
|
1016
1318
|
{
|
|
@@ -1018,6 +1320,7 @@ function App({ config: initialConfig }) {
|
|
|
1018
1320
|
if (!task)
|
|
1019
1321
|
return;
|
|
1020
1322
|
setDraft('');
|
|
1323
|
+
setCaret(0);
|
|
1021
1324
|
addRow({ role: 'user', text: task });
|
|
1022
1325
|
if (task.startsWith('/')) {
|
|
1023
1326
|
const spaceIdx = task.indexOf(' ');
|
|
@@ -1152,7 +1455,8 @@ function App({ config: initialConfig }) {
|
|
|
1152
1455
|
const title = picker.kind === 'command' ? 'Commands'
|
|
1153
1456
|
: picker.kind === 'model' ? `Models - ${cfg.provider}`
|
|
1154
1457
|
: picker.kind === 'effort' ? 'Reasoning effort'
|
|
1155
|
-
: '
|
|
1458
|
+
: picker.kind === 'resume' ? 'Resume a saved session'
|
|
1459
|
+
: 'Connect provider';
|
|
1156
1460
|
let lastGroup;
|
|
1157
1461
|
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: CYAN, paddingX: 1, marginTop: 1, width: barWidth, children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsx(Text, { color: CYAN, bold: true, children: title }), _jsxs(Text, { color: DIM, children: [list.length, " match", list.length === 1 ? '' : 'es', " \u00B7 esc to close"] })] }), list.length === 0 && _jsxs(Text, { color: MUTED, children: ["No match for \"", pickQuery, "\""] }), shown.map((item, i) => {
|
|
1158
1462
|
const absolute = Math.max(0, start) + i;
|
|
@@ -1163,7 +1467,11 @@ function App({ config: initialConfig }) {
|
|
|
1163
1467
|
return (_jsxs(Box, { flexDirection: "column", children: [header && _jsx(Text, { color: DIM, children: header }), _jsx(Text, { backgroundColor: selected ? CYAN : undefined, color: selected ? '#10222A' : INK, bold: selected, children: (`${selected ? '❯ ' : ' '}${label.padEnd(36)}${item.current ? '(current) ' : ''}${item.desc}`)
|
|
1164
1468
|
.slice(0, width).padEnd(width) })] }, item.value + absolute));
|
|
1165
1469
|
}), list.length > PICKER_ROWS && (_jsxs(Text, { color: DIM, children: ["\u2191\u2193 navigate \u00B7 enter select \u00B7 showing ", Math.max(0, start) + 1, "\u2013", Math.max(0, start) + shown.length, " of ", list.length] }))] }));
|
|
1166
|
-
})(), keyPrompt && (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: AMBER, paddingX: 1, marginTop: 1, width: barWidth, children: [_jsxs(Text, { color: AMBER, bold: true, children: ["API key for ", keyPrompt.provider] }), _jsx(Text, { color: MUTED, children: "Paste it and press enter. Held in memory for this session only; esc to cancel." }), _jsxs(Box, { marginTop: 1, children: [_jsxs(Text, { color: MUTED, children: [keyPrompt.env, ": "] }), _jsx(Text, { color: INK, children: '*'.repeat(Math.min(keyPrompt.value.length, 48)) }), _jsx(Text, { color: CYAN, children: "\u2588" })] })] })), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: CYAN, bold: true, children: "\u276F " }), _jsx(Text, { color: INK, children: draft
|
|
1470
|
+
})(), keyPrompt && (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: AMBER, paddingX: 1, marginTop: 1, width: barWidth, children: [_jsxs(Text, { color: AMBER, bold: true, children: ["API key for ", keyPrompt.provider] }), _jsx(Text, { color: MUTED, children: "Paste it and press enter. Held in memory for this session only; esc to cancel." }), _jsxs(Box, { marginTop: 1, children: [_jsxs(Text, { color: MUTED, children: [keyPrompt.env, ": "] }), _jsx(Text, { color: INK, children: '*'.repeat(Math.min(keyPrompt.value.length, 48)) }), _jsx(Text, { color: CYAN, children: "\u2588" })] })] })), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: CYAN, bold: true, children: "\u276F " }), _jsx(Text, { color: INK, children: draft.slice(0, caret) }), busy
|
|
1471
|
+
? _jsx(Text, { color: INK, children: draft.slice(caret) })
|
|
1472
|
+
: caret < draft.length
|
|
1473
|
+
? _jsxs(_Fragment, { children: [_jsx(Text, { backgroundColor: CYAN, color: "#10222A", children: draft[caret] }), _jsx(Text, { color: INK, children: draft.slice(caret + 1) })] })
|
|
1474
|
+
: _jsx(Text, { color: CYAN, children: "\u2588" })] }), _jsx(Box, { marginTop: 1, paddingX: 1, children: _jsxs(Text, { wrap: "truncate", backgroundColor: "#24343B", children: [_jsx(Text, { color: MUTED, children: "TAB " }), _jsx(Text, { color: INK, children: "Analytics" }), _jsx(Text, { color: MUTED, children: " / " }), _jsx(Text, { color: CYAN, children: "/HELP" }), _jsx(Text, { color: INK, children: " Commands" }), _jsx(Text, { color: MUTED, children: " / SHIFT+TAB " }), _jsx(Text, { color: INK, children: "Mode" }), _jsx(Text, { color: MUTED, children: " / " }), _jsx(Text, { color: statusColor, children: statusLabel.toLowerCase() }), _jsx(Text, { color: MUTED, children: " / MODE: " }), _jsx(Text, { color: INK, children: mode }), _jsx(Text, { color: MUTED, children: " / EFFORT: " }), _jsx(Text, { color: effort === 'medium' ? INK : AMBER, children: effort }), _jsx(Text, { color: MUTED, children: " / MODEL: " }), _jsx(Text, { color: INK, children: modelShort }), _jsx(Text, { color: MUTED, children: " / PING: " }), _jsx(Text, { color: INK, children: "50ms" })] }) })] }));
|
|
1167
1475
|
}
|
|
1168
1476
|
export async function runInkChatMode(config) {
|
|
1169
1477
|
// resolveConfig has already layered CLI flags above the /config store, so the config
|
package/dist/ink-chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ink-chat.js","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ink-chat.js","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inter-session messaging for concurrently running KONECK instances.
|
|
3
|
+
*
|
|
4
|
+
* Each live session registers itself and listens on a unix socket. Another session can hand work
|
|
5
|
+
* over (`/send`) or ask a question and wait for the answer (`/ask`). Two decisions shape the
|
|
6
|
+
* design:
|
|
7
|
+
*
|
|
8
|
+
* Addressing is by *place*, not by id. Nobody wants to type `/send session_9f82a`, so a target
|
|
9
|
+
* resolves against the working directory and repository name first — `/send backend` finds the
|
|
10
|
+
* session running in `~/dev/backend`. Ids remain available as `#a1b2` for the ambiguous case.
|
|
11
|
+
*
|
|
12
|
+
* Delivery never interrupts. A session in the middle of a tool call cannot safely take a new
|
|
13
|
+
* instruction, so messages land in a queue and are drained when the current turn finishes.
|
|
14
|
+
*
|
|
15
|
+
* A unix socket is used rather than a TCP port because filesystem permissions are the
|
|
16
|
+
* authorisation model: 0600 on the socket keeps other users out, and a per-session token keeps
|
|
17
|
+
* unrelated local processes from injecting instructions into an agent that can write files.
|
|
18
|
+
*/
|
|
19
|
+
export interface SessionRecord {
|
|
20
|
+
id: string;
|
|
21
|
+
pid: number;
|
|
22
|
+
cwd: string;
|
|
23
|
+
repoName: string;
|
|
24
|
+
socketPath: string;
|
|
25
|
+
authToken: string;
|
|
26
|
+
startedAt: string;
|
|
27
|
+
/** Refreshed while the session lives; a stale one is how a crashed session is spotted. */
|
|
28
|
+
heartbeat: string;
|
|
29
|
+
status: 'idle' | 'busy';
|
|
30
|
+
model: string;
|
|
31
|
+
provider: string;
|
|
32
|
+
}
|
|
33
|
+
export type Envelope = {
|
|
34
|
+
kind: 'send';
|
|
35
|
+
token: string;
|
|
36
|
+
from: SessionSummary;
|
|
37
|
+
instruction: string;
|
|
38
|
+
payload: HandoffPayload;
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'ask';
|
|
41
|
+
token: string;
|
|
42
|
+
from: SessionSummary;
|
|
43
|
+
question: string;
|
|
44
|
+
} | {
|
|
45
|
+
kind: 'ping';
|
|
46
|
+
token: string;
|
|
47
|
+
};
|
|
48
|
+
export interface SessionSummary {
|
|
49
|
+
id: string;
|
|
50
|
+
repoName: string;
|
|
51
|
+
cwd: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* What travels between sessions. Deliberately a summary, never a transcript: a raw history costs
|
|
55
|
+
* thousands of tokens on the receiving side and mostly restates what the sender already resolved.
|
|
56
|
+
*/
|
|
57
|
+
export interface HandoffPayload {
|
|
58
|
+
summary: string;
|
|
59
|
+
changedFiles: string[];
|
|
60
|
+
instruction: string;
|
|
61
|
+
}
|
|
62
|
+
export type Reply = {
|
|
63
|
+
ok: true;
|
|
64
|
+
answer?: string;
|
|
65
|
+
} | {
|
|
66
|
+
ok: false;
|
|
67
|
+
error: string;
|
|
68
|
+
};
|
|
69
|
+
/** Repository name if the cwd is inside one, else the directory's own name. */
|
|
70
|
+
export declare function repoNameFor(cwd: string): string;
|
|
71
|
+
/** A process that no longer exists, or has stopped beating, is not a session. */
|
|
72
|
+
export declare function isAlive(record: SessionRecord): boolean;
|
|
73
|
+
/** Every live session, with dead ones pruned from the registry as a side effect. */
|
|
74
|
+
export declare function listSessions(): SessionRecord[];
|
|
75
|
+
/**
|
|
76
|
+
* Finds the session a target refers to. Accepted, in order of specificity: `#id`, an exact id, an
|
|
77
|
+
* exact repo or directory name, then a unique prefix match. Ambiguity is reported rather than
|
|
78
|
+
* guessed — sending work to the wrong repository is worse than being asked to be specific.
|
|
79
|
+
*/
|
|
80
|
+
export declare function resolveTarget(target: string, selfId?: string): {
|
|
81
|
+
ok: true;
|
|
82
|
+
session: SessionRecord;
|
|
83
|
+
} | {
|
|
84
|
+
ok: false;
|
|
85
|
+
error: string;
|
|
86
|
+
};
|
|
87
|
+
export interface BusHandlers {
|
|
88
|
+
/** A handoff arrived. Returns once queued; it does not wait for the work to be done. */
|
|
89
|
+
onSend: (from: SessionSummary, payload: HandoffPayload) => void;
|
|
90
|
+
/** A question arrived. The answer is sent back to the caller, which is blocked meanwhile. */
|
|
91
|
+
onAsk: (from: SessionSummary, question: string) => Promise<string>;
|
|
92
|
+
}
|
|
93
|
+
export interface Bus {
|
|
94
|
+
record: SessionRecord;
|
|
95
|
+
setStatus(status: 'idle' | 'busy'): void;
|
|
96
|
+
close(): void;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Registers this session and starts listening. Failure is non-fatal: messaging is a convenience,
|
|
100
|
+
* and a session that cannot open a socket should still be a working agent.
|
|
101
|
+
*/
|
|
102
|
+
export declare function startBus(opts: {
|
|
103
|
+
id: string;
|
|
104
|
+
cwd: string;
|
|
105
|
+
model: string;
|
|
106
|
+
provider: string;
|
|
107
|
+
}, handlers: BusHandlers): Bus | null;
|
|
108
|
+
/** Sends one message to a session and waits for its reply. */
|
|
109
|
+
export declare function deliver(to: SessionRecord, message: Envelope, timeoutMs?: number): Promise<Reply>;
|
|
110
|
+
/** Removes sockets and registry entries for sessions that are no longer running. */
|
|
111
|
+
export declare function pruneDead(): Promise<number>;
|
|
112
|
+
//# sourceMappingURL=session-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-bus.d.ts","sourceRoot":"","sources":["../src/session-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import fsp from 'fs/promises';
|
|
3
|
+
import net from 'net';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import crypto from 'crypto';
|
|
7
|
+
const ROOT = path.join(os.homedir(), '.koneck', 'sessions');
|
|
8
|
+
const REGISTRY = path.join(ROOT, 'registry.json');
|
|
9
|
+
const HEARTBEAT_STALE_MS = 90_000;
|
|
10
|
+
function ensureRoot() {
|
|
11
|
+
fs.mkdirSync(ROOT, { recursive: true, mode: 0o700 });
|
|
12
|
+
}
|
|
13
|
+
/** Repository name if the cwd is inside one, else the directory's own name. */
|
|
14
|
+
export function repoNameFor(cwd) {
|
|
15
|
+
let dir = path.resolve(cwd);
|
|
16
|
+
const root = path.parse(dir).root;
|
|
17
|
+
while (true) {
|
|
18
|
+
if (fs.existsSync(path.join(dir, '.git')))
|
|
19
|
+
return path.basename(dir);
|
|
20
|
+
if (dir === root)
|
|
21
|
+
break;
|
|
22
|
+
dir = path.dirname(dir);
|
|
23
|
+
}
|
|
24
|
+
return path.basename(path.resolve(cwd));
|
|
25
|
+
}
|
|
26
|
+
/** A process that no longer exists, or has stopped beating, is not a session. */
|
|
27
|
+
export function isAlive(record) {
|
|
28
|
+
try {
|
|
29
|
+
process.kill(record.pid, 0); // signal 0 tests existence without touching the process
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return Date.now() - Date.parse(record.heartbeat) < HEARTBEAT_STALE_MS;
|
|
35
|
+
}
|
|
36
|
+
function readRegistry() {
|
|
37
|
+
try {
|
|
38
|
+
const raw = fs.readFileSync(REGISTRY, 'utf-8');
|
|
39
|
+
const parsed = JSON.parse(raw);
|
|
40
|
+
return parsed && typeof parsed === 'object' ? parsed : {};
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return {}; // absent or malformed: start clean rather than fail a session's startup
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function writeRegistry(all) {
|
|
47
|
+
ensureRoot();
|
|
48
|
+
// Written via a temp file and renamed so a reader never sees a half-written registry.
|
|
49
|
+
const tmp = REGISTRY + `.${process.pid}.tmp`;
|
|
50
|
+
fs.writeFileSync(tmp, JSON.stringify(all, null, 2) + '\n', { mode: 0o600 });
|
|
51
|
+
fs.renameSync(tmp, REGISTRY);
|
|
52
|
+
}
|
|
53
|
+
/** Every live session, with dead ones pruned from the registry as a side effect. */
|
|
54
|
+
export function listSessions() {
|
|
55
|
+
const all = readRegistry();
|
|
56
|
+
const live = {};
|
|
57
|
+
let pruned = false;
|
|
58
|
+
for (const [id, rec] of Object.entries(all)) {
|
|
59
|
+
if (isAlive(rec))
|
|
60
|
+
live[id] = rec;
|
|
61
|
+
else {
|
|
62
|
+
pruned = true;
|
|
63
|
+
fs.rmSync(rec.socketPath, { force: true });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (pruned) {
|
|
67
|
+
try {
|
|
68
|
+
writeRegistry(live);
|
|
69
|
+
}
|
|
70
|
+
catch { /* best effort */ }
|
|
71
|
+
}
|
|
72
|
+
return Object.values(live).sort((a, b) => a.startedAt.localeCompare(b.startedAt));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Finds the session a target refers to. Accepted, in order of specificity: `#id`, an exact id, an
|
|
76
|
+
* exact repo or directory name, then a unique prefix match. Ambiguity is reported rather than
|
|
77
|
+
* guessed — sending work to the wrong repository is worse than being asked to be specific.
|
|
78
|
+
*/
|
|
79
|
+
export function resolveTarget(target, selfId) {
|
|
80
|
+
const others = listSessions().filter(s => s.id !== selfId);
|
|
81
|
+
if (others.length === 0)
|
|
82
|
+
return { ok: false, error: 'no other KONECK sessions are running' };
|
|
83
|
+
const q = target.replace(/^#/, '').toLowerCase();
|
|
84
|
+
const exact = others.filter(s => s.id.toLowerCase() === q ||
|
|
85
|
+
s.repoName.toLowerCase() === q ||
|
|
86
|
+
path.basename(s.cwd).toLowerCase() === q);
|
|
87
|
+
if (exact.length === 1)
|
|
88
|
+
return { ok: true, session: exact[0] };
|
|
89
|
+
if (exact.length > 1) {
|
|
90
|
+
return { ok: false, error: `"${target}" matches ${exact.length} sessions — use an id: ${exact.map(s => '#' + s.id).join(', ')}` };
|
|
91
|
+
}
|
|
92
|
+
const partial = others.filter(s => s.id.toLowerCase().startsWith(q) ||
|
|
93
|
+
s.repoName.toLowerCase().includes(q) ||
|
|
94
|
+
s.cwd.toLowerCase().includes(q));
|
|
95
|
+
if (partial.length === 1)
|
|
96
|
+
return { ok: true, session: partial[0] };
|
|
97
|
+
if (partial.length > 1) {
|
|
98
|
+
return { ok: false, error: `"${target}" is ambiguous: ${partial.map(s => s.repoName + ' #' + s.id).join(', ')}` };
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
ok: false,
|
|
102
|
+
error: `no session matches "${target}". Running: ${others.map(s => s.repoName).join(', ')}`,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Registers this session and starts listening. Failure is non-fatal: messaging is a convenience,
|
|
107
|
+
* and a session that cannot open a socket should still be a working agent.
|
|
108
|
+
*/
|
|
109
|
+
export function startBus(opts, handlers) {
|
|
110
|
+
try {
|
|
111
|
+
ensureRoot();
|
|
112
|
+
const socketPath = path.join(ROOT, `${opts.id}.sock`);
|
|
113
|
+
fs.rmSync(socketPath, { force: true }); // a leftover from a crash would block bind
|
|
114
|
+
const record = {
|
|
115
|
+
id: opts.id,
|
|
116
|
+
pid: process.pid,
|
|
117
|
+
cwd: path.resolve(opts.cwd),
|
|
118
|
+
repoName: repoNameFor(opts.cwd),
|
|
119
|
+
socketPath,
|
|
120
|
+
authToken: crypto.randomBytes(24).toString('hex'),
|
|
121
|
+
startedAt: new Date().toISOString(),
|
|
122
|
+
heartbeat: new Date().toISOString(),
|
|
123
|
+
status: 'idle',
|
|
124
|
+
model: opts.model,
|
|
125
|
+
provider: opts.provider,
|
|
126
|
+
};
|
|
127
|
+
const server = net.createServer(socket => {
|
|
128
|
+
let buf = '';
|
|
129
|
+
socket.on('data', chunk => {
|
|
130
|
+
buf += chunk.toString('utf-8');
|
|
131
|
+
const nl = buf.indexOf('\n');
|
|
132
|
+
if (nl === -1)
|
|
133
|
+
return; // one JSON message per line
|
|
134
|
+
const line = buf.slice(0, nl);
|
|
135
|
+
buf = buf.slice(nl + 1);
|
|
136
|
+
let msg;
|
|
137
|
+
try {
|
|
138
|
+
msg = JSON.parse(line);
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
socket.end(JSON.stringify({ ok: false, error: 'malformed message' }) + '\n');
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// The token is what stops an unrelated local process from driving an agent that can
|
|
145
|
+
// write files and run commands. Compared in constant time out of habit, not paranoia.
|
|
146
|
+
const expected = Buffer.from(record.authToken);
|
|
147
|
+
const given = Buffer.from(String(msg.token ?? ''));
|
|
148
|
+
const authed = given.length === expected.length && crypto.timingSafeEqual(given, expected);
|
|
149
|
+
if (!authed) {
|
|
150
|
+
socket.end(JSON.stringify({ ok: false, error: 'unauthorized' }) + '\n');
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (msg.kind === 'ping') {
|
|
154
|
+
socket.end(JSON.stringify({ ok: true }) + '\n');
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (msg.kind === 'send') {
|
|
158
|
+
handlers.onSend(msg.from, msg.payload);
|
|
159
|
+
socket.end(JSON.stringify({ ok: true }) + '\n'); // queued, not completed
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (msg.kind === 'ask') {
|
|
163
|
+
handlers.onAsk(msg.from, msg.question)
|
|
164
|
+
.then(answer => socket.end(JSON.stringify({ ok: true, answer }) + '\n'))
|
|
165
|
+
.catch((e) => socket.end(JSON.stringify({
|
|
166
|
+
ok: false, error: e instanceof Error ? e.message : String(e),
|
|
167
|
+
}) + '\n'));
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
socket.end(JSON.stringify({ ok: false, error: 'unknown message kind' }) + '\n');
|
|
171
|
+
});
|
|
172
|
+
socket.on('error', () => { });
|
|
173
|
+
});
|
|
174
|
+
server.listen(socketPath, () => { try {
|
|
175
|
+
fs.chmodSync(socketPath, 0o600);
|
|
176
|
+
}
|
|
177
|
+
catch { /* ignore */ } });
|
|
178
|
+
server.on('error', () => { });
|
|
179
|
+
const all = readRegistry();
|
|
180
|
+
all[record.id] = record;
|
|
181
|
+
writeRegistry(all);
|
|
182
|
+
const beat = setInterval(() => {
|
|
183
|
+
record.heartbeat = new Date().toISOString();
|
|
184
|
+
try {
|
|
185
|
+
const reg = readRegistry();
|
|
186
|
+
reg[record.id] = record;
|
|
187
|
+
writeRegistry(reg);
|
|
188
|
+
}
|
|
189
|
+
catch { /* a missed beat is recoverable; a crash here is not */ }
|
|
190
|
+
}, 20_000);
|
|
191
|
+
beat.unref();
|
|
192
|
+
const close = () => {
|
|
193
|
+
clearInterval(beat);
|
|
194
|
+
try {
|
|
195
|
+
server.close();
|
|
196
|
+
}
|
|
197
|
+
catch { /* ignore */ }
|
|
198
|
+
fs.rmSync(socketPath, { force: true });
|
|
199
|
+
try {
|
|
200
|
+
const reg = readRegistry();
|
|
201
|
+
delete reg[record.id];
|
|
202
|
+
writeRegistry(reg);
|
|
203
|
+
}
|
|
204
|
+
catch { /* ignore */ }
|
|
205
|
+
};
|
|
206
|
+
process.once('exit', close);
|
|
207
|
+
return {
|
|
208
|
+
record,
|
|
209
|
+
setStatus(status) {
|
|
210
|
+
record.status = status;
|
|
211
|
+
try {
|
|
212
|
+
const reg = readRegistry();
|
|
213
|
+
if (reg[record.id]) {
|
|
214
|
+
reg[record.id] = record;
|
|
215
|
+
writeRegistry(reg);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch { /* status is advisory */ }
|
|
219
|
+
},
|
|
220
|
+
close,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/** Sends one message to a session and waits for its reply. */
|
|
228
|
+
export function deliver(to, message, timeoutMs = 120_000) {
|
|
229
|
+
return new Promise(resolve => {
|
|
230
|
+
let settled = false;
|
|
231
|
+
const done = (r) => { if (!settled) {
|
|
232
|
+
settled = true;
|
|
233
|
+
resolve(r);
|
|
234
|
+
} };
|
|
235
|
+
const socket = net.createConnection(to.socketPath);
|
|
236
|
+
const timer = setTimeout(() => {
|
|
237
|
+
socket.destroy();
|
|
238
|
+
done({ ok: false, error: `${to.repoName} did not reply within ${Math.round(timeoutMs / 1000)}s` });
|
|
239
|
+
}, timeoutMs);
|
|
240
|
+
timer.unref();
|
|
241
|
+
let buf = '';
|
|
242
|
+
socket.on('connect', () => socket.write(JSON.stringify(message) + '\n'));
|
|
243
|
+
socket.on('data', chunk => {
|
|
244
|
+
buf += chunk.toString('utf-8');
|
|
245
|
+
const nl = buf.indexOf('\n');
|
|
246
|
+
if (nl === -1)
|
|
247
|
+
return;
|
|
248
|
+
clearTimeout(timer);
|
|
249
|
+
try {
|
|
250
|
+
done(JSON.parse(buf.slice(0, nl)));
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
done({ ok: false, error: 'unreadable reply' });
|
|
254
|
+
}
|
|
255
|
+
socket.end();
|
|
256
|
+
});
|
|
257
|
+
socket.on('error', (e) => {
|
|
258
|
+
clearTimeout(timer);
|
|
259
|
+
// A dead socket file means the session went away between listing and sending.
|
|
260
|
+
done({ ok: false, error: `cannot reach ${to.repoName}: ${e.message}` });
|
|
261
|
+
});
|
|
262
|
+
socket.on('close', () => { clearTimeout(timer); done({ ok: false, error: 'connection closed with no reply' }); });
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
/** Removes sockets and registry entries for sessions that are no longer running. */
|
|
266
|
+
export async function pruneDead() {
|
|
267
|
+
const before = Object.keys(readRegistry()).length;
|
|
268
|
+
const after = listSessions().length;
|
|
269
|
+
try {
|
|
270
|
+
const files = await fsp.readdir(ROOT);
|
|
271
|
+
const live = new Set(listSessions().map(s => path.basename(s.socketPath)));
|
|
272
|
+
for (const f of files) {
|
|
273
|
+
if (f.endsWith('.sock') && !live.has(f))
|
|
274
|
+
await fsp.rm(path.join(ROOT, f), { force: true });
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch { /* nothing to prune */ }
|
|
278
|
+
return before - after;
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=session-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-bus.js","sourceRoot":"","sources":["../src/session-bus.ts"],"names":[],"mappings":"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"}
|