@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
@@ -0,0 +1,248 @@
1
+ import * as path from "node:path";
2
+ import { readdir } from "node:fs/promises";
3
+ import { UUID_JSONL_RE, asRecord, asString, cleanTitle, isDirectory, isoDate, meaningfulHumanText, readJsonlRecords, recentEligible, sourceFingerprint, textFromContent, } from "../../history/fs.js";
4
+ import { parseStreamLine } from "./parse.js";
5
+ import { resolveClaudeHome } from "./transcript.js";
6
+ const TITLE_SCAN_BYTES = 64 * 1024;
7
+ const MAX_DISCOVERY_SCAN_BYTES = 4 * 1024 * 1024;
8
+ const DEFAULT_PROBE_LIMIT = 100;
9
+ const DISCOVERY_CONCURRENCY = 16;
10
+ const DROP_EVENT_TYPES = new Set([
11
+ "assistant_delta",
12
+ "thinking_delta",
13
+ "permission_mode",
14
+ "rate_limit",
15
+ "unknown",
16
+ ]);
17
+ function claudeHome(options) {
18
+ return resolveClaudeHome(options?.env?.["CLAUDE_CONFIG_DIR"]);
19
+ }
20
+ async function listClaudeSessionFiles(home, options = {}) {
21
+ const projectsRoot = path.join(home, "projects");
22
+ let projects;
23
+ try {
24
+ projects = await readdir(projectsRoot, { withFileTypes: true });
25
+ }
26
+ catch {
27
+ return [];
28
+ }
29
+ projects.sort((a, b) => a.name.localeCompare(b.name));
30
+ const files = [];
31
+ const cap = Math.max(1, options.limit ?? Number.MAX_SAFE_INTEGER);
32
+ for (const project of projects) {
33
+ if (files.length >= cap)
34
+ break;
35
+ if (!project.isDirectory())
36
+ continue;
37
+ let entries;
38
+ try {
39
+ entries = await readdir(path.join(projectsRoot, project.name), { withFileTypes: true });
40
+ }
41
+ catch {
42
+ continue;
43
+ }
44
+ entries.sort((a, b) => a.name.localeCompare(b.name));
45
+ for (const entry of entries) {
46
+ if (files.length >= cap)
47
+ break;
48
+ // Top-level UUID files are main sessions. Nested subagent directories and
49
+ // symlinks are deliberately ignored.
50
+ if (entry.isFile() && UUID_JSONL_RE.test(entry.name)) {
51
+ files.push(path.join(projectsRoot, project.name, entry.name));
52
+ }
53
+ if (options.includeSubagents && entry.isDirectory() && UUID_JSONL_RE.test(`${entry.name}.jsonl`)) {
54
+ const subagentsDir = path.join(projectsRoot, project.name, entry.name, "subagents");
55
+ let subagents;
56
+ try {
57
+ subagents = await readdir(subagentsDir, { withFileTypes: true });
58
+ }
59
+ catch {
60
+ continue;
61
+ }
62
+ subagents.sort((a, b) => a.name.localeCompare(b.name));
63
+ for (const subagent of subagents) {
64
+ if (files.length >= cap)
65
+ break;
66
+ if (subagent.isFile() && /^agent-[a-z0-9]+\.jsonl$/i.test(subagent.name)) {
67
+ files.push(path.join(subagentsDir, subagent.name));
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ return files;
74
+ }
75
+ function subagentParentId(transcriptPath) {
76
+ if (path.basename(path.dirname(transcriptPath)) !== "subagents")
77
+ return null;
78
+ return path.basename(path.dirname(path.dirname(transcriptPath))) || null;
79
+ }
80
+ async function parentSessionMetadata(transcriptPath) {
81
+ const parentId = subagentParentId(transcriptPath);
82
+ if (!parentId)
83
+ return { cwd: null, branch: null };
84
+ const projectDir = path.dirname(path.dirname(path.dirname(transcriptPath)));
85
+ const parentTranscript = path.join(projectDir, `${parentId}.jsonl`);
86
+ for await (const line of readJsonlRecords(parentTranscript)) {
87
+ const cwd = absoluteCwd(asString(line.raw["cwd"]));
88
+ const branch = asString(line.raw["gitBranch"]);
89
+ if (cwd)
90
+ return { cwd, branch };
91
+ if (line.nextOffset >= TITLE_SCAN_BYTES)
92
+ break;
93
+ }
94
+ return { cwd: null, branch: null };
95
+ }
96
+ function claudeUserText(record) {
97
+ if (record["type"] !== "user")
98
+ return null;
99
+ const message = asRecord(record["message"]);
100
+ if (!message || message["role"] !== "user")
101
+ return null;
102
+ return meaningfulHumanText(textFromContent(message["content"], new Set(["text", "input_text"])));
103
+ }
104
+ function absoluteCwd(value) {
105
+ return value && path.isAbsolute(value) ? value : null;
106
+ }
107
+ async function inspectClaudeSession(transcriptPath, options) {
108
+ const fileIdentity = path.basename(transcriptPath, ".jsonl");
109
+ const parentId = subagentParentId(transcriptPath);
110
+ const externalSessionId = parentId
111
+ ? `subagent:${parentId}:${fileIdentity}`
112
+ : fileIdentity;
113
+ let cwd = null;
114
+ let title = null;
115
+ let firstPrompt = null;
116
+ let startedAt = null;
117
+ let branch = null;
118
+ let sidechain = false;
119
+ for await (const line of readJsonlRecords(transcriptPath)) {
120
+ const record = line.raw;
121
+ if (record["isSidechain"] === true)
122
+ sidechain = true;
123
+ cwd ??= absoluteCwd(asString(record["cwd"]));
124
+ startedAt ??= isoDate(record["timestamp"]);
125
+ branch ??= asString(record["gitBranch"]);
126
+ if (record["type"] === "ai-title")
127
+ title ??= cleanTitle(asString(record["aiTitle"]));
128
+ firstPrompt ??= claudeUserText(record);
129
+ if (cwd && firstPrompt && (title || line.nextOffset >= TITLE_SCAN_BYTES))
130
+ break;
131
+ if (line.nextOffset >= MAX_DISCOVERY_SCAN_BYTES)
132
+ break;
133
+ }
134
+ if (!cwd && parentId) {
135
+ const parent = await parentSessionMetadata(transcriptPath);
136
+ cwd = parent.cwd;
137
+ branch ??= parent.branch;
138
+ }
139
+ if ((options.mainSessionsOnly ?? true) && sidechain)
140
+ return null;
141
+ const hasUserMessage = firstPrompt !== null;
142
+ if ((options.requireUserMessage ?? true) && !hasUserMessage)
143
+ return null;
144
+ if ((options.mainSessionsOnly ?? true) && !cwd)
145
+ return null;
146
+ if (options.cwd && (!cwd || path.normalize(cwd) !== path.normalize(options.cwd)))
147
+ return null;
148
+ const source = await sourceFingerprint(transcriptPath);
149
+ return {
150
+ version: 1,
151
+ providerType: "claude",
152
+ externalSessionId,
153
+ transcriptPath,
154
+ cwd,
155
+ title: title ?? cleanTitle(firstPrompt),
156
+ startedAt,
157
+ updatedAt: new Date(Number(BigInt(source.modifiedAtNs) / 1000000n)).toISOString(),
158
+ branch,
159
+ gitOriginUrl: null,
160
+ archiveState: "unknown",
161
+ hasUserMessage,
162
+ source,
163
+ };
164
+ }
165
+ function baseFields(session, raw, eventId) {
166
+ const message = asRecord(raw["message"]);
167
+ return {
168
+ timestamp: isoDate(raw["timestamp"], session.startedAt ?? new Date(0).toISOString()),
169
+ providerType: "claude",
170
+ sessionId: session.externalSessionId,
171
+ messageId: asString(message?.["id"]),
172
+ eventId,
173
+ turnId: null,
174
+ parentToolCallId: asString(raw["parent_tool_use_id"]),
175
+ raw,
176
+ };
177
+ }
178
+ function normalizedClaudeEvents(session, raw, text, eventId) {
179
+ return parseStreamLine(text)
180
+ .filter((event) => !DROP_EVENT_TYPES.has(event.type))
181
+ .map((event) => ({
182
+ ...event,
183
+ timestamp: isoDate(raw["timestamp"], event.timestamp),
184
+ providerType: "claude",
185
+ sessionId: session.externalSessionId,
186
+ eventId,
187
+ raw,
188
+ }));
189
+ }
190
+ export const claudeLocalHistory = {
191
+ async probe(options) {
192
+ const home = claudeHome(options);
193
+ const homeAvailable = await isDirectory(home);
194
+ const files = homeAvailable
195
+ ? await listClaudeSessionFiles(home, { limit: options?.limit ?? DEFAULT_PROBE_LIMIT })
196
+ : [];
197
+ return {
198
+ providerType: "claude",
199
+ homeAvailable,
200
+ historyAvailable: files.length > 0,
201
+ approximateCount: files.length,
202
+ };
203
+ },
204
+ async *discover(options = {}) {
205
+ const files = await listClaudeSessionFiles(claudeHome(options), {
206
+ includeSubagents: options.mainSessionsOnly === false,
207
+ });
208
+ const sessions = await recentEligible(files, { limit: options.limit, concurrency: DISCOVERY_CONCURRENCY }, async (filePath) => {
209
+ try {
210
+ return await inspectClaudeSession(filePath, options);
211
+ }
212
+ catch {
213
+ return null;
214
+ }
215
+ });
216
+ for (const session of sessions)
217
+ yield session;
218
+ },
219
+ async *read(session, options = {}) {
220
+ if (session.providerType !== "claude" || !path.isAbsolute(session.transcriptPath)) {
221
+ throw new Error("Invalid Claude local history session");
222
+ }
223
+ for await (const line of readJsonlRecords(session.transcriptPath, options.fromOffset ?? 0, { rejectChanges: true })) {
224
+ const eventId = asString(line.raw["uuid"])
225
+ ?? `claude:${session.externalSessionId}:${line.lineStartOffset}`;
226
+ const events = [];
227
+ const userText = claudeUserText(line.raw);
228
+ if (userText) {
229
+ events.push({ type: "user", text: userText, ...baseFields(session, line.raw, eventId) });
230
+ }
231
+ events.push(...normalizedClaudeEvents(session, line.raw, line.text, eventId));
232
+ for (let partIndex = 0; partIndex < events.length; partIndex++) {
233
+ yield {
234
+ event: events[partIndex],
235
+ lineStartOffset: line.lineStartOffset,
236
+ nextOffset: line.nextOffset,
237
+ partIndex,
238
+ };
239
+ }
240
+ }
241
+ },
242
+ fingerprint(session, options) {
243
+ if (session.providerType !== "claude")
244
+ throw new Error("Invalid Claude local history session");
245
+ return sourceFingerprint(session.transcriptPath, options?.sha256 ?? false);
246
+ },
247
+ };
248
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/providers/claude/history.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2D,MAAM,gBAAgB,CAAC;AAkB9G,eAAO,MAAM,cAAc,EAAE,cAwC5B,CAAC;AAEF,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2D,MAAM,gBAAgB,CAAC;AAkB9G,eAAO,MAAM,cAAc,EAAE,cA0D5B,CAAC;AAEF,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
@@ -33,6 +33,7 @@ export const claudeProvider = {
33
33
  goals: claudeGoalCapability,
34
34
  durableSessions: true,
35
35
  durableHistory: true,
36
+ localHistory: true,
36
37
  },
37
38
  // Heavy machinery (execute.ts, session.ts, attach.ts) loads lazily on first
38
39
  // use — every ProviderModule method is already async, so this is invisible to
@@ -51,6 +52,23 @@ export const claudeProvider = {
51
52
  ]);
52
53
  return historyFromSessionAttachment("claude", await attachClaudeSession(record, opts));
53
54
  },
55
+ localHistory: {
56
+ probe: (options) => import("./history.js").then((module) => module.claudeLocalHistory.probe(options)),
57
+ discover: (options) => ({
58
+ async *[Symbol.asyncIterator]() {
59
+ const module = await import("./history.js");
60
+ yield* module.claudeLocalHistory.discover(options);
61
+ },
62
+ }),
63
+ read: (session, options) => ({
64
+ async *[Symbol.asyncIterator]() {
65
+ const module = await import("./history.js");
66
+ yield* module.claudeLocalHistory.read(session, options);
67
+ },
68
+ }),
69
+ fingerprint: (session, options) => import("./history.js")
70
+ .then((module) => module.claudeLocalHistory.fingerprint(session, options)),
71
+ },
54
72
  };
55
73
  export { getClaudeTranscriptPath, findClaudeTranscriptBySessionId, readClaudeTranscript, peekClaudeTranscript, claudeTranscriptOps, sanitizeProjectPath, resolveClaudeHome, canonicalizeCwd, MAX_SANITIZED_LENGTH, } from "./transcript.js";
56
74
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/claude/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/claude/index.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import type { AttachOptions, SessionAttachment, SessionRecord } from "../../type
2
2
  /**
3
3
  * Read-only reattachment to a durable Codex session. Same skeleton as Claude,
4
4
  * with two deltas: classify via the rollout's last line, and replay through
5
- * `codexLineToStreamEvents` (Codex has no wire ids, so `eventId` is always null
6
- * — hosts gate replay dedup on their own running flag, per spec §9.7).
5
+ * `codexLineToStreamEvents`. File-backed transcript lines carry deterministic
6
+ * synthetic event ids so replay can be deduplicated across process restarts.
7
7
  */
8
8
  export declare function attachCodexSession(record: SessionRecord, opts?: AttachOptions): Promise<SessionAttachment>;
9
9
  //# sourceMappingURL=attach.d.ts.map
@@ -52,8 +52,8 @@ async function latestTurnBoundary(filePath, sessionId) {
52
52
  /**
53
53
  * Read-only reattachment to a durable Codex session. Same skeleton as Claude,
54
54
  * with two deltas: classify via the rollout's last line, and replay through
55
- * `codexLineToStreamEvents` (Codex has no wire ids, so `eventId` is always null
56
- * — hosts gate replay dedup on their own running flag, per spec §9.7).
55
+ * `codexLineToStreamEvents`. File-backed transcript lines carry deterministic
56
+ * synthetic event ids so replay can be deduplicated across process restarts.
57
57
  */
58
58
  export async function attachCodexSession(record, opts) {
59
59
  assertSessionRecord(record);
@@ -102,7 +102,7 @@ export async function attachCodexSession(record, opts) {
102
102
  transcript,
103
103
  lastTurn,
104
104
  // 4. Replay: map each rollout line through the normalizer; one yield per
105
- // produced event, all sharing the line's offset, eventId always null.
105
+ // produced event, all sharing the line's offset and source event id.
106
106
  catchUp(catchOpts) {
107
107
  if (!transcript)
108
108
  return EMPTY;
@@ -115,7 +115,7 @@ export async function attachCodexSession(record, opts) {
115
115
  ...(catchOpts?.fromOffset !== undefined ? { fromOffset: catchOpts.fromOffset } : {}),
116
116
  })) {
117
117
  for (const event of codexLineToStreamEvents(line, { sessionId: sid })) {
118
- yield { event, offset, eventId: null };
118
+ yield { event, offset, eventId: event.eventId };
119
119
  }
120
120
  }
121
121
  },
@@ -1 +1 @@
1
- {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/providers/codex/attach.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/providers/codex/attach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { LocalHistoryOps } from "../../history/types.js";
2
+ export declare const codexLocalHistory: LocalHistoryOps;
3
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/history.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,eAAe,EAIhB,MAAM,wBAAwB,CAAC;AA8ThC,eAAO,MAAM,iBAAiB,EAAE,eAsE/B,CAAC"}