@agents-ensemble/core 0.21.0 → 0.22.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 (266) hide show
  1. package/assets/pi/pi-cli-env-wrapper.cmd +28 -0
  2. package/assets/pi/pi-cli-env-wrapper.sh +19 -0
  3. package/assets/pi/settings.json +4 -0
  4. package/dist/acp/acp-preset-bins.d.ts +3 -3
  5. package/dist/acp/acp-preset-bins.d.ts.map +1 -1
  6. package/dist/acp/acp-preset-bins.js +3 -3
  7. package/dist/acp/acp-preset-bins.js.map +1 -1
  8. package/dist/acp/index.d.ts +3 -1
  9. package/dist/acp/index.d.ts.map +1 -1
  10. package/dist/acp/index.js +2 -1
  11. package/dist/acp/index.js.map +1 -1
  12. package/dist/acp/pi-acp-wrapper.d.ts +3 -0
  13. package/dist/acp/pi-acp-wrapper.d.ts.map +1 -0
  14. package/dist/acp/pi-acp-wrapper.js +41 -0
  15. package/dist/acp/pi-acp-wrapper.js.map +1 -0
  16. package/dist/acp/pi-builtin-config.d.ts +10 -0
  17. package/dist/acp/pi-builtin-config.d.ts.map +1 -0
  18. package/dist/acp/pi-builtin-config.js +36 -0
  19. package/dist/acp/pi-builtin-config.js.map +1 -0
  20. package/dist/acp/pi-runtime.d.ts +23 -0
  21. package/dist/acp/pi-runtime.d.ts.map +1 -0
  22. package/dist/acp/pi-runtime.js +160 -0
  23. package/dist/acp/pi-runtime.js.map +1 -0
  24. package/dist/acp/pi-session-map.d.ts +36 -0
  25. package/dist/acp/pi-session-map.d.ts.map +1 -0
  26. package/dist/acp/pi-session-map.js +266 -0
  27. package/dist/acp/pi-session-map.js.map +1 -0
  28. package/dist/acp/resolve-acp-spawn.d.ts +9 -3
  29. package/dist/acp/resolve-acp-spawn.d.ts.map +1 -1
  30. package/dist/acp/resolve-acp-spawn.js +41 -9
  31. package/dist/acp/resolve-acp-spawn.js.map +1 -1
  32. package/dist/acp/resolve-bundled-acp-bin.d.ts +2 -2
  33. package/dist/acp/resolve-bundled-acp-bin.d.ts.map +1 -1
  34. package/dist/acp/resolve-bundled-acp-bin.js +4 -4
  35. package/dist/acp/resolve-bundled-acp-bin.js.map +1 -1
  36. package/dist/acp/validate-acp-preset-prerequisites.d.ts +1 -1
  37. package/dist/acp/validate-acp-preset-prerequisites.d.ts.map +1 -1
  38. package/dist/acp/validate-acp-preset-prerequisites.js +30 -10
  39. package/dist/acp/validate-acp-preset-prerequisites.js.map +1 -1
  40. package/dist/conductor/conductor-agent.d.ts +15 -3
  41. package/dist/conductor/conductor-agent.d.ts.map +1 -1
  42. package/dist/conductor/conductor-auth.d.ts +2 -3
  43. package/dist/conductor/conductor-auth.d.ts.map +1 -1
  44. package/dist/conductor/conductor-auth.js +5 -2
  45. package/dist/conductor/conductor-auth.js.map +1 -1
  46. package/dist/conductor/conductor-dispatch-lifecycle.d.ts +85 -0
  47. package/dist/conductor/conductor-dispatch-lifecycle.d.ts.map +1 -0
  48. package/dist/conductor/conductor-dispatch-lifecycle.js +190 -0
  49. package/dist/conductor/conductor-dispatch-lifecycle.js.map +1 -0
  50. package/dist/conductor/conductor-history.d.ts +6 -0
  51. package/dist/conductor/conductor-history.d.ts.map +1 -1
  52. package/dist/conductor/conductor-history.js +11 -6
  53. package/dist/conductor/conductor-history.js.map +1 -1
  54. package/dist/conductor/conductor-path-safety.d.ts +23 -0
  55. package/dist/conductor/conductor-path-safety.d.ts.map +1 -0
  56. package/dist/conductor/conductor-path-safety.js +319 -0
  57. package/dist/conductor/conductor-path-safety.js.map +1 -0
  58. package/dist/conductor/conductor-pi-auth.d.ts +57 -2
  59. package/dist/conductor/conductor-pi-auth.d.ts.map +1 -1
  60. package/dist/conductor/conductor-pi-auth.js +718 -40
  61. package/dist/conductor/conductor-pi-auth.js.map +1 -1
  62. package/dist/conductor/conductor-recovery-inbox.d.ts +73 -0
  63. package/dist/conductor/conductor-recovery-inbox.d.ts.map +1 -0
  64. package/dist/conductor/conductor-recovery-inbox.js +181 -0
  65. package/dist/conductor/conductor-recovery-inbox.js.map +1 -0
  66. package/dist/conductor/conductor-send-reconnect.d.ts +27 -5
  67. package/dist/conductor/conductor-send-reconnect.d.ts.map +1 -1
  68. package/dist/conductor/conductor-send-reconnect.js +88 -39
  69. package/dist/conductor/conductor-send-reconnect.js.map +1 -1
  70. package/dist/conductor/conductor-session-driver.d.ts +32 -7
  71. package/dist/conductor/conductor-session-driver.d.ts.map +1 -1
  72. package/dist/conductor/conductor-session-driver.js +474 -233
  73. package/dist/conductor/conductor-session-driver.js.map +1 -1
  74. package/dist/conductor/conductor-session.d.ts +2 -0
  75. package/dist/conductor/conductor-session.d.ts.map +1 -1
  76. package/dist/conductor/conductor-session.js +404 -156
  77. package/dist/conductor/conductor-session.js.map +1 -1
  78. package/dist/conductor/conductor-setup.d.ts +30 -0
  79. package/dist/conductor/conductor-setup.d.ts.map +1 -0
  80. package/dist/conductor/conductor-setup.js +243 -0
  81. package/dist/conductor/conductor-setup.js.map +1 -0
  82. package/dist/conductor/cursor-bootstrap-state.d.ts +9 -0
  83. package/dist/conductor/cursor-bootstrap-state.d.ts.map +1 -0
  84. package/dist/conductor/cursor-bootstrap-state.js +11 -0
  85. package/dist/conductor/cursor-bootstrap-state.js.map +1 -0
  86. package/dist/conductor/cursor-run-snapshots.d.ts +30 -0
  87. package/dist/conductor/cursor-run-snapshots.d.ts.map +1 -0
  88. package/dist/conductor/cursor-run-snapshots.js +120 -0
  89. package/dist/conductor/cursor-run-snapshots.js.map +1 -0
  90. package/dist/conductor/index.d.ts +15 -6
  91. package/dist/conductor/index.d.ts.map +1 -1
  92. package/dist/conductor/index.js +8 -4
  93. package/dist/conductor/index.js.map +1 -1
  94. package/dist/conductor/operator-command.d.ts +1 -1
  95. package/dist/conductor/operator-command.js +1 -1
  96. package/dist/conductor/operator-command.js.map +1 -1
  97. package/dist/conductor/operator-input-binding.d.ts +12 -0
  98. package/dist/conductor/operator-input-binding.d.ts.map +1 -1
  99. package/dist/conductor/pi-auth-recovery-snapshot-store.d.ts +4 -1
  100. package/dist/conductor/pi-auth-recovery-snapshot-store.d.ts.map +1 -1
  101. package/dist/conductor/pi-auth-recovery-snapshot-store.js +4 -1
  102. package/dist/conductor/pi-auth-recovery-snapshot-store.js.map +1 -1
  103. package/dist/conductor/pi-conductor-agent.d.ts +6 -3
  104. package/dist/conductor/pi-conductor-agent.d.ts.map +1 -1
  105. package/dist/conductor/pi-conductor-agent.js +272 -53
  106. package/dist/conductor/pi-conductor-agent.js.map +1 -1
  107. package/dist/conductor/pi-conductor-session-file.d.ts +13 -0
  108. package/dist/conductor/pi-conductor-session-file.d.ts.map +1 -0
  109. package/dist/conductor/pi-conductor-session-file.js +21 -0
  110. package/dist/conductor/pi-conductor-session-file.js.map +1 -0
  111. package/dist/conductor/pi-resource-loader.d.ts +6 -0
  112. package/dist/conductor/pi-resource-loader.d.ts.map +1 -1
  113. package/dist/conductor/pi-resource-loader.js +26 -12
  114. package/dist/conductor/pi-resource-loader.js.map +1 -1
  115. package/dist/conductor/pi-user-root-lock.d.ts +8 -0
  116. package/dist/conductor/pi-user-root-lock.d.ts.map +1 -0
  117. package/dist/conductor/pi-user-root-lock.js +53 -0
  118. package/dist/conductor/pi-user-root-lock.js.map +1 -0
  119. package/dist/conductor/recovery-inbox-command.d.ts +29 -0
  120. package/dist/conductor/recovery-inbox-command.d.ts.map +1 -0
  121. package/dist/conductor/recovery-inbox-command.js +248 -0
  122. package/dist/conductor/recovery-inbox-command.js.map +1 -0
  123. package/dist/conductor/session/events/session-event.d.ts +15 -2
  124. package/dist/conductor/session/events/session-event.d.ts.map +1 -1
  125. package/dist/conductor/session/events/session-log-event-groups.d.ts +1 -1
  126. package/dist/conductor/session/events/session-log-event-groups.d.ts.map +1 -1
  127. package/dist/conductor/session/events/session-log-event-groups.js +1 -0
  128. package/dist/conductor/session/events/session-log-event-groups.js.map +1 -1
  129. package/dist/conductor/session/events/session-log-event.d.ts +4 -0
  130. package/dist/conductor/session/events/session-log-event.d.ts.map +1 -1
  131. package/dist/conductor/session/format-session-event.js +25 -4
  132. package/dist/conductor/session/format-session-event.js.map +1 -1
  133. package/dist/conductor/session/select-dispatch-batch.d.ts +2 -0
  134. package/dist/conductor/session/select-dispatch-batch.d.ts.map +1 -1
  135. package/dist/conductor/session/select-dispatch-batch.js +31 -2
  136. package/dist/conductor/session/select-dispatch-batch.js.map +1 -1
  137. package/dist/conductor/session/session-event-queue.d.ts +5 -0
  138. package/dist/conductor/session/session-event-queue.d.ts.map +1 -1
  139. package/dist/conductor/session/session-event-queue.js +41 -4
  140. package/dist/conductor/session/session-event-queue.js.map +1 -1
  141. package/dist/conductor/session/session-event.d.ts +1 -1
  142. package/dist/conductor/session/session-event.d.ts.map +1 -1
  143. package/dist/conductor/session-policy.d.ts.map +1 -1
  144. package/dist/conductor/session-policy.js +4 -2
  145. package/dist/conductor/session-policy.js.map +1 -1
  146. package/dist/conductor/submit-operator-input.d.ts +3 -0
  147. package/dist/conductor/submit-operator-input.d.ts.map +1 -1
  148. package/dist/conductor/submit-operator-input.js +21 -0
  149. package/dist/conductor/submit-operator-input.js.map +1 -1
  150. package/dist/config/deep-merge.d.ts.map +1 -1
  151. package/dist/config/deep-merge.js +13 -3
  152. package/dist/config/deep-merge.js.map +1 -1
  153. package/dist/config/defaults.d.ts.map +1 -1
  154. package/dist/config/defaults.js +1 -1
  155. package/dist/config/defaults.js.map +1 -1
  156. package/dist/config/doctor-settings.d.ts +59 -0
  157. package/dist/config/doctor-settings.d.ts.map +1 -0
  158. package/dist/config/doctor-settings.js +343 -0
  159. package/dist/config/doctor-settings.js.map +1 -0
  160. package/dist/config/ensemble-config-digest.d.ts +2 -4
  161. package/dist/config/ensemble-config-digest.d.ts.map +1 -1
  162. package/dist/config/ensemble-config-digest.js +2 -4
  163. package/dist/config/ensemble-config-digest.js.map +1 -1
  164. package/dist/config/index.d.ts +3 -1
  165. package/dist/config/index.d.ts.map +1 -1
  166. package/dist/config/index.js +1 -0
  167. package/dist/config/index.js.map +1 -1
  168. package/dist/config/load-ensemble-config.d.ts.map +1 -1
  169. package/dist/config/load-ensemble-config.js +8 -1
  170. package/dist/config/load-ensemble-config.js.map +1 -1
  171. package/dist/config/parse-config.d.ts.map +1 -1
  172. package/dist/config/parse-config.js +34 -14
  173. package/dist/config/parse-config.js.map +1 -1
  174. package/dist/config/resolve-settings.d.ts +3 -1
  175. package/dist/config/resolve-settings.d.ts.map +1 -1
  176. package/dist/config/resolve-settings.js +7 -4
  177. package/dist/config/resolve-settings.js.map +1 -1
  178. package/dist/config/types.d.ts +14 -5
  179. package/dist/config/types.d.ts.map +1 -1
  180. package/dist/dispatch/attach-worker.js +1 -1
  181. package/dist/dispatch/attach-worker.js.map +1 -1
  182. package/dist/dispatch/worker-acp-session.d.ts +21 -3
  183. package/dist/dispatch/worker-acp-session.d.ts.map +1 -1
  184. package/dist/dispatch/worker-acp-session.js +50 -13
  185. package/dist/dispatch/worker-acp-session.js.map +1 -1
  186. package/dist/ensemble-paths.d.ts +19 -19
  187. package/dist/ensemble-paths.d.ts.map +1 -1
  188. package/dist/ensemble-paths.js +40 -22
  189. package/dist/ensemble-paths.js.map +1 -1
  190. package/dist/issue/resolve-issue-url.d.ts +4 -0
  191. package/dist/issue/resolve-issue-url.d.ts.map +1 -1
  192. package/dist/issue/resolve-issue-url.js +2 -2
  193. package/dist/issue/resolve-issue-url.js.map +1 -1
  194. package/dist/operator-runtime.d.ts +17 -4
  195. package/dist/operator-runtime.d.ts.map +1 -1
  196. package/dist/operator-runtime.js +12 -3
  197. package/dist/operator-runtime.js.map +1 -1
  198. package/dist/profile/types.d.ts +4 -0
  199. package/dist/profile/types.d.ts.map +1 -1
  200. package/dist/profile/types.js +29 -12
  201. package/dist/profile/types.js.map +1 -1
  202. package/dist/representation/escape-terminal-control-characters.d.ts +9 -0
  203. package/dist/representation/escape-terminal-control-characters.d.ts.map +1 -0
  204. package/dist/representation/escape-terminal-control-characters.js +34 -0
  205. package/dist/representation/escape-terminal-control-characters.js.map +1 -0
  206. package/dist/representation/index.d.ts +1 -0
  207. package/dist/representation/index.d.ts.map +1 -1
  208. package/dist/representation/index.js +1 -0
  209. package/dist/representation/index.js.map +1 -1
  210. package/dist/runtime/types.d.ts +9 -0
  211. package/dist/runtime/types.d.ts.map +1 -1
  212. package/dist/runtime/worker-runtime.d.ts +14 -1
  213. package/dist/runtime/worker-runtime.d.ts.map +1 -1
  214. package/dist/runtime/worker-runtime.js +197 -50
  215. package/dist/runtime/worker-runtime.js.map +1 -1
  216. package/dist/runtime/worker-session.d.ts +2 -1
  217. package/dist/runtime/worker-session.d.ts.map +1 -1
  218. package/dist/runtime/worker-session.js +1 -0
  219. package/dist/runtime/worker-session.js.map +1 -1
  220. package/dist/session/export-session-bundle.d.ts +77 -0
  221. package/dist/session/export-session-bundle.d.ts.map +1 -0
  222. package/dist/session/export-session-bundle.js +640 -0
  223. package/dist/session/export-session-bundle.js.map +1 -0
  224. package/dist/session/index.d.ts +4 -3
  225. package/dist/session/index.d.ts.map +1 -1
  226. package/dist/session/index.js +2 -1
  227. package/dist/session/index.js.map +1 -1
  228. package/dist/session/open-question-control.d.ts +9 -0
  229. package/dist/session/open-question-control.d.ts.map +1 -1
  230. package/dist/session/open-question-control.js +26 -1
  231. package/dist/session/open-question-control.js.map +1 -1
  232. package/dist/session/open-questions-store.d.ts +1 -1
  233. package/dist/session/open-questions-store.d.ts.map +1 -1
  234. package/dist/session/open-questions-store.js +3 -6
  235. package/dist/session/open-questions-store.js.map +1 -1
  236. package/dist/session/persisted-file.d.ts +5 -0
  237. package/dist/session/persisted-file.d.ts.map +1 -0
  238. package/dist/session/persisted-file.js +56 -0
  239. package/dist/session/persisted-file.js.map +1 -0
  240. package/dist/session/session-resume-store.d.ts +77 -10
  241. package/dist/session/session-resume-store.d.ts.map +1 -1
  242. package/dist/session/session-resume-store.js +346 -83
  243. package/dist/session/session-resume-store.js.map +1 -1
  244. package/dist/session/session-snapshot-paths.d.ts +7 -1
  245. package/dist/session/session-snapshot-paths.d.ts.map +1 -1
  246. package/dist/session/session-snapshot-paths.js +29 -26
  247. package/dist/session/session-snapshot-paths.js.map +1 -1
  248. package/dist/session/session-state-store.d.ts +2 -2
  249. package/dist/session/session-state-store.d.ts.map +1 -1
  250. package/dist/session/session-state-store.js +5 -16
  251. package/dist/session/session-state-store.js.map +1 -1
  252. package/dist/session/tool-call-snapshot-history.d.ts +12 -1
  253. package/dist/session/tool-call-snapshot-history.d.ts.map +1 -1
  254. package/dist/session/tool-call-snapshot-history.js +75 -70
  255. package/dist/session/tool-call-snapshot-history.js.map +1 -1
  256. package/dist/session/worker-session-history.d.ts +13 -1
  257. package/dist/session/worker-session-history.d.ts.map +1 -1
  258. package/dist/session/worker-session-history.js +171 -50
  259. package/dist/session/worker-session-history.js.map +1 -1
  260. package/dist/workspace/index.d.ts +1 -1
  261. package/dist/workspace/index.d.ts.map +1 -1
  262. package/dist/worktree/worktree.d.ts +6 -1
  263. package/dist/worktree/worktree.d.ts.map +1 -1
  264. package/dist/worktree/worktree.js +123 -2
  265. package/dist/worktree/worktree.js.map +1 -1
  266. package/package.json +9 -4
@@ -1,39 +1,89 @@
1
1
  import { isConductorSendAuthError } from './conductor-auth.js';
2
- // resume に失敗した時点で旧 agent は close 済み。次の operator reconnect では
3
- // 同じ handle を再度 close せず、resume を再試行する。
4
- const closedForReconnect = new WeakSet();
5
- /** close → factory.resume(sameId) で in-process の agent を差し替える。 */
2
+ const conductorClosePromises = new WeakMap();
3
+ /**
4
+ * Share one close attempt between reconnect and session teardown.
5
+ *
6
+ * A failed reconnect leaves the old agent in the handle after its close was
7
+ * attempted. Reusing the same promise prevents a finalizer from invoking close
8
+ * a second time, including while the first close is pending.
9
+ */
10
+ export function closeConductorAgentOnce(agent, options = {}) {
11
+ const existing = conductorClosePromises.get(agent);
12
+ if (existing)
13
+ return existing;
14
+ const closePromise = Promise.resolve().then(() => {
15
+ const close = options.forResume && agent.closeForResume
16
+ ? agent.closeForResume
17
+ : agent.close;
18
+ return close.call(agent);
19
+ });
20
+ conductorClosePromises.set(agent, closePromise);
21
+ return closePromise;
22
+ }
23
+ /**
24
+ * close → factory.resume(sameId) で in-process の agent を差し替える。
25
+ * automatic reconnect は close reject で停止する。operator の明示操作である
26
+ * manual reconnect は、close が reject しても同じ ID の resume を試みる。
27
+ */
6
28
  export async function reconnectConductorAgent(handle, options) {
7
29
  const agentId = handle.conductor.agentId;
8
- options.onReconnectAttempt?.({ agentId });
30
+ const source = options.source ?? 'manual';
31
+ throwIfReconnectAborted(options.signal);
32
+ options.onReconnectAttempt?.({ agentId, source });
9
33
  let conductorOptions;
10
34
  const conductorAgentFactory = options.conductorAgentFactory;
11
35
  if ('conductorOptions' in options) {
12
36
  conductorOptions = options.conductorOptions;
13
37
  }
14
38
  else {
15
- const { onReconnectAttempt, onReconnectComplete, conductorAgentFactory: _conductorAgentFactory, ...sdkOptions } = options;
39
+ const { onReconnectAttempt, onReconnectComplete, source: _source, signal: _signal, conductorAgentFactory: _conductorAgentFactory, ...sdkOptions } = options;
16
40
  void onReconnectAttempt;
17
41
  void onReconnectComplete;
42
+ void _source;
43
+ void _signal;
18
44
  void _conductorAgentFactory;
19
45
  conductorOptions = sdkOptions;
20
46
  }
47
+ let closeFailed = false;
21
48
  try {
22
- if (!closedForReconnect.has(handle)) {
23
- await handle.conductor.close();
24
- closedForReconnect.add(handle);
49
+ try {
50
+ await closeConductorAgentOnce(handle.conductor);
51
+ }
52
+ catch (error) {
53
+ closeFailed = true;
54
+ if (source === 'automatic') {
55
+ throw error;
56
+ }
57
+ // Manual reconnect is the operator's explicit decision to replace the
58
+ // unavailable handle. The settled close attempt is not repeated because
59
+ // backend cleanup may not be idempotent.
25
60
  }
26
- handle.conductor = await conductorAgentFactory.resume(agentId, conductorOptions);
27
- closedForReconnect.delete(handle);
28
- options.onReconnectComplete?.({ agentId, success: true });
61
+ throwIfReconnectAborted(options.signal);
62
+ const resumedAgent = await conductorAgentFactory.resume(agentId, conductorOptions);
63
+ if (options.signal?.aborted) {
64
+ await closeConductorAgentOnce(resumedAgent);
65
+ throwIfReconnectAborted(options.signal);
66
+ }
67
+ handle.conductor = resumedAgent;
68
+ options.onReconnectComplete?.({
69
+ agentId,
70
+ success: true,
71
+ source,
72
+ ...(closeFailed ? { closeFailed: true } : {}),
73
+ });
29
74
  return agentId;
30
75
  }
31
76
  catch (error) {
77
+ if (options.signal?.aborted) {
78
+ throw error;
79
+ }
32
80
  const message = formatReconnectError(error);
33
81
  options.onReconnectComplete?.({
34
82
  agentId,
35
83
  success: false,
84
+ source,
36
85
  error: message,
86
+ ...(closeFailed ? { closeFailed: true } : {}),
37
87
  });
38
88
  throw error;
39
89
  }
@@ -51,16 +101,11 @@ export function isConductorSendTransportError(result) {
51
101
  }
52
102
  /**
53
103
  * send 経路の auth/transport error 時に同一 agentId で in-process 再接続する。
54
- * tool 開始通知がなければ同じ prompt を 1 回だけ再試行する。tool が始まっていた場合は
55
- * 副作用の重複を避けて再送せず、元の error 結果を返す。
104
+ * send 結果だけでは request 未受理を証明できないため、prompt は再送しない。
56
105
  */
57
106
  export async function sendConductorWithReconnect(handle, message, options) {
58
- let toolCallStarted = false;
59
107
  const sendCallbacks = {
60
- onToolCallStarted: (info) => {
61
- toolCallStarted = true;
62
- options.onToolCallStarted?.(info);
63
- },
108
+ onToolCallStarted: options.onToolCallStarted,
64
109
  history: options.history,
65
110
  };
66
111
  const result = await handle.conductor.send(message, sendCallbacks);
@@ -69,15 +114,19 @@ export async function sendConductorWithReconnect(handle, message, options) {
69
114
  : isConductorSendTransportError(result)
70
115
  ? 'transport'
71
116
  : undefined;
117
+ const reconnectSignal = options.signal && options.retrySuppressionSignal
118
+ ? AbortSignal.any([options.signal, options.retrySuppressionSignal])
119
+ : options.signal ?? options.retrySuppressionSignal;
72
120
  if (!reconnectReason ||
73
- options.signal?.aborted ||
74
- options.retrySuppressionSignal?.aborted) {
121
+ reconnectSignal?.aborted) {
75
122
  return result;
76
123
  }
77
124
  try {
78
125
  await reconnectConductorAgent(handle, {
79
126
  conductorAgentFactory: options.conductorAgentFactory,
80
127
  conductorOptions: options.conductorOptions,
128
+ source: 'automatic',
129
+ signal: reconnectSignal,
81
130
  onReconnectAttempt: resolveReconnectAttempt(options, reconnectReason),
82
131
  onReconnectComplete: resolveReconnectComplete(options, reconnectReason),
83
132
  });
@@ -85,28 +134,28 @@ export async function sendConductorWithReconnect(handle, message, options) {
85
134
  catch {
86
135
  return result;
87
136
  }
88
- if (options.signal?.aborted ||
89
- options.retrySuppressionSignal?.aborted ||
90
- toolCallStarted) {
91
- return result;
92
- }
93
- options.onAutomaticRetry?.({
94
- attempt: 1,
95
- reason: reconnectReason,
96
- });
97
- return handle.conductor.send(message, sendCallbacks);
137
+ return result;
138
+ }
139
+ function throwIfReconnectAborted(signal) {
140
+ if (!signal?.aborted)
141
+ return;
142
+ if (signal.reason !== undefined)
143
+ throw signal.reason;
144
+ const error = new Error('Conductor reconnect was aborted.');
145
+ error.name = 'AbortError';
146
+ throw error;
98
147
  }
99
148
  function resolveReconnectAttempt(options, reason) {
100
- if (reason === 'auth') {
101
- return options.onAuthReconnectAttempt ?? options.onReconnectAttempt;
102
- }
103
- return options.onTransportReconnectAttempt ?? options.onReconnectAttempt;
149
+ const callback = reason === 'auth'
150
+ ? options.onAuthReconnectAttempt ?? options.onReconnectAttempt
151
+ : options.onTransportReconnectAttempt ?? options.onReconnectAttempt;
152
+ return callback;
104
153
  }
105
154
  function resolveReconnectComplete(options, reason) {
106
- if (reason === 'auth') {
107
- return options.onAuthReconnectComplete;
108
- }
109
- return options.onTransportReconnectComplete;
155
+ const callback = reason === 'auth'
156
+ ? options.onAuthReconnectComplete
157
+ : options.onTransportReconnectComplete;
158
+ return callback;
110
159
  }
111
160
  function normalizeTransportSignal(signal) {
112
161
  return signal.toLowerCase().replace(/[_-]+/g, ' ');
@@ -1 +1 @@
1
- {"version":3,"file":"conductor-send-reconnect.js","sourceRoot":"","sources":["../../src/conductor/conductor-send-reconnect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conductor-send-reconnect.js","sourceRoot":"","sources":["../../src/conductor/conductor-send-reconnect.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,11 @@ import type { PermissionPipeline } from '../permission/permission-pipeline.js';
5
5
  import type { WorkerFailureRecord } from '../runtime/types.js';
6
6
  import type { WorkerSession } from '../runtime/worker-session.js';
7
7
  import type { ConductorSendResult } from './conductor-agent.js';
8
- import type { PiAuthRecoverySnapshotStore, PiAuthRecoverySnapshotSummary } from './pi-auth-recovery-snapshot-store.js';
8
+ import { ConductorDispatchLifecycle } from './conductor-dispatch-lifecycle.js';
9
+ import { ConductorRecoveryInbox } from './conductor-recovery-inbox.js';
10
+ import type { ConductorRecoveryBackend, ConductorRecoveryFailureClass, ConductorRecoverySnapshotSummary } from './conductor-recovery-inbox.js';
9
11
  import type { ConductorAgentHandle, ConductorSendReconnectOptions } from './conductor-send-reconnect.js';
12
+ import type { CursorBootstrapState } from './cursor-bootstrap-state.js';
10
13
  import { SessionEventQueue } from './session/session-event-queue.js';
11
14
  import type { SessionEvent } from './session/session-event.js';
12
15
  import { type DispatchHoldChange, type DispatchHoldState } from './session/dispatch-hold.js';
@@ -34,6 +37,8 @@ export interface ConductorSendCompleteInfo {
34
37
  status: ConductorSendResult['status'];
35
38
  /** Exact user message passed to this agent.send. */
36
39
  inbound: string;
40
+ /** User event text to retain locally when `inbound` also restores Cursor bootstrap context. */
41
+ historyInbound?: string;
37
42
  dispatchSource?: string;
38
43
  /** GitHub update IDs included in this send; used to acknowledge the durable outbox. */
39
44
  githubUpdateIds?: string[];
@@ -90,6 +95,10 @@ export interface ConductorSessionDriverOptions {
90
95
  resumeStore?: Pick<ConductorSessionDriverResult, 'sendCount' | 'autonomousTurns' | 'lastSendResult'> & {
91
96
  lastDispatchesThisTurn: number;
92
97
  };
98
+ /** Cursor の compiled prompt が既存 provider session に bootstrap 済みか。 */
99
+ cursorBootstrapComplete?: boolean;
100
+ /** Cursor resume 中の未知状態を operator が解決するまで dispatch を止める。 */
101
+ cursorBootstrapState?: CursorBootstrapState;
93
102
  /** conductor send 中だけ有効な dispatch 保留状態。SessionResumeStore には保存しない。 */
94
103
  dispatchHoldState?: DispatchHoldState;
95
104
  /** dispatch 保留の切替・件数変化を TUI/観測へ通知する。 */
@@ -98,13 +107,29 @@ export interface ConductorSessionDriverOptions {
98
107
  resetOutboundDispatchesThisSend?: () => void;
99
108
  /** `prompt_worker` 等の outbound dispatch 件数(ループ停止判定向け)。 */
100
109
  getOutboundDispatchesThisSend?: () => number;
101
- /** Failed dispatch の本文を operator-only の process 内 snapshot に保存する。 */
102
- piAuthRecoverySnapshotStore?: PiAuthRecoverySnapshotStore;
103
- /** Snapshot の保存・上限 eviction を本文なしで通知する。 */
104
- onPiAuthRecoverySnapshotStored?: (input: {
105
- snapshot: PiAuthRecoverySnapshotSummary;
106
- evictedRecoveryIds: string[];
110
+ /** Process-local, operator-only storage for failed operator-authored input. */
111
+ recoveryInbox?: ConductorRecoveryInbox;
112
+ recoveryBackend?: ConductorRecoveryBackend;
113
+ /** Shared with the local operator binding so `/recovery continue` releases the same gate. */
114
+ dispatchLifecycle?: ConductorDispatchLifecycle<ConductorDispatchPayload>;
115
+ /** Sensitive recovery inspection is available through an interactive TTY binding. */
116
+ operatorCanInspectRecovery?: boolean;
117
+ onRecoveryAttention?: (input: {
118
+ attemptId: string;
119
+ sourceKey: string;
120
+ status: string;
121
+ failureClass: ConductorRecoveryFailureClass;
122
+ confirmationRequired: boolean;
123
+ pendingOperatorMessageCount: number;
124
+ snapshot?: ConductorRecoverySnapshotSummary;
125
+ agentAvailable: boolean;
107
126
  }) => void;
127
+ onRecoveryCapacityBlocked?: () => void;
128
+ }
129
+ export interface ConductorDispatchPayload {
130
+ events: SessionEvent[];
131
+ sourceKey: string;
132
+ operatorInputTexts: string[];
108
133
  }
109
134
  export interface ConductorSessionDriverResult {
110
135
  stopReason: IssueLoopStopReason;
@@ -1 +1 @@
1
- {"version":3,"file":"conductor-session-driver.d.ts","sourceRoot":"","sources":["../../src/conductor/conductor-session-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conductor-session-driver.d.ts","sourceRoot":"","sources":["../../src/conductor/conductor-session-driver.ts"],"names":[],"mappings":"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"}