@agents-ensemble/core 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/acp/acp-client.d.ts +2 -0
  2. package/dist/acp/acp-client.d.ts.map +1 -1
  3. package/dist/acp/acp-client.js +2 -0
  4. package/dist/acp/acp-client.js.map +1 -1
  5. package/dist/acp/index.d.ts +1 -1
  6. package/dist/acp/index.d.ts.map +1 -1
  7. package/dist/acp/index.js +1 -1
  8. package/dist/acp/index.js.map +1 -1
  9. package/dist/acp/resolve-acp-spawn.d.ts +16 -3
  10. package/dist/acp/resolve-acp-spawn.d.ts.map +1 -1
  11. package/dist/acp/resolve-acp-spawn.js +89 -21
  12. package/dist/acp/resolve-acp-spawn.js.map +1 -1
  13. package/dist/acp/resolve-bundled-acp-bin.d.ts.map +1 -1
  14. package/dist/acp/resolve-bundled-acp-bin.js +9 -3
  15. package/dist/acp/resolve-bundled-acp-bin.js.map +1 -1
  16. package/dist/acp/testing/fake-acp-server.d.ts +6 -0
  17. package/dist/acp/testing/fake-acp-server.d.ts.map +1 -1
  18. package/dist/acp/testing/fake-acp-server.js +4 -1
  19. package/dist/acp/testing/fake-acp-server.js.map +1 -1
  20. package/dist/conductor/conductor-agent.d.ts +9 -0
  21. package/dist/conductor/conductor-agent.d.ts.map +1 -1
  22. package/dist/conductor/conductor-auth.d.ts +2 -0
  23. package/dist/conductor/conductor-auth.d.ts.map +1 -1
  24. package/dist/conductor/conductor-auth.js +3 -1
  25. package/dist/conductor/conductor-auth.js.map +1 -1
  26. package/dist/conductor/conductor-history.d.ts +30 -0
  27. package/dist/conductor/conductor-history.d.ts.map +1 -0
  28. package/dist/conductor/conductor-history.js +200 -0
  29. package/dist/conductor/conductor-history.js.map +1 -0
  30. package/dist/conductor/conductor-send-reconnect.d.ts.map +1 -1
  31. package/dist/conductor/conductor-send-reconnect.js +1 -0
  32. package/dist/conductor/conductor-send-reconnect.js.map +1 -1
  33. package/dist/conductor/conductor-session-driver.js +4 -0
  34. package/dist/conductor/conductor-session-driver.js.map +1 -1
  35. package/dist/conductor/conductor-session.d.ts +2 -2
  36. package/dist/conductor/conductor-session.d.ts.map +1 -1
  37. package/dist/conductor/conductor-session.js +64 -6
  38. package/dist/conductor/conductor-session.js.map +1 -1
  39. package/dist/conductor/pi-conductor-agent.d.ts +1 -0
  40. package/dist/conductor/pi-conductor-agent.d.ts.map +1 -1
  41. package/dist/conductor/pi-conductor-agent.js +97 -4
  42. package/dist/conductor/pi-conductor-agent.js.map +1 -1
  43. package/dist/config/ensemble-config-digest.d.ts +10 -0
  44. package/dist/config/ensemble-config-digest.d.ts.map +1 -0
  45. package/dist/config/ensemble-config-digest.js +28 -0
  46. package/dist/config/ensemble-config-digest.js.map +1 -0
  47. package/dist/config/index.d.ts +1 -1
  48. package/dist/config/index.d.ts.map +1 -1
  49. package/dist/config/load-ensemble-config.d.ts +6 -1
  50. package/dist/config/load-ensemble-config.d.ts.map +1 -1
  51. package/dist/config/load-ensemble-config.js +25 -4
  52. package/dist/config/load-ensemble-config.js.map +1 -1
  53. package/dist/config/parse-config.d.ts.map +1 -1
  54. package/dist/config/parse-config.js +39 -1
  55. package/dist/config/parse-config.js.map +1 -1
  56. package/dist/config/types.d.ts +7 -1
  57. package/dist/config/types.d.ts.map +1 -1
  58. package/dist/dispatch/get-tool-call-tool.d.ts.map +1 -1
  59. package/dist/dispatch/get-tool-call-tool.js +9 -1
  60. package/dist/dispatch/get-tool-call-tool.js.map +1 -1
  61. package/dist/ensemble-paths.d.ts +44 -0
  62. package/dist/ensemble-paths.d.ts.map +1 -0
  63. package/dist/ensemble-paths.js +51 -0
  64. package/dist/ensemble-paths.js.map +1 -0
  65. package/dist/index.d.ts +1 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +1 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/mcp/load-mcp-config.d.ts.map +1 -1
  70. package/dist/mcp/load-mcp-config.js +4 -3
  71. package/dist/mcp/load-mcp-config.js.map +1 -1
  72. package/dist/operator-runtime.d.ts +8 -2
  73. package/dist/operator-runtime.d.ts.map +1 -1
  74. package/dist/operator-runtime.js +7 -2
  75. package/dist/operator-runtime.js.map +1 -1
  76. package/dist/profile/team-profile-resolution.d.ts.map +1 -1
  77. package/dist/profile/team-profile-resolution.js +4 -2
  78. package/dist/profile/team-profile-resolution.js.map +1 -1
  79. package/dist/profile/types.d.ts +7 -1
  80. package/dist/profile/types.d.ts.map +1 -1
  81. package/dist/profile/types.js +34 -13
  82. package/dist/profile/types.js.map +1 -1
  83. package/dist/profiles/implementer-and-reviewer-v2/profile.yaml +2 -0
  84. package/dist/prompt/load-user-instructions.d.ts.map +1 -1
  85. package/dist/prompt/load-user-instructions.js +4 -3
  86. package/dist/prompt/load-user-instructions.js.map +1 -1
  87. package/dist/prompt/modules/ensemble/conductor-base-module.d.ts.map +1 -1
  88. package/dist/prompt/modules/ensemble/conductor-base-module.js +3 -1
  89. package/dist/prompt/modules/ensemble/conductor-base-module.js.map +1 -1
  90. package/dist/resolve-user-ensemble-root.d.ts +16 -0
  91. package/dist/resolve-user-ensemble-root.d.ts.map +1 -0
  92. package/dist/resolve-user-ensemble-root.js +24 -0
  93. package/dist/resolve-user-ensemble-root.js.map +1 -0
  94. package/dist/session/index.d.ts +2 -2
  95. package/dist/session/index.d.ts.map +1 -1
  96. package/dist/session/index.js +2 -2
  97. package/dist/session/index.js.map +1 -1
  98. package/dist/session/open-questions-store.d.ts +4 -0
  99. package/dist/session/open-questions-store.d.ts.map +1 -1
  100. package/dist/session/open-questions-store.js +8 -2
  101. package/dist/session/open-questions-store.js.map +1 -1
  102. package/dist/session/session-resume-store.d.ts +12 -2
  103. package/dist/session/session-resume-store.d.ts.map +1 -1
  104. package/dist/session/session-resume-store.js +168 -31
  105. package/dist/session/session-resume-store.js.map +1 -1
  106. package/dist/session/session-state-store.d.ts +2 -1
  107. package/dist/session/session-state-store.d.ts.map +1 -1
  108. package/dist/session/session-state-store.js +20 -7
  109. package/dist/session/session-state-store.js.map +1 -1
  110. package/dist/session/tool-call-snapshot-history.d.ts.map +1 -1
  111. package/dist/session/tool-call-snapshot-history.js +61 -34
  112. package/dist/session/tool-call-snapshot-history.js.map +1 -1
  113. package/dist/worktree/worktree.d.ts.map +1 -1
  114. package/dist/worktree/worktree.js +5 -2
  115. package/dist/worktree/worktree.js.map +1 -1
  116. package/package.json +3 -4
@@ -1,5 +1,7 @@
1
1
  import { chmod, mkdir, readdir, readFile, rename, writeFile } from 'node:fs/promises';
2
2
  import { dirname, join } from 'node:path';
3
+ import { computeAcpSpawnEnvDigest, } from '../acp/resolve-acp-spawn.js';
4
+ import { resolveEnsemblePaths } from '../ensemble-paths.js';
3
5
  export const SESSION_RESUME_STORE_VERSION = 1;
4
6
  /** @deprecated Use SESSION_RESUME_STORE_VERSION; supported for one release only. */
5
7
  export const SESSION_SIDECAR_VERSION = SESSION_RESUME_STORE_VERSION;
@@ -35,15 +37,34 @@ export class SessionSidecarNotFoundError extends SessionResumeStoreNotFoundError
35
37
  }
36
38
  }
37
39
  export function sessionResumeStoreDir(repoRoot) {
38
- return join(repoRoot, '.ensemble', 'sessions');
40
+ return resolveEnsemblePaths({ repoRoot }).sessionsDir;
41
+ }
42
+ export function legacySessionResumeStoreDir(repoRoot) {
43
+ return resolveEnsemblePaths({ repoRoot }).legacySessionsDir;
44
+ }
45
+ export function legacySessionResumeStorePath(options) {
46
+ return resolveEnsemblePaths({
47
+ repoRoot: options.repoRoot,
48
+ }).legacySessionResumeStorePath(options.conductorAgentId);
39
49
  }
40
50
  export function sessionResumeStorePath(options) {
41
- return join(sessionResumeStoreDir(options.repoRoot), `${options.conductorAgentId}.json`);
51
+ return resolveEnsemblePaths({
52
+ repoRoot: options.repoRoot,
53
+ }).sessionResumeStorePath(options.conductorAgentId);
42
54
  }
43
55
  export async function loadSessionResumeStore(path) {
56
+ const loaded = await readSessionResumeStore(path);
57
+ return loaded?.resumeStore;
58
+ }
59
+ async function readSessionResumeStore(path) {
44
60
  try {
45
61
  const raw = await readFile(path, 'utf8');
46
- return parseSessionResumeStore(JSON.parse(raw));
62
+ const value = JSON.parse(raw);
63
+ return {
64
+ resumeStore: parseSessionResumeStore(value),
65
+ hasLegacyAcpSpawnEnv: containsLegacyAcpSpawnEnv(value),
66
+ rawValue: value,
67
+ };
47
68
  }
48
69
  catch (error) {
49
70
  if (isEnoent(error))
@@ -54,11 +75,24 @@ export async function loadSessionResumeStore(path) {
54
75
  /** `resumeAgentId` 指定時に SessionResumeStore が無い場合は起動失敗とする。 */
55
76
  export async function requireSessionResumeStoreForResume(input) {
56
77
  const path = sessionResumeStorePath(input);
57
- const resumeStore = await loadSessionResumeStore(path);
58
- if (!resumeStore) {
78
+ let loaded = await readSessionResumeStore(path);
79
+ let sourcePath = path;
80
+ if (!loaded) {
81
+ sourcePath = legacySessionResumeStorePath(input);
82
+ loaded = await readSessionResumeStore(sourcePath);
83
+ }
84
+ if (!loaded) {
59
85
  throw new SessionResumeStoreNotFoundError(input.conductorAgentId, path);
60
86
  }
61
- return resumeStore;
87
+ if (loaded.hasLegacyAcpSpawnEnv) {
88
+ // Scrub pre-digest env values before resume validation can reject the
89
+ // session and bypass its normal first write.
90
+ await writeSessionResumeStoreFile(sourcePath, redactLegacyAcpSpawnEnv(loaded.rawValue, loaded.resumeStore));
91
+ }
92
+ if (sourcePath !== path) {
93
+ await writeSessionResumeStoreFile(path, loaded.resumeStore);
94
+ }
95
+ return loaded.resumeStore;
62
96
  }
63
97
  /** @deprecated Use requireSessionResumeStoreForResume; supported for one release only. */
64
98
  export async function requireSessionSidecarForResume(input) {
@@ -87,36 +121,41 @@ export async function saveSessionResumeStore(path, resumeStore) {
87
121
  ? { modifiedAt: updatedAt }
88
122
  : {}),
89
123
  });
124
+ await writeSessionResumeStoreFile(path, parsed);
125
+ }
126
+ async function writeSessionResumeStoreFile(path, value) {
90
127
  const directory = dirname(path);
91
128
  await mkdir(directory, { recursive: true, mode: 0o700 });
92
129
  await chmod(directory, 0o700);
93
130
  const tempPath = `${path}.tmp`;
94
- await writeFile(tempPath, `${JSON.stringify(parsed, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
131
+ await writeFile(tempPath, `${JSON.stringify(value, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
95
132
  await chmod(tempPath, 0o600);
96
133
  await rename(tempPath, path);
97
134
  }
98
135
  /** @deprecated Use saveSessionResumeStore; supported for one release only. */
99
136
  export const saveSessionSidecar = saveSessionResumeStore;
100
137
  export async function listSessionResumeStores(repoRoot) {
101
- const dir = sessionResumeStoreDir(repoRoot);
102
- let entries;
103
- try {
104
- entries = await readdir(dir);
105
- }
106
- catch (error) {
107
- if (isEnoent(error))
108
- return [];
109
- throw error;
110
- }
111
- const resumeStores = [];
112
- for (const entry of entries) {
113
- if (!entry.endsWith('.json') || entry.endsWith('.tmp'))
114
- continue;
115
- const resumeStore = await loadSessionResumeStore(join(dir, entry));
116
- if (resumeStore)
117
- resumeStores.push(resumeStore);
138
+ const paths = resolveEnsemblePaths({ repoRoot });
139
+ const byAgentId = new Map();
140
+ for (const dir of [paths.legacySessionsDir, paths.sessionsDir]) {
141
+ let entries;
142
+ try {
143
+ entries = await readdir(dir);
144
+ }
145
+ catch (error) {
146
+ if (isEnoent(error))
147
+ continue;
148
+ throw error;
149
+ }
150
+ for (const entry of entries) {
151
+ if (!entry.endsWith('.json') || entry.endsWith('.tmp'))
152
+ continue;
153
+ const resumeStore = await loadSessionResumeStore(join(dir, entry));
154
+ if (resumeStore)
155
+ byAgentId.set(resumeStore.conductorAgentId, resumeStore);
156
+ }
118
157
  }
119
- return resumeStores;
158
+ return [...byAgentId.values()];
120
159
  }
121
160
  /** @deprecated Use listSessionResumeStores; supported for one release only. */
122
161
  export const listSessionSidecars = listSessionResumeStores;
@@ -170,6 +209,11 @@ export function assertSessionResumeStoreMatches(resumeStore, input) {
170
209
  throw new Error(`Session resume store MCP config digest mismatch: ${resumeStore.mcpConfigDigest} !== ${input.mcpConfigDigest}`);
171
210
  }
172
211
  }
212
+ if (input.ensembleConfigDigest !== undefined &&
213
+ resumeStore.ensembleConfigDigest !== undefined &&
214
+ resumeStore.ensembleConfigDigest !== input.ensembleConfigDigest) {
215
+ throw new Error(`Session resume store ensemble config digest mismatch: ${resumeStore.ensembleConfigDigest} !== ${input.ensembleConfigDigest}`);
216
+ }
173
217
  }
174
218
  /** @deprecated Use assertSessionResumeStoreMatches; supported for one release only. */
175
219
  export const assertSessionSidecarMatches = assertSessionResumeStoreMatches;
@@ -213,6 +257,10 @@ function parseSessionResumeStore(value) {
213
257
  typeof record.mcpConfigDigest !== 'string') {
214
258
  throw new Error('Invalid session resume store: mcpConfigDigest');
215
259
  }
260
+ if (record.ensembleConfigDigest !== undefined &&
261
+ typeof record.ensembleConfigDigest !== 'string') {
262
+ throw new Error('Invalid session resume store: ensembleConfigDigest');
263
+ }
216
264
  if (record.lazyWorkers !== undefined &&
217
265
  typeof record.lazyWorkers !== 'boolean') {
218
266
  throw new Error('Invalid session resume store: lazyWorkers');
@@ -222,6 +270,16 @@ function parseSessionResumeStore(value) {
222
270
  record.harnessSocketPath.length === 0)) {
223
271
  throw new Error('Invalid session resume store: harnessSocketPath');
224
272
  }
273
+ if (record.conductorCwd !== undefined &&
274
+ (typeof record.conductorCwd !== 'string' ||
275
+ record.conductorCwd.trim() === '')) {
276
+ throw new Error('Invalid session resume store: conductorCwd');
277
+ }
278
+ if (record.cursorBootstrapRunId !== undefined &&
279
+ (typeof record.cursorBootstrapRunId !== 'string' ||
280
+ record.cursorBootstrapRunId.trim() === '')) {
281
+ throw new Error('Invalid session resume store: cursorBootstrapRunId');
282
+ }
225
283
  if (record.lifecycle !== undefined &&
226
284
  record.lifecycle !== 'closed' &&
227
285
  record.lifecycle !== 'exited' &&
@@ -268,6 +326,12 @@ function parseSessionResumeStore(value) {
268
326
  version: SESSION_RESUME_STORE_VERSION,
269
327
  conductorAgentId: record.conductorAgentId,
270
328
  conductorBackend,
329
+ ...(typeof record.conductorCwd === 'string'
330
+ ? { conductorCwd: record.conductorCwd }
331
+ : {}),
332
+ ...(typeof record.cursorBootstrapRunId === 'string'
333
+ ? { cursorBootstrapRunId: record.cursorBootstrapRunId }
334
+ : {}),
271
335
  ...(typeof record.lazyWorkers === 'boolean'
272
336
  ? { lazyWorkers: record.lazyWorkers }
273
337
  : {}),
@@ -287,6 +351,9 @@ function parseSessionResumeStore(value) {
287
351
  ...(typeof record.mcpConfigDigest === 'string'
288
352
  ? { mcpConfigDigest: record.mcpConfigDigest }
289
353
  : {}),
354
+ ...(typeof record.ensembleConfigDigest === 'string'
355
+ ? { ensembleConfigDigest: record.ensembleConfigDigest }
356
+ : {}),
290
357
  ...(record.lifecycle !== undefined
291
358
  ? { lifecycle: record.lifecycle }
292
359
  : {}),
@@ -315,6 +382,47 @@ function isEnoent(error) {
315
382
  'code' in error &&
316
383
  error.code === 'ENOENT');
317
384
  }
385
+ function containsLegacyAcpSpawnEnv(value) {
386
+ if (!value || typeof value !== 'object' || !('workers' in value))
387
+ return false;
388
+ const workers = value.workers;
389
+ if (!workers || typeof workers !== 'object' || Array.isArray(workers)) {
390
+ return false;
391
+ }
392
+ return Object.values(workers).some((worker) => {
393
+ if (!worker || typeof worker !== 'object' || !('acpSpawn' in worker)) {
394
+ return false;
395
+ }
396
+ const acpSpawn = worker.acpSpawn;
397
+ if (!acpSpawn || typeof acpSpawn !== 'object' || !('env' in acpSpawn)) {
398
+ return false;
399
+ }
400
+ const env = acpSpawn.env;
401
+ return (!!env &&
402
+ typeof env === 'object' &&
403
+ !Array.isArray(env) &&
404
+ Object.keys(env).length > 0);
405
+ });
406
+ }
407
+ function redactLegacyAcpSpawnEnv(value, parsed) {
408
+ const record = value;
409
+ const rawWorkers = record.workers;
410
+ const workers = { ...rawWorkers };
411
+ for (const [name, rawWorker] of Object.entries(rawWorkers)) {
412
+ const worker = rawWorker;
413
+ if (!worker.acpSpawn || typeof worker.acpSpawn !== 'object')
414
+ continue;
415
+ const acpSpawn = { ...worker.acpSpawn };
416
+ if (!('env' in acpSpawn))
417
+ continue;
418
+ delete acpSpawn.env;
419
+ const envDigest = parsed.workers[name]?.acpSpawn?.envDigest;
420
+ if (envDigest)
421
+ acpSpawn.envDigest = envDigest;
422
+ workers[name] = { ...worker, acpSpawn };
423
+ }
424
+ return { ...record, workers };
425
+ }
318
426
  function parseAcpSpawnFingerprint(raw, workerName) {
319
427
  if (raw === undefined || raw === null)
320
428
  return undefined;
@@ -328,27 +436,56 @@ function parseAcpSpawnFingerprint(raw, workerName) {
328
436
  if (!Array.isArray(record.args) || record.args.some((arg) => typeof arg !== 'string')) {
329
437
  throw new Error(`Invalid session resume store worker acpSpawn args: ${workerName}`);
330
438
  }
331
- let env;
439
+ const validModelTags = ['high', 'default', 'low', 'fast'];
440
+ let modelTag;
441
+ if (record.modelTag !== undefined) {
442
+ if (typeof record.modelTag !== 'string' ||
443
+ !validModelTags.includes(record.modelTag)) {
444
+ throw new Error(`Invalid session resume store worker acpSpawn modelTag: ${workerName}`);
445
+ }
446
+ modelTag = record.modelTag;
447
+ }
448
+ let model;
449
+ if (record.model !== undefined) {
450
+ if (typeof record.model !== 'string' || record.model.length === 0) {
451
+ throw new Error(`Invalid session resume store worker acpSpawn model: ${workerName}`);
452
+ }
453
+ model = record.model;
454
+ }
455
+ let envDigest;
456
+ if (record.envDigest !== undefined) {
457
+ if (typeof record.envDigest !== 'string' ||
458
+ !/^[a-f0-9]{64}$/.test(record.envDigest)) {
459
+ throw new Error(`Invalid session resume store worker acpSpawn envDigest: ${workerName}`);
460
+ }
461
+ envDigest = record.envDigest;
462
+ }
332
463
  if (record.env !== undefined) {
333
464
  if (!record.env || typeof record.env !== 'object' || Array.isArray(record.env)) {
334
465
  throw new Error(`Invalid session resume store worker acpSpawn env: ${workerName}`);
335
466
  }
336
- env = {};
467
+ const legacyEnv = {};
337
468
  for (const [key, value] of Object.entries(record.env)) {
338
469
  if (typeof value !== 'string') {
339
470
  throw new Error(`Invalid session resume store worker acpSpawn env.${key}: ${workerName}`);
340
471
  }
341
- env[key] = value;
472
+ legacyEnv[key] = value;
342
473
  }
343
- if (Object.keys(env).length === 0) {
344
- env = undefined;
474
+ if (Object.keys(legacyEnv).length > 0) {
475
+ if (envDigest !== undefined) {
476
+ throw new Error(`Invalid session resume store worker acpSpawn env: duplicate env and envDigest for ${workerName}`);
477
+ }
478
+ // Redact values from legacy records while keeping resume comparison possible.
479
+ envDigest = computeAcpSpawnEnvDigest(legacyEnv);
345
480
  }
346
481
  }
347
482
  return {
348
483
  preset: record.preset,
349
484
  command: record.command,
350
485
  args: record.args,
351
- ...(env ? { env } : {}),
486
+ ...(modelTag !== undefined ? { modelTag } : {}),
487
+ ...(model !== undefined ? { model } : {}),
488
+ ...(envDigest ? { envDigest } : {}),
352
489
  };
353
490
  }
354
491
  //# sourceMappingURL=session-resume-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-resume-store.js","sourceRoot":"","sources":["../../src/session/session-resume-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-resume-store.js","sourceRoot":"","sources":["../../src/session/session-resume-store.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export interface SessionStateStore {
16
16
  history: SessionStatusLine[];
17
17
  }
18
18
  export declare function sessionStateStorePath(options: SessionStatePathOptions): string;
19
+ export declare function legacySessionStateStorePath(options: SessionStatePathOptions): string;
19
20
  export declare function loadSessionStateStore(path: string): Promise<SessionStateStore | undefined>;
20
- export declare function saveSessionStatusLine(path: string, statusLine: string, reportedAt?: number): Promise<void>;
21
+ export declare function saveSessionStatusLine(path: string, statusLine: string, reportedAt?: number, legacyPath?: string): Promise<void>;
21
22
  //# sourceMappingURL=session-state-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-state-store.d.ts","sourceRoot":"","sources":["../../src/session/session-state-store.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD,eAAO,MAAM,6BAA6B,QAAY,CAAC;AAEvD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,4EAA4E;IAC5E,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CAQR;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAaxC;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,SAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
1
+ {"version":3,"file":"session-state-store.d.ts","sourceRoot":"","sources":["../../src/session/session-state-store.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD,eAAO,MAAM,6BAA6B,QAAY,CAAC;AAEvD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,4EAA4E;IAC5E,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CAIR;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CAIR;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAaxC;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,SAAa,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAgCf"}
@@ -1,13 +1,19 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { mkdir, readFile, rename, unlink, writeFile } from 'node:fs/promises';
3
- import { dirname, join } from 'node:path';
2
+ import { chmod, mkdir, readFile, rename, unlink, writeFile } from 'node:fs/promises';
3
+ import { dirname } from 'node:path';
4
4
  import yaml from 'js-yaml';
5
+ import { resolveEnsemblePaths } from '../ensemble-paths.js';
5
6
  export const SESSION_STATE_STORE_VERSION = 2;
6
7
  export const SESSION_STATUS_LINE_MAX_LENGTH = 80;
7
8
  export const SESSION_STATUS_HISTORY_MAX_ENTRIES = 50;
8
9
  export const SESSION_STATE_STORE_MAX_BYTES = 16 * 1024;
9
10
  export function sessionStateStorePath(options) {
10
- return join(options.repoRoot, '.ensemble', 'sessions', options.conductorAgentId, 'session-state.yaml');
11
+ return resolveEnsemblePaths({ repoRoot: options.repoRoot }).sessionStatePath(options.conductorAgentId);
12
+ }
13
+ export function legacySessionStateStorePath(options) {
14
+ return resolveEnsemblePaths({
15
+ repoRoot: options.repoRoot,
16
+ }).legacySessionStatePath(options.conductorAgentId);
11
17
  }
12
18
  export async function loadSessionStateStore(path) {
13
19
  let raw;
@@ -24,9 +30,10 @@ export async function loadSessionStateStore(path) {
24
30
  }
25
31
  return parseSessionStateStore(yaml.load(raw));
26
32
  }
27
- export async function saveSessionStatusLine(path, statusLine, reportedAt = Date.now()) {
33
+ export async function saveSessionStatusLine(path, statusLine, reportedAt = Date.now(), legacyPath) {
28
34
  const current = parseSessionStatusLine({ statusLine, reportedAt });
29
- const existing = await loadSessionStateStore(path);
35
+ const existing = (await loadSessionStateStore(path)) ??
36
+ (legacyPath ? await loadSessionStateStore(legacyPath) : undefined);
30
37
  const next = {
31
38
  current,
32
39
  history: boundHistory([
@@ -34,10 +41,16 @@ export async function saveSessionStatusLine(path, statusLine, reportedAt = Date.
34
41
  ...(existing ? [existing.current] : []),
35
42
  ], current),
36
43
  };
37
- await mkdir(dirname(path), { recursive: true });
44
+ const directory = dirname(path);
45
+ await mkdir(directory, { recursive: true, mode: 0o700 });
46
+ await chmod(directory, 0o700);
38
47
  const tempPath = `${path}.${process.pid}.${randomUUID()}.tmp`;
39
48
  try {
40
- await writeFile(tempPath, serializeSessionStateStore(next), 'utf8');
49
+ await writeFile(tempPath, serializeSessionStateStore(next), {
50
+ encoding: 'utf8',
51
+ mode: 0o600,
52
+ });
53
+ await chmod(tempPath, 0o600);
41
54
  await rename(tempPath, path);
42
55
  }
43
56
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-state-store.js","sourceRoot":"","sources":["../../src/session/session-state-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAC;AAkBvD,MAAM,UAAU,qBAAqB,CACnC,OAAgC;IAEhC,OAAO,IAAI,CACT,OAAO,CAAC,QAAQ,EAChB,WAAW,EACX,UAAU,EACV,OAAO,CAAC,gBAAgB,EACxB,oBAAoB,CACrB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY;IAEZ,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,6BAA6B,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY,EACZ,UAAkB,EAClB,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE;IAEvB,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG;QACX,OAAO;QACP,OAAO,EAAE,YAAY,CACnB;YACE,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;YAC5B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,EACD,OAAO,CACR;KACF,CAAC;IAEF,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,0BAA0B,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAEhD,0EAA0E;IAC1E,kEAAkE;IAClE,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC;YACvC,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,2BAA2B,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,kCAAkC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACpC,IAAI,MAAM,CAAC,UAAU,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAC/D,6BAA6B,EAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,0DAA0D,8BAA8B,aAAa,CACtG,CAAC;IACJ,CAAC;IACD,IACE,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QACrC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,UAAU;QACV,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,OAA4B,EAC5B,OAA0B;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAAC,CAAC;IACnE,OACE,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,MAAM,CAAC,UAAU,CACf,0BAA0B,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACzD,MAAM,CACP,GAAG,6BAA6B,EACjC,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IACD,IACE,MAAM,CAAC,UAAU,CACf,0BAA0B,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACzD,MAAM,CACP,GAAG,6BAA6B,EACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAwB;IAC1D,OAAO,GAAG,IAAI,CAAC,IAAI,CACjB;QACE,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,EACD,EAAE,SAAS,EAAE,GAAG,EAAE,CACnB,IAAI,CAAC;AACR,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACd,KAA+B,CAAC,IAAI,KAAK,QAAQ,CACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-state-store.js","sourceRoot":"","sources":["../../src/session/session-state-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAC;AAkBvD,MAAM,UAAU,qBAAqB,CACnC,OAAgC;IAEhC,OAAO,oBAAoB,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,gBAAgB,CAC1E,OAAO,CAAC,gBAAgB,CACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAgC;IAEhC,OAAO,oBAAoB,CAAC;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY;IAEZ,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,6BAA6B,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY,EACZ,UAAkB,EAClB,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,EACvB,UAAmB;IAEnB,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GACZ,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG;QACX,OAAO;QACP,OAAO,EAAE,YAAY,CACnB;YACE,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;YAC5B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,EACD,OAAO,CACR;KACF,CAAC;IAEF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,MAAM,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,0BAA0B,CAAC,IAAI,CAAC,EAAE;YAC1D,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAEhD,0EAA0E;IAC1E,kEAAkE;IAClE,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC;YACvC,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,2BAA2B,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,kCAAkC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACpC,IAAI,MAAM,CAAC,UAAU,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAC/D,6BAA6B,EAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,0DAA0D,8BAA8B,aAAa,CACtG,CAAC;IACJ,CAAC;IACD,IACE,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QACrC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,UAAU;QACV,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,OAA4B,EAC5B,OAA0B;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAAC,CAAC;IACnE,OACE,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,MAAM,CAAC,UAAU,CACf,0BAA0B,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACzD,MAAM,CACP,GAAG,6BAA6B,EACjC,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IACD,IACE,MAAM,CAAC,UAAU,CACf,0BAA0B,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACzD,MAAM,CACP,GAAG,6BAA6B,EACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAwB;IAC1D,OAAO,GAAG,IAAI,CAAC,IAAI,CACjB;QACE,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,EACD,EAAE,SAAS,EAAE,GAAG,EAAE,CACnB,IAAI,CAAC;AACR,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACd,KAA+B,CAAC,IAAI,KAAK,QAAQ,CACnD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-snapshot-history.d.ts","sourceRoot":"","sources":["../../src/session/tool-call-snapshot-history.ts"],"names":[],"mappings":"AAUA,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,2CAA2C,CAAC;AAMnD,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,+EAA+E;IAC/E,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kCAAkC;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAoG7C;AAED,mEAAmE;AACnE,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,sBAAsB,EAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;GAGG;AACH,wBAAsB,wCAAwC,CAC5D,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAa,GACf,OAAO,CAAC,kCAAkC,CAAC,CA+B7C"}
1
+ {"version":3,"file":"tool-call-snapshot-history.d.ts","sourceRoot":"","sources":["../../src/session/tool-call-snapshot-history.ts"],"names":[],"mappings":"AAWA,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,2CAA2C,CAAC;AAMnD,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,+EAA+E;IAC/E,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kCAAkC;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAIT;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAuH7C;AAED,mEAAmE;AACnE,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,sBAAsB,EAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;;GAGG;AACH,wBAAsB,wCAAwC,CAC5D,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAa,GACf,OAAO,CAAC,kCAAkC,CAAC,CAiC7C"}
@@ -1,11 +1,11 @@
1
- import { mkdir, readdir, readFile, rename, rm, stat, writeFile, } from 'node:fs/promises';
1
+ import { chmod, mkdir, readdir, readFile, rename, rm, stat, writeFile, } from 'node:fs/promises';
2
2
  import { dirname, join } from 'node:path';
3
3
  import { encodedHistorySize, TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES, TOOL_CALL_SNAPSHOT_HISTORY_MAX_ENTRIES, TOOL_CALL_SNAPSHOT_HISTORY_TTL_MS, } from '../runtime/tool-call-snapshot-registry.js';
4
- import { sessionResumeStoreDir } from './session-resume-store.js';
4
+ import { resolveEnsemblePaths } from '../ensemble-paths.js';
5
5
  const TOOL_CALL_SNAPSHOT_HISTORY_VERSION = 1;
6
6
  const TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX = '.tool-calls';
7
7
  export function toolCallSnapshotHistoryPath(input) {
8
- return join(sessionResumeStoreDir(input.repoRoot), `${input.conductorAgentId}${TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX}`);
8
+ return resolveEnsemblePaths({ repoRoot: input.repoRoot }).toolCallHistoryPath(input.conductorAgentId);
9
9
  }
10
10
  /**
11
11
  * Read the optional history independently from the required session resume store.
@@ -13,18 +13,30 @@ export function toolCallSnapshotHistoryPath(input) {
13
13
  */
14
14
  export async function loadToolCallSnapshotHistory(input) {
15
15
  const path = toolCallSnapshotHistoryPath(input);
16
+ const paths = resolveEnsemblePaths({ repoRoot: input.repoRoot });
17
+ const legacyPath = paths.legacyToolCallHistoryPath(input.conductorAgentId);
18
+ let sourcePath = path;
16
19
  let raw;
17
20
  try {
18
- const fileInfo = await stat(path);
21
+ let fileInfo;
22
+ try {
23
+ fileInfo = await stat(path);
24
+ }
25
+ catch (error) {
26
+ if (!isEnoent(error))
27
+ throw error;
28
+ sourcePath = legacyPath;
29
+ fileInfo = await stat(sourcePath);
30
+ }
19
31
  if (fileInfo.size > TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES) {
20
- await removeHistoryFile(path);
32
+ await removeHistoryFile(sourcePath);
21
33
  return {
22
34
  entries: [],
23
35
  needsRewrite: false,
24
36
  warning: 'tool-call snapshot history exceeds the size limit and was discarded',
25
37
  };
26
38
  }
27
- raw = await readFile(path, 'utf8');
39
+ raw = await readFile(sourcePath, 'utf8');
28
40
  }
29
41
  catch (error) {
30
42
  if (isEnoent(error)) {
@@ -37,7 +49,7 @@ export async function loadToolCallSnapshotHistory(input) {
37
49
  };
38
50
  }
39
51
  if (Buffer.byteLength(raw, 'utf8') > TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES) {
40
- await removeHistoryFile(path);
52
+ await removeHistoryFile(sourcePath);
41
53
  return {
42
54
  entries: [],
43
55
  needsRewrite: false,
@@ -49,7 +61,7 @@ export async function loadToolCallSnapshotHistory(input) {
49
61
  value = JSON.parse(raw);
50
62
  }
51
63
  catch {
52
- await removeHistoryFile(path);
64
+ await removeHistoryFile(sourcePath);
53
65
  return {
54
66
  entries: [],
55
67
  needsRewrite: false,
@@ -59,7 +71,7 @@ export async function loadToolCallSnapshotHistory(input) {
59
71
  if (!isRecord(value) ||
60
72
  value.version !== TOOL_CALL_SNAPSHOT_HISTORY_VERSION ||
61
73
  !Array.isArray(value.snapshots)) {
62
- await removeHistoryFile(path);
74
+ await removeHistoryFile(sourcePath);
63
75
  return {
64
76
  entries: [],
65
77
  needsRewrite: false,
@@ -88,6 +100,15 @@ export async function loadToolCallSnapshotHistory(input) {
88
100
  now - TOOL_CALL_SNAPSHOT_HISTORY_TTL_MS);
89
101
  if (retained.length !== entries.length)
90
102
  needsRewrite = true;
103
+ if (sourcePath !== path && retained.length > 0) {
104
+ try {
105
+ await saveToolCallSnapshotHistory(path, retained);
106
+ }
107
+ catch {
108
+ // Legacy history is optional; an unsuccessful migration must not make
109
+ // the session resume fail.
110
+ }
111
+ }
91
112
  return {
92
113
  entries: retained,
93
114
  needsRewrite,
@@ -112,10 +133,13 @@ export async function saveToolCallSnapshotHistory(path, snapshots) {
112
133
  version: TOOL_CALL_SNAPSHOT_HISTORY_VERSION,
113
134
  snapshots,
114
135
  });
115
- await mkdir(dirname(path), { recursive: true });
136
+ const directory = dirname(path);
137
+ await mkdir(directory, { recursive: true, mode: 0o700 });
138
+ await chmod(directory, 0o700);
116
139
  const tempPath = `${path}.tmp`;
117
140
  try {
118
- await writeFile(tempPath, serialized, 'utf8');
141
+ await writeFile(tempPath, serialized, { encoding: 'utf8', mode: 0o600 });
142
+ await chmod(tempPath, 0o600);
119
143
  await rename(tempPath, path);
120
144
  }
121
145
  catch (error) {
@@ -128,35 +152,38 @@ export async function saveToolCallSnapshotHistory(path, snapshots) {
128
152
  * prune individual expired snapshots in the registry as new updates arrive.
129
153
  */
130
154
  export async function pruneExpiredToolCallSnapshotHistoryFiles(repoRoot, now = Date.now()) {
131
- const dir = sessionResumeStoreDir(repoRoot);
132
- let entries;
133
- try {
134
- entries = await readdir(dir);
135
- }
136
- catch (error) {
137
- if (isEnoent(error))
138
- return { removedCount: 0, failedCount: 0 };
139
- return { removedCount: 0, failedCount: 1 };
140
- }
141
155
  let removedCount = 0;
142
156
  let failedCount = 0;
143
157
  const cutoff = now - TOOL_CALL_SNAPSHOT_HISTORY_TTL_MS;
144
- for (const entry of entries) {
145
- if (!entry.endsWith(TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX) &&
146
- !entry.endsWith(`${TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX}.tmp`)) {
147
- continue;
148
- }
149
- const path = join(dir, entry);
158
+ const paths = resolveEnsemblePaths({ repoRoot });
159
+ for (const dir of [paths.sessionsDir, paths.legacySessionsDir]) {
160
+ let entries;
150
161
  try {
151
- const fileInfo = await stat(path);
152
- if (!fileInfo.isFile() || fileInfo.mtimeMs > cutoff)
153
- continue;
154
- await rm(path, { force: true });
155
- removedCount += 1;
162
+ entries = await readdir(dir);
156
163
  }
157
164
  catch (error) {
158
- if (!isEnoent(error))
159
- failedCount += 1;
165
+ if (isEnoent(error))
166
+ continue;
167
+ failedCount += 1;
168
+ continue;
169
+ }
170
+ for (const entry of entries) {
171
+ if (!entry.endsWith(TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX) &&
172
+ !entry.endsWith(`${TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX}.tmp`)) {
173
+ continue;
174
+ }
175
+ const path = join(dir, entry);
176
+ try {
177
+ const fileInfo = await stat(path);
178
+ if (!fileInfo.isFile() || fileInfo.mtimeMs > cutoff)
179
+ continue;
180
+ await rm(path, { force: true });
181
+ removedCount += 1;
182
+ }
183
+ catch (error) {
184
+ if (!isEnoent(error))
185
+ failedCount += 1;
186
+ }
160
187
  }
161
188
  }
162
189
  return { removedCount, failedCount };