@agents-ensemble/core 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/conductor/conductor-session.d.ts.map +1 -1
  2. package/dist/conductor/conductor-session.js +35 -4
  3. package/dist/conductor/conductor-session.js.map +1 -1
  4. package/dist/conductor/session/events/session-log-event.d.ts +2 -0
  5. package/dist/conductor/session/events/session-log-event.d.ts.map +1 -1
  6. package/dist/config/defaults.d.ts.map +1 -1
  7. package/dist/config/defaults.js +2 -1
  8. package/dist/config/defaults.js.map +1 -1
  9. package/dist/config/parse-config.d.ts.map +1 -1
  10. package/dist/config/parse-config.js +6 -1
  11. package/dist/config/parse-config.js.map +1 -1
  12. package/dist/config/types.d.ts +2 -0
  13. package/dist/config/types.d.ts.map +1 -1
  14. package/dist/dispatch/prompt-worker-tool.js +2 -2
  15. package/dist/dispatch/prompt-worker-tool.js.map +1 -1
  16. package/dist/dispatch/worker-status-tool.js +2 -2
  17. package/dist/dispatch/worker-status-tool.js.map +1 -1
  18. package/dist/escalation/answer-open-question-tool.d.ts.map +1 -1
  19. package/dist/escalation/answer-open-question-tool.js +24 -5
  20. package/dist/escalation/answer-open-question-tool.js.map +1 -1
  21. package/dist/escalation/ask-human-tool.d.ts.map +1 -1
  22. package/dist/escalation/ask-human-tool.js +41 -4
  23. package/dist/escalation/ask-human-tool.js.map +1 -1
  24. package/dist/escalation/format-registry-update.d.ts.map +1 -1
  25. package/dist/escalation/format-registry-update.js +9 -2
  26. package/dist/escalation/format-registry-update.js.map +1 -1
  27. package/dist/escalation/human-inquiry.d.ts +9 -1
  28. package/dist/escalation/human-inquiry.d.ts.map +1 -1
  29. package/dist/escalation/index.d.ts +3 -2
  30. package/dist/escalation/index.d.ts.map +1 -1
  31. package/dist/escalation/index.js +2 -1
  32. package/dist/escalation/index.js.map +1 -1
  33. package/dist/escalation/open-question-list-tools.js +4 -0
  34. package/dist/escalation/open-question-list-tools.js.map +1 -1
  35. package/dist/escalation/open-question-to-escalation.d.ts.map +1 -1
  36. package/dist/escalation/open-question-to-escalation.js +3 -0
  37. package/dist/escalation/open-question-to-escalation.js.map +1 -1
  38. package/dist/escalation/open-question.d.ts +9 -1
  39. package/dist/escalation/open-question.d.ts.map +1 -1
  40. package/dist/escalation/open-question.js +18 -1
  41. package/dist/escalation/open-question.js.map +1 -1
  42. package/dist/escalation/record-open-question-answer.d.ts +2 -0
  43. package/dist/escalation/record-open-question-answer.d.ts.map +1 -1
  44. package/dist/escalation/record-open-question-answer.js +13 -5
  45. package/dist/escalation/record-open-question-answer.js.map +1 -1
  46. package/dist/escalation/resolve-human-inquiry.d.ts +3 -1
  47. package/dist/escalation/resolve-human-inquiry.d.ts.map +1 -1
  48. package/dist/escalation/resolve-human-inquiry.js +28 -9
  49. package/dist/escalation/resolve-human-inquiry.js.map +1 -1
  50. package/dist/escalation/yes-no-assent.d.ts +13 -0
  51. package/dist/escalation/yes-no-assent.d.ts.map +1 -0
  52. package/dist/escalation/yes-no-assent.js +136 -0
  53. package/dist/escalation/yes-no-assent.js.map +1 -0
  54. package/dist/github/format-issue-context-prompt.d.ts +1 -1
  55. package/dist/github/format-issue-context-prompt.js +2 -2
  56. package/dist/github/format-issue-context-prompt.js.map +1 -1
  57. package/dist/profile/profile-paths.d.ts +1 -1
  58. package/dist/profile/profile-paths.d.ts.map +1 -1
  59. package/dist/profile/profile-paths.js +1 -1
  60. package/dist/profile/profile-paths.js.map +1 -1
  61. package/dist/profiles/implementer-and-reviewer/conductor.prompt.yaml +2 -2
  62. package/dist/profiles/implementer-and-reviewer/implementer.prompt.yaml +1 -1
  63. package/dist/profiles/implementer-and-reviewer/profile.yaml +1 -1
  64. package/dist/profiles/implementer-and-reviewer/team.md +22 -21
  65. package/dist/profiles/implementer-and-reviewer-v2/team-common.md +11 -10
  66. package/dist/profiles/implementer-and-reviewer-v2/team-conductor.md +4 -5
  67. package/dist/profiles/implementer-and-reviewer-v2/team-implementer.md +3 -3
  68. package/dist/profiles/implementer-and-reviewer-v2/team-reviewer.md +1 -1
  69. package/dist/prompt/compile-system-prompt.d.ts +3 -1
  70. package/dist/prompt/compile-system-prompt.d.ts.map +1 -1
  71. package/dist/prompt/compile-system-prompt.js +5 -3
  72. package/dist/prompt/compile-system-prompt.js.map +1 -1
  73. package/dist/prompt/index.d.ts +2 -0
  74. package/dist/prompt/index.d.ts.map +1 -1
  75. package/dist/prompt/index.js +1 -0
  76. package/dist/prompt/index.js.map +1 -1
  77. package/dist/prompt/load-user-instructions.d.ts +12 -0
  78. package/dist/prompt/load-user-instructions.d.ts.map +1 -0
  79. package/dist/prompt/load-user-instructions.js +39 -0
  80. package/dist/prompt/load-user-instructions.js.map +1 -0
  81. package/dist/prompt/modules/ensemble/base-module.d.ts.map +1 -1
  82. package/dist/prompt/modules/ensemble/base-module.js +6 -4
  83. package/dist/prompt/modules/ensemble/base-module.js.map +1 -1
  84. package/dist/prompt/modules/ensemble/conductor-base-module.d.ts.map +1 -1
  85. package/dist/prompt/modules/ensemble/conductor-base-module.js +42 -49
  86. package/dist/prompt/modules/ensemble/conductor-base-module.js.map +1 -1
  87. package/dist/prompt/modules/ensemble/worker-base-module.js +1 -1
  88. package/dist/prompt/modules/ensemble/worker-base-module.js.map +1 -1
  89. package/dist/prompt/modules/shared/profile-prompt-module.js +1 -1
  90. package/dist/prompt/modules/shared/profile-prompt-module.js.map +1 -1
  91. package/dist/runtime/map-worker-lifecycle.d.ts.map +1 -1
  92. package/dist/runtime/map-worker-lifecycle.js +2 -0
  93. package/dist/runtime/map-worker-lifecycle.js.map +1 -1
  94. package/dist/runtime/worker-display-state.d.ts +1 -1
  95. package/dist/runtime/worker-display-state.d.ts.map +1 -1
  96. package/dist/runtime/worker-lifecycle-state.d.ts +1 -1
  97. package/dist/runtime/worker-lifecycle-state.d.ts.map +1 -1
  98. package/dist/runtime/worker-runtime.d.ts +7 -3
  99. package/dist/runtime/worker-runtime.d.ts.map +1 -1
  100. package/dist/runtime/worker-runtime.js +182 -32
  101. package/dist/runtime/worker-runtime.js.map +1 -1
  102. package/dist/runtime/worker-session.d.ts +4 -2
  103. package/dist/runtime/worker-session.d.ts.map +1 -1
  104. package/dist/runtime/worker-session.js +4 -2
  105. package/dist/runtime/worker-session.js.map +1 -1
  106. package/dist/session/session-sidecar.d.ts +2 -0
  107. package/dist/session/session-sidecar.d.ts.map +1 -1
  108. package/dist/session/session-sidecar.js +7 -0
  109. package/dist/session/session-sidecar.js.map +1 -1
  110. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { buildWorkerPrompt } from './build-worker-prompt.js';
2
+ export { loadUserInstructions, USER_INSTRUCTIONS_FILE, } from './load-user-instructions.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ResolvedProfileMaterial } from '../profile/types.js';
2
+ export declare const USER_INSTRUCTIONS_FILE = "AGENTS.md";
3
+ export interface LoadUserInstructionsOptions {
4
+ /** テスト用。既定は `~/.ensemble`。 */
5
+ userEnsembleRoot?: string;
6
+ }
7
+ /**
8
+ * `~/.ensemble/AGENTS.md` を conductor 用 Prepared Material として読む。
9
+ * ファイルが無い場合は何も追加しない。存在するが読めない場合は起動を失敗させる。
10
+ */
11
+ export declare function loadUserInstructions(options?: LoadUserInstructionsOptions): Promise<ResolvedProfileMaterial | undefined>;
12
+ //# sourceMappingURL=load-user-instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-user-instructions.d.ts","sourceRoot":"","sources":["../../src/prompt/load-user-instructions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAElD,MAAM,WAAW,2BAA2B;IAC1C,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAgC9C"}
@@ -0,0 +1,39 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { ENSEMBLE_DIR } from '../profile/profile-paths.js';
5
+ export const USER_INSTRUCTIONS_FILE = 'AGENTS.md';
6
+ /**
7
+ * `~/.ensemble/AGENTS.md` を conductor 用 Prepared Material として読む。
8
+ * ファイルが無い場合は何も追加しない。存在するが読めない場合は起動を失敗させる。
9
+ */
10
+ export async function loadUserInstructions(options = {}) {
11
+ const root = options.userEnsembleRoot ?? join(homedir(), ENSEMBLE_DIR);
12
+ const path = join(root, USER_INSTRUCTIONS_FILE);
13
+ let content;
14
+ try {
15
+ content = await readFile(path, 'utf8');
16
+ }
17
+ catch (error) {
18
+ if (error &&
19
+ typeof error === 'object' &&
20
+ 'code' in error &&
21
+ error.code === 'ENOENT') {
22
+ return undefined;
23
+ }
24
+ const detail = error instanceof Error ? error.message : String(error);
25
+ throw new Error(`Failed to read user instructions at ${path}: ${detail}`, {
26
+ cause: error,
27
+ });
28
+ }
29
+ const trimmed = content.trim();
30
+ if (!trimmed) {
31
+ return undefined;
32
+ }
33
+ return {
34
+ id: 'user-instructions',
35
+ title: 'User instructions (~/.ensemble/AGENTS.md)',
36
+ content: trimmed,
37
+ };
38
+ }
39
+ //# sourceMappingURL=load-user-instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-user-instructions.js","sourceRoot":"","sources":["../../src/prompt/load-user-instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAOlD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAuC,EAAE;IAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAChD,IAAI,OAAe,CAAC;IAEpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,MAAM,IAAI,KAAK;YACf,KAAK,CAAC,IAAI,KAAK,QAAQ,EACvB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,KAAK,MAAM,EAAE,EAAE;YACxE,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,2CAA2C;QAClD,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-module.d.ts","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/base-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,eAAe,CAkEpD,CAAC"}
1
+ {"version":3,"file":"base-module.d.ts","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/base-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,eAAe,CAoEpD,CAAC"}
@@ -11,6 +11,8 @@ export const baseModule = {
11
11
  (ctx) => ([
12
12
  `あなたは agents-ensemble team の **${ctx.kind}** です。`,
13
13
  `**${ctx.kind}** としてどう振る舞うべきか与えられた指示や資料をよく読んで把握し、実行してください。`,
14
+ `使用する言語はリポジトリやIssueに合わせます。`,
15
+ `特に記録に残す部分については、英語の直訳ではなく、対象言語らしい表現でニュアンスが残るように記述してください。これはコストを掛ける価値のある作業です。`,
14
16
  ]),
15
17
  ],
16
18
  terms: [
@@ -22,10 +24,10 @@ export const baseModule = {
22
24
  '- **permission**: worker が実行しようとする操作に対する許可',
23
25
  {
24
26
  type: 'subsection',
25
- title: '正本と単位',
27
+ title: 'Source of truth と単位',
26
28
  items: [
27
- '- **Issue / PR**: 作業状態と履歴の正本',
28
- '- **Skill**: 手順の細部の正本になりうるドキュメント',
29
+ '- **Issue / PR**: 作業状態と履歴の source of truth',
30
+ '- **Skill**: 手順の細部の source of truth になりうるドキュメント',
29
31
  ],
30
32
  },
31
33
  {
@@ -42,7 +44,7 @@ export const baseModule = {
42
44
  methodology: [
43
45
  '- オペレータが conductor を監督する',
44
46
  '- conductor が worker 群を調整する',
45
- '- worker 群はセッション開始時に harness が起動し常駐する。同時に Issue 向け worktree も harness が解決する(isolated なら作成または再利用、in_repo ならリポジトリルート)',
47
+ '- worker 群はセッション開始時に harness へ登録される。設定により全員を eager attach するか、初回 `prompt_worker` まで ACP attach を遅らせる。一度 attach した worker はセッション終了まで常駐する。同時に Issue 向け worktree も harness が解決する(isolated なら作成または再利用、in_repo ならリポジトリルート)',
46
48
  '- conductor は harness 経由で worker に作業指示を送り、worker の応答は harness がラウンド完了として conductor に届ける。worker 同士は直接つながっていない',
47
49
  '- 作業の実行は worker、方針・許否・調整は conductor、大目標とマージはオペレータが決める・行う',
48
50
  '- worker が判断に困ることは conductor が扱う。conductor が決められないことはオペレータが最終判断する',
@@ -1 +1 @@
1
- {"version":3,"file":"base-module.js","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/base-module.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkC;IACvD,SAAS,EAAE;QACT,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,SAAS;KACjE;IACD,OAAO,EAAE;QACP,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACR,iCAAiC,GAAG,CAAC,IAAI,QAAQ;YACjD,KAAK,GAAG,CAAC,IAAI,8CAA8C;SAC5D,CAAC;KACH;IACD,KAAK,EAAE;QACL,4CAA4C;QAC5C,4BAA4B;QAC5B,6BAA6B;QAC7B,4CAA4C;QAC5C,CAAC,GAAG,EAAE,EAAE,CAAC,sCAAsC,GAAG,CAAC,IAAI,KAAK;QAC5D,4CAA4C;QAC5C;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE;gBACL,8BAA8B;gBAC9B,kCAAkC;aACnC;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE;gBACL,uFAAuF;gBACvF,4FAA4F;gBAC5F,oEAAoE;gBACpE,0GAA0G;aAC3G;SACF;KACF;IACD,WAAW,EAAE;QACX,0BAA0B;QAC1B,6BAA6B;QAC7B,qHAAqH;QACrH,8GAA8G;QAC9G,0DAA0D;QAC1D,mEAAmE;QACnE,4DAA4D;QAC5D,8DAA8D;KAC/D;IACD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE;gBACL,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,OAAO;qBACR,GAAG,CACF,CAAC,MAAyB,EAAE,EAAE,CAC5B,OAAO,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,IAAI,IAAI,CAC7C;qBACA,IAAI,CAAC,IAAI,CAAC;aAChB;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9E;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"base-module.js","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/base-module.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkC;IACvD,SAAS,EAAE;QACT,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,SAAS;KACjE;IACD,OAAO,EAAE;QACP,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACR,iCAAiC,GAAG,CAAC,IAAI,QAAQ;YACjD,KAAK,GAAG,CAAC,IAAI,8CAA8C;YAC3D,2BAA2B;YAC3B,6EAA6E;SAC9E,CAAC;KACH;IACD,KAAK,EAAE;QACL,4CAA4C;QAC5C,4BAA4B;QAC5B,6BAA6B;QAC7B,4CAA4C;QAC5C,CAAC,GAAG,EAAE,EAAE,CAAC,sCAAsC,GAAG,CAAC,IAAI,KAAK;QAC5D,4CAA4C;QAC5C;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,qBAAqB;YAC5B,KAAK,EAAE;gBACL,4CAA4C;gBAC5C,iDAAiD;aAClD;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE;gBACL,uFAAuF;gBACvF,4FAA4F;gBAC5F,oEAAoE;gBACpE,0GAA0G;aAC3G;SACF;KACF;IACD,WAAW,EAAE;QACX,0BAA0B;QAC1B,6BAA6B;QAC7B,uNAAuN;QACvN,8GAA8G;QAC9G,0DAA0D;QAC1D,mEAAmE;QACnE,4DAA4D;QAC5D,8DAA8D;KAC/D;IACD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE;gBACL,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,OAAO;qBACR,GAAG,CACF,CAAC,MAAyB,EAAE,EAAE,CAC5B,OAAO,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,IAAI,IAAI,CAC7C;qBACA,IAAI,CAAC,IAAI,CAAC;aAChB;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9E;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"conductor-base-module.d.ts","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/conductor-base-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,eAAe,CA8G7D,CAAC"}
1
+ {"version":3,"file":"conductor-base-module.d.ts","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/conductor-base-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,eAAe,CAuG7D,CAAC"}
@@ -5,47 +5,38 @@
5
5
  export const conductorBaseModule = {
6
6
  objective: [
7
7
  '- チーム全体を統合し、Issue 解決を目指してください',
8
- '- conductor は演奏しない(ファイル編集・シェル実行・直接実装はしない)',
8
+ '- conductor は演奏しない(基本的にはファイル編集・シェル実行・直接実装をしない)',
9
9
  '- 誰がボールを持っているのかを把握し、作業の結果によらず、最終的にオペレータに引き渡す流れまでを止まらないように進行してください',
10
10
  ],
11
11
  terms: [
12
12
  '- **open question**: conductor がオペレータの最終判断を仰ぐために登録する質問',
13
- '- **オペレータ**: TTY / CLI で `ensemble issue` を動かしている人間。GitHub 上の実体は harness が `issue.context` の `operator.githubLogin` で伝える(無いときは照合できない)',
13
+ '- **オペレータ**: TTY / CLI で `ensemble issue` を動かしている人間、一般的なエージェント動作時のユーザ。GitHub 上の実体は harness が `issue.context` の `operator.githubLogin` で伝える(無いときは照合できない)',
14
14
  '- **@me(GitHub)**: Issue / PR 本文・コメントでオペレータ自身を指す表記。`operator.githubLogin` と同じ実体',
15
15
  '- **セッションイベント**: worker の完了・失敗・permission 待ちなど、実行時に conductor へ届く通知',
16
16
  ],
17
17
  instructions: [
18
+ '- 自律性とオペレータとのコミュニケーションのバランスに留意してください',
18
19
  '- 作業フローの連鎖(Issue の明確さ → worker の自律実行 → オペレータへの引き渡し)が途切れないよう進行管理する',
19
- '- Issue / PR を正本とし、`prompt_worker` で常駐 worker に作業を指示する',
20
+ '- Issue / PR を source of truth として扱い、`prompt_worker` で常駐 worker に作業を指示する。sleeping worker は通常の初回 `prompt_worker` で attach / init される。専用 wake 操作はない',
20
21
  '- チーム内の出来事を非同期で処理する必要があります。`Await` ツールは使わないようにしてください',
21
22
  '- conductor からオペレータに対してエスカレーションするときは、必ずOpen Questionの機構を利用する。(引き渡し時も同様)',
22
23
  '- オペレータからの問いかけがあったとき、 conductor はオペレータと対話を優先し、作業の手を止めて集中する',
23
- '- `## GitHub 更新` でオペレータ本人のコメントが届いたら、状況把握だけでなく **オペレータの新しい指示**として優先して対応する(エージェントの報告コメントと混同しない)',
24
24
  {
25
25
  type: 'subsection',
26
- title: 'harnessからのイベント',
27
- items: [
28
- '- harnessからのイベントの多くは機械的な状態変化の通知です',
29
- ' - 作業のきっかけというより、状況の把握として扱えば十分な場合が多いです',
30
- ' - 例えば、workerからの作業報告が後で通知として届くことがあります',
31
- '- `## worker ラウンド完了` — worker の 1 `session/prompt` ラウンド終了。`source: harness` は init prompt(作業開始ではない)、`source: conductor` は自分が `prompt_worker` したラウンド。タスク完了の意味ではない',
32
- '- `## permission 判断待ち` — worker の操作許可が保留中',
33
- '- `## permission 停滞警告` — pending permission が長時間解消されないことを伝える低優先度の `permission.stall`。通常は `permission.pending` などの判断に必要な通知を優先し、stall 自体は一時的な dispatch hold の対象です。max-turns 到達後でも permission 回復用に届くことがあります',
34
- ],
35
- },
36
- {
37
- type: 'subsection',
38
- title: 'dispatch 保留',
26
+ title: '自律性とオペレータとのコミュニケーション',
39
27
  items: [
40
- '- 複数 worker の完了をまとめて読みたいとき、Issue / PR を集中して読んでいるときは `set_dispatch_hold({ hold: true })` を使う',
41
- '- 保留中は `operator.message` だけ即時に届き、`permission.pending` と低優先度の `permission.stall` は held buffer に積まれる。通常の dispatch では `permission.pending` など判断に必要な通知を stall より優先する',
42
- '- 作業状況をまとめて判断できる状態になったら `set_dispatch_hold({ hold: false })` を使う。保留中の trigger イベントは通常、到着順の 1 束として 1 回の通知に合成される。max-turns で worker / GitHub を送れない場合でも、permission.pending と permission.stall は permission 回復用に届き得る',
43
- '- 保留は一時的な Driver 状態で、セッション再開時には解除されている',
28
+ 'この節は基本的な方針について述べています。個別のケースでオペレータからの指示があればそれを優先してください。',
29
+ '- 基本的には自律性が重視されます。広い意味での目的に対して合理的な選択であれば、ユーザは自律的に解決されることを望んでいます',
30
+ '- オペレータへの引き渡しは、必ず訪れるコミュニケーションのタイミングです。ここで判断の調整や判定を受けるチャンスがあると考えてください',
31
+ '- 個別の出来事に対する基本的な選択肢は以下のとおりです',
32
+ ' - 自律的に判断: オペレータの代行として「あたりまえの選択」とみなせる場合',
33
+ ' - 判断して明示的に報告: 同等の選択肢が並んでいる場合、作業範囲の拡大縮小など。文脈と合理性で見極めること。判断についてIssueへの報告、引き渡し時に説明する',
34
+ ' - エスカレーション: Issueとコードの大きな矛盾や、本質的に不可能であったり危険である場合',
44
35
  ],
45
36
  },
46
37
  {
47
38
  type: 'subsection',
48
- title: 'open question',
39
+ title: 'エスカレーション / open question',
49
40
  items: [
50
41
  '- オペレータへの要確認事項があるときはopen questionを使います',
51
42
  '- 形式は一問一答とする',
@@ -57,47 +48,49 @@ export const conductorBaseModule = {
57
48
  },
58
49
  {
59
50
  type: 'subsection',
60
- title: 'prompt_worker',
51
+ title: 'harnessからのイベント',
61
52
  items: [
62
- '- worker に仕事を振る: `prompt_worker`(worker 名、指示文)',
63
- ' - 指示文には Issue / PR を正本としたゴール・スコープ・観点を書く',
64
- '- Issue / PR に書いただけでは worker は動かない',
65
- '- 進行中の worker を優先割り込みする: `prompt_worker` の `preempt: true`(既定は busy 時キュー)',
66
- '- worker はセッション開始時に起動済み。追加の worker を起動する方法は用意されていない',
67
- '- worker からの応答は harness がラウンド完了(`## worker ラウンド完了`)として届く。内容の正本は Issue / PR',
53
+ '- harnessからのイベントの多くは機械的な状態変化の通知です',
54
+ ' - 作業のきっかけというより、状況の把握として扱えば十分な場合が多いです',
55
+ ' - 例えば、workerからの作業報告が後で通知として届くことがあります',
56
+ '- ユーザとの対話中など、作業報告などの割り込みを受けたくないときは `set_dispatch_hold` ツールを使うことができる',
57
+ ' - 保留中は `operator.message` だけ即時に届き、`permission.pending` と低優先度の `permission.stall` は held buffer に積まれる。通常の dispatch では `permission.pending` など判断に必要な通知を stall より優先する',
58
+ '- `## worker ラウンド完了` — worker の 1 `session/prompt` ラウンド終了。`source: harness` は init prompt(作業開始ではない)、`source: conductor` は自分が `prompt_worker` したラウンド。タスク完了の意味ではない',
59
+ '- `## permission 判断待ち` — worker の操作許可が保留中',
60
+ '- `## permission 停滞警告` — pending permission が長時間解消されないことを伝える低優先度の `permission.stall`。通常は `permission.pending` などの判断に必要な通知を優先し、stall 自体は一時的な dispatch hold の対象です。max-turns 到達後でも permission 回復用に届くことがあります',
61
+ '- `## GitHub 更新` - issueや登録したPRの状態が更新された',
68
62
  ],
69
63
  },
70
64
  {
71
65
  type: 'subsection',
72
- title: 'worker 状態照会',
66
+ title: 'GitHub 監視',
73
67
  items: [
74
- '- オペレータの「起動状況」「誰が動いているか」等は **作業指示ではない**。`list_workers` / `get_worker_status` で harness 状態を読む',
75
- '- 一覧: `list_workers`(attach 済み・attach 中・失敗、キュー深さ、`runningCount`、失敗件数)',
76
- '- 詳細: `get_worker_status`(1 worker のキュー要約、preempt/cancel 中か)',
77
- '- 状態照会に `prompt_worker` を使わない。Issue / PR を読まず tool 結果で答える',
68
+ '- issue/PR経由でオペレータ本人のコメントが届いたら、状況把握だけでなく **オペレータの新しい指示**として優先して対応する(エージェントの報告コメントと混同しない)',
69
+ '- implementer から PR 作成の報告を受けたら、GitHub Search の反映を待たず `register_github_watch` で監視登録する',
70
+ '- `kinds` を省略すると PR review / review comment / CI 集約状態遷移を監視する。登録済み PR の再登録は不要',
71
+ '- PR がマージ完了・誤登録・監視不要になったら `unregister_github_watch` で明示登録を解除する。Search に残る PR は引き続き監視される',
78
72
  ],
79
73
  },
80
74
  {
81
75
  type: 'subsection',
82
- title: 'メトリクス(オペレータへの状態説明用)',
76
+ title: 'prompt_worker',
83
77
  items: [
84
- '- `sendCount` — 完了した conductor ターン数(`agent.send` 回数)',
85
- '- `workerDispatches` / `workerFailures` — 完了・失敗した worker ラウンド数(init prompt 含む)',
86
- '- `autonomousTurns` / `maxTurns` — 自律ループのターン制限',
87
- '- LLM トークン累計・利用率 — `get_session_usage`(harness 集計。SDK / ACP 未報告の worker ラウンドは推定値)',
88
- '- オペレータの「トークン量」「コンテキスト上限の xx%」等は **作業指示ではない**。`get_session_usage` / `get_usage` で harness 集計を読む',
89
- '- セッション累計: `get_session_usage`(input/output 累計、agent 別内訳、limit 既知時の利用率)',
90
- '- 直近ラウンド: `get_usage`(省略時は直近、または `agent: conductor` / worker 名)',
78
+ '- worker に仕事を振る: `prompt_worker`(worker 名、指示文)',
79
+ ' - 指示文には Issue / PR を source of truth としたゴール・スコープ・観点を書く',
80
+ '- Issue / PR に書いただけでは worker は動かない',
81
+ '- 進行中の worker を優先割り込みする: `prompt_worker` の `preempt: true`(既定は busy 時キュー)',
82
+ '- profile の全 worker はセッション開始時に登録済み。ACP attach は eager または初回 `prompt_worker` 時に行われ、追加の worker を起動する方法は用意されていない',
83
+ '- worker からの応答は harness がラウンド完了(`## worker ラウンド完了`)として届く。内容の source of truth は Issue / PR',
91
84
  ],
92
85
  },
93
86
  {
94
87
  type: 'subsection',
95
- title: 'GitHub 監視',
88
+ title: 'worker 状態照会',
96
89
  items: [
97
- '- implementer から PR 作成の報告を受けたら、GitHub Search の反映を待たず `register_github_watch` で監視登録する',
98
- '- `register_github_watch` には `prNumber` または `prUrl` を渡す。同じリポジトリの PR だけを登録する',
99
- '- `kinds` を省略すると PR review / review comment / CI 集約状態遷移を監視する。登録済み PR の再登録は不要',
100
- '- PR がマージ完了・誤登録・監視不要になったら `unregister_github_watch` で明示登録を解除する。Search に残る PR は引き続き監視される',
90
+ '- オペレータの「起動状況」「誰が動いているか」等は **作業指示ではない**。`list_workers` / `get_worker_status` で harness 状態を読む',
91
+ '- 一覧: `list_workers`(sleeping・attach 中・idle・processing・失敗、キュー深さ、`runningCount`、失敗件数)',
92
+ '- 詳細: `get_worker_status`(1 worker のキュー要約、preempt/cancel 中か)',
93
+ '- 状態照会に `prompt_worker` を使わない。Issue / PR を読まず tool 結果で答える',
101
94
  ],
102
95
  },
103
96
  {
@@ -107,8 +100,8 @@ export const conductorBaseModule = {
107
100
  '- workerのツール実行にはconductorの明示的な許可が必要になる場合があります',
108
101
  '- workerへのpermission許可: `resolve_permission`',
109
102
  '- 指示した作業に付随する処理の許可であれば、approveすることができます',
110
- '- 不明点についてworkerに問い合わせを行うことができます',
111
- '- 指示外の処理、危険な処理、処理の理由が明確でないものは、オペレータへのエスカレーションを行ってください'
103
+ '- 不明点があれば、workerに問い合わせを行ってください',
104
+ '- 基本的には安全性を優先してください。指示外の処理、危険な処理がどうしても必要な場合はエスカレーションします'
112
105
  ],
113
106
  },
114
107
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"conductor-base-module.js","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/conductor-base-module.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkC;IAChE,SAAS,EAAE;QACT,+BAA+B;QAC/B,2CAA2C;QAC3C,mEAAmE;KACpE;IACD,KAAK,EAAE;QACL,wDAAwD;QACxD,uIAAuI;QACvI,iFAAiF;QACjF,qEAAqE;KACtE;IACD,YAAY,EAAE;QACZ,mEAAmE;QACnE,wDAAwD;QACxD,sDAAsD;QACtD,yEAAyE;QACzE,4DAA4D;QAC5D,+FAA+F;QAC/F;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE;gBACL,mCAAmC;gBACnC,wCAAwC;gBACxC,wCAAwC;gBACxC,kKAAkK;gBAClK,2CAA2C;gBAC3C,0MAA0M;aAC3M;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE;gBACL,6FAA6F;gBAC7F,oKAAoK;gBACpK,kNAAkN;gBAClN,wCAAwC;aACzC;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE;gBACL,wCAAwC;gBACxC,cAAc;gBACd,qDAAqD;gBACrD,+BAA+B;gBAC/B,qDAAqD;gBACrD,0DAA0D;aAC3D;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE;gBACL,gDAAgD;gBAChD,2CAA2C;gBAC3C,oCAAoC;gBACpC,2EAA2E;gBAC3E,qDAAqD;gBACrD,4EAA4E;aAC7E;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE;gBACL,8FAA8F;gBAC9F,uEAAuE;gBACvE,8DAA8D;gBAC9D,2DAA2D;aAC5D;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,qBAAqB;YAC5B,KAAK,EAAE;gBACL,sDAAsD;gBACtD,gFAAgF;gBAChF,gDAAgD;gBAChD,mFAAmF;gBACnF,iGAAiG;gBACjG,yEAAyE;gBACzE,iEAAiE;aAClE;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE;gBACL,sFAAsF;gBACtF,6EAA6E;gBAC7E,8EAA8E;gBAC9E,yFAAyF;aAC1F;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE;gBACL,+CAA+C;gBAC/C,8CAA8C;gBAC9C,yCAAyC;gBACzC,iCAAiC;gBACjC,uDAAuD;aACxD;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"conductor-base-module.js","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/conductor-base-module.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkC;IAChE,SAAS,EAAE;QACT,+BAA+B;QAC/B,gDAAgD;QAChD,mEAAmE;KACpE;IACD,KAAK,EAAE;QACL,wDAAwD;QACxD,yJAAyJ;QACzJ,iFAAiF;QACjF,qEAAqE;KACtE;IACD,YAAY,EAAE;QACZ,sCAAsC;QACtC,mEAAmE;QACnE,mJAAmJ;QACnJ,sDAAsD;QACtD,yEAAyE;QACzE,4DAA4D;QAC5D;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,sBAAsB;YAC7B,KAAK,EAAE;gBACL,wDAAwD;gBACxD,iEAAiE;gBACjE,sEAAsE;gBACtE,8BAA8B;gBAC9B,0CAA0C;gBAC1C,qFAAqF;gBACrF,oDAAoD;aACrD;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,0BAA0B;YACjC,KAAK,EAAE;gBACL,wCAAwC;gBACxC,cAAc;gBACd,qDAAqD;gBACrD,+BAA+B;gBAC/B,qDAAqD;gBACrD,0DAA0D;aAC3D;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE;gBACL,mCAAmC;gBACnC,wCAAwC;gBACxC,wCAAwC;gBACxC,qEAAqE;gBACrE,sKAAsK;gBACtK,kKAAkK;gBAClK,2CAA2C;gBAC3C,0MAA0M;gBAC1M,0CAA0C;aAC3C;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE;gBACL,0FAA0F;gBAC1F,sFAAsF;gBACtF,8EAA8E;gBAC9E,yFAAyF;aAC1F;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE;gBACL,gDAAgD;gBAChD,0DAA0D;gBAC1D,oCAAoC;gBACpC,2EAA2E;gBAC3E,+GAA+G;gBAC/G,2FAA2F;aAC5F;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE;gBACL,8FAA8F;gBAC9F,sFAAsF;gBACtF,8DAA8D;gBAC9D,2DAA2D;aAC5D;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE;gBACL,+CAA+C;gBAC/C,8CAA8C;gBAC9C,yCAAyC;gBACzC,gCAAgC;gBAChC,yDAAyD;aAC1D;SACF;KACF;CACF,CAAC"}
@@ -8,7 +8,7 @@ export const workerBaseModule = {
8
8
  ],
9
9
  instructions: [
10
10
  '- セッション開始時に起動し、conductor からの作業指示を待つ。明示的な作業指示のメッセージが来るまで待機すること',
11
- '- 手順の細部は Skill(指示があれば)と Issue / PR を正本にする',
11
+ '- 手順の細部は Skill(指示があれば)と Issue / PR を source of truth とする',
12
12
  '- 気づき・違和感・未解決は解決できなくても Issue に残す',
13
13
  '- 操作の許可が必要なときは harness 経由で permission を要求する',
14
14
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"worker-base-module.js","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/worker-base-module.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAkC;IAC7D,SAAS,EAAE;QACT,kBAAkB;KACnB;IACD,YAAY,EAAE;QACZ,+DAA+D;QAC/D,2CAA2C;QAC3C,kCAAkC;QAClC,6CAA6C;KAC9C;CACF,CAAC"}
1
+ {"version":3,"file":"worker-base-module.js","sourceRoot":"","sources":["../../../../src/prompt/modules/ensemble/worker-base-module.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAkC;IAC7D,SAAS,EAAE;QACT,kBAAkB;KACnB;IACD,YAAY,EAAE;QACZ,+DAA+D;QAC/D,0DAA0D;QAC1D,kCAAkC;QAClC,6CAA6C;KAC9C;CACF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { merge } from '@modular-prompt/core';
2
- const MATERIALS_INSTRUCTION = '- Prepared Materials に載った profile 定義文書は、行動時の定義として読み、従う';
2
+ const MATERIALS_INSTRUCTION = '- Prepared Materials の文書は、記載された役割に従って参照し、適用される指示に従う';
3
3
  /** profile agent module と materials を modular-prompt モジュールに変換する。 */
4
4
  export function profilePromptModule(input) {
5
5
  const materialElements = toMaterialSubsections(input.materials ?? []);
@@ -1 +1 @@
1
- {"version":3,"file":"profile-prompt-module.js","sourceRoot":"","sources":["../../../../src/prompt/modules/shared/profile-prompt-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAW7C,MAAM,qBAAqB,GACzB,wDAAwD,CAAC;AAE3D,oEAAoE;AACpE,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACtE,MAAM,eAAe,GACnB,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC;YACE,YAAY,EAAE,CAAC,qBAAqB,CAAC;YACrC,SAAS,EAAE,gBAAgB;SAC5B;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAAoC;IAEpC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,YAAqB;QAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC1B,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"profile-prompt-module.js","sourceRoot":"","sources":["../../../../src/prompt/modules/shared/profile-prompt-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAW7C,MAAM,qBAAqB,GACzB,qDAAqD,CAAC;AAExD,oEAAoE;AACpE,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACtE,MAAM,eAAe,GACnB,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC;YACE,YAAY,EAAE,CAAC,qBAAqB,CAAC;YACrC,SAAS,EAAE,gBAAgB;SAC5B;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAAoC;IAEpC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,YAAqB;QAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC1B,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"map-worker-lifecycle.d.ts","sourceRoot":"","sources":["../../src/runtime/map-worker-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,sDAAsD;AACtD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,oBAAoB,GAC9B,mBAAmB,CAcrB"}
1
+ {"version":3,"file":"map-worker-lifecycle.d.ts","sourceRoot":"","sources":["../../src/runtime/map-worker-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,sDAAsD;AACtD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,oBAAoB,GAC9B,mBAAmB,CAgBrB"}
@@ -6,6 +6,8 @@ export function mapHarnessToDisplayStatus(lifecycle) {
6
6
  return 'running';
7
7
  case 'idle':
8
8
  return 'idle';
9
+ case 'sleeping':
10
+ return 'sleep';
9
11
  case 'failed':
10
12
  return 'failed';
11
13
  default: {
@@ -1 +1 @@
1
- {"version":3,"file":"map-worker-lifecycle.js","sourceRoot":"","sources":["../../src/runtime/map-worker-lifecycle.ts"],"names":[],"mappings":"AAGA,sDAAsD;AACtD,MAAM,UAAU,yBAAyB,CACvC,SAA+B;IAE/B,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YACf,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,SAAS,CAAC;YACrC,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"map-worker-lifecycle.js","sourceRoot":"","sources":["../../src/runtime/map-worker-lifecycle.ts"],"names":[],"mappings":"AAGA,sDAAsD;AACtD,MAAM,UAAU,yBAAyB,CACvC,SAA+B;IAE/B,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YACf,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,SAAS,CAAC;YACrC,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /** TUI / 表示 reducer の語彙(オペレータ向け)。 */
2
- export type WorkerDisplayStatus = 'idle' | 'running' | 'failed';
2
+ export type WorkerDisplayStatus = 'sleep' | 'idle' | 'running' | 'failed';
3
3
  //# sourceMappingURL=worker-display-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-display-state.d.ts","sourceRoot":"","sources":["../../src/runtime/worker-display-state.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"worker-display-state.d.ts","sourceRoot":"","sources":["../../src/runtime/worker-display-state.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /** harness runtime 上の worker ライフサイクル状態(`list_workers` / `get_worker_status` の正本語彙)。 */
2
- export type WorkerLifecycleState = 'attaching' | 'idle' | 'processing' | 'failed';
2
+ export type WorkerLifecycleState = 'attaching' | 'idle' | 'processing' | 'sleeping' | 'failed';
3
3
  //# sourceMappingURL=worker-lifecycle-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-lifecycle-state.d.ts","sourceRoot":"","sources":["../../src/runtime/worker-lifecycle-state.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,MAAM,GACN,YAAY,GACZ,QAAQ,CAAC"}
1
+ {"version":3,"file":"worker-lifecycle-state.d.ts","sourceRoot":"","sources":["../../src/runtime/worker-lifecycle-state.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,MAAM,GACN,YAAY,GACZ,UAAU,GACV,QAAQ,CAAC"}
@@ -19,12 +19,15 @@ export interface WorkerRuntimeOptions {
19
19
  }
20
20
  export declare class WorkerRuntime {
21
21
  private readonly options;
22
+ private readonly configuredWorkers;
22
23
  private readonly processing;
23
24
  private readonly residents;
24
25
  private readonly attaching;
26
+ private readonly sleeping;
25
27
  private readonly failedWorkers;
26
28
  private readonly idleResolvers;
27
29
  private attachInFlight;
30
+ private forceShutdownRequested;
28
31
  constructor(options: WorkerRuntimeOptions);
29
32
  /** 進行中の prompt / permission 待ち数 + attach 中(conductor ループ用)。 */
30
33
  get runningCount(): number;
@@ -35,13 +38,14 @@ export declare class WorkerRuntime {
35
38
  listAttached(): AttachedWorker[];
36
39
  getAttached(name: string): AttachedWorker | undefined;
37
40
  listRunning(): WorkerStartedInfo[];
38
- /** attach 済み・attach 中・失敗済み worker の harness 状態一覧。 */
41
+ /** profile に登録された全 worker の harness 状態一覧。 */
39
42
  listWorkerStatuses(): WorkerStatusSummary[];
40
- /** 1 worker の harness 状態詳細。未登録なら undefined。 */
41
43
  /** worker UUID から kind(なければ name)を返す。 */
42
44
  resolveWorkerLabel(workerId: string): string | undefined;
43
45
  getWorkerStatus(name: string): WorkerStatusDetail | undefined;
44
- start(params: WorkerStartParams): string;
46
+ start(params: WorkerStartParams, options?: {
47
+ lazy?: boolean;
48
+ }): string;
45
49
  /** 常駐 worker へ user メッセージ(ACP `session/prompt`)を送る。busy 時はキュー、preempt 時は割り込み。 */
46
50
  sendWorkerMessage(name: string, instruction: string, options?: SendWorkerMessageOptions): SendWorkerMessageResult;
47
51
  waitForIdle(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/worker-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/worker-runtime.ts"],"names":[],"mappings":"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"}