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.
@@ -1 +1 @@
1
- {"version":3,"file":"ink-chat.d.ts","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"AAWA,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;AA2CD,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;AAwkCD,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvE"}
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: '/sessions', desc: 'List recent saved sessions' },
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 '/sessions': {
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
- setDraft('/' + pickQuery.slice(0, -1));
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 => (d.endsWith(' ') ? d : 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
- setDraft('/' + pickQuery + input);
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
- if (key.backspace || key.delete) {
1002
- setDraft(prev => prev.slice(0, -1));
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
- if (!key.ctrl && !key.meta && input)
1012
- setDraft(prev => prev + input);
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
- : 'Connect provider';
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 }), _jsx(Text, { color: CYAN, children: busy ? '' : '█' })] }), _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" })] }) })] }));
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
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koneck",
3
- "version": "2.22.0",
3
+ "version": "2.23.0",
4
4
  "description": "Kinetically Orchestrated Neural Execution Engine for Code",
5
5
  "type": "module",
6
6
  "bin": {