@agents-ensemble/core 0.16.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/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/resolve-acp-spawn.d.ts +12 -1
  6. package/dist/acp/resolve-acp-spawn.d.ts.map +1 -1
  7. package/dist/acp/resolve-acp-spawn.js +76 -4
  8. package/dist/acp/resolve-acp-spawn.js.map +1 -1
  9. package/dist/acp/testing/fake-acp-server.d.ts +6 -0
  10. package/dist/acp/testing/fake-acp-server.d.ts.map +1 -1
  11. package/dist/acp/testing/fake-acp-server.js +4 -1
  12. package/dist/acp/testing/fake-acp-server.js.map +1 -1
  13. package/dist/conductor/conductor-session.d.ts +1 -1
  14. package/dist/conductor/conductor-session.d.ts.map +1 -1
  15. package/dist/conductor/conductor-session.js +79 -23
  16. package/dist/conductor/conductor-session.js.map +1 -1
  17. package/dist/config/index.d.ts +1 -1
  18. package/dist/config/index.d.ts.map +1 -1
  19. package/dist/config/parse-config.d.ts.map +1 -1
  20. package/dist/config/parse-config.js +39 -1
  21. package/dist/config/parse-config.js.map +1 -1
  22. package/dist/config/types.d.ts +7 -1
  23. package/dist/config/types.d.ts.map +1 -1
  24. package/dist/ensemble-paths.d.ts +7 -0
  25. package/dist/ensemble-paths.d.ts.map +1 -1
  26. package/dist/ensemble-paths.js +27 -1
  27. package/dist/ensemble-paths.js.map +1 -1
  28. package/dist/operator-runtime.d.ts +1 -1
  29. package/dist/operator-runtime.d.ts.map +1 -1
  30. package/dist/operator-runtime.js +1 -1
  31. package/dist/operator-runtime.js.map +1 -1
  32. package/dist/profile/types.d.ts +7 -1
  33. package/dist/profile/types.d.ts.map +1 -1
  34. package/dist/profile/types.js +34 -13
  35. package/dist/profile/types.js.map +1 -1
  36. package/dist/profiles/implementer-and-reviewer-v2/profile.yaml +2 -0
  37. package/dist/session/index.d.ts +2 -2
  38. package/dist/session/index.d.ts.map +1 -1
  39. package/dist/session/index.js +1 -1
  40. package/dist/session/index.js.map +1 -1
  41. package/dist/session/open-questions-store.d.ts +3 -0
  42. package/dist/session/open-questions-store.d.ts.map +1 -1
  43. package/dist/session/open-questions-store.js +8 -1
  44. package/dist/session/open-questions-store.js.map +1 -1
  45. package/dist/session/session-resume-store.d.ts +30 -1
  46. package/dist/session/session-resume-store.d.ts.map +1 -1
  47. package/dist/session/session-resume-store.js +162 -22
  48. package/dist/session/session-resume-store.js.map +1 -1
  49. package/dist/session/session-state-store.d.ts +4 -1
  50. package/dist/session/session-state-store.d.ts.map +1 -1
  51. package/dist/session/session-state-store.js +18 -4
  52. package/dist/session/session-state-store.js.map +1 -1
  53. package/package.json +2 -2
@@ -2,6 +2,7 @@ import type { PromptModule } from '@modular-prompt/core';
2
2
  import type { ConductorBackend } from '../config/types.js';
3
3
  import type { AcpSpawnFingerprint, DefaultAcpResolutionOptions } from '../acp/resolve-acp-spawn.js';
4
4
  import type { SpawnAcpProcessOptions } from '../acp/acp-process.js';
5
+ import type { AcpModelTag } from '../config/types.js';
5
6
  /** kind ごとの agent 定義(modular-prompt 拡張)。`conductor` は暗黙起動の SDK agent、他は worker init prompt 用。 */
6
7
  export interface AgentDefinition {
7
8
  /** インライン modular-prompt YAML。`promptFile` と排他。 */
@@ -26,6 +27,8 @@ export interface ProfileWorkerRefObject {
26
27
  /** セッション内の識別名(一意)。省略時は kind と同じ。 */
27
28
  name?: string;
28
29
  kind: string;
30
+ /** ACP model tier. Defaults to `default`. */
31
+ modelTag?: AcpModelTag;
29
32
  /**
30
33
  * その worker の ACP 起動 cwd(Issue worktree とは別概念)。
31
34
  * profile ディレクトリまたは repo-root 基準の相対パス、または絶対パス。
@@ -36,6 +39,8 @@ export interface ProfileWorkerRefObject {
36
39
  export interface ProfileWorkerEntry {
37
40
  name: string;
38
41
  kind: string;
42
+ /** ACP model tier selected by this worker instance. */
43
+ modelTag?: AcpModelTag;
39
44
  /** profile YAML の raw 値。 */
40
45
  workspace?: string;
41
46
  /** `loadProfile` 後に解決された絶対パス。 */
@@ -91,6 +96,7 @@ export interface ResolvedProfile extends Omit<Profile, 'agents'> {
91
96
  export interface SessionWorkerSpec {
92
97
  name: string;
93
98
  kind: string;
99
+ modelTag: AcpModelTag;
94
100
  prompt?: PromptModule;
95
101
  resolvedWorkspacePath?: string;
96
102
  /** worker attach 時の ACP spawn オプション(command/args/env)。 */
@@ -104,7 +110,7 @@ export interface EnsembleSessionState {
104
110
  kinds: string[];
105
111
  materials?: ResolvedProfileMaterial[];
106
112
  }
107
- export declare const PROFILE_ACP_REMOVED_ERROR = "\"acp\" is removed from team profile; use .ensemble/config.yaml acp.defaultPreset and acp.env";
113
+ export declare const PROFILE_ACP_REMOVED_ERROR = "\"acp\" is removed from team profile; use .ensemble/config.yaml acp.defaultPreset and acp.env (worker model tiers use modelTag)";
108
114
  export declare function resolvedProfileMaterials(materials?: ProfileMaterial[]): ResolvedProfileMaterial[] | undefined;
109
115
  /** agent kind に応じて Prepared Materials を絞り込む。`kinds` 省略は全員向け。 */
110
116
  export declare function filterMaterialsForKind(materials: ResolvedProfileMaterial[] | undefined, kind: string): ResolvedProfileMaterial[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profile/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAOpE,iGAAiG;AACjG,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,yCAAyC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,sBAAsB,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,0BAA0B;AAC1B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,8FAA8F;AAC9F,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,yCAAyC;IACzC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,kEAAkE;IAClE,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,kCAAkC;AAClC,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,sCAAsC;AACtC,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,2BAA2B;IAC3B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACvC;AAED,eAAO,MAAM,yBAAyB,kGACyD,CAAC;AAEhG,wBAAgB,wBAAwB,CACtC,SAAS,CAAC,EAAE,eAAe,EAAE,GAC5B,uBAAuB,EAAE,GAAG,SAAS,CAkBvC;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,uBAAuB,EAAE,GAAG,SAAS,EAChD,IAAI,EAAE,MAAM,GACX,uBAAuB,EAAE,CAI3B;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC,GACjE,oBAAoB,CAStB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,kBAAkB,CA8BpB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAAE,EAClB,KAAK,EAAE,MAAM,GACZ,kBAAkB,EAAE,CAgBtB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC,GACA,iBAAiB,EAAE,CAYrB;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,GAC1D,YAAY,GAAG,SAAS,CAG1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profile/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { acpSpawnFingerprint, resolveWorkerAcpSpawn, resolvedAcpSpawnToOptions, } from '../acp/resolve-acp-spawn.js';
2
- export const PROFILE_ACP_REMOVED_ERROR = '"acp" is removed from team profile; use .ensemble/config.yaml acp.defaultPreset and acp.env';
2
+ export const PROFILE_ACP_REMOVED_ERROR = '"acp" is removed from team profile; use .ensemble/config.yaml acp.defaultPreset and acp.env (worker model tiers use modelTag)';
3
+ const PROFILE_MODEL_TAGS = [
4
+ 'high',
5
+ 'default',
6
+ 'low',
7
+ 'fast',
8
+ ];
3
9
  export function resolvedProfileMaterials(materials) {
4
10
  const resolved = (materials ?? []).flatMap((material, index) => {
5
11
  const content = material.content?.trim();
@@ -47,15 +53,23 @@ export function normalizeProfileWorker(entry, label, index) {
47
53
  if (worker.acp !== undefined) {
48
54
  throw new Error(`Invalid profile worker[${index}] in ${label}: ${PROFILE_ACP_REMOVED_ERROR}`);
49
55
  }
56
+ const modelTag = worker.modelTag === undefined ? 'default' : worker.modelTag;
57
+ if (typeof modelTag !== 'string' ||
58
+ !PROFILE_MODEL_TAGS.includes(modelTag)) {
59
+ throw new Error(`Invalid profile worker[${index}] in ${label}: "modelTag" must be one of ${PROFILE_MODEL_TAGS.join(' | ')}`);
60
+ }
50
61
  return {
51
62
  name: worker.name ?? worker.kind,
52
63
  kind: worker.kind,
64
+ ...(worker.modelTag !== undefined
65
+ ? { modelTag: modelTag }
66
+ : {}),
53
67
  ...(typeof worker.workspace === 'string' && worker.workspace.length > 0
54
68
  ? { workspace: worker.workspace }
55
69
  : {}),
56
70
  };
57
71
  }
58
- throw new Error(`Invalid profile worker[${index}] in ${label}: expected kind string or { name?, kind, workspace? }`);
72
+ throw new Error(`Invalid profile worker[${index}] in ${label}: expected kind string or { name?, kind, modelTag?, workspace? }`);
59
73
  }
60
74
  export function normalizeProfileWorkers(workers, label) {
61
75
  const normalized = workers.map((entry, index) => normalizeProfileWorker(entry, label, index));
@@ -69,17 +83,24 @@ export function normalizeProfileWorkers(workers, label) {
69
83
  return normalized;
70
84
  }
71
85
  export function profileWorkersToSessionSpecs(profile, options) {
72
- const resolved = resolveWorkerAcpSpawn({ defaultOptions: options?.defaultAcp });
73
- return profile.workers.map((worker) => ({
74
- name: worker.name,
75
- kind: worker.kind,
76
- prompt: resolveAgentPromptModule(worker.kind, profile.agents),
77
- ...(worker.resolvedWorkspacePath
78
- ? { resolvedWorkspacePath: worker.resolvedWorkspacePath }
79
- : {}),
80
- spawn: resolvedAcpSpawnToOptions(resolved, options?.spawnBase),
81
- acpFingerprint: acpSpawnFingerprint(resolved),
82
- }));
86
+ return profile.workers.map((worker) => {
87
+ const modelTag = worker.modelTag ?? 'default';
88
+ const resolved = resolveWorkerAcpSpawn({
89
+ defaultOptions: options?.defaultAcp,
90
+ modelTag,
91
+ });
92
+ return {
93
+ name: worker.name,
94
+ kind: worker.kind,
95
+ modelTag,
96
+ prompt: resolveAgentPromptModule(worker.kind, profile.agents),
97
+ ...(worker.resolvedWorkspacePath
98
+ ? { resolvedWorkspacePath: worker.resolvedWorkspacePath }
99
+ : {}),
100
+ spawn: resolvedAcpSpawnToOptions(resolved, options?.spawnBase),
101
+ acpFingerprint: acpSpawnFingerprint(resolved),
102
+ };
103
+ });
83
104
  }
84
105
  /** kind に対応する profile agent module。agents[kind] → agents.default → undefined。 */
85
106
  export function resolveAgentPromptModule(kind, agents) {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/profile/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/profile/types.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,10 @@ agents:
14
14
  workers:
15
15
  - name: implementer
16
16
  kind: implementer
17
+ modelTag: high
17
18
  - name: reviewer
18
19
  kind: reviewer
20
+ modelTag: default
19
21
 
20
22
  materials:
21
23
  - id: team-common
@@ -2,8 +2,8 @@
2
2
  export { SESSION_SIDECAR_VERSION, assertSessionSidecarMatches, findLatestSessionSidecarForIssue, listSessionSidecars, loadSessionSidecar, requireSessionSidecarForResume, saveSessionSidecar, sessionSidecarDir, sessionSidecarPath, SessionSidecarNotFoundError, } from './session-resume-store.js';
3
3
  /** @deprecated Use SessionResumeStore; supported for one release only. */
4
4
  export type { FindLatestSessionSidecarInput, SessionSidecar, SessionSidecarPathOptions, WorkerSessionSidecar, } from './session-resume-store.js';
5
- export { SESSION_RESUME_STORE_VERSION, assertSessionResumeStoreMatches, findLatestSessionResumeStoreForIssue, harnessPhaseFromLegacyLifecycle, listSessionResumeStores, loadSessionResumeStore, requireSessionResumeStoreForResume, saveSessionResumeStore, sessionResumeStoreDir, sessionResumeStorePath, SessionResumeStoreNotFoundError, } from './session-resume-store.js';
6
- export type { FindLatestSessionResumeStoreInput, HarnessPhase, SessionLifecycle, SessionResumeStore, WorkerSessionResumeStore, } from './session-resume-store.js';
5
+ export { SESSION_RESUME_STORE_VERSION, assertSessionResumeStoreMatches, findLatestSessionResumeStoreForIssue, findSessionResumeStore, harnessPhaseFromLegacyLifecycle, listLocatedSessionResumeStores, listSessionResumeStores, loadSessionResumeStore, requireLocatedSessionResumeStoreForResume, requireSessionResumeStoreForResume, saveSessionResumeStore, sessionResumeStoreDir, sessionResumeStorePath, SessionResumeStoreNotFoundError, } from './session-resume-store.js';
6
+ export type { FindLatestSessionResumeStoreInput, HarnessPhase, LocatedSessionResumeStore, SessionLifecycle, SessionResumeStoreDuplicateDiagnostic, SessionResumeStoreLocation, SessionResumeStore, WorkerSessionResumeStore, } from './session-resume-store.js';
7
7
  export { loadOpenQuestionsStore, legacyOpenQuestionsStorePath, OPEN_QUESTIONS_STORE_VERSION, openQuestionsStorePath, saveOpenQuestionsStore, } from './open-questions-store.js';
8
8
  export type { OpenQuestionsStoreDocument } from './open-questions-store.js';
9
9
  export { CONDUCTOR_MESSAGE_HISTORY_MAX_ENTRIES, CONDUCTOR_MESSAGE_PAGE_DEFAULT_LIMIT, CONDUCTOR_MESSAGE_PAGE_MAX_LIMIT, OPEN_QUESTION_CONTROL_METHODS, OpenQuestionControlOperationError, OpenQuestionControlRemoteError, OpenQuestionControlTransportError, sendOpenQuestionControlRequest, startOpenQuestionControlServer, } from './open-question-control.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EAChC,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,0EAA0E;AAC1E,YAAY,EACV,6BAA6B,EAC7B,cAAc,EACd,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,oCAAoC,EACpC,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,kCAAkC,EAClC,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iCAAiC,EACjC,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EACL,qCAAqC,EACrC,oCAAoC,EACpC,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,+BAA+B,EAC/B,yBAAyB,EACzB,mCAAmC,EACnC,yCAAyC,EACzC,0CAA0C,EAC1C,4BAA4B,EAC5B,uCAAuC,EACvC,2BAA2B,EAC3B,kCAAkC,EAClC,kCAAkC,EAClC,yBAAyB,EACzB,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,EAC7B,2BAA2B,EAC3B,kCAAkC,EAClC,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EAChC,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,0EAA0E;AAC1E,YAAY,EACV,6BAA6B,EAC7B,cAAc,EACd,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,oCAAoC,EACpC,sBAAsB,EACtB,+BAA+B,EAC/B,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,yCAAyC,EACzC,kCAAkC,EAClC,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iCAAiC,EACjC,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,EAChB,qCAAqC,EACrC,0BAA0B,EAC1B,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EACL,qCAAqC,EACrC,oCAAoC,EACpC,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,+BAA+B,EAC/B,yBAAyB,EACzB,mCAAmC,EACnC,yCAAyC,EACzC,0CAA0C,EAC1C,4BAA4B,EAC5B,uCAAuC,EACvC,2BAA2B,EAC3B,kCAAkC,EAClC,kCAAkC,EAClC,yBAAyB,EACzB,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,EAC7B,2BAA2B,EAC3B,kCAAkC,EAClC,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /** @deprecated Use the SessionResumeStore exports; supported for one release only. */
2
2
  export { SESSION_SIDECAR_VERSION, assertSessionSidecarMatches, findLatestSessionSidecarForIssue, listSessionSidecars, loadSessionSidecar, requireSessionSidecarForResume, saveSessionSidecar, sessionSidecarDir, sessionSidecarPath, SessionSidecarNotFoundError, } from './session-resume-store.js';
3
- export { SESSION_RESUME_STORE_VERSION, assertSessionResumeStoreMatches, findLatestSessionResumeStoreForIssue, harnessPhaseFromLegacyLifecycle, listSessionResumeStores, loadSessionResumeStore, requireSessionResumeStoreForResume, saveSessionResumeStore, sessionResumeStoreDir, sessionResumeStorePath, SessionResumeStoreNotFoundError, } from './session-resume-store.js';
3
+ export { SESSION_RESUME_STORE_VERSION, assertSessionResumeStoreMatches, findLatestSessionResumeStoreForIssue, findSessionResumeStore, harnessPhaseFromLegacyLifecycle, listLocatedSessionResumeStores, listSessionResumeStores, loadSessionResumeStore, requireLocatedSessionResumeStoreForResume, requireSessionResumeStoreForResume, saveSessionResumeStore, sessionResumeStoreDir, sessionResumeStorePath, SessionResumeStoreNotFoundError, } from './session-resume-store.js';
4
4
  export { loadOpenQuestionsStore, legacyOpenQuestionsStorePath, OPEN_QUESTIONS_STORE_VERSION, openQuestionsStorePath, saveOpenQuestionsStore, } from './open-questions-store.js';
5
5
  export { CONDUCTOR_MESSAGE_HISTORY_MAX_ENTRIES, CONDUCTOR_MESSAGE_PAGE_DEFAULT_LIMIT, CONDUCTOR_MESSAGE_PAGE_MAX_LIMIT, OPEN_QUESTION_CONTROL_METHODS, OpenQuestionControlOperationError, OpenQuestionControlRemoteError, OpenQuestionControlTransportError, sendOpenQuestionControlRequest, startOpenQuestionControlServer, } from './open-question-control.js';
6
6
  export { loadSessionStateStore, legacySessionStateStorePath, saveSessionStatusLine, SESSION_STATE_STORE_MAX_BYTES, SESSION_STATE_STORE_VERSION, SESSION_STATUS_HISTORY_MAX_ENTRIES, SESSION_STATUS_LINE_MAX_LENGTH, sessionStateStorePath, } from './session-state-store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EAChC,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,oCAAoC,EACpC,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,kCAAkC,EAClC,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qCAAqC,EACrC,oCAAoC,EACpC,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AAgBpC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,EAC7B,2BAA2B,EAC3B,kCAAkC,EAClC,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EAChC,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,oCAAoC,EACpC,sBAAsB,EACtB,+BAA+B,EAC/B,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,yCAAyC,EACzC,kCAAkC,EAClC,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AAWnC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qCAAqC,EACrC,oCAAoC,EACpC,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AAgBpC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,EAC7B,2BAA2B,EAC3B,kCAAkC,EAClC,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,0BAA0B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { OpenQuestionRegistrySnapshot } from '../escalation/open-question.js';
2
+ import type { SessionResumeStoreLocation } from './session-resume-store.js';
2
3
  export declare const OPEN_QUESTIONS_STORE_VERSION = 1;
3
4
  export interface OpenQuestionsStoreDocument extends OpenQuestionRegistrySnapshot {
4
5
  version: typeof OPEN_QUESTIONS_STORE_VERSION;
@@ -6,6 +7,8 @@ export interface OpenQuestionsStoreDocument extends OpenQuestionRegistrySnapshot
6
7
  export declare function openQuestionsStorePath(input: {
7
8
  repoRoot: string;
8
9
  conductorAgentId: string;
10
+ issueUrl?: string;
11
+ location?: SessionResumeStoreLocation;
9
12
  }): string;
10
13
  export declare function legacyOpenQuestionsStorePath(input: {
11
14
  repoRoot: string;
@@ -1 +1 @@
1
- {"version":3,"file":"open-questions-store.d.ts","sourceRoot":"","sources":["../../src/session/open-questions-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AAGxC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,MAAM,WAAW,0BACf,SAAQ,4BAA4B;IACpC,OAAO,EAAE,OAAO,4BAA4B,CAAC;CAC9C;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAIT;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAIT;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,4BAA4B,GAAG,SAAS,CAAC,CAUnD;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,4BAA4B,GACrC,OAAO,CAAC,IAAI,CAAC,CAsBf"}
1
+ {"version":3,"file":"open-questions-store.d.ts","sourceRoot":"","sources":["../../src/session/open-questions-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAE5E,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,MAAM,WAAW,0BACf,SAAQ,4BAA4B;IACpC,OAAO,EAAE,OAAO,4BAA4B,CAAC;CAC9C;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,0BAA0B,CAAC;CACvC,GAAG,MAAM,CAWT;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAIT;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,4BAA4B,GAAG,SAAS,CAAC,CAUnD;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,4BAA4B,GACrC,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -4,7 +4,14 @@ import yaml from 'js-yaml';
4
4
  import { resolveEnsemblePaths } from '../ensemble-paths.js';
5
5
  export const OPEN_QUESTIONS_STORE_VERSION = 1;
6
6
  export function openQuestionsStorePath(input) {
7
- return resolveEnsemblePaths({ repoRoot: input.repoRoot }).openQuestionsPath(input.conductorAgentId);
7
+ const paths = resolveEnsemblePaths({ repoRoot: input.repoRoot });
8
+ if (input.location === 'canonical-slug') {
9
+ if (!input.issueUrl) {
10
+ throw new Error('issueUrl is required for a canonical-slug open questions path.');
11
+ }
12
+ return paths.canonicalOpenQuestionsPath(input.issueUrl, input.conductorAgentId);
13
+ }
14
+ return paths.openQuestionsPath(input.conductorAgentId);
8
15
  }
9
16
  export function legacyOpenQuestionsStorePath(input) {
10
17
  return resolveEnsemblePaths({
@@ -1 +1 @@
1
- {"version":3,"file":"open-questions-store.js","sourceRoot":"","sources":["../../src/session/open-questions-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-questions-store.js","sourceRoot":"","sources":["../../src/session/open-questions-store.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,22 @@ export interface SessionResumeStorePathOptions {
76
76
  repoRoot: string;
77
77
  conductorAgentId: string;
78
78
  }
79
+ export type SessionResumeStoreLocation = 'canonical-slug' | 'user-path-hash' | 'project-legacy';
80
+ export interface LocatedSessionResumeStore {
81
+ resumeStore: SessionResumeStore;
82
+ path: string;
83
+ location: SessionResumeStoreLocation;
84
+ }
85
+ export interface SessionResumeStoreDuplicateDiagnostic {
86
+ conductorAgentId: string;
87
+ selectedPath: string;
88
+ selectedLocation: SessionResumeStoreLocation;
89
+ candidates: Array<{
90
+ path: string;
91
+ location: SessionResumeStoreLocation;
92
+ hasHarnessSocketPath: boolean;
93
+ }>;
94
+ }
79
95
  /** @deprecated Use SessionResumeStorePathOptions; supported for one release only. */
80
96
  export type SessionSidecarPathOptions = SessionResumeStorePathOptions;
81
97
  export declare function sessionResumeStoreDir(repoRoot: string): string;
@@ -88,6 +104,11 @@ export declare function requireSessionResumeStoreForResume(input: {
88
104
  repoRoot: string;
89
105
  conductorAgentId: string;
90
106
  }): Promise<SessionResumeStore>;
107
+ export declare function requireLocatedSessionResumeStoreForResume(input: {
108
+ repoRoot: string;
109
+ conductorAgentId: string;
110
+ onDuplicate?: (diagnostic: SessionResumeStoreDuplicateDiagnostic) => void;
111
+ }): Promise<LocatedSessionResumeStore>;
91
112
  /** @deprecated Use requireSessionResumeStoreForResume; supported for one release only. */
92
113
  export declare function requireSessionSidecarForResume(input: {
93
114
  repoRoot: string;
@@ -96,7 +117,15 @@ export declare function requireSessionSidecarForResume(input: {
96
117
  export declare function saveSessionResumeStore(path: string, resumeStore: SessionResumeStore): Promise<void>;
97
118
  /** @deprecated Use saveSessionResumeStore; supported for one release only. */
98
119
  export declare const saveSessionSidecar: typeof saveSessionResumeStore;
99
- export declare function listSessionResumeStores(repoRoot: string): Promise<SessionResumeStore[]>;
120
+ export declare function listSessionResumeStores(repoRoot: string, options?: {
121
+ onDuplicate?: (diagnostic: SessionResumeStoreDuplicateDiagnostic) => void;
122
+ }): Promise<SessionResumeStore[]>;
123
+ export declare function listLocatedSessionResumeStores(repoRoot: string, options?: {
124
+ onDuplicate?: (diagnostic: SessionResumeStoreDuplicateDiagnostic) => void;
125
+ }): Promise<LocatedSessionResumeStore[]>;
126
+ export declare function findSessionResumeStore(repoRoot: string, conductorAgentId: string, options?: {
127
+ onDuplicate?: (diagnostic: SessionResumeStoreDuplicateDiagnostic) => void;
128
+ }): Promise<LocatedSessionResumeStore | undefined>;
100
129
  /** @deprecated Use listSessionResumeStores; supported for one release only. */
101
130
  export declare const listSessionSidecars: typeof listSessionResumeStores;
102
131
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session-resume-store.d.ts","sourceRoot":"","sources":["../../src/session/session-resume-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-resume-store.d.ts","sourceRoot":"","sources":["../../src/session/session-resume-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,IAA+B,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3E,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,gBAAgB,GAAG,SAAS,GACtC,YAAY,GAAG,IAAI,CAWrB;AAED,qBAAa,+BAAgC,SAAQ,KAAK;aAItC,gBAAgB,EAAE,MAAM;aACxB,IAAI,EAAE,MAAM;IAJ9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAoC;gBAGvC,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM;CAO/B;AAED,uFAAuF;AACvF,qBAAa,2BAA4B,SAAQ,+BAA+B;IAC9E,SAAkB,IAAI,+BAA+B;gBAEzC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAInD;AAED,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,4BAA4B,CAAC;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAClD,gCAAgC;IAChC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,+CAA+C;IAC/C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0EAA0E;AAC1E,MAAM,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAEhD,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,yFAAyF;AACzF,MAAM,MAAM,6BAA6B,GAAG,iCAAiC,CAAC;AAE9E,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,0BAA0B,GAClC,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,CAAC;AAErB,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,kBAAkB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,0BAA0B,CAAC;CACtC;AAED,MAAM,WAAW,qCAAqC;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,0BAA0B,CAAC;QACrC,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC,CAAC;CACJ;AAED,qFAAqF;AACrF,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAEtE,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,MAAM,CAIR;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,MAAM,CAIrF;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAGzC;AA0BD,6DAA6D;AAC7D,wBAAsB,kCAAkC,CAAC,KAAK,EAAE;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAG9B;AAED,wBAAsB,yCAAyC,CAAC,KAAK,EAAE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,qCAAqC,KAAK,IAAI,CAAC;CAC3E,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAsCrC;AAED,0FAA0F;AAC1F,wBAAsB,8BAA8B,CAAC,KAAK,EAAE;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,cAAc,CAAC,CAY1B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAiBf;AAmBD,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,+BAAyB,CAAC;AAEzD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,qCAAqC,KAAK,IAAI,CAAC;CACtE,GACL,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAI/B;AAED,wBAAsB,8BAA8B,CAClD,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,qCAAqC,KAAK,IAAI,CAAC;CACtE,GACL,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAEtC;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,qCAAqC,KAAK,IAAI,CAAC;CACtE,GACL,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAKhD;AAmJD,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,gCAA0B,CAAC;AAE3D;;;GAGG;AACH,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA0BzC;AAED,4FAA4F;AAC5F,eAAO,MAAM,gCAAgC,6CACP,CAAC;AAEvC,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,kBAAkB,EAC/B,KAAK,EAAE;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,+CAA+C;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,GACA,IAAI,CA8CN;AAED,uFAAuF;AACvF,eAAO,MAAM,2BAA2B,wCAAkC,CAAC;AAE3E,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,8BAAwB,CAAC;AAEvD,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,+BAAyB,CAAC;AAEzD,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,+BAAyB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { chmod, mkdir, readdir, readFile, rename, writeFile } from 'node:fs/promises';
2
- import { dirname, join } from 'node:path';
2
+ import { dirname, join, resolve } from 'node:path';
3
3
  import { computeAcpSpawnEnvDigest, } from '../acp/resolve-acp-spawn.js';
4
4
  import { resolveEnsemblePaths } from '../ensemble-paths.js';
5
5
  export const SESSION_RESUME_STORE_VERSION = 1;
@@ -74,25 +74,37 @@ async function readSessionResumeStore(path) {
74
74
  }
75
75
  /** `resumeAgentId` 指定時に SessionResumeStore が無い場合は起動失敗とする。 */
76
76
  export async function requireSessionResumeStoreForResume(input) {
77
- const path = sessionResumeStorePath(input);
78
- let loaded = await readSessionResumeStore(path);
79
- let sourcePath = path;
80
- if (!loaded) {
81
- sourcePath = legacySessionResumeStorePath(input);
82
- loaded = await readSessionResumeStore(sourcePath);
77
+ const located = await requireLocatedSessionResumeStoreForResume(input);
78
+ return located.resumeStore;
79
+ }
80
+ export async function requireLocatedSessionResumeStoreForResume(input) {
81
+ const locations = await listSessionResumeStoreLocations(input.repoRoot, {
82
+ onDuplicate: input.onDuplicate,
83
+ });
84
+ const located = locations.find((candidate) => candidate.resumeStore.conductorAgentId === input.conductorAgentId);
85
+ if (!located) {
86
+ const path = sessionResumeStorePath(input);
87
+ throw new SessionResumeStoreNotFoundError(input.conductorAgentId, path);
83
88
  }
89
+ const loaded = await readSessionResumeStore(located.path);
84
90
  if (!loaded) {
85
- throw new SessionResumeStoreNotFoundError(input.conductorAgentId, path);
91
+ throw new SessionResumeStoreNotFoundError(input.conductorAgentId, located.path);
86
92
  }
87
93
  if (loaded.hasLegacyAcpSpawnEnv) {
88
94
  // Scrub pre-digest env values before resume validation can reject the
89
95
  // session and bypass its normal first write.
90
- await writeSessionResumeStoreFile(sourcePath, redactLegacyAcpSpawnEnv(loaded.rawValue, loaded.resumeStore));
96
+ await writeSessionResumeStoreFile(located.path, redactLegacyAcpSpawnEnv(loaded.rawValue, loaded.resumeStore));
91
97
  }
92
- if (sourcePath !== path) {
93
- await writeSessionResumeStoreFile(path, loaded.resumeStore);
98
+ if (located.location === 'project-legacy') {
99
+ const migratedPath = sessionResumeStorePath(input);
100
+ await writeSessionResumeStoreFile(migratedPath, loaded.resumeStore);
101
+ return {
102
+ resumeStore: loaded.resumeStore,
103
+ path: migratedPath,
104
+ location: 'user-path-hash',
105
+ };
94
106
  }
95
- return loaded.resumeStore;
107
+ return { ...located, resumeStore: loaded.resumeStore };
96
108
  }
97
109
  /** @deprecated Use requireSessionResumeStoreForResume; supported for one release only. */
98
110
  export async function requireSessionSidecarForResume(input) {
@@ -134,28 +146,138 @@ async function writeSessionResumeStoreFile(path, value) {
134
146
  }
135
147
  /** @deprecated Use saveSessionResumeStore; supported for one release only. */
136
148
  export const saveSessionSidecar = saveSessionResumeStore;
137
- export async function listSessionResumeStores(repoRoot) {
149
+ export async function listSessionResumeStores(repoRoot, options = {}) {
150
+ return (await listLocatedSessionResumeStores(repoRoot, options)).map(({ resumeStore }) => resumeStore);
151
+ }
152
+ export async function listLocatedSessionResumeStores(repoRoot, options = {}) {
153
+ return listSessionResumeStoreLocations(repoRoot, options);
154
+ }
155
+ export async function findSessionResumeStore(repoRoot, conductorAgentId, options = {}) {
156
+ return (await listLocatedSessionResumeStores(repoRoot, options)).find((candidate) => candidate.resumeStore.conductorAgentId === conductorAgentId);
157
+ }
158
+ async function listSessionResumeStoreLocations(repoRoot, options = {}) {
138
159
  const paths = resolveEnsemblePaths({ repoRoot });
139
- const byAgentId = new Map();
140
- for (const dir of [paths.legacySessionsDir, paths.sessionsDir]) {
160
+ const candidates = [];
161
+ const visited = new Set();
162
+ const readDirectory = async (dir, location, slugRoot) => {
141
163
  let entries;
142
164
  try {
143
- entries = await readdir(dir);
165
+ entries = await readdir(dir, { withFileTypes: true });
144
166
  }
145
167
  catch (error) {
146
168
  if (isEnoent(error))
147
- continue;
169
+ return;
148
170
  throw error;
149
171
  }
150
172
  for (const entry of entries) {
151
- if (!entry.endsWith('.json') || entry.endsWith('.tmp'))
173
+ if (!entry.isFile() || !entry.name.endsWith('.json'))
174
+ continue;
175
+ const path = join(dir, entry.name);
176
+ if (visited.has(path))
152
177
  continue;
153
- const resumeStore = await loadSessionResumeStore(join(dir, entry));
154
- if (resumeStore)
155
- byAgentId.set(resumeStore.conductorAgentId, resumeStore);
178
+ visited.add(path);
179
+ const resumeStore = await loadSessionResumeStore(path);
180
+ if (!resumeStore)
181
+ continue;
182
+ if (slugRoot &&
183
+ (resolve(resumeStore.repoRoot) !== paths.repoRoot ||
184
+ canonicalSessionDirectory(paths, resumeStore.issueUrl) !== slugRoot)) {
185
+ continue;
186
+ }
187
+ candidates.push({ resumeStore, path, location });
156
188
  }
189
+ };
190
+ // The current path-hash and project-local directories are bounded and remain
191
+ // the discovery roots for legacy data.
192
+ await readDirectory(paths.sessionsDir, 'user-path-hash');
193
+ await readDirectory(paths.legacySessionsDir, 'project-legacy');
194
+ // Slug stores are keyed by GitHub repository identity. Search only the
195
+ // host/owner/repository depth and validate repoRoot before accepting a file.
196
+ let hosts;
197
+ try {
198
+ hosts = await readdir(paths.sessionsRoot, { withFileTypes: true });
199
+ }
200
+ catch (error) {
201
+ if (!isEnoent(error))
202
+ throw error;
203
+ hosts = [];
204
+ }
205
+ for (const host of hosts) {
206
+ if (!host.isDirectory() ||
207
+ /^[a-f0-9]{64}$/u.test(host.name) ||
208
+ host.name === 'pi') {
209
+ continue;
210
+ }
211
+ let owners;
212
+ try {
213
+ owners = await readdir(join(paths.sessionsRoot, host.name), {
214
+ withFileTypes: true,
215
+ });
216
+ }
217
+ catch (error) {
218
+ if (isEnoent(error))
219
+ continue;
220
+ throw error;
221
+ }
222
+ for (const owner of owners) {
223
+ if (!owner.isDirectory())
224
+ continue;
225
+ let repositories;
226
+ try {
227
+ repositories = await readdir(join(paths.sessionsRoot, host.name, owner.name), { withFileTypes: true });
228
+ }
229
+ catch (error) {
230
+ if (isEnoent(error))
231
+ continue;
232
+ throw error;
233
+ }
234
+ for (const repository of repositories) {
235
+ if (!repository.isDirectory())
236
+ continue;
237
+ const slugRoot = join(paths.sessionsRoot, host.name, owner.name, repository.name);
238
+ await readDirectory(slugRoot, 'canonical-slug', slugRoot);
239
+ }
240
+ }
241
+ }
242
+ const byAgentId = new Map();
243
+ for (const candidate of candidates) {
244
+ const matching = byAgentId.get(candidate.resumeStore.conductorAgentId) ?? [];
245
+ matching.push(candidate);
246
+ byAgentId.set(candidate.resumeStore.conductorAgentId, matching);
247
+ }
248
+ const locationPriority = {
249
+ 'canonical-slug': 0,
250
+ 'user-path-hash': 1,
251
+ 'project-legacy': 2,
252
+ };
253
+ const selected = [];
254
+ for (const [conductorAgentId, matches] of byAgentId) {
255
+ matches.sort((left, right) => locationPriority[left.location] - locationPriority[right.location] ||
256
+ right.resumeStore.updatedAt - left.resumeStore.updatedAt);
257
+ const chosen = matches[0];
258
+ selected.push(chosen);
259
+ if (matches.length > 1) {
260
+ options.onDuplicate?.({
261
+ conductorAgentId,
262
+ selectedPath: chosen.path,
263
+ selectedLocation: chosen.location,
264
+ candidates: matches.map((candidate) => ({
265
+ path: candidate.path,
266
+ location: candidate.location,
267
+ hasHarnessSocketPath: candidate.resumeStore.harnessSocketPath !== undefined,
268
+ })),
269
+ });
270
+ }
271
+ }
272
+ return selected;
273
+ }
274
+ function canonicalSessionDirectory(paths, issueUrl) {
275
+ try {
276
+ return paths.canonicalRepoSessionsDir(issueUrl);
277
+ }
278
+ catch {
279
+ return undefined;
157
280
  }
158
- return [...byAgentId.values()];
159
281
  }
160
282
  /** @deprecated Use listSessionResumeStores; supported for one release only. */
161
283
  export const listSessionSidecars = listSessionResumeStores;
@@ -436,6 +558,22 @@ function parseAcpSpawnFingerprint(raw, workerName) {
436
558
  if (!Array.isArray(record.args) || record.args.some((arg) => typeof arg !== 'string')) {
437
559
  throw new Error(`Invalid session resume store worker acpSpawn args: ${workerName}`);
438
560
  }
561
+ const validModelTags = ['high', 'default', 'low', 'fast'];
562
+ let modelTag;
563
+ if (record.modelTag !== undefined) {
564
+ if (typeof record.modelTag !== 'string' ||
565
+ !validModelTags.includes(record.modelTag)) {
566
+ throw new Error(`Invalid session resume store worker acpSpawn modelTag: ${workerName}`);
567
+ }
568
+ modelTag = record.modelTag;
569
+ }
570
+ let model;
571
+ if (record.model !== undefined) {
572
+ if (typeof record.model !== 'string' || record.model.length === 0) {
573
+ throw new Error(`Invalid session resume store worker acpSpawn model: ${workerName}`);
574
+ }
575
+ model = record.model;
576
+ }
439
577
  let envDigest;
440
578
  if (record.envDigest !== undefined) {
441
579
  if (typeof record.envDigest !== 'string' ||
@@ -467,6 +605,8 @@ function parseAcpSpawnFingerprint(raw, workerName) {
467
605
  preset: record.preset,
468
606
  command: record.command,
469
607
  args: record.args,
608
+ ...(modelTag !== undefined ? { modelTag } : {}),
609
+ ...(model !== undefined ? { model } : {}),
470
610
  ...(envDigest ? { envDigest } : {}),
471
611
  };
472
612
  }