@sift-wiki/conductor 0.2.0-beta.1 → 0.2.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/adapters/claudeAgent.js +1 -0
  2. package/dist/adapters/claudeAgent.js.map +1 -1
  3. package/dist/adapters/codexAgent.js +1 -0
  4. package/dist/adapters/codexAgent.js.map +1 -1
  5. package/dist/adapters/fakeAgent.js +1 -0
  6. package/dist/adapters/fakeAgent.js.map +1 -1
  7. package/dist/adapters/httpAgent.js +1 -0
  8. package/dist/adapters/httpAgent.js.map +1 -1
  9. package/dist/adapters/processAgent.js +4 -0
  10. package/dist/adapters/processAgent.js.map +1 -1
  11. package/dist/adapters/provider/runProvider.js +4 -0
  12. package/dist/adapters/provider/runProvider.js.map +1 -1
  13. package/dist/adapters/provider/store.js +3 -4
  14. package/dist/adapters/provider/store.js.map +1 -1
  15. package/dist/adapters/types.d.ts +9 -0
  16. package/dist/cli.d.ts +6 -0
  17. package/dist/cli.js +16 -4
  18. package/dist/cli.js.map +1 -1
  19. package/dist/conductorClient.d.ts +56 -19
  20. package/dist/conductorClient.js +91 -40
  21. package/dist/conductorClient.js.map +1 -1
  22. package/dist/config.js +4 -5
  23. package/dist/config.js.map +1 -1
  24. package/dist/daemon.d.ts +19 -6
  25. package/dist/daemon.js +160 -122
  26. package/dist/daemon.js.map +1 -1
  27. package/dist/desktop/app/controller.d.ts +1 -1
  28. package/dist/desktop/app/runtimeController.d.ts +7 -0
  29. package/dist/desktop/app/runtimeController.js +12 -1
  30. package/dist/desktop/app/runtimeController.js.map +1 -1
  31. package/dist/localApi/contracts.d.ts +15 -4
  32. package/dist/localApi/contracts.js +19 -1
  33. package/dist/localApi/contracts.js.map +1 -1
  34. package/dist/localApi/recovery.d.ts +66 -0
  35. package/dist/localApi/recovery.js +115 -0
  36. package/dist/localApi/recovery.js.map +1 -0
  37. package/dist/localApi/server.js +3 -1
  38. package/dist/localApi/server.js.map +1 -1
  39. package/dist/localApp/service.js +16 -4
  40. package/dist/localApp/service.js.map +1 -1
  41. package/dist/protocol/fenced.d.ts +135 -0
  42. package/dist/protocol/fenced.js +142 -0
  43. package/dist/protocol/fenced.js.map +1 -0
  44. package/dist/redaction.js +2 -0
  45. package/dist/redaction.js.map +1 -1
  46. package/dist/runtime/atomicFile.d.ts +6 -0
  47. package/dist/runtime/atomicFile.js +78 -0
  48. package/dist/runtime/atomicFile.js.map +1 -0
  49. package/dist/runtime/daemonCapabilities.d.ts +7 -0
  50. package/dist/runtime/daemonCapabilities.js +24 -0
  51. package/dist/runtime/daemonCapabilities.js.map +1 -0
  52. package/dist/runtime/eventOutbox.d.ts +100 -0
  53. package/dist/runtime/eventOutbox.js +206 -0
  54. package/dist/runtime/eventOutbox.js.map +1 -0
  55. package/dist/runtime/executionJournal.d.ts +102 -0
  56. package/dist/runtime/executionJournal.js +209 -0
  57. package/dist/runtime/executionJournal.js.map +1 -0
  58. package/dist/runtime/executionSafety.d.ts +76 -0
  59. package/dist/runtime/executionSafety.js +207 -0
  60. package/dist/runtime/executionSafety.js.map +1 -0
  61. package/dist/runtime/fencedExecutionState.d.ts +43 -0
  62. package/dist/runtime/fencedExecutionState.js +158 -0
  63. package/dist/runtime/fencedExecutionState.js.map +1 -0
  64. package/dist/runtime/leaseManager.d.ts +38 -0
  65. package/dist/runtime/leaseManager.js +102 -0
  66. package/dist/runtime/leaseManager.js.map +1 -0
  67. package/dist/runtime/localRunQueue.d.ts +1 -1
  68. package/dist/runtime/localRunQueue.js +8 -0
  69. package/dist/runtime/localRunQueue.js.map +1 -1
  70. package/dist/runtime/localSessionCache.d.ts +1 -1
  71. package/dist/runtime/localSessionCache.js.map +1 -1
  72. package/dist/runtime/process.d.ts +13 -1
  73. package/dist/runtime/process.js +39 -9
  74. package/dist/runtime/process.js.map +1 -1
  75. package/dist/runtime/recoveryCoordinator.d.ts +19 -0
  76. package/dist/runtime/recoveryCoordinator.js +183 -0
  77. package/dist/runtime/recoveryCoordinator.js.map +1 -0
  78. package/dist/runtime/runtimeLock.d.ts +33 -0
  79. package/dist/runtime/runtimeLock.js +140 -0
  80. package/dist/runtime/runtimeLock.js.map +1 -0
  81. package/dist/runtime/runtimeService.d.ts +6 -1
  82. package/dist/runtime/runtimeService.js +54 -20
  83. package/dist/runtime/runtimeService.js.map +1 -1
  84. package/dist/runtime/taskExecution.d.ts +2 -0
  85. package/dist/runtime/taskExecution.js +18 -12
  86. package/dist/runtime/taskExecution.js.map +1 -1
  87. package/dist/types.d.ts +28 -13
  88. package/dist/version.d.ts +1 -1
  89. package/dist/version.js +1 -1
  90. package/dist/workTypes.d.ts +5 -5
  91. package/dist-web/assets/index-CWAdDb9V.js +72 -0
  92. package/dist-web/index.html +2 -2
  93. package/package.json +1 -1
  94. package/dist-web/assets/index-D5X9InfE.js +0 -72
package/dist/daemon.js CHANGED
@@ -1,4 +1,9 @@
1
1
  import { errorSummaryFromUnknown } from "./adapters/errors.js";
2
+ import { ConductorApiError } from "./conductorClient.js";
3
+ import { LeaseAuthorityError } from "./runtime/leaseManager.js";
4
+ import { createFencedState, defaultDaemonTimer, emitRunEvent, observeRunProgress, rejectExhaustedClaim, refreshLeaseUntilDone, renewFencedLease, scheduleRunTimeout, updateLocalSession, } from "./runtime/executionSafety.js";
5
+ import { reconcileUnfinishedAttempts } from "./runtime/recoveryCoordinator.js";
6
+ import { advertiseAdapters, daemonCapabilities } from "./runtime/daemonCapabilities.js";
2
7
  import { buildRunEnvironment } from "./runtime/runEnvironment.js";
3
8
  import { isAbortError, sleep as defaultSleep } from "./runtime/sleep.js";
4
9
  import { openTaskExecution, taskIdFromJob, } from "./runtime/taskExecution.js";
@@ -18,6 +23,24 @@ export async function runDaemonOnce(input) {
18
23
  capabilities: daemonCapabilities(adapters),
19
24
  });
20
25
  await input.client.advertiseAgents(credential, advertiseAdapters(adapters));
26
+ if ((input.journalStore === undefined) !== (input.eventOutbox === undefined)) {
27
+ throw new Error("Resilient execution requires both the journal store and durable event outbox.");
28
+ }
29
+ if (input.journalStore !== undefined && input.eventOutbox !== undefined) {
30
+ const recovery = await reconcileUnfinishedAttempts({
31
+ credential,
32
+ client: input.client,
33
+ workClient: input.workClient,
34
+ journalStore: input.journalStore,
35
+ outbox: input.eventOutbox,
36
+ adapters,
37
+ now: input.now,
38
+ });
39
+ if (!recovery.canClaim) {
40
+ await (input.sleep ?? defaultSleep)(input.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS, input.signal);
41
+ return { status: "idle" };
42
+ }
43
+ }
21
44
  await input.eventRetryBuffer?.flushDue((entry) => input.client.appendRunEvent(credential, entry.runId, entry.event).then(() => undefined));
22
45
  const job = await input.client.claimJob(credential);
23
46
  if (job === undefined) {
@@ -33,34 +56,40 @@ export async function runDaemonOnce(input) {
33
56
  leaseRefreshMs: input.leaseRefreshMs ?? DEFAULT_LEASE_REFRESH_MS,
34
57
  eventRetryBuffer: input.eventRetryBuffer,
35
58
  workClient: input.workClient,
36
- timer: input.timer ?? defaultTimer,
59
+ timer: input.timer ?? defaultDaemonTimer,
37
60
  sessionCache: input.sessionCache,
38
61
  logSpool: input.logSpool,
62
+ journalStore: input.journalStore,
63
+ eventOutbox: input.eventOutbox,
64
+ now: input.now ?? (() => new Date()),
65
+ monotonicNowMs: input.monotonicNowMs,
66
+ random: input.random,
67
+ allowInspectOnlyOffline: input.allowInspectOnlyOffline,
39
68
  });
40
69
  }
41
70
  export async function runDaemon(input) {
71
+ let retryAttempt = 0;
42
72
  while (input.signal?.aborted !== true) {
43
- await runDaemonOnce(input);
73
+ try {
74
+ await runDaemonOnce(input);
75
+ retryAttempt = 0;
76
+ }
77
+ catch (error) {
78
+ if (!(error instanceof ConductorApiError) || error.disposition !== "retryable")
79
+ throw error;
80
+ const delay = Math.min(30_000, 500 * 2 ** Math.min(retryAttempt, 6));
81
+ retryAttempt += 1;
82
+ try {
83
+ await (input.sleep ?? defaultSleep)(delay, input.signal);
84
+ }
85
+ catch (sleepError) {
86
+ if (isAbortError(sleepError))
87
+ return;
88
+ throw sleepError;
89
+ }
90
+ }
44
91
  }
45
92
  }
46
- function daemonCapabilities(adapters) {
47
- return {
48
- platform: process.platform,
49
- adapters: adapters.map((adapter) => adapter.adapterType),
50
- };
51
- }
52
- function advertiseAdapters(adapters) {
53
- return adapters.map((adapter) => ({
54
- localKey: adapter.localKey,
55
- displayName: adapter.displayName,
56
- adapterType: adapter.adapterType,
57
- status: "active",
58
- capabilities: {
59
- ...adapter.capabilities,
60
- ...adapter.readinessMetadata,
61
- },
62
- }));
63
- }
64
93
  function findAdapter(adapters, job) {
65
94
  return adapters.find((adapter) => adapter.localKey === job.localKey)
66
95
  ?? adapters.find((adapter) => adapter.adapterType === job.adapterType);
@@ -86,23 +115,53 @@ async function readyAdapters(adapters) {
86
115
  }
87
116
  async function runClaimedJob(input) {
88
117
  const { client, credential, job } = input;
118
+ const fencedState = await createFencedState(input);
119
+ if (await rejectExhaustedClaim(job, fencedState))
120
+ return { status: "interrupted", runId: job.runId };
89
121
  if (input.adapter === undefined) {
90
- await client.failRun(credential, job.runId, {
122
+ const summary = {
91
123
  message: `No local adapter available for ${job.localKey}.`,
92
- });
124
+ };
125
+ await fencedState?.recordTerminal("failed", summary);
126
+ await client.failRun(credential, job.runId, summary, fencedState?.settlementOptions());
93
127
  return { status: "failed", runId: job.runId };
94
128
  }
95
129
  if (job.wakeEnvelope?.limits.hardStop === true) {
96
- await client.failRun(credential, job.runId, {
130
+ const summary = {
97
131
  message: "Run is paused by a Sift hard policy limit.",
98
- });
132
+ };
133
+ await fencedState?.recordTerminal("failed", summary);
134
+ await client.failRun(credential, job.runId, summary, fencedState?.settlementOptions());
99
135
  return { status: "failed", runId: job.runId };
100
136
  }
101
- const initialLease = await client.refreshLease(credential, job.id);
137
+ let initialLease;
138
+ try {
139
+ initialLease = fencedState === undefined
140
+ ? await client.refreshLease(credential, job.id)
141
+ : await renewFencedLease({
142
+ client,
143
+ credential,
144
+ jobId: job.id,
145
+ fencedState,
146
+ sleep: input.sleep,
147
+ nowMs: () => input.now().getTime(),
148
+ monotonicNowMs: input.monotonicNowMs,
149
+ random: input.random,
150
+ });
151
+ }
152
+ catch (error) {
153
+ if (error instanceof LeaseAuthorityError && fencedState !== undefined) {
154
+ await fencedState.updatePhase("authority_uncertain", error.message);
155
+ return { status: "interrupted", runId: job.runId };
156
+ }
157
+ throw error;
158
+ }
102
159
  if (initialLease.cancelRequested) {
103
- await client.acknowledgeCancellation(credential, job.runId, {
160
+ const summary = {
104
161
  summary: "Cancellation was already requested before local execution started.",
105
- });
162
+ };
163
+ await fencedState?.recordTerminal("cancelled", summary);
164
+ await client.acknowledgeCancellation(credential, job.runId, summary, fencedState?.settlementOptions());
106
165
  return { status: "cancelled", runId: job.runId };
107
166
  }
108
167
  const adapterAbort = new AbortController();
@@ -112,14 +171,17 @@ async function runClaimedJob(input) {
112
171
  cancelRequested: false,
113
172
  timedOut: false,
114
173
  hardStop: false,
174
+ authorityUncertain: false,
115
175
  };
116
176
  let taskExecution;
117
177
  updateLocalSession(input.sessionCache, job, "starting");
118
178
  if (isTaskLinked(job)) {
119
179
  if (input.workClient === undefined) {
120
- await client.failRun(credential, job.runId, {
180
+ const summary = {
121
181
  message: "Task-linked run requires the Sift work protocol client.",
122
- });
182
+ };
183
+ await fencedState?.recordTerminal("failed", summary);
184
+ await client.failRun(credential, job.runId, summary, fencedState?.settlementOptions());
123
185
  return { status: "failed", runId: job.runId };
124
186
  }
125
187
  try {
@@ -128,6 +190,7 @@ async function runClaimedJob(input) {
128
190
  workClient: input.workClient,
129
191
  credential,
130
192
  job,
193
+ authority: fencedState?.authority(),
131
194
  onHardStop: () => {
132
195
  leaseState.hardStop = true;
133
196
  adapterAbort.abort();
@@ -136,11 +199,15 @@ async function runClaimedJob(input) {
136
199
  }
137
200
  catch (error) {
138
201
  updateLocalSession(input.sessionCache, job, "failed", errorSummaryFromUnknown(error));
139
- await client.failRun(credential, job.runId, errorSummaryFromUnknown(error));
202
+ const summary = errorSummaryFromUnknown(error);
203
+ await fencedState?.recordTerminal("failed", summary);
204
+ await client.failRun(credential, job.runId, summary, fencedState?.settlementOptions());
140
205
  return { status: "failed", runId: job.runId };
141
206
  }
142
207
  }
143
- const timeoutHandle = scheduleRunTimeout(job, input.timer, adapterAbort, leaseState);
208
+ await fencedState?.updatePhase("running");
209
+ const timeoutHandle = scheduleRunTimeout(job, input.timer, adapterAbort, leaseState, input.now);
210
+ const progressObserver = observeRunProgress({ job, timer: input.timer, fencedState, logSpool: input.logSpool, now: input.now });
144
211
  updateLocalSession(input.sessionCache, job, "running");
145
212
  const leaseLoop = refreshLeaseUntilDone({
146
213
  client,
@@ -151,6 +218,12 @@ async function runClaimedJob(input) {
151
218
  adapterAbort,
152
219
  state: leaseState,
153
220
  leaseRefreshMs: input.leaseRefreshMs,
221
+ fencedState,
222
+ monotonicNowMs: input.monotonicNowMs,
223
+ random: input.random,
224
+ nowMs: () => input.now().getTime(),
225
+ continueInspectOnly: input.allowInspectOnlyOffline === true
226
+ && fencedState?.accessMode() === "inspect",
154
227
  });
155
228
  try {
156
229
  const result = await input.adapter.run({
@@ -166,10 +239,34 @@ async function runClaimedJob(input) {
166
239
  bridgeToken: taskExecution?.bridgeToken,
167
240
  }),
168
241
  signal: adapterAbort.signal,
169
- emit: (event) => emitRunEvent({ client, credential, job, event, buffer: input.eventRetryBuffer, logSpool: input.logSpool }),
242
+ emit: (event) => emitRunEvent({
243
+ client,
244
+ credential,
245
+ job,
246
+ event,
247
+ buffer: input.eventRetryBuffer,
248
+ logSpool: input.logSpool,
249
+ fencedState,
250
+ progressObserver,
251
+ }),
170
252
  sleep: input.sleep,
253
+ ...(fencedState === undefined
254
+ ? {}
255
+ : { recordProcessIdentity: (identity) => fencedState.recordProcessIdentity(identity) }),
171
256
  });
257
+ if (result.providerSession !== undefined) {
258
+ await fencedState?.recordProviderSession(result.providerSession.sessionId);
259
+ }
260
+ await progressObserver.stop();
172
261
  await stopLeaseLoop(leaseState, leaseSleepAbort, leaseLoop);
262
+ if (leaseState.authorityUncertain && fencedState !== undefined) {
263
+ await fencedState.recordTerminal(result.status === "cancelled" ? "cancelled" : "completed", result.resultSummary, "authority_uncertain");
264
+ updateLocalSession(input.sessionCache, job, "stopped", {
265
+ message: "Local result is non-authoritative until Sift reconciliation.",
266
+ });
267
+ return { status: "interrupted", runId: job.runId };
268
+ }
269
+ await fencedState?.recordTerminal(result.status === "cancelled" ? "cancelled" : "completed", result.resultSummary, "running");
173
270
  const settled = await settleRun({
174
271
  client,
175
272
  workClient: input.workClient,
@@ -177,94 +274,67 @@ async function runClaimedJob(input) {
177
274
  job,
178
275
  result,
179
276
  cancelRequested: leaseState.cancelRequested,
277
+ fencedState,
180
278
  });
279
+ await fencedState?.updatePhase("terminal");
181
280
  updateLocalSession(input.sessionCache, job, settled.status === "completed" ? "completed" : settled.status);
182
281
  return settled;
183
282
  }
184
283
  catch (error) {
284
+ await progressObserver.stop();
185
285
  await stopLeaseLoop(leaseState, leaseSleepAbort, leaseLoop);
286
+ if (leaseState.authorityUncertain && fencedState !== undefined) {
287
+ const errorSummary = errorSummaryFromUnknown(error);
288
+ const message = errorSummary["message"];
289
+ await fencedState.updatePhase("authority_uncertain", typeof message === "string" ? message : undefined);
290
+ updateLocalSession(input.sessionCache, job, "stopped", {
291
+ message: "Execution stopped because Sift write authority became uncertain.",
292
+ });
293
+ return { status: "interrupted", runId: job.runId };
294
+ }
295
+ if (leaseState.timedOut && fencedState !== undefined) {
296
+ await fencedState.recordTerminal("overtime", {
297
+ summary: "Stopped at the server-authoritative run deadline.",
298
+ }, "overtime");
299
+ updateLocalSession(input.sessionCache, job, "cancelled");
300
+ return { status: "interrupted", runId: job.runId };
301
+ }
186
302
  if (leaseState.timedOut && input.workClient !== undefined && isTaskLinked(job)) {
187
303
  await input.workClient.setTaskDisposition(credential, job.runId, taskIdFromJob(job), "cancelled", { summary: "Stopped after reaching the local run time limit." });
188
304
  updateLocalSession(input.sessionCache, job, "cancelled");
189
305
  return { status: "cancelled", runId: job.runId };
190
306
  }
191
307
  if (leaseState.hardStop && input.workClient !== undefined && isTaskLinked(job)) {
192
- await input.workClient.setTaskDisposition(credential, job.runId, taskIdFromJob(job), "cancelled", { summary: "Stopped after reaching a Sift hard policy limit." });
308
+ await input.workClient.setTaskDisposition(credential, job.runId, taskIdFromJob(job), "cancelled", { summary: "Stopped after reaching a Sift hard policy limit." }, fencedState?.settlementOptions());
193
309
  updateLocalSession(input.sessionCache, job, "cancelled");
194
310
  return { status: "cancelled", runId: job.runId };
195
311
  }
196
312
  if (leaseState.cancelRequested || adapterAbort.signal.aborted) {
197
313
  if (input.workClient !== undefined && isTaskLinked(job)) {
198
- await input.workClient.setTaskDisposition(credential, job.runId, taskIdFromJob(job), "cancelled", { summary: "Stopped local process after cancellation." });
314
+ await input.workClient.setTaskDisposition(credential, job.runId, taskIdFromJob(job), "cancelled", { summary: "Stopped local process after cancellation." }, fencedState?.settlementOptions());
199
315
  updateLocalSession(input.sessionCache, job, "cancelled");
200
316
  return { status: "cancelled", runId: job.runId };
201
317
  }
202
318
  await client.acknowledgeCancellation(credential, job.runId, {
203
319
  summary: "Stopped local process after cancellation.",
204
- });
320
+ }, fencedState?.settlementOptions());
205
321
  updateLocalSession(input.sessionCache, job, "cancelled");
206
322
  return { status: "cancelled", runId: job.runId };
207
323
  }
208
324
  updateLocalSession(input.sessionCache, job, "failed", errorSummaryFromUnknown(error));
209
- await client.failRun(credential, job.runId, {
210
- ...errorSummaryFromUnknown(error),
211
- });
325
+ const failure = { ...errorSummaryFromUnknown(error) };
326
+ await fencedState?.recordTerminal("failed", failure, "running");
327
+ await client.failRun(credential, job.runId, failure, fencedState?.settlementOptions());
328
+ await fencedState?.updatePhase("terminal");
212
329
  return { status: "failed", runId: job.runId };
213
330
  }
214
331
  finally {
215
332
  if (timeoutHandle !== undefined)
216
333
  input.timer.cancel(timeoutHandle);
334
+ await progressObserver.stop();
217
335
  await taskExecution?.close();
218
336
  }
219
337
  }
220
- async function emitRunEvent(input) {
221
- const summary = input.event.payload?.["summary"];
222
- if (typeof summary === "string") {
223
- input.logSpool?.append({
224
- runId: input.job.runId,
225
- message: summary,
226
- stream: input.event.eventType === "log" ? "stdout" : "system",
227
- occurredAt: input.event.occurredAt,
228
- });
229
- }
230
- try {
231
- await input.client.appendRunEvent(input.credential, input.job.runId, input.event);
232
- }
233
- catch (error) {
234
- if (input.buffer === undefined) {
235
- throw error;
236
- }
237
- input.buffer.enqueue({ runId: input.job.runId, event: input.event, error });
238
- }
239
- }
240
- async function refreshLeaseUntilDone(input) {
241
- for (;;) {
242
- if (isLeaseDone(input.state)) {
243
- return;
244
- }
245
- try {
246
- await input.sleep(input.leaseRefreshMs, input.sleepSignal);
247
- }
248
- catch (error) {
249
- if (isAbortError(error)) {
250
- return;
251
- }
252
- throw error;
253
- }
254
- if (isLeaseDone(input.state)) {
255
- return;
256
- }
257
- const refresh = await input.client.refreshLease(input.credential, input.jobId);
258
- if (refresh.cancelRequested) {
259
- input.state.cancelRequested = true;
260
- input.adapterAbort.abort();
261
- return;
262
- }
263
- }
264
- }
265
- function isLeaseDone(state) {
266
- return state.done;
267
- }
268
338
  async function stopLeaseLoop(state, leaseSleepAbort, leaseLoop) {
269
339
  state.done = true;
270
340
  leaseSleepAbort.abort();
@@ -273,52 +343,20 @@ async function stopLeaseLoop(state, leaseSleepAbort, leaseLoop) {
273
343
  async function settleRun(input) {
274
344
  if (input.result.status === "cancelled" || input.cancelRequested) {
275
345
  if (input.workClient !== undefined && isTaskLinked(input.job)) {
276
- await input.workClient.setTaskDisposition(input.credential, input.job.runId, taskIdFromJob(input.job), "cancelled", input.result.resultSummary);
346
+ await input.workClient.setTaskDisposition(input.credential, input.job.runId, taskIdFromJob(input.job), "cancelled", input.result.resultSummary, input.fencedState?.settlementOptions());
277
347
  return { status: "cancelled", runId: input.job.runId };
278
348
  }
279
- await input.client.acknowledgeCancellation(input.credential, input.job.runId, input.result.resultSummary);
349
+ await input.client.acknowledgeCancellation(input.credential, input.job.runId, input.result.resultSummary, input.fencedState?.settlementOptions());
280
350
  return { status: "cancelled", runId: input.job.runId };
281
351
  }
282
352
  if (input.workClient !== undefined && isTaskLinked(input.job)) {
283
- await input.workClient.setTaskDisposition(input.credential, input.job.runId, taskIdFromJob(input.job), input.result.disposition ?? "done", input.result.resultSummary);
353
+ await input.workClient.setTaskDisposition(input.credential, input.job.runId, taskIdFromJob(input.job), input.result.disposition ?? "done", input.result.resultSummary, input.fencedState?.settlementOptions());
284
354
  return { status: "completed", runId: input.job.runId };
285
355
  }
286
- await input.client.completeRun(input.credential, input.job.runId, input.result.resultSummary);
356
+ await input.client.completeRun(input.credential, input.job.runId, input.result.resultSummary, input.fencedState?.settlementOptions());
287
357
  return { status: "completed", runId: input.job.runId };
288
358
  }
289
359
  function isTaskLinked(job) {
290
360
  return job.wakeEnvelope !== undefined || job.taskRecordId !== undefined;
291
361
  }
292
- function scheduleRunTimeout(job, timer, adapterAbort, state) {
293
- const maxRunMinutes = job.wakeEnvelope?.limits.maxRunMinutes;
294
- if (maxRunMinutes === undefined)
295
- return undefined;
296
- return timer.schedule(() => {
297
- state.timedOut = true;
298
- adapterAbort.abort();
299
- }, maxRunMinutes * 60_000);
300
- }
301
- const defaultTimer = {
302
- schedule: (callback, ms) => setTimeout(callback, ms),
303
- cancel: (handle) => clearTimeout(handle),
304
- };
305
- function updateLocalSession(cache, job, status, errorSummary) {
306
- if (cache === undefined)
307
- return;
308
- const previous = cache.read(job.runId);
309
- const now = new Date().toISOString();
310
- cache.upsert({
311
- runId: job.runId,
312
- adapterType: job.adapterType,
313
- localKey: job.localKey,
314
- status,
315
- localOnly: true,
316
- updatedAt: now,
317
- startedAt: previous?.startedAt ?? now,
318
- ...(status === "running" || status === "starting" ? {} : { stoppedAt: now }),
319
- taskKey: job.taskRecordId ?? job.wakeEnvelope?.task.id,
320
- cancelRequested: status === "cancelled",
321
- ...(errorSummary === undefined ? {} : { errorSummary }),
322
- });
323
- }
324
362
  //# sourceMappingURL=daemon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export declare class DesktopController implements DesktopConductorApi {
29
29
  selectFolder(): Promise<SelectedFolder | undefined>;
30
30
  inspectDraft(input: ProviderDraft): Promise<{
31
31
  providerVersion?: string;
32
- remediation?: "install" | "login" | "upgrade" | "select-folder" | "resume" | "retry";
32
+ remediation?: "resume" | "install" | "login" | "upgrade" | "select-folder" | "retry";
33
33
  hint?: string;
34
34
  status: "error" | "ready";
35
35
  message: string;
@@ -1,9 +1,12 @@
1
1
  import { ProviderAgentStore } from "../../adapters/provider/store.js";
2
2
  import { FileConfigStore } from "../../config.js";
3
3
  import { type RuntimeServiceStatus } from "../../runtime/runtimeService.js";
4
+ import { RuntimeIdentityLock } from "../../runtime/runtimeLock.js";
4
5
  import type { LocalRuntimeSessionCache } from "../../runtime/localSessionCache.js";
5
6
  import type { LocalLogSpool } from "../../runtime/localLogSpool.js";
6
7
  import type { RunEventRetryBuffer } from "../../runtime/runEventRetryBuffer.js";
8
+ import { ExecutionJournalStore } from "../../runtime/executionJournal.js";
9
+ import { DurableEventOutbox } from "../../runtime/eventOutbox.js";
7
10
  export declare class DesktopRuntimeController {
8
11
  private readonly deps;
9
12
  private service;
@@ -14,9 +17,13 @@ export declare class DesktopRuntimeController {
14
17
  sessionCache?: LocalRuntimeSessionCache | undefined;
15
18
  logSpool?: LocalLogSpool | undefined;
16
19
  eventRetryBuffer?: RunEventRetryBuffer | undefined;
20
+ runtimeLock?: RuntimeIdentityLock | undefined;
21
+ journalStore?: ExecutionJournalStore | undefined;
22
+ eventOutbox?: DurableEventOutbox | undefined;
17
23
  });
18
24
  status(): RuntimeServiceStatus;
19
25
  start(): Promise<RuntimeServiceStatus>;
20
26
  stop(): Promise<RuntimeServiceStatus>;
27
+ restart(): Promise<RuntimeServiceStatus>;
21
28
  refreshAdapters(): Promise<RuntimeServiceStatus>;
22
29
  }
@@ -1,6 +1,10 @@
1
1
  import { createConfiguredAdapters } from "../../adapters/config.js";
2
2
  import { ConductorHttpClient } from "../../conductorClient.js";
3
3
  import { HeadlessRuntimeService } from "../../runtime/runtimeService.js";
4
+ import { RuntimeIdentityLock } from "../../runtime/runtimeLock.js";
5
+ import path from "node:path";
6
+ import { ExecutionJournalStore } from "../../runtime/executionJournal.js";
7
+ import { DurableEventOutbox } from "../../runtime/eventOutbox.js";
4
8
  export class DesktopRuntimeController {
5
9
  deps;
6
10
  service;
@@ -27,7 +31,9 @@ export class DesktopRuntimeController {
27
31
  sessionCache: this.deps.sessionCache,
28
32
  logSpool: this.deps.logSpool,
29
33
  eventRetryBuffer: this.deps.eventRetryBuffer,
30
- });
34
+ journalStore: this.deps.journalStore ?? new ExecutionJournalStore(path.join(path.dirname(this.deps.configStore.path), "runtime", "executions")),
35
+ eventOutbox: this.deps.eventOutbox ?? new DurableEventOutbox(path.join(path.dirname(this.deps.configStore.path), "runtime", "event-outbox.json")),
36
+ }, this.deps.runtimeLock ?? new RuntimeIdentityLock(path.join(path.dirname(this.deps.configStore.path), "runtime", "conductor.lock")));
31
37
  return this.service.start();
32
38
  }
33
39
  async stop() {
@@ -35,6 +41,11 @@ export class DesktopRuntimeController {
35
41
  return { state: "stopped" };
36
42
  return this.service.stop();
37
43
  }
44
+ async restart() {
45
+ if (this.service === undefined)
46
+ return this.start();
47
+ return this.service.restart();
48
+ }
38
49
  async refreshAdapters() {
39
50
  const next = createConfiguredAdapters(await this.deps.agentStore.read());
40
51
  this.adapters.splice(0, this.adapters.length, ...next);
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeController.js","sourceRoot":"","sources":["../../../src/desktop/app/runtimeController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAA6B,MAAM,iCAAiC,CAAC;AAKpG,MAAM,OAAO,wBAAwB;IAIN;IAHrB,OAAO,CAAqC;IACnC,QAAQ,GAAwB,EAAE,CAAC;IAEpD,YAA6B,IAM5B;QAN4B,SAAI,GAAJ,IAAI,CAMhC;IAAG,CAAC;IAEL,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC9F,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,CAAC;YACxC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAC5B,MAAM;YACN,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;SAC7C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,GAAG,wBAAwB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"runtimeController.js","sourceRoot":"","sources":["../../../src/desktop/app/runtimeController.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { ProviderAccessProfile, ProviderType } from "../adapters/provider/t
4
4
  import type { DesktopConductorApi, DesktopPairRequest, ProviderDraft, ProviderDraftStatus, SelectedFolder } from "../desktop/app/contracts.js";
5
5
  import type { RuntimeServiceStatus } from "../runtime/runtimeService.js";
6
6
  import { type UserAuthorizationStatus } from "../userAuth/types.js";
7
+ import { localRecoveryActionSchema, localRecoveryProjectionSchema, type LocalRecoveryAction, type LocalRecoveryProjection } from "./recovery.js";
7
8
  import type { WorkConsoleSnapshot, createTaskRequestSchema, updateTaskRequestSchema, commentTaskRequestSchema, dispatchTaskRequestSchema, approvalDecisionRequestSchema } from "./workContracts.js";
8
9
  export type LocalPairingStatus = {
9
10
  paired: false;
@@ -51,6 +52,8 @@ export type ConductorLocalApi = {
51
52
  runtimeStatus(): Promise<RuntimeServiceStatus>;
52
53
  startRuntime(): Promise<RuntimeServiceStatus>;
53
54
  stopRuntime(): Promise<RuntimeServiceStatus>;
55
+ recoveryStatus(): Promise<LocalRecoveryProjection>;
56
+ performRecoveryAction(action: LocalRecoveryAction): Promise<LocalRecoveryProjection>;
54
57
  clearLocalDiagnostics(): Promise<void>;
55
58
  userAuthorizationStatus(): Promise<UserAuthorizationStatus>;
56
59
  beginUserAuthorization(input?: {
@@ -101,6 +104,9 @@ export declare const runtimeServiceStatusSchema: z.ZodObject<{
101
104
  }, z.core.$strict>, z.ZodObject<{
102
105
  status: z.ZodLiteral<"cancelled">;
103
106
  runId: z.ZodString;
107
+ }, z.core.$strict>, z.ZodObject<{
108
+ status: z.ZodLiteral<"interrupted">;
109
+ runId: z.ZodString;
104
110
  }, z.core.$strict>, z.ZodObject<{
105
111
  status: z.ZodLiteral<"failed">;
106
112
  runId: z.ZodString;
@@ -127,11 +133,11 @@ export declare const providerAgentViewSchema: z.ZodObject<{
127
133
  message: z.ZodString;
128
134
  hint: z.ZodOptional<z.ZodString>;
129
135
  remediation: z.ZodOptional<z.ZodEnum<{
136
+ resume: "resume";
130
137
  install: "install";
131
138
  login: "login";
132
139
  upgrade: "upgrade";
133
140
  "select-folder": "select-folder";
134
- resume: "resume";
135
141
  retry: "retry";
136
142
  }>>;
137
143
  providerVersion: z.ZodOptional<z.ZodString>;
@@ -148,11 +154,11 @@ export declare const providerDraftStatusSchema: z.ZodObject<{
148
154
  message: z.ZodString;
149
155
  hint: z.ZodOptional<z.ZodString>;
150
156
  remediation: z.ZodOptional<z.ZodEnum<{
157
+ resume: "resume";
151
158
  install: "install";
152
159
  login: "login";
153
160
  upgrade: "upgrade";
154
161
  "select-folder": "select-folder";
155
- resume: "resume";
156
162
  retry: "retry";
157
163
  }>>;
158
164
  providerVersion: z.ZodOptional<z.ZodString>;
@@ -231,7 +237,7 @@ export declare function createLocalControllerApi(controller: DesktopConductorApi
231
237
  deviceLabel?: string | undefined;
232
238
  }): Promise<UserAuthorizationStatus>;
233
239
  signOut(): Promise<UserAuthorizationStatus>;
234
- }, work?: WorkConsolePort, authorizedPairing?: AuthorizedPairingPort, localDiagnostics?: LocalDiagnosticsPort): ConductorLocalApi;
240
+ }, work?: WorkConsolePort, authorizedPairing?: AuthorizedPairingPort, localDiagnostics?: LocalDiagnosticsPort, recovery?: LocalRecoveryPort): ConductorLocalApi;
235
241
  type WorkConsolePort = {
236
242
  snapshot(input: {
237
243
  projectId?: string | undefined;
@@ -250,4 +256,9 @@ type AuthorizedPairingPort = {
250
256
  type LocalDiagnosticsPort = {
251
257
  clear(): Promise<void> | void;
252
258
  };
253
- export {};
259
+ type LocalRecoveryPort = {
260
+ status(): Promise<LocalRecoveryProjection>;
261
+ perform(action: LocalRecoveryAction): Promise<LocalRecoveryProjection>;
262
+ };
263
+ export { localRecoveryActionSchema, localRecoveryProjectionSchema };
264
+ export type { LocalRecoveryAction, LocalRecoveryProjection };