sessionpipe 0.9.0 → 0.10.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 +25 -2
- package/dist/cli.js +4358 -3288
- package/dist/cli.js.map +4 -4
- package/dist/control/aliases.d.ts +5 -0
- package/dist/control/aliases.d.ts.map +1 -1
- package/dist/control/autoupdate.d.ts +1 -18
- package/dist/control/autoupdate.d.ts.map +1 -1
- package/dist/control/cli.d.ts +1 -1
- package/dist/control/cli.d.ts.map +1 -1
- package/dist/control/daemon.d.ts +83 -12
- package/dist/control/daemon.d.ts.map +1 -1
- package/dist/control/files.d.ts +6 -4
- package/dist/control/files.d.ts.map +1 -1
- package/dist/control/pair.d.ts +15 -23
- package/dist/control/pair.d.ts.map +1 -1
- package/dist/control/route.d.ts +1 -1
- package/dist/control/route.d.ts.map +1 -1
- package/dist/control/sdk.d.ts.map +1 -1
- package/dist/control/store.d.ts +21 -2
- package/dist/control/store.d.ts.map +1 -1
- package/dist/hook.d.ts.map +1 -1
- package/dist/hook.js +7 -1
- package/dist/hook.js.map +2 -2
- package/dist/index.js +150 -44
- package/dist/index.js.map +4 -4
- package/dist/run.d.ts.map +1 -1
- package/dist/update.d.ts +1 -7
- package/dist/update.d.ts.map +1 -1
- package/dist/worker.js +152 -46
- package/dist/worker.js.map +4 -4
- package/package.json +1 -1
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { type StartOptions } from "./store.js";
|
|
1
2
|
export interface Alias {
|
|
2
3
|
/** The harness's own session id. */
|
|
3
4
|
id: string;
|
|
4
5
|
/** The folder the session runs in (the start's). */
|
|
5
6
|
cwd: string;
|
|
6
7
|
at: string;
|
|
8
|
+
/** What the start ran with (CONTROL.md §6, Options); absent for an alias recorded
|
|
9
|
+
* before 0.10.0, whose later runs keep the machine's mode. */
|
|
10
|
+
permission?: StartOptions["permission"];
|
|
11
|
+
model?: string;
|
|
7
12
|
}
|
|
8
13
|
export type Aliases = Record<string, Alias>;
|
|
9
14
|
export declare const aliasFile: (controlDir: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../src/control/aliases.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,KAAK;IACpB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../src/control/aliases.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,KAAK;IACpB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX;mEAC+D;IAC/D,UAAU,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE5C,eAAO,MAAM,SAAS,eAAgB,MAAM,KAAG,MAA+C,CAAC;AAE/F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAcjD;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAQ7D;AAED,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIrF"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
1
|
import type { Config } from "@sessionpipe/core";
|
|
3
|
-
|
|
4
|
-
export declare const UPDATE_EXIT = 75;
|
|
2
|
+
export { supervise, UPDATE_EXIT } from "@sessionpipe/core/version";
|
|
5
3
|
export declare const DAY_MS: number;
|
|
6
4
|
/** What the daemon remembers about updating, in state/control/update.json. */
|
|
7
5
|
export interface UpdateRecord {
|
|
@@ -138,19 +136,4 @@ export declare class AutoUpdater {
|
|
|
138
136
|
private apply;
|
|
139
137
|
private installAndRestart;
|
|
140
138
|
}
|
|
141
|
-
/** The parent left behind when no service manager will restart the daemon: runs
|
|
142
|
-
* `control run` as a child with the same env and output, starts it again when it exits
|
|
143
|
-
* UPDATE_EXIT (an update) or fails (after 5 s, like the service files), and exits
|
|
144
|
-
* with it when it exits cleanly or is told to stop. */
|
|
145
|
-
export declare function supervise(o: {
|
|
146
|
-
node: string;
|
|
147
|
-
args: string[];
|
|
148
|
-
env: NodeJS.ProcessEnv;
|
|
149
|
-
log: (line: string) => void;
|
|
150
|
-
spawn?: typeof spawn;
|
|
151
|
-
exit?: (code: number) => void;
|
|
152
|
-
failDelayMs?: number;
|
|
153
|
-
}): {
|
|
154
|
-
stop: (sig?: NodeJS.Signals) => void;
|
|
155
|
-
};
|
|
156
139
|
//# sourceMappingURL=autoupdate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoupdate.d.ts","sourceRoot":"","sources":["../../src/control/autoupdate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"autoupdate.d.ts","sourceRoot":"","sources":["../../src/control/autoupdate.ts"],"names":[],"mappings":"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"}
|
package/dist/control/cli.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Tier } from "@sessionpipe/core";
|
|
2
|
-
export declare const CONTROL_HELP = " sessionpipe control pair <receiver> [--folder DIR]\u2026 [--mode safe|auto] [--tier 0-3] [--token T] [--name N] [--no-service]\n sessionpipe control mode auto|safe
|
|
2
|
+
export declare const CONTROL_HELP = " sessionpipe control pair <receiver> [--folder DIR]\u2026 [--mode safe|auto|inherit] [--tier 0-3] [--token T] [--name N] [--no-service]\n sessionpipe control mode auto|safe|inherit (how sessions run when you message them)\n sessionpipe control folders [add|remove DIR\u2026] (where sessions you message may run)\n sessionpipe control status | keys [remove <id>] | off [<receiver>] | run\n sessionpipe wait [--session <harness>:<id>] (a session runs this in the background)";
|
|
3
3
|
/** `control folders add|remove`: the new list, and a line per folder saying what became
|
|
4
4
|
* of it. A folder to add must exist and be a project, never the home folder or above
|
|
5
5
|
* it (pair's rule); folders are compared as real paths, as the daemon compares them. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/control/cli.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/control/cli.ts"],"names":[],"mappings":"AAKA,OAAO,EAWL,KAAK,IAAI,EAEV,MAAM,mBAAmB,CAAC;AAiB3B,eAAO,MAAM,YAAY,kfAIkE,CAAC;AAuD5F;;yFAEyF;AACzF,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,EAAE,EAAE,KAAK,GAAG,QAAQ,EACpB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,SAAe,GAClB;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAkCvC;AAED,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,CA6J3G;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,MAAM,EAAE,CAK3F;AAgHD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASvF;AAED;;oCAEoC;AACpC,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CASjH"}
|
package/dist/control/daemon.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { claudeControl, type HarnessAccount, type Login, type RunOptions, type RunResult } from "@sessionpipe/core";
|
|
2
|
+
import { type RunLevel, type StartPermission } from "@sessionpipe/core/control";
|
|
3
|
+
import { type DeliveryMode } from "./route.js";
|
|
2
4
|
import { type ControlConfig, type PairedReceiver } from "./store.js";
|
|
3
5
|
type Caps = claudeControl.Caps;
|
|
6
|
+
/** One harness's entry in the hello's `start` (CONTROL.md §2). */
|
|
7
|
+
export interface StartEntry {
|
|
8
|
+
permissions: StartPermission[];
|
|
9
|
+
/** What a start that names none gets: a level, or `inherit` on an inherit machine. */
|
|
10
|
+
permission: RunLevel;
|
|
11
|
+
models?: string[];
|
|
12
|
+
any_model?: boolean;
|
|
13
|
+
}
|
|
4
14
|
/** The message as the receiver carried it (control.json). */
|
|
5
15
|
export interface Carried {
|
|
6
16
|
id: string;
|
|
@@ -22,7 +32,8 @@ export interface Carried {
|
|
|
22
32
|
at: string;
|
|
23
33
|
expires_at: string;
|
|
24
34
|
}
|
|
25
|
-
/** A session the
|
|
35
|
+
/** A session the daemon holds: through the Agent SDK (sdk.ts; a fake in tests), or an
|
|
36
|
+
* ACP agent it runs (core's acp-control.ts), which says so in `mode`. */
|
|
26
37
|
export interface SdkSession {
|
|
27
38
|
/** Deliver one message; resolves with the agent's reply when the turn ends. */
|
|
28
39
|
send(text: string): Promise<{
|
|
@@ -33,12 +44,19 @@ export interface SdkSession {
|
|
|
33
44
|
close(): void;
|
|
34
45
|
readonly busy: boolean;
|
|
35
46
|
readonly lastUsed: number;
|
|
47
|
+
/** How a message through it is acked; `sdk` when unsaid. */
|
|
48
|
+
readonly mode?: DeliveryMode;
|
|
49
|
+
/** Gone for good (the process left): drop it, a later message reopens the session. */
|
|
50
|
+
readonly closed?: boolean;
|
|
36
51
|
}
|
|
37
52
|
export interface SdkHost {
|
|
38
53
|
start(o: {
|
|
39
54
|
session: string;
|
|
40
55
|
cwd: string;
|
|
41
|
-
|
|
56
|
+
/** The level the session runs at (CONTROL.md §3.1), as its `permissionMode`; none in inherit. */
|
|
57
|
+
permission: RunLevel;
|
|
58
|
+
/** The model, when the start asked for one. */
|
|
59
|
+
model?: string;
|
|
42
60
|
configDir?: string;
|
|
43
61
|
allowedTools?: string[];
|
|
44
62
|
}): SdkSession;
|
|
@@ -58,12 +76,20 @@ export interface DaemonDeps {
|
|
|
58
76
|
agy?: () => string | null;
|
|
59
77
|
/** Is Codex signed in as this process sees it? Asked before a run. */
|
|
60
78
|
codexLogin?: (bin: string) => Promise<Login>;
|
|
79
|
+
/** An ACP agent's CLI on this machine, by harness name (core's findAcpAgent; null:
|
|
80
|
+
* not installed). Absent: this daemon drives none of them. */
|
|
81
|
+
acp?: (harness: string) => {
|
|
82
|
+
bin: string;
|
|
83
|
+
args: string[];
|
|
84
|
+
} | null;
|
|
61
85
|
/** The harnesses every hello advertises (core's drivableHarnesses); by default, the
|
|
62
86
|
* ones the finders above find. */
|
|
63
87
|
harnesses?: () => string[];
|
|
64
88
|
/** The harness accounts every hello names; by default, those signed in across
|
|
65
89
|
* `claudeDirs`, read again for each hello. */
|
|
66
90
|
accounts?: () => HarnessAccount[];
|
|
91
|
+
/** The models a hello suggests for Codex; by default, its own models cache. */
|
|
92
|
+
codexModels?: () => string[];
|
|
67
93
|
run: (bin: string, args: string[], o: RunOptions) => Promise<RunResult>;
|
|
68
94
|
sdk?: SdkHost | null;
|
|
69
95
|
/** How long to follow a live session's turn for an in-place answer (tests shorten it). */
|
|
@@ -125,6 +151,8 @@ export interface Status {
|
|
|
125
151
|
nonces: number;
|
|
126
152
|
acks_pending: number;
|
|
127
153
|
delivered: Record<string, number>;
|
|
154
|
+
/** What a start may carry per harness, as the last hello said (CONTROL.md §2). */
|
|
155
|
+
start: Record<string, StartEntry>;
|
|
128
156
|
/** Null when the daemon could restart now (nothing in hand); otherwise what it holds. */
|
|
129
157
|
busy: string | null;
|
|
130
158
|
update?: unknown;
|
|
@@ -242,12 +270,14 @@ export declare class ControlDaemon {
|
|
|
242
270
|
* session's own transcript (Claude Code, Codex), the folder its start recorded, or
|
|
243
271
|
* the hooks' cwd, never the command. */
|
|
244
272
|
private place;
|
|
245
|
-
/** A Codex or
|
|
246
|
-
* id and the start's folder); one the hooks reported is Codex's
|
|
247
|
-
* `session_meta` cwd) or, for
|
|
273
|
+
/** A Codex, Antigravity or ACP-driven session: one the daemon started is its alias
|
|
274
|
+
* (the harness's id and the start's folder); one the hooks reported is Codex's
|
|
275
|
+
* rollout (its `session_meta` cwd) or, for the others, the folder its hooks gave. */
|
|
248
276
|
private placeDriven;
|
|
249
277
|
/** The folder the worker recorded for a session from its hooks (run.ts, facts). */
|
|
250
278
|
private factsCwd;
|
|
279
|
+
/** A driven harness, as the person knows it. */
|
|
280
|
+
private label;
|
|
251
281
|
private aliasOf;
|
|
252
282
|
/** The harness revealed its own id for a session the command named: from now on that
|
|
253
283
|
* is where the command's id leads (aliases.ts). Written before anything else reads it. */
|
|
@@ -257,13 +287,42 @@ export declare class ControlDaemon {
|
|
|
257
287
|
private driver;
|
|
258
288
|
/** Who is signed in here, for hello. A bad .claude.json names nobody, never fails a hello. */
|
|
259
289
|
private accounts;
|
|
260
|
-
/** The harnesses this machine can run a message in, for hello
|
|
290
|
+
/** The harnesses this machine can run a message in, for hello: at most
|
|
291
|
+
* HELLO_HARNESSES_MAX, the three with their own drivers first. */
|
|
261
292
|
private harnesses;
|
|
293
|
+
/** The caps a new Claude Code session is started with: the Agent SDK's when the
|
|
294
|
+
* daemon has it, else what this machine's `claude --help` lists. */
|
|
295
|
+
private startCaps;
|
|
296
|
+
/** What a start may carry for one harness here (CONTROL.md §2 `start`), capped by the
|
|
297
|
+
* machine's mode; null when it takes neither option, or when a start without one
|
|
298
|
+
* would be refused (an auto machine whose Claude Code has no auto mode). */
|
|
299
|
+
private startEntry;
|
|
300
|
+
/** The hello's `start`: an entry for each harness it lists that takes options. */
|
|
301
|
+
private startOptions;
|
|
302
|
+
/** The options a start runs with, or the refusal (CONTROL.md §5 step 8): a level the
|
|
303
|
+
* machine offers for that harness, never above its mode, and a model only where the
|
|
304
|
+
* harness takes one. Never another level or model than the one asked for. */
|
|
305
|
+
private startChoice;
|
|
306
|
+
/** Why a harness has no such level here, though the machine's mode would allow it. */
|
|
307
|
+
private levelMissing;
|
|
308
|
+
/** The options a later run of a session gets: the narrower of what its start recorded
|
|
309
|
+
* and what the machine's mode means now, with the recorded model. A session with no
|
|
310
|
+
* record (the hooks reported it, or it predates 0.10.0) runs at the machine's mode. */
|
|
311
|
+
private laterOptions;
|
|
312
|
+
/** What the acks carry as `applied`: the model only when one was asked for. */
|
|
313
|
+
private applied;
|
|
314
|
+
/** A failed run that asked for a model, put down to the model: acked with code `model`. */
|
|
315
|
+
private failedRun;
|
|
316
|
+
/** The real folder a command or a session names, when it is one this machine allows:
|
|
317
|
+
* absolute, or under this user's home as `~/…` (a start's `cwd` may say either). */
|
|
262
318
|
private allowed;
|
|
263
319
|
private permission;
|
|
264
320
|
private cancel;
|
|
265
321
|
private view;
|
|
266
322
|
private prompt;
|
|
323
|
+
/** One message through a held session; one whose process left is let go of, so the
|
|
324
|
+
* next message reopens the session instead of finding it closed. */
|
|
325
|
+
private sendHeld;
|
|
267
326
|
/** A turn message whose Stop never took it: route again, now that it isn't mid-turn. */
|
|
268
327
|
private reroute;
|
|
269
328
|
/** Jobs for one session (and its copy) run one at a time, in order. */
|
|
@@ -296,8 +355,6 @@ export declare class ControlDaemon {
|
|
|
296
355
|
/** The answer so far, sent as a `progress` ack: whole, with a rising seq, at most
|
|
297
356
|
* one in flight. Fire-and-forget — the final ack carries everything. */
|
|
298
357
|
private answerStream;
|
|
299
|
-
/** How a headless run prints: streamed where this Claude Code can, else one JSON at the end. */
|
|
300
|
-
private outputArgs;
|
|
301
358
|
/** Mark a session as held by one of the daemon's runs while `fn` runs. */
|
|
302
359
|
private owning;
|
|
303
360
|
private limits;
|
|
@@ -305,13 +362,27 @@ export declare class ControlDaemon {
|
|
|
305
362
|
private slot;
|
|
306
363
|
private startSession;
|
|
307
364
|
private startOne;
|
|
365
|
+
/** A Claude Code session the daemon starts: what it runs with, for its later runs. */
|
|
366
|
+
private recordStart;
|
|
308
367
|
/** A new Codex or Antigravity session: the harness picks its id, and the start's id
|
|
309
368
|
* becomes its name (aliases.ts) as soon as the run says what it picked. */
|
|
310
369
|
private startDriven;
|
|
311
|
-
/** A
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
370
|
+
/** A new session of an ACP agent (CONTROL.md §6): the agent's CLI as a child the
|
|
371
|
+
* daemon keeps, the start's id as the session's name the moment the agent names its
|
|
372
|
+
* own (aliases.ts), and the first turn through it. Acked `delivered` in `api` mode;
|
|
373
|
+
* later messages go through the same process while it is held. */
|
|
374
|
+
private startAcp;
|
|
375
|
+
/** The next message for an ACP-driven session no process holds: the agent run again
|
|
376
|
+
* and the session reopened in it (`session/load`), then held like a new one. Acked
|
|
377
|
+
* `resume`, as any cold start. An agent that can't reopen one is `unsupported`. */
|
|
378
|
+
private resumeAcp;
|
|
379
|
+
private openAcp;
|
|
380
|
+
/** A start's or a prompt's text, with its files (CONTROL.md §6) fetched, checked and
|
|
381
|
+
* written under `cwd` first (a prompt's in a folder of its own, named by its signed
|
|
382
|
+
* nonce) — every check in §5 passed and the nonce is recorded by now, so the `taken`
|
|
383
|
+
* ack is out and the download may take its time. Null when a file failed: the command
|
|
384
|
+
* is acked `failed` with code `file`, nothing is kept, no session starts and no
|
|
385
|
+
* message is delivered. */
|
|
315
386
|
private attached;
|
|
316
387
|
private closeIdleSdk;
|
|
317
388
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/control/daemon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/control/daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/control/files.d.ts
CHANGED
|
@@ -21,11 +21,13 @@ export interface FetchOptions {
|
|
|
21
21
|
* Every failure is a FileProblem naming the file. */
|
|
22
22
|
export declare function fetchFiles(files: ControlFile[], o: FetchOptions): Promise<Fetched[]>;
|
|
23
23
|
/**
|
|
24
|
-
* Write the checked files to <cwd>/.sessionpipe/files/<session>/
|
|
25
|
-
*
|
|
26
|
-
*
|
|
24
|
+
* Write the checked files to <cwd>/.sessionpipe/files/<session>/ (a start's, which must
|
|
25
|
+
* be new) or <session>/<message>/ (a prompt's: the session's folder may be there, the
|
|
26
|
+
* message's must be new), and answer their paths relative to cwd. `cwd` is already
|
|
27
|
+
* resolved (realpath) and allowed. On any problem everything written here is removed
|
|
28
|
+
* and FileProblem thrown.
|
|
27
29
|
*/
|
|
28
|
-
export declare function writeFiles(cwd: string, session: string, files: Fetched[]): string[];
|
|
30
|
+
export declare function writeFiles(cwd: string, session: string, files: Fetched[], message?: string): string[];
|
|
29
31
|
/** 183402 → "179 KB", 1258291 → "1.2 MB" (units of 1024). */
|
|
30
32
|
export declare function humanSize(n: number): string;
|
|
31
33
|
/** The command's text followed by the list of files the session can read. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/control/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/control/files.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,QAAa,CAAC;AAE3C,wFAAwF;AACxF,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAEzC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAKD;sDACsD;AACtD,wBAAsB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAa1F;AA+CD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAiCrG;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAG/E"}
|
package/dist/control/pair.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type HarnessAccount } from "@sessionpipe/core";
|
|
2
|
-
import {
|
|
2
|
+
import type { Exec } from "@sessionpipe/core/service";
|
|
3
|
+
import * as core from "@sessionpipe/core/service";
|
|
4
|
+
import { type ControlConfig, type ControlMode } from "./store.js";
|
|
3
5
|
export interface PairOptions {
|
|
4
6
|
url: string;
|
|
5
7
|
/** The person's sink token for this receiver (from `sink add`, or --token). Null:
|
|
@@ -7,7 +9,7 @@ export interface PairOptions {
|
|
|
7
9
|
* is the whole setup (CONTROL.md §2). */
|
|
8
10
|
token: string | null;
|
|
9
11
|
folders: string[];
|
|
10
|
-
mode:
|
|
12
|
+
mode: ControlMode;
|
|
11
13
|
name: string;
|
|
12
14
|
out: (s: string) => void;
|
|
13
15
|
fetch?: typeof fetch;
|
|
@@ -28,8 +30,15 @@ export declare function discover(url: string, f: typeof fetch): Promise<{
|
|
|
28
30
|
control: string;
|
|
29
31
|
rpId: string;
|
|
30
32
|
open: boolean;
|
|
33
|
+
inherit: boolean;
|
|
31
34
|
events: string | null;
|
|
32
35
|
}>;
|
|
36
|
+
/** Why a machine won't run in inherit mode with this receiver (CONTROL.md §2): a
|
|
37
|
+
* receiver that doesn't know the mode would show the machine as safe. */
|
|
38
|
+
export declare const inheritRefused: (url: string) => string;
|
|
39
|
+
/** The paired receivers that don't say they show inherit mode (`control.inherit` in
|
|
40
|
+
* their well-known file), with why. A receiver that can't be read counts as one. */
|
|
41
|
+
export declare function withoutInherit(urls: string[], f?: typeof fetch): Promise<string[]>;
|
|
33
42
|
/** Pair (or add a key to) this machine with one receiver. Returns the saved config. */
|
|
34
43
|
export declare function pair(o: PairOptions): Promise<ControlConfig>;
|
|
35
44
|
/** `control off [<receiver>]`: tell the receiver, forget its token and keys. */
|
|
@@ -40,32 +49,15 @@ export declare function off(o: {
|
|
|
40
49
|
env?: NodeJS.ProcessEnv;
|
|
41
50
|
}): Promise<void | ControlConfig>;
|
|
42
51
|
export declare function removeKey(id: string, env?: NodeJS.ProcessEnv): number;
|
|
43
|
-
|
|
44
|
-
* (75, autoupdate.ts) to come back on the new code. SESSIONPIPE_SERVICE tells the
|
|
45
|
-
* daemon which manager that is (files from before it are recognized without it). */
|
|
52
|
+
export { type Exec, ensureLinger } from "@sessionpipe/core/service";
|
|
46
53
|
export declare function serviceFiles(o: {
|
|
47
54
|
node: string;
|
|
48
55
|
cli: string;
|
|
49
56
|
logDir: string;
|
|
50
57
|
home?: string;
|
|
51
58
|
}): {
|
|
52
|
-
plist:
|
|
53
|
-
|
|
54
|
-
body: string;
|
|
55
|
-
};
|
|
56
|
-
unit: {
|
|
57
|
-
file: string;
|
|
58
|
-
body: string;
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
export type Exec = (cmd: string, args: string[]) => string;
|
|
62
|
-
/** A systemd user service stops when its person's last login ends — closing the ssh
|
|
63
|
-
* session to a lab workstation or a cloud machine stopped the daemon with it — unless
|
|
64
|
-
* the user lingers. `loginctl enable-linger` for yourself needs no root on systemd's
|
|
65
|
-
* default policy; where it does, say the one command that does it. */
|
|
66
|
-
export declare function ensureLinger(user: string, exec?: Exec): {
|
|
67
|
-
on: boolean;
|
|
68
|
-
note: string;
|
|
59
|
+
plist: core.ServiceFile;
|
|
60
|
+
unit: core.ServiceFile;
|
|
69
61
|
};
|
|
70
62
|
/** Write and start the service for this platform. Returns what it did, in words. */
|
|
71
63
|
export declare function installService(o: {
|
|
@@ -75,5 +67,5 @@ export declare function installService(o: {
|
|
|
75
67
|
exec?: Exec;
|
|
76
68
|
platform?: NodeJS.Platform;
|
|
77
69
|
}): string;
|
|
78
|
-
export declare function uninstallService(
|
|
70
|
+
export declare function uninstallService(_env?: NodeJS.ProcessEnv): void;
|
|
79
71
|
//# sourceMappingURL=pair.d.ts.map
|
|
@@ -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":"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"}
|
package/dist/control/route.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export type Route = {
|
|
|
25
25
|
refused: "no_session";
|
|
26
26
|
};
|
|
27
27
|
/** The harnesses the daemon can run a turn of by itself: resume an idle session, start a
|
|
28
|
-
* new one (`claude -p`, `codex exec`, `agy -p
|
|
28
|
+
* new one (`claude -p`, `codex exec`, `agy -p`, or any ACP agent as its client). */
|
|
29
29
|
export declare const HEADLESS: Set<string>;
|
|
30
30
|
/** Where a prompt (or a start) goes. Never two writers on one transcript: a live
|
|
31
31
|
* session gets a fork, never a resume. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/control/route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/control/route.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEjF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,GAAG,EAAE,OAAO,CAAC;IACb,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,IAAI,EAAE,OAAO,CAAC;IACd,0FAA0F;IAC1F,KAAK,EAAE,OAAO,CAAC;IACf,oFAAoF;IACpF,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,MAAM,KAAK,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAEjG;qFACqF;AACrF,eAAO,MAAM,QAAQ,aAAgF,CAAC;AAEtG;2CAC2C;AAC3C,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,CAejD;AAED,2EAA2E;AAC3E,wBAAgB,QAAQ,CACtB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GACd,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAiBxE;AAED;+BAC+B;AAC/B;;qFAEqF;AACrF,eAAO,MAAM,eAAe,6KACgJ,CAAC;AAE7K,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED;;;;mDAImD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/control/sdk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/control/sdk.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,aAAa,CAAC;AAmBvD,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,CA8F1B"}
|
package/dist/control/store.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type TrustedKey } from "@sessionpipe/core/control";
|
|
1
|
+
import { type RunLevel, type TrustedKey } from "@sessionpipe/core/control";
|
|
2
2
|
import { type Runner, type SecretStore, type StoreName } from "../secrets.js";
|
|
3
3
|
export interface PairedReceiver {
|
|
4
4
|
/** The receiver's origin, as the person typed it. */
|
|
@@ -18,11 +18,16 @@ export interface PairedReceiver {
|
|
|
18
18
|
})[];
|
|
19
19
|
paired_at: string;
|
|
20
20
|
}
|
|
21
|
+
/** How sessions run when a message arrives (CONTROL.md §2): the person's choice at
|
|
22
|
+
* this machine, never a receiver's. */
|
|
23
|
+
export declare const MODES: readonly ["safe", "auto", "inherit"];
|
|
24
|
+
export type ControlMode = (typeof MODES)[number];
|
|
25
|
+
export declare const parseMode: (m: unknown) => ControlMode | null;
|
|
21
26
|
export interface ControlConfig {
|
|
22
27
|
name: string;
|
|
23
28
|
/** Folders sessions may run in; compared on whole path segments, real paths. */
|
|
24
29
|
folders: string[];
|
|
25
|
-
mode:
|
|
30
|
+
mode: ControlMode;
|
|
26
31
|
receivers: PairedReceiver[];
|
|
27
32
|
/** Caps this machine keeps whatever a receiver sends (defaults in daemon.ts,
|
|
28
33
|
* LIMITS): new sessions running at once and per hour, headless Claude Code runs
|
|
@@ -76,7 +81,18 @@ export interface Ack {
|
|
|
76
81
|
code?: string;
|
|
77
82
|
detail?: string;
|
|
78
83
|
reply?: string;
|
|
84
|
+
/** A start's taken and delivered: what it ran with (CONTROL.md §6, Options). */
|
|
85
|
+
applied?: StartOptions;
|
|
79
86
|
}
|
|
87
|
+
/** What a session the daemon started runs with: its level and, when one was asked for,
|
|
88
|
+
* its model. Recorded at the start; every later run of the session reads it. */
|
|
89
|
+
export interface StartOptions {
|
|
90
|
+
/** A level, or `inherit`: started on an inherit machine with none named. */
|
|
91
|
+
permission: RunLevel;
|
|
92
|
+
model?: string;
|
|
93
|
+
}
|
|
94
|
+
/** A recorded entry as read back from disk, or null when it isn't one. */
|
|
95
|
+
export declare function startOptionsOf(v: unknown): StartOptions | null;
|
|
80
96
|
/** Acks not yet accepted: appended before they are sent, rewritten when sent, so a
|
|
81
97
|
* daemon restart re-sends rather than forgets (every message is acked exactly once
|
|
82
98
|
* with a final outcome; a duplicate is tolerated by the receiver). */
|
|
@@ -90,6 +106,9 @@ export declare class AckOutbox {
|
|
|
90
106
|
export interface DaemonState {
|
|
91
107
|
/** Original session → the fork its messages go to. */
|
|
92
108
|
copies: Record<string, string>;
|
|
109
|
+
/** Claude Code sessions the daemon started → what they run with (Codex and
|
|
110
|
+
* Antigravity keep theirs in the alias entry, aliases.ts). */
|
|
111
|
+
started: Record<string, StartOptions>;
|
|
93
112
|
}
|
|
94
113
|
export declare function readState(file: string): DaemonState;
|
|
95
114
|
export declare const writeState: (file: string, s: DaemonState) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/control/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/control/store.ts"],"names":[],"mappings":"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"}
|
package/dist/hook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":";AAkBA,iFAAiF;AACjF,MAAM,WAAW,MAAM;IACrB,KAAK,IAAI,MAAM,CAAC;IAChB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;0FAE0F;AAC1F,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":";AAkBA,iFAAiF;AACjF,MAAM,WAAW,MAAM;IACrB,KAAK,IAAI,MAAM,CAAC;IAChB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;0FAE0F;AAC1F,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6NhG"}
|
package/dist/hook.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// sessionpipe 0.
|
|
2
|
+
// sessionpipe 0.10.0 · Apache-2.0 · https://sessionpipe.org
|
|
3
3
|
|
|
4
4
|
// src/hook.ts
|
|
5
5
|
import { spawn } from "node:child_process";
|
|
@@ -106,12 +106,18 @@ async function hookMain(argv, env, io) {
|
|
|
106
106
|
// (run.ts sweepJobs runs any stale job file, whatever spawned the worker).
|
|
107
107
|
"APPDATA",
|
|
108
108
|
"CLAUDE_CODE_HOST_SESSION_ID",
|
|
109
|
+
// session.attended: Claude Code's own word, and SESSIONPIPE_CONTROL_JOB below, the
|
|
110
|
+
// control daemon's mark on a turn it runs for a person's message.
|
|
111
|
+
"CLAUDE_CODE_SESSION_ATTENDED",
|
|
109
112
|
"CLAUDE_CONFIG_DIR",
|
|
110
113
|
"CLAUDE_PROJECT_DIR",
|
|
111
114
|
"CODEX_HOME",
|
|
112
115
|
// Devin's payload names no folder at all; this is the only thing that does.
|
|
113
116
|
"DEVIN_PROJECT_DIR",
|
|
114
117
|
"GEMINI_CLI_HOME",
|
|
118
|
+
"SESSIONPIPE_CONTROL_JOB",
|
|
119
|
+
// The launcher a script named for a session it starts (PROTOCOL.md §3 launched_by).
|
|
120
|
+
"SESSIONPIPE_LAUNCHED_BY",
|
|
115
121
|
// Devin's config file and session store are both resolved through these.
|
|
116
122
|
"XDG_CONFIG_HOME",
|
|
117
123
|
"XDG_DATA_HOME"
|