@kdonev/termscape 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/agents/profiles.d.ts +10 -0
- package/dist/agents/profiles.d.ts.map +1 -1
- package/dist/agents/profiles.js +12 -0
- package/dist/agents/profiles.js.map +1 -1
- package/dist/agents/router.d.ts +3 -1
- package/dist/agents/router.d.ts.map +1 -1
- package/dist/agents/router.js +11 -3
- package/dist/agents/router.js.map +1 -1
- package/dist/agents/wiring.d.ts.map +1 -1
- package/dist/agents/wiring.js +16 -1
- package/dist/agents/wiring.js.map +1 -1
- package/dist/debug.d.ts.map +1 -1
- package/dist/debug.js +7 -0
- package/dist/debug.js.map +1 -1
- package/dist/hub.d.ts +13 -1
- package/dist/hub.d.ts.map +1 -1
- package/dist/hub.js +99 -9
- package/dist/hub.js.map +1 -1
- package/dist/hub.tgz +0 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5 -2
- package/dist/server.js.map +1 -1
- package/dist/session/manager.d.ts +5 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +7 -2
- package/dist/session/manager.js.map +1 -1
- package/dist/session/pty.d.ts +17 -2
- package/dist/session/pty.d.ts.map +1 -1
- package/dist/session/pty.js +69 -9
- package/dist/session/pty.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -216,6 +216,11 @@ back into the agent's terminal. Nothing is stored unless someone says yes.
|
|
|
216
216
|
Every agent is also given a brief explaining its address, its peers, and that
|
|
217
217
|
text arriving as `[from <address>] ...` is a colleague rather than the human.
|
|
218
218
|
|
|
219
|
+
A shell window (`shell`, `powershell`, or any profile that gets no brief) is
|
|
220
|
+
not an agent, and a message sent to one is a command: it is typed without the
|
|
221
|
+
`[from <address>]` prefix, which the shell would otherwise try to run. A shell
|
|
222
|
+
never replies, so the sender is told to read its screen for the output.
|
|
223
|
+
|
|
219
224
|
## Agent profiles
|
|
220
225
|
|
|
221
226
|
An agent CLI is configuration, not code. Built-ins are `claude`, `codex`,
|
|
@@ -434,7 +439,8 @@ could be talked into sending an attacker's text to a peer.
|
|
|
434
439
|
- Every agent gets its own bearer token. The sender of a message is taken from
|
|
435
440
|
that token, never from the arguments, so attribution cannot be forged.
|
|
436
441
|
- Messages are length-capped, rate-limited per sender, and always arrive with a
|
|
437
|
-
visible `[from <address>]` prefix
|
|
442
|
+
visible `[from <address>]` prefix - except in a shell, where they arrive as
|
|
443
|
+
the bare command and are still recorded, sender included, in the message log.
|
|
438
444
|
- Every delivery attempt is recorded with its outcome and shown in the message
|
|
439
445
|
log. Nothing is delivered invisibly.
|
|
440
446
|
- `spawn_agent` is capped per workspace, so a confused agent cannot recurse the
|
|
@@ -184,6 +184,16 @@ export declare const BUILTIN_PROFILES: Record<string, AgentProfile>;
|
|
|
184
184
|
* agent and `none` for an unwired one.
|
|
185
185
|
*/
|
|
186
186
|
export declare function briefMode(p: AgentProfile): 'flag' | 'typed' | 'none';
|
|
187
|
+
/**
|
|
188
|
+
* Whether this profile runs a plain terminal - a shell - rather than an agent.
|
|
189
|
+
*
|
|
190
|
+
* The same test as "gets no brief", and for the same reason: nothing in the
|
|
191
|
+
* window was ever told what a `[from ...]` line is. A shell does not read text
|
|
192
|
+
* typed at it, it runs it, so what is sent there is a command and is sent as
|
|
193
|
+
* one, with no attribution in front of it (issue 30). And it never answers:
|
|
194
|
+
* its output stays on its own screen, where `read_screen` is how to see it.
|
|
195
|
+
*/
|
|
196
|
+
export declare function isPlainTerminal(p: AgentProfile): boolean;
|
|
187
197
|
export declare class ProfileRegistry {
|
|
188
198
|
private profiles;
|
|
189
199
|
constructor(profiles?: Record<string, AgentProfile>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/agents/profiles.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,GAAG,EAAE,OAAO,CAAC;IACb,mCAAmC;IACnC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;IAC9B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAItB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAIlB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAa1C;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAmUzD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAEpE;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAA+B;gBAEnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAInD,oEAAoE;IACpE,MAAM,CAAC,IAAI,IAAI,eAAe;IA0C9B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIpC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY;IAMjC,IAAI,IAAI,YAAY,EAAE;IAItB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAIjC;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAI5E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAElF"}
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/agents/profiles.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,GAAG,EAAE,OAAO,CAAC;IACb,mCAAmC;IACnC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;IAC9B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAItB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAIlB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAa1C;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAmUzD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAEpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAExD;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAA+B;gBAEnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAInD,oEAAoE;IACpE,MAAM,CAAC,IAAI,IAAI,eAAe;IA0C9B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIpC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY;IAMjC,IAAI,IAAI,YAAY,EAAE;IAItB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAIjC;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAI5E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAElF"}
|
package/dist/agents/profiles.js
CHANGED
|
@@ -427,6 +427,18 @@ export const BUILTIN_PROFILES = {
|
|
|
427
427
|
export function briefMode(p) {
|
|
428
428
|
return p.brief ?? (p.mcp ? 'flag' : 'none');
|
|
429
429
|
}
|
|
430
|
+
/**
|
|
431
|
+
* Whether this profile runs a plain terminal - a shell - rather than an agent.
|
|
432
|
+
*
|
|
433
|
+
* The same test as "gets no brief", and for the same reason: nothing in the
|
|
434
|
+
* window was ever told what a `[from ...]` line is. A shell does not read text
|
|
435
|
+
* typed at it, it runs it, so what is sent there is a command and is sent as
|
|
436
|
+
* one, with no attribution in front of it (issue 30). And it never answers:
|
|
437
|
+
* its output stays on its own screen, where `read_screen` is how to see it.
|
|
438
|
+
*/
|
|
439
|
+
export function isPlainTerminal(p) {
|
|
440
|
+
return briefMode(p) === 'none';
|
|
441
|
+
}
|
|
430
442
|
export class ProfileRegistry {
|
|
431
443
|
profiles;
|
|
432
444
|
constructor(profiles) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/agents/profiles.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/agents/profiles.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/router.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { type Message } from '../protocol/index.js';
|
|
2
2
|
import type { Store } from '../db/store.js';
|
|
3
3
|
import type { SessionManager } from '../session/manager.js';
|
|
4
|
-
import type
|
|
4
|
+
import { type ProfileRegistry } from './profiles.js';
|
|
5
5
|
export interface DeliveryResult {
|
|
6
6
|
delivered: boolean;
|
|
7
7
|
deliveredAt: number | null;
|
|
8
8
|
error?: string;
|
|
9
|
+
/** The target is a shell: the text went in as a command, unattributed. */
|
|
10
|
+
shell?: boolean;
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* Delivers agent-to-agent messages.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/agents/router.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/agents/router.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAoBD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAG1B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI;IAGlD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc;CAkErE"}
|
package/dist/agents/router.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { encodeInjection, formatMessage, INJECT_SUBMIT, MESSAGE_RATE_LIMIT, } from '../protocol/index.js';
|
|
3
|
+
import { debug } from '../debug.js';
|
|
4
|
+
import { isPlainTerminal } from './profiles.js';
|
|
3
5
|
/** Simple fixed-window counter, per sender address. */
|
|
4
6
|
class RateLimiter {
|
|
5
7
|
hits = new Map();
|
|
@@ -60,6 +62,8 @@ export class MessageRouter {
|
|
|
60
62
|
};
|
|
61
63
|
this.store.insertMessage(m);
|
|
62
64
|
this.onMessage(m);
|
|
65
|
+
debug('deliver', `message ${id} ${fromAddr} -> ${toAddr} (${body.length} chars): ${state}` +
|
|
66
|
+
(error ? ` - ${error}` : ''));
|
|
63
67
|
return { delivered: state === 'delivered', deliveredAt: m.deliveredAt, error };
|
|
64
68
|
};
|
|
65
69
|
if (!this.limiter.check(fromAddr)) {
|
|
@@ -74,12 +78,16 @@ export class MessageRouter {
|
|
|
74
78
|
}
|
|
75
79
|
const profile = this.profiles.get(target.profile);
|
|
76
80
|
const mode = profile?.inject ?? 'bracketed';
|
|
81
|
+
const shell = profile ? isPlainTerminal(profile) : false;
|
|
77
82
|
try {
|
|
83
|
+
debug('deliver', `message ${id} typing into session ${target.id} (${toAddr}), inject ${mode}` +
|
|
84
|
+
(shell ? ', as a shell command' : ''));
|
|
78
85
|
// Attribution comes from the hub's own record of who is calling, never
|
|
79
|
-
// from the sender's arguments, so it cannot be spoofed.
|
|
80
|
-
|
|
86
|
+
// from the sender's arguments, so it cannot be spoofed. Not for a shell,
|
|
87
|
+
// though: it would run `[from ...]` as part of the command line.
|
|
88
|
+
this.sessions.inject(target.id, encodeInjection(shell ? body : formatMessage(fromAddr, body), mode), INJECT_SUBMIT);
|
|
81
89
|
pty.markBusy();
|
|
82
|
-
return record('delivered');
|
|
90
|
+
return { ...record('delivered'), shell };
|
|
83
91
|
}
|
|
84
92
|
catch (err) {
|
|
85
93
|
return record('failed', err.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/agents/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/agents/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../src/agents/wiring.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7D;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAOD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAyD5D;
|
|
1
|
+
{"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../src/agents/wiring.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7D;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAOD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAyD5D;AA2MD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAwHtD"}
|
package/dist/agents/wiring.js
CHANGED
|
@@ -148,6 +148,11 @@ function writeWiredFiles(input, paths) {
|
|
|
148
148
|
{ hooks: [{ type: 'command', command: hookCmd('waiting') }] },
|
|
149
149
|
],
|
|
150
150
|
Stop: [{ hooks: [{ type: 'command', command: hookCmd('idle') }] }],
|
|
151
|
+
// A fresh start, a resume or a /clear: at its prompt, with no
|
|
152
|
+
// turn behind it for Stop to have reported. Without this the hub
|
|
153
|
+
// cannot tell whether a first instruction was taken, and presses
|
|
154
|
+
// no second Enter for one that was not.
|
|
155
|
+
SessionStart: [{ hooks: [{ type: 'command', command: hookCmd('start') }] }],
|
|
151
156
|
},
|
|
152
157
|
}
|
|
153
158
|
: {}, null, 2));
|
|
@@ -275,7 +280,8 @@ always \`workspace/name\`, and every one of them appears in
|
|
|
275
280
|
attached to it, with their workspaces and the agent CLIs each has
|
|
276
281
|
installed. Call this before passing \`host\` to \`spawn_agent\`.
|
|
277
282
|
- \`send_message\` — send text to another agent. It is typed directly into
|
|
278
|
-
their terminal, as if a user had pasted it.
|
|
283
|
+
their terminal, as if a user had pasted it. Sent to a shell, it runs as a
|
|
284
|
+
command: see "Sending to a shell" below.
|
|
279
285
|
- \`list_templates\` — the saved ways of starting an agent: what CLI each one
|
|
280
286
|
runs, on what model, with what opening instruction. A template id is what
|
|
281
287
|
\`spawn_agent\` takes as its \`profile\`.
|
|
@@ -334,6 +340,15 @@ Do not loop on \`read_screen\` to watch the other agent work. It shows you a
|
|
|
334
340
|
half-typed answer at best, delivers nothing, and the wait does not end any
|
|
335
341
|
sooner for having been watched. If you only want to know whether someone is
|
|
336
342
|
still going, \`list_agents\` says idle or busy in one call.
|
|
343
|
+
|
|
344
|
+
## Sending to a shell
|
|
345
|
+
|
|
346
|
+
Some windows on the canvas are plain shells, not agents — \`list_agents\`
|
|
347
|
+
shows their profile as \`shell\` or \`powershell\`. What you send one is run as
|
|
348
|
+
a command, exactly as written, with no \`[from ...]\` prefix, so send only the
|
|
349
|
+
command. A shell never replies: its output stays on its own screen. Call
|
|
350
|
+
\`read_screen\` on it to see what the command printed, and again if it was
|
|
351
|
+
still running.
|
|
337
352
|
`;
|
|
338
353
|
}
|
|
339
354
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/agents/wiring.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/agents/wiring.ts"],"names":[],"mappings":"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"}
|
package/dist/debug.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,qEAAqE;AACrE,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAG1D;AAED,sEAAsE;AACtE,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAGtC"}
|
package/dist/debug.js
CHANGED
|
@@ -11,6 +11,13 @@
|
|
|
11
11
|
* output only the mode changes in a program's output — what it asked the
|
|
12
12
|
* terminal for, which is what decides whose job a wheel is
|
|
13
13
|
* attach attach, detach, resize, and what a replayed snapshot restores
|
|
14
|
+
* deliver messages and first instructions on their way into an agent: the
|
|
15
|
+
* route taken, the wait for a CLI to be ready, the hooks it reports,
|
|
16
|
+
* and every Enter - the first, and any sent again, and why not
|
|
17
|
+
*
|
|
18
|
+
* For a message that sits unsent in a composer, `deliver` on the machine that
|
|
19
|
+
* owns the agent is the one that matters: that hub types it, and that hub
|
|
20
|
+
* decides whether to press Enter again.
|
|
14
21
|
*
|
|
15
22
|
* A remote session is two hubs, and each logs only its own half. To see a
|
|
16
23
|
* wheel all the way to the program, set this on the canvas machine *and* on
|
package/dist/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;KAChC,KAAK,CAAC,GAAG,CAAC;KACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KAClC,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;AAEF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,OAAe;IAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,WAAW;IACzB,IAAI,GAAG;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACrB,CAAC"}
|
package/dist/hub.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ type TemplateView = Omit<AgentTemplateInfo, 'env' | 'error'> & {
|
|
|
17
17
|
envNames: string[];
|
|
18
18
|
error: string | null;
|
|
19
19
|
};
|
|
20
|
-
export declare const HUB_VERSION = "0.1.
|
|
20
|
+
export declare const HUB_VERSION = "0.1.9";
|
|
21
21
|
/** How many agents one workspace may hold, bounding runaway recursive spawns. */
|
|
22
22
|
export declare const DEFAULT_SPAWN_CAP = 12;
|
|
23
23
|
export interface HubOptions {
|
|
@@ -108,6 +108,13 @@ export declare class Hub extends EventEmitter implements AgentApi {
|
|
|
108
108
|
private everyAgent;
|
|
109
109
|
/** One address's lineage, from the same view, or null for one nobody here knows. */
|
|
110
110
|
private lineageOf;
|
|
111
|
+
/**
|
|
112
|
+
* Whether the window at `address` is a shell rather than an agent, as far
|
|
113
|
+
* as this hub can tell. Profiles are judged against this hub's own
|
|
114
|
+
* registry, which holds every built-in one; a custom profile only another
|
|
115
|
+
* machine declares reads as an agent, which is what it was before.
|
|
116
|
+
*/
|
|
117
|
+
private isShellAt;
|
|
111
118
|
/**
|
|
112
119
|
* Refuse to act on an address the viewer may not see, in exactly the words
|
|
113
120
|
* used for one that does not exist: a hidden agent must not be discoverable
|
|
@@ -564,6 +571,11 @@ export declare class Hub extends EventEmitter implements AgentApi {
|
|
|
564
571
|
delivered: boolean;
|
|
565
572
|
to: string;
|
|
566
573
|
deliveredAt: number | null;
|
|
574
|
+
} | {
|
|
575
|
+
note: string;
|
|
576
|
+
delivered: boolean;
|
|
577
|
+
to: string;
|
|
578
|
+
deliveredAt: number | null;
|
|
567
579
|
}>;
|
|
568
580
|
/**
|
|
569
581
|
* Tell every attached machine who is on the canvas.
|
package/dist/hub.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAOL,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EAEb,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,IAAI,EAGT,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAU,KAAK,EAAE,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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"}
|
package/dist/hub.js
CHANGED
|
@@ -4,7 +4,7 @@ import { readFileSync } from 'node:fs';
|
|
|
4
4
|
import { encodeInjection, INJECT_SUBMIT, MAX_PENDING_PROPOSALS, parseAddress, slugify, } from './protocol/index.js';
|
|
5
5
|
import { openDb } from './db/index.js';
|
|
6
6
|
import { Store } from './db/store.js';
|
|
7
|
-
import { briefMode, ProfileRegistry } from './agents/profiles.js';
|
|
7
|
+
import { briefMode, isPlainTerminal, ProfileRegistry } from './agents/profiles.js';
|
|
8
8
|
import { AgentDetector } from './agents/detect.js';
|
|
9
9
|
import { TemplateRegistry, overlayCanvasTemplates, validate as validateTemplate, } from './agents/templates.js';
|
|
10
10
|
import { TokenRegistry } from './agents/tokens.js';
|
|
@@ -18,9 +18,10 @@ import { PeerRegistry } from './remote/registry.js';
|
|
|
18
18
|
import { SPAWN_RELAY_TIMEOUT_MS } from './remote/peer-serve.js';
|
|
19
19
|
import { deploy } from './remote/deployer.js';
|
|
20
20
|
import { hubTarballPath } from './remote/tarball.js';
|
|
21
|
+
import { debug } from './debug.js';
|
|
21
22
|
import { paths } from './paths.js';
|
|
22
23
|
import { checkFolder, folderName } from './folders.js';
|
|
23
|
-
export const HUB_VERSION = '0.1.
|
|
24
|
+
export const HUB_VERSION = '0.1.9';
|
|
24
25
|
/**
|
|
25
26
|
* How long changes are pooled before every attached machine is told the
|
|
26
27
|
* canvas has moved on. A status change is a session change, and agents change
|
|
@@ -274,6 +275,19 @@ export class Hub extends EventEmitter {
|
|
|
274
275
|
this.uplink?.agents().find((a) => a.address === address);
|
|
275
276
|
return found ? { address, parentAddress: found.parentAddress ?? null } : null;
|
|
276
277
|
}
|
|
278
|
+
/**
|
|
279
|
+
* Whether the window at `address` is a shell rather than an agent, as far
|
|
280
|
+
* as this hub can tell. Profiles are judged against this hub's own
|
|
281
|
+
* registry, which holds every built-in one; a custom profile only another
|
|
282
|
+
* machine declares reads as an agent, which is what it was before.
|
|
283
|
+
*/
|
|
284
|
+
isShellAt(address) {
|
|
285
|
+
const profile = this.sessions.getByAddress(address)?.profile ??
|
|
286
|
+
this.peers.find(address)?.session.profile ??
|
|
287
|
+
this.uplink?.agents().find((a) => a.address === address)?.profile;
|
|
288
|
+
const p = profile ? this.profiles.get(profile) : null;
|
|
289
|
+
return p ? isPlainTerminal(p) : false;
|
|
290
|
+
}
|
|
277
291
|
/**
|
|
278
292
|
* Refuse to act on an address the viewer may not see, in exactly the words
|
|
279
293
|
* used for one that does not exist: a hidden agent must not be discoverable
|
|
@@ -1431,6 +1445,16 @@ export class Hub extends EventEmitter {
|
|
|
1431
1445
|
throw new Error('cannot send a message to yourself');
|
|
1432
1446
|
this.requireVisible(me, to);
|
|
1433
1447
|
const result = await this.deliverFrom(me.address, to, text);
|
|
1448
|
+
// A shell never answers: what it prints stays on its own screen, and
|
|
1449
|
+
// reading that screen is the only way to see it - not polling (issue 30).
|
|
1450
|
+
if (this.isShellAt(to)) {
|
|
1451
|
+
return {
|
|
1452
|
+
...result,
|
|
1453
|
+
note: `${to} is a shell, not an agent: your text was run there as a command, ` +
|
|
1454
|
+
'without a [from ...] prefix, and nothing will be sent back to you. Call ' +
|
|
1455
|
+
'read_screen on it to see the output.',
|
|
1456
|
+
};
|
|
1457
|
+
}
|
|
1434
1458
|
// Only a successful send counts as a question asked - deliverFrom throws
|
|
1435
1459
|
// on failure, so a message that never arrived does not excuse polling.
|
|
1436
1460
|
this.pollWatch.noteMessage(me.address, to);
|
|
@@ -1506,8 +1530,14 @@ export class Hub extends EventEmitter {
|
|
|
1506
1530
|
// alternative is writing into a CLI that is not reading, which is not a
|
|
1507
1531
|
// delivery at all.
|
|
1508
1532
|
const target = this.sessions.getByAddress(to);
|
|
1509
|
-
if (target)
|
|
1533
|
+
if (target) {
|
|
1534
|
+
const t0 = Date.now();
|
|
1510
1535
|
await this.awaitOpened(target.id);
|
|
1536
|
+
const waited = Date.now() - t0;
|
|
1537
|
+
if (waited > 50) {
|
|
1538
|
+
debug('deliver', `${fromAddr} -> ${to}: held ${waited}ms behind the agent's opening`);
|
|
1539
|
+
}
|
|
1540
|
+
}
|
|
1511
1541
|
const r = this.router.send(fromAddr, to, text);
|
|
1512
1542
|
if (!r.delivered)
|
|
1513
1543
|
throw new Error(r.error ?? 'delivery failed');
|
|
@@ -1518,6 +1548,10 @@ export class Hub extends EventEmitter {
|
|
|
1518
1548
|
// complete on this side too.
|
|
1519
1549
|
const id = randomUUID();
|
|
1520
1550
|
const sentAt = Date.now();
|
|
1551
|
+
debug('deliver', `message ${id} ${fromAddr} -> ${to} (${text.length} chars): ` +
|
|
1552
|
+
(where === 'remote'
|
|
1553
|
+
? `to the attached machine ${this.peers.hostIdFor(to) ?? '?'}, which types it`
|
|
1554
|
+
: 'up to the canvas, which routes it'));
|
|
1521
1555
|
try {
|
|
1522
1556
|
if (where === 'remote')
|
|
1523
1557
|
await this.peers.deliver(fromAddr, to, text);
|
|
@@ -1531,9 +1565,11 @@ export class Hub extends EventEmitter {
|
|
|
1531
1565
|
};
|
|
1532
1566
|
this.store.insertMessage(m);
|
|
1533
1567
|
this.emit('message', m);
|
|
1568
|
+
debug('deliver', `message ${id}: accepted after ${Date.now() - sentAt}ms`);
|
|
1534
1569
|
return { delivered: true, to, deliveredAt: m.deliveredAt };
|
|
1535
1570
|
}
|
|
1536
1571
|
catch (err) {
|
|
1572
|
+
debug('deliver', `message ${id}: failed - ${err.message}`);
|
|
1537
1573
|
const m = {
|
|
1538
1574
|
id, fromAddr, toAddr: to, body: text,
|
|
1539
1575
|
sentAt, deliveredAt: null, deliveryState: 'failed',
|
|
@@ -1609,7 +1645,13 @@ export class Hub extends EventEmitter {
|
|
|
1609
1645
|
* gets there.
|
|
1610
1646
|
*/
|
|
1611
1647
|
const picked = await this.pickSpawnTemplate(me, opts.profile);
|
|
1612
|
-
|
|
1648
|
+
// Attributed, except in a shell, which would run the prefix (issue 30).
|
|
1649
|
+
const childProfile = this.profiles.get(picked.agent);
|
|
1650
|
+
const instruction = !opts.prompt
|
|
1651
|
+
? null
|
|
1652
|
+
: childProfile && isPlainTerminal(childProfile)
|
|
1653
|
+
? opts.prompt
|
|
1654
|
+
: `[from ${me.address}] ${opts.prompt}`;
|
|
1613
1655
|
const opening = [picked.prompt, instruction].filter(Boolean).join('\n\n') || undefined;
|
|
1614
1656
|
// A `host` naming something beyond this hub's own machine has to go up
|
|
1615
1657
|
// the link: an attached hub holds rows for nothing but itself, and only
|
|
@@ -1797,14 +1839,20 @@ export class Hub extends EventEmitter {
|
|
|
1797
1839
|
* taken as answers to it. Such a screen is waited out until it changes.
|
|
1798
1840
|
*/
|
|
1799
1841
|
async typeWhenReady(sessionId, text) {
|
|
1842
|
+
const t0 = Date.now();
|
|
1843
|
+
debug('deliver', `${sessionId} first instruction (${text.length} chars): waiting for the CLI`);
|
|
1800
1844
|
const ready = await this.awaitReady(sessionId);
|
|
1801
1845
|
const pty = this.sessions.pty(sessionId);
|
|
1802
|
-
if (!ready || !pty?.running)
|
|
1846
|
+
if (!ready || !pty?.running) {
|
|
1847
|
+
debug('deliver', `${sessionId} first instruction dropped after ${Date.now() - t0}ms: ` +
|
|
1848
|
+
(pty?.running ? 'the CLI never drew anything' : 'the CLI exited'));
|
|
1803
1849
|
return;
|
|
1850
|
+
}
|
|
1804
1851
|
const session = this.sessions.get(sessionId);
|
|
1805
1852
|
if (!session)
|
|
1806
1853
|
return;
|
|
1807
1854
|
const mode = this.profiles.get(session.profile)?.inject ?? 'bracketed';
|
|
1855
|
+
debug('deliver', `${sessionId} first instruction: CLI ready after ${Date.now() - t0}ms, typing it`);
|
|
1808
1856
|
try {
|
|
1809
1857
|
// Awaited, so that a caller holding this session's readiness gate is not
|
|
1810
1858
|
// released until the Enter is in: a message injected between the paste
|
|
@@ -1835,9 +1883,21 @@ export class Hub extends EventEmitter {
|
|
|
1835
1883
|
// A question on screen outlasts any cap: the human answers it when they
|
|
1836
1884
|
// get to the window, and the instruction is still wanted after that.
|
|
1837
1885
|
const asking = () => !!hint && hint.test(pty.tailLines(pty.rows));
|
|
1886
|
+
/*
|
|
1887
|
+
* Quiet is not enough for an agent that reports through hooks. On kid7,
|
|
1888
|
+
* starting straight after an update, Claude Code had drawn its prompt and
|
|
1889
|
+
* gone quiet five seconds in - and was not reading yet: the instruction
|
|
1890
|
+
* typed then lost its Enter, and SessionStart only arrived after the paste.
|
|
1891
|
+
* Its first hook is the agent saying it is up, so for such an agent that
|
|
1892
|
+
* is what readiness waits for, on top of the quiet. The cap still applies,
|
|
1893
|
+
* so an agent whose hooks never run is not held forever.
|
|
1894
|
+
*/
|
|
1895
|
+
const wantsHook = !!profile?.mcp && profile.status === 'hooks';
|
|
1896
|
+
const hooked = () => !wantsHook || pty.hooksReported;
|
|
1838
1897
|
return new Promise((res) => {
|
|
1839
1898
|
let settled = false;
|
|
1840
1899
|
let seen = false;
|
|
1900
|
+
let isQuiet = false;
|
|
1841
1901
|
let quiet = null;
|
|
1842
1902
|
const done = (v) => {
|
|
1843
1903
|
if (settled)
|
|
@@ -1848,26 +1908,53 @@ export class Hub extends EventEmitter {
|
|
|
1848
1908
|
clearTimeout(quiet);
|
|
1849
1909
|
pty.off('data', onData);
|
|
1850
1910
|
pty.off('exit', onExit);
|
|
1911
|
+
pty.off('hook', onHook);
|
|
1851
1912
|
res(v);
|
|
1852
1913
|
};
|
|
1914
|
+
const settle = () => {
|
|
1915
|
+
if (asking()) {
|
|
1916
|
+
debug('deliver', `${sessionId} quiet, but a question is on screen; still waiting`);
|
|
1917
|
+
return;
|
|
1918
|
+
}
|
|
1919
|
+
if (!hooked()) {
|
|
1920
|
+
debug('deliver', `${sessionId} quiet, but its hooks have not reported yet; still waiting`);
|
|
1921
|
+
return;
|
|
1922
|
+
}
|
|
1923
|
+
debug('deliver', `${sessionId} ready: no output for ${OPENING_QUIET_MS}ms, hooks reported`);
|
|
1924
|
+
done(true);
|
|
1925
|
+
};
|
|
1853
1926
|
const onData = () => {
|
|
1854
1927
|
seen = true;
|
|
1928
|
+
isQuiet = false;
|
|
1855
1929
|
if (quiet)
|
|
1856
1930
|
clearTimeout(quiet);
|
|
1857
1931
|
quiet = setTimeout(() => {
|
|
1858
1932
|
quiet = null;
|
|
1859
|
-
|
|
1860
|
-
|
|
1933
|
+
isQuiet = true;
|
|
1934
|
+
settle();
|
|
1861
1935
|
}, OPENING_QUIET_MS);
|
|
1862
1936
|
};
|
|
1937
|
+
// A hook that lands after the quiet is what the quiet was waiting for.
|
|
1938
|
+
const onHook = () => {
|
|
1939
|
+
if (isQuiet)
|
|
1940
|
+
settle();
|
|
1941
|
+
};
|
|
1863
1942
|
const onExit = () => done(false);
|
|
1864
1943
|
const cap = setTimeout(() => {
|
|
1865
|
-
if (
|
|
1866
|
-
|
|
1944
|
+
if (asking())
|
|
1945
|
+
return;
|
|
1946
|
+
debug('deliver', `${sessionId} ${OPENING_READY_CAP_MS}ms cap reached ` +
|
|
1947
|
+
(!seen
|
|
1948
|
+
? 'with no output at all'
|
|
1949
|
+
: hooked()
|
|
1950
|
+
? 'while still drawing; typing anyway'
|
|
1951
|
+
: 'and its hooks never reported; typing anyway'));
|
|
1952
|
+
done(seen);
|
|
1867
1953
|
}, OPENING_READY_CAP_MS);
|
|
1868
1954
|
cap.unref?.();
|
|
1869
1955
|
pty.on('data', onData);
|
|
1870
1956
|
pty.on('exit', onExit);
|
|
1957
|
+
pty.on('hook', onHook);
|
|
1871
1958
|
});
|
|
1872
1959
|
}
|
|
1873
1960
|
async readScreen(sessionId, address, lines) {
|
|
@@ -1879,6 +1966,9 @@ export class Hub extends EventEmitter {
|
|
|
1879
1966
|
// readScreenAt: that path also serves peers asking on this hub's behalf
|
|
1880
1967
|
// for a caller it never authenticated, and the count belongs to the
|
|
1881
1968
|
// caller's own hub.
|
|
1969
|
+
// Not for a shell: watching its screen is how its output is read at all.
|
|
1970
|
+
if (this.isShellAt(address))
|
|
1971
|
+
return result;
|
|
1882
1972
|
const note = this.pollWatch.noteRead(me.address, address);
|
|
1883
1973
|
return note ? { ...result, note } : result;
|
|
1884
1974
|
}
|