@agentex/agent 0.0.28 → 0.0.29

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 (53) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +40 -1
  3. package/dist/history/fs.d.ts +36 -0
  4. package/dist/history/fs.d.ts.map +1 -0
  5. package/dist/history/fs.js +266 -0
  6. package/dist/history/fs.js.map +1 -0
  7. package/dist/history/index.d.ts +3 -0
  8. package/dist/history/index.d.ts.map +1 -0
  9. package/dist/history/index.js +2 -0
  10. package/dist/history/index.js.map +1 -0
  11. package/dist/history/types.d.ts +75 -0
  12. package/dist/history/types.d.ts.map +1 -0
  13. package/dist/history/types.js +9 -0
  14. package/dist/history/types.js.map +1 -0
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/providers/claude/history.d.ts +3 -0
  19. package/dist/providers/claude/history.d.ts.map +1 -0
  20. package/dist/providers/claude/history.js +248 -0
  21. package/dist/providers/claude/history.js.map +1 -0
  22. package/dist/providers/claude/index.d.ts.map +1 -1
  23. package/dist/providers/claude/index.js +18 -0
  24. package/dist/providers/claude/index.js.map +1 -1
  25. package/dist/providers/codex/attach.d.ts +2 -2
  26. package/dist/providers/codex/attach.js +4 -4
  27. package/dist/providers/codex/attach.js.map +1 -1
  28. package/dist/providers/codex/history.d.ts +3 -0
  29. package/dist/providers/codex/history.d.ts.map +1 -0
  30. package/dist/providers/codex/history.js +350 -0
  31. package/dist/providers/codex/history.js.map +1 -0
  32. package/dist/providers/codex/index.d.ts.map +1 -1
  33. package/dist/providers/codex/index.js +18 -0
  34. package/dist/providers/codex/index.js.map +1 -1
  35. package/dist/providers/codex/transcript-normalize.d.ts +3 -2
  36. package/dist/providers/codex/transcript-normalize.d.ts.map +1 -1
  37. package/dist/providers/codex/transcript-normalize.js +4 -3
  38. package/dist/providers/codex/transcript-normalize.js.map +1 -1
  39. package/dist/types.d.ts +5 -1
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/types.js.map +1 -1
  42. package/package.json +7 -1
  43. package/src/history/fs.ts +307 -0
  44. package/src/history/index.ts +18 -0
  45. package/src/history/types.ts +104 -0
  46. package/src/index.ts +18 -0
  47. package/src/providers/claude/history.ts +290 -0
  48. package/src/providers/claude/index.ts +18 -0
  49. package/src/providers/codex/attach.ts +4 -4
  50. package/src/providers/codex/history.ts +399 -0
  51. package/src/providers/codex/index.ts +18 -0
  52. package/src/providers/codex/transcript-normalize.ts +4 -3
  53. package/src/types.ts +5 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.29 — Local Claude and Codex history import
4
+
5
+ ### Added
6
+
7
+ - Claude and Codex expose `provider.localHistory` for bounded, content-free
8
+ presence probes, main-session discovery, normalized historical reads,
9
+ line-aligned checkpoints, and source fingerprints.
10
+ - Local history includes human messages alongside the normal `StreamEvent`
11
+ vocabulary. `(eventId, partIndex)` is stable across repeated reads when one
12
+ source record produces several normalized events.
13
+ - Codex discovery uses rollout JSONL as its canonical read-only source and
14
+ reads `session_index.jsonl` plus compatible SQLite state databases only for
15
+ optional titles.
16
+ - Added `pnpm --filter @agentex/agent diagnose:history`, which reports only
17
+ structural counts and durations from local stores.
18
+ - Limited discovery orders candidates using file metadata and stops transcript
19
+ inspection once enough eligible sessions are found.
20
+ - `mainSessionsOnly: false` includes Claude nested subagents with stable parent
21
+ identities and inherited project context. Legacy Codex reads retain
22
+ unwrapped tool calls and tool results.
23
+
24
+ ### Changed
25
+
26
+ - File-backed Codex normalization now preserves its deterministic synthetic
27
+ transcript event id through `codexLineToStreamEvents()` and durable session
28
+ catch-up.
29
+ - Strong fingerprints use one file descriptor and verify metadata after
30
+ hashing. Completed transcript reads report `source_changed_during_read` when
31
+ the opened source changes before EOF verification.
32
+
3
33
  ## 0.0.28 — OpenCode and Cursor integration contracts
4
34
 
5
35
  Additive release. OpenCode is now a fully managed session provider and Cursor
package/README.md CHANGED
@@ -610,10 +610,49 @@ if (attachment.lastTurn === "interrupted") {
610
610
  }
611
611
  ```
612
612
 
613
- Dedup replayed events against anything you saw live: Claude events carry a stable wire `eventId` (upsert on it); Codex has none (`eventId: null`), so gate replay on your own "not currently running" flag. A runnable end-to-end proof — start a session, crash the host mid-turn, reattach in a fresh process — lives in `scripts/durable-session-demo.ts` (`pnpm demo:durable`).
613
+ Dedup replayed events against anything you saw live: Claude events carry a stable wire `eventId`. File-backed Codex events carry a deterministic synthetic id derived from the rollout session id and line-start byte offset. A runnable end-to-end proof — start a session, crash the host mid-turn, reattach in a fresh process — lives in `scripts/durable-session-demo.ts` (`pnpm demo:durable`).
614
614
 
615
615
  OpenCode exposes the same host-level recovery shape through service-backed history rather than a local JSONL transcript. Persist `session.describeHistory()`, call `provider.attachHistory(record)`, and checkpoint the opaque `HistoryCheckpoint` returned with each event. `catchUp({ mode: "incremental", after })` resumes after that exact normalized event. `catchUp({ mode: "bounded_full_resync" })` performs a bounded rebuild. OpenCode pagination is capped at 100 pages, 10,000 messages, and 25 MiB so a corrupt or unexpectedly large history cannot exhaust the host.
616
616
 
617
+ ### Discover local history when session ids are unknown
618
+
619
+ Claude and Codex expose `provider.localHistory` for import and migration tools. This is separate from `attachHistory()`: attachment starts from a persisted `SessionRecord`, while local discovery starts with no known session ids.
620
+
621
+ ```typescript
622
+ import { getProvider } from "@agentex/agent";
623
+
624
+ const history = getProvider("claude").localHistory!;
625
+ const presence = await history.probe(); // file presence only, no transcript parsing
626
+
627
+ if (presence.historyAvailable) {
628
+ for await (const session of history.discover({ limit: 50 })) {
629
+ let checkpoint = 0;
630
+ let completedLine: number | undefined;
631
+ for await (const item of history.read(session, { fromOffset: checkpoint })) {
632
+ if (completedLine !== undefined && item.nextOffset !== completedLine) {
633
+ checkpoint = completedLine;
634
+ await saveCheckpoint(checkpoint);
635
+ }
636
+ await ingest(item.event, item.partIndex);
637
+ completedLine = item.nextOffset;
638
+ }
639
+ if (completedLine !== undefined) await saveCheckpoint(completedLine);
640
+ const strongFingerprint = await history.fingerprint(session, { sha256: true });
641
+ await saveFingerprint(strongFingerprint);
642
+ }
643
+ }
644
+ ```
645
+
646
+ Discovery defaults to main sessions with at least one meaningful human message. Claude nested subagents and sidechains are excluded by default. Pass `mainSessionsOnly: false` to include them with a stable parent-session identity and inherited project context. Codex subagent rollouts, environment context, metadata-only threads, and duplicate active/archive copies are excluded by default. Source files are opened read-only and are never changed.
647
+
648
+ `discover({ limit })` first orders candidates by filesystem metadata, then inspects transcripts in bounded batches until it finds enough eligible sessions. A limit bounds transcript parsing, not only returned rows.
649
+
650
+ Strong fingerprints verify the opened file before and after hashing. A strong fingerprint or completed transcript read throws `LocalHistoryError` with code `source_changed_during_read` when the source changes during the operation. Hosts should keep committed line checkpoints and retry from the last completed boundary.
651
+
652
+ `LocalHistoryYield.event.eventId` identifies the provider source record. Use `(providerType, externalSessionId, eventId, partIndex)` as the normalized-event idempotency key because one JSONL record can produce several events. `nextOffset` is line-aligned, so persist it only after every part for that line commits.
653
+
654
+ Codex rollout JSONL is the canonical history and checkpoint source. `session_index.jsonl` and compatible SQLite state databases are optional title sources opened read-only. Local history never starts Codex App Server.
655
+
617
656
  ## Plan Mode
618
657
 
619
658
  Run an agent in read-only "plan" mode — it investigates and proposes a plan but cannot edit files or run mutating commands. Same goal in both providers, **different mechanism** in each. Check `provider.capabilities.planMode` before relying on it.
@@ -0,0 +1,36 @@
1
+ import { type LocalHistorySourceFingerprint } from "./types.js";
2
+ export declare const UUID_JSONL_RE: RegExp;
3
+ export declare const ROLLOUT_UUID_RE: RegExp;
4
+ export interface JsonlRecord {
5
+ raw: Record<string, unknown>;
6
+ text: string;
7
+ lineStartOffset: number;
8
+ nextOffset: number;
9
+ }
10
+ interface StableReadOptions {
11
+ /** Reject a completed read when the opened source changed while streaming. */
12
+ rejectChanges?: boolean;
13
+ /** Internal deterministic test hook. Not part of the public history API. */
14
+ afterInitialStat?: () => void | Promise<void>;
15
+ }
16
+ export declare function asRecord(value: unknown): Record<string, unknown> | null;
17
+ export declare function asString(value: unknown): string | null;
18
+ export declare function isoDate(value: unknown, fallback?: string | null): string | null;
19
+ export declare function cleanTitle(value: string | null): string | null;
20
+ export declare function isDirectory(filePath: string): Promise<boolean>;
21
+ export declare function listJsonlFiles(root: string, options: {
22
+ maxDepth: number;
23
+ limit?: number;
24
+ accept?: (name: string) => boolean;
25
+ }): Promise<string[]>;
26
+ export declare function mapLimited<T, U>(values: readonly T[], concurrency: number, mapper: (value: T) => Promise<U>): Promise<U[]>;
27
+ export declare function recentEligible<T>(filePaths: readonly string[], options: {
28
+ limit?: number;
29
+ concurrency?: number;
30
+ }, inspect: (filePath: string) => Promise<T | null>): Promise<T[]>;
31
+ export declare function sourceFingerprint(filePath: string, includeSha256?: boolean, internalOptions?: StableReadOptions): Promise<LocalHistorySourceFingerprint>;
32
+ export declare function readJsonlRecords(filePath: string, fromOffset?: number, options?: StableReadOptions): AsyncIterable<JsonlRecord>;
33
+ export declare function textFromContent(content: unknown, acceptedTypes: ReadonlySet<string>): string | null;
34
+ export declare function meaningfulHumanText(text: string | null): string | null;
35
+ export {};
36
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/history/fs.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,aAAa,QAA2E,CAAC;AACtG,eAAO,MAAM,eAAe,QAA6E,CAAC;AAE1G,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AASD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAIvE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,GAAG,IAAI,CAIrF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAS9D;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMpE;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GAChF,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EACnC,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC,CAcd;AAuCD,wBAAsB,cAAc,CAAC,CAAC,EACpC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACjD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAC/C,OAAO,CAAC,CAAC,EAAE,CAAC,CAoCd;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,aAAa,UAAQ,EACrB,eAAe,GAAE,iBAAsB,GACtC,OAAO,CAAC,6BAA6B,CAAC,CA6BxC;AAED,wBAAuB,gBAAgB,CACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAI,EACd,OAAO,GAAE,iBAAsB,GAC9B,aAAa,CAAC,WAAW,CAAC,CAyC5B;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAanG;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAWtE"}
@@ -0,0 +1,266 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readdir, stat, open as openFile } from "node:fs/promises";
3
+ import * as path from "node:path";
4
+ import * as readline from "node:readline";
5
+ import { LocalHistoryError, } from "./types.js";
6
+ export const UUID_JSONL_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.jsonl$/i;
7
+ export const ROLLOUT_UUID_RE = /-([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i;
8
+ export function asRecord(value) {
9
+ return typeof value === "object" && value !== null && !Array.isArray(value)
10
+ ? value
11
+ : null;
12
+ }
13
+ export function asString(value) {
14
+ return typeof value === "string" && value.trim().length > 0 ? value : null;
15
+ }
16
+ export function isoDate(value, fallback = null) {
17
+ if (typeof value !== "string")
18
+ return fallback;
19
+ const parsed = new Date(value);
20
+ return Number.isNaN(parsed.getTime()) ? fallback : parsed.toISOString();
21
+ }
22
+ export function cleanTitle(value) {
23
+ const cleaned = value
24
+ ?.replace(/<[^>]+>/g, " ")
25
+ .replace(/\[\[[^\]]+\]\]/g, " ")
26
+ .replace(/^[#>*_`\s-]+/g, "")
27
+ .replace(/\s+/g, " ")
28
+ .trim();
29
+ if (!cleaned)
30
+ return null;
31
+ return cleaned.length > 120 ? `${cleaned.slice(0, 117).trimEnd()}...` : cleaned;
32
+ }
33
+ export async function isDirectory(filePath) {
34
+ try {
35
+ return (await stat(filePath)).isDirectory();
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ export async function listJsonlFiles(root, options) {
42
+ const files = [];
43
+ const limit = Math.max(1, options.limit ?? Number.MAX_SAFE_INTEGER);
44
+ async function visit(dir, depth) {
45
+ if (depth > options.maxDepth || files.length >= limit)
46
+ return;
47
+ let entries;
48
+ try {
49
+ entries = await readdir(dir, { withFileTypes: true });
50
+ }
51
+ catch {
52
+ return;
53
+ }
54
+ entries.sort((a, b) => a.name.localeCompare(b.name));
55
+ for (const entry of entries) {
56
+ if (files.length >= limit)
57
+ break;
58
+ const child = path.join(dir, entry.name);
59
+ if (entry.isDirectory())
60
+ await visit(child, depth + 1);
61
+ else if (entry.isFile() && entry.name.endsWith(".jsonl") && (options.accept?.(entry.name) ?? true)) {
62
+ files.push(child);
63
+ }
64
+ }
65
+ }
66
+ await visit(root, 0);
67
+ return files;
68
+ }
69
+ export async function mapLimited(values, concurrency, mapper) {
70
+ const output = new Array(values.length);
71
+ let cursor = 0;
72
+ async function worker() {
73
+ while (cursor < values.length) {
74
+ const index = cursor++;
75
+ output[index] = await mapper(values[index]);
76
+ }
77
+ }
78
+ await Promise.all(Array.from({ length: Math.min(Math.max(1, concurrency), values.length) }, () => worker()));
79
+ return output;
80
+ }
81
+ async function fileIdentity(handle) {
82
+ const info = await handle.stat({ bigint: true });
83
+ if (!info.isFile())
84
+ throw new LocalHistoryError("invalid_session", "Local history source is not a file");
85
+ return {
86
+ size: info.size,
87
+ modifiedAtNs: info.mtimeNs,
88
+ device: info.dev,
89
+ inode: info.ino,
90
+ };
91
+ }
92
+ function sameFileIdentity(left, right) {
93
+ return left.size === right.size
94
+ && left.modifiedAtNs === right.modifiedAtNs
95
+ && left.device === right.device
96
+ && left.inode === right.inode;
97
+ }
98
+ function sourceChangedError() {
99
+ return new LocalHistoryError("source_changed_during_read", "Local history source changed during the read");
100
+ }
101
+ function wrapFileError(error, action) {
102
+ if (error instanceof LocalHistoryError)
103
+ return error;
104
+ const code = error.code;
105
+ return new LocalHistoryError(code === "ENOENT" ? "source_missing" : code === "EACCES" ? "permission_denied" : "io_error", code === "ENOENT"
106
+ ? "Local history source is missing"
107
+ : `Unable to ${action} local history source`, { cause: error });
108
+ }
109
+ export async function recentEligible(filePaths, options, inspect) {
110
+ const limit = options.limit === undefined
111
+ ? Number.MAX_SAFE_INTEGER
112
+ : Math.max(0, options.limit);
113
+ if (limit === 0 || filePaths.length === 0)
114
+ return [];
115
+ const metadata = await mapLimited(filePaths, 32, async (filePath) => {
116
+ try {
117
+ const info = await stat(filePath, { bigint: true });
118
+ return info.isFile() ? { filePath, modifiedAtNs: info.mtimeNs } : null;
119
+ }
120
+ catch {
121
+ return null;
122
+ }
123
+ });
124
+ const ordered = metadata
125
+ .filter((value) => value !== null)
126
+ .sort((a, b) => a.modifiedAtNs === b.modifiedAtNs
127
+ ? a.filePath.localeCompare(b.filePath)
128
+ : a.modifiedAtNs > b.modifiedAtNs ? -1 : 1);
129
+ const output = [];
130
+ const concurrency = Math.max(1, options.concurrency ?? 16);
131
+ let cursor = 0;
132
+ while (cursor < ordered.length && output.length < limit) {
133
+ // Never inspect more files than the number of results still requested in
134
+ // one batch. Excluded files cause another bounded batch to be pulled.
135
+ const batchSize = Math.min(concurrency, limit - output.length, ordered.length - cursor);
136
+ const batch = ordered.slice(cursor, cursor + batchSize);
137
+ cursor += batch.length;
138
+ const inspected = await mapLimited(batch, concurrency, ({ filePath }) => inspect(filePath));
139
+ for (const value of inspected) {
140
+ if (value !== null)
141
+ output.push(value);
142
+ if (output.length >= limit)
143
+ break;
144
+ }
145
+ }
146
+ return output;
147
+ }
148
+ export async function sourceFingerprint(filePath, includeSha256 = false, internalOptions = {}) {
149
+ let handle = null;
150
+ try {
151
+ handle = await openFile(filePath, "r");
152
+ const before = await fileIdentity(handle);
153
+ const fingerprint = {
154
+ size: Number(before.size),
155
+ modifiedAtNs: before.modifiedAtNs.toString(),
156
+ };
157
+ if (!includeSha256)
158
+ return fingerprint;
159
+ await internalOptions.afterInitialStat?.();
160
+ const hash = createHash("sha256");
161
+ const stream = handle.createReadStream({ autoClose: false });
162
+ let after;
163
+ try {
164
+ for await (const chunk of stream)
165
+ hash.update(chunk);
166
+ after = await fileIdentity(handle);
167
+ }
168
+ finally {
169
+ stream.destroy();
170
+ }
171
+ if (!sameFileIdentity(before, after))
172
+ throw sourceChangedError();
173
+ fingerprint.sha256 = hash.digest("hex");
174
+ return fingerprint;
175
+ }
176
+ catch (error) {
177
+ throw wrapFileError(error, includeSha256 ? "hash" : "inspect");
178
+ }
179
+ finally {
180
+ await handle?.close();
181
+ }
182
+ }
183
+ export async function* readJsonlRecords(filePath, fromOffset = 0, options = {}) {
184
+ let handle = null;
185
+ let stream = null;
186
+ let rl = null;
187
+ let offset = fromOffset;
188
+ try {
189
+ handle = await openFile(filePath, "r");
190
+ const before = await fileIdentity(handle);
191
+ await options.afterInitialStat?.();
192
+ stream = handle.createReadStream({ start: fromOffset, encoding: "utf8", autoClose: false });
193
+ stream.on("error", () => { });
194
+ rl = readline.createInterface({ input: stream, crlfDelay: Infinity });
195
+ for await (const line of rl) {
196
+ const lineStartOffset = offset;
197
+ offset += Buffer.byteLength(line, "utf8") + 1;
198
+ if (!line.trim())
199
+ continue;
200
+ try {
201
+ const raw = asRecord(JSON.parse(line));
202
+ if (raw)
203
+ yield { raw, text: line, lineStartOffset, nextOffset: offset };
204
+ }
205
+ catch {
206
+ // A damaged historical record must not hide later valid records.
207
+ }
208
+ }
209
+ if (options.rejectChanges) {
210
+ const after = await fileIdentity(handle);
211
+ if (!sameFileIdentity(before, after))
212
+ throw sourceChangedError();
213
+ let pathInfo;
214
+ try {
215
+ pathInfo = await stat(filePath, { bigint: true });
216
+ }
217
+ catch (error) {
218
+ throw wrapFileError(error, "inspect");
219
+ }
220
+ if (pathInfo.dev !== after.device || pathInfo.ino !== after.inode)
221
+ throw sourceChangedError();
222
+ }
223
+ }
224
+ catch (error) {
225
+ throw wrapFileError(error, "read");
226
+ }
227
+ finally {
228
+ rl?.close();
229
+ stream?.destroy();
230
+ await handle?.close();
231
+ }
232
+ }
233
+ export function textFromContent(content, acceptedTypes) {
234
+ if (typeof content === "string")
235
+ return content.trim() || null;
236
+ if (!Array.isArray(content))
237
+ return null;
238
+ const parts = [];
239
+ for (const value of content) {
240
+ const block = asRecord(value);
241
+ if (!block)
242
+ continue;
243
+ const type = asString(block["type"]);
244
+ if (type && !acceptedTypes.has(type))
245
+ continue;
246
+ const text = asString(block["text"]) ?? asString(block["content"]);
247
+ if (text)
248
+ parts.push(text);
249
+ }
250
+ return parts.join("\n\n").trim() || null;
251
+ }
252
+ export function meaningfulHumanText(text) {
253
+ if (!text)
254
+ return null;
255
+ const trimmed = text.trim();
256
+ if (!trimmed)
257
+ return null;
258
+ if (/^<(?:environment_context|user_instructions|developer_instructions|system-reminder)[\s>]/i.test(trimmed)) {
259
+ return null;
260
+ }
261
+ if (/^<(?:local-command-caveat|command-name|command-message|command-args)[\s>]/i.test(trimmed)) {
262
+ return null;
263
+ }
264
+ return trimmed;
265
+ }
266
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/history/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { LocalHistoryError, } from "./types.js";
2
+ export type { LocalHistoryArchiveState, LocalHistoryDiscoverOptions, LocalHistoryErrorCode, LocalHistoryEvent, LocalHistoryFingerprintOptions, LocalHistoryOps, LocalHistoryProbeOptions, LocalHistoryProbeResult, LocalHistoryReadOptions, LocalHistorySession, LocalHistorySourceFingerprint, LocalHistoryUserEvent, LocalHistoryYield, } from "./types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/history/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,8BAA8B,EAC9B,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { LocalHistoryError, } from "./types.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/history/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,75 @@
1
+ import type { BaseStreamEventFields, StreamEvent } from "../types.js";
2
+ export interface LocalHistoryDiscoverOptions {
3
+ includeArchived?: boolean;
4
+ mainSessionsOnly?: boolean;
5
+ requireUserMessage?: boolean;
6
+ cwd?: string;
7
+ limit?: number;
8
+ env?: Record<string, string>;
9
+ }
10
+ export interface LocalHistoryProbeOptions {
11
+ limit?: number;
12
+ env?: Record<string, string>;
13
+ }
14
+ export interface LocalHistoryProbeResult {
15
+ providerType: string;
16
+ homeAvailable: boolean;
17
+ historyAvailable: boolean;
18
+ /** A file count only. It is not an eligible-session count. */
19
+ approximateCount?: number;
20
+ }
21
+ export type LocalHistoryArchiveState = "active" | "archived" | "unknown";
22
+ export interface LocalHistorySourceFingerprint {
23
+ size: number;
24
+ /** String because nanosecond timestamps can exceed Number.MAX_SAFE_INTEGER. */
25
+ modifiedAtNs: string;
26
+ sha256?: string;
27
+ }
28
+ export interface LocalHistorySession {
29
+ version: 1;
30
+ providerType: string;
31
+ externalSessionId: string;
32
+ /** Local-runtime detail. Network hosts must not serialize this to clients. */
33
+ transcriptPath: string;
34
+ cwd: string | null;
35
+ title: string | null;
36
+ startedAt: string | null;
37
+ updatedAt: string;
38
+ branch: string | null;
39
+ gitOriginUrl: string | null;
40
+ archiveState: LocalHistoryArchiveState;
41
+ hasUserMessage: boolean;
42
+ source: LocalHistorySourceFingerprint;
43
+ }
44
+ export type LocalHistoryUserEvent = {
45
+ type: "user";
46
+ text: string;
47
+ } & BaseStreamEventFields;
48
+ export type LocalHistoryEvent = StreamEvent | LocalHistoryUserEvent;
49
+ export interface LocalHistoryYield {
50
+ event: LocalHistoryEvent & {
51
+ eventId: string;
52
+ };
53
+ lineStartOffset: number;
54
+ nextOffset: number;
55
+ /** Disambiguates several normalized events produced from one source record. */
56
+ partIndex: number;
57
+ }
58
+ export interface LocalHistoryReadOptions {
59
+ fromOffset?: number;
60
+ }
61
+ export interface LocalHistoryFingerprintOptions {
62
+ sha256?: boolean;
63
+ }
64
+ export type LocalHistoryErrorCode = "home_missing" | "permission_denied" | "source_missing" | "unsupported_format" | "source_changed_during_read" | "invalid_session" | "io_error";
65
+ export declare class LocalHistoryError extends Error {
66
+ readonly code: LocalHistoryErrorCode;
67
+ constructor(code: LocalHistoryErrorCode, message: string, options?: ErrorOptions);
68
+ }
69
+ export interface LocalHistoryOps {
70
+ probe(options?: LocalHistoryProbeOptions): Promise<LocalHistoryProbeResult>;
71
+ discover(options?: LocalHistoryDiscoverOptions): AsyncIterable<LocalHistorySession>;
72
+ read(session: LocalHistorySession, options?: LocalHistoryReadOptions): AsyncIterable<LocalHistoryYield>;
73
+ fingerprint(session: LocalHistorySession, options?: LocalHistoryFingerprintOptions): Promise<LocalHistorySourceFingerprint>;
74
+ }
75
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/history/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export class LocalHistoryError extends Error {
2
+ code;
3
+ constructor(code, message, options) {
4
+ super(message, options);
5
+ this.name = "LocalHistoryError";
6
+ this.code = code;
7
+ }
8
+ }
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/history/types.ts"],"names":[],"mappings":"AAkFA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,CAAwB;IAErC,YAAY,IAA2B,EAAE,OAAe,EAAE,OAAsB;QAC9E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -36,6 +36,7 @@ export type { GetCodexTranscriptPathOptions, CodexTranscriptLocation, ReadCodexT
36
36
  export { installSkills, removeSkills, listInstalledSkills, resolveSkillsHome, resolveSkillsWorkspace, resolveNativeSkillsHome, resolveNativeSkillsWorkspace, ensureSkillSymlink, } from "./utils/skills.js";
37
37
  export { commandInventoryFromEvent, discoverSkillCommands, reconcileSkillCommands, formatSlashInvocation, invokeSkill, buildExpandedSkillPrompt, } from "./utils/skill-commands.js";
38
38
  export type { ProviderModule, ProviderCapabilities, ProviderRuntimeContext, ProviderRuntimeReport, CapabilityStatus, AgentMode, ListModesOptions, ExecutionContext, ExecutionResult, ExecutionStatus, ProviderConfig, ProviderEndpointConfig, McpServerConfig, StreamEvent, SessionCodec, SessionState, TokenUsage, ModelUsage, RateLimitInfo, BaseStreamEventFields, LifecycleEvent, QuotaStatus, QuotaContext, AuthMethod, AuthSource, AuthOption, AuthReport, AuthResolveContext, AuthIdentity, AuthRequiredReason, BinaryStatus, ProviderModel, ListModelsOptions, ProviderAuthMethod, ProviderAuthFlow, UpstreamProvider, UpstreamProviderManager, SessionContext, AgentSession, SendHandle, SendOptions, CancelResult, StopTaskResult, TurnResult, UserInputRequest, UserInputResponse, ElicitationRequest, ElicitationResponse, HookCallbackRequest, HookCallbackResponse, TranscriptOps, TranscriptYield, TranscriptPeek, FoundTranscript, GoalStatus, GoalBlockedReason, GoalSource, GoalCapability, GoalState, GoalOptions, SetGoalResult, ClearGoalResult, GoalSentinel, GoalSentinelVerdict, GoalSentinelContext, } from "./types.js";
39
+ export type { LocalHistoryArchiveState, LocalHistoryDiscoverOptions, LocalHistoryErrorCode, LocalHistoryEvent, LocalHistoryFingerprintOptions, LocalHistoryOps, LocalHistoryProbeOptions, LocalHistoryProbeResult, LocalHistoryReadOptions, LocalHistorySession, LocalHistorySourceFingerprint, LocalHistoryUserEvent, LocalHistoryYield, } from "./history/index.js";
39
40
  export { GoalController, EMULATED_GOAL_CAPABILITY, GOAL_OBJECTIVE_MAX, CODEX_GOAL_TOOLS, isTerminalGoalStatus, goalStateFromEvent, latestGoalFromEvents, normalizeClaudeGoalAttachment, normalizeCodexGoalStatus, normalizeCodexGoalRecord, createDefaultSentinel, parseAssessment, } from "./goals/index.js";
40
41
  export type { GoalControllerDeps, GoalStatusEvent, NormalizedGoalFields, } from "./goals/index.js";
41
42
  export { SESSION_RECORD_VERSION, MalformedSessionRecordError, createSessionRecord, isSessionRecord, assertSessionRecord, } from "./sessions/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAajC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,SAAS,EACT,UAAU,EACV,UAAU,EACV,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAU1C,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAUpF,SAAS;AACT,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAuEnC,QAAQ;AACR,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAO1B,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAajC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,SAAS,EACT,UAAU,EACV,UAAU,EACV,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAU1C,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAUpF,SAAS;AACT,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAyFnC,QAAQ;AACR,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAO1B,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LocalHistoryOps } from "../../history/types.js";
2
+ export declare const claudeLocalHistory: LocalHistoryOps;
3
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/history.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,eAAe,EAIhB,MAAM,wBAAwB,CAAC;AAsNhC,eAAO,MAAM,kBAAkB,EAAE,eAiEhC,CAAC"}