@agents-ensemble/core 0.20.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.
- package/assets/pi/pi-cli-env-wrapper.cmd +28 -0
- package/assets/pi/pi-cli-env-wrapper.sh +19 -0
- package/assets/pi/settings.json +4 -0
- package/dist/acp/acp-preset-bins.d.ts +3 -3
- package/dist/acp/acp-preset-bins.d.ts.map +1 -1
- package/dist/acp/acp-preset-bins.js +3 -3
- package/dist/acp/acp-preset-bins.js.map +1 -1
- package/dist/acp/index.d.ts +3 -1
- package/dist/acp/index.d.ts.map +1 -1
- package/dist/acp/index.js +2 -1
- package/dist/acp/index.js.map +1 -1
- package/dist/acp/pi-acp-wrapper.d.ts +3 -0
- package/dist/acp/pi-acp-wrapper.d.ts.map +1 -0
- package/dist/acp/pi-acp-wrapper.js +41 -0
- package/dist/acp/pi-acp-wrapper.js.map +1 -0
- package/dist/acp/pi-builtin-config.d.ts +10 -0
- package/dist/acp/pi-builtin-config.d.ts.map +1 -0
- package/dist/acp/pi-builtin-config.js +36 -0
- package/dist/acp/pi-builtin-config.js.map +1 -0
- package/dist/acp/pi-runtime.d.ts +23 -0
- package/dist/acp/pi-runtime.d.ts.map +1 -0
- package/dist/acp/pi-runtime.js +160 -0
- package/dist/acp/pi-runtime.js.map +1 -0
- package/dist/acp/pi-session-map.d.ts +36 -0
- package/dist/acp/pi-session-map.d.ts.map +1 -0
- package/dist/acp/pi-session-map.js +266 -0
- package/dist/acp/pi-session-map.js.map +1 -0
- package/dist/acp/resolve-acp-spawn.d.ts +9 -3
- package/dist/acp/resolve-acp-spawn.d.ts.map +1 -1
- package/dist/acp/resolve-acp-spawn.js +41 -9
- package/dist/acp/resolve-acp-spawn.js.map +1 -1
- package/dist/acp/resolve-bundled-acp-bin.d.ts +2 -2
- package/dist/acp/resolve-bundled-acp-bin.d.ts.map +1 -1
- package/dist/acp/resolve-bundled-acp-bin.js +4 -4
- package/dist/acp/resolve-bundled-acp-bin.js.map +1 -1
- package/dist/acp/validate-acp-preset-prerequisites.d.ts +1 -1
- package/dist/acp/validate-acp-preset-prerequisites.d.ts.map +1 -1
- package/dist/acp/validate-acp-preset-prerequisites.js +30 -10
- package/dist/acp/validate-acp-preset-prerequisites.js.map +1 -1
- package/dist/conductor/conductor-agent.d.ts +15 -3
- package/dist/conductor/conductor-agent.d.ts.map +1 -1
- package/dist/conductor/conductor-auth.d.ts +4 -3
- package/dist/conductor/conductor-auth.d.ts.map +1 -1
- package/dist/conductor/conductor-auth.js +20 -4
- package/dist/conductor/conductor-auth.js.map +1 -1
- package/dist/conductor/conductor-dispatch-lifecycle.d.ts +85 -0
- package/dist/conductor/conductor-dispatch-lifecycle.d.ts.map +1 -0
- package/dist/conductor/conductor-dispatch-lifecycle.js +190 -0
- package/dist/conductor/conductor-dispatch-lifecycle.js.map +1 -0
- package/dist/conductor/conductor-history.d.ts +15 -0
- package/dist/conductor/conductor-history.d.ts.map +1 -1
- package/dist/conductor/conductor-history.js +38 -7
- package/dist/conductor/conductor-history.js.map +1 -1
- package/dist/conductor/conductor-path-safety.d.ts +23 -0
- package/dist/conductor/conductor-path-safety.d.ts.map +1 -0
- package/dist/conductor/conductor-path-safety.js +319 -0
- package/dist/conductor/conductor-path-safety.js.map +1 -0
- package/dist/conductor/conductor-pi-auth.d.ts +57 -2
- package/dist/conductor/conductor-pi-auth.d.ts.map +1 -1
- package/dist/conductor/conductor-pi-auth.js +718 -40
- package/dist/conductor/conductor-pi-auth.js.map +1 -1
- package/dist/conductor/conductor-recovery-inbox.d.ts +73 -0
- package/dist/conductor/conductor-recovery-inbox.d.ts.map +1 -0
- package/dist/conductor/conductor-recovery-inbox.js +181 -0
- package/dist/conductor/conductor-recovery-inbox.js.map +1 -0
- package/dist/conductor/conductor-send-reconnect.d.ts +33 -4
- package/dist/conductor/conductor-send-reconnect.d.ts.map +1 -1
- package/dist/conductor/conductor-send-reconnect.js +89 -24
- package/dist/conductor/conductor-send-reconnect.js.map +1 -1
- package/dist/conductor/conductor-session-driver.d.ts +34 -1
- package/dist/conductor/conductor-session-driver.d.ts.map +1 -1
- package/dist/conductor/conductor-session-driver.js +529 -75
- package/dist/conductor/conductor-session-driver.js.map +1 -1
- package/dist/conductor/conductor-session.d.ts +4 -0
- package/dist/conductor/conductor-session.d.ts.map +1 -1
- package/dist/conductor/conductor-session.js +416 -145
- package/dist/conductor/conductor-session.js.map +1 -1
- package/dist/conductor/conductor-setup.d.ts +30 -0
- package/dist/conductor/conductor-setup.d.ts.map +1 -0
- package/dist/conductor/conductor-setup.js +243 -0
- package/dist/conductor/conductor-setup.js.map +1 -0
- package/dist/conductor/cursor-bootstrap-state.d.ts +9 -0
- package/dist/conductor/cursor-bootstrap-state.d.ts.map +1 -0
- package/dist/conductor/cursor-bootstrap-state.js +11 -0
- package/dist/conductor/cursor-bootstrap-state.js.map +1 -0
- package/dist/conductor/cursor-run-snapshots.d.ts +30 -0
- package/dist/conductor/cursor-run-snapshots.d.ts.map +1 -0
- package/dist/conductor/cursor-run-snapshots.js +120 -0
- package/dist/conductor/cursor-run-snapshots.js.map +1 -0
- package/dist/conductor/index.d.ts +18 -7
- package/dist/conductor/index.d.ts.map +1 -1
- package/dist/conductor/index.js +9 -4
- package/dist/conductor/index.js.map +1 -1
- package/dist/conductor/operator-command.d.ts +5 -0
- package/dist/conductor/operator-command.d.ts.map +1 -1
- package/dist/conductor/operator-command.js +6 -0
- package/dist/conductor/operator-command.js.map +1 -1
- package/dist/conductor/operator-input-binding.d.ts +17 -0
- package/dist/conductor/operator-input-binding.d.ts.map +1 -1
- package/dist/conductor/pi-auth-recovery-snapshot-store.d.ts +45 -0
- package/dist/conductor/pi-auth-recovery-snapshot-store.d.ts.map +1 -0
- package/dist/conductor/pi-auth-recovery-snapshot-store.js +116 -0
- package/dist/conductor/pi-auth-recovery-snapshot-store.js.map +1 -0
- package/dist/conductor/pi-conductor-agent.d.ts +6 -3
- package/dist/conductor/pi-conductor-agent.d.ts.map +1 -1
- package/dist/conductor/pi-conductor-agent.js +276 -53
- package/dist/conductor/pi-conductor-agent.js.map +1 -1
- package/dist/conductor/pi-conductor-session-file.d.ts +13 -0
- package/dist/conductor/pi-conductor-session-file.d.ts.map +1 -0
- package/dist/conductor/pi-conductor-session-file.js +21 -0
- package/dist/conductor/pi-conductor-session-file.js.map +1 -0
- package/dist/conductor/pi-resource-loader.d.ts +6 -0
- package/dist/conductor/pi-resource-loader.d.ts.map +1 -1
- package/dist/conductor/pi-resource-loader.js +26 -12
- package/dist/conductor/pi-resource-loader.js.map +1 -1
- package/dist/conductor/pi-user-root-lock.d.ts +8 -0
- package/dist/conductor/pi-user-root-lock.d.ts.map +1 -0
- package/dist/conductor/pi-user-root-lock.js +53 -0
- package/dist/conductor/pi-user-root-lock.js.map +1 -0
- package/dist/conductor/recovery-inbox-command.d.ts +29 -0
- package/dist/conductor/recovery-inbox-command.d.ts.map +1 -0
- package/dist/conductor/recovery-inbox-command.js +248 -0
- package/dist/conductor/recovery-inbox-command.js.map +1 -0
- package/dist/conductor/session/events/index.d.ts +1 -1
- package/dist/conductor/session/events/index.d.ts.map +1 -1
- package/dist/conductor/session/events/index.js.map +1 -1
- package/dist/conductor/session/events/session-event.d.ts +43 -1
- package/dist/conductor/session/events/session-event.d.ts.map +1 -1
- package/dist/conductor/session/events/session-log-event-groups.d.ts +1 -1
- package/dist/conductor/session/events/session-log-event-groups.d.ts.map +1 -1
- package/dist/conductor/session/events/session-log-event-groups.js +2 -0
- package/dist/conductor/session/events/session-log-event-groups.js.map +1 -1
- package/dist/conductor/session/events/session-log-event.d.ts +4 -0
- package/dist/conductor/session/events/session-log-event.d.ts.map +1 -1
- package/dist/conductor/session/format-session-event.js +57 -5
- package/dist/conductor/session/format-session-event.js.map +1 -1
- package/dist/conductor/session/select-dispatch-batch.d.ts +2 -0
- package/dist/conductor/session/select-dispatch-batch.d.ts.map +1 -1
- package/dist/conductor/session/select-dispatch-batch.js +36 -2
- package/dist/conductor/session/select-dispatch-batch.js.map +1 -1
- package/dist/conductor/session/session-event-queue.d.ts +14 -0
- package/dist/conductor/session/session-event-queue.d.ts.map +1 -1
- package/dist/conductor/session/session-event-queue.js +82 -10
- package/dist/conductor/session/session-event-queue.js.map +1 -1
- package/dist/conductor/session/session-event.d.ts +1 -1
- package/dist/conductor/session/session-event.d.ts.map +1 -1
- package/dist/conductor/session-policy.d.ts.map +1 -1
- package/dist/conductor/session-policy.js +8 -4
- package/dist/conductor/session-policy.js.map +1 -1
- package/dist/conductor/submit-operator-input.d.ts +3 -0
- package/dist/conductor/submit-operator-input.d.ts.map +1 -1
- package/dist/conductor/submit-operator-input.js +21 -0
- package/dist/conductor/submit-operator-input.js.map +1 -1
- package/dist/config/deep-merge.d.ts.map +1 -1
- package/dist/config/deep-merge.js +13 -3
- package/dist/config/deep-merge.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/doctor-settings.d.ts +59 -0
- package/dist/config/doctor-settings.d.ts.map +1 -0
- package/dist/config/doctor-settings.js +343 -0
- package/dist/config/doctor-settings.js.map +1 -0
- package/dist/config/ensemble-config-digest.d.ts +2 -4
- package/dist/config/ensemble-config-digest.d.ts.map +1 -1
- package/dist/config/ensemble-config-digest.js +2 -4
- package/dist/config/ensemble-config-digest.js.map +1 -1
- package/dist/config/index.d.ts +3 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/load-ensemble-config.d.ts.map +1 -1
- package/dist/config/load-ensemble-config.js +8 -1
- package/dist/config/load-ensemble-config.js.map +1 -1
- package/dist/config/parse-config.d.ts.map +1 -1
- package/dist/config/parse-config.js +34 -14
- package/dist/config/parse-config.js.map +1 -1
- package/dist/config/resolve-settings.d.ts +3 -1
- package/dist/config/resolve-settings.d.ts.map +1 -1
- package/dist/config/resolve-settings.js +7 -4
- package/dist/config/resolve-settings.js.map +1 -1
- package/dist/config/types.d.ts +14 -5
- package/dist/config/types.d.ts.map +1 -1
- package/dist/dispatch/attach-worker.js +1 -1
- package/dist/dispatch/attach-worker.js.map +1 -1
- package/dist/dispatch/worker-acp-session.d.ts +21 -3
- package/dist/dispatch/worker-acp-session.d.ts.map +1 -1
- package/dist/dispatch/worker-acp-session.js +50 -13
- package/dist/dispatch/worker-acp-session.js.map +1 -1
- package/dist/ensemble-paths.d.ts +19 -19
- package/dist/ensemble-paths.d.ts.map +1 -1
- package/dist/ensemble-paths.js +40 -22
- package/dist/ensemble-paths.js.map +1 -1
- package/dist/issue/resolve-issue-url.d.ts +4 -0
- package/dist/issue/resolve-issue-url.d.ts.map +1 -1
- package/dist/issue/resolve-issue-url.js +2 -2
- package/dist/issue/resolve-issue-url.js.map +1 -1
- package/dist/operator-runtime.d.ts +19 -4
- package/dist/operator-runtime.d.ts.map +1 -1
- package/dist/operator-runtime.js +13 -2
- package/dist/operator-runtime.js.map +1 -1
- package/dist/profile/types.d.ts +4 -0
- package/dist/profile/types.d.ts.map +1 -1
- package/dist/profile/types.js +29 -12
- package/dist/profile/types.js.map +1 -1
- package/dist/representation/escape-terminal-control-characters.d.ts +9 -0
- package/dist/representation/escape-terminal-control-characters.d.ts.map +1 -0
- package/dist/representation/escape-terminal-control-characters.js +34 -0
- package/dist/representation/escape-terminal-control-characters.js.map +1 -0
- package/dist/representation/index.d.ts +1 -0
- package/dist/representation/index.d.ts.map +1 -1
- package/dist/representation/index.js +1 -0
- package/dist/representation/index.js.map +1 -1
- package/dist/runtime/types.d.ts +9 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/worker-runtime.d.ts +14 -1
- package/dist/runtime/worker-runtime.d.ts.map +1 -1
- package/dist/runtime/worker-runtime.js +197 -50
- package/dist/runtime/worker-runtime.js.map +1 -1
- package/dist/runtime/worker-session.d.ts +2 -1
- package/dist/runtime/worker-session.d.ts.map +1 -1
- package/dist/runtime/worker-session.js +1 -0
- package/dist/runtime/worker-session.js.map +1 -1
- package/dist/session/export-session-bundle.d.ts +77 -0
- package/dist/session/export-session-bundle.d.ts.map +1 -0
- package/dist/session/export-session-bundle.js +640 -0
- package/dist/session/export-session-bundle.js.map +1 -0
- package/dist/session/index.d.ts +6 -3
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +4 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/open-question-control.d.ts +9 -0
- package/dist/session/open-question-control.d.ts.map +1 -1
- package/dist/session/open-question-control.js +26 -1
- package/dist/session/open-question-control.js.map +1 -1
- package/dist/session/open-questions-store.d.ts +1 -1
- package/dist/session/open-questions-store.d.ts.map +1 -1
- package/dist/session/open-questions-store.js +3 -6
- package/dist/session/open-questions-store.js.map +1 -1
- package/dist/session/persisted-file.d.ts +5 -0
- package/dist/session/persisted-file.d.ts.map +1 -0
- package/dist/session/persisted-file.js +56 -0
- package/dist/session/persisted-file.js.map +1 -0
- package/dist/session/session-resume-store.d.ts +79 -10
- package/dist/session/session-resume-store.d.ts.map +1 -1
- package/dist/session/session-resume-store.js +353 -83
- package/dist/session/session-resume-store.js.map +1 -1
- package/dist/session/session-snapshot-paths.d.ts +11 -0
- package/dist/session/session-snapshot-paths.d.ts.map +1 -0
- package/dist/session/session-snapshot-paths.js +41 -0
- package/dist/session/session-snapshot-paths.js.map +1 -0
- package/dist/session/session-state-store.d.ts +2 -2
- package/dist/session/session-state-store.d.ts.map +1 -1
- package/dist/session/session-state-store.js +5 -16
- package/dist/session/session-state-store.js.map +1 -1
- package/dist/session/tool-call-snapshot-history.d.ts +12 -1
- package/dist/session/tool-call-snapshot-history.d.ts.map +1 -1
- package/dist/session/tool-call-snapshot-history.js +75 -70
- package/dist/session/tool-call-snapshot-history.js.map +1 -1
- package/dist/session/worker-session-history.d.ts +51 -0
- package/dist/session/worker-session-history.d.ts.map +1 -0
- package/dist/session/worker-session-history.js +654 -0
- package/dist/session/worker-session-history.js.map +1 -0
- package/dist/workspace/index.d.ts +1 -1
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/worktree/worktree.d.ts +6 -1
- package/dist/worktree/worktree.d.ts.map +1 -1
- package/dist/worktree/worktree.js +123 -2
- package/dist/worktree/worktree.js.map +1 -1
- package/package.json +9 -4
|
@@ -1,32 +1,89 @@
|
|
|
1
1
|
import { isConductorSendAuthError } from './conductor-auth.js';
|
|
2
|
-
|
|
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
|
+
*/
|
|
3
28
|
export async function reconnectConductorAgent(handle, options) {
|
|
4
29
|
const agentId = handle.conductor.agentId;
|
|
5
|
-
options.
|
|
30
|
+
const source = options.source ?? 'manual';
|
|
31
|
+
throwIfReconnectAborted(options.signal);
|
|
32
|
+
options.onReconnectAttempt?.({ agentId, source });
|
|
6
33
|
let conductorOptions;
|
|
7
34
|
const conductorAgentFactory = options.conductorAgentFactory;
|
|
8
35
|
if ('conductorOptions' in options) {
|
|
9
36
|
conductorOptions = options.conductorOptions;
|
|
10
37
|
}
|
|
11
38
|
else {
|
|
12
|
-
const { onReconnectAttempt, onReconnectComplete, conductorAgentFactory: _conductorAgentFactory, ...sdkOptions } = options;
|
|
39
|
+
const { onReconnectAttempt, onReconnectComplete, source: _source, signal: _signal, conductorAgentFactory: _conductorAgentFactory, ...sdkOptions } = options;
|
|
13
40
|
void onReconnectAttempt;
|
|
14
41
|
void onReconnectComplete;
|
|
42
|
+
void _source;
|
|
43
|
+
void _signal;
|
|
15
44
|
void _conductorAgentFactory;
|
|
16
45
|
conductorOptions = sdkOptions;
|
|
17
46
|
}
|
|
47
|
+
let closeFailed = false;
|
|
18
48
|
try {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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.
|
|
60
|
+
}
|
|
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
|
+
});
|
|
22
74
|
return agentId;
|
|
23
75
|
}
|
|
24
76
|
catch (error) {
|
|
77
|
+
if (options.signal?.aborted) {
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
25
80
|
const message = formatReconnectError(error);
|
|
26
81
|
options.onReconnectComplete?.({
|
|
27
82
|
agentId,
|
|
28
83
|
success: false,
|
|
84
|
+
source,
|
|
29
85
|
error: message,
|
|
86
|
+
...(closeFailed ? { closeFailed: true } : {}),
|
|
30
87
|
});
|
|
31
88
|
throw error;
|
|
32
89
|
}
|
|
@@ -43,9 +100,8 @@ export function isConductorSendTransportError(result) {
|
|
|
43
100
|
return /connection stalled(?: repeatedly)?|network error|transport error|socket error|connection (?:reset|refused|closed|timed out)|(?:request|operation) timed out|deadline exceeded|service unavailable|retriableerror|econnreset|econnrefused|etimedout|enetunreach|eai again/.test(signal);
|
|
44
101
|
}
|
|
45
102
|
/**
|
|
46
|
-
* send 経路の auth/transport error 時に同一 agentId で in-process
|
|
47
|
-
*
|
|
48
|
-
* error 結果を返し、呼び出し元の continueOnConductorError 契約を維持する。
|
|
103
|
+
* send 経路の auth/transport error 時に同一 agentId で in-process 再接続する。
|
|
104
|
+
* send 結果だけでは request 未受理を証明できないため、prompt は再送しない。
|
|
49
105
|
*/
|
|
50
106
|
export async function sendConductorWithReconnect(handle, message, options) {
|
|
51
107
|
const sendCallbacks = {
|
|
@@ -58,15 +114,19 @@ export async function sendConductorWithReconnect(handle, message, options) {
|
|
|
58
114
|
: isConductorSendTransportError(result)
|
|
59
115
|
? 'transport'
|
|
60
116
|
: undefined;
|
|
117
|
+
const reconnectSignal = options.signal && options.retrySuppressionSignal
|
|
118
|
+
? AbortSignal.any([options.signal, options.retrySuppressionSignal])
|
|
119
|
+
: options.signal ?? options.retrySuppressionSignal;
|
|
61
120
|
if (!reconnectReason ||
|
|
62
|
-
|
|
63
|
-
options.retrySuppressionSignal?.aborted) {
|
|
121
|
+
reconnectSignal?.aborted) {
|
|
64
122
|
return result;
|
|
65
123
|
}
|
|
66
124
|
try {
|
|
67
125
|
await reconnectConductorAgent(handle, {
|
|
68
126
|
conductorAgentFactory: options.conductorAgentFactory,
|
|
69
127
|
conductorOptions: options.conductorOptions,
|
|
128
|
+
source: 'automatic',
|
|
129
|
+
signal: reconnectSignal,
|
|
70
130
|
onReconnectAttempt: resolveReconnectAttempt(options, reconnectReason),
|
|
71
131
|
onReconnectComplete: resolveReconnectComplete(options, reconnectReason),
|
|
72
132
|
});
|
|
@@ -74,23 +134,28 @@ export async function sendConductorWithReconnect(handle, message, options) {
|
|
|
74
134
|
catch {
|
|
75
135
|
return result;
|
|
76
136
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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;
|
|
82
147
|
}
|
|
83
148
|
function resolveReconnectAttempt(options, reason) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return
|
|
149
|
+
const callback = reason === 'auth'
|
|
150
|
+
? options.onAuthReconnectAttempt ?? options.onReconnectAttempt
|
|
151
|
+
: options.onTransportReconnectAttempt ?? options.onReconnectAttempt;
|
|
152
|
+
return callback;
|
|
88
153
|
}
|
|
89
154
|
function resolveReconnectComplete(options, reason) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return
|
|
155
|
+
const callback = reason === 'auth'
|
|
156
|
+
? options.onAuthReconnectComplete
|
|
157
|
+
: options.onTransportReconnectComplete;
|
|
158
|
+
return callback;
|
|
94
159
|
}
|
|
95
160
|
function normalizeTransportSignal(signal) {
|
|
96
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":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"conductor-send-reconnect.js","sourceRoot":"","sources":["../../src/conductor/conductor-send-reconnect.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +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 { 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';
|
|
8
11
|
import type { ConductorAgentHandle, ConductorSendReconnectOptions } from './conductor-send-reconnect.js';
|
|
12
|
+
import type { CursorBootstrapState } from './cursor-bootstrap-state.js';
|
|
9
13
|
import { SessionEventQueue } from './session/session-event-queue.js';
|
|
10
14
|
import type { SessionEvent } from './session/session-event.js';
|
|
11
15
|
import { type DispatchHoldChange, type DispatchHoldState } from './session/dispatch-hold.js';
|
|
@@ -13,7 +17,7 @@ import { type IssueLoopStopReason } from './session-policy.js';
|
|
|
13
17
|
export interface ConductorSendStartedInfo {
|
|
14
18
|
/** これから実行する send の通し番号(1 始まり)。 */
|
|
15
19
|
sendCount: number;
|
|
16
|
-
/** dispatch 束の source key(`operator` / `permission` / `permission.stall` / `worker:*` / `initial`)。 */
|
|
20
|
+
/** dispatch 束の source key(`operator` / `permission` / `permission.stall` / `worker:*` / `conductor.recovery.report` / `initial`)。 */
|
|
17
21
|
dispatchSource?: string;
|
|
18
22
|
}
|
|
19
23
|
export interface ConductorSendProgressInfo {
|
|
@@ -33,6 +37,8 @@ export interface ConductorSendCompleteInfo {
|
|
|
33
37
|
status: ConductorSendResult['status'];
|
|
34
38
|
/** Exact user message passed to this agent.send. */
|
|
35
39
|
inbound: string;
|
|
40
|
+
/** User event text to retain locally when `inbound` also restores Cursor bootstrap context. */
|
|
41
|
+
historyInbound?: string;
|
|
36
42
|
dispatchSource?: string;
|
|
37
43
|
/** GitHub update IDs included in this send; used to acknowledge the durable outbox. */
|
|
38
44
|
githubUpdateIds?: string[];
|
|
@@ -89,6 +95,10 @@ export interface ConductorSessionDriverOptions {
|
|
|
89
95
|
resumeStore?: Pick<ConductorSessionDriverResult, 'sendCount' | 'autonomousTurns' | 'lastSendResult'> & {
|
|
90
96
|
lastDispatchesThisTurn: number;
|
|
91
97
|
};
|
|
98
|
+
/** Cursor の compiled prompt が既存 provider session に bootstrap 済みか。 */
|
|
99
|
+
cursorBootstrapComplete?: boolean;
|
|
100
|
+
/** Cursor resume 中の未知状態を operator が解決するまで dispatch を止める。 */
|
|
101
|
+
cursorBootstrapState?: CursorBootstrapState;
|
|
92
102
|
/** conductor send 中だけ有効な dispatch 保留状態。SessionResumeStore には保存しない。 */
|
|
93
103
|
dispatchHoldState?: DispatchHoldState;
|
|
94
104
|
/** dispatch 保留の切替・件数変化を TUI/観測へ通知する。 */
|
|
@@ -97,6 +107,29 @@ export interface ConductorSessionDriverOptions {
|
|
|
97
107
|
resetOutboundDispatchesThisSend?: () => void;
|
|
98
108
|
/** `prompt_worker` 等の outbound dispatch 件数(ループ停止判定向け)。 */
|
|
99
109
|
getOutboundDispatchesThisSend?: () => number;
|
|
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;
|
|
126
|
+
}) => void;
|
|
127
|
+
onRecoveryCapacityBlocked?: () => void;
|
|
128
|
+
}
|
|
129
|
+
export interface ConductorDispatchPayload {
|
|
130
|
+
events: SessionEvent[];
|
|
131
|
+
sourceKey: string;
|
|
132
|
+
operatorInputTexts: string[];
|
|
100
133
|
}
|
|
101
134
|
export interface ConductorSessionDriverResult {
|
|
102
135
|
stopReason: IssueLoopStopReason;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conductor-session-driver.d.ts","sourceRoot":"","sources":["../../src/conductor/conductor-session-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EACV,oBAAoB,
|
|
1
|
+
{"version":3,"file":"conductor-session-driver.d.ts","sourceRoot":"","sources":["../../src/conductor/conductor-session-driver.ts"],"names":[],"mappings":"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"}
|