sessionpipe 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli.js +346 -32
- package/dist/cli.js.map +4 -4
- package/dist/control/cli.d.ts +1 -1
- package/dist/control/cli.d.ts.map +1 -1
- package/dist/control/daemon.d.ts +18 -0
- package/dist/control/daemon.d.ts.map +1 -1
- package/dist/control/pair.d.ts +8 -2
- package/dist/control/pair.d.ts.map +1 -1
- package/dist/control/reply.d.ts +2 -0
- package/dist/control/reply.d.ts.map +1 -1
- package/dist/control/sdk.d.ts.map +1 -1
- package/dist/control/stream.d.ts +26 -0
- package/dist/control/stream.d.ts.map +1 -0
- package/dist/hook.js +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +2 -2
- package/dist/worker.js +2 -2
- package/dist/worker.js.map +2 -2
- package/package.json +1 -1
package/dist/control/cli.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const CONTROL_HELP = " sessionpipe control pair <receiver> [--folder DIR]\u2026 [--mode safe|auto] [--token T] [--name N] [--no-service]\n sessionpipe control status | keys [remove <id>] | off [<receiver>] | run\n sessionpipe wait [--session <harness>:<id>] (a session runs this in the background)";
|
|
1
|
+
export declare const CONTROL_HELP = " sessionpipe control pair <receiver> [--folder DIR]\u2026 [--mode safe|auto] [--token T] [--name N] [--no-service]\n sessionpipe control mode auto|safe (how sessions run when you message them)\n sessionpipe control status | keys [remove <id>] | off [<receiver>] | run\n sessionpipe wait [--session <harness>:<id>] (a session runs this in the background)";
|
|
2
2
|
export declare function controlMain(argv: string[], out: (s?: string) => void, distDir: string): Promise<void>;
|
|
3
3
|
export declare function waitMain(argv: string[], out: (s?: string) => void): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/control/cli.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/control/cli.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,YAAY,8XAGkE,CAAC;AA+B5F,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+G3G;AAwCD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASvF"}
|
package/dist/control/daemon.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ export interface SdkHost {
|
|
|
41
41
|
cwd: string;
|
|
42
42
|
mode: "safe" | "auto";
|
|
43
43
|
configDir?: string;
|
|
44
|
+
allowedTools?: string[];
|
|
44
45
|
}): SdkSession;
|
|
45
46
|
}
|
|
46
47
|
export interface DaemonDeps {
|
|
@@ -56,6 +57,7 @@ export interface DaemonDeps {
|
|
|
56
57
|
cwd: string;
|
|
57
58
|
env: NodeJS.ProcessEnv;
|
|
58
59
|
timeoutMs?: number;
|
|
60
|
+
onLine?: (line: string) => void;
|
|
59
61
|
}) => Promise<RunResult>;
|
|
60
62
|
sdk?: SdkHost | null;
|
|
61
63
|
/** How long to follow a live session's turn for an in-place answer (tests shorten it). */
|
|
@@ -89,6 +91,11 @@ export interface Status {
|
|
|
89
91
|
/** The machine's own caps (CONTROL.md §6 `start`): every command is the owner's,
|
|
90
92
|
* signed, but a burst of them must not start a crowd of agents. A start beyond the
|
|
91
93
|
* caps is refused `start_limit`; a headless run beyond `headless` waits its turn. */
|
|
94
|
+
/** What a receiver may let its sessions use without asking (CONTROL.md §6): its own MCP
|
|
95
|
+
* servers, by name — never a built-in tool. The receiver is where the message came
|
|
96
|
+
* from, so answering it there (publishing a page, replying) is the job; anything else
|
|
97
|
+
* still needs the person's approval rule. */
|
|
98
|
+
export declare function sessionToolsFrom(v: unknown): string[];
|
|
92
99
|
export declare const LIMITS: {
|
|
93
100
|
readonly startConcurrent: 2;
|
|
94
101
|
readonly startPerHour: 10;
|
|
@@ -115,6 +122,8 @@ export declare class ControlDaemon {
|
|
|
115
122
|
private helloTimer;
|
|
116
123
|
private helloSoon;
|
|
117
124
|
private readonly aborts;
|
|
125
|
+
/** Per receiver: the MCP servers its sessions may use unattended (its well-known). */
|
|
126
|
+
private readonly sessionTools;
|
|
118
127
|
private startsRunning;
|
|
119
128
|
private startTimes;
|
|
120
129
|
private procs;
|
|
@@ -134,6 +143,9 @@ export declare class ControlDaemon {
|
|
|
134
143
|
private onEvent;
|
|
135
144
|
private pollLoop;
|
|
136
145
|
private scheduleHello;
|
|
146
|
+
/** Read each receiver's well-known for its session tools (at start, then with every hello). */
|
|
147
|
+
private refreshSessionTools;
|
|
148
|
+
private allowedFor;
|
|
137
149
|
private helloAll;
|
|
138
150
|
private post;
|
|
139
151
|
private finish;
|
|
@@ -154,6 +166,7 @@ export declare class ControlDaemon {
|
|
|
154
166
|
private serial;
|
|
155
167
|
private headless;
|
|
156
168
|
private outcome;
|
|
169
|
+
private addKey;
|
|
157
170
|
/** Where the session's transcript ends right now: its answer starts after this. */
|
|
158
171
|
private answerFrom;
|
|
159
172
|
/** A message handed to a live session (a waiter, a Stop block) is `taken` now; the
|
|
@@ -161,6 +174,11 @@ export declare class ControlDaemon {
|
|
|
161
174
|
* sends back as the final ack's `reply` — so the person sees the answer where they
|
|
162
175
|
* asked. A turn that doesn't end within ANSWER_WAIT_MS is acked delivered without. */
|
|
163
176
|
private followAnswer;
|
|
177
|
+
/** The answer so far, sent as a `progress` ack: whole, with a rising seq, at most
|
|
178
|
+
* one in flight. Fire-and-forget — the final ack carries everything. */
|
|
179
|
+
private answerStream;
|
|
180
|
+
/** How a headless run prints: streamed where this Claude Code can, else one JSON at the end. */
|
|
181
|
+
private outputArgs;
|
|
164
182
|
private limits;
|
|
165
183
|
/** One headless Claude Code process at a time per slot; the rest wait in order. */
|
|
166
184
|
private slot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/control/daemon.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AAKjE,OAAO,EAGL,KAAK,aAAa,EAGlB,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/control/daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/control/pair.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type ControlConfig } from "./store.js";
|
|
2
2
|
export interface PairOptions {
|
|
3
3
|
url: string;
|
|
4
|
-
/** The person's sink token for this receiver (from `sink add`, or --token).
|
|
5
|
-
|
|
4
|
+
/** The person's sink token for this receiver (from `sink add`, or --token). Null:
|
|
5
|
+
* open pairing, where the receiver offers it — the person approves a link and that
|
|
6
|
+
* is the whole setup (CONTROL.md §2). */
|
|
7
|
+
token: string | null;
|
|
6
8
|
folders: string[];
|
|
7
9
|
mode: "safe" | "auto";
|
|
8
10
|
name: string;
|
|
@@ -10,10 +12,14 @@ export interface PairOptions {
|
|
|
10
12
|
fetch?: typeof fetch;
|
|
11
13
|
sleep?: (ms: number) => Promise<void>;
|
|
12
14
|
env?: NodeJS.ProcessEnv;
|
|
15
|
+
/** Called with a sessions key the receiver handed over at pairing. */
|
|
16
|
+
addSink?: (token: string) => void;
|
|
13
17
|
}
|
|
14
18
|
export declare function discover(url: string, f: typeof fetch): Promise<{
|
|
15
19
|
control: string;
|
|
16
20
|
rpId: string;
|
|
21
|
+
open: boolean;
|
|
22
|
+
events: string | null;
|
|
17
23
|
}>;
|
|
18
24
|
/** Pair (or add a key to) this machine with one receiver. Returns the saved config. */
|
|
19
25
|
export declare function pair(o: PairOptions): Promise<ControlConfig>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/control/pair.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/control/pair.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,aAAa,EAAgE,MAAM,YAAY,CAAC;AAK9G,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ;;8CAE0C;IAC1C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAUD,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,OAAO,KAAK,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAkBlF;AAED,uFAAuF;AACvF,wBAAsB,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAyFjE;AAED,gFAAgF;AAChF,wBAAsB,GAAG,CAAC,CAAC,EAAE;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,iCAYA;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAWrE;AAOD,wBAAgB,YAAY,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;EAmC3F;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,GAAG,MAAM,CA2BhG;AAED,wBAAgB,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAgB9D"}
|
package/dist/control/reply.d.ts
CHANGED
|
@@ -15,5 +15,7 @@ export declare function awaitAnswer(file: string, from: number, o: {
|
|
|
15
15
|
pollMs?: number;
|
|
16
16
|
now?: () => number;
|
|
17
17
|
sleep?: (ms: number) => Promise<void>;
|
|
18
|
+
/** The turn's text so far, each time it grows (for the progress ack). */
|
|
19
|
+
onText?: (text: string) => void;
|
|
18
20
|
}): Promise<string | null>;
|
|
19
21
|
//# sourceMappingURL=reply.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../src/control/reply.ts"],"names":[],"mappings":"AASA,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;2FAE2F;AAC3F,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqBzE;AAED;;iFAEiF;AACjF,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../src/control/reply.ts"],"names":[],"mappings":"AASA,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;2FAE2F;AAC3F,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqBzE;AAED;;iFAEiF;AACjF,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,yEAAyE;IACzE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,GACA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8BxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/control/sdk.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,aAAa,CAAC;AAQvD,wBAAsB,OAAO,CAAC,CAAC,EAAE;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1B,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/control/sdk.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,aAAa,CAAC;AAQvD,wBAAsB,OAAO,CAAC,CAAC,EAAE;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1B,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA2F1B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** One stream-json line → text to append, or a message boundary (a new assistant
|
|
2
|
+
* message after a tool step: its text starts a new paragraph). */
|
|
3
|
+
export declare function streamJsonPiece(line: string): {
|
|
4
|
+
text?: string;
|
|
5
|
+
boundary?: boolean;
|
|
6
|
+
} | null;
|
|
7
|
+
export declare class AnswerStream {
|
|
8
|
+
private readonly send;
|
|
9
|
+
private readonly everyMs;
|
|
10
|
+
private text;
|
|
11
|
+
private sent;
|
|
12
|
+
private seq;
|
|
13
|
+
private timer;
|
|
14
|
+
private inFlight;
|
|
15
|
+
private closed;
|
|
16
|
+
constructor(send: (text: string, seq: number) => Promise<void>, everyMs?: number);
|
|
17
|
+
/** A stream-json line from a headless run. */
|
|
18
|
+
feed(line: string): void;
|
|
19
|
+
/** The whole answer so far (a live session's transcript). */
|
|
20
|
+
set(text: string): void;
|
|
21
|
+
/** No more progress: the final ack follows. */
|
|
22
|
+
close(): void;
|
|
23
|
+
private schedule;
|
|
24
|
+
private flush;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/control/stream.ts"],"names":[],"mappings":"AASA;mEACmE;AACnE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAmB1F;AAED,qBAAa,YAAY;IASrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;gBAGJ,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAClD,OAAO,SAAM;IAGhC,8CAA8C;IAC9C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAaxB,6DAA6D;IAC7D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMvB,+CAA+C;IAC/C,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,QAAQ;YASF,KAAK;CAcpB"}
|
package/dist/hook.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// sessionpipe 0.
|
|
1
|
+
// sessionpipe 0.4.0 · Apache-2.0 · https://sessionpipe.org
|
|
2
2
|
|
|
3
3
|
// src/http-sink.ts
|
|
4
4
|
import { createHash, createHmac } from "node:crypto";
|
|
@@ -813,7 +813,7 @@ var OPTS = {
|
|
|
813
813
|
timeoutFor: (e) => e === "PermissionRequest" ? 130 : void 0
|
|
814
814
|
};
|
|
815
815
|
var DESKTOP_ID = /^local_[A-Za-z0-9-]{1,64}$/;
|
|
816
|
-
function claudeDirs(env = process.env, home = HOME) {
|
|
816
|
+
function claudeDirs(env = process.env, home = env.HOME || HOME) {
|
|
817
817
|
const out = [];
|
|
818
818
|
const add = (d) => {
|
|
819
819
|
if (!d) return;
|