stitchkit 0.101.3 → 0.103.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 (40) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/application/diagnostic-journal-contract.d.ts +46 -7
  3. package/dist/application/diagnostic-journal-contract.d.ts.map +1 -1
  4. package/dist/application/diagnostic-journal-frame.d.ts +9 -0
  5. package/dist/application/diagnostic-journal-frame.d.ts.map +1 -0
  6. package/dist/application/diagnostic-journal-manager.d.ts.map +1 -1
  7. package/dist/application/diagnostic-journal-read-contract.d.ts +110 -0
  8. package/dist/application/diagnostic-journal-read-contract.d.ts.map +1 -0
  9. package/dist/application/diagnostic-journal-reader.d.ts +13 -0
  10. package/dist/application/diagnostic-journal-reader.d.ts.map +1 -0
  11. package/dist/application/diagnostic-journal-recovery.d.ts +4 -0
  12. package/dist/application/diagnostic-journal-recovery.d.ts.map +1 -0
  13. package/dist/application/diagnostic-journal-storage.d.ts +2 -0
  14. package/dist/application/diagnostic-journal-storage.d.ts.map +1 -1
  15. package/dist/entrypoints/application/diagnostic-journal.d.ts +1 -0
  16. package/dist/entrypoints/application/diagnostic-journal.d.ts.map +1 -1
  17. package/dist/entrypoints/application/diagnostic-journal.js +213 -19
  18. package/dist/entrypoints/application.d.ts +1 -0
  19. package/dist/entrypoints/application.d.ts.map +1 -1
  20. package/dist/entrypoints/application.js +10 -2
  21. package/dist/entrypoints/tools/contract.js +1 -1
  22. package/dist/entrypoints/tools.js +4 -3
  23. package/dist/index-z94wht4y.js +156 -0
  24. package/dist/{index-5107q189.js → index-zax7resm.js} +13 -1
  25. package/dist/tools/transfer/view-file-contract.d.ts.map +1 -1
  26. package/dist/tools/transfer/view-file.d.ts.map +1 -1
  27. package/llms/application-diagnostic-journal.txt +2 -0
  28. package/llms/application.2.txt +157 -267
  29. package/llms/application.3.txt +278 -0
  30. package/llms/application.txt +43 -158
  31. package/llms/stitchkit.txt +4 -4
  32. package/llms/tools.2.txt +9 -0
  33. package/llms/tools.3.txt +1 -1
  34. package/llms/{upgrading-0.61.0-0.73.0.txt → upgrading-0.61.0-0.74.0.txt} +64 -3
  35. package/llms/{upgrading-0.74.0-0.101.0.txt → upgrading-0.75.0-0.103.0.txt} +56 -64
  36. package/llms/upgrading.txt +2 -2
  37. package/llms-full.txt +115 -9
  38. package/llms.txt +6 -6
  39. package/package.json +1 -1
  40. package/dist/index-h124epcf.js +0 -103
package/CHANGELOG.md CHANGED
@@ -15,6 +15,70 @@ additive**; the first breaking change landed in 0.10.0. Grep the file for
15
15
 
16
16
  ## [Unreleased]
17
17
 
18
+ ## [0.103.0] — 2026-09-30
19
+
20
+ ### ⚠️ Breaking changes
21
+
22
+ - `stitchkit/application/diagnostic-journal` — **torn startup with `maxFiles: 1`
23
+ now throws `DiagnosticJournalRecoveryError` before deleting any evidence**.
24
+ Previously startup discarded the active file and continued. To preserve it,
25
+ `limits: { ...limits, maxFiles: 1 }` → `limits: { ...limits, maxFiles: 2 }`.
26
+ The acquired lock is released on refusal. → ADR 0219.
27
+ - `stitchkit/application/diagnostic-journal` — **startup inspects retained files
28
+ and throws on inspection I/O failures**, instead of accepting unreadable
29
+ archives unchecked. Unreadable archive + successful startup → explicit
30
+ startup failure; restore the writer's read access before opening the journal.
31
+ Corrupt rows themselves are reported through recovery status. → ADR 0219.
32
+
33
+ **Who must act:** operators using single-file retention with a potentially torn
34
+ active file, or retaining archives the writer cannot read. Configure at least two
35
+ slots for tail recovery and ensure read access to retained generations.
36
+
37
+ ### Added
38
+
39
+ - `stitchkit/application/diagnostic-journal` — `readDiagnosticJournal` streams
40
+ finite file snapshots through an owner `eventSchema`, retaining at most
41
+ `maxLineBytes` of a row plus a fixed read chunk. It yields valid frames and
42
+ explicit anomalies with file, byte offset, line, reason and skipped-byte count;
43
+ filesystem errors throw separately. Complete frames without a final LF remain
44
+ readable with a tail warning. Symlinks and non-regular paths are refused.
45
+ - `stitchkit/application` — schema-backed anomaly/read-result/recovery contracts
46
+ and `DiagnosticJournalRecoveryError`. Reviewed surface budgets increase by
47
+ seven pure exports here and two reader exports in the filesystem leaf. → ADR 0219.
48
+
49
+ ### Fixed
50
+
51
+ - Diagnostic journal startup inspects active and retained generations under the
52
+ exclusive lock. `getStatus().recovery` reports bounded startup observations of
53
+ damaged rows; another start reconstructs them from the preserved files. A torn
54
+ active file still rotates intact under the configured retention policy.
55
+ With `maxFiles: 1`, startup throws `DiagnosticJournalRecoveryError` before
56
+ deleting active or archived evidence and releases the lock. Configure at least
57
+ two files to retain the torn file during recovery.
58
+ - Diagnostic journal integer schemas use Zod's `.int()` without deprecated
59
+ `.safe()`; values outside the safe integer range remain rejected.
60
+
61
+ ## [0.102.0] — 2026-09-30
62
+
63
+ ### ⚠️ Breaking changes
64
+
65
+ - `stitchkit/tools`, `stitchkit/tools/contract`, `stitchkit/cli` — **`view_file`
66
+ rejects JSON arrays encoded inside a `paths` string during input validation**,
67
+ before file or network access, with a hint to pass an array or one path.
68
+ Previously the text was accepted as one filename and failed with a misleading
69
+ media-extension refusal. `paths: '["image.png"]'` → `paths: ['image.png']`.
70
+ An encoded array inside an array element is refused too. Managed surfaces
71
+ return `VALIDATION_ERROR`; raw MCP reports an input-validation error. → ADR 0218.
72
+
73
+ **Who must act:** callers that serialize the `paths` array into a string, or
74
+ branch on the former media-extension error for that input. Pass a real array
75
+ (or a single path string) and handle the validation error.
76
+
77
+ ### Fixed
78
+
79
+ - `stitchkit/tools` — a local non-media extension refusal identifies the
80
+ caller's path and the extension it saw, without reading the file.
81
+
18
82
  ## [0.101.3] — 2026-09-29
19
83
 
20
84
  ### Fixed
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import type { ExclusiveLockDiagnosis, ExclusiveLockOwner } from '../internal/exclusive-lock.js';
3
+ export { type DiagnosticJournalFrame, DiagnosticJournalFrameSchema, } from './diagnostic-journal-frame.js';
3
4
  export declare const DiagnosticJournalLimitsSchema: z.ZodReadonly<z.ZodObject<{
4
5
  maxEventBytes: z.ZodNumber;
5
6
  maxPendingItems: z.ZodNumber;
@@ -78,6 +79,51 @@ export declare const DiagnosticJournalStatusSchema: z.ZodReadonly<z.ZodObject<{
78
79
  partialTails: z.ZodNumber;
79
80
  currentFileBytes: z.ZodNumber;
80
81
  retainedFiles: z.ZodNumber;
82
+ recovery: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
83
+ filesChecked: z.ZodNumber;
84
+ anomalies: z.ZodNumber;
85
+ skippedBytes: z.ZodNumber;
86
+ firstAnomaly: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
87
+ file: z.ZodString;
88
+ offset: z.ZodNumber;
89
+ line: z.ZodNumber;
90
+ reason: z.ZodEnum<{
91
+ "invalid-event": "invalid-event";
92
+ "invalid-frame": "invalid-frame";
93
+ "invalid-json": "invalid-json";
94
+ "invalid-utf8": "invalid-utf8";
95
+ "nul-byte": "nul-byte";
96
+ "oversized-line": "oversized-line";
97
+ "unterminated-line": "unterminated-line";
98
+ }>;
99
+ position: z.ZodEnum<{
100
+ interior: "interior";
101
+ tail: "tail";
102
+ }>;
103
+ terminated: z.ZodBoolean;
104
+ skippedBytes: z.ZodNumber;
105
+ }, z.core.$strict>>>;
106
+ lastAnomaly: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
107
+ file: z.ZodString;
108
+ offset: z.ZodNumber;
109
+ line: z.ZodNumber;
110
+ reason: z.ZodEnum<{
111
+ "invalid-event": "invalid-event";
112
+ "invalid-frame": "invalid-frame";
113
+ "invalid-json": "invalid-json";
114
+ "invalid-utf8": "invalid-utf8";
115
+ "nul-byte": "nul-byte";
116
+ "oversized-line": "oversized-line";
117
+ "unterminated-line": "unterminated-line";
118
+ }>;
119
+ position: z.ZodEnum<{
120
+ interior: "interior";
121
+ tail: "tail";
122
+ }>;
123
+ terminated: z.ZodBoolean;
124
+ skippedBytes: z.ZodNumber;
125
+ }, z.core.$strict>>>;
126
+ }, z.core.$strict>>>;
81
127
  lastAcceptedSequence: z.ZodOptional<z.ZodNumber>;
82
128
  lastWrittenSequence: z.ZodOptional<z.ZodNumber>;
83
129
  lastSettledSequence: z.ZodOptional<z.ZodNumber>;
@@ -138,13 +184,6 @@ export declare const DiagnosticJournalCloseResultSchema: z.ZodReadonly<z.ZodObje
138
184
  pendingItems: z.ZodNumber;
139
185
  }, z.core.$strict>>;
140
186
  export type DiagnosticJournalCloseResult = z.infer<typeof DiagnosticJournalCloseResultSchema>;
141
- export declare const DiagnosticJournalFrameSchema: z.ZodReadonly<z.ZodObject<{
142
- schemaVersion: z.ZodLiteral<1>;
143
- epoch: z.ZodUUID;
144
- sequence: z.ZodNumber;
145
- event: z.ZodJSONSchema;
146
- }, z.core.$strict>>;
147
- export type DiagnosticJournalFrame = z.infer<typeof DiagnosticJournalFrameSchema>;
148
187
  export interface DiagnosticJournalWaitOptions {
149
188
  readonly signal?: AbortSignal;
150
189
  readonly timeoutMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal-contract.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic-journal-contract.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const DiagnosticJournalFrameSchema: z.ZodReadonly<z.ZodObject<{
3
+ schemaVersion: z.ZodLiteral<1>;
4
+ epoch: z.ZodUUID;
5
+ sequence: z.ZodNumber;
6
+ event: z.ZodJSONSchema;
7
+ }, z.core.$strict>>;
8
+ export type DiagnosticJournalFrame = z.infer<typeof DiagnosticJournalFrameSchema>;
9
+ //# sourceMappingURL=diagnostic-journal-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-journal-frame.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,4BAA4B;;;;;mBAQ5B,CAAC;AACd,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal-manager.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,wBAAwB,EAG7B,KAAK,uBAAuB,EAI5B,KAAK,uBAAuB,EAK7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,8BAA8B,CAAC;AAEtC,UAAU,8BAA8B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO;IAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAyDD,wBAAgB,8BAA8B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EACrE,MAAM,EAAE,8BAA8B,CAAC,MAAM,CAAC,EAC9C,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAiMpC"}
1
+ {"version":3,"file":"diagnostic-journal-manager.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,wBAAwB,EAG7B,KAAK,uBAAuB,EAI5B,KAAK,uBAAuB,EAK7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,8BAA8B,CAAC;AAEtC,UAAU,8BAA8B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO;IAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAyDD,wBAAgB,8BAA8B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EACrE,MAAM,EAAE,8BAA8B,CAAC,MAAM,CAAC,EAC9C,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAkMpC"}
@@ -0,0 +1,110 @@
1
+ import { z } from 'zod';
2
+ export declare const DiagnosticJournalAnomalySchema: z.ZodReadonly<z.ZodObject<{
3
+ file: z.ZodString;
4
+ offset: z.ZodNumber;
5
+ line: z.ZodNumber;
6
+ reason: z.ZodEnum<{
7
+ "invalid-event": "invalid-event";
8
+ "invalid-frame": "invalid-frame";
9
+ "invalid-json": "invalid-json";
10
+ "invalid-utf8": "invalid-utf8";
11
+ "nul-byte": "nul-byte";
12
+ "oversized-line": "oversized-line";
13
+ "unterminated-line": "unterminated-line";
14
+ }>;
15
+ position: z.ZodEnum<{
16
+ interior: "interior";
17
+ tail: "tail";
18
+ }>;
19
+ terminated: z.ZodBoolean;
20
+ skippedBytes: z.ZodNumber;
21
+ }, z.core.$strict>>;
22
+ export type DiagnosticJournalAnomaly = z.infer<typeof DiagnosticJournalAnomalySchema>;
23
+ export declare function createDiagnosticJournalReadResultSchema<SCHEMA extends z.ZodType>(eventSchema: SCHEMA): z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
24
+ file: z.ZodString;
25
+ offset: z.ZodNumber;
26
+ line: z.ZodNumber;
27
+ type: z.ZodLiteral<"frame">;
28
+ bytes: z.ZodNumber;
29
+ frame: z.ZodReadonly<z.ZodObject<{
30
+ schemaVersion: z.ZodLiteral<1>;
31
+ epoch: z.ZodUUID;
32
+ sequence: z.ZodNumber;
33
+ event: SCHEMA;
34
+ }, z.core.$strict>>;
35
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
36
+ type: z.ZodLiteral<"anomaly">;
37
+ anomaly: z.ZodReadonly<z.ZodObject<{
38
+ file: z.ZodString;
39
+ offset: z.ZodNumber;
40
+ line: z.ZodNumber;
41
+ reason: z.ZodEnum<{
42
+ "invalid-event": "invalid-event";
43
+ "invalid-frame": "invalid-frame";
44
+ "invalid-json": "invalid-json";
45
+ "invalid-utf8": "invalid-utf8";
46
+ "nul-byte": "nul-byte";
47
+ "oversized-line": "oversized-line";
48
+ "unterminated-line": "unterminated-line";
49
+ }>;
50
+ position: z.ZodEnum<{
51
+ interior: "interior";
52
+ tail: "tail";
53
+ }>;
54
+ terminated: z.ZodBoolean;
55
+ skippedBytes: z.ZodNumber;
56
+ }, z.core.$strict>>;
57
+ }, z.core.$strict>>], "type">;
58
+ export type DiagnosticJournalReadResult<SCHEMA extends z.ZodType> = z.output<ReturnType<typeof createDiagnosticJournalReadResultSchema<SCHEMA>>>;
59
+ export declare const DiagnosticJournalRecoveryStatusSchema: z.ZodReadonly<z.ZodObject<{
60
+ filesChecked: z.ZodNumber;
61
+ anomalies: z.ZodNumber;
62
+ skippedBytes: z.ZodNumber;
63
+ firstAnomaly: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
64
+ file: z.ZodString;
65
+ offset: z.ZodNumber;
66
+ line: z.ZodNumber;
67
+ reason: z.ZodEnum<{
68
+ "invalid-event": "invalid-event";
69
+ "invalid-frame": "invalid-frame";
70
+ "invalid-json": "invalid-json";
71
+ "invalid-utf8": "invalid-utf8";
72
+ "nul-byte": "nul-byte";
73
+ "oversized-line": "oversized-line";
74
+ "unterminated-line": "unterminated-line";
75
+ }>;
76
+ position: z.ZodEnum<{
77
+ interior: "interior";
78
+ tail: "tail";
79
+ }>;
80
+ terminated: z.ZodBoolean;
81
+ skippedBytes: z.ZodNumber;
82
+ }, z.core.$strict>>>;
83
+ lastAnomaly: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
84
+ file: z.ZodString;
85
+ offset: z.ZodNumber;
86
+ line: z.ZodNumber;
87
+ reason: z.ZodEnum<{
88
+ "invalid-event": "invalid-event";
89
+ "invalid-frame": "invalid-frame";
90
+ "invalid-json": "invalid-json";
91
+ "invalid-utf8": "invalid-utf8";
92
+ "nul-byte": "nul-byte";
93
+ "oversized-line": "oversized-line";
94
+ "unterminated-line": "unterminated-line";
95
+ }>;
96
+ position: z.ZodEnum<{
97
+ interior: "interior";
98
+ tail: "tail";
99
+ }>;
100
+ terminated: z.ZodBoolean;
101
+ skippedBytes: z.ZodNumber;
102
+ }, z.core.$strict>>>;
103
+ }, z.core.$strict>>;
104
+ export type DiagnosticJournalRecoveryStatus = z.infer<typeof DiagnosticJournalRecoveryStatusSchema>;
105
+ /** A single-file retention policy cannot preserve the torn file during startup rotation. */
106
+ export declare class DiagnosticJournalRecoveryError extends Error {
107
+ readonly recovery: DiagnosticJournalRecoveryStatus;
108
+ constructor(recovery: DiagnosticJournalRecoveryStatus);
109
+ }
110
+ //# sourceMappingURL=diagnostic-journal-read-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-journal-read-contract.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-read-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;mBAgB9B,CAAC;AACd,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,wBAAgB,uCAAuC,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EAC9E,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAepB;AACD,MAAM,MAAM,2BAA2B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAC1E,UAAU,CAAC,OAAO,uCAAuC,CAAC,MAAM,CAAC,CAAC,CACnE,CAAC;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBASrC,CAAC;AACd,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CACnD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,4FAA4F;AAC5F,qBAAa,8BAA+B,SAAQ,KAAK;aAC3B,QAAQ,EAAE,+BAA+B;IAArE,YAA4B,QAAQ,EAAE,+BAA+B,EAGpE;CACF"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ import { type DiagnosticJournalReadResult } from './diagnostic-journal-read-contract.js';
3
+ export interface DiagnosticJournalReaderConfig<SCHEMA extends z.ZodType> {
4
+ /** Explicit operator-owned files, read in this order; missing files are I/O errors. */
5
+ readonly paths: readonly string[];
6
+ readonly eventSchema: SCHEMA;
7
+ /** Maximum JSONL body bytes retained in memory, excluding its LF. */
8
+ readonly maxLineBytes: number;
9
+ readonly signal?: AbortSignal;
10
+ }
11
+ /** One finite file snapshot at a time. Corrupt rows are data; filesystem failures throw. */
12
+ export declare function readDiagnosticJournal<SCHEMA extends z.ZodType>(config: DiagnosticJournalReaderConfig<SCHEMA>): AsyncGenerator<DiagnosticJournalReadResult<SCHEMA>, void, unknown>;
13
+ //# sourceMappingURL=diagnostic-journal-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-journal-reader.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-reader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,KAAK,2BAA2B,EACjC,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,6BAA6B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO;IACrE,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAoFD,4FAA4F;AAC5F,wBAAuB,qBAAqB,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EACnE,MAAM,EAAE,6BAA6B,CAAC,MAAM,CAAC,GAC5C,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAsFpE"}
@@ -0,0 +1,4 @@
1
+ import { type DiagnosticJournalRecoveryStatus } from './diagnostic-journal-read-contract.js';
2
+ /** Disk evidence is the persistent source; only counters and two locations are retained. */
3
+ export declare function inspectDiagnosticJournalRecovery(paths: readonly string[], maxLineBytes: number): Promise<DiagnosticJournalRecoveryStatus>;
4
+ //# sourceMappingURL=diagnostic-journal-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-journal-recovery.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-recovery.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,+BAA+B,EAErC,MAAM,oCAAoC,CAAC;AAG5C,4FAA4F;AAC5F,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,+BAA+B,CAAC,CAuB1C"}
@@ -1,9 +1,11 @@
1
1
  import type { DiagnosticJournalFailurePhase, DiagnosticJournalLockPolicy } from './diagnostic-journal-contract.js';
2
+ import { type DiagnosticJournalRecoveryStatus } from './diagnostic-journal-read-contract.js';
2
3
  export interface DiagnosticJournalStorageSnapshot {
3
4
  readonly currentFileBytes: number;
4
5
  readonly retainedFiles: number;
5
6
  readonly rotations: number;
6
7
  readonly partialTails: number;
8
+ readonly recovery?: DiagnosticJournalRecoveryStatus;
7
9
  }
8
10
  export interface DiagnosticJournalStorageAppendResult extends DiagnosticJournalStorageSnapshot {
9
11
  readonly rotated: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal-storage.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-storage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,+BAA+B,CAAC;AAGvC,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oCACf,SAAQ,gCAAgC;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACzE,QAAQ,IAAI,gCAAgC,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAEpC,KAAK,EAAE,6BAA6B;IADtD,YACkB,KAAK,EAAE,6BAA6B,EACpD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,EAIvB;CACF;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AA4CD,oFAAoF;AACpF,wBAAsB,sCAAsC,CAC1D,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,wBAAwB,CAAC,CAsJnC"}
1
+ {"version":3,"file":"diagnostic-journal-storage.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-storage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,+BAA+B,CAAC;CACrD;AAED,MAAM,WAAW,oCACf,SAAQ,gCAAgC;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACzE,QAAQ,IAAI,gCAAgC,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAEpC,KAAK,EAAE,6BAA6B;IADtD,YACkB,KAAK,EAAE,6BAA6B,EACpD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,EAIvB;CACF;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AA4CD,oFAAoF;AACpF,wBAAsB,sCAAsC,CAC1D,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,wBAAwB,CAAC,CA8KnC"}
@@ -18,4 +18,5 @@
18
18
  * → ADR 0156.
19
19
  */
20
20
  export { createDiagnosticJournal } from '../../application/diagnostic-journal.js';
21
+ export { type DiagnosticJournalReaderConfig, readDiagnosticJournal, } from '../../application/diagnostic-journal-reader.js';
21
22
  //# sourceMappingURL=diagnostic-journal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/application/diagnostic-journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"diagnostic-journal.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/application/diagnostic-journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EACL,KAAK,6BAA6B,EAClC,qBAAqB,GACtB,MAAM,6CAA6C,CAAC"}