@excitedjs/agent-runtime-claude-code 0.5.0-beta.167 → 1.0.0-beta.169

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 (94) hide show
  1. package/README.md +41 -1
  2. package/dist/args.d.ts +2 -0
  3. package/dist/args.d.ts.map +1 -1
  4. package/dist/args.js +5 -0
  5. package/dist/args.js.map +1 -1
  6. package/dist/index.d.ts +2 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/provider.d.ts +5 -0
  10. package/dist/provider.d.ts.map +1 -1
  11. package/dist/provider.js +9 -4
  12. package/dist/provider.js.map +1 -1
  13. package/dist/rpc.d.ts +14 -1
  14. package/dist/rpc.d.ts.map +1 -1
  15. package/dist/rpc.js +194 -53
  16. package/dist/rpc.js.map +1 -1
  17. package/dist/runtime-deps.d.ts +29 -0
  18. package/dist/runtime-deps.d.ts.map +1 -0
  19. package/dist/runtime-deps.js +2 -0
  20. package/dist/runtime-deps.js.map +1 -0
  21. package/dist/runtime-session.d.ts +13 -0
  22. package/dist/runtime-session.d.ts.map +1 -0
  23. package/dist/runtime-session.js +41 -0
  24. package/dist/runtime-session.js.map +1 -0
  25. package/dist/runtime-turn.d.ts +7 -0
  26. package/dist/runtime-turn.d.ts.map +1 -0
  27. package/dist/runtime-turn.js +21 -0
  28. package/dist/runtime-turn.js.map +1 -0
  29. package/dist/runtime.d.ts +30 -131
  30. package/dist/runtime.d.ts.map +1 -1
  31. package/dist/runtime.js +258 -225
  32. package/dist/runtime.js.map +1 -1
  33. package/dist/skill-adapter.d.ts +11 -1
  34. package/dist/skill-adapter.d.ts.map +1 -1
  35. package/dist/skill-adapter.js +60 -7
  36. package/dist/skill-adapter.js.map +1 -1
  37. package/dist/skill-materializer.d.ts +6 -0
  38. package/dist/skill-materializer.d.ts.map +1 -0
  39. package/dist/skill-materializer.js +45 -0
  40. package/dist/skill-materializer.js.map +1 -0
  41. package/dist/source-reservation.d.ts +6 -0
  42. package/dist/source-reservation.d.ts.map +1 -0
  43. package/dist/source-reservation.js +48 -0
  44. package/dist/source-reservation.js.map +1 -0
  45. package/dist/stream.d.ts +1 -1
  46. package/dist/stream.d.ts.map +1 -1
  47. package/dist/stream.js +21 -1
  48. package/dist/stream.js.map +1 -1
  49. package/dist/supervisor.d.ts.map +1 -1
  50. package/dist/supervisor.js +63 -10
  51. package/dist/supervisor.js.map +1 -1
  52. package/dist/transcript/budget.d.ts +8 -0
  53. package/dist/transcript/budget.d.ts.map +1 -0
  54. package/dist/transcript/budget.js +9 -0
  55. package/dist/transcript/budget.js.map +1 -0
  56. package/dist/transcript/completion.d.ts +8 -0
  57. package/dist/transcript/completion.d.ts.map +1 -0
  58. package/dist/transcript/completion.js +44 -0
  59. package/dist/transcript/completion.js.map +1 -0
  60. package/dist/transcript/cursor.d.ts +25 -0
  61. package/dist/transcript/cursor.d.ts.map +1 -0
  62. package/dist/transcript/cursor.js +62 -0
  63. package/dist/transcript/cursor.js.map +1 -0
  64. package/dist/transcript/error.d.ts +9 -0
  65. package/dist/transcript/error.d.ts.map +1 -0
  66. package/dist/transcript/error.js +9 -0
  67. package/dist/transcript/error.js.map +1 -0
  68. package/dist/transcript/native-hash.d.ts +2 -0
  69. package/dist/transcript/native-hash.d.ts.map +1 -0
  70. package/dist/transcript/native-hash.js +79 -0
  71. package/dist/transcript/native-hash.js.map +1 -0
  72. package/dist/transcript/opened-file.d.ts +13 -0
  73. package/dist/transcript/opened-file.d.ts.map +1 -0
  74. package/dist/transcript/opened-file.js +110 -0
  75. package/dist/transcript/opened-file.js.map +1 -0
  76. package/dist/transcript/parallel-tools.d.ts +6 -0
  77. package/dist/transcript/parallel-tools.d.ts.map +1 -0
  78. package/dist/transcript/parallel-tools.js +123 -0
  79. package/dist/transcript/parallel-tools.js.map +1 -0
  80. package/dist/transcript/path.d.ts +25 -0
  81. package/dist/transcript/path.d.ts.map +1 -0
  82. package/dist/transcript/path.js +253 -0
  83. package/dist/transcript/path.js.map +1 -0
  84. package/dist/transcript/reader.d.ts +7 -0
  85. package/dist/transcript/reader.d.ts.map +1 -0
  86. package/dist/transcript/reader.js +476 -0
  87. package/dist/transcript/reader.js.map +1 -0
  88. package/dist/transcript/rewrites.d.ts +5 -0
  89. package/dist/transcript/rewrites.d.ts.map +1 -0
  90. package/dist/transcript/rewrites.js +65 -0
  91. package/dist/transcript/rewrites.js.map +1 -0
  92. package/dist/types.d.ts +7 -0
  93. package/dist/types.d.ts.map +1 -1
  94. package/package.json +3 -3
@@ -0,0 +1,253 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { opendir, realpath } from 'node:fs/promises';
3
+ import { dirname, isAbsolute, join, relative, resolve, } from 'node:path';
4
+ import { promisify } from 'node:util';
5
+ import { isPathWithin } from '@excitedjs/dreamux-utils';
6
+ import { createClaudeTranscriptBudget, } from './budget.js';
7
+ import { ClaudeTranscriptError } from './error.js';
8
+ import { claudeNativePathHash } from './native-hash.js';
9
+ import { openClaudeTranscript, validateClaudeSessionEvidence, } from './opened-file.js';
10
+ const MAX_SANITIZED_LENGTH = 200;
11
+ const SESSION_FILENAME = /^[0-9a-f]{8}-[0-9a-f-]{27}\.jsonl$/i;
12
+ const execFileAsync = promisify(execFile);
13
+ export function claudeTranscriptRoots(env = process.env, runtimeCwd = process.cwd()) {
14
+ const configured = env['CLAUDE_CONFIG_DIR'];
15
+ const configHome = (configured === undefined || configured === ''
16
+ ? join(requireHome(env), '.claude')
17
+ : isAbsolute(configured)
18
+ ? configured
19
+ : resolve(runtimeCwd, configured)).normalize('NFC');
20
+ return { configHome, projects: join(configHome, 'projects') };
21
+ }
22
+ export async function deriveClaudeTranscriptPath(sessionId, cwd, env = process.env) {
23
+ assertSessionId(sessionId);
24
+ const roots = claudeTranscriptRoots(env, cwd);
25
+ const canonicalCwd = await canonicalRuntimeCwd(cwd);
26
+ const path = join(roots.projects, sanitizePath(canonicalCwd.normalize('NFC')), `${sessionId}.jsonl`);
27
+ return canonicalProspectivePath(path, roots.projects);
28
+ }
29
+ export async function locateClaudeTranscript(input) {
30
+ assertSessionId(input.sessionId);
31
+ const budget = input.budget ?? createClaudeTranscriptBudget();
32
+ const roots = claudeTranscriptRoots(input.env, input.cwd);
33
+ if (input.locator !== null && input.locator !== undefined) {
34
+ try {
35
+ return await validateClaudeTranscriptPath(input.locator, input.sessionId, roots);
36
+ }
37
+ catch (error) {
38
+ if (!(error instanceof ClaudeTranscriptError) ||
39
+ error.reason !== 'not_found') {
40
+ throw error;
41
+ }
42
+ }
43
+ }
44
+ const candidates = await discoveryCandidates({
45
+ roots,
46
+ sessionId: input.sessionId,
47
+ cwd: input.cwd,
48
+ env: input.env,
49
+ budget,
50
+ worktreePaths: input.worktreePaths,
51
+ });
52
+ for (const candidate of candidates) {
53
+ try {
54
+ return await validateClaudeTranscriptPath(candidate, input.sessionId, roots);
55
+ }
56
+ catch (error) {
57
+ if (error instanceof ClaudeTranscriptError &&
58
+ error.reason === 'not_found') {
59
+ continue;
60
+ }
61
+ throw error;
62
+ }
63
+ }
64
+ throw new ClaudeTranscriptError('not_found', 'Claude Code transcript is unavailable');
65
+ }
66
+ export async function validateClaudeTranscriptPath(candidate, sessionId, roots) {
67
+ if (!isAbsolute(candidate) ||
68
+ !SESSION_FILENAME.test(candidate.split(/[\\/]/).at(-1) ?? '') ||
69
+ !candidate.endsWith(`${sessionId}.jsonl`)) {
70
+ throw new ClaudeTranscriptError('invalid', 'Claude Code transcript locator is not a native session path');
71
+ }
72
+ const canonicalProjects = await canonicalExistingRoot(roots.projects);
73
+ const opened = await openClaudeTranscript(candidate, canonicalProjects);
74
+ try {
75
+ if (opened.size === 0) {
76
+ throw new ClaudeTranscriptError('not_found', 'Claude Code transcript is unavailable');
77
+ }
78
+ await validateClaudeSessionEvidence(opened, sessionId);
79
+ return {
80
+ path: opened.path,
81
+ root: canonicalProjects,
82
+ size: opened.size,
83
+ dev: opened.dev,
84
+ ino: opened.ino,
85
+ };
86
+ }
87
+ finally {
88
+ await opened.handle.close();
89
+ }
90
+ }
91
+ function sanitizePath(name) {
92
+ const sanitized = name.replace(/[^a-zA-Z0-9]/g, '-');
93
+ if (sanitized.length <= MAX_SANITIZED_LENGTH)
94
+ return sanitized;
95
+ return (`${sanitized.slice(0, MAX_SANITIZED_LENGTH)}-` +
96
+ claudeNativePathHash(name));
97
+ }
98
+ async function discoveryCandidates(input) {
99
+ const result = [];
100
+ const seen = new Set();
101
+ let projectDirectories = null;
102
+ const readProjects = () => {
103
+ projectDirectories ??= readProjectDirectories(input.roots, input.budget);
104
+ return projectDirectories;
105
+ };
106
+ const pushProjectCandidates = async (cwd) => {
107
+ const canonical = await canonicalRuntimeCwd(cwd);
108
+ const exact = await deriveClaudeTranscriptPath(input.sessionId, canonical, input.env);
109
+ pushUnique(result, seen, exact);
110
+ const sanitized = sanitizePath(canonical.normalize('NFC'));
111
+ if (sanitized.length <= MAX_SANITIZED_LENGTH)
112
+ return;
113
+ const prefix = sanitized.slice(0, MAX_SANITIZED_LENGTH) + '-';
114
+ const entries = await readProjects();
115
+ for (const entry of entries) {
116
+ if (entry.startsWith(prefix)) {
117
+ pushUnique(result, seen, join(input.roots.projects, entry, `${input.sessionId}.jsonl`));
118
+ }
119
+ }
120
+ };
121
+ await pushProjectCandidates(input.cwd);
122
+ const worktrees = input.worktreePaths ?? (await discoverWorktreePaths(input.cwd));
123
+ for (const worktree of worktrees) {
124
+ input.budget.inspect();
125
+ if (resolve(worktree) !== resolve(input.cwd)) {
126
+ await pushProjectCandidates(worktree);
127
+ }
128
+ }
129
+ const projects = await readProjects();
130
+ for (const project of projects) {
131
+ pushUnique(result, seen, join(input.roots.projects, project, `${input.sessionId}.jsonl`));
132
+ }
133
+ return result;
134
+ }
135
+ async function readProjectDirectories(roots, budget) {
136
+ let directory;
137
+ try {
138
+ directory = await opendir(roots.projects);
139
+ }
140
+ catch (error) {
141
+ if (error.code === 'ENOENT')
142
+ return [];
143
+ throw new ClaudeTranscriptError('unreadable', 'Claude Code transcript root is unreadable', { cause: error });
144
+ }
145
+ const entries = [];
146
+ try {
147
+ for await (const entry of directory) {
148
+ budget.inspect();
149
+ if (entry.isDirectory())
150
+ entries.push(entry.name);
151
+ }
152
+ }
153
+ catch (error) {
154
+ if (error instanceof ClaudeTranscriptError)
155
+ throw error;
156
+ if (error.code === 'ENOENT')
157
+ return entries;
158
+ throw new ClaudeTranscriptError('unreadable', 'Claude Code transcript root is unreadable', { cause: error });
159
+ }
160
+ return entries;
161
+ }
162
+ async function discoverWorktreePaths(cwd) {
163
+ try {
164
+ const { stdout } = await execFileAsync('git', [
165
+ '-c',
166
+ 'core.hooksPath=/dev/null',
167
+ '-c',
168
+ 'core.fsmonitor=',
169
+ 'worktree',
170
+ 'list',
171
+ '--porcelain',
172
+ ], { cwd, timeout: 5_000, windowsHide: true });
173
+ return stdout
174
+ .split('\n')
175
+ .filter((line) => line.startsWith('worktree '))
176
+ .map((line) => line.slice('worktree '.length));
177
+ }
178
+ catch {
179
+ return [];
180
+ }
181
+ }
182
+ async function canonicalProspectivePath(candidate, root) {
183
+ const [canonicalCandidate, canonicalRoot] = await Promise.all([
184
+ canonicalizeProspectivePath(candidate),
185
+ canonicalizeProspectivePath(root),
186
+ ]);
187
+ if (!isPathWithin(canonicalRoot, canonicalCandidate)) {
188
+ throw new ClaudeTranscriptError('locator_outside_root', 'Claude Code transcript locator is outside the native transcript root');
189
+ }
190
+ return canonicalCandidate;
191
+ }
192
+ async function canonicalRuntimeCwd(cwd) {
193
+ try {
194
+ return await realpath(cwd);
195
+ }
196
+ catch (error) {
197
+ if (error.code === 'ENOENT') {
198
+ return resolve(cwd);
199
+ }
200
+ throw new ClaudeTranscriptError('unreadable', 'Claude Code runtime cwd is unreadable', { cause: error });
201
+ }
202
+ }
203
+ async function canonicalizeProspectivePath(path) {
204
+ const absolutePath = resolve(path);
205
+ let ancestor = absolutePath;
206
+ while (true) {
207
+ try {
208
+ const canonicalAncestor = await realpath(ancestor);
209
+ return resolve(canonicalAncestor, relative(ancestor, absolutePath));
210
+ }
211
+ catch (error) {
212
+ const code = error.code;
213
+ if (code !== 'ENOENT') {
214
+ throw new ClaudeTranscriptError('unreadable', 'Claude Code transcript path is unreadable', { cause: error });
215
+ }
216
+ }
217
+ const parent = dirname(ancestor);
218
+ if (parent === ancestor) {
219
+ throw new ClaudeTranscriptError('not_found', 'Claude Code transcript root is unavailable');
220
+ }
221
+ ancestor = parent;
222
+ }
223
+ }
224
+ async function canonicalExistingRoot(root) {
225
+ try {
226
+ return await realpath(root);
227
+ }
228
+ catch (error) {
229
+ if (error.code === 'ENOENT') {
230
+ throw new ClaudeTranscriptError('not_found', 'Claude Code transcript root is unavailable', { cause: error });
231
+ }
232
+ throw new ClaudeTranscriptError('unreadable', 'Claude Code transcript root is unreadable', { cause: error });
233
+ }
234
+ }
235
+ function pushUnique(result, seen, value) {
236
+ if (seen.has(value))
237
+ return;
238
+ seen.add(value);
239
+ result.push(value);
240
+ }
241
+ function assertSessionId(sessionId) {
242
+ if (!/^[0-9a-f]{8}-[0-9a-f-]{27}$/i.test(sessionId)) {
243
+ throw new ClaudeTranscriptError('invalid', 'Claude Code session id is invalid');
244
+ }
245
+ }
246
+ function requireHome(env) {
247
+ const home = env['HOME'];
248
+ if (home === undefined || home === '') {
249
+ throw new ClaudeTranscriptError('not_found', 'Claude Code config home is unavailable');
250
+ }
251
+ return home;
252
+ }
253
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/transcript/path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { AgentRuntimeTranscriptContext, AgentRuntimeTranscriptPage, AgentRuntimeTranscriptQuery } from '@excitedjs/dreamux-types';
2
+ import type { DispatcherClaudeCodeConfig } from '../config.js';
3
+ export declare function readClaudeTranscript(query: AgentRuntimeTranscriptQuery, context: AgentRuntimeTranscriptContext<DispatcherClaudeCodeConfig>, testHooks?: {
4
+ afterLocate?: () => void | Promise<void>;
5
+ maxReadChunkBytes?: number;
6
+ }): Promise<AgentRuntimeTranscriptPage>;
7
+ //# sourceMappingURL=reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/transcript/reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAE5B,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAuD/D,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,2BAA2B,EAClC,OAAO,EAAE,6BAA6B,CAAC,0BAA0B,CAAC,EAClE,SAAS,GAAE;IACT,WAAW,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACvB,GACL,OAAO,CAAC,0BAA0B,CAAC,CAkIrC"}