@pentoshi/clai 3.9.4 → 3.9.6

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 (99) hide show
  1. package/dist/agent/context-manager.d.ts +4 -4
  2. package/dist/agent/context-manager.js +4 -4
  3. package/dist/agent/reliability-policy.d.ts +2 -2
  4. package/dist/agent/request-budget.d.ts +1 -1
  5. package/dist/agent/request-budget.js +1 -1
  6. package/dist/agent/request-budget.js.map +1 -1
  7. package/dist/app/controllers/session-controller.d.ts +0 -8
  8. package/dist/app/controllers/session-controller.js +4 -20
  9. package/dist/app/controllers/session-controller.js.map +1 -1
  10. package/dist/index.js +8 -21
  11. package/dist/index.js.map +1 -1
  12. package/dist/repl.js +0 -10
  13. package/dist/repl.js.map +1 -1
  14. package/dist/store/config.js +1 -1
  15. package/dist/store/config.js.map +1 -1
  16. package/dist/tools/definitions.js +0 -95
  17. package/dist/tools/definitions.js.map +1 -1
  18. package/dist/tools/jobs.js +70 -2
  19. package/dist/tools/jobs.js.map +1 -1
  20. package/dist/tools/registry.js +0 -4
  21. package/dist/tools/registry.js.map +1 -1
  22. package/dist/tui-v2/bootstrap/composition-root.d.ts +0 -3
  23. package/dist/tui-v2/bootstrap/composition-root.js +0 -3
  24. package/dist/tui-v2/bootstrap/composition-root.js.map +1 -1
  25. package/dist/tui-v2/bootstrap/start-tui-v2.js +0 -10
  26. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  27. package/dist/types.d.ts +0 -5
  28. package/dist/version.generated.d.ts +2 -2
  29. package/dist/version.generated.js +2 -2
  30. package/package.json +1 -1
  31. package/dist/app/adapters/current-interactive-sessions-adapter.d.ts +0 -4
  32. package/dist/app/adapters/current-interactive-sessions-adapter.js +0 -11
  33. package/dist/app/adapters/current-interactive-sessions-adapter.js.map +0 -1
  34. package/dist/app/controllers/cancel-all-result.d.ts +0 -8
  35. package/dist/app/controllers/cancel-all-result.js +0 -32
  36. package/dist/app/controllers/cancel-all-result.js.map +0 -1
  37. package/dist/app/ports/interactive-sessions-port.d.ts +0 -21
  38. package/dist/app/ports/interactive-sessions-port.js +0 -9
  39. package/dist/app/ports/interactive-sessions-port.js.map +0 -1
  40. package/dist/interactive-session/artifact-writer.d.ts +0 -54
  41. package/dist/interactive-session/artifact-writer.js +0 -161
  42. package/dist/interactive-session/artifact-writer.js.map +0 -1
  43. package/dist/interactive-session/cleanup.d.ts +0 -36
  44. package/dist/interactive-session/cleanup.js +0 -157
  45. package/dist/interactive-session/cleanup.js.map +0 -1
  46. package/dist/interactive-session/config.d.ts +0 -118
  47. package/dist/interactive-session/config.js +0 -141
  48. package/dist/interactive-session/config.js.map +0 -1
  49. package/dist/interactive-session/input-policy.d.ts +0 -41
  50. package/dist/interactive-session/input-policy.js +0 -163
  51. package/dist/interactive-session/input-policy.js.map +0 -1
  52. package/dist/interactive-session/manager.d.ts +0 -107
  53. package/dist/interactive-session/manager.js +0 -927
  54. package/dist/interactive-session/manager.js.map +0 -1
  55. package/dist/interactive-session/output-store.d.ts +0 -81
  56. package/dist/interactive-session/output-store.js +0 -239
  57. package/dist/interactive-session/output-store.js.map +0 -1
  58. package/dist/interactive-session/output-view.d.ts +0 -20
  59. package/dist/interactive-session/output-view.js +0 -142
  60. package/dist/interactive-session/output-view.js.map +0 -1
  61. package/dist/interactive-session/recovery-journal.d.ts +0 -55
  62. package/dist/interactive-session/recovery-journal.js +0 -115
  63. package/dist/interactive-session/recovery-journal.js.map +0 -1
  64. package/dist/interactive-session/registry.d.ts +0 -59
  65. package/dist/interactive-session/registry.js +0 -170
  66. package/dist/interactive-session/registry.js.map +0 -1
  67. package/dist/interactive-session/runtime.d.ts +0 -107
  68. package/dist/interactive-session/runtime.js +0 -191
  69. package/dist/interactive-session/runtime.js.map +0 -1
  70. package/dist/interactive-session/session-runtime.d.ts +0 -50
  71. package/dist/interactive-session/session-runtime.js +0 -63
  72. package/dist/interactive-session/session-runtime.js.map +0 -1
  73. package/dist/interactive-session/streaming-redactor.d.ts +0 -53
  74. package/dist/interactive-session/streaming-redactor.js +0 -263
  75. package/dist/interactive-session/streaming-redactor.js.map +0 -1
  76. package/dist/interactive-session/telemetry.d.ts +0 -30
  77. package/dist/interactive-session/telemetry.js +0 -47
  78. package/dist/interactive-session/telemetry.js.map +0 -1
  79. package/dist/interactive-session/transport-factory.d.ts +0 -8
  80. package/dist/interactive-session/transport-factory.js +0 -16
  81. package/dist/interactive-session/transport-factory.js.map +0 -1
  82. package/dist/interactive-session/transport-node-pty.d.ts +0 -49
  83. package/dist/interactive-session/transport-node-pty.js +0 -219
  84. package/dist/interactive-session/transport-node-pty.js.map +0 -1
  85. package/dist/interactive-session/transport-pipe.d.ts +0 -9
  86. package/dist/interactive-session/transport-pipe.js +0 -215
  87. package/dist/interactive-session/transport-pipe.js.map +0 -1
  88. package/dist/interactive-session/transport.d.ts +0 -104
  89. package/dist/interactive-session/transport.js +0 -89
  90. package/dist/interactive-session/transport.js.map +0 -1
  91. package/dist/interactive-session/types.d.ts +0 -254
  92. package/dist/interactive-session/types.js +0 -191
  93. package/dist/interactive-session/types.js.map +0 -1
  94. package/dist/os/process-identity.d.ts +0 -46
  95. package/dist/os/process-identity.js +0 -147
  96. package/dist/os/process-identity.js.map +0 -1
  97. package/dist/tools/interactive-session-tools.d.ts +0 -11
  98. package/dist/tools/interactive-session-tools.js +0 -261
  99. package/dist/tools/interactive-session-tools.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/interactive-session/manager.ts"],"names":[],"mappings":"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"}
@@ -1,81 +0,0 @@
1
- /**
2
- * Cursor-addressed output retention.
3
- *
4
- * Cursors address the session's canonical safe byte stream — redacted bytes, not
5
- * raw child bytes and not a rendered view — so plain and encoded views share one
6
- * stable source and `nextCursor` stays independent of rendered length.
7
- *
8
- * Appends are serialized in callback observation order and never ordered by wall
9
- * clock. Ingestion deliberately takes no session mutation lock so a chatty child
10
- * cannot block Close.
11
- */
12
- import { type Unsubscribe } from "./runtime.js";
13
- import { type ArtifactReference, type OutputPage, type OutputStream, type OutputView, type SessionOperation, type StableError } from "./types.js";
14
- /** Durable sink for canonical redacted bytes. */
15
- export interface OutputSink {
16
- /** Returns false when the sink is applying backpressure. */
17
- append(bytes: Uint8Array): boolean;
18
- waitForDrain(): Promise<void>;
19
- reference(): ArtifactReference;
20
- /** True once the configured capture limit demands session termination. */
21
- readonly limitReached: boolean;
22
- readonly failed: boolean;
23
- }
24
- export interface OutputStoreOptions {
25
- readonly memoryWindowBytes: number;
26
- readonly pageBytes: number;
27
- readonly redactionOverlapBytes: number;
28
- readonly sink: OutputSink;
29
- /** Invoked when the sink asks for, then releases, transport backpressure. */
30
- readonly onPause?: (() => void) | undefined;
31
- readonly onResume?: (() => void) | undefined;
32
- /** Raised when persistence fails or the capture limit demands termination. */
33
- readonly onPersistenceStop?: ((reason: "output-limit" | "persist-failed") => void) | undefined;
34
- }
35
- export interface PageOptions {
36
- readonly cursor: number;
37
- readonly view: OutputView;
38
- readonly maxBytes?: number | undefined;
39
- readonly operation: SessionOperation;
40
- readonly sessionId: string;
41
- }
42
- export type PageOutcome = {
43
- readonly ok: true;
44
- readonly page: OutputPage;
45
- } | {
46
- readonly ok: false;
47
- readonly error: StableError;
48
- readonly page: OutputPage;
49
- };
50
- export declare class OutputStore {
51
- private readonly options;
52
- private readonly events;
53
- private readonly redactors;
54
- private readonly notifier;
55
- private retainedBytes;
56
- private earliest;
57
- private latest;
58
- private omittedBytes;
59
- private paused;
60
- private closed;
61
- constructor(options: OutputStoreOptions);
62
- get earliestCursor(): number;
63
- get latestCursor(): number;
64
- /** Monotonic generation used as the quiet-detection baseline. */
65
- get generation(): number;
66
- get artifact(): ArtifactReference;
67
- registerExactSecret(value: string): void;
68
- subscribe(listener: (generation: number) => void): Unsubscribe;
69
- private redactorFor;
70
- /** Ingest raw transport bytes. Redaction happens before cursor assignment. */
71
- ingest(stream: OutputStream, raw: Uint8Array, observedAt: number): void;
72
- /** Flush retained redaction overlap; called once during finalization. */
73
- finish(): void;
74
- private commit;
75
- private evict;
76
- private persist;
77
- /** Build a contiguous page starting at `cursor`. */
78
- page(options: PageOptions): PageOutcome;
79
- private buildPage;
80
- dispose(): void;
81
- }
@@ -1,239 +0,0 @@
1
- /**
2
- * Cursor-addressed output retention.
3
- *
4
- * Cursors address the session's canonical safe byte stream — redacted bytes, not
5
- * raw child bytes and not a rendered view — so plain and encoded views share one
6
- * stable source and `nextCursor` stays independent of rendered length.
7
- *
8
- * Appends are serialized in callback observation order and never ordered by wall
9
- * clock. Ingestion deliberately takes no session mutation lock so a chatty child
10
- * cannot block Close.
11
- */
12
- import { presentEvents } from "./output-view.js";
13
- import { Notifier } from "./runtime.js";
14
- import { StreamingSecretRedactor, trailingIncompleteUtf8Bytes } from "./streaming-redactor.js";
15
- import { sessionError, } from "./types.js";
16
- export class OutputStore {
17
- options;
18
- events = [];
19
- redactors = new Map();
20
- notifier = new Notifier();
21
- retainedBytes = 0;
22
- earliest = 0;
23
- latest = 0;
24
- omittedBytes = 0;
25
- paused = false;
26
- closed = false;
27
- constructor(options) {
28
- this.options = options;
29
- }
30
- get earliestCursor() {
31
- return this.earliest;
32
- }
33
- get latestCursor() {
34
- return this.latest;
35
- }
36
- /** Monotonic generation used as the quiet-detection baseline. */
37
- get generation() {
38
- return this.notifier.current;
39
- }
40
- get artifact() {
41
- return this.options.sink.reference();
42
- }
43
- registerExactSecret(value) {
44
- for (const stream of ["terminal", "stdout", "stderr"]) {
45
- this.redactorFor(stream).registerExactSecret(value);
46
- }
47
- }
48
- subscribe(listener) {
49
- return this.notifier.subscribe(listener);
50
- }
51
- redactorFor(stream) {
52
- let redactor = this.redactors.get(stream);
53
- if (!redactor) {
54
- redactor = new StreamingSecretRedactor(this.options.redactionOverlapBytes);
55
- this.redactors.set(stream, redactor);
56
- }
57
- return redactor;
58
- }
59
- /** Ingest raw transport bytes. Redaction happens before cursor assignment. */
60
- ingest(stream, raw, observedAt) {
61
- if (this.closed)
62
- return;
63
- const safe = this.redactorFor(stream).push(raw);
64
- this.commit(stream, safe, observedAt);
65
- }
66
- /** Flush retained redaction overlap; called once during finalization. */
67
- finish() {
68
- if (this.closed)
69
- return;
70
- const now = Date.now();
71
- for (const [stream, redactor] of this.redactors) {
72
- this.commit(stream, redactor.close(), now);
73
- }
74
- this.closed = true;
75
- }
76
- commit(stream, bytes, observedAt) {
77
- if (bytes.length === 0)
78
- return;
79
- const startCursor = this.latest;
80
- this.latest += bytes.length;
81
- this.events.push({
82
- startCursor,
83
- endCursor: this.latest,
84
- stream,
85
- observedAt,
86
- bytes,
87
- });
88
- this.retainedBytes += bytes.length;
89
- if (this.events.length === 1 && startCursor === 0)
90
- this.earliest = 0;
91
- this.evict();
92
- this.persist(bytes);
93
- this.notifier.bump();
94
- }
95
- evict() {
96
- while (this.retainedBytes > this.options.memoryWindowBytes &&
97
- this.events.length > 0) {
98
- const oldest = this.events[0];
99
- const overflow = this.retainedBytes - this.options.memoryWindowBytes;
100
- const size = oldest.bytes.length;
101
- if (size <= overflow) {
102
- this.events.shift();
103
- this.retainedBytes -= size;
104
- this.earliest = oldest.endCursor;
105
- this.omittedBytes += size;
106
- continue;
107
- }
108
- // Partially evict the oldest chunk; later cursors are never renumbered.
109
- const drop = overflow;
110
- this.events[0] = {
111
- ...oldest,
112
- startCursor: oldest.startCursor + drop,
113
- bytes: oldest.bytes.subarray(drop),
114
- };
115
- this.retainedBytes -= drop;
116
- this.earliest = oldest.startCursor + drop;
117
- this.omittedBytes += drop;
118
- }
119
- }
120
- persist(bytes) {
121
- const sink = this.options.sink;
122
- const writable = sink.append(bytes);
123
- if (sink.failed) {
124
- this.options.onPersistenceStop?.("persist-failed");
125
- return;
126
- }
127
- if (sink.limitReached) {
128
- this.options.onPersistenceStop?.("output-limit");
129
- return;
130
- }
131
- if (writable || this.paused)
132
- return;
133
- // Bound memory while the filesystem catches up rather than queueing output.
134
- this.paused = true;
135
- this.options.onPause?.();
136
- void sink.waitForDrain().then(() => {
137
- this.paused = false;
138
- this.options.onResume?.();
139
- });
140
- }
141
- /** Build a contiguous page starting at `cursor`. */
142
- page(options) {
143
- const limit = Math.max(1, options.maxBytes ?? this.options.pageBytes);
144
- const requested = options.cursor;
145
- if (requested < this.earliest) {
146
- const omitted = this.earliest - requested;
147
- const gapPage = this.buildPage([], requested, requested, options.view, false, omitted);
148
- return {
149
- ok: false,
150
- page: gapPage,
151
- error: sessionError({
152
- code: "OUTPUT_GAP",
153
- operation: options.operation,
154
- sessionId: options.sessionId,
155
- message: "Requested output has been evicted from the retention window; read from earliestAvailableCursor or the artifact.",
156
- details: {
157
- requestedCursor: requested,
158
- earliestAvailableCursor: this.earliest,
159
- omittedBytes: omitted,
160
- artifactPath: this.artifact.path,
161
- },
162
- }),
163
- };
164
- }
165
- if (requested > this.latest) {
166
- return {
167
- ok: false,
168
- page: this.buildPage([], requested, requested, options.view, false),
169
- error: sessionError({
170
- code: "INVALID_REQUEST",
171
- operation: options.operation,
172
- sessionId: options.sessionId,
173
- message: "Requested cursor is beyond the latest observed output byte.",
174
- details: { requestedCursor: requested, latestCursor: this.latest },
175
- }),
176
- };
177
- }
178
- const selected = [];
179
- let cursor = requested;
180
- let budget = limit;
181
- for (const event of this.events) {
182
- if (event.endCursor <= cursor)
183
- continue;
184
- if (budget <= 0)
185
- break;
186
- const offset = Math.max(0, cursor - event.startCursor);
187
- let slice = event.bytes.subarray(offset, offset + budget);
188
- if (slice.length === 0)
189
- continue;
190
- const truncated = offset + slice.length < event.bytes.length;
191
- if (truncated && options.view === "plain") {
192
- // Never end a plain page inside a multi-byte code point.
193
- const incomplete = trailingIncompleteUtf8Bytes(slice);
194
- if (incomplete > 0 && slice.length > incomplete) {
195
- slice = slice.subarray(0, slice.length - incomplete);
196
- }
197
- }
198
- if (slice.length === 0)
199
- break;
200
- selected.push({
201
- startCursor: cursor,
202
- endCursor: cursor + slice.length,
203
- stream: event.stream,
204
- observedAt: event.observedAt,
205
- bytes: slice,
206
- });
207
- cursor += slice.length;
208
- budget -= slice.length;
209
- }
210
- const hasMore = cursor < this.latest;
211
- return { ok: true, page: this.buildPage(selected, requested, cursor, options.view, hasMore) };
212
- }
213
- buildPage(events, requestedCursor, nextCursor, view, hasMore, omittedBytes) {
214
- const presented = presentEvents(events, view);
215
- return {
216
- events: presented.events,
217
- requestedCursor,
218
- nextCursor,
219
- hasMore,
220
- earliestAvailableCursor: this.earliest,
221
- latestCursor: this.latest,
222
- view,
223
- decodingLoss: presented.decodingLoss,
224
- ...(omittedBytes !== undefined && omittedBytes > 0
225
- ? { omittedBytes }
226
- : this.omittedBytes > 0
227
- ? { omittedBytes: this.omittedBytes }
228
- : {}),
229
- artifact: this.artifact,
230
- };
231
- }
232
- dispose() {
233
- this.finish();
234
- this.notifier.clear();
235
- this.events.length = 0;
236
- this.retainedBytes = 0;
237
- }
238
- }
239
- //# sourceMappingURL=output-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output-store.js","sourceRoot":"","sources":["../../src/interactive-session/output-store.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Presentation views over canonical redacted output bytes.
3
- *
4
- * `encoded` is base64: it round-trips the exact canonical bytes and cannot
5
- * execute a control sequence anywhere. `plain` is a bounded linearizer, not a
6
- * terminal emulator: it keeps no screen grid, no alternate screen, and no
7
- * cursor-addressable replay, and it guarantees that no host-terminal control
8
- * byte survives into model, transcript, log, or UI output.
9
- */
10
- import type { OutputEvent, OutputView, PresentedOutputEvent } from "./types.js";
11
- /**
12
- * Strip or neutralize escape sequences and unsafe controls. Output is a pure
13
- * function of the input text, so identical bytes always produce identical text.
14
- */
15
- export declare function neutralizeTerminalControls(input: string): string;
16
- export declare function presentEvent(event: OutputEvent, view: OutputView): PresentedOutputEvent;
17
- export declare function presentEvents(events: readonly OutputEvent[], view: OutputView): {
18
- events: PresentedOutputEvent[];
19
- decodingLoss: boolean;
20
- };
@@ -1,142 +0,0 @@
1
- /**
2
- * Presentation views over canonical redacted output bytes.
3
- *
4
- * `encoded` is base64: it round-trips the exact canonical bytes and cannot
5
- * execute a control sequence anywhere. `plain` is a bounded linearizer, not a
6
- * terminal emulator: it keeps no screen grid, no alternate screen, and no
7
- * cursor-addressable replay, and it guarantees that no host-terminal control
8
- * byte survives into model, transcript, log, or UI output.
9
- */
10
- const REPLACEMENT = "\uFFFD";
11
- /** Inert visible tokens for control effects we deliberately do not execute. */
12
- const PLAIN_TOKENS = {
13
- backspace: "⌫",
14
- osc: "[osc]",
15
- dcs: "[dcs]",
16
- nul: "^@",
17
- };
18
- function decodeUtf8(bytes) {
19
- const text = Buffer.from(bytes).toString("utf8");
20
- return { text, loss: text.includes(REPLACEMENT) };
21
- }
22
- function controlToken(code) {
23
- if (code === 0)
24
- return PLAIN_TOKENS.nul;
25
- // C0 controls render as their caret form; C1 as a hex token.
26
- if (code < 0x20)
27
- return `^${String.fromCharCode(code + 64)}`;
28
- return `^[0x${code.toString(16).padStart(2, "0")}]`;
29
- }
30
- /**
31
- * Strip or neutralize escape sequences and unsafe controls. Output is a pure
32
- * function of the input text, so identical bytes always produce identical text.
33
- */
34
- export function neutralizeTerminalControls(input) {
35
- let out = "";
36
- let index = 0;
37
- while (index < input.length) {
38
- const char = input[index];
39
- const code = char.codePointAt(0);
40
- if (code === 0x1b) {
41
- const next = input[index + 1];
42
- if (next === "[") {
43
- // CSI: consume parameters and the final byte. SGR and cursor control are
44
- // omitted entirely; they have no meaning in a linearized view.
45
- let cursor = index + 2;
46
- while (cursor < input.length && /[\d;?<>=: ]/.test(input[cursor]))
47
- cursor += 1;
48
- if (cursor < input.length)
49
- cursor += 1;
50
- index = cursor;
51
- continue;
52
- }
53
- if (next === "]") {
54
- index = consumeStringSequence(input, index + 2);
55
- out += PLAIN_TOKENS.osc;
56
- continue;
57
- }
58
- if (next === "P" || next === "X" || next === "^" || next === "_") {
59
- index = consumeStringSequence(input, index + 2);
60
- out += PLAIN_TOKENS.dcs;
61
- continue;
62
- }
63
- // Two-character or single-character escapes (charset, keypad, RIS).
64
- index += next === undefined ? 1 : 2;
65
- continue;
66
- }
67
- if (char === "\r") {
68
- // Lone CR is a line rewrite; CRLF collapses to one newline. Neither moves
69
- // the host cursor.
70
- if (input[index + 1] === "\n") {
71
- out += "\n";
72
- index += 2;
73
- }
74
- else {
75
- out += "\n";
76
- index += 1;
77
- }
78
- continue;
79
- }
80
- if (char === "\b") {
81
- out += PLAIN_TOKENS.backspace;
82
- index += 1;
83
- continue;
84
- }
85
- if (char === "\n" || char === "\t") {
86
- out += char;
87
- index += 1;
88
- continue;
89
- }
90
- if (code < 0x20 || code === 0x7f || (code >= 0x80 && code <= 0x9f)) {
91
- out += controlToken(code);
92
- index += 1;
93
- continue;
94
- }
95
- out += char;
96
- index += char.length;
97
- }
98
- return out;
99
- }
100
- /** Consume an OSC/DCS body up to BEL or ST, bounded by the input length. */
101
- function consumeStringSequence(input, start) {
102
- let index = start;
103
- while (index < input.length) {
104
- const char = input[index];
105
- if (char === "\u0007")
106
- return index + 1;
107
- if (char === "\u001b" && input[index + 1] === "\\")
108
- return index + 2;
109
- if (char === "\u009c")
110
- return index + 1;
111
- index += 1;
112
- }
113
- return index;
114
- }
115
- export function presentEvent(event, view) {
116
- if (view === "encoded") {
117
- return {
118
- startCursor: event.startCursor,
119
- endCursor: event.endCursor,
120
- stream: event.stream,
121
- observedAt: event.observedAt,
122
- content: Buffer.from(event.bytes).toString("base64"),
123
- };
124
- }
125
- const decoded = decodeUtf8(event.bytes);
126
- return {
127
- startCursor: event.startCursor,
128
- endCursor: event.endCursor,
129
- stream: event.stream,
130
- observedAt: event.observedAt,
131
- content: neutralizeTerminalControls(decoded.text),
132
- ...(decoded.loss ? { decodingLoss: true } : {}),
133
- };
134
- }
135
- export function presentEvents(events, view) {
136
- const presented = events.map((event) => presentEvent(event, view));
137
- return {
138
- events: presented,
139
- decodingLoss: presented.some((event) => event.decodingLoss === true),
140
- };
141
- }
142
- //# sourceMappingURL=output-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output-view.js","sourceRoot":"","sources":["../../src/interactive-session/output-view.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- /**
2
- * Crash-recovery journal for live interactive sessions.
3
- *
4
- * Interactive sessions are never reattachable: this file exists only so a crash
5
- * cannot leave an orphaned process tree behind. It therefore stores cleanup
6
- * evidence and nothing else — no command, cwd, input, environment, or output.
7
- */
8
- import { type ProcessIdentityComparison } from "../os/process-identity.js";
9
- export interface JournalRecord {
10
- readonly id: string;
11
- /** Hashed owner id: enough to group records, never the conversation id. */
12
- readonly ownerHash: string;
13
- readonly pid: number | undefined;
14
- readonly processGroupId: number | undefined;
15
- readonly identity: string | undefined;
16
- readonly platform: NodeJS.Platform;
17
- readonly startedAt: number;
18
- readonly artifactPath: string;
19
- /** True once a pid was confirmed by the OS. */
20
- readonly launchConfirmed: boolean;
21
- }
22
- export type ReconciliationOutcome = "terminated" | "gone" | "identity-mismatch" | "unverified" | "launch-failed";
23
- export interface ReconciliationEntry {
24
- readonly id: string;
25
- readonly outcome: ReconciliationOutcome;
26
- }
27
- export declare function hashOwner(ownerId: string): string;
28
- export interface RecoveryJournalProcessDeps {
29
- readonly compareIdentity: (pid: number | undefined, identity: string | undefined) => ProcessIdentityComparison;
30
- readonly terminateTree: (pid: number, options: {
31
- signal: NodeJS.Signals;
32
- processGroupId?: number | undefined;
33
- }) => unknown;
34
- }
35
- export declare class RecoveryJournal {
36
- private readonly directory;
37
- private readonly path;
38
- private readonly process;
39
- private records;
40
- constructor(directory?: string, processDeps?: Partial<RecoveryJournalProcessDeps>);
41
- upsert(record: JournalRecord): void;
42
- remove(id: string): void;
43
- /** Load prior records without trusting any of them as running. */
44
- load(): JournalRecord[];
45
- /**
46
- * Reconcile prior records before tools are enabled. Only an identity match
47
- * authorizes signalling; `unknown` identity is reported unverified and left
48
- * alone so a recycled pid is never killed.
49
- */
50
- reconcile(): ReconciliationEntry[];
51
- private reconcileOne;
52
- private persist;
53
- /** Remove the journal file entirely; used when no live sessions remain. */
54
- clear(): void;
55
- }