@agents-ensemble/core 0.12.0 → 0.14.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 (181) hide show
  1. package/dist/acp/testing/fake-acp-server.d.ts +2 -0
  2. package/dist/acp/testing/fake-acp-server.d.ts.map +1 -1
  3. package/dist/acp/testing/fake-acp-server.js +3 -0
  4. package/dist/acp/testing/fake-acp-server.js.map +1 -1
  5. package/dist/conductor/conductor-agent-factory.d.ts +5 -0
  6. package/dist/conductor/conductor-agent-factory.d.ts.map +1 -0
  7. package/dist/conductor/conductor-agent-factory.js +10 -0
  8. package/dist/conductor/conductor-agent-factory.js.map +1 -0
  9. package/dist/conductor/conductor-agent.d.ts +7 -0
  10. package/dist/conductor/conductor-agent.d.ts.map +1 -1
  11. package/dist/conductor/conductor-send-reconnect.d.ts +3 -0
  12. package/dist/conductor/conductor-send-reconnect.d.ts.map +1 -1
  13. package/dist/conductor/conductor-send-reconnect.js +7 -1
  14. package/dist/conductor/conductor-send-reconnect.js.map +1 -1
  15. package/dist/conductor/conductor-session-driver.d.ts +6 -0
  16. package/dist/conductor/conductor-session-driver.d.ts.map +1 -1
  17. package/dist/conductor/conductor-session-driver.js +19 -2
  18. package/dist/conductor/conductor-session-driver.js.map +1 -1
  19. package/dist/conductor/conductor-session.d.ts +5 -2
  20. package/dist/conductor/conductor-session.d.ts.map +1 -1
  21. package/dist/conductor/conductor-session.js +539 -74
  22. package/dist/conductor/conductor-session.js.map +1 -1
  23. package/dist/conductor/index.d.ts +3 -2
  24. package/dist/conductor/index.d.ts.map +1 -1
  25. package/dist/conductor/index.js +2 -1
  26. package/dist/conductor/index.js.map +1 -1
  27. package/dist/conductor/operator-command.d.ts +5 -0
  28. package/dist/conductor/operator-command.d.ts.map +1 -1
  29. package/dist/conductor/operator-command.js +6 -0
  30. package/dist/conductor/operator-command.js.map +1 -1
  31. package/dist/conductor/pi-conductor-agent.d.ts +2 -5
  32. package/dist/conductor/pi-conductor-agent.d.ts.map +1 -1
  33. package/dist/conductor/pi-conductor-agent.js +16 -19
  34. package/dist/conductor/pi-conductor-agent.js.map +1 -1
  35. package/dist/conductor/pi-resource-loader.d.ts +2 -0
  36. package/dist/conductor/pi-resource-loader.d.ts.map +1 -1
  37. package/dist/conductor/pi-resource-loader.js +16 -8
  38. package/dist/conductor/pi-resource-loader.js.map +1 -1
  39. package/dist/conductor/session/dispatch-hold.d.ts +1 -1
  40. package/dist/conductor/session/dispatch-hold.d.ts.map +1 -1
  41. package/dist/conductor/session/dispatch-hold.js +4 -3
  42. package/dist/conductor/session/dispatch-hold.js.map +1 -1
  43. package/dist/conductor/session/dispatch-mode.d.ts +1 -1
  44. package/dist/conductor/session/events/index.d.ts +2 -1
  45. package/dist/conductor/session/events/index.d.ts.map +1 -1
  46. package/dist/conductor/session/events/index.js.map +1 -1
  47. package/dist/conductor/session/events/session-event.d.ts +7 -1
  48. package/dist/conductor/session/events/session-event.d.ts.map +1 -1
  49. package/dist/conductor/session/events/session-log-event-groups.d.ts +1 -1
  50. package/dist/conductor/session/events/session-log-event-groups.d.ts.map +1 -1
  51. package/dist/conductor/session/events/session-log-event-groups.js +1 -0
  52. package/dist/conductor/session/events/session-log-event-groups.js.map +1 -1
  53. package/dist/conductor/session/events/shared/permission-pending.d.ts +5 -0
  54. package/dist/conductor/session/events/shared/permission-pending.d.ts.map +1 -1
  55. package/dist/conductor/session/format-session-event.d.ts.map +1 -1
  56. package/dist/conductor/session/format-session-event.js +32 -2
  57. package/dist/conductor/session/format-session-event.js.map +1 -1
  58. package/dist/conductor/session/select-dispatch-batch.d.ts.map +1 -1
  59. package/dist/conductor/session/select-dispatch-batch.js +21 -4
  60. package/dist/conductor/session/select-dispatch-batch.js.map +1 -1
  61. package/dist/conductor/session/session-event.d.ts +1 -1
  62. package/dist/conductor/session/session-event.d.ts.map +1 -1
  63. package/dist/conductor/session/session-logger.d.ts +1 -0
  64. package/dist/conductor/session/session-logger.d.ts.map +1 -1
  65. package/dist/conductor/session/session-logger.js +4 -0
  66. package/dist/conductor/session/session-logger.js.map +1 -1
  67. package/dist/conductor/submit-operator-input.d.ts +4 -1
  68. package/dist/conductor/submit-operator-input.d.ts.map +1 -1
  69. package/dist/conductor/submit-operator-input.js +4 -1
  70. package/dist/conductor/submit-operator-input.js.map +1 -1
  71. package/dist/dispatch/get-tool-call-tool.d.ts +8 -0
  72. package/dist/dispatch/get-tool-call-tool.d.ts.map +1 -0
  73. package/dist/dispatch/get-tool-call-tool.js +46 -0
  74. package/dist/dispatch/get-tool-call-tool.js.map +1 -0
  75. package/dist/dispatch/index.d.ts +3 -0
  76. package/dist/dispatch/index.d.ts.map +1 -1
  77. package/dist/dispatch/index.js +2 -0
  78. package/dist/dispatch/index.js.map +1 -1
  79. package/dist/dispatch/report-session-state-tool.d.ts +6 -0
  80. package/dist/dispatch/report-session-state-tool.d.ts.map +1 -0
  81. package/dist/dispatch/report-session-state-tool.js +39 -0
  82. package/dist/dispatch/report-session-state-tool.js.map +1 -0
  83. package/dist/dispatch/session-usage-tool.js +1 -1
  84. package/dist/dispatch/session-usage-tool.js.map +1 -1
  85. package/dist/escalation/apply-operator-message.d.ts +2 -0
  86. package/dist/escalation/apply-operator-message.d.ts.map +1 -1
  87. package/dist/escalation/apply-operator-message.js +2 -0
  88. package/dist/escalation/apply-operator-message.js.map +1 -1
  89. package/dist/escalation/ask-human-tool.d.ts +0 -2
  90. package/dist/escalation/ask-human-tool.d.ts.map +1 -1
  91. package/dist/escalation/ask-human-tool.js +1 -7
  92. package/dist/escalation/ask-human-tool.js.map +1 -1
  93. package/dist/escalation/open-question.d.ts +1 -0
  94. package/dist/escalation/open-question.d.ts.map +1 -1
  95. package/dist/escalation/open-question.js +1 -1
  96. package/dist/escalation/open-question.js.map +1 -1
  97. package/dist/escalation/record-open-question-answer.d.ts +1 -0
  98. package/dist/escalation/record-open-question-answer.d.ts.map +1 -1
  99. package/dist/escalation/record-open-question-answer.js +1 -0
  100. package/dist/escalation/record-open-question-answer.js.map +1 -1
  101. package/dist/github/github-monitor.d.ts +1 -1
  102. package/dist/github/github-monitor.d.ts.map +1 -1
  103. package/dist/github/github-monitor.js +1 -1
  104. package/dist/github/github-monitor.js.map +1 -1
  105. package/dist/github/register-github-watch-tool.d.ts +4 -1
  106. package/dist/github/register-github-watch-tool.d.ts.map +1 -1
  107. package/dist/github/register-github-watch-tool.js +17 -1
  108. package/dist/github/register-github-watch-tool.js.map +1 -1
  109. package/dist/github/unregister-github-watch-tool.d.ts +4 -1
  110. package/dist/github/unregister-github-watch-tool.d.ts.map +1 -1
  111. package/dist/github/unregister-github-watch-tool.js +14 -3
  112. package/dist/github/unregister-github-watch-tool.js.map +1 -1
  113. package/dist/operator-runtime.d.ts +24 -0
  114. package/dist/operator-runtime.d.ts.map +1 -0
  115. package/dist/operator-runtime.js +17 -0
  116. package/dist/operator-runtime.js.map +1 -0
  117. package/dist/permission/index.d.ts +2 -0
  118. package/dist/permission/index.d.ts.map +1 -1
  119. package/dist/permission/index.js +1 -0
  120. package/dist/permission/index.js.map +1 -1
  121. package/dist/permission/permission-brief.d.ts +22 -0
  122. package/dist/permission/permission-brief.d.ts.map +1 -0
  123. package/dist/permission/permission-brief.js +245 -0
  124. package/dist/permission/permission-brief.js.map +1 -0
  125. package/dist/prompt/index.d.ts +1 -0
  126. package/dist/prompt/index.d.ts.map +1 -1
  127. package/dist/prompt/index.js +1 -0
  128. package/dist/prompt/index.js.map +1 -1
  129. package/dist/prompt/modules/ensemble/conductor-base-module.d.ts.map +1 -1
  130. package/dist/prompt/modules/ensemble/conductor-base-module.js +11 -1
  131. package/dist/prompt/modules/ensemble/conductor-base-module.js.map +1 -1
  132. package/dist/runtime/index.d.ts +3 -0
  133. package/dist/runtime/index.d.ts.map +1 -1
  134. package/dist/runtime/index.js +2 -0
  135. package/dist/runtime/index.js.map +1 -1
  136. package/dist/runtime/tool-call-snapshot-registry.d.ts +69 -0
  137. package/dist/runtime/tool-call-snapshot-registry.d.ts.map +1 -0
  138. package/dist/runtime/tool-call-snapshot-registry.js +275 -0
  139. package/dist/runtime/tool-call-snapshot-registry.js.map +1 -0
  140. package/dist/runtime/types.d.ts +2 -0
  141. package/dist/runtime/types.d.ts.map +1 -1
  142. package/dist/runtime/worker-runtime.d.ts.map +1 -1
  143. package/dist/runtime/worker-runtime.js +6 -2
  144. package/dist/runtime/worker-runtime.js.map +1 -1
  145. package/dist/session/index.d.ts +7 -1
  146. package/dist/session/index.d.ts.map +1 -1
  147. package/dist/session/index.js +3 -0
  148. package/dist/session/index.js.map +1 -1
  149. package/dist/session/open-question-control.d.ts +53 -0
  150. package/dist/session/open-question-control.d.ts.map +1 -0
  151. package/dist/session/open-question-control.js +410 -0
  152. package/dist/session/open-question-control.js.map +1 -0
  153. package/dist/session/open-questions-store.d.ts +12 -0
  154. package/dist/session/open-questions-store.d.ts.map +1 -0
  155. package/dist/session/open-questions-store.js +164 -0
  156. package/dist/session/open-questions-store.js.map +1 -0
  157. package/dist/session/session-sidecar.d.ts +5 -0
  158. package/dist/session/session-sidecar.d.ts.map +1 -1
  159. package/dist/session/session-sidecar.js +24 -3
  160. package/dist/session/session-sidecar.js.map +1 -1
  161. package/dist/session/session-state-store.d.ts +21 -0
  162. package/dist/session/session-state-store.d.ts.map +1 -0
  163. package/dist/session/session-state-store.js +131 -0
  164. package/dist/session/session-state-store.js.map +1 -0
  165. package/dist/session/tool-call-snapshot-history.d.ts +32 -0
  166. package/dist/session/tool-call-snapshot-history.d.ts.map +1 -0
  167. package/dist/session/tool-call-snapshot-history.js +203 -0
  168. package/dist/session/tool-call-snapshot-history.js.map +1 -0
  169. package/dist/usage/enrich-session-usage-cost.d.ts +4 -1
  170. package/dist/usage/enrich-session-usage-cost.d.ts.map +1 -1
  171. package/dist/usage/enrich-session-usage-cost.js +8 -2
  172. package/dist/usage/enrich-session-usage-cost.js.map +1 -1
  173. package/dist/usage/index.d.ts +1 -1
  174. package/dist/usage/index.d.ts.map +1 -1
  175. package/dist/usage/session-usage-tracker.d.ts +7 -1
  176. package/dist/usage/session-usage-tracker.d.ts.map +1 -1
  177. package/dist/usage/session-usage-tracker.js +51 -0
  178. package/dist/usage/session-usage-tracker.js.map +1 -1
  179. package/dist/usage/types.d.ts +30 -2
  180. package/dist/usage/types.d.ts.map +1 -1
  181. package/package.json +5 -1
@@ -3,6 +3,7 @@ import { DEFAULT_GITHUB_WATCH_KINDS, } from './github-monitor-cursor.js';
3
3
  import { yamlToolResult } from '../dispatch/yaml-tool-result.js';
4
4
  const PULL_REQUEST_WATCH_KINDS = new Set(DEFAULT_GITHUB_WATCH_KINDS);
5
5
  export function createRegisterGitHubWatchTool(options) {
6
+ const pendingPersistence = new Set();
6
7
  return {
7
8
  register_github_watch: {
8
9
  name: 'register_github_watch',
@@ -45,8 +46,9 @@ export function createRegisterGitHubWatchTool(options) {
45
46
  const kinds = existing
46
47
  ? resolveKinds(existing.kinds)
47
48
  : requestedKinds;
49
+ let registration;
48
50
  if (!existing) {
49
- const registration = {
51
+ registration = {
50
52
  prNumber,
51
53
  registeredAt: (options.now ?? (() => new Date()))().toISOString(),
52
54
  kinds,
@@ -55,7 +57,21 @@ export function createRegisterGitHubWatchTool(options) {
55
57
  registeredAt: registration.registeredAt,
56
58
  kinds: [...kinds],
57
59
  };
60
+ if (options.onRegistered)
61
+ pendingPersistence.add(key);
62
+ }
63
+ else {
64
+ registration = {
65
+ prNumber,
66
+ registeredAt: existing.registeredAt,
67
+ kinds,
68
+ };
69
+ }
70
+ if (pendingPersistence.has(key)) {
71
+ // A failed callback leaves the cursor changed in memory. Keep the
72
+ // operation pending so a repeated registration retries persistence.
58
73
  await options.onRegistered?.(registration);
74
+ pendingPersistence.delete(key);
59
75
  }
60
76
  return yamlToolResult('register_github_watch', {
61
77
  ok: true,
@@ -1 +1 @@
1
- {"version":3,"file":"register-github-watch-tool.js","sourceRoot":"","sources":["../../src/github/register-github-watch-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-github-watch-tool.js","sourceRoot":"","sources":["../../src/github/register-github-watch-tool.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,10 @@ export interface UnregisterGitHubWatchToolOptions {
4
4
  issueUrl: string;
5
5
  /** The mutable session cursor that is persisted by the conductor session. */
6
6
  getCursor: () => GitHubMonitorCursor;
7
- /** Called only when a PR was explicitly registered and is now removed. */
7
+ /**
8
+ * Called when an unregistration must be persisted, including after a failed
9
+ * attempt.
10
+ */
8
11
  onUnregistered?: (prNumber: number) => void | Promise<void>;
9
12
  }
10
13
  export declare function createUnregisterGitHubWatchTool(options: UnregisterGitHubWatchToolOptions): ConductorToolSet;
@@ -1 +1 @@
1
- {"version":3,"file":"unregister-github-watch-tool.d.ts","sourceRoot":"","sources":["../../src/github/unregister-github-watch-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAMvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,mBAAmB,CAAC;IACrC,0EAA0E;IAC1E,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gCAAgC,GACxC,gBAAgB,CAsDlB"}
1
+ {"version":3,"file":"unregister-github-watch-tool.d.ts","sourceRoot":"","sources":["../../src/github/unregister-github-watch-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAMvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,mBAAmB,CAAC;IACrC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gCAAgC,GACxC,gBAAgB,CAmElB"}
@@ -1,6 +1,7 @@
1
1
  import { yamlToolResult } from '../dispatch/yaml-tool-result.js';
2
2
  import { parseGitHubWatchTarget, } from './register-github-watch-tool.js';
3
3
  export function createUnregisterGitHubWatchTool(options) {
4
+ const pendingPersistence = new Set();
4
5
  return {
5
6
  unregister_github_watch: {
6
7
  name: 'unregister_github_watch',
@@ -29,7 +30,8 @@ export function createUnregisterGitHubWatchTool(options) {
29
30
  const cursor = options.getCursor();
30
31
  const key = String(target.prNumber);
31
32
  const explicitPullRequests = cursor.explicitPullRequests;
32
- if (!explicitPullRequests?.[key]) {
33
+ const wasRegistered = Boolean(explicitPullRequests?.[key]);
34
+ if (!wasRegistered && !pendingPersistence.has(key)) {
33
35
  return yamlToolResult('unregister_github_watch', {
34
36
  ok: false,
35
37
  prNumber: target.prNumber,
@@ -37,8 +39,17 @@ export function createUnregisterGitHubWatchTool(options) {
37
39
  message: 'Pull request is not explicitly registered for the harness GitHub monitor',
38
40
  });
39
41
  }
40
- delete explicitPullRequests[key];
41
- await options.onUnregistered?.(target.prNumber);
42
+ if (wasRegistered) {
43
+ delete explicitPullRequests[key];
44
+ if (options.onUnregistered)
45
+ pendingPersistence.add(key);
46
+ }
47
+ if (pendingPersistence.has(key)) {
48
+ // Preserve the retry marker if persistence rejects after the cursor
49
+ // has already been updated in memory.
50
+ await options.onUnregistered?.(target.prNumber);
51
+ pendingPersistence.delete(key);
52
+ }
42
53
  return yamlToolResult('unregister_github_watch', {
43
54
  ok: true,
44
55
  prNumber: target.prNumber,
@@ -1 +1 @@
1
- {"version":3,"file":"unregister-github-watch-tool.js","sourceRoot":"","sources":["../../src/github/unregister-github-watch-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,sBAAsB,GAEvB,MAAM,iCAAiC,CAAC;AAWzC,MAAM,UAAU,+BAA+B,CAC7C,OAAyC;IAEzC,OAAO;QACL,uBAAuB,EAAE;YACvB,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE;gBACX,4EAA4E;gBAC5E,0FAA0F;gBAC1F,uGAAuG;gBACvG,sFAAsF;aACvF,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,CAAC;wBACV,WAAW,EAAE,6CAA6C;qBAC3D;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oDAAoD;qBAClE;iBACF;aACF;YACD,KAAK,CAAC,OAAO,CAAC,IAAI;gBAChB,MAAM,MAAM,GAAsB,sBAAsB,CACtD,OAAO,CAAC,QAAQ,EAChB,IAAI,EACJ,yBAAyB,CAC1B,CAAC;gBACF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;gBACzD,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,OAAO,cAAc,CAAC,yBAAyB,EAAE;wBAC/C,EAAE,EAAE,KAAK;wBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,OAAO,EACL,0EAA0E;qBAC7E,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChD,OAAO,cAAc,CAAC,yBAAyB,EAAE;oBAC/C,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,OAAO,EAAE,0CAA0C;iBACpD,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"unregister-github-watch-tool.js","sourceRoot":"","sources":["../../src/github/unregister-github-watch-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,sBAAsB,GAEvB,MAAM,iCAAiC,CAAC;AAczC,MAAM,UAAU,+BAA+B,CAC7C,OAAyC;IAEzC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C,OAAO;QACL,uBAAuB,EAAE;YACvB,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE;gBACX,4EAA4E;gBAC5E,0FAA0F;gBAC1F,uGAAuG;gBACvG,sFAAsF;aACvF,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,CAAC;wBACV,WAAW,EAAE,6CAA6C;qBAC3D;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oDAAoD;qBAClE;iBACF;aACF;YACD,KAAK,CAAC,OAAO,CAAC,IAAI;gBAChB,MAAM,MAAM,GAAsB,sBAAsB,CACtD,OAAO,CAAC,QAAQ,EAChB,IAAI,EACJ,yBAAyB,CAC1B,CAAC;gBACF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;gBACzD,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnD,OAAO,cAAc,CAAC,yBAAyB,EAAE;wBAC/C,EAAE,EAAE,KAAK;wBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,OAAO,EACL,0EAA0E;qBAC7E,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,aAAa,EAAE,CAAC;oBAClB,OAAO,oBAAqB,CAAC,GAAG,CAAC,CAAC;oBAClC,IAAI,OAAO,CAAC,cAAc;wBAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1D,CAAC;gBAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,oEAAoE;oBACpE,sCAAsC;oBACtC,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAChD,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC;gBAED,OAAO,cAAc,CAAC,yBAAyB,EAAE;oBAC/C,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,OAAO,EAAE,0CAA0C;iBACpD,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Small public surface for role runtimes that reuse conductor configuration
3
+ * and the embedded backend without depending on the Issue session harness.
4
+ */
5
+ export { loadEnsembleConfig } from './config/load-ensemble-config.js';
6
+ export type { EnsembleConfig } from './config/types.js';
7
+ export { resolveConductorBackendSetting, resolveConductorPiResourcePaths, } from './config/resolve-settings.js';
8
+ export type { ConductorBackend } from './config/types.js';
9
+ export { resolveConductorModelId } from './conductor/resolve-conductor-model-id.js';
10
+ export { createConductorAgentFactory } from './conductor/conductor-agent-factory.js';
11
+ export type { ConductorAgent, ConductorAgentCreateOptions, ConductorAgentFactory, ConductorSendResult, } from './conductor/conductor-agent.js';
12
+ export type { ConductorJsonValue, ConductorTool, ConductorToolSet, } from './conductor/conductor-tool.js';
13
+ export { loadProfile } from './profile/load-profile.js';
14
+ export type { ResolvedProfile, ResolvedProfileMaterial, } from './profile/types.js';
15
+ export { filterMaterialsForKind, resolveAgentPromptModule, sessionStateFromProfile, } from './profile/types.js';
16
+ export { profilePromptModule } from './prompt/modules/shared/profile-prompt-module.js';
17
+ export { renderCompiledPrompt } from './prompt/render-compiled-prompt.js';
18
+ export { loadSessionSidecar, listSessionSidecars, type SessionLifecycle, type SessionSidecar, } from './session/session-sidecar.js';
19
+ export { OPEN_QUESTION_CONTROL_METHODS, OpenQuestionControlRemoteError, OpenQuestionControlTransportError, sendOpenQuestionControlRequest, } from './session/open-question-control.js';
20
+ export type { OpenQuestionControlAnswerResult, OpenQuestionControlErrorData, OpenQuestionControlListItem, } from './session/open-question-control.js';
21
+ export { loadSessionStateStore, sessionStateStorePath, type SessionStateStore, type SessionStatusLine, } from './session/session-state-store.js';
22
+ export { parseIssueUrl } from './issue/issue-ref.js';
23
+ export type { IssueRef } from './issue/issue-ref.js';
24
+ //# sourceMappingURL=operator-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-runtime.d.ts","sourceRoot":"","sources":["../src/operator-runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EACV,eAAe,EACf,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,+BAA+B,EAC/B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Small public surface for role runtimes that reuse conductor configuration
3
+ * and the embedded backend without depending on the Issue session harness.
4
+ */
5
+ export { loadEnsembleConfig } from './config/load-ensemble-config.js';
6
+ export { resolveConductorBackendSetting, resolveConductorPiResourcePaths, } from './config/resolve-settings.js';
7
+ export { resolveConductorModelId } from './conductor/resolve-conductor-model-id.js';
8
+ export { createConductorAgentFactory } from './conductor/conductor-agent-factory.js';
9
+ export { loadProfile } from './profile/load-profile.js';
10
+ export { filterMaterialsForKind, resolveAgentPromptModule, sessionStateFromProfile, } from './profile/types.js';
11
+ export { profilePromptModule } from './prompt/modules/shared/profile-prompt-module.js';
12
+ export { renderCompiledPrompt } from './prompt/render-compiled-prompt.js';
13
+ export { loadSessionSidecar, listSessionSidecars, } from './session/session-sidecar.js';
14
+ export { OPEN_QUESTION_CONTROL_METHODS, OpenQuestionControlRemoteError, OpenQuestionControlTransportError, sendOpenQuestionControlRequest, } from './session/open-question-control.js';
15
+ export { loadSessionStateStore, sessionStateStorePath, } from './session/session-state-store.js';
16
+ export { parseIssueUrl } from './issue/issue-ref.js';
17
+ //# sourceMappingURL=operator-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-runtime.js","sourceRoot":"","sources":["../src/operator-runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAYrF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAKxD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAGpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,oCAAoC,CAAC;AAM5C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GAGtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
@@ -4,6 +4,8 @@ export { evaluatePermissionPolicy, } from './permission-policy.js';
4
4
  export type { PermissionPolicyRules, PermissionVerdict, } from './permission-policy.js';
5
5
  export { parsePermissionRequest, } from './permission-request.js';
6
6
  export type { PermissionOption, PermissionRequest, } from './permission-request.js';
7
+ export { buildPermissionBrief, getPermissionToolCallId, } from './permission-brief.js';
8
+ export type { PermissionBrief, PermissionBriefOperation, PermissionOperationKind, } from './permission-brief.js';
7
9
  export { PermissionPipeline } from './permission-pipeline.js';
8
10
  export type { PermissionPipelineOptions, PermissionPipelineOutcome, } from './permission-pipeline.js';
9
11
  export { createPermissionDeadlockMonitor, DEFAULT_PERMISSION_DEADLOCK_POLL_MS, DEFAULT_PERMISSION_DEADLOCK_STALL_MS, formatPermissionDeadlockWarningMessage, isPermissionDeadlockRisk, } from './permission-deadlock-monitor.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/permission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,IAAI,GACL,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,YAAY,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACnC,oCAAoC,EACpC,sCAAsC,EACtC,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,kCAAkC,EAClC,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,YAAY,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,6CAA6C,CAAC;AACrD,YAAY,EAAE,yCAAyC,EAAE,MAAM,6CAA6C,CAAC;AAC7G,YAAY,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/permission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,IAAI,GACL,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,YAAY,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACnC,oCAAoC,EACpC,sCAAsC,EACtC,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,kCAAkC,EAClC,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,YAAY,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,6CAA6C,CAAC;AACrD,YAAY,EAAE,yCAAyC,EAAE,MAAM,6CAA6C,CAAC;AAC7G,YAAY,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export { PermissionBroker, allowOnce, deny, } from './permission-broker.js';
2
2
  export { evaluatePermissionPolicy, } from './permission-policy.js';
3
3
  export { parsePermissionRequest, } from './permission-request.js';
4
+ export { buildPermissionBrief, getPermissionToolCallId, } from './permission-brief.js';
4
5
  export { PermissionPipeline } from './permission-pipeline.js';
5
6
  export { createPermissionDeadlockMonitor, DEFAULT_PERMISSION_DEADLOCK_POLL_MS, DEFAULT_PERMISSION_DEADLOCK_STALL_MS, formatPermissionDeadlockWarningMessage, isPermissionDeadlockRisk, } from './permission-deadlock-monitor.js';
6
7
  export { PendingPermissionRegistry, } from './pending-permission.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/permission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,IAAI,GACL,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACnC,oCAAoC,EACpC,sCAAsC,EACtC,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EACL,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/permission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,IAAI,GACL,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACnC,oCAAoC,EACpC,sCAAsC,EACtC,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EACL,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,6CAA6C,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { PermissionRequest } from './permission-request.js';
2
+ export type PermissionOperationKind = 'edit' | 'read' | 'shell' | 'delete' | 'move' | 'other';
3
+ export interface PermissionBriefOperation {
4
+ kind: PermissionOperationKind;
5
+ path?: string;
6
+ line?: number;
7
+ cmd?: string;
8
+ cwd?: string;
9
+ targetPath?: string;
10
+ detail?: string;
11
+ }
12
+ /** Structured minimum context for a conductor permission decision. */
13
+ export interface PermissionBrief {
14
+ toolCallId?: string;
15
+ tool: string;
16
+ operation: PermissionBriefOperation;
17
+ missing: string[];
18
+ }
19
+ /** The permission params remain the primary source; the snapshot fills gaps. */
20
+ export declare function buildPermissionBrief(request: PermissionRequest, toolCallSnapshot?: Record<string, unknown>): PermissionBrief;
21
+ export declare function getPermissionToolCallId(request: PermissionRequest): string | undefined;
22
+ //# sourceMappingURL=permission-brief.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-brief.d.ts","sourceRoot":"","sources":["../../src/permission/permission-brief.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,wBAAwB,CAAC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAuBD,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,EAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,eAAe,CAgFjB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GACzB,MAAM,GAAG,SAAS,CAEpB"}
@@ -0,0 +1,245 @@
1
+ const PATH_KEYS = [
2
+ 'path',
3
+ 'file_path',
4
+ 'filePath',
5
+ 'target_file',
6
+ 'filename',
7
+ 'sourcePath',
8
+ 'source_path',
9
+ 'from',
10
+ ];
11
+ const TARGET_PATH_KEYS = [
12
+ 'targetPath',
13
+ 'target_path',
14
+ 'destination',
15
+ 'dest',
16
+ 'to',
17
+ ];
18
+ const COMMAND_KEYS = ['command', 'cmd', 'commandLine', 'shellCommand', 'script'];
19
+ const DETAIL_KEYS = ['detail', 'description', 'title'];
20
+ const CWD_KEYS = ['cwd', 'workingDirectory', 'working_directory'];
21
+ /** The permission params remain the primary source; the snapshot fills gaps. */
22
+ export function buildPermissionBrief(request, toolCallSnapshot) {
23
+ const raw = asRecord(request.raw) ?? {};
24
+ const params = collectPermissionFields(raw);
25
+ const snapshot = collectPermissionFields(toolCallSnapshot);
26
+ const toolCallId = readToolCallId(raw) ??
27
+ (toolCallSnapshot ? readToolCallId(toolCallSnapshot) : undefined);
28
+ const acpKind = firstString(params.toolCalls, 'kind') ??
29
+ firstString(snapshot.toolCalls, 'kind') ??
30
+ firstString(snapshot.inputs, 'kind');
31
+ const operationKind = normalizeOperationKind(request.toolName, acpKind);
32
+ const canonicalTool = toolNameForKind(operationKind);
33
+ const snapshotName = firstString(snapshot.toolCalls, 'toolName', 'name') ??
34
+ firstString(snapshot.toolCalls, 'title') ??
35
+ firstString(snapshot.inputs, 'toolName', 'name', 'title');
36
+ const tool = !isUnknownToolName(request.toolName)
37
+ ? request.toolName
38
+ : canonicalTool ?? snapshotName ?? request.toolName;
39
+ const path = firstString(params.inputs, ...PATH_KEYS) ??
40
+ firstString(params.locations, ...PATH_KEYS) ??
41
+ firstString(snapshot.inputs, ...PATH_KEYS) ??
42
+ firstString(snapshot.locations, ...PATH_KEYS);
43
+ const targetPath = firstString(params.inputs, ...TARGET_PATH_KEYS) ??
44
+ firstString(snapshot.inputs, ...TARGET_PATH_KEYS);
45
+ const line = firstNumber(params.inputs, 'line') ??
46
+ firstNumber(params.locations, 'line') ??
47
+ firstNumber(snapshot.inputs, 'line') ??
48
+ firstNumber(snapshot.locations, 'line');
49
+ const cmd = firstString(params.inputs, ...COMMAND_KEYS) ??
50
+ firstString(snapshot.inputs, ...COMMAND_KEYS);
51
+ const cwd = firstString(params.inputs, ...CWD_KEYS) ??
52
+ firstString(snapshot.inputs, ...CWD_KEYS);
53
+ const detail = firstString(params.inputs, ...DETAIL_KEYS) ??
54
+ firstString(params.toolCalls, ...DETAIL_KEYS) ??
55
+ firstString(snapshot.inputs, ...DETAIL_KEYS) ??
56
+ firstString(snapshot.toolCalls, ...DETAIL_KEYS);
57
+ const operation = { kind: operationKind };
58
+ if (path)
59
+ operation.path = path;
60
+ if (line !== undefined &&
61
+ ['edit', 'read', 'delete', 'move'].includes(operationKind)) {
62
+ operation.line = line;
63
+ }
64
+ if (cmd && operationKind === 'shell')
65
+ operation.cmd = cmd;
66
+ if (cwd && operationKind === 'shell')
67
+ operation.cwd = cwd;
68
+ if (targetPath && operationKind === 'move')
69
+ operation.targetPath = targetPath;
70
+ if (detail && operationKind === 'other')
71
+ operation.detail = detail;
72
+ const missing = [];
73
+ if (['edit', 'read', 'delete', 'move'].includes(operationKind) &&
74
+ !operation.path) {
75
+ missing.push('path');
76
+ }
77
+ if (operationKind === 'shell' && !operation.cmd) {
78
+ missing.push('cmd');
79
+ }
80
+ if (operationKind === 'other' && !operation.detail) {
81
+ missing.push('detail');
82
+ }
83
+ return {
84
+ ...(toolCallId ? { toolCallId } : {}),
85
+ tool,
86
+ operation,
87
+ missing,
88
+ };
89
+ }
90
+ export function getPermissionToolCallId(request) {
91
+ return readToolCallId(asRecord(request.raw) ?? {});
92
+ }
93
+ function collectPermissionFields(raw) {
94
+ if (!raw) {
95
+ return { inputs: [], toolCalls: [], locations: [] };
96
+ }
97
+ const subject = asRecord(raw.subject);
98
+ const toolCalls = [
99
+ asRecord(raw.toolCall),
100
+ asRecord(raw.tool_call),
101
+ asRecord(subject?.toolCall),
102
+ asRecord(subject?.tool_call),
103
+ ].filter((record) => record !== undefined);
104
+ const locations = [
105
+ ...readLocations(raw.locations),
106
+ ...readLocations(subject?.locations),
107
+ ...toolCalls.flatMap((toolCall) => readLocations(toolCall.locations)),
108
+ ];
109
+ const inputValues = [
110
+ ...toolCalls.flatMap((toolCall) => [
111
+ toolCall.rawInput,
112
+ toolCall.raw_input,
113
+ toolCall.args,
114
+ toolCall.input,
115
+ ]),
116
+ raw.rawInput,
117
+ raw.raw_input,
118
+ raw.input,
119
+ raw.arguments,
120
+ subject?.rawInput,
121
+ subject?.raw_input,
122
+ subject?.input,
123
+ subject?.arguments,
124
+ ...toolCalls,
125
+ ...(subject ? [subject] : []),
126
+ raw,
127
+ ];
128
+ const inputs = inputValues
129
+ .map(asRecordOrJson)
130
+ .filter((record) => record !== undefined);
131
+ return { inputs, toolCalls, locations };
132
+ }
133
+ function readToolCallId(record) {
134
+ const direct = readString(record, 'toolCallId', 'tool_call_id');
135
+ if (direct)
136
+ return direct;
137
+ const subject = asRecord(record.subject);
138
+ for (const candidate of [
139
+ asRecord(record.toolCall),
140
+ asRecord(record.tool_call),
141
+ asRecord(subject?.toolCall),
142
+ asRecord(subject?.tool_call),
143
+ ]) {
144
+ const value = candidate
145
+ ? readString(candidate, 'toolCallId', 'tool_call_id')
146
+ : undefined;
147
+ if (value)
148
+ return value;
149
+ }
150
+ return undefined;
151
+ }
152
+ function normalizeOperationKind(toolName, acpKind) {
153
+ const fromName = operationKindFor(toolName);
154
+ if (fromName !== 'other')
155
+ return fromName;
156
+ return acpKind ? operationKindFor(acpKind) : 'other';
157
+ }
158
+ function operationKindFor(value) {
159
+ switch (value.trim().toLowerCase()) {
160
+ case 'edit':
161
+ case 'write':
162
+ return 'edit';
163
+ case 'read':
164
+ return 'read';
165
+ case 'shell':
166
+ case 'bash':
167
+ case 'execute':
168
+ return 'shell';
169
+ case 'delete':
170
+ return 'delete';
171
+ case 'move':
172
+ return 'move';
173
+ default:
174
+ return 'other';
175
+ }
176
+ }
177
+ function toolNameForKind(kind) {
178
+ switch (kind) {
179
+ case 'edit':
180
+ return 'Edit';
181
+ case 'read':
182
+ return 'Read';
183
+ case 'shell':
184
+ return 'Shell';
185
+ case 'delete':
186
+ return 'Delete';
187
+ case 'move':
188
+ return 'Move';
189
+ case 'other':
190
+ return undefined;
191
+ }
192
+ }
193
+ function isUnknownToolName(toolName) {
194
+ return toolName.trim().toLowerCase() === 'unknown';
195
+ }
196
+ function readLocations(value) {
197
+ if (!Array.isArray(value))
198
+ return [];
199
+ return value
200
+ .map(asRecord)
201
+ .filter((record) => record !== undefined);
202
+ }
203
+ function asRecordOrJson(value) {
204
+ const record = asRecord(value);
205
+ if (record)
206
+ return record;
207
+ if (typeof value !== 'string')
208
+ return undefined;
209
+ try {
210
+ return asRecord(JSON.parse(value));
211
+ }
212
+ catch {
213
+ return undefined;
214
+ }
215
+ }
216
+ function asRecord(value) {
217
+ return value && typeof value === 'object' && !Array.isArray(value)
218
+ ? value
219
+ : undefined;
220
+ }
221
+ function firstString(records, ...keys) {
222
+ for (const record of records) {
223
+ const value = readString(record, ...keys);
224
+ if (value)
225
+ return value;
226
+ }
227
+ return undefined;
228
+ }
229
+ function firstNumber(records, key) {
230
+ for (const record of records) {
231
+ const value = record[key];
232
+ if (typeof value === 'number' && Number.isFinite(value))
233
+ return value;
234
+ }
235
+ return undefined;
236
+ }
237
+ function readString(record, ...keys) {
238
+ for (const key of keys) {
239
+ const value = record[key];
240
+ if (typeof value === 'string' && value.trim())
241
+ return value.trim();
242
+ }
243
+ return undefined;
244
+ }
245
+ //# sourceMappingURL=permission-brief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-brief.js","sourceRoot":"","sources":["../../src/permission/permission-brief.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export { buildWorkerPrompt } from './build-worker-prompt.js';
2
2
  export type { WorkerPromptOptions } from './build-worker-prompt.js';
3
+ export { renderCompiledPrompt } from './render-compiled-prompt.js';
3
4
  export { loadUserInstructions, USER_INSTRUCTIONS_FILE, } from './load-user-instructions.js';
4
5
  export type { LoadUserInstructionsOptions } from './load-user-instructions.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -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;AACpE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,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,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { buildWorkerPrompt } from './build-worker-prompt.js';
2
+ export { renderCompiledPrompt } from './render-compiled-prompt.js';
2
3
  export { loadUserInstructions, USER_INSTRUCTIONS_FILE, } from './load-user-instructions.js';
3
4
  //# 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;AAE7D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,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,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,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,CAyG7D,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,CAmH7D,CAAC"}
@@ -94,13 +94,23 @@ export const conductorBaseModule = {
94
94
  '- 状態照会に `prompt_worker` を使わない。Issue / PR を読まず tool 結果で答える',
95
95
  ],
96
96
  },
97
+ {
98
+ type: 'subsection',
99
+ title: 'オペレータ向けセッション状態',
100
+ items: [
101
+ '- `report_session_state` で、オペレータ向けの短い状態を 80 文字以内の一文で登録する',
102
+ '- 例: `report_session_state({ statusLine: "レビュー中:CIテスト待ち" })`',
103
+ '- worker の一覧、長いメトリクス、permission の詳細は含めない',
104
+ ],
105
+ },
97
106
  {
98
107
  type: 'subsection',
99
108
  title: 'permission',
100
109
  items: [
101
110
  '- workerのツール実行にはconductorの明示的な許可が必要になる場合があります',
102
111
  '- workerへのpermission許可: `resolve_permission`',
103
- '- `permission.pending` をオペレータへエスカレーションするときは、YAML の `operatorSummary` を `ask_human` の `context` にそのまま含め、`relatedPermissionId` に同じ pending の `id` を渡してください。harness もその ID に対応する要約を Open Question に付加します',
112
+ '- `permission.pending` では `brief` を判断用の要約、`request.raw` を permission RPC params 全文として読む。`brief.missing` が空でないときは `request.raw` を確認し、`brief.toolCallId` があれば `get_tool_call` で先行 update を取得する。返る `workerId` / `sessionId` が pending request と一致することを確かめ、一致しない・request に session ID がない場合は snapshot を判断材料にしない。結果が `ambiguous: true` の場合は `workerId` と `request.sessionId` に一致する候補だけを使う。ID だけでは対象や操作内容が分かったことにしない',
113
+ '- `permission.pending` をオペレータへエスカレーションするときは、YAML の `operatorSummary` を参照し、判断に必要な質問と `context` を `ask_human` に自分で書いてください。permission との連携には、同じ pending の `id` を `relatedPermissionId` に渡します',
104
114
  '- 指示した作業に付随する処理の許可であれば、approveすることができます',
105
115
  '- 不明点があれば、workerに問い合わせを行ってください',
106
116
  '- 基本的には安全性を優先してください。指示外の処理、危険な処理がどうしても必要な場合はエスカレーションします'
@@ -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,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,uFAAuF;gBACvF,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,uMAAuM;gBACvM,yCAAyC;gBACzC,gCAAgC;gBAChC,yDAAyD;aAC1D;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,uFAAuF;gBACvF,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,gBAAgB;YACvB,KAAK,EAAE;gBACL,0DAA0D;gBAC1D,8DAA8D;gBAC9D,0CAA0C;aAC3C;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE;gBACL,+CAA+C;gBAC/C,8CAA8C;gBAC9C,gZAAgZ;gBAChZ,2LAA2L;gBAC3L,yCAAyC;gBACzC,gCAAgC;gBAChC,yDAAyD;aAC1D;SACF;KACF;CACF,CAAC"}
@@ -5,6 +5,9 @@ export { startInboxProcessor } from './inbox-processor.js';
5
5
  export type { InboxProcessorHandle, InboxProcessorOptions, } from './inbox-processor.js';
6
6
  export { WorkerRuntime } from './worker-runtime.js';
7
7
  export type { WorkerRuntimeOptions } from './worker-runtime.js';
8
+ export { ToolCallSnapshotRegistry } from './tool-call-snapshot-registry.js';
9
+ export type { EncodedToolCallSnapshot, ScopedToolCallSnapshot, StoredToolCallSnapshot, ToolCallSnapshot, ToolCallSnapshotApplyResult, ToolCallSnapshotScope, } from './tool-call-snapshot-registry.js';
10
+ export { TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES, TOOL_CALL_SNAPSHOT_HISTORY_MAX_ENTRIES, TOOL_CALL_SNAPSHOT_HISTORY_TTL_MS, } from './tool-call-snapshot-registry.js';
8
11
  export { mapHarnessToDisplayStatus } from './map-worker-lifecycle.js';
9
12
  export type { WorkerLifecycleState } from './worker-lifecycle-state.js';
10
13
  export type { WorkerDisplayStatus } from './worker-display-state.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EACV,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,YAAY,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EACV,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,oCAAoC,EACpC,sCAAsC,EACtC,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,YAAY,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -2,5 +2,7 @@ export { WorkerSession } from './worker-session.js';
2
2
  export { ConductorInbox } from './conductor-inbox.js';
3
3
  export { startInboxProcessor } from './inbox-processor.js';
4
4
  export { WorkerRuntime } from './worker-runtime.js';
5
+ export { ToolCallSnapshotRegistry } from './tool-call-snapshot-registry.js';
6
+ export { TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES, TOOL_CALL_SNAPSHOT_HISTORY_MAX_ENTRIES, TOOL_CALL_SNAPSHOT_HISTORY_TTL_MS, } from './tool-call-snapshot-registry.js';
5
7
  export { mapHarnessToDisplayStatus } from './map-worker-lifecycle.js';
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAK3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAK3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAS5E,OAAO,EACL,oCAAoC,EACpC,sCAAsC,EACtC,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}