kumo-cli 1.3.9 → 1.3.11

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.
@@ -0,0 +1,76 @@
1
+ import { format } from 'node:util';
2
+ // the activity of the claude sessions as a box of its newest lines kept at the bottom of the
3
+ // terminal, instead of a log that scrolls on forever
4
+ const DIM = '\x1b[2m';
5
+ const RESET = '\x1b[0m';
6
+ const MAX_WIDTH = 100;
7
+ const TITLE = ' activity ';
8
+ // east asian wide characters and emoji take two columns, marks none
9
+ const WIDE = /[\u1100-\u115f\u2e80-\u303e\u3041-\u33ff\u3400-\u4dbf\u4e00-\u9fff\ua000-\ua4cf\uac00-\ud7a3\uf900-\ufaff\ufe30-\ufe4f\uff00-\uff60\uffe0-\uffe6\u{20000}-\u{3fffd}]|\p{Emoji_Presentation}/u;
10
+ const ZERO = /\p{Mark}|[\u200b-\u200f]/u;
11
+ // [text] cut (with …) or padded to exactly [width] terminal columns; colors are dropped and other
12
+ // control characters become spaces so a line can neither wrap nor move the cursor
13
+ export function fit(text, width) {
14
+ const chars = [...text.replace(/\x1b\[[0-9;]*m/g, '').replace(/[\x00-\x1f\x7f-\x9f]/g, ' ')].map((ch) => [ch, ZERO.test(ch) ? 0 : WIDE.test(ch) ? 2 : 1]);
15
+ const cut = chars.reduce((sum, [, w]) => sum + w, 0) > width;
16
+ const room = cut ? width - 1 : width;
17
+ let out = '';
18
+ let used = 0;
19
+ for (const [ch, w] of chars) {
20
+ if (used + w > room)
21
+ break;
22
+ out += ch;
23
+ used += w;
24
+ }
25
+ return `${out}${cut ? '…' : ''}${' '.repeat(room - used)}`;
26
+ }
27
+ // the rows of a box around [lines], [width] columns wide in all
28
+ export function renderBox(lines, width) {
29
+ return [
30
+ `${DIM}╭─${TITLE}${'─'.repeat(width - 3 - TITLE.length)}╮${RESET}`,
31
+ ...lines.map((line) => `${DIM}│${RESET} ${fit(line, width - 4)} ${DIM}│${RESET}`),
32
+ `${DIM}╰${'─'.repeat(width - 2)}╯${RESET}`,
33
+ ];
34
+ }
35
+ // a sink for activity lines: on a terminal the newest [max] in a box of that many rows, shown
36
+ // from [show] on; anywhere else (a pipe, a log file) every line as is
37
+ export function activityLog(out = process.stdout, max = 5) {
38
+ if (!out.isTTY)
39
+ return { add: (line) => console.log(line), show: () => { } };
40
+ const lines = [];
41
+ let drawn = 0;
42
+ // back to the box's top row and clear from there down
43
+ const erase = () => (drawn ? `\x1b[${drawn}A\r\x1b[J` : '');
44
+ const draw = () => {
45
+ const rows = renderBox(Array.from({ length: max }, (_, i) => lines[i] ?? ''),
46
+ // a column short of the edge: a row filling the last column wraps early on some consoles
47
+ Math.max(TITLE.length + 10, Math.min((out.columns || 80) - 1, MAX_WIDTH)));
48
+ drawn = rows.length;
49
+ return `${rows.join('\n')}\n`;
50
+ };
51
+ const push = (line) => {
52
+ lines.push(line);
53
+ if (lines.length > max)
54
+ lines.shift();
55
+ };
56
+ // once the box is up, the cli's own messages join it too
57
+ for (const name of ['log', 'warn', 'error']) {
58
+ const print = console[name].bind(console);
59
+ console[name] = (...args) => {
60
+ if (!drawn)
61
+ return print(...args);
62
+ for (const line of format(...args).split('\n'))
63
+ if (line.trim())
64
+ push(line);
65
+ out.write(erase() + draw());
66
+ };
67
+ }
68
+ return {
69
+ add: (line) => {
70
+ push(line);
71
+ out.write(erase() + draw());
72
+ },
73
+ show: () => out.write(erase() + draw()),
74
+ };
75
+ }
76
+ //# sourceMappingURL=activityBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activityBox.js","sourceRoot":"","sources":["../../src/core/activityBox.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { TerminalManager } from './pty/terminalManager.js';
3
3
  import { clearCredentials, ensureDeviceUuid, } from './auth/credentialsStore.js';
4
4
  import { loadDotEnv } from './core/loadDotEnv.js';
5
5
  import { log } from './core/logger.js';
6
+ import { activityLog } from './core/activityBox.js';
6
7
  import { ProjectFileWatcher } from './core/projectFileWatcher.js';
7
8
  import { lockFolder } from './core/folderLock.js';
8
9
  import { SessionManager } from './engine/sessionManager.js';
@@ -74,7 +75,6 @@ async function main() {
74
75
  }
75
76
  const launch = resolveLaunchConfig(command.args);
76
77
  allowRemoteUserConfig(launch.allowRemoteConfig);
77
- printBanner();
78
78
  if (isCleartextRemote(SERVER_HTTP()) || isCleartextRemote(SERVER_WS())) {
79
79
  console.warn('\x1b[33m[kumo-cli] warning: the backend url is not https/wss, so the device token and everything relayed travel in the clear\x1b[0m');
80
80
  }
@@ -88,6 +88,7 @@ async function main() {
88
88
  const effort = new EffortService();
89
89
  effort.load();
90
90
  const picks = fileSessionModelStore();
91
+ const activity = activityLog();
91
92
  const terminals = new TerminalManager((terminalId, data) => send({ type: 'terminal_output', terminalId, data }), (terminalId, exitCode) => {
92
93
  log(`[terminal] ${terminalId} exited with code ${exitCode}`);
93
94
  send({ type: 'terminal_closed', terminalId, exitCode });
@@ -116,7 +117,7 @@ async function main() {
116
117
  set: (windows) => writeKumoSetting('usageWindows', windows),
117
118
  },
118
119
  effort: (sessionId) => effort.getCurrent(sessionId),
119
- console: (line) => console.log(line),
120
+ console: activity.add,
120
121
  });
121
122
  let shuttingDown = false;
122
123
  const shutdown = (code) => {
@@ -145,14 +146,15 @@ async function main() {
145
146
  console.error('[kumo-cli] pairing aborted');
146
147
  process.exit(1);
147
148
  }
148
- console.log(`\x1b[32m✓ Connected as ${activeCredentials.user?.email ?? activeCredentials.user?.id ?? 'device'}\x1b[0m`);
149
- if (launch.allowRemoteConfig)
150
- console.log('[kumo-cli] the app may change user-wide hooks, permission rules, mcp servers and plugins');
151
- if (launch.allowTerminal)
152
- console.log('[kumo-cli] the app may open terminals in this folder');
153
- if (launch.allowTunnel)
154
- console.log('[kumo-cli] the app may tunnel to local ports of this computer');
155
- console.log(`[kumo-cli] claude sessions run on demand (permission mode: ${launch.permissionMode}). press ctrl+c to quit.\n`);
149
+ // the account and what the app may do, beside the logo (shown only now that the account is known)
150
+ const allowed = [launch.allowRemoteConfig && 'config', launch.allowTerminal && 'terminal', launch.allowTunnel && 'tunnel'].filter(Boolean);
151
+ printBanner([
152
+ `\x1b[2mkumo-cli ${cliVersion()}\x1b[0m`,
153
+ `\x1b[1;32m${activeCredentials.user?.email ?? activeCredentials.user?.id ?? 'device'}\x1b[0m`,
154
+ `\x1b[2mmode \x1b[0m${launch.permissionMode}`,
155
+ ...(allowed.length ? [`\x1b[2maccess \x1b[0m${allowed.join(' · ')}`] : []),
156
+ ]);
157
+ activity.show();
156
158
  const router = createMessageRouter({
157
159
  send,
158
160
  sessions, effort, terminals,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,14 @@ import { ensureDeviceUuid, saveCredentials, saveDeviceIdentity } from '../auth/c
7
7
  const BANNER_TIPS = [
8
8
  'tip: press --help to see the command guide.',
9
9
  'tip: run `npx kumo-cli@latest reset claude` to pair the Claude agent again.',
10
+ 'tip: add -t before `claude` to open terminals in this folder from the app.',
11
+ "tip: add -u to reach this computer's local ports, like a dev server, from the app.",
12
+ 'tip: add -a to let the app manage hooks, permission rules, mcp servers and plugins.',
13
+ 'tip: -m plan starts sessions in plan mode, -m acceptEdits lets claude edit without asking.',
14
+ 'tip: short options combine: -atu is -a -t -u.',
15
+ 'tip: anything after `claude` goes to claude itself, like `claude --add-dir ../api`.',
16
+ 'tip: -e <file> loads environment variables from a file before starting.',
17
+ 'tip: press ctrl+c twice to quit without waiting for sessions to close.',
10
18
  ];
11
19
  // poll pair status until approved/rejected or timeout (5 min); the secret proves this cli filed the request
12
20
  async function pollPairStatus(requestId, pollSecret) {
@@ -57,21 +65,37 @@ export async function verifyCredentials(creds) {
57
65
  const data = res.data;
58
66
  return { ...creds, user: data.user ?? creds.user, deviceUuid: data.device?.deviceUuid ?? creds.deviceUuid };
59
67
  }
60
- export function printBanner() {
61
- const cloud = [
62
- " \x1b[1;36m_ __ _ _ __ __ ____ \x1b[0m",
63
- " \x1b[1;36m| |/ /| | | || \\/ | / __ \\\x1b[0m",
64
- " \x1b[1;36m| ' / | | | || \\ / || | | |\x1b[0m",
65
- " \x1b[1;36m| . \\ | |_| || |\\/| || |__| |\x1b[0m",
66
- " \x1b[1;36m|_|\\_\\ \\___/ |_| |_| \\____/\x1b[0m",
67
- ];
68
- console.log('');
69
- for (const line of cloud)
70
- console.log(line);
71
- console.log('');
72
- console.log(' \x1b[2mwhere your code drifts between devices, softly.\x1b[0m');
73
- const tip = BANNER_TIPS[Math.floor(Math.random() * BANNER_TIPS.length)];
74
- console.log(` \x1b[2;37m${tip}\x1b[0m`);
68
+ const LOGO = [
69
+ " _ __ _ _ __ __ ____ ",
70
+ " | |/ /| | | || \\/ | / __ \\",
71
+ " | ' / | | | || \\ / || | | |",
72
+ " | . \\ | |_| || |\\/| || |__| |",
73
+ " |_|\\_\\ \\___/ |_| |_| \\____/",
74
+ ];
75
+ const LOGO_WIDTH = 34;
76
+ let bannerShown = false;
77
+ // the logo with [info] beside it from its second row, or under it on a narrow terminal; once the logo is up (pairing
78
+ // shows it first) only the info follows
79
+ export function printBanner(info = []) {
80
+ const width = Math.max(...info.map((line) => line.replace(/\x1b\[[0-9;]*m/g, '').length));
81
+ const shownBefore = bannerShown;
82
+ const beside = !shownBefore && LOGO_WIDTH + width < (process.stdout.columns || 80);
83
+ if (!shownBefore) {
84
+ bannerShown = true;
85
+ console.log('');
86
+ LOGO.forEach((line, i) => console.log(`\x1b[1;36m${line.padEnd(LOGO_WIDTH)}\x1b[0m${beside ? info[i - 1] ?? '' : ''}`));
87
+ console.log('');
88
+ console.log(' \x1b[2mwhere your code drifts between devices, softly.\x1b[0m');
89
+ const tip = BANNER_TIPS[Math.floor(Math.random() * BANNER_TIPS.length)];
90
+ console.log(` \x1b[2;37m${tip}\x1b[0m`);
91
+ console.log('');
92
+ }
93
+ if (beside || info.length === 0)
94
+ return;
95
+ if (shownBefore)
96
+ console.log('');
97
+ for (const line of info)
98
+ console.log(` ${line}`);
75
99
  console.log('');
76
100
  }
77
101
  // print pairing-specific instructions only when the cli needs a fresh code
@@ -84,6 +108,7 @@ function printPairingInstructions() {
84
108
  export async function pairFlow() {
85
109
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
86
110
  const ask = (q) => new Promise((resolve) => rl.question(q, (a) => resolve(a)));
111
+ printBanner();
87
112
  printPairingInstructions();
88
113
  try {
89
114
  while (true) {
@@ -1 +1 @@
1
- {"version":3,"file":"pairingService.js","sourceRoot":"","sources":["../../src/services/pairingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pairingService.js","sourceRoot":"","sources":["../../src/services/pairingService.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,10 @@ function logFrame(direction, msg, size) {
20
20
  }
21
21
  // the server pings every 30s; missing two and a half of them means the link is dead
22
22
  const SERVER_PING_TIMEOUT_MS = 75_000;
23
+ // the cli pings too: a check that finds nothing read since the last one drops the link, so a dead
24
+ // one is left within two checks, before the server gives up on it and tells the app the computer
25
+ // went offline
26
+ const HEARTBEAT_MS = 10_000;
23
27
  // the largest frame the app sends: a file write, prompt images or a 10 MB tunnel body as base64
24
28
  const MAX_PAYLOAD_BYTES = 64 * 1024 * 1024;
25
29
  // reconnect waits double from 3s up to 30s, plus some jitter so many clis do not return at once
@@ -33,16 +37,19 @@ export class WsClient {
33
37
  onOpen;
34
38
  onMessage;
35
39
  onClose;
40
+ heartbeatMs;
36
41
  ws = null;
37
42
  reconnectTimer = null;
38
43
  pingWatchdog = null;
44
+ heartbeat = null;
39
45
  attempts = 0;
40
46
  // close() was called: the socket stays down
41
47
  closed = false;
42
- constructor(onOpen, onMessage, onClose) {
48
+ constructor(onOpen, onMessage, onClose, heartbeatMs = HEARTBEAT_MS) {
43
49
  this.onOpen = onOpen;
44
50
  this.onMessage = onMessage;
45
51
  this.onClose = onClose;
52
+ this.heartbeatMs = heartbeatMs;
46
53
  }
47
54
  send(data) {
48
55
  if (this.ws && this.ws.readyState === WebSocket.OPEN) {
@@ -63,10 +70,29 @@ export class WsClient {
63
70
  this.clearWatchdog();
64
71
  this.pingWatchdog = setTimeout(() => ws.terminate(), SERVER_PING_TIMEOUT_MS);
65
72
  };
73
+ // any byte from the server shows the link is up: a pong, or a large frame still arriving
74
+ let socket;
75
+ let lastRead = -1;
76
+ ws.on('upgrade', (res) => { socket = res.socket; });
77
+ const check = () => {
78
+ // a frame still going out holds the pong back; the watchdog covers a link that dies meanwhile
79
+ if (ws.bufferedAmount === 0) {
80
+ const read = socket?.bytesRead ?? 0;
81
+ if (read === lastRead) {
82
+ log('[ws] no answer from the server');
83
+ ws.terminate();
84
+ return;
85
+ }
86
+ lastRead = read;
87
+ ws.ping();
88
+ }
89
+ this.heartbeat = setTimeout(check, this.heartbeatMs);
90
+ };
66
91
  ws.on('open', () => {
67
92
  this.attempts = 0;
68
93
  log(`[ws] connected to ${SERVER_WS()}`);
69
94
  armWatchdog();
95
+ check();
70
96
  Promise.resolve(this.onOpen()).catch((e) => log(`[onOpen] error: ${e}`));
71
97
  });
72
98
  ws.on('ping', armWatchdog);
@@ -82,7 +108,7 @@ export class WsClient {
82
108
  }
83
109
  });
84
110
  ws.on('close', () => {
85
- this.clearWatchdog();
111
+ this.clearTimers();
86
112
  // closed on purpose, or replaced by a newer socket: no reconnect from here
87
113
  if (this.closed || this.ws !== ws)
88
114
  return;
@@ -101,7 +127,7 @@ export class WsClient {
101
127
  clearTimeout(this.reconnectTimer);
102
128
  this.reconnectTimer = null;
103
129
  }
104
- this.clearWatchdog();
130
+ this.clearTimers();
105
131
  try {
106
132
  this.ws?.close();
107
133
  }
@@ -114,5 +140,12 @@ export class WsClient {
114
140
  this.pingWatchdog = null;
115
141
  }
116
142
  }
143
+ clearTimers() {
144
+ this.clearWatchdog();
145
+ if (this.heartbeat) {
146
+ clearTimeout(this.heartbeat);
147
+ this.heartbeat = null;
148
+ }
149
+ }
117
150
  }
118
151
  //# sourceMappingURL=wsClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wsClient.js","sourceRoot":"","sources":["../../src/transport/wsClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wsClient.js","sourceRoot":"","sources":["../../src/transport/wsClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kumo-cli",
3
- "version": "1.3.9",
3
+ "version": "1.3.11",
4
4
  "description": "Kumo CLI — where your code drifts between devices, softly. A pairing-based companion for the Kumo app that bridges your terminal sessions to remote devices.",
5
5
  "type": "module",
6
6
  "bin": {