@agents-ensemble/core 0.2.1 → 0.3.2

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 (106) hide show
  1. package/dist/conductor/conductor-agent.d.ts +2 -1
  2. package/dist/conductor/conductor-agent.d.ts.map +1 -1
  3. package/dist/conductor/conductor-agent.js +3 -0
  4. package/dist/conductor/conductor-agent.js.map +1 -1
  5. package/dist/conductor/conductor-session.d.ts.map +1 -1
  6. package/dist/conductor/conductor-session.js +80 -18
  7. package/dist/conductor/conductor-session.js.map +1 -1
  8. package/dist/conductor/session/events/index.d.ts +1 -1
  9. package/dist/conductor/session/events/index.d.ts.map +1 -1
  10. package/dist/conductor/session/events/index.js.map +1 -1
  11. package/dist/conductor/session/events/session-log-event-groups.d.ts +2 -2
  12. package/dist/conductor/session/events/session-log-event-groups.d.ts.map +1 -1
  13. package/dist/conductor/session/events/session-log-event-groups.js +2 -0
  14. package/dist/conductor/session/events/session-log-event-groups.js.map +1 -1
  15. package/dist/conductor/session/events/session-log-event.d.ts +10 -1
  16. package/dist/conductor/session/events/session-log-event.d.ts.map +1 -1
  17. package/dist/conductor/session/session-logger.d.ts.map +1 -1
  18. package/dist/conductor/session/session-logger.js +2 -0
  19. package/dist/conductor/session/session-logger.js.map +1 -1
  20. package/dist/dispatch/attach-worker.d.ts +2 -0
  21. package/dist/dispatch/attach-worker.d.ts.map +1 -1
  22. package/dist/dispatch/attach-worker.js +4 -0
  23. package/dist/dispatch/attach-worker.js.map +1 -1
  24. package/dist/dispatch/session-usage-tool.d.ts +2 -0
  25. package/dist/dispatch/session-usage-tool.d.ts.map +1 -1
  26. package/dist/dispatch/session-usage-tool.js +3 -1
  27. package/dist/dispatch/session-usage-tool.js.map +1 -1
  28. package/dist/dispatch/worker-acp-session.d.ts +8 -1
  29. package/dist/dispatch/worker-acp-session.d.ts.map +1 -1
  30. package/dist/dispatch/worker-acp-session.js +15 -4
  31. package/dist/dispatch/worker-acp-session.js.map +1 -1
  32. package/dist/profile/index.d.ts +5 -2
  33. package/dist/profile/index.d.ts.map +1 -1
  34. package/dist/profile/index.js +2 -1
  35. package/dist/profile/index.js.map +1 -1
  36. package/dist/profile/load-profile.d.ts +20 -19
  37. package/dist/profile/load-profile.d.ts.map +1 -1
  38. package/dist/profile/load-profile.js +55 -52
  39. package/dist/profile/load-profile.js.map +1 -1
  40. package/dist/profile/profile-paths.d.ts +19 -0
  41. package/dist/profile/profile-paths.d.ts.map +1 -0
  42. package/dist/profile/profile-paths.js +39 -0
  43. package/dist/profile/profile-paths.js.map +1 -0
  44. package/dist/profile/resolve-worker-workspace.d.ts +13 -0
  45. package/dist/profile/resolve-worker-workspace.d.ts.map +1 -0
  46. package/dist/profile/resolve-worker-workspace.js +60 -0
  47. package/dist/profile/resolve-worker-workspace.js.map +1 -0
  48. package/dist/profile/team-profile-resolution.d.ts +43 -0
  49. package/dist/profile/team-profile-resolution.d.ts.map +1 -0
  50. package/dist/profile/team-profile-resolution.js +173 -0
  51. package/dist/profile/team-profile-resolution.js.map +1 -0
  52. package/dist/profile/types.d.ts +18 -0
  53. package/dist/profile/types.d.ts.map +1 -1
  54. package/dist/profile/types.js +11 -2
  55. package/dist/profile/types.js.map +1 -1
  56. package/dist/profile/validate-team-profile-workspaces.d.ts +23 -0
  57. package/dist/profile/validate-team-profile-workspaces.d.ts.map +1 -0
  58. package/dist/profile/validate-team-profile-workspaces.js +57 -0
  59. package/dist/profile/validate-team-profile-workspaces.js.map +1 -0
  60. package/dist/profiles/implementer-and-reviewer/conductor.prompt.yaml +18 -0
  61. package/dist/profiles/implementer-and-reviewer/implementer.prompt.yaml +15 -0
  62. package/dist/profiles/implementer-and-reviewer/reviewer.prompt.yaml +16 -0
  63. package/dist/profiles/{default → implementer-and-reviewer}/team.md +9 -4
  64. package/dist/prompt/build-worker-attach-prompt.d.ts +1 -0
  65. package/dist/prompt/build-worker-attach-prompt.d.ts.map +1 -1
  66. package/dist/prompt/build-worker-attach-prompt.js +6 -3
  67. package/dist/prompt/build-worker-attach-prompt.js.map +1 -1
  68. package/dist/prompt/contexts/kind.d.ts +1 -0
  69. package/dist/prompt/contexts/kind.d.ts.map +1 -1
  70. package/dist/prompt/contexts/kind.js.map +1 -1
  71. package/dist/prompt/modules/ensemble/conductor-base-module.js +6 -6
  72. package/dist/prompt/modules/ensemble/conductor-base-module.js.map +1 -1
  73. package/dist/prompt/modules/ensemble/worker-base-module.d.ts.map +1 -1
  74. package/dist/prompt/modules/ensemble/worker-base-module.js +3 -4
  75. package/dist/prompt/modules/ensemble/worker-base-module.js.map +1 -1
  76. package/dist/runtime/types.d.ts +2 -0
  77. package/dist/runtime/types.d.ts.map +1 -1
  78. package/dist/runtime/worker-runtime.d.ts +9 -1
  79. package/dist/runtime/worker-runtime.d.ts.map +1 -1
  80. package/dist/runtime/worker-runtime.js +37 -5
  81. package/dist/runtime/worker-runtime.js.map +1 -1
  82. package/dist/runtime/worker-session.d.ts +9 -3
  83. package/dist/runtime/worker-session.d.ts.map +1 -1
  84. package/dist/runtime/worker-session.js +9 -3
  85. package/dist/runtime/worker-session.js.map +1 -1
  86. package/dist/runtime/worker-status.d.ts +2 -0
  87. package/dist/runtime/worker-status.d.ts.map +1 -1
  88. package/dist/session/session-sidecar.d.ts +2 -0
  89. package/dist/session/session-sidecar.d.ts.map +1 -1
  90. package/dist/session/session-sidecar.js +4 -1
  91. package/dist/session/session-sidecar.js.map +1 -1
  92. package/dist/testing/mock-conductor-get-usage.d.ts +3 -0
  93. package/dist/testing/mock-conductor-get-usage.d.ts.map +1 -0
  94. package/dist/testing/mock-conductor-get-usage.js +15 -0
  95. package/dist/testing/mock-conductor-get-usage.js.map +1 -0
  96. package/dist/usage/enrich-session-usage-cost.d.ts +6 -0
  97. package/dist/usage/enrich-session-usage-cost.d.ts.map +1 -0
  98. package/dist/usage/enrich-session-usage-cost.js +17 -0
  99. package/dist/usage/enrich-session-usage-cost.js.map +1 -0
  100. package/dist/usage/types.d.ts +3 -0
  101. package/dist/usage/types.d.ts.map +1 -1
  102. package/package.json +1 -1
  103. package/dist/profiles/default/conductor.prompt.yaml +0 -29
  104. package/dist/profiles/default/implementer.prompt.yaml +0 -17
  105. package/dist/profiles/default/reviewer.prompt.yaml +0 -18
  106. /package/dist/profiles/{default → implementer-and-reviewer}/profile.yaml +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"session-usage-tool.js","sourceRoot":"","sources":["../../src/dispatch/session-usage-tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOvD,MAAM,UAAU,uBAAuB,CACrC,OAAgC;IAEhC,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAExD,OAAO;QACL,iBAAiB,EAAE;YACjB,WAAW,EACT,8LAA8L;YAChM,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACf;YACD,KAAK,CAAC,OAAO;gBACX,OAAO,cAAc,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAClF,CAAC;SACF;QACD,SAAS,EAAE;YACT,WAAW,EACT,iIAAiI;YACnI,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,8FAA8F;qBACjG;iBACF;aACF;YACD,KAAK,CAAC,OAAO,CAAC,IAAI;gBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAC1C,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;gBACF,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAwB;IAChD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-usage-tool.js","sourceRoot":"","sources":["../../src/dispatch/session-usage-tool.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,GAE3B,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQvD,MAAM,UAAU,uBAAuB,CACrC,OAAgC;IAEhC,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAExD,OAAO;QACL,iBAAiB,EAAE;YACjB,WAAW,EACT,8LAA8L;YAChM,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACf;YACD,KAAK,CAAC,OAAO;gBACX,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAC9C,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EACnC,OAAO,CAAC,qBAAqB,CAC9B,CAAC;gBACF,OAAO,cAAc,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC;SACF;QACD,SAAS,EAAE;YACT,WAAW,EACT,iIAAiI;YACnI,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,8FAA8F;qBACjG;iBACF;aACF;YACD,KAAK,CAAC,OAAO,CAAC,IAAI;gBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAC1C,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;gBACF,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAwB;IAChD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC;AACJ,CAAC"}
@@ -14,8 +14,13 @@ export interface ConnectWorkerAcpOptions {
14
14
  export type ConnectWorkerAcpFn = (options: ConnectWorkerAcpOptions) => Promise<AcpBridge>;
15
15
  export interface OpenWorkerAcpSessionOptions {
16
16
  issueUrl: string;
17
- /** Conductor が事前に resolve した作業ディレクトリ。 */
17
+ /** Conductor が事前に resolve した作業ディレクトリ(Issue worktree)。 */
18
18
  worktree: WorktreeRef;
19
+ /** ACP spawn / session cwd。未指定時は `worktree.path`。 */
20
+ acpCwd?: string;
21
+ workerName?: string;
22
+ /** resume 時に sidecar が記録した cwd。不一致なら attach 失敗。 */
23
+ expectedResumeAcpCwd?: string;
19
24
  resumeAcpSessionId?: string;
20
25
  bridge?: AcpBridge;
21
26
  connectAcp?: ConnectWorkerAcpFn;
@@ -31,6 +36,8 @@ export interface WorkerAcpSession {
31
36
  sessionId: string;
32
37
  worktree: WorktreeRef;
33
38
  issue: IssueRef;
39
+ /** 実際に ACP に渡した cwd(`session/new` / `session/load`)。 */
40
+ acpCwd: string;
34
41
  }
35
42
  export declare function openWorkerAcpSession(options: OpenWorkerAcpSessionOptions): Promise<WorkerAcpSession>;
36
43
  export declare function runWorkerAcpPrompt(session: WorkerAcpSession, prompt: string, options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"worker-acp-session.d.ts","sourceRoot":"","sources":["../../src/dispatch/worker-acp-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,wDAAwD;AACxD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,sBAAsB,GAAG,SAAS,EACzC,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAKxB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,uBAAuB,KAC7B,OAAO,CAAC,SAAS,CAAC,CAAC;AAExB,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,WAAW,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,gBAAgB,CAAC,CA+C3B;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,GACA,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED,+CAA+C;AAC/C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAErE;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAIf"}
1
+ {"version":3,"file":"worker-acp-session.d.ts","sourceRoot":"","sources":["../../src/dispatch/worker-acp-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,wDAAwD;AACxD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,sBAAsB,GAAG,SAAS,EACzC,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAKxB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,uBAAuB,KAC7B,OAAO,CAAC,SAAS,CAAC,CAAC;AAExB,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,QAAQ,EAAE,WAAW,CAAC;IACtB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,QAAQ,CAAC;IAChB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,gBAAgB,CAAC,CA+D3B;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,GACA,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED,+CAA+C;AAC/C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAErE;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -1,4 +1,5 @@
1
1
  import { AcpBridge } from '../acp/acp-bridge.js';
2
+ import { assertWorkerWorkspaceDirectory } from '../profile/resolve-worker-workspace.js';
2
3
  /** attach / dispatch 時に worker 名を spawn オプションへマージする。 */
3
4
  export function mergeWorkerSpawn(spawn, workerName) {
4
5
  return {
@@ -9,12 +10,21 @@ export function mergeWorkerSpawn(spawn, workerName) {
9
10
  export async function openWorkerAcpSession(options) {
10
11
  const worktree = options.worktree;
11
12
  const issue = worktree.issue;
13
+ const acpCwd = options.acpCwd ?? worktree.path;
14
+ if (options.expectedResumeAcpCwd &&
15
+ options.expectedResumeAcpCwd !== acpCwd) {
16
+ const label = options.workerName ? `Worker "${options.workerName}"` : 'Worker';
17
+ throw new Error(`${label} resume cwd mismatch: sidecar has ${options.expectedResumeAcpCwd}, current profile resolves to ${acpCwd}`);
18
+ }
19
+ if (options.acpCwd !== undefined) {
20
+ assertWorkerWorkspaceDirectory(acpCwd, options.workerName);
21
+ }
12
22
  let ownsBridge = false;
13
23
  let bridge = options.bridge;
14
24
  if (!bridge) {
15
25
  if (options.connectAcp) {
16
26
  bridge = await options.connectAcp({
17
- cwd: worktree.path,
27
+ cwd: acpCwd,
18
28
  spawn: options.spawn,
19
29
  permissionHandler: options.permissionHandler,
20
30
  });
@@ -22,7 +32,7 @@ export async function openWorkerAcpSession(options) {
22
32
  }
23
33
  else {
24
34
  bridge = await AcpBridge.connect({
25
- cwd: worktree.path,
35
+ cwd: acpCwd,
26
36
  permissionHandler: options.permissionHandler,
27
37
  ...options.spawn,
28
38
  });
@@ -32,14 +42,14 @@ export async function openWorkerAcpSession(options) {
32
42
  let sessionId = options.resumeAcpSessionId;
33
43
  if (sessionId) {
34
44
  try {
35
- await bridge.loadSession(sessionId, worktree.path, options.permissionHandler);
45
+ await bridge.loadSession(sessionId, acpCwd, options.permissionHandler);
36
46
  }
37
47
  catch {
38
48
  sessionId = undefined;
39
49
  }
40
50
  }
41
51
  if (!sessionId) {
42
- sessionId = await bridge.newSession(worktree.path);
52
+ sessionId = await bridge.newSession(acpCwd);
43
53
  }
44
54
  return {
45
55
  bridge,
@@ -47,6 +57,7 @@ export async function openWorkerAcpSession(options) {
47
57
  sessionId,
48
58
  worktree,
49
59
  issue,
60
+ acpCwd,
50
61
  };
51
62
  }
52
63
  export async function runWorkerAcpPrompt(session, prompt, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"worker-acp-session.js","sourceRoot":"","sources":["../../src/dispatch/worker-acp-session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMjD,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAC9B,KAAyC,EACzC,UAAkB;IAElB,OAAO;QACL,GAAG,KAAK;QACR,UAAU;KACX,CAAC;AACJ,CAAC;AAkCD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAoC;IAEpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE7B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;gBAChC,GAAG,EAAE,QAAQ,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;aAC7C,CAAC,CAAC;YACH,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;gBAC/B,GAAG,EAAE,QAAQ,CAAC,IAAI;gBAClB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,GAAG,OAAO,CAAC,KAAK;aACjB,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAC3C,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,WAAW,CACtB,SAAS,EACT,QAAQ,CAAC,IAAI,EACb,OAAO,CAAC,iBAAiB,CAC1B,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,SAAS,CAAC;QACxB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,MAAM;QACN,UAAU;QACV,SAAS;QACT,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAyB,EACzB,MAAc,EACd,OAGC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,qBAAqB,CAAC,OAAyB;IAC7D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAyB;IAEzB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"worker-acp-session.js","sourceRoot":"","sources":["../../src/dispatch/worker-acp-session.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
- export { loadProfile, loadProfileFromFile, parseProfile, resolveProfilePath, resolveProfile, resolveProfileFilePath, resolveDefaultProfilePath, profileDirectoryPath, corePackageRoot, bundledProfilesRoot, bundledProfilePath, bundledDefaultProfilePath, PROFILES_DIR, PROFILE_FILE, DEFAULT_PROFILE_NAME, } from './load-profile.js';
2
- export type { Profile, ProfileMaterial, ResolvedProfile, AgentDefinition, ProfileWorkerEntry, ProfileWorkerRef, SessionWorkerSpec, EnsembleSessionState, } from './types.js';
1
+ export { loadProfile, loadProfileFromFile, parseProfile, resolveProfileRef, resolveProfilePath, resolveProfile, resolveProfileFilePath, resolveDefaultProfilePath, ENSEMBLE_DEFAULT_PROFILE_ENV, profileDirectoryPath, corePackageRoot, bundledProfilesRoot, bundledProfilePath, bundledDefaultProfilePath, PROFILES_DIR, PROFILE_FILE, DEFAULT_PROFILE_NAME, DEFAULT_PROFILE_ALIAS, ENSEMBLE_DIR, TEAMS_DIR, teamProfileRoots, resolveTeamProfilePath, listTeamProfiles, normalizeTeamProfileName, teamProfileId, } from './load-profile.js';
2
+ export type { Profile, ProfileMaterial, ProfileMeta, ResolvedProfile, AgentDefinition, ProfileWorkerEntry, ProfileWorkerRef, SessionWorkerSpec, EnsembleSessionState, } from './types.js';
3
+ export type { TeamProfileSource, TeamProfileMeta, TeamProfileListEntry, TeamProfileRoot, TeamProfileResolutionOptions, TeamProfileAvailability, TeamProfileValidationIssue, } from './team-profile-resolution.js';
4
+ export { validateTeamProfileWorkspaces, assertTeamProfileWorkspacesAvailable, formatTeamProfileActivationError, } from './validate-team-profile-workspaces.js';
5
+ export type { TeamProfileWorkspaceValidation } from './validate-team-profile-workspaces.js';
3
6
  export { profileWorkersToSessionSpecs, resolveAgentPromptModule, normalizeProfileWorker, normalizeProfileWorkers, sessionStateFromProfile, } from './types.js';
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,OAAO,EACP,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,OAAO,EACP,eAAe,EACf,WAAW,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
@@ -1,3 +1,4 @@
1
- export { loadProfile, loadProfileFromFile, parseProfile, resolveProfilePath, resolveProfile, resolveProfileFilePath, resolveDefaultProfilePath, profileDirectoryPath, corePackageRoot, bundledProfilesRoot, bundledProfilePath, bundledDefaultProfilePath, PROFILES_DIR, PROFILE_FILE, DEFAULT_PROFILE_NAME, } from './load-profile.js';
1
+ export { loadProfile, loadProfileFromFile, parseProfile, resolveProfileRef, resolveProfilePath, resolveProfile, resolveProfileFilePath, resolveDefaultProfilePath, ENSEMBLE_DEFAULT_PROFILE_ENV, profileDirectoryPath, corePackageRoot, bundledProfilesRoot, bundledProfilePath, bundledDefaultProfilePath, PROFILES_DIR, PROFILE_FILE, DEFAULT_PROFILE_NAME, DEFAULT_PROFILE_ALIAS, ENSEMBLE_DIR, TEAMS_DIR, teamProfileRoots, resolveTeamProfilePath, listTeamProfiles, normalizeTeamProfileName, teamProfileId, } from './load-profile.js';
2
+ export { validateTeamProfileWorkspaces, assertTeamProfileWorkspacesAvailable, formatTeamProfileActivationError, } from './validate-team-profile-workspaces.js';
2
3
  export { profileWorkersToSessionSpecs, resolveAgentPromptModule, normalizeProfileWorker, normalizeProfileWorkers, sessionStateFromProfile, } from './types.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAqB3B,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
@@ -1,33 +1,34 @@
1
1
  import type { Profile, ResolvedProfile } from './types.js';
2
- export declare const PROFILES_DIR = "profiles";
3
- export declare const PROFILE_FILE = "profile.yaml";
4
- export declare const DEFAULT_PROFILE_NAME = "default";
2
+ export { bundledDefaultProfilePath, bundledProfilePath, bundledProfilesRoot, corePackageRoot, DEFAULT_PROFILE_ALIAS, DEFAULT_PROFILE_NAME, ENSEMBLE_DIR, PROFILE_FILE, profileDirectoryPath, PROFILES_DIR, TEAMS_DIR, } from './profile-paths.js';
3
+ export { teamProfileRoots, resolveTeamProfilePath, listTeamProfiles, normalizeTeamProfileName, teamProfileId, } from './team-profile-resolution.js';
4
+ export { validateTeamProfileWorkspaces, assertTeamProfileWorkspacesAvailable, formatTeamProfileActivationError, } from './validate-team-profile-workspaces.js';
5
+ export type { TeamProfileAvailability, TeamProfileValidationIssue, TeamProfileWorkspaceValidation, } from './validate-team-profile-workspaces.js';
5
6
  export declare function parseProfile(source: unknown, label: string): Profile;
6
7
  export declare function resolveProfileFilePath(profileDir: string, fileRef: string): string;
7
8
  /** `file` / `promptFile` を読み込み、インラインに解決する。 */
8
- export declare function resolveProfile(profile: Profile, profileDir: string): Promise<ResolvedProfile>;
9
- export declare function loadProfileFromFile(filePath: string): Promise<ResolvedProfile>;
10
- /** `@agents-ensemble/core` パッケージルート(`src/profile` または `dist/profile` から算出)。 */
11
- export declare function corePackageRoot(): string;
12
- /**
13
- * 同梱プロファイルのルート。
14
- * 正本はリポジトリ直下の `profiles/`。`build` で `dist/profiles/` にコピー済みなら dist を使う。
15
- */
16
- export declare function bundledProfilesRoot(): string;
17
- export declare function bundledProfilePath(name: string): string;
18
- export declare function bundledDefaultProfilePath(): string;
19
- export declare function profileDirectoryPath(cwd: string, name: string): string;
9
+ export declare function resolveProfile(profile: Profile, profileDir: string, repoRoot: string): Promise<ResolvedProfile>;
10
+ export declare function loadProfileFromFile(filePath: string, options?: {
11
+ repoRoot?: string;
12
+ }): Promise<ResolvedProfile>;
20
13
  /**
21
14
  * プロファイル参照をファイルパスに解決する。
22
- * - `default` などの名前 → 同梱 `profiles/<name>/profile.yaml`(無ければ `<cwd>/profiles/<name>/profile.yaml`)
23
- * - `profiles/foo/profile.yaml` や絶対パスは cwd 基準でそのまま
15
+ * - 名前のみ → project `.ensemble/teams/` > user `~/.ensemble/teams/` > bundled > legacy
16
+ * - `profiles/foo/profile.yaml` や絶対パスは repoRoot 基準でそのまま
24
17
  */
25
- export declare function resolveProfilePath(ref: string, cwd: string): string;
26
- /** --profile 未指定時は同梱 default。 */
18
+ export declare function resolveProfilePath(ref: string, repoRoot: string): string;
19
+ /** `--profile` 未指定時のデフォルト team profile(`--profile` と同じ解釈)。 */
20
+ export declare const ENSEMBLE_DEFAULT_PROFILE_ENV = "ENSEMBLE_DEFAULT_PROFILE";
21
+ /** CLI `--profile` > `ENSEMBLE_DEFAULT_PROFILE` > bundled default のうち、先に有効な参照を返す。 */
22
+ export declare function resolveProfileRef(options: {
23
+ profile?: string;
24
+ env?: NodeJS.ProcessEnv;
25
+ }): string | undefined;
26
+ /** `--profile` / env も未指定時は同梱 default。 */
27
27
  export declare function resolveDefaultProfilePath(): string;
28
28
  export declare function loadProfile(options: {
29
29
  profile?: string;
30
30
  cwd?: string;
31
+ env?: NodeJS.ProcessEnv;
31
32
  }): Promise<{
32
33
  profile: ResolvedProfile;
33
34
  profilePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"load-profile.d.ts","sourceRoot":"","sources":["../../src/profile/load-profile.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,OAAO,EAGP,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAyCpE;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKlF;AAiDD,8CAA8C;AAC9C,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAiB1B;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAKpF;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAO5C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAcnE;AAED,iCAAiC;AACjC,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAO7D"}
1
+ {"version":3,"file":"load-profile.d.ts","sourceRoot":"","sources":["../../src/profile/load-profile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,OAAO,EAGP,eAAe,EAChB,MAAM,YAAY,CAAC;AAgBpB,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,uCAAuC,CAAC;AAe/C,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAyCpE;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKlF;AAoED,8CAA8C;AAC9C,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAiB1B;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,eAAe,CAAC,CAO1B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,8DAA8D;AAC9D,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AAEvE,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,GAAG,SAAS,CAMrB;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB7D"}
@@ -1,13 +1,24 @@
1
- import { existsSync } from 'node:fs';
2
1
  import { readFile } from 'node:fs/promises';
3
- import { dirname, isAbsolute, join } from 'node:path';
4
- import { fileURLToPath } from 'node:url';
2
+ import { basename, dirname, isAbsolute, join } from 'node:path';
5
3
  import yaml from 'js-yaml';
6
4
  import { parsePromptModuleFromYaml } from './parse-prompt-module.js';
5
+ import { resolveWorkerWorkspacePath } from './resolve-worker-workspace.js';
6
+ import { assertTeamProfileWorkspacesAvailable } from './validate-team-profile-workspaces.js';
7
7
  import { normalizeProfileWorkers } from './types.js';
8
- export const PROFILES_DIR = 'profiles';
9
- export const PROFILE_FILE = 'profile.yaml';
10
- export const DEFAULT_PROFILE_NAME = 'default';
8
+ import { normalizeTeamProfileName, resolveTeamProfilePath, } from './team-profile-resolution.js';
9
+ import { bundledDefaultProfilePath, PROFILE_FILE, } from './profile-paths.js';
10
+ export { bundledDefaultProfilePath, bundledProfilePath, bundledProfilesRoot, corePackageRoot, DEFAULT_PROFILE_ALIAS, DEFAULT_PROFILE_NAME, ENSEMBLE_DIR, PROFILE_FILE, profileDirectoryPath, PROFILES_DIR, TEAMS_DIR, } from './profile-paths.js';
11
+ export { teamProfileRoots, resolveTeamProfilePath, listTeamProfiles, normalizeTeamProfileName, teamProfileId, } from './team-profile-resolution.js';
12
+ export { validateTeamProfileWorkspaces, assertTeamProfileWorkspacesAvailable, formatTeamProfileActivationError, } from './validate-team-profile-workspaces.js';
13
+ function teamProfileRefFromLoad(profilePath, profileRef) {
14
+ if (profileRef?.trim()) {
15
+ const trimmed = profileRef.trim();
16
+ if (!trimmed.includes('/') && !trimmed.endsWith('.yaml') && !trimmed.endsWith('.yml')) {
17
+ return normalizeTeamProfileName(trimmed);
18
+ }
19
+ }
20
+ return basename(dirname(profilePath));
21
+ }
11
22
  export function parseProfile(source, label) {
12
23
  if (!source || typeof source !== 'object' || !Array.isArray(source.workers)) {
13
24
  throw new Error(`Invalid profile: ${label} (expected YAML with "workers" array)`);
@@ -74,78 +85,70 @@ async function resolveMaterial(material, profileDir, label) {
74
85
  content,
75
86
  };
76
87
  }
88
+ function resolveProfileWorkers(workers, profileDir, repoRoot) {
89
+ return workers.map((worker) => ({
90
+ ...worker,
91
+ ...(worker.workspace
92
+ ? {
93
+ resolvedWorkspacePath: resolveWorkerWorkspacePath(worker.workspace, profileDir, repoRoot),
94
+ }
95
+ : {}),
96
+ }));
97
+ }
77
98
  /** `file` / `promptFile` を読み込み、インラインに解決する。 */
78
- export async function resolveProfile(profile, profileDir) {
99
+ export async function resolveProfile(profile, profileDir, repoRoot) {
79
100
  const label = join(profileDir, PROFILE_FILE);
80
101
  const agents = {};
81
102
  for (const [name, agent] of Object.entries(profile.agents ?? {})) {
82
103
  agents[name] = await resolveAgent(name, agent, profileDir, label);
83
104
  }
84
105
  return {
85
- workers: profile.workers,
106
+ workers: resolveProfileWorkers(profile.workers, profileDir, repoRoot),
86
107
  agents: Object.keys(agents).length > 0 ? agents : undefined,
87
108
  materials: await Promise.all((profile.materials ?? []).map((material) => resolveMaterial(material, profileDir, label))),
88
109
  };
89
110
  }
90
- export async function loadProfileFromFile(filePath) {
111
+ export async function loadProfileFromFile(filePath, options) {
112
+ const profileDir = dirname(filePath);
113
+ const repoRoot = options?.repoRoot ?? profileDir;
91
114
  const raw = await readFile(filePath, 'utf8');
92
115
  const parsed = yaml.load(raw);
93
116
  const profile = parseProfile(parsed, filePath);
94
- return resolveProfile(profile, dirname(filePath));
95
- }
96
- /** `@agents-ensemble/core` パッケージルート(`src/profile` または `dist/profile` から算出)。 */
97
- export function corePackageRoot() {
98
- return join(dirname(fileURLToPath(import.meta.url)), '../..');
99
- }
100
- /**
101
- * 同梱プロファイルのルート。
102
- * 正本はリポジトリ直下の `profiles/`。`build` で `dist/profiles/` にコピー済みなら dist を使う。
103
- */
104
- export function bundledProfilesRoot() {
105
- const packageRoot = corePackageRoot();
106
- const distProfiles = join(packageRoot, 'dist/profiles');
107
- if (existsSync(join(distProfiles, DEFAULT_PROFILE_NAME, PROFILE_FILE))) {
108
- return distProfiles;
109
- }
110
- return join(packageRoot, '../../profiles');
111
- }
112
- export function bundledProfilePath(name) {
113
- return join(bundledProfilesRoot(), name, PROFILE_FILE);
114
- }
115
- export function bundledDefaultProfilePath() {
116
- return bundledProfilePath(DEFAULT_PROFILE_NAME);
117
- }
118
- export function profileDirectoryPath(cwd, name) {
119
- return join(cwd, PROFILES_DIR, name, PROFILE_FILE);
117
+ return resolveProfile(profile, profileDir, repoRoot);
120
118
  }
121
119
  /**
122
120
  * プロファイル参照をファイルパスに解決する。
123
- * - `default` などの名前 → 同梱 `profiles/<name>/profile.yaml`(無ければ `<cwd>/profiles/<name>/profile.yaml`)
124
- * - `profiles/foo/profile.yaml` や絶対パスは cwd 基準でそのまま
121
+ * - 名前のみ → project `.ensemble/teams/` > user `~/.ensemble/teams/` > bundled > legacy
122
+ * - `profiles/foo/profile.yaml` や絶対パスは repoRoot 基準でそのまま
125
123
  */
126
- export function resolveProfilePath(ref, cwd) {
127
- if (isAbsolute(ref)) {
128
- return ref;
129
- }
130
- if (ref.endsWith('.yaml') || ref.endsWith('.yml') || ref.includes('/')) {
131
- return join(cwd, ref);
132
- }
133
- const bundled = bundledProfilePath(ref);
134
- if (existsSync(bundled)) {
135
- return bundled;
124
+ export function resolveProfilePath(ref, repoRoot) {
125
+ return resolveTeamProfilePath(ref, { repoRoot });
126
+ }
127
+ /** `--profile` 未指定時のデフォルト team profile(`--profile` と同じ解釈)。 */
128
+ export const ENSEMBLE_DEFAULT_PROFILE_ENV = 'ENSEMBLE_DEFAULT_PROFILE';
129
+ /** CLI `--profile` > `ENSEMBLE_DEFAULT_PROFILE` > bundled default のうち、先に有効な参照を返す。 */
130
+ export function resolveProfileRef(options) {
131
+ if (options.profile?.trim()) {
132
+ return options.profile.trim();
136
133
  }
137
- return profileDirectoryPath(cwd, ref);
134
+ const fromEnv = options.env?.[ENSEMBLE_DEFAULT_PROFILE_ENV]?.trim();
135
+ return fromEnv || undefined;
138
136
  }
139
- /** --profile 未指定時は同梱 default。 */
137
+ /** `--profile` / env も未指定時は同梱 default。 */
140
138
  export function resolveDefaultProfilePath() {
141
139
  return bundledDefaultProfilePath();
142
140
  }
143
141
  export async function loadProfile(options) {
144
142
  const cwd = options.cwd ?? process.cwd();
145
- const profilePath = options.profile
146
- ? resolveProfilePath(options.profile, cwd)
143
+ const ref = resolveProfileRef({
144
+ profile: options.profile,
145
+ env: options.env ?? process.env,
146
+ });
147
+ const profilePath = ref
148
+ ? resolveProfilePath(ref, cwd)
147
149
  : resolveDefaultProfilePath();
148
- const profile = await loadProfileFromFile(profilePath);
150
+ const profile = await loadProfileFromFile(profilePath, { repoRoot: cwd });
151
+ assertTeamProfileWorkspacesAvailable(profile, dirname(profilePath), cwd, teamProfileRefFromLoad(profilePath, ref));
149
152
  return { profile, profilePath };
150
153
  }
151
154
  //# sourceMappingURL=load-profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-profile.js","sourceRoot":"","sources":["../../src/profile/load-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-profile.js","sourceRoot":"","sources":["../../src/profile/load-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export declare const PROFILES_DIR = "profiles";
2
+ export declare const PROFILE_FILE = "profile.yaml";
3
+ export declare const TEAMS_DIR = "teams";
4
+ export declare const ENSEMBLE_DIR = ".ensemble";
5
+ /** Canonical bundled default team profile name. */
6
+ export declare const DEFAULT_PROFILE_NAME = "implementer-and-reviewer";
7
+ /** CLI / API alias for {@link DEFAULT_PROFILE_NAME}. */
8
+ export declare const DEFAULT_PROFILE_ALIAS = "default";
9
+ /** `@agents-ensemble/core` パッケージルート(`src/profile` または `dist/profile` から算出)。 */
10
+ export declare function corePackageRoot(): string;
11
+ /**
12
+ * 同梱プロファイルのルート。
13
+ * 正本はリポジトリ直下の `profiles/`。`build` で `dist/profiles/` にコピー済みなら dist を使う。
14
+ */
15
+ export declare function bundledProfilesRoot(): string;
16
+ export declare function bundledProfilePath(name: string): string;
17
+ export declare function bundledDefaultProfilePath(): string;
18
+ export declare function profileDirectoryPath(repoRoot: string, name: string): string;
19
+ //# sourceMappingURL=profile-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-paths.d.ts","sourceRoot":"","sources":["../../src/profile/profile-paths.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,mDAAmD;AACnD,eAAO,MAAM,oBAAoB,6BAA6B,CAAC;AAC/D,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C,+EAA+E;AAC/E,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAO5C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3E"}
@@ -0,0 +1,39 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { dirname } from 'node:path';
5
+ export const PROFILES_DIR = 'profiles';
6
+ export const PROFILE_FILE = 'profile.yaml';
7
+ export const TEAMS_DIR = 'teams';
8
+ export const ENSEMBLE_DIR = '.ensemble';
9
+ /** Canonical bundled default team profile name. */
10
+ export const DEFAULT_PROFILE_NAME = 'implementer-and-reviewer';
11
+ /** CLI / API alias for {@link DEFAULT_PROFILE_NAME}. */
12
+ export const DEFAULT_PROFILE_ALIAS = 'default';
13
+ /** `@agents-ensemble/core` パッケージルート(`src/profile` または `dist/profile` から算出)。 */
14
+ export function corePackageRoot() {
15
+ return join(dirname(fileURLToPath(import.meta.url)), '../..');
16
+ }
17
+ /**
18
+ * 同梱プロファイルのルート。
19
+ * 正本はリポジトリ直下の `profiles/`。`build` で `dist/profiles/` にコピー済みなら dist を使う。
20
+ */
21
+ export function bundledProfilesRoot() {
22
+ const packageRoot = corePackageRoot();
23
+ const distProfiles = join(packageRoot, 'dist/profiles');
24
+ if (existsSync(join(distProfiles, DEFAULT_PROFILE_NAME, PROFILE_FILE))) {
25
+ return distProfiles;
26
+ }
27
+ return join(packageRoot, '../../profiles');
28
+ }
29
+ export function bundledProfilePath(name) {
30
+ const dirName = name === DEFAULT_PROFILE_ALIAS ? DEFAULT_PROFILE_NAME : name;
31
+ return join(bundledProfilesRoot(), dirName, PROFILE_FILE);
32
+ }
33
+ export function bundledDefaultProfilePath() {
34
+ return bundledProfilePath(DEFAULT_PROFILE_NAME);
35
+ }
36
+ export function profileDirectoryPath(repoRoot, name) {
37
+ return join(repoRoot, PROFILES_DIR, name, PROFILE_FILE);
38
+ }
39
+ //# sourceMappingURL=profile-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-paths.js","sourceRoot":"","sources":["../../src/profile/profile-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,mDAAmD;AACnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAC/D,wDAAwD;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAE/C,+EAA+E;AAC/E,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,OAAO,GAAG,IAAI,KAAK,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,OAAO,IAAI,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,IAAY;IACjE,OAAO,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * profile の `workspace` を絶対パスへ解決する。
3
+ * - 絶対パスはそのまま
4
+ * - `~` / `~/` / `~\` は homedir() で展開
5
+ * - `./` / `../` で始まる相対パスは profile ディレクトリ基準
6
+ * - それ以外の相対パスは repo-root(`loadProfile` の cwd)基準
7
+ */
8
+ export declare function resolveWorkerWorkspacePath(workspace: string, profileDir: string, repoRoot: string): string;
9
+ /** worker ACP cwd が存在するディレクトリであることを検証する。 */
10
+ export declare function assertWorkerWorkspaceDirectory(path: string, workerName?: string): void;
11
+ /** harness 表示用に workspace パスを要約する(repo-root 相対を優先)。 */
12
+ export declare function summarizeWorkspacePath(path: string, repoRoot: string): string;
13
+ //# sourceMappingURL=resolve-worker-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-worker-workspace.d.ts","sourceRoot":"","sources":["../../src/profile/resolve-worker-workspace.ts"],"names":[],"mappings":"AAcA;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CASR;AAED,4CAA4C;AAC5C,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAkBN;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW7E"}
@@ -0,0 +1,60 @@
1
+ import { statSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { isAbsolute, join, resolve } from 'node:path';
4
+ function expandTilde(path) {
5
+ if (path === '~') {
6
+ return homedir();
7
+ }
8
+ if (path.startsWith('~/') || path.startsWith('~\\')) {
9
+ return join(homedir(), path.slice(2));
10
+ }
11
+ return path;
12
+ }
13
+ /**
14
+ * profile の `workspace` を絶対パスへ解決する。
15
+ * - 絶対パスはそのまま
16
+ * - `~` / `~/` / `~\` は homedir() で展開
17
+ * - `./` / `../` で始まる相対パスは profile ディレクトリ基準
18
+ * - それ以外の相対パスは repo-root(`loadProfile` の cwd)基準
19
+ */
20
+ export function resolveWorkerWorkspacePath(workspace, profileDir, repoRoot) {
21
+ const expanded = expandTilde(workspace);
22
+ if (isAbsolute(expanded)) {
23
+ return expanded;
24
+ }
25
+ if (expanded.startsWith('.')) {
26
+ return resolve(profileDir, expanded);
27
+ }
28
+ return resolve(repoRoot, expanded);
29
+ }
30
+ /** worker ACP cwd が存在するディレクトリであることを検証する。 */
31
+ export function assertWorkerWorkspaceDirectory(path, workerName) {
32
+ const label = workerName ? `Worker "${workerName}"` : 'Worker';
33
+ try {
34
+ const stat = statSync(path);
35
+ if (!stat.isDirectory()) {
36
+ throw new Error(`${label} workspace is not a directory: ${path}`);
37
+ }
38
+ }
39
+ catch (error) {
40
+ if (typeof error === 'object' &&
41
+ error !== null &&
42
+ 'code' in error &&
43
+ error.code === 'ENOENT') {
44
+ throw new Error(`${label} workspace does not exist: ${path}`);
45
+ }
46
+ throw error;
47
+ }
48
+ }
49
+ /** harness 表示用に workspace パスを要約する(repo-root 相対を優先)。 */
50
+ export function summarizeWorkspacePath(path, repoRoot) {
51
+ const normalizedRoot = resolve(repoRoot);
52
+ const normalizedPath = resolve(path);
53
+ if (normalizedPath === normalizedRoot ||
54
+ normalizedPath.startsWith(`${normalizedRoot}/`)) {
55
+ const relative = normalizedPath.slice(normalizedRoot.length).replace(/^\//, '');
56
+ return relative || '.';
57
+ }
58
+ return normalizedPath;
59
+ }
60
+ //# sourceMappingURL=resolve-worker-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-worker-workspace.js","sourceRoot":"","sources":["../../src/profile/resolve-worker-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEtD,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,SAAiB,EACjB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,8BAA8B,CAC5C,IAAY,EACZ,UAAmB;IAEnB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,kCAAkC,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,MAAM,IAAI,KAAK;YACd,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAClD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,QAAgB;IACnE,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,IACE,cAAc,KAAK,cAAc;QACjC,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,CAAC,EAC/C,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChF,OAAO,QAAQ,IAAI,GAAG,CAAC;IACzB,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { type TeamProfileAvailability, type TeamProfileValidationIssue } from './validate-team-profile-workspaces.js';
2
+ export type { TeamProfileAvailability, TeamProfileValidationIssue } from './validate-team-profile-workspaces.js';
3
+ export type TeamProfileSource = 'project' | 'user' | 'bundled' | 'legacy';
4
+ export interface TeamProfileMeta {
5
+ id?: string;
6
+ title?: string;
7
+ summary?: string;
8
+ }
9
+ export interface TeamProfileListEntry {
10
+ /** Canonical identifier, e.g. `my-team@project`. */
11
+ id: string;
12
+ /** Short display name (directory name or canonical bundled name). */
13
+ name: string;
14
+ source: TeamProfileSource;
15
+ /** Absolute path to `profile.yaml`. */
16
+ path: string;
17
+ meta?: TeamProfileMeta;
18
+ /** Worker kind or name preview for catalog display. */
19
+ workersPreview: string[];
20
+ availability: TeamProfileAvailability;
21
+ issues?: TeamProfileValidationIssue[];
22
+ }
23
+ export interface TeamProfileRoot {
24
+ source: TeamProfileSource;
25
+ root: string;
26
+ }
27
+ export interface TeamProfileResolutionOptions {
28
+ repoRoot: string;
29
+ /** Override for tests. Defaults to `~/.ensemble`. */
30
+ userEnsembleRoot?: string;
31
+ }
32
+ export declare function normalizeTeamProfileName(name: string): string;
33
+ export declare function teamProfileId(name: string, source: TeamProfileSource): string;
34
+ /** Exploration roots in resolution priority order. */
35
+ export declare function teamProfileRoots(repoRoot: string, options?: Pick<TeamProfileResolutionOptions, 'userEnsembleRoot'>): TeamProfileRoot[];
36
+ /**
37
+ * Resolve a team profile reference to an absolute `profile.yaml` path.
38
+ * Name-only refs use priority: project > user > bundled > legacy.
39
+ */
40
+ export declare function resolveTeamProfilePath(ref: string, options: TeamProfileResolutionOptions): string;
41
+ /** List team profiles from all layers with source distinction. */
42
+ export declare function listTeamProfiles(options: TeamProfileResolutionOptions): Promise<TeamProfileListEntry[]>;
43
+ //# sourceMappingURL=team-profile-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-profile-resolution.d.ts","sourceRoot":"","sources":["../../src/profile/team-profile-resolution.ts"],"names":[],"mappings":"AAkBA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAChC,MAAM,uCAAuC,CAAC;AAE/C,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEjH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,uDAAuD;IACvD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,uBAAuB,CAAC;IACtC,MAAM,CAAC,EAAE,0BAA0B,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAE7E;AAmED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,GAC/D,eAAe,EAAE,CAYnB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,4BAA4B,GACpC,MAAM,CAMR;AAuFD,kEAAkE;AAClE,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAYjC"}