@excitedjs/agent-runtime-claude-code 0.7.1-beta.259 → 0.8.0-alpha.g2c3ef6556fa8

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 (100) hide show
  1. package/README.md +36 -24
  2. package/dist/activity/cursor.d.ts +0 -1
  3. package/dist/activity/cursor.d.ts.map +1 -1
  4. package/dist/activity/cursor.js +5 -10
  5. package/dist/activity/cursor.js.map +1 -1
  6. package/dist/activity/native-hash.js +1 -3
  7. package/dist/activity/native-hash.js.map +1 -1
  8. package/dist/activity/opened-file.d.ts +1 -3
  9. package/dist/activity/opened-file.d.ts.map +1 -1
  10. package/dist/activity/opened-file.js +17 -20
  11. package/dist/activity/opened-file.js.map +1 -1
  12. package/dist/activity/parallel-tools.js.map +1 -1
  13. package/dist/activity/path.d.ts +4 -7
  14. package/dist/activity/path.d.ts.map +1 -1
  15. package/dist/activity/path.js +38 -48
  16. package/dist/activity/path.js.map +1 -1
  17. package/dist/activity/reader.d.ts +1 -4
  18. package/dist/activity/reader.d.ts.map +1 -1
  19. package/dist/activity/reader.js +38 -68
  20. package/dist/activity/reader.js.map +1 -1
  21. package/dist/activity/rewrites.d.ts.map +1 -1
  22. package/dist/activity/rewrites.js +1 -3
  23. package/dist/activity/rewrites.js.map +1 -1
  24. package/dist/args.d.ts +3 -3
  25. package/dist/args.d.ts.map +1 -1
  26. package/dist/args.js.map +1 -1
  27. package/dist/config.d.ts +9 -22
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +13 -35
  30. package/dist/config.js.map +1 -1
  31. package/dist/control-rpc.d.ts +2 -2
  32. package/dist/control-rpc.d.ts.map +1 -1
  33. package/dist/control-rpc.js.map +1 -1
  34. package/dist/index.d.ts +8 -13
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +8 -12
  37. package/dist/index.js.map +1 -1
  38. package/dist/paths.d.ts +14 -0
  39. package/dist/paths.d.ts.map +1 -0
  40. package/dist/paths.js +38 -0
  41. package/dist/paths.js.map +1 -0
  42. package/dist/plugin.d.ts +16 -0
  43. package/dist/plugin.d.ts.map +1 -0
  44. package/dist/plugin.js +11 -0
  45. package/dist/plugin.js.map +1 -0
  46. package/dist/provider.d.ts +7 -30
  47. package/dist/provider.d.ts.map +1 -1
  48. package/dist/provider.js +9 -32
  49. package/dist/provider.js.map +1 -1
  50. package/dist/rpc.d.ts +17 -10
  51. package/dist/rpc.d.ts.map +1 -1
  52. package/dist/rpc.js +83 -96
  53. package/dist/rpc.js.map +1 -1
  54. package/dist/runtime-activity.d.ts +0 -1
  55. package/dist/runtime-activity.d.ts.map +1 -1
  56. package/dist/runtime-activity.js +53 -57
  57. package/dist/runtime-activity.js.map +1 -1
  58. package/dist/runtime-deps.d.ts +4 -5
  59. package/dist/runtime-deps.d.ts.map +1 -1
  60. package/dist/runtime.d.ts +0 -1
  61. package/dist/runtime.d.ts.map +1 -1
  62. package/dist/runtime.js +29 -22
  63. package/dist/runtime.js.map +1 -1
  64. package/dist/skill-materializer.d.ts.map +1 -1
  65. package/dist/skill-materializer.js +1 -1
  66. package/dist/skill-materializer.js.map +1 -1
  67. package/dist/stream.d.ts +3 -10
  68. package/dist/stream.d.ts.map +1 -1
  69. package/dist/stream.js +12 -17
  70. package/dist/stream.js.map +1 -1
  71. package/dist/supervisor.d.ts +1 -1
  72. package/dist/supervisor.d.ts.map +1 -1
  73. package/dist/supervisor.js +16 -16
  74. package/dist/supervisor.js.map +1 -1
  75. package/dist/tool-display.d.ts.map +1 -1
  76. package/dist/tool-display.js +66 -11
  77. package/dist/tool-display.js.map +1 -1
  78. package/dist/types.d.ts +7 -25
  79. package/dist/types.d.ts.map +1 -1
  80. package/package.json +5 -4
  81. package/dist/activity/budget.d.ts +0 -8
  82. package/dist/activity/budget.d.ts.map +0 -1
  83. package/dist/activity/budget.js +0 -9
  84. package/dist/activity/budget.js.map +0 -1
  85. package/dist/activity/error.d.ts +0 -16
  86. package/dist/activity/error.d.ts.map +0 -1
  87. package/dist/activity/error.js +0 -22
  88. package/dist/activity/error.js.map +0 -1
  89. package/dist/logger.d.ts +0 -7
  90. package/dist/logger.d.ts.map +0 -1
  91. package/dist/logger.js +0 -26
  92. package/dist/logger.js.map +0 -1
  93. package/dist/provider-ref.d.ts +0 -8
  94. package/dist/provider-ref.d.ts.map +0 -1
  95. package/dist/provider-ref.js +0 -8
  96. package/dist/provider-ref.js.map +0 -1
  97. package/dist/runtime-session.d.ts +0 -8
  98. package/dist/runtime-session.d.ts.map +0 -1
  99. package/dist/runtime-session.js +0 -36
  100. package/dist/runtime-session.js.map +0 -1
package/README.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # @excitedjs/agent-runtime-claude-code
2
2
 
3
- The built-in **Claude Code** Agent Runtime provider for
4
- [Dreamux](https://github.com/excitedjs/dreamux), published behind the stable
5
- `builtin:claude-code` alias.
3
+ The built-in **Claude Code** Dreamux plugin, always loaded by
4
+ [Dreamux](https://github.com/excitedjs/dreamux). Its default export is the
5
+ plugin factory: the plugin contributes the Claude Code `AgentRuntimeProvider`,
6
+ published behind the stable `builtin:claude-code` alias.
6
7
 
7
- It implements the public `AgentRuntimeProvider` contract from
8
+ The provider it contributes implements the public `AgentRuntimeProvider`
9
+ contract from
8
10
  [`@excitedjs/dreamux-types`](../../dreamux-types) against a resident `claude`
9
11
  stream-json child: process supervision, the stream-json wire protocol (line
10
12
  framing, result aggregation, control-request replies), pending-request idle
@@ -26,11 +28,20 @@ come from `@excitedjs/dreamux-utils`.
26
28
 
27
29
  ## Loading
28
30
 
29
- Dreamux core resolves `builtin:claude-code` through the generic provider loader
30
- and supplies host contracts through the neutral create context. The package
31
- default-exports that provider factory, so
32
- `loadExternalAgentRuntimeProviders({ refs: ['builtin:claude-code'] })` can load it
33
- through the same package-loader path as external `npm:` providers.
31
+ Dreamux always loads this package's plugin, which contributes the provider
32
+ under `builtin:claude-code` through the neutral plugin `contribute(host)`
33
+ hook; core supplies host contracts through the neutral create context.
34
+ External callers can construct the bare provider directly, without going
35
+ through the plugin:
36
+
37
+ ```ts
38
+ import { createClaudeCodeAgentRuntimeProvider } from '@excitedjs/agent-runtime-claude-code';
39
+ ```
40
+
41
+ The factory accepts the neutral create context plus optional test/embedder
42
+ seams (`resolveBinPath`, `sessionFactory`, `generateSessionId`); the plugin
43
+ (this package's default export) constructs the provider on package defaults
44
+ with none of these set.
34
45
 
35
46
  ## Resident session and request settlement
36
47
 
@@ -49,12 +60,13 @@ follow its result and does not decide when another input can be submitted.
49
60
  Background native turns may run without a submission. Their activity and result
50
61
  boundaries remain observable, but they settle no unrelated request and do not
51
62
  terminate the resident process. Explicit inputs steered into a background turn
52
- settle normally once they join it. Concurrent input requires lifecycle evidence;
53
- sessions without it retain single-input compatibility. Native `cancelled` can
54
- describe a hard failure; it does not imply a user stop. Consumed commands retain
55
- their result membership through terminal lifecycle frames. An unconsumed command
56
- that is cancelled, refused or discarded settles as failed. Every native error
57
- result remains observable, including UUID-less errors and the `success` arm with
63
+ settle normally once they join it. Command-lifecycle admission is assumed
64
+ always supported: there is no capability check, no version gate, and no
65
+ single-input fallback mode. Native `cancelled` can describe a hard failure; it
66
+ does not imply a user stop. Consumed commands retain their result membership
67
+ through terminal lifecycle frames. An unconsumed command that is cancelled,
68
+ refused or discarded settles as failed. Every native error result remains
69
+ observable, including UUID-less errors and the `success` arm with
58
70
  `is_error: true` carrying API error text.
59
71
 
60
72
  A setup error can precede `started` and omit the input UUID. It reports a failed
@@ -66,9 +78,9 @@ Core owns source deduplication, captured recipients and completion-token deliver
66
78
  The provider owns native admission: `failed` means the command was proven not
67
79
  written, while `ambiguous` means a native write may have been accepted and must
68
80
  not be retried automatically. Runtime stop synchronously fences new input,
69
- releases pending capability/write waiters, terminates the supervised process
70
- group with absence proof, resolves unsettled submissions as stopped, and drains
71
- already-started admission calls before it resolves.
81
+ terminates the supervised process group with absence proof, resolves unsettled
82
+ submissions as stopped, and drains already-started admission calls before it
83
+ resolves.
72
84
 
73
85
  ## Native sessions and transcripts
74
86
 
@@ -91,17 +103,17 @@ provide the pinned `sessionId` and optional `outputSchemaEnabled` result contrac
91
103
  the exit handler receives its failure cause.
92
104
 
93
105
  Session implementations own result validation and settlement. Their
94
- `onProtocolEvent` callback reports native activity independently: result events
95
- retain `commandUuids` for observation, and the public `command_lifecycle` variant
96
- reports native command state without deciding settlement in runtime or Core.
97
- An `interrupted` event can report an independently known interruption boundary.
98
- Emitting a callback alone no longer settles a
106
+ `onProtocolEvent` callback reports native activity independently, without
107
+ deciding settlement in runtime or Core: `result` events report a turn's
108
+ terminal outcome, and an `interrupted` event can report an independently known
109
+ interruption boundary. Emitting a callback alone no longer settles a
99
110
  request. These are breaking changes to the Claude-specific extension seam;
100
111
  the neutral `AgentRuntime` and `RuntimeSubmission` contracts are unchanged.
101
112
 
102
113
  ## Direct stream RPC consumers
103
114
 
104
- The exported `ClaudeCodeStreamRpc` has the same single `submit()` path, returning
115
+ `ClaudeCodeStreamRpc` (package-internal; see `./rpc.ts`, no longer part of the
116
+ public barrel) has the same single `submit()` path, returning
105
117
  `Promise<RuntimeAdmission>` in place of `submitTurn()` and `steerTurn()`. Accepted
106
118
  handles own eventual settlement; callers no longer await an aggregate window.
107
119
  Replace `failPending(error)` with `fail(error)` for transport failure or `stop()`
@@ -10,7 +10,6 @@ interface ClaudeCursorEnvelope {
10
10
  rp: number | null;
11
11
  rd: string | null;
12
12
  }
13
- export declare function claudeQueryFingerprint(includeTools: boolean): string;
14
13
  export declare function encodeClaudeCursor(input: {
15
14
  fingerprint: string;
16
15
  generation: string;
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/activity/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACX,MAAM,0BAA0B,CAAC;AAIlC,UAAU,oBAAoB;IAC5B,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,QAAQ,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACnB;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAEpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAG,MAAM,CAaT;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,GAC1B,oBAAoB,CA0BtB;AA2BD,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/activity/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACX,MAAM,0BAA0B,CAAC;AAElC,UAAU,oBAAoB;IAC5B,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,QAAQ,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAG,MAAM,CAaT;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,GAC1B,oBAAoB,CA0BtB;AA0BD,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,CAAC"}
@@ -1,8 +1,4 @@
1
- import { isScanDigest, scanDigest, } from '@excitedjs/dreamux-utils';
2
- import { ClaudeActivityError } from './error.js';
3
- export function claudeQueryFingerprint(includeTools) {
4
- return scanDigest(JSON.stringify({ include_tools: includeTools }));
5
- }
1
+ import { ActivityError, isScanDigest, scanDigest, } from '@excitedjs/dreamux-utils';
6
2
  export function encodeClaudeCursor(input) {
7
3
  const envelope = {
8
4
  v: 1,
@@ -26,13 +22,13 @@ export function decodeClaudeCursor(cursor, expectedFingerprint) {
26
22
  value = JSON.parse(decoded.toString('utf8'));
27
23
  }
28
24
  catch (error) {
29
- throw new ClaudeActivityError('cursor_invalid', 'Claude Code activity cursor is invalid', { cause: error });
25
+ throw new ActivityError('cursor_invalid', 'Claude Code activity cursor is invalid', { cause: error });
30
26
  }
31
27
  if (!isEnvelope(value)) {
32
- throw new ClaudeActivityError('cursor_invalid', 'Claude Code activity cursor is invalid');
28
+ throw new ActivityError('cursor_invalid', 'Claude Code activity cursor is invalid');
33
29
  }
34
30
  if (value.fp !== expectedFingerprint) {
35
- throw new ClaudeActivityError('cursor_query_mismatch', 'Claude Code activity cursor belongs to a different query');
31
+ throw new ActivityError('cursor_query_mismatch', 'Claude Code activity cursor belongs to a different query');
36
32
  }
37
33
  return value;
38
34
  }
@@ -52,8 +48,7 @@ function isEnvelope(value) {
52
48
  Number.isSafeInteger(record['rw']) &&
53
49
  record['rw'] >= 0 &&
54
50
  (record['rp'] === null ||
55
- (Number.isSafeInteger(record['rp']) &&
56
- record['rp'] >= 0)) &&
51
+ (Number.isSafeInteger(record['rp']) && record['rp'] >= 0)) &&
57
52
  (record['rd'] === null || isScanDigest(record['rd'])) &&
58
53
  ((record['rp'] === null && record['rd'] === null) ||
59
54
  (record['rp'] !== null && record['rd'] !== null)));
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/activity/cursor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/activity/cursor.ts"],"names":[],"mappings":"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"}
@@ -18,9 +18,7 @@ function wyhash(input, seed) {
18
18
  const end = length - 4;
19
19
  const quarter = (length >> 3) << 2;
20
20
  left = (read(input, 0, 4) << 32n) | read(input, quarter, 4);
21
- right =
22
- (read(input, end, 4) << 32n) |
23
- read(input, end - quarter, 4);
21
+ right = (read(input, end, 4) << 32n) | read(input, end - quarter, 4);
24
22
  }
25
23
  else if (length > 0) {
26
24
  left =
@@ -1 +1 @@
1
- {"version":3,"file":"native-hash.js","sourceRoot":"","sources":["../../src/activity/native-hash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-hash.js","sourceRoot":"","sources":["../../src/activity/native-hash.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,5 @@ export interface ClaudeOpenedRollout {
7
7
  ino: number | bigint;
8
8
  }
9
9
  export declare function openClaudeRollout(candidate: string, canonicalRoot: string): Promise<ClaudeOpenedRollout>;
10
- export declare function validateClaudeSessionEvidence(opened: ClaudeOpenedRollout, expectedSessionId: string, options?: {
11
- maxReadChunkBytes?: number;
12
- }): Promise<void>;
10
+ export declare function validateClaudeSessionEvidence(opened: ClaudeOpenedRollout, expectedSessionId: string): Promise<void>;
13
11
  //# sourceMappingURL=opened-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opened-file.d.ts","sourceRoot":"","sources":["../../src/activity/opened-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB;AAID,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,CA4D9B;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3C,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
1
+ {"version":3,"file":"opened-file.d.ts","sourceRoot":"","sources":["../../src/activity/opened-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB;AAID,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,CA4D9B;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAuCf"}
@@ -1,7 +1,6 @@
1
1
  import { constants } from 'node:fs';
2
2
  import { open, realpath } from 'node:fs/promises';
3
- import { isPathWithin, readBytesAt, } from '@excitedjs/dreamux-utils';
4
- import { ClaudeActivityError } from './error.js';
3
+ import { ActivityError, isPathWithin, readBytesAt, } from '@excitedjs/dreamux-utils';
5
4
  const MAX_METADATA_BYTES = 1_048_576;
6
5
  export async function openClaudeRollout(candidate, canonicalRoot) {
7
6
  let handle;
@@ -17,10 +16,10 @@ export async function openClaudeRollout(candidate, canonicalRoot) {
17
16
  realpath(candidate),
18
17
  ]);
19
18
  if (!opened.isFile()) {
20
- throw new ClaudeActivityError('invalid', 'Claude Code activity is not a regular file');
19
+ throw new ActivityError('invalid', 'Claude Code activity is not a regular file');
21
20
  }
22
21
  if (!isPathWithin(canonicalRoot, canonicalPath)) {
23
- throw new ClaudeActivityError('locator_outside_root', 'Claude Code activity is unavailable for this session');
22
+ throw new ActivityError('locator_outside_root', 'Claude Code activity is unavailable for this session');
24
23
  }
25
24
  const current = await open(canonicalPath, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0)).catch((error) => {
26
25
  throw classifyOpenError(error);
@@ -28,7 +27,7 @@ export async function openClaudeRollout(candidate, canonicalRoot) {
28
27
  try {
29
28
  const currentStat = await current.stat();
30
29
  if (opened.dev !== currentStat.dev || opened.ino !== currentStat.ino) {
31
- throw new ClaudeActivityError('unreadable', 'Claude Code activity changed while opening');
30
+ throw new ActivityError('unreadable', 'Claude Code activity changed while opening');
32
31
  }
33
32
  }
34
33
  finally {
@@ -44,52 +43,50 @@ export async function openClaudeRollout(candidate, canonicalRoot) {
44
43
  }
45
44
  catch (error) {
46
45
  await handle.close().catch(() => undefined);
47
- if (error instanceof ClaudeActivityError)
46
+ if (error instanceof ActivityError)
48
47
  throw error;
49
- throw new ClaudeActivityError('unreadable', 'Claude Code activity is unreadable', { cause: error });
48
+ throw new ActivityError('unreadable', 'Claude Code activity is unreadable', { cause: error });
50
49
  }
51
50
  }
52
- export async function validateClaudeSessionEvidence(opened, expectedSessionId, options = {}) {
51
+ export async function validateClaudeSessionEvidence(opened, expectedSessionId) {
53
52
  const length = Math.min(opened.size, MAX_METADATA_BYTES + 1);
54
- const data = await readBytesAt(opened.handle, 0, length, {
55
- ...(options.maxReadChunkBytes !== undefined
56
- ? { maxChunkBytes: options.maxReadChunkBytes }
57
- : {}),
58
- });
53
+ const data = await readBytesAt(opened.handle, 0, length);
59
54
  let cursor = 0;
60
55
  while (cursor < data.length) {
61
56
  const newline = data.indexOf(0x0a, cursor);
62
57
  if (newline < 0) {
63
58
  if (opened.size > MAX_METADATA_BYTES) {
64
- throw new ClaudeActivityError('invalid', 'Claude Code activity metadata record is oversized');
59
+ throw new ActivityError('invalid', 'Claude Code activity metadata record is oversized');
65
60
  }
66
61
  break;
67
62
  }
68
63
  const raw = data.subarray(cursor, newline).toString('utf8');
69
64
  const value = parseRecord(raw);
70
65
  if (value === null && raw.trim() !== '') {
71
- throw new ClaudeActivityError('invalid', 'Claude Code activity contains invalid native metadata');
66
+ throw new ActivityError('invalid', 'Claude Code activity contains invalid native metadata');
72
67
  }
73
68
  const sessionId = stringValue(value?.['sessionId']);
74
69
  if (sessionId !== null) {
75
70
  if (sessionId !== expectedSessionId) {
76
- throw new ClaudeActivityError('session_mismatch', 'Claude Code activity does not belong to the selected session');
71
+ throw new ActivityError('session_mismatch', 'Claude Code activity does not belong to the selected session');
77
72
  }
78
73
  return;
79
74
  }
80
75
  cursor = newline + 1;
81
76
  }
82
- throw new ClaudeActivityError('invalid', 'Claude Code activity has no authoritative session metadata');
77
+ throw new ActivityError('invalid', 'Claude Code activity has no authoritative session metadata');
83
78
  }
84
79
  function classifyOpenError(error) {
85
80
  const code = error.code;
86
81
  if (code === 'ENOENT') {
87
- return new ClaudeActivityError('not_found', 'Claude Code activity is unavailable', { cause: error });
82
+ return new ActivityError('not_found', 'Claude Code activity is unavailable', { cause: error });
88
83
  }
89
84
  if (code === 'ELOOP') {
90
- return new ClaudeActivityError('locator_outside_root', 'Claude Code activity is unavailable for this session', { cause: error });
85
+ return new ActivityError('locator_outside_root', 'Claude Code activity is unavailable for this session', { cause: error });
91
86
  }
92
- return new ClaudeActivityError('unreadable', 'Claude Code activity is unreadable', { cause: error });
87
+ return new ActivityError('unreadable', 'Claude Code activity is unreadable', {
88
+ cause: error,
89
+ });
93
90
  }
94
91
  function parseRecord(value) {
95
92
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"opened-file.js","sourceRoot":"","sources":["../../src/activity/opened-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opened-file.js","sourceRoot":"","sources":["../../src/activity/opened-file.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-tools.js","sourceRoot":"","sources":["../../src/activity/parallel-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-tools.js","sourceRoot":"","sources":["../../src/activity/parallel-tools.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,22 @@
1
1
  import type { DreamuxEnvironment } from '@excitedjs/dreamux-types';
2
- import { type ClaudeScanBudget } from './budget.js';
2
+ import { type ScanBudget } from '@excitedjs/dreamux-utils';
3
3
  export interface ClaudeHistoryRoots {
4
4
  configHome: string;
5
5
  projects: string;
6
6
  }
7
- export interface ClaudeValidatedHistory {
7
+ interface ClaudeValidatedHistory {
8
8
  path: string;
9
9
  root: string;
10
10
  size: number;
11
11
  dev: number | bigint;
12
12
  ino: number | bigint;
13
13
  }
14
- export declare function claudeHistoryRoots(env?: DreamuxEnvironment, runtimeCwd?: string): ClaudeHistoryRoots;
15
- export declare function deriveClaudeHistoryPath(sessionId: string, cwd: string, env?: DreamuxEnvironment): Promise<string>;
16
14
  export declare function locateClaudeHistory(input: {
17
15
  sessionId: string;
18
16
  cwd: string;
19
- locator?: string | null;
20
17
  env?: DreamuxEnvironment;
21
- budget?: ClaudeScanBudget;
18
+ budget?: ScanBudget;
22
19
  worktreePaths?: readonly string[];
23
20
  }): Promise<ClaudeValidatedHistory>;
24
- export declare function validateClaudeHistoryPath(candidate: string, sessionId: string, roots: ClaudeHistoryRoots): Promise<ClaudeValidatedHistory>;
21
+ export {};
25
22
  //# sourceMappingURL=path.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/activity/path.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGnE,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAYrB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,GAAE,kBAAgC,EACrC,UAAU,SAAgB,GACzB,kBAAkB,CAUpB;AAED,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,kBAAgC,GACpC,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAiDlC;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,sBAAsB,CAAC,CA+BjC"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/activity/path.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AA8BlC,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB;AAyCD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuBlC"}
@@ -1,25 +1,35 @@
1
1
  import { execFile } from 'node:child_process';
2
2
  import { opendir, realpath } from 'node:fs/promises';
3
- import { dirname, isAbsolute, join, relative, resolve, } from 'node:path';
3
+ import { dirname, isAbsolute, join, relative, resolve } from 'node:path';
4
4
  import { promisify } from 'node:util';
5
- import { isPathWithin } from '@excitedjs/dreamux-utils';
6
- import { createClaudeScanBudget, } from './budget.js';
7
- import { ClaudeActivityError } from './error.js';
5
+ import { ActivityError, createScanBudget, isPathWithin, } from '@excitedjs/dreamux-utils';
6
+ import { resolveClaudeConfigHomeDir } from '../paths.js';
8
7
  import { claudeNativePathHash } from './native-hash.js';
9
8
  import { openClaudeRollout, validateClaudeSessionEvidence, } from './opened-file.js';
10
9
  const MAX_SANITIZED_LENGTH = 200;
11
10
  const SESSION_FILENAME = /^[0-9a-f]{8}-[0-9a-f-]{27}\.jsonl$/i;
12
11
  const execFileAsync = promisify(execFile);
13
- export function claudeHistoryRoots(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');
12
+ const SCAN_BUDGET_EXCEEDED_MESSAGE = 'Claude Code activity discovery exceeded its bounded scan limit';
13
+ /** The default bounded budget for a Claude Code activity discovery scan. */
14
+ function createClaudeScanBudget(input = {}) {
15
+ return createScanBudget({
16
+ ...input,
17
+ limitError: () => new ActivityError('scan_unsupported', SCAN_BUDGET_EXCEEDED_MESSAGE),
18
+ });
19
+ }
20
+ function claudeHistoryRoots(env = process.env, runtimeCwd = process.cwd()) {
21
+ // resolveClaudeConfigHomeDir is pure/non-throwing (it falls back to this
22
+ // process's own home directory when HOME is absent); the guard here
23
+ // preserves this reader's own typed-error contract for that case instead.
24
+ if ((env['CLAUDE_CONFIG_DIR'] === undefined ||
25
+ env['CLAUDE_CONFIG_DIR'] === '') &&
26
+ (env['HOME'] === undefined || env['HOME'] === '')) {
27
+ throw new ActivityError('not_found', 'Claude Code config home is unavailable');
28
+ }
29
+ const configHome = resolveClaudeConfigHomeDir(env, runtimeCwd).normalize('NFC');
20
30
  return { configHome, projects: join(configHome, 'projects') };
21
31
  }
22
- export async function deriveClaudeHistoryPath(sessionId, cwd, env = process.env) {
32
+ async function deriveClaudeHistoryPath(sessionId, cwd, env = process.env) {
23
33
  assertSessionId(sessionId);
24
34
  const roots = claudeHistoryRoots(env, cwd);
25
35
  const canonicalCwd = await canonicalRuntimeCwd(cwd);
@@ -30,17 +40,6 @@ export async function locateClaudeHistory(input) {
30
40
  assertSessionId(input.sessionId);
31
41
  const budget = input.budget ?? createClaudeScanBudget();
32
42
  const roots = claudeHistoryRoots(input.env, input.cwd);
33
- if (input.locator !== null && input.locator !== undefined) {
34
- try {
35
- return await validateClaudeHistoryPath(input.locator, input.sessionId, roots);
36
- }
37
- catch (error) {
38
- if (!(error instanceof ClaudeActivityError) ||
39
- error.detail !== 'not_found') {
40
- throw error;
41
- }
42
- }
43
- }
44
43
  const candidates = await discoveryCandidates({
45
44
  roots,
46
45
  sessionId: input.sessionId,
@@ -54,26 +53,25 @@ export async function locateClaudeHistory(input) {
54
53
  return await validateClaudeHistoryPath(candidate, input.sessionId, roots);
55
54
  }
56
55
  catch (error) {
57
- if (error instanceof ClaudeActivityError &&
58
- error.detail === 'not_found') {
56
+ if (error instanceof ActivityError && error.detail === 'not_found') {
59
57
  continue;
60
58
  }
61
59
  throw error;
62
60
  }
63
61
  }
64
- throw new ClaudeActivityError('not_found', 'Claude Code activity is unavailable');
62
+ throw new ActivityError('not_found', 'Claude Code activity is unavailable');
65
63
  }
66
- export async function validateClaudeHistoryPath(candidate, sessionId, roots) {
64
+ async function validateClaudeHistoryPath(candidate, sessionId, roots) {
67
65
  if (!isAbsolute(candidate) ||
68
66
  !SESSION_FILENAME.test(candidate.split(/[\\/]/).at(-1) ?? '') ||
69
67
  !candidate.endsWith(`${sessionId}.jsonl`)) {
70
- throw new ClaudeActivityError('invalid', 'Claude Code activity locator is not a native session path');
68
+ throw new ActivityError('invalid', 'Claude Code activity locator is not a native session path');
71
69
  }
72
70
  const canonicalProjects = await canonicalExistingRoot(roots.projects);
73
71
  const opened = await openClaudeRollout(candidate, canonicalProjects);
74
72
  try {
75
73
  if (opened.size === 0) {
76
- throw new ClaudeActivityError('not_found', 'Claude Code activity is unavailable');
74
+ throw new ActivityError('not_found', 'Claude Code activity is unavailable');
77
75
  }
78
76
  await validateClaudeSessionEvidence(opened, sessionId);
79
77
  return {
@@ -92,8 +90,7 @@ function sanitizePath(name) {
92
90
  const sanitized = name.replace(/[^a-zA-Z0-9]/g, '-');
93
91
  if (sanitized.length <= MAX_SANITIZED_LENGTH)
94
92
  return sanitized;
95
- return (`${sanitized.slice(0, MAX_SANITIZED_LENGTH)}-` +
96
- claudeNativePathHash(name));
93
+ return (`${sanitized.slice(0, MAX_SANITIZED_LENGTH)}-` + claudeNativePathHash(name));
97
94
  }
98
95
  async function discoveryCandidates(input) {
99
96
  const result = [];
@@ -140,7 +137,7 @@ async function readProjectDirectories(roots, budget) {
140
137
  catch (error) {
141
138
  if (error.code === 'ENOENT')
142
139
  return [];
143
- throw new ClaudeActivityError('unreadable', 'Claude Code activity root is unreadable', { cause: error });
140
+ throw new ActivityError('unreadable', 'Claude Code activity root is unreadable', { cause: error });
144
141
  }
145
142
  const entries = [];
146
143
  try {
@@ -151,11 +148,11 @@ async function readProjectDirectories(roots, budget) {
151
148
  }
152
149
  }
153
150
  catch (error) {
154
- if (error instanceof ClaudeActivityError)
151
+ if (error instanceof ActivityError)
155
152
  throw error;
156
153
  if (error.code === 'ENOENT')
157
154
  return entries;
158
- throw new ClaudeActivityError('unreadable', 'Claude Code activity root is unreadable', { cause: error });
155
+ throw new ActivityError('unreadable', 'Claude Code activity root is unreadable', { cause: error });
159
156
  }
160
157
  return entries;
161
158
  }
@@ -185,7 +182,7 @@ async function canonicalProspectivePath(candidate, root) {
185
182
  canonicalizeProspectivePath(root),
186
183
  ]);
187
184
  if (!isPathWithin(canonicalRoot, canonicalCandidate)) {
188
- throw new ClaudeActivityError('locator_outside_root', 'Claude Code activity is unavailable for this session');
185
+ throw new ActivityError('locator_outside_root', 'Claude Code activity is unavailable for this session');
189
186
  }
190
187
  return canonicalCandidate;
191
188
  }
@@ -197,7 +194,7 @@ async function canonicalRuntimeCwd(cwd) {
197
194
  if (error.code === 'ENOENT') {
198
195
  return resolve(cwd);
199
196
  }
200
- throw new ClaudeActivityError('unreadable', 'Claude Code runtime cwd is unreadable', { cause: error });
197
+ throw new ActivityError('unreadable', 'Claude Code runtime cwd is unreadable', { cause: error });
201
198
  }
202
199
  }
203
200
  async function canonicalizeProspectivePath(path) {
@@ -211,12 +208,12 @@ async function canonicalizeProspectivePath(path) {
211
208
  catch (error) {
212
209
  const code = error.code;
213
210
  if (code !== 'ENOENT') {
214
- throw new ClaudeActivityError('unreadable', 'Claude Code activity path is unreadable', { cause: error });
211
+ throw new ActivityError('unreadable', 'Claude Code activity path is unreadable', { cause: error });
215
212
  }
216
213
  }
217
214
  const parent = dirname(ancestor);
218
215
  if (parent === ancestor) {
219
- throw new ClaudeActivityError('not_found', 'Claude Code activity root is unavailable');
216
+ throw new ActivityError('not_found', 'Claude Code activity root is unavailable');
220
217
  }
221
218
  ancestor = parent;
222
219
  }
@@ -227,9 +224,9 @@ async function canonicalExistingRoot(root) {
227
224
  }
228
225
  catch (error) {
229
226
  if (error.code === 'ENOENT') {
230
- throw new ClaudeActivityError('not_found', 'Claude Code activity root is unavailable', { cause: error });
227
+ throw new ActivityError('not_found', 'Claude Code activity root is unavailable', { cause: error });
231
228
  }
232
- throw new ClaudeActivityError('unreadable', 'Claude Code activity root is unreadable', { cause: error });
229
+ throw new ActivityError('unreadable', 'Claude Code activity root is unreadable', { cause: error });
233
230
  }
234
231
  }
235
232
  function pushUnique(result, seen, value) {
@@ -240,14 +237,7 @@ function pushUnique(result, seen, value) {
240
237
  }
241
238
  function assertSessionId(sessionId) {
242
239
  if (!/^[0-9a-f]{8}-[0-9a-f-]{27}$/i.test(sessionId)) {
243
- throw new ClaudeActivityError('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 ClaudeActivityError('not_found', 'Claude Code config home is unavailable');
240
+ throw new ActivityError('invalid', 'Claude Code session id is invalid');
250
241
  }
251
- return home;
252
242
  }
253
243
  //# sourceMappingURL=path.js.map