sessionpipe-core 0.6.1 → 0.9.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.
Files changed (61) hide show
  1. package/README.md +1 -1
  2. package/dist/control.js +54 -4
  3. package/dist/control.js.map +2 -2
  4. package/dist/index.js +1690 -831
  5. package/dist/index.js.map +4 -4
  6. package/dist/schema/v1.d.ts +139 -71
  7. package/dist/schema/v1.d.ts.map +1 -1
  8. package/dist/schema.js +56 -5
  9. package/dist/schema.js.map +2 -2
  10. package/dist/src/adapters/antigravity-control.d.ts +58 -0
  11. package/dist/src/adapters/antigravity-control.d.ts.map +1 -0
  12. package/dist/src/adapters/antigravity.d.ts +1 -2
  13. package/dist/src/adapters/antigravity.d.ts.map +1 -1
  14. package/dist/src/adapters/claude-code-control.d.ts +7 -26
  15. package/dist/src/adapters/claude-code-control.d.ts.map +1 -1
  16. package/dist/src/adapters/claude-code.d.ts +10 -0
  17. package/dist/src/adapters/claude-code.d.ts.map +1 -1
  18. package/dist/src/adapters/claude-shaped.d.ts.map +1 -1
  19. package/dist/src/adapters/codex-config.d.ts +2 -2
  20. package/dist/src/adapters/codex-config.d.ts.map +1 -1
  21. package/dist/src/adapters/codex-control.d.ts +62 -0
  22. package/dist/src/adapters/codex-control.d.ts.map +1 -0
  23. package/dist/src/adapters/codex-rollout.d.ts +8 -0
  24. package/dist/src/adapters/codex-rollout.d.ts.map +1 -0
  25. package/dist/src/adapters/codex.d.ts +5 -1
  26. package/dist/src/adapters/codex.d.ts.map +1 -1
  27. package/dist/src/adapters/devin.d.ts +32 -0
  28. package/dist/src/adapters/devin.d.ts.map +1 -0
  29. package/dist/src/adapters/gemini-cli.d.ts.map +1 -1
  30. package/dist/src/adapters/headless.d.ts +70 -0
  31. package/dist/src/adapters/headless.d.ts.map +1 -0
  32. package/dist/src/adapters/index.d.ts +10 -2
  33. package/dist/src/adapters/index.d.ts.map +1 -1
  34. package/dist/src/adapters/types.d.ts +9 -1
  35. package/dist/src/adapters/types.d.ts.map +1 -1
  36. package/dist/src/control/verify.d.ts +27 -0
  37. package/dist/src/control/verify.d.ts.map +1 -1
  38. package/dist/src/index.d.ts +3 -2
  39. package/dist/src/index.d.ts.map +1 -1
  40. package/dist/src/outbox.d.ts +13 -2
  41. package/dist/src/outbox.d.ts.map +1 -1
  42. package/dist/src/paths.d.ts +3 -1
  43. package/dist/src/paths.d.ts.map +1 -1
  44. package/dist/src/privacy/filter.d.ts +2 -0
  45. package/dist/src/privacy/filter.d.ts.map +1 -1
  46. package/dist/src/privacy/index.d.ts +1 -1
  47. package/dist/src/privacy/index.d.ts.map +1 -1
  48. package/dist/src/readers/files.d.ts.map +1 -1
  49. package/dist/src/readers/git.d.ts.map +1 -1
  50. package/dist/src/readers/sqlite.d.ts +23 -0
  51. package/dist/src/readers/sqlite.d.ts.map +1 -0
  52. package/dist/src/readers/transcripts.d.ts +9 -2
  53. package/dist/src/readers/transcripts.d.ts.map +1 -1
  54. package/dist/src/short-id.d.ts +2 -0
  55. package/dist/src/short-id.d.ts.map +1 -0
  56. package/dist/src/sinks/file.d.ts.map +1 -1
  57. package/dist/src/sinks/stdout.d.ts.map +1 -1
  58. package/dist/src/types.d.ts +1 -0
  59. package/dist/src/types.d.ts.map +1 -1
  60. package/dist/src/ulid.d.ts.map +1 -1
  61. package/package.json +3 -3
@@ -1,6 +1,10 @@
1
1
  import type { Adapter, SessionFacts } from "./types.js";
2
2
  export declare const CODEX_EVENTS: readonly ["SessionStart", "UserPromptSubmit", "PreToolUse", "PostToolUse", "PermissionRequest", "Stop", "Interrupt", "SubagentStart", "SubagentStop", "PreCompact", "PostCompact", "SessionEnd"];
3
+ /** The rollout file of one thread: `<CODEX_HOME>/sessions/YYYY/MM/DD/rollout-<time>-<thread
4
+ * id>.jsonl`, newest day first. Null for an id that isn't a thread id's shape, so a
5
+ * short or odd one never matches some other session's file. */
6
+ export declare function findRollout(threadId: string, env?: NodeJS.ProcessEnv): string | null;
3
7
  export declare const codex: Adapter;
4
- /** Codex keeps no title; its first real ask stands in. */
8
+ /** Codex keeps no title; its first real ask stands in. A fork's replay is not its ask. */
5
9
  export declare function codexFacts(file: string): SessionFacts;
6
10
  //# sourceMappingURL=codex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,OAAO,EAOP,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,YAAY,kMAaf,CAAC;AAgHX,eAAO,MAAM,KAAK,EAAE,OAoLnB,CAAC;AAOF,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CA2CrD"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,OAAO,EAOP,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,YAAY,YACvB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,CACJ,CAAC;AAmFX;;gEAEgE;AAChE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAwBjG;AAeD,eAAO,MAAM,KAAK,EAAE,OAsMnB,CAAC;AAOF,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CA2DrD"}
@@ -0,0 +1,32 @@
1
+ import type { Adapter, TranscriptRead } from "./types.js";
2
+ /** The eight event names Devin accepts. One it does not know makes it drop the whole
3
+ * hooks file, so this list is exact, not a superset — see devin.test.ts. */
4
+ export declare const DEVIN_EVENTS: readonly ["SessionStart", "UserPromptSubmit", "PreToolUse", "PostToolUse", "PermissionRequest", "Stop", "PostCompaction", "SessionEnd"];
5
+ /** The first `hooks` key in the file that Devin does not accept, if there is one.
6
+ * One such key disables every hook in the file, ours and any other tool's. */
7
+ export declare function foreignEvent(file: string): string | undefined;
8
+ /** `~/.config/devin`, `$XDG_CONFIG_HOME/devin`, or `%APPDATA%\devin`. */
9
+ export declare const devinConfigDir: (env?: NodeJS.ProcessEnv) => string;
10
+ /** `~/.local/share/devin/cli`, `$XDG_DATA_HOME/devin/cli`, or `%APPDATA%\devin\cli`. */
11
+ export declare const devinDataDir: (env?: NodeJS.ProcessEnv) => string;
12
+ export declare const devin: Adapter;
13
+ /** `<database>#<session id>`: readTranscript is given a file, and Devin keeps every
14
+ * session in one database, so the session has to ride in the string. */
15
+ export declare const transcriptRef: (db: string, session: string) => string;
16
+ export declare function splitRef(ref: string | undefined): {
17
+ db: string;
18
+ session: string;
19
+ } | null;
20
+ export declare const CHAIN_SQL = "WITH RECURSIVE chain(node_id, parent_node_id, chat_message, created_at) AS (\n SELECT node_id, parent_node_id, chat_message, created_at FROM message_nodes\n WHERE session_id = ? AND node_id = (SELECT main_chain_id FROM sessions WHERE id = ?)\n UNION ALL\n SELECT m.node_id, m.parent_node_id, m.chat_message, m.created_at FROM message_nodes m\n JOIN chain c ON m.node_id = c.parent_node_id AND m.session_id = ? AND m.node_id >= ?\n)\nSELECT node_id, chat_message, created_at FROM chain ORDER BY node_id DESC LIMIT 4000";
21
+ /** The canonical chain as turns. `node_id` is the cursor: it rises along the chain and
22
+ * is stable across a resume, so a later read starts where the last one stopped.
23
+ * `role: "system"` is Cognition's own prompt (and the skills manifest, and the
24
+ * generated system_info block), never the person's words — it is skipped at every
25
+ * tier, as is `role: "tool"`. */
26
+ export declare function readDevinChain(db: string, session: string, fromLine: number): TranscriptRead;
27
+ /** `<data dir>/_versions/current` is a symlink to the running version's folder. */
28
+ export declare function devinVersion(env?: NodeJS.ProcessEnv): string | undefined;
29
+ /** The organisation the CLI is signed in to, from the user config — the only account id
30
+ * Devin keeps in a plain local file. Never the email, and never credentials.toml. */
31
+ export declare function devinAccount(env?: NodeJS.ProcessEnv): string | undefined;
32
+ //# sourceMappingURL=devin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devin.d.ts","sourceRoot":"","sources":["../../../src/adapters/devin.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EACV,OAAO,EAMP,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB;6EAC6E;AAC7E,eAAO,MAAM,YAAY,YACvB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,gBAAgB,EAChB,YAAY,CACJ,CAAC;AAWX;+EAC+E;AAC/E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK7D;AAID,yEAAyE;AACzE,eAAO,MAAM,cAAc,SAAS,MAAM,CAAC,UAAU,KAAiB,MAGY,CAAC;AAEnF,wFAAwF;AACxF,eAAO,MAAM,YAAY,SAAS,MAAM,CAAC,UAAU,KAAiB,MAG2B,CAAC;AAoBhG,eAAO,MAAM,KAAK,EAAE,OAmJnB,CAAC;AASF;yEACyE;AACzE,eAAO,MAAM,aAAa,OAAQ,MAAM,WAAW,MAAM,KAAG,MAA4B,CAAC;AACzF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOxF;AAYD,eAAO,MAAM,SAAS,khBAOyE,CAAC;AAyChG;;;;kCAIkC;AAClC,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CAwC5F;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAQrF;AAED;sFACsF;AACtF,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAIrF"}
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-cli.d.ts","sourceRoot":"","sources":["../../../src/adapters/gemini-cli.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAuD,MAAM,YAAY,CAAC;AAG/F,eAAO,MAAM,aAAa,gIAShB,CAAC;AAOX,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CA2B1F;AAED,eAAO,MAAM,SAAS,EAAE,OA+IvB,CAAC"}
1
+ {"version":3,"file":"gemini-cli.d.ts","sourceRoot":"","sources":["../../../src/adapters/gemini-cli.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAuD,MAAM,YAAY,CAAC;AAG/F,eAAO,MAAM,aAAa,YACxB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,CACJ,CAAC;AAOX,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CA2B1F;AAED,eAAO,MAAM,SAAS,EAAE,OAiJvB,CAAC"}
@@ -0,0 +1,70 @@
1
+ /** A headless turn still running after this is stopped. */
2
+ export declare const JOB_TIMEOUT_MS: number;
3
+ export type Mode = "safe" | "auto";
4
+ export declare function isExe(p: string): boolean;
5
+ /** A harness's CLI: the override the person set (`SESSIONPIPE_<NAME>`), else the first
6
+ * of `names` on PATH, else the first of `dirs` that holds one. A launchd or systemd
7
+ * service starts with a short PATH, so the installers' own folders are looked in too. */
8
+ export declare function findBinary(o: {
9
+ override?: string | undefined;
10
+ names: string[];
11
+ dirs: string[];
12
+ env?: NodeJS.ProcessEnv;
13
+ }): string | null;
14
+ /** The env every headless turn runs with: SESSIONPIPE_CONTROL_JOB tells the turn's own
15
+ * hooks that the daemon runs it, so its Stop hook never takes a message meant for a
16
+ * person's session (cli/src/hook.ts). */
17
+ export declare function jobEnv(env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
18
+ /** Whether a harness is signed in, in its own words. `loggedIn: null` means it can't
19
+ * say (too old, or it didn't answer): never a reason to refuse. */
20
+ export interface Login {
21
+ loggedIn: boolean | null;
22
+ /** claude.ai, an API key, a long-lived token… as the harness names it. */
23
+ method?: string;
24
+ subscription?: string;
25
+ }
26
+ export interface RunResult {
27
+ error?: string;
28
+ code?: number | null;
29
+ signal?: NodeJS.Signals | null;
30
+ stdout?: string | null;
31
+ tooBig?: boolean;
32
+ stderr?: string;
33
+ timedOut?: boolean;
34
+ }
35
+ export interface RunOptions {
36
+ cwd: string;
37
+ env: NodeJS.ProcessEnv;
38
+ timeoutMs?: number;
39
+ /** Streaming: each stdout line as it arrives. Only the lines `keep` names are kept
40
+ * for the RunResult (none by default), so a long stream never hits the cap. */
41
+ onLine?: (line: string) => void;
42
+ keep?: (line: string) => boolean;
43
+ }
44
+ /** Run one headless turn in its own process group, stdin closed (Codex waits on an open
45
+ * one), holding at most 1 MB of stdout. */
46
+ export declare function runHeadless(bin: string, args: string[], o: RunOptions): Promise<RunResult>;
47
+ /** A harness's output read as it streams: the session it names, the answer so far, and
48
+ * the outcome once the process is gone. One per run. */
49
+ export interface Reading {
50
+ /** One stdout line. True when the answer so far changed. */
51
+ feed(line: string): boolean;
52
+ /** The session id the harness revealed (it picks its own), or null so far. */
53
+ readonly session: string | null;
54
+ /** The answer so far, whole. */
55
+ readonly text: string;
56
+ /** How many lines were fed. */
57
+ readonly lines: number;
58
+ outcome(res: RunResult): {
59
+ failed: string;
60
+ } | {
61
+ reply: string;
62
+ };
63
+ }
64
+ /** The last few lines a harness wrote to stderr, on one line. */
65
+ export declare function stderrTail(stderr: string | undefined, n?: number): string;
66
+ /** What a run that wasn't there to ask says about the actions it was refused. */
67
+ export declare function deniedNote(names: string[], count: number): string;
68
+ /** A process that failed before or without its answer, in words. */
69
+ export declare function runFailure(label: string, res: RunResult): string | null;
70
+ //# sourceMappingURL=headless.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../../../src/adapters/headless.ts"],"names":[],"mappings":"AASA,2DAA2D;AAC3D,eAAO,MAAM,cAAc,QAAc,CAAC;AAG1C,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnC,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAQxC;AAED;;0FAE0F;AAC1F,wBAAgB,UAAU,CAAC,CAAC,EAAE;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,GAAG,IAAI,CAQhB;AAED;;0CAE0C;AAC1C,wBAAgB,MAAM,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAE9E;AAED;oEACoE;AACpE,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;oFACgF;IAChF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAClC;AAED;4CAC4C;AAC5C,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAkG1F;AAED;yDACyD;AACzD,MAAM,WAAW,OAAO;IACtB,4DAA4D;IAC5D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,SAAI,GAAG,MAAM,CAOpE;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAIvE"}
@@ -1,13 +1,21 @@
1
1
  import { antigravity } from "./antigravity.js";
2
2
  import { claudeCode } from "./claude-code.js";
3
3
  import { codex } from "./codex.js";
4
+ import { devin } from "./devin.js";
4
5
  import { geminiCli } from "./gemini-cli.js";
5
6
  import type { Adapter } from "./types.js";
6
7
  export declare const ADAPTERS: readonly Adapter[];
7
8
  export declare const adapterByName: (name: string) => Adapter | undefined;
8
9
  export { AG_STALE_PRETOOL, antigravityAnswer } from "./antigravity.js";
9
- export { claudeDirs } from "./claude-code.js";
10
+ export * as antigravityControl from "./antigravity-control.js";
11
+ export { claudeAccounts, claudeDirs, notClaudeCode } from "./claude-code.js";
10
12
  export * as claudeControl from "./claude-code-control.js";
13
+ export * as codexControl from "./codex-control.js";
14
+ export { DEVIN_EVENTS, devinConfigDir, devinDataDir, readDevinChain } from "./devin.js";
15
+ export { deniedNote, JOB_TIMEOUT_MS, jobEnv, type Login, type Reading, type RunOptions, type RunResult, runHeadless, } from "./headless.js";
16
+ /** The harnesses a control daemon here can drive headlessly (CONTROL.md §6): each whose
17
+ * CLI is installed on this machine. What `control pair` and every hello advertise. */
18
+ export declare function drivableHarnesses(env?: NodeJS.ProcessEnv): string[];
11
19
  export type { Adapter, AdapterEvent, BackfillRow, FactsState, HookCommand, HookInput, HookResult, InstallReport, SessionFacts, TranscriptRead, Turn, } from "./types.js";
12
- export { antigravity, claudeCode, codex, geminiCli };
20
+ export { antigravity, claudeCode, codex, devin, geminiCli };
13
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAAgD,CAAC;AACxF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,OAAO,GAAG,SAAkD,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,IAAI,GACL,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAAuD,CAAC;AAC/F,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,OAAO,GAAG,SAAkD,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EACL,UAAU,EACV,cAAc,EACd,MAAM,EACN,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,SAAS,EACd,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB;uFACuF;AACvF,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,EAAE,CAMhF;AACD,YAAY,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,IAAI,GACL,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC"}
@@ -35,6 +35,11 @@ export interface TranscriptRead {
35
35
  turns: Turn[];
36
36
  /** The line the cursor may advance to once every turn is delivered. */
37
37
  line: number;
38
+ /** A prompt after the last turn with no reply yet (a turn that just began). */
39
+ open?: {
40
+ user: string;
41
+ at: number;
42
+ };
38
43
  }
39
44
  export interface SessionFacts extends Partial<Session> {
40
45
  first_ask?: string;
@@ -93,9 +98,12 @@ export interface Adapter {
93
98
  installed(cmd: HookCommand, env?: NodeJS.ProcessEnv, opts?: InstallOptions): InstalledReport[];
94
99
  fromHook(input: HookInput): HookResult | null;
95
100
  readTranscript(file: string, fromLine: number): TranscriptRead;
101
+ /** `env` is the hook's own environment, not necessarily this process's: a job swept
102
+ * by a worker that a different harness's hook spawned has to resolve the harness's
103
+ * home from the job, the way `install` and `backfill` already do. */
96
104
  facts(session: {
97
105
  id: string;
98
- } & Partial<Session>, transcript: string | undefined, hints: Record<string, unknown>, state: FactsState): SessionFacts;
106
+ } & Partial<Session>, transcript: string | undefined, hints: Record<string, unknown>, state: FactsState, env?: NodeJS.ProcessEnv): SessionFacts;
99
107
  backfill(sinceMs: number, env?: NodeJS.ProcessEnv): BackfillRow[];
100
108
  }
101
109
  /** Small per-session memory the facts pass keeps under <state>/facts/. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/types.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,16 @@ export declare const TEXT_MAX = 20000;
18
18
  export declare const NOTE_MAX = 2000;
19
19
  /** A grant string. */
20
20
  export declare const GRANT_STR_MAX = 2000;
21
+ /** Attachments on a `start` (CONTROL.md §3.1): at most this many files, */
22
+ export declare const FILES_MAX = 10;
23
+ /** each at most this many bytes, */
24
+ export declare const FILE_SIZE_MAX = 26214400;
25
+ /** together at most this many, */
26
+ export declare const FILES_TOTAL_MAX = 52428800;
27
+ /** with a name of at most this many characters (after NFC) */
28
+ export declare const FILE_NAME_MAX = 200;
29
+ /** and a media type of at most this many. */
30
+ export declare const FILE_TYPE_MAX = 100;
21
31
  export declare const COMMAND_TYPE = "sessionpipe.control";
22
32
  export declare const GRANT_TYPE = "sessionpipe.grant";
23
33
  export declare const CONTROL_KINDS: readonly ["prompt", "permission.answer", "cancel", "start", "key.add"];
@@ -59,6 +69,17 @@ export interface Grant {
59
69
  exp: number;
60
70
  rp: string;
61
71
  }
72
+ /** One file attached to a `start`: the bytes live on the receiver, named by their hash. */
73
+ export interface ControlFile {
74
+ /** The file name the machine writes (NFC). */
75
+ name: string;
76
+ /** Media type, `type/subtype`. */
77
+ type: string;
78
+ /** Bytes. */
79
+ size: number;
80
+ /** SHA-256 of the bytes, base64url without padding (43 characters). */
81
+ sha256: string;
82
+ }
62
83
  export interface ControlCommand {
63
84
  v: 1;
64
85
  t: typeof COMMAND_TYPE;
@@ -79,6 +100,8 @@ export interface ControlCommand {
79
100
  };
80
101
  /** key.add only: what the person calls the device ("iPhone"), for `control keys`. */
81
102
  name?: string;
103
+ /** start only: files to download, verify and write into the new session's folder. */
104
+ files?: ControlFile[];
82
105
  nonce: string;
83
106
  iat: number;
84
107
  }
@@ -115,6 +138,8 @@ export declare function b64url(bytes: Uint8Array | ArrayBuffer): string;
115
138
  /** base64url without padding, strictly; null for anything else. */
116
139
  export declare function fromB64url(s: unknown): Uint8Array | null;
117
140
  export declare function sha256(data: string | Uint8Array): Promise<Uint8Array>;
141
+ /** Equal, compared whole: a mismatch costs the same as a match. */
142
+ export declare function sameBytes(a: Uint8Array, b: Uint8Array): boolean;
118
143
  /** A DER ECDSA signature (what WebAuthn returns) as the 64-byte r‖s WebCrypto verifies.
119
144
  * Strict: every length must match the bytes, so one signature has one encoding (a
120
145
  * P-256 signature is at most 72 bytes, so the short length form is the only one). */
@@ -160,6 +185,8 @@ export declare function parseSessionRef(ref: unknown): {
160
185
  } | null;
161
186
  /** Read the command's fields from the exact string. Structure only; no clock, no keys. */
162
187
  export declare function parseCommand(str: unknown): Parsed;
188
+ /** Why a start's `files` breaks the rules (CONTROL.md §3.1), or null when it doesn't. */
189
+ export declare function filesProblem(files: unknown): string | null;
163
190
  /** The grant's fields, read from its exact string. */
164
191
  export declare function parseGrant(str: unknown, rpId: string): {
165
192
  ok: true;
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/control/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/control/verify.ts"],"names":[],"mappings":"AAYA,mEAAmE;AACnE,eAAO,MAAM,YAAY,QAAgB,CAAC;AAC1C,4EAA4E;AAC5E,eAAO,MAAM,OAAO,QAAa,CAAC;AAClC;qEACqE;AACrE,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAChD;mCACmC;AACnC,eAAO,MAAM,mBAAmB,QAAc,CAAC;AAC/C,sFAAsF;AACtF,eAAO,MAAM,YAAY,QAAgB,CAAC;AAC1C,6EAA6E;AAC7E,eAAO,MAAM,OAAO,QAAS,CAAC;AAC9B,sCAAsC;AACtC,eAAO,MAAM,QAAQ,QAAS,CAAC;AAC/B,kCAAkC;AAClC,eAAO,MAAM,QAAQ,OAAQ,CAAC;AAC9B,sBAAsB;AACtB,eAAO,MAAM,aAAa,OAAQ,CAAC;AACnC,2EAA2E;AAC3E,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,oCAAoC;AACpC,eAAO,MAAM,aAAa,WAAa,CAAC;AACxC,kCAAkC;AAClC,eAAO,MAAM,eAAe,WAAa,CAAC;AAC1C,8DAA8D;AAC9D,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,6CAA6C;AAC7C,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAClD,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAC9C,eAAO,MAAM,aAAa,YAAI,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AACpG,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,gDAAgD;AAChD,eAAO,MAAM,KAAK,KAAK,CAAC;AACxB,eAAO,MAAM,KAAK,OAAO,CAAC;AAE1B,+FAA+F;AAC/F,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AACD,qGAAqG;AACrG,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AACD,4FAA4F;AAC5F,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,GAAG,EAAE,MAAM,CAAC;CACb;AACD,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAC5B;AACD,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,OAAO,UAAU,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AACD,2FAA2F;AAC3F,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa;IACb,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,OAAO,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,GAAG,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,kFAAkF;AAClF,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,eAAe,GACf,eAAe,GACf,cAAc,GACd,aAAa,GACb,YAAY,GACZ,WAAW,GACX,SAAS,GACT,QAAQ,GACR,UAAU,GACV,eAAe,GACf,eAAe,GACf,WAAW,GACX,eAAe,GACf,UAAU,GACV,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,MAAM,OAAO,GACf;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACxE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,mGAAmG;IACnG,IAAI,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;8DAG0D;IAC1D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3D;AAoBD,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAK9D;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAUxD;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAG3E;AASD,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAK/D;AAED;;sFAEsF;AACtF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAsB3D;AAuBD,oGAAoG;AACpG,wBAAsB,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAQjE;AAID;gGACgG;AAChG,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAYpE;AAED,KAAK,KAAK,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAGvD,qFAAqF;AACrF,wBAAsB,eAAe,CACnC,SAAS,EAAE,UAAU,EACrB,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EAC/B,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,CAAC,CAqChB;AAED,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEhF;AAED;+EAC+E;AAC/E,wBAAsB,gBAAgB,CAAC,CAAC,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,KAAK,CAAC,CAGjB;AAID,KAAK,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAQhG,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAIhE;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOpF;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAyEjD;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAsB1D;AAgBD,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAiB9G;AAgBD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CA4C3G"}
@@ -3,11 +3,12 @@ export declare const PROTOCOL_VERSION: 1;
3
3
  export * from "./adapters/index.js";
4
4
  export { type Config, DEFAULT_CONFIG, machineName, readConfig, type SinkConfig, writeConfig } from "./config.js";
5
5
  export { type EventContext, makeEvent } from "./events.js";
6
- export { Cursors, Outbox, type OutboxRef, takeLock } from "./outbox.js";
7
- export { configFile, HOME, safeId, stateDir, tilde } from "./paths.js";
6
+ export { Cursors, Outbox, type OutboxRef, processAlive, takeLock, takeNamedLock } from "./outbox.js";
7
+ export { configFile, homeDir, safeId, stateDir, tilde } from "./paths.js";
8
8
  export * from "./privacy/index.js";
9
9
  export { gitFacts, stripCredentials } from "./readers/git.js";
10
10
  export { isInjected, pairTurns, readAntigravity, readClaude, readCodex, readGemini } from "./readers/transcripts.js";
11
+ export { shortId } from "./short-id.js";
11
12
  export * from "./sinks/index.js";
12
13
  export type * from "./types.js";
13
14
  export { isUlid, ulid } from "./ulid.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,uGAAuG;AACvG,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,KAAK,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,KAAK,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACvE,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACrH,cAAc,kBAAkB,CAAC;AACjC,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,uGAAuG;AACvG,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,KAAK,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,KAAK,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1E,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
@@ -17,7 +17,11 @@ export declare class Outbox {
17
17
  /** Every session file, newest first. */
18
18
  sessions(): OutboxRef[];
19
19
  /** Read events after byte offset `from`; returns them and the new offset. Lines
20
- * are read whole; a partial trailing line (a write in progress) is left. */
20
+ * are read whole; a partial trailing line (a write in progress) is left. A read
21
+ * takes READ_CHUNK bytes at a time, not the rest of the file: a session file grows
22
+ * to tens of MB and a drain takes it in batches of 50. It reads on until the batch
23
+ * is full or the file ends, so lines that parse to nothing never stop a drain; one
24
+ * line longer than the chunk gets a larger one, up to READ_MAX. */
21
25
  read(ref: OutboxRef, from: number, maxEvents?: number): {
22
26
  events: Event[];
23
27
  offset: number;
@@ -36,6 +40,13 @@ export declare class Cursors {
36
40
  write(c: Record<string, number>): void;
37
41
  key(ref: OutboxRef): string;
38
42
  }
39
- /** A lock per session so two workers never interleave. Stale after 5 min. */
43
+ /** A lock per session so two workers never interleave. Stale once the worker that
44
+ * took it is gone (its 15 s deadline ends it without a release), or after 5 min. */
40
45
  export declare function takeLock(root: string, ref: OutboxRef, staleMs?: number): (() => void) | null;
46
+ /** A named lock under <root>/locks, held by one process at a time: the file names
47
+ * its pid. Stale once that process is gone, or after `staleMs`. */
48
+ export declare function takeNamedLock(root: string, name: string, staleMs?: number): (() => void) | null;
49
+ /** Whether the process a lock or a claimed job names is still running. A pid that
50
+ * can't be read counts as running: the age rule decides then. */
51
+ export declare function processAlive(pid: number): boolean;
41
52
  //# sourceMappingURL=outbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../../src/outbox.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,MAAM;IACL,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;IAEjC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAG5B,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM;IAG5B,OAAO,CAAC,OAAO;IAIf;yEACqE;IACrE,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM;IAc/B,OAAO,CAAC,aAAa;IAarB,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAM7C,wCAAwC;IACxC,QAAQ,IAAI,SAAS,EAAE;IAqBvB;iFAC6E;IAC7E,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IA8BxF,sEAAsE;IACtE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM;IAkB7C,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;CAO7B;AAED,0EAA0E;AAC1E,qBAAa,OAAO;IAEhB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM;IAEvB,OAAO,CAAC,IAAI;IAGZ,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO9B,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAOtC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM;CAG5B;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,SAAa,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAkBhG"}
1
+ {"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../../src/outbox.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,qBAAa,MAAM;IACL,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAjC,YAAqB,IAAI,EAAE,MAAM,EAAI;IAErC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3B;IACD,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAE3B;IACD,OAAO,CAAC,OAAO;IAIf;yEACqE;IACrE,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAa9B;IAED,OAAO,CAAC,aAAa;IAarB,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAI5C;IAED,wCAAwC;IACxC,QAAQ,IAAI,SAAS,EAAE,CAmBtB;IAED;;;;;wEAKoE;IACpE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAqCvF;IAED,sEAAsE;IACtE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,CAgB5C;IAED,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAM3B;CACF;AAED,0EAA0E;AAC1E,qBAAa,OAAO;IAEhB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAFvB,YACW,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACnB;IACJ,OAAO,CAAC,IAAI;IAGZ,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7B;IACD,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAMrC;IACD,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAE1B;CACF;AAED;qFACqF;AACrF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,SAAa,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAEhG;AAED;oEACoE;AACpE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,SAAa,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAkBnG;AAED;kEACkE;AAClE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQjD"}
@@ -1,4 +1,6 @@
1
- export declare const HOME: string;
1
+ /** The home directory, read when asked: a test that sets HOME after importing core
2
+ * (or a process whose HOME changes) gets the new one, never one cached at load. */
3
+ export declare const homeDir: () => string;
2
4
  export declare function configFile(env?: NodeJS.ProcessEnv): string;
3
5
  export declare function stateDir(env?: NodeJS.ProcessEnv): string;
4
6
  /** `~` for the home directory, as the session block writes paths. */
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/paths.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,IAAI,QAAe,CAAC;AAEjC,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKvE;AAED,wBAAgB,QAAQ,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKrE;AAED,qEAAqE;AACrE,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAa,GAAG,MAAM,CAI5D;AAED,2BAA2B;AAC3B,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,MAGjB,CAAC"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/paths.ts"],"names":[],"mappings":"AAQA;oFACoF;AACpF,eAAO,MAAM,OAAO,QAAO,MAAsB,CAAC;AAElD,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKvE;AAED,wBAAgB,QAAQ,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKrE;AAED,qEAAqE;AACrE,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,CAIjE;AAED,2BAA2B;AAC3B,eAAO,MAAM,MAAM,MAAO,MAAM,KAAG,MAGjB,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import type { Event, Tier } from "../types.js";
2
2
  /** The lowest tier that carries each known type (kept in step with schema/v1.ts). */
3
3
  export declare const TYPE_TIER: Record<string, Tier>;
4
+ /** At most `max` characters, keeping the end: an ellipsis, then the last max − 1. */
5
+ export declare function capTail(v: string, max: number): string;
4
6
  export interface FilterOptions {
5
7
  /** The person's home directory, for pii@1's `~` rewrite. */
6
8
  home?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/privacy/filter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAI/C,qFAAqF;AACrF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAkB1C,CAAC;AAwDF,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,aAAkB,GAAG,KAAK,GAAG,IAAI,CAoC1G"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/privacy/filter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAI/C,qFAAqF;AACrF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAmB1C,CAAC;AAyDF,qFAAqF;AACrF,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,aAAkB,GAAG,KAAK,GAAG,IAAI,CAqC1G"}
@@ -1,4 +1,4 @@
1
- export { type FilterOptions, filterEvent, TYPE_TIER } from "./filter.js";
1
+ export { capTail, type FilterOptions, filterEvent, TYPE_TIER } from "./filter.js";
2
2
  export { hashMachine, RULESET_PII, reducePii, reducePiiDeep } from "./pii.js";
3
3
  export { hasSecret, isSecretName, REDACTED, RULESET_SECRETS, redactDeep, redactSecrets } from "./secrets.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/privacy/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/privacy/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/readers/files.ts"],"names":[],"mappings":"AAKA,qFAAqF;AACrF,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAqB3G;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EASf,CAAC;AAEtD,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,SAAmB,GAAG,CAAC,GAAG,IAAI,CA6B9G;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,EAAE,CAuBpH"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/readers/files.ts"],"names":[],"mappings":"AAKA,qFAAqF;AACrF,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAqB3G;AAED,eAAO,MAAM,UAAU,UAAW,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EASf,CAAC;AAEtD,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,SAAmB,GAAG,CAAC,GAAG,IAAI,CA6B9G;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,EAAE,CAuBpH"}
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/readers/git.ts"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBpF;AAED,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/readers/git.ts"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBpF;AAED,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQpD"}
@@ -0,0 +1,23 @@
1
+ export type SqliteParam = string | number;
2
+ export type SqliteRow = Record<string, unknown>;
3
+ export type SqliteEngine = "auto" | "node" | "child" | "cli";
4
+ export interface SqliteOptions {
5
+ /** Busy timeout and the child's wall clock, in ms (default 2000). */
6
+ timeoutMs?: number;
7
+ /** Force one way in; "auto" tries node, then child, then cli (default). */
8
+ engine?: SqliteEngine;
9
+ /** Largest reply a child or the CLI may print (default 32 MB). */
10
+ maxBuffer?: number;
11
+ }
12
+ /** `node:sqlite` is still experimental, and Node says so on stderr the first time it is
13
+ * used. A reader has no business writing to a harness's terminal, so that one warning
14
+ * is swallowed while the module is loaded and used — nothing else is, and the original
15
+ * emitter is back before this returns. (The child path passes --no-warnings instead.)
16
+ * Exported for its test: Node emits that warning once per process. */
17
+ export declare function quiet<T>(fn: () => T): T;
18
+ export declare function inlineParams(sql: string, params: SqliteParam[]): string | null;
19
+ /** One read-only query. Null means "could not read it", never an exception. */
20
+ export declare function querySqlite(file: string, sql: string, params?: SqliteParam[], opts?: SqliteOptions): SqliteRow[] | null;
21
+ /** Is `node:sqlite` in this process? (Tests skip what they cannot set up.) */
22
+ export declare const sqliteInProcess: () => boolean;
23
+ //# sourceMappingURL=sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/readers/sqlite.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAC1C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD;;;;uEAIuE;AACvE,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAYvC;AAyFD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAsB9E;AAoBD,+EAA+E;AAC/E,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,WAAW,EAAO,EAC1B,IAAI,GAAE,aAAkB,GACvB,SAAS,EAAE,GAAG,IAAI,CAyBpB;AAED,8EAA8E;AAC9E,eAAO,MAAM,eAAe,QAAO,OAA4B,CAAC"}
@@ -6,10 +6,17 @@ interface Msg {
6
6
  line: number;
7
7
  }
8
8
  export declare function pairTurns(msgs: Msg[], endLine: number): TranscriptRead;
9
- /** Injected context the person never typed: <tag>…</tag> wrappers, HTML comments, slash-command expansions. */
9
+ /** Injected context the person never typed: <tag>…</tag> wrappers (the tag may carry
10
+ * attributes, as Claude Code's `<cross-session-message from="…">` does), HTML comments,
11
+ * slash-command expansions. */
10
12
  export declare const isInjected: (text: string) => boolean;
11
- /** Claude Code / Droid: {type:"user"|"assistant", message:{content}, timestamp, isMeta, isSidechain, origin}. */
13
+ /** Claude Code / Droid: {type:"user"|"assistant", message:{content}, timestamp, isMeta, isSidechain, origin},
14
+ * plus the person's mid-turn messages (queuedPrompt). */
12
15
  export declare function readClaude(lines: string[], from: number): TranscriptRead;
16
+ /** What Codex writes into a session as a "user" message that the person never typed:
17
+ * `<environment_context>` and the like, and the AGENTS.md it read (`# AGENTS.md
18
+ * instructions for <folder>` followed by `<INSTRUCTIONS>`). */
19
+ export declare function codexInjected(text: string): boolean;
13
20
  /** Codex rollout: {type:"response_item", payload:{type:"message", role, content:[{type:"input_text"|"output_text", text}]}}. */
14
21
  export declare function readCodex(lines: string[], from: number): TranscriptRead;
15
22
  /** Gemini CLI chat log: {type:"user"|"gemini", content|message|text, timestamp}. */
@@ -1 +1 @@
1
- {"version":3,"file":"transcripts.d.ts","sourceRoot":"","sources":["../../../src/readers/transcripts.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,UAAU,GAAG;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAuBtE;AAED,+GAA+G;AAC/G,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,OACwE,CAAC;AAyBnH,iHAAiH;AACjH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAmBxE;AAED,gIAAgI;AAChI,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAgBvE;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAcxE;AAED,gHAAgH;AAChH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAgB7E"}
1
+ {"version":3,"file":"transcripts.d.ts","sourceRoot":"","sources":["../../../src/readers/transcripts.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,UAAU,GAAG;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CA4BtE;AAED;;gCAEgC;AAChC,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,OAGjB,CAAC;AA6C1B;0DAC0D;AAC1D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CA0BxE;AAED;;gEAEgE;AAChE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,gIAAgI;AAChI,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAqBvE;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAcxE;AAED,gHAAgH;AAChH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAgB7E"}
@@ -0,0 +1,2 @@
1
+ export declare function shortId(harness: string, id: string): string;
2
+ //# sourceMappingURL=short-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"short-id.d.ts","sourceRoot":"","sources":["../../src/short-id.ts"],"names":[],"mappings":"AAQA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/sinks/file.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,QAAS,YAAW,IAAI;IAEjC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI;IACnB,QAAQ,CAAC,GAAG,EAAE,OAAO;gBAHZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,OAAO;IAEjB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CASrD"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/sinks/file.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,QAAS,YAAW,IAAI;IAEjC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI;IACnB,QAAQ,CAAC,GAAG,EAAE,OAAO;IAJvB,YACW,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,OAAO,EACnB;IACE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAQnD;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"stdout.d.ts","sourceRoot":"","sources":["../../../src/sinks/stdout.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,UAAW,YAAW,IAAI;IAEnC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI;IACnB,QAAQ,CAAC,GAAG,EAAE,OAAO;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAHb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,OAAO,EACJ,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA4C;IAElF,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CAIrD"}
1
+ {"version":3,"file":"stdout.d.ts","sourceRoot":"","sources":["../../../src/sinks/stdout.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,UAAW,YAAW,IAAI;IAEnC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI;IACnB,QAAQ,CAAC,GAAG,EAAE,OAAO;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,YACW,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,OAAO,EACJ,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA4C,EACpF;IACE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAQnD;CACF"}
@@ -16,4 +16,5 @@ export type WellKnown = z.infer<typeof S.WellKnown>;
16
16
  export type ControlMessage = z.infer<typeof S.ControlMessage>;
17
17
  export type ControlAck = z.infer<typeof S.ControlAck>;
18
18
  export type AttentionKind = z.infer<typeof S.AttentionKind>;
19
+ export type HarnessAccount = z.infer<typeof S.HarnessAccount>;
19
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,KAAK,CAAC,MAAM,iBAAiB,CAAC;AAE1C,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5C,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;AACpD,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;AACpD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,KAAK,CAAC,MAAM,iBAAiB,CAAC;AAE1C,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5C,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;AACpD,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;AACpD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ulid.d.ts","sourceRoot":"","sources":["../../src/ulid.ts"],"names":[],"mappings":"AAmBA,wBAAgB,IAAI,CAAC,GAAG,GAAE,MAAmB,GAAG,MAAM,CAiBrD;AAED,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,OAA6C,CAAC"}
1
+ {"version":3,"file":"ulid.d.ts","sourceRoot":"","sources":["../../src/ulid.ts"],"names":[],"mappings":"AAmBA,wBAAgB,IAAI,CAAC,GAAG,GAAE,MAAmB,GAAG,MAAM,CAgBrD;AAED,eAAO,MAAM,MAAM,MAAO,MAAM,KAAG,OAA6C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sessionpipe-core",
3
- "version": "0.6.1",
3
+ "version": "0.9.0",
4
4
  "description": "sessionpipe core: protocol types, harness adapters, privacy filter and redaction rulesets, outbox and sinks. Zero runtime dependencies. (published unscoped until the @sessionpipe npm org exists; the code is the same)",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -10,11 +10,11 @@
10
10
  "sideEffects": false,
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "git+https://github.com/micmmakarov/sessionpipe.git",
13
+ "url": "git+https://github.com/spacesheep-dev/sessionpipe.git",
14
14
  "directory": "packages/core"
15
15
  },
16
16
  "homepage": "https://sessionpipe.org",
17
- "bugs": "https://github.com/micmmakarov/sessionpipe/issues",
17
+ "bugs": "https://github.com/spacesheep-dev/sessionpipe/issues",
18
18
  "keywords": [
19
19
  "sessionpipe",
20
20
  "coding-agents",