@dsh-enhanced/assistant-recovery 0.1.12

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 (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +178 -0
  3. package/cordis.patch.yml +14 -0
  4. package/lib/attestation.d.ts +18 -0
  5. package/lib/attestation.d.ts.map +1 -0
  6. package/lib/attestation.js +80 -0
  7. package/lib/attestation.js.map +1 -0
  8. package/lib/automation-executor.d.ts +21 -0
  9. package/lib/automation-executor.d.ts.map +1 -0
  10. package/lib/automation-executor.js +141 -0
  11. package/lib/automation-executor.js.map +1 -0
  12. package/lib/catalog.d.ts +16 -0
  13. package/lib/catalog.d.ts.map +1 -0
  14. package/lib/catalog.js +49 -0
  15. package/lib/catalog.js.map +1 -0
  16. package/lib/config.d.ts +34 -0
  17. package/lib/config.d.ts.map +1 -0
  18. package/lib/config.js +101 -0
  19. package/lib/config.js.map +1 -0
  20. package/lib/executor.d.ts +50 -0
  21. package/lib/executor.d.ts.map +1 -0
  22. package/lib/executor.js +413 -0
  23. package/lib/executor.js.map +1 -0
  24. package/lib/index.d.ts +21 -0
  25. package/lib/index.d.ts.map +1 -0
  26. package/lib/index.js +26 -0
  27. package/lib/index.js.map +1 -0
  28. package/lib/port.d.ts +125 -0
  29. package/lib/port.d.ts.map +1 -0
  30. package/lib/port.js +706 -0
  31. package/lib/port.js.map +1 -0
  32. package/lib/service.d.ts +46 -0
  33. package/lib/service.d.ts.map +1 -0
  34. package/lib/service.js +549 -0
  35. package/lib/service.js.map +1 -0
  36. package/lib/sqlite.d.ts +9 -0
  37. package/lib/sqlite.d.ts.map +1 -0
  38. package/lib/sqlite.js +247 -0
  39. package/lib/sqlite.js.map +1 -0
  40. package/lib/store.d.ts +79 -0
  41. package/lib/store.d.ts.map +1 -0
  42. package/lib/store.js +806 -0
  43. package/lib/store.js.map +1 -0
  44. package/lib/types.d.ts +157 -0
  45. package/lib/types.d.ts.map +1 -0
  46. package/lib/types.js +3 -0
  47. package/lib/types.js.map +1 -0
  48. package/lib/version.d.ts +2 -0
  49. package/lib/version.d.ts.map +1 -0
  50. package/lib/version.js +2 -0
  51. package/lib/version.js.map +1 -0
  52. package/package.json +96 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port.js","sourceRoot":"","sources":["../src/port.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { Context, Service } from '@deepseek-ai/cordis';
2
+ import type { HostAutomationDefinition } from '@dsh-enhanced/assistant-automations';
3
+ import { type Config as RecoveryConfig, type NormalizedRecoveryJob } from './config.js';
4
+ import { type RecoveryHealth } from './types.js';
5
+ export type AssistantRecoveryErrorCode = 'disposed' | 'missing-preview' | 'preview-failed' | 'service-unavailable';
6
+ export declare class AssistantRecoveryError extends Error {
7
+ readonly code: AssistantRecoveryErrorCode;
8
+ constructor(code: AssistantRecoveryErrorCode, message: string);
9
+ }
10
+ declare module '@deepseek-ai/cordis' {
11
+ interface Context {
12
+ assistantRecovery: AssistantRecoveryService;
13
+ }
14
+ }
15
+ export declare function recoveryAutomationId(jobId: string): string;
16
+ /** Build the only Host definition Recovery is allowed to reconcile. */
17
+ export declare function recoveryAutomationDefinition(job: NormalizedRecoveryJob, maxStepDurationMs: number, mode: 'preview' | 'production'): HostAutomationDefinition;
18
+ /** Exact preview attestation key for the full production control plan. */
19
+ export declare function recoveryActivationPlanDigest(job: NormalizedRecoveryJob, maxStepDurationMs: number, authorityHash: string): string;
20
+ export declare class AssistantRecoveryService extends Service {
21
+ static Config: import("@deepseek-ai/schemastery").default<RecoveryConfig>;
22
+ static inject: string[];
23
+ private readonly config;
24
+ private readonly store;
25
+ private readonly automations;
26
+ private readonly activationPlanDigests;
27
+ private readonly automationExecutor;
28
+ private readonly unregisterExecutor;
29
+ private readonly bootstrap;
30
+ private active;
31
+ constructor(ctx: Context, input: RecoveryConfig);
32
+ health(): RecoveryHealth;
33
+ whenIdle(): Promise<void>;
34
+ private previewFor;
35
+ private runPreviews;
36
+ private reconcileProduction;
37
+ private reconcilePreviewPaused;
38
+ private pauseRemovedJobs;
39
+ private pauseUnattestedJob;
40
+ private runPreview;
41
+ private recordControlFailure;
42
+ private reconcileIdempotencyKey;
43
+ private assertActive;
44
+ }
45
+ export declare const Config: import("@deepseek-ai/schemastery").default<RecoveryConfig>;
46
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAEV,wBAAwB,EAEzB,MAAM,qCAAqC,CAAA;AAU5C,OAAO,EAGL,KAAK,MAAM,IAAI,cAAc,EAE7B,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAA;AAQpB,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,0BAA0B,GAClC,UAAU,GACV,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,CAAA;AAEzB,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,0BAA0B;gBAAhC,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,MAAM;CAIvE;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QAAG,iBAAiB,EAAE,wBAAwB,CAAA;KAAE;CAClE;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAsBD,uEAAuE;AACvE,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,qBAAqB,EAC1B,iBAAiB,EAAE,MAAM,EACzB,IAAI,EAAE,SAAS,GAAG,YAAY,GAC7B,wBAAwB,CA8B1B;AAED,0EAA0E;AAC1E,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,qBAAqB,EAC1B,iBAAiB,EAAE,MAAM,EACzB,aAAa,EAAE,MAAM,GACpB,MAAM,CAeR;AAkED,qBAAa,wBAAyB,SAAQ,OAAO;IACnD,MAAM,CAAC,MAAM,6DAAe;IAC5B,MAAM,CAAC,MAAM,WAOZ;IAED,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6B;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4B;IAC/D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,MAAM,CAAO;gBAET,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc;IA6K/C,MAAM,IAAI,cAAc;IAKlB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,OAAO,CAAC,UAAU;YAmBJ,WAAW;IAOzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,gBAAgB;IAsCxB,OAAO,CAAC,kBAAkB;YAqCZ,UAAU;IAyDxB,OAAO,CAAC,oBAAoB;IA6C5B,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,YAAY;CAGrB;AAED,eAAO,MAAM,MAAM,4DAAkC,CAAA"}
package/lib/service.js ADDED
@@ -0,0 +1,549 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { Context, Service } from '@deepseek-ai/cordis';
3
+ import { RECOVERY_EXECUTOR_CONTRACT_VERSION, RECOVERY_EXECUTOR_ID, RecoveryAutomationExecutor, } from './automation-executor.js';
4
+ import { RECOVERY_CATALOG_DIGEST } from './catalog.js';
5
+ import { ConfigSchema, normalizeRecoveryConfig, } from './config.js';
6
+ import { RecoveryExecutor } from './executor.js';
7
+ import { HostRecoveryRunbookPort, RECOVERY_SYSTEM_OWNER, } from './port.js';
8
+ import { RECOVERY_DEADLINE_GRACE_MS, RecoveryStore } from './store.js';
9
+ import { RECOVERY_RUNBOOK_ID, RECOVERY_RUNBOOK_VERSION, } from './types.js';
10
+ export class AssistantRecoveryError extends Error {
11
+ code;
12
+ constructor(code, message) {
13
+ super(message);
14
+ this.code = code;
15
+ this.name = 'AssistantRecoveryError';
16
+ }
17
+ }
18
+ const PREVIEW_AT = '9999-12-31T23:59:59.999Z';
19
+ export function recoveryAutomationId(jobId) {
20
+ return `recovery:${jobId}`;
21
+ }
22
+ function scopeDigest(job) {
23
+ return createHash('sha256').update(JSON.stringify([job.workspace, job.preset])).digest('hex');
24
+ }
25
+ function canonicalJson(value) {
26
+ if (value === null || typeof value !== 'object')
27
+ return JSON.stringify(value) ?? 'null';
28
+ if (Array.isArray(value))
29
+ return `[${value.map(canonicalJson).join(',')}]`;
30
+ const record = value;
31
+ return `{${Object.keys(record).sort().map(key => `${JSON.stringify(key)}:${canonicalJson(record[key])}`).join(',')}}`;
32
+ }
33
+ function stableDigest(value) {
34
+ return createHash('sha256').update(canonicalJson(value)).digest('hex');
35
+ }
36
+ function timeoutMs(maxStepDurationMs) {
37
+ // Seven catalog steps each have independently bounded plan + execute phases.
38
+ return Math.min(86_400_000, maxStepDurationMs * 14 + RECOVERY_DEADLINE_GRACE_MS);
39
+ }
40
+ /** Build the only Host definition Recovery is allowed to reconcile. */
41
+ export function recoveryAutomationDefinition(job, maxStepDurationMs, mode) {
42
+ return Object.freeze({
43
+ name: `Assistant recovery: ${job.id}`,
44
+ schedule: mode === 'preview'
45
+ ? Object.freeze({ kind: 'at', at: PREVIEW_AT })
46
+ : Object.freeze({ kind: 'cron', expression: job.cron, timezone: job.timezone }),
47
+ workspace: job.workspace,
48
+ agentPreset: job.preset,
49
+ timeoutMs: timeoutMs(maxStepDurationMs),
50
+ misfire: Object.freeze({ kind: 'latest' }),
51
+ overlap: 'skip',
52
+ // One expired runner lease may be resumed because every mutating step has
53
+ // an exact durable intent and an idempotent downstream operation receipt.
54
+ retrySafety: 'idempotent',
55
+ maxRetries: 1,
56
+ principal: job.principal,
57
+ ...(job.budgetId === undefined ? {} : { budgetId: job.budgetId, budgetAmount: job.budgetAmount }),
58
+ execution: Object.freeze({
59
+ kind: 'host',
60
+ executorId: RECOVERY_EXECUTOR_ID,
61
+ executorContractVersion: RECOVERY_EXECUTOR_CONTRACT_VERSION,
62
+ runbookId: RECOVERY_RUNBOOK_ID,
63
+ runbookVersion: RECOVERY_RUNBOOK_VERSION,
64
+ catalogDigest: RECOVERY_CATALOG_DIGEST,
65
+ targetScope: Object.freeze({ workspace: job.workspace, preset: job.preset }),
66
+ scopeDigest: scopeDigest(job),
67
+ ownerRouteId: job.ownerRouteId,
68
+ activationNonce: job.activationNonce,
69
+ }),
70
+ });
71
+ }
72
+ /** Exact preview attestation key for the full production control plan. */
73
+ export function recoveryActivationPlanDigest(job, maxStepDurationMs, authorityHash) {
74
+ if (!/^[a-f\d]{64}$/u.test(authorityHash)) {
75
+ throw new AssistantRecoveryError('service-unavailable', 'assistant-recovery requires a valid stable owner-route authority hash');
76
+ }
77
+ return stableDigest({
78
+ contract: 'assistant-recovery-activation/v2',
79
+ owner: RECOVERY_SYSTEM_OWNER,
80
+ automationId: recoveryAutomationId(job.id),
81
+ authorityHash,
82
+ maxStepDurationMs,
83
+ productionDefinition: recoveryAutomationDefinition(job, maxStepDurationMs, 'production'),
84
+ });
85
+ }
86
+ function resolveOwnerRouteAuthority(job, delivery) {
87
+ const receipt = delivery.validateOwnerRoute({
88
+ authorityId: job.ownerRouteId,
89
+ principalId: job.principal,
90
+ workspace: job.workspace,
91
+ agentPreset: job.preset,
92
+ });
93
+ if (receipt.receiptVersion !== 2
94
+ || receipt.authorityId !== job.ownerRouteId
95
+ || receipt.principalId !== job.principal
96
+ || receipt.workspace !== job.workspace
97
+ || receipt.agentPreset !== job.preset
98
+ || typeof receipt.principalRecordId !== 'string'
99
+ || receipt.principalRecordId.normalize('NFC').trim() !== receipt.principalRecordId
100
+ || receipt.principalRecordId === ''
101
+ || Buffer.byteLength(receipt.principalRecordId, 'utf8') > 500
102
+ || !Number.isSafeInteger(receipt.principalVersion) || receipt.principalVersion < 1
103
+ || typeof receipt.authorityHash !== 'string'
104
+ || !/^[a-f\d]{64}$/u.test(receipt.authorityHash)
105
+ || !Number.isSafeInteger(receipt.bindingVersion) || receipt.bindingVersion < 1
106
+ || !Number.isSafeInteger(receipt.generation) || receipt.generation < 1) {
107
+ throw new AssistantRecoveryError('service-unavailable', `assistant-recovery owner route ${job.ownerRouteId} returned an invalid receipt`);
108
+ }
109
+ return receipt.authorityHash;
110
+ }
111
+ function requiredService(ctx, name) {
112
+ const service = ctx.get(name);
113
+ if (service === undefined) {
114
+ throw new AssistantRecoveryError('service-unavailable', `assistant-recovery requires ${name}`);
115
+ }
116
+ return service;
117
+ }
118
+ function requireHostSeams(provider, service, methods) {
119
+ const value = service;
120
+ const missing = methods.find(method => typeof value[method] !== 'function');
121
+ if (missing !== undefined) {
122
+ throw new AssistantRecoveryError('service-unavailable', `assistant-recovery requires ${provider}.${missing}`);
123
+ }
124
+ }
125
+ function stableErrorCode(error, fallback) {
126
+ const code = typeof error === 'object' && error !== null && 'code' in error
127
+ ? error.code
128
+ : undefined;
129
+ if (typeof code !== 'string')
130
+ return fallback;
131
+ const normalized = code.normalize('NFC').trim().toLowerCase();
132
+ return /^[a-z\d][a-z\d.-]{0,63}$/u.test(normalized) ? normalized : fallback;
133
+ }
134
+ export class AssistantRecoveryService extends Service {
135
+ static Config = ConfigSchema;
136
+ static inject = [
137
+ 'assistantAutomations',
138
+ 'assistantDelivery',
139
+ 'assistantEvaluation',
140
+ 'assistantEvolution',
141
+ 'assistantPreferenceLearning',
142
+ 'assistantHealth',
143
+ ];
144
+ config;
145
+ store;
146
+ automations;
147
+ activationPlanDigests;
148
+ automationExecutor;
149
+ unregisterExecutor;
150
+ bootstrap;
151
+ active = true;
152
+ constructor(ctx, input) {
153
+ super(ctx, 'assistantRecovery');
154
+ this.config = normalizeRecoveryConfig(input);
155
+ this.store = new RecoveryStore({
156
+ path: this.config.databasePath,
157
+ maxStepDurationMs: this.config.maxStepDurationMs,
158
+ deadlineGraceMs: RECOVERY_DEADLINE_GRACE_MS,
159
+ });
160
+ const bootstrapGeneration = (() => {
161
+ try {
162
+ return this.store.beginBootstrap({
163
+ attestationValid: false,
164
+ attestations: Object.freeze([]),
165
+ }).generation;
166
+ }
167
+ catch (error) {
168
+ this.store.close();
169
+ throw error;
170
+ }
171
+ })();
172
+ // A production definition is never created active until the same immutable
173
+ // authority tuple completed a preview under the configured activation nonce.
174
+ try {
175
+ this.automations = requiredService(ctx, 'assistantAutomations');
176
+ const delivery = requiredService(ctx, 'assistantDelivery');
177
+ const evaluation = requiredService(ctx, 'assistantEvaluation');
178
+ const evolution = requiredService(ctx, 'assistantEvolution');
179
+ const preference = requiredService(ctx, 'assistantPreferenceLearning');
180
+ const health = requiredService(ctx, 'assistantHealth');
181
+ requireHostSeams('assistantAutomations', this.automations, [
182
+ 'inspectSystemOwned', 'listSystemOwned', 'pauseSystemOwned',
183
+ 'probeCircuitAndScheduleCanary', 'reconcileSystem', 'registerHostExecutor', 'runSystemDry',
184
+ ]);
185
+ requireHostSeams('assistantDelivery', delivery, ['validateOwnerRoute']);
186
+ requireHostSeams('assistantEvaluation', evaluation, [
187
+ 'health', 'peekPendingProjection', 'reconcileProjection',
188
+ ]);
189
+ requireHostSeams('assistantEvolution', evolution, [
190
+ 'hostCandidates', 'hostListRules', 'hostRollbackOne',
191
+ ]);
192
+ requireHostSeams('assistantPreferenceLearning', preference, [
193
+ 'health', 'hostActivationCandidate', 'hostActivateOne', 'hostMaintainOne',
194
+ 'hostOwnerFence', 'hostReview',
195
+ ]);
196
+ requireHostSeams('assistantHealth', health, ['hostGlobalSnapshot']);
197
+ const authorityHashes = new Map();
198
+ for (const job of this.config.jobs) {
199
+ try {
200
+ authorityHashes.set(recoveryAutomationId(job.id), resolveOwnerRouteAuthority(job, delivery));
201
+ }
202
+ catch (error) {
203
+ this.pauseUnattestedJob(job);
204
+ throw error;
205
+ }
206
+ }
207
+ this.activationPlanDigests = new Map(this.config.jobs.map(job => {
208
+ const automationId = recoveryAutomationId(job.id);
209
+ const authorityHash = authorityHashes.get(automationId);
210
+ if (authorityHash === undefined) {
211
+ throw new AssistantRecoveryError('service-unavailable', `assistant-recovery job ${job.id} has no owner-route authority attestation`);
212
+ }
213
+ return [
214
+ automationId,
215
+ recoveryActivationPlanDigest(job, this.config.maxStepDurationMs, authorityHash),
216
+ ];
217
+ }));
218
+ const bootstrapAttestations = this.config.jobs.map(job => Object.freeze({
219
+ automationId: recoveryAutomationId(job.id),
220
+ activationState: job.activationState,
221
+ activationNonce: job.activationNonce,
222
+ activationPlanDigest: this.activationPlanDigests.get(recoveryAutomationId(job.id)),
223
+ }));
224
+ this.store.attestBootstrap({
225
+ expectedGeneration: bootstrapGeneration,
226
+ attestations: bootstrapAttestations,
227
+ });
228
+ for (const job of this.config.jobs) {
229
+ if (job.activationState === 'active' && this.previewFor(job) === undefined) {
230
+ this.pauseUnattestedJob(job);
231
+ throw new AssistantRecoveryError('missing-preview', `assistant-recovery job ${job.id} requires a successful preview before activation`);
232
+ }
233
+ }
234
+ const jobs = new Map(this.config.jobs.map(job => [recoveryAutomationId(job.id), job]));
235
+ const runtime = {
236
+ automations: this.automations, delivery, evaluation, evolution, preference, health,
237
+ };
238
+ const runbookPort = new HostRecoveryRunbookPort(jobs, runtime, this.activationPlanDigests, authorityHashes);
239
+ this.automationExecutor = new RecoveryAutomationExecutor(new RecoveryExecutor(this.store, runbookPort, this.config.maxStepDurationMs), (input) => {
240
+ const value = this.activationPlanDigests.get(input.automationId);
241
+ if (value === undefined) {
242
+ throw new AssistantRecoveryError('service-unavailable', 'automation has no activation plan');
243
+ }
244
+ return value;
245
+ });
246
+ this.unregisterExecutor = this.automations.registerHostExecutor(this.automationExecutor);
247
+ const previewJobs = [];
248
+ try {
249
+ this.pauseRemovedJobs(new Set(jobs.keys()));
250
+ // Production/paused reconciliation is synchronous. Configuration,
251
+ // ownership or Policy failures therefore abort plugin activation rather
252
+ // than leaving a deceptively healthy, inert Recovery service.
253
+ for (const job of this.config.jobs) {
254
+ if (job.activationState === 'preview') {
255
+ // Pause every preview definition synchronously before any preview
256
+ // runs. If an earlier job fails, later jobs cannot retain an old
257
+ // active production schedule while bootstrap short-circuits.
258
+ this.reconcilePreviewPaused(job);
259
+ previewJobs.push(job);
260
+ }
261
+ else
262
+ this.reconcileProduction(job, job.activationState);
263
+ }
264
+ }
265
+ catch (error) {
266
+ this.unregisterExecutor();
267
+ throw error;
268
+ }
269
+ this.bootstrap = this.runPreviews(previewJobs).then(() => {
270
+ this.store.completeBootstrap({
271
+ expectedGeneration: bootstrapGeneration,
272
+ status: 'succeeded',
273
+ });
274
+ }, (error) => {
275
+ this.store.completeBootstrap({
276
+ expectedGeneration: bootstrapGeneration,
277
+ status: 'failed',
278
+ failureCode: stableErrorCode(error, 'preview-bootstrap-failed'),
279
+ });
280
+ throw error;
281
+ });
282
+ void this.bootstrap.catch((error) => {
283
+ ctx.logger.error(`assistant-recovery bootstrap failed: ${stableErrorCode(error, 'preview-bootstrap-failed')}`);
284
+ });
285
+ }
286
+ catch (error) {
287
+ try {
288
+ this.store.completeBootstrap({
289
+ expectedGeneration: bootstrapGeneration,
290
+ status: 'failed',
291
+ failureCode: stableErrorCode(error, 'service-bootstrap-failed'),
292
+ });
293
+ }
294
+ catch {
295
+ // The activation error remains authoritative if observability fails.
296
+ }
297
+ this.store.close();
298
+ throw error;
299
+ }
300
+ ctx.effect(() => async () => {
301
+ this.active = false;
302
+ this.unregisterExecutor();
303
+ await Promise.allSettled([this.bootstrap]);
304
+ await this.automationExecutor.whenIdle();
305
+ this.store.close();
306
+ }, 'assistant-recovery.runtime');
307
+ }
308
+ health() {
309
+ this.assertActive();
310
+ return this.store.health();
311
+ }
312
+ async whenIdle() {
313
+ this.assertActive();
314
+ await this.bootstrap;
315
+ await this.automationExecutor.whenIdle();
316
+ }
317
+ previewFor(job) {
318
+ const activationPlanDigest = this.activationPlanDigests.get(recoveryAutomationId(job.id));
319
+ if (activationPlanDigest === undefined) {
320
+ throw new AssistantRecoveryError('service-unavailable', `assistant-recovery job ${job.id} has no activation plan`);
321
+ }
322
+ return this.store.findSuccessfulPreview({
323
+ automationId: recoveryAutomationId(job.id),
324
+ targetScope: { workspace: job.workspace, preset: job.preset },
325
+ principal: job.principal,
326
+ ownerRouteId: job.ownerRouteId,
327
+ activationNonce: job.activationNonce,
328
+ activationPlanDigest,
329
+ catalogDigest: job.catalogDigest,
330
+ });
331
+ }
332
+ async runPreviews(jobs) {
333
+ for (const job of jobs) {
334
+ if (!this.active)
335
+ throw new AssistantRecoveryError('disposed', 'assistant-recovery service is disposed');
336
+ await this.runPreview(job);
337
+ }
338
+ }
339
+ reconcileProduction(job, state) {
340
+ const definition = recoveryAutomationDefinition(job, this.config.maxStepDurationMs, 'production');
341
+ this.automations.reconcileSystem({
342
+ owner: RECOVERY_SYSTEM_OWNER,
343
+ automationId: recoveryAutomationId(job.id),
344
+ idempotencyKey: this.reconcileIdempotencyKey(job, state, definition, 'production'),
345
+ desiredStatus: state,
346
+ definition,
347
+ });
348
+ }
349
+ reconcilePreviewPaused(job) {
350
+ const definition = recoveryAutomationDefinition(job, this.config.maxStepDurationMs, 'preview');
351
+ this.automations.reconcileSystem({
352
+ owner: RECOVERY_SYSTEM_OWNER,
353
+ automationId: recoveryAutomationId(job.id),
354
+ idempotencyKey: this.reconcileIdempotencyKey(job, 'paused', definition, 'preview-paused'),
355
+ desiredStatus: 'paused',
356
+ definition,
357
+ });
358
+ }
359
+ pauseRemovedJobs(desiredAutomationIds) {
360
+ const inventory = this.automations.listSystemOwned({ owner: RECOVERY_SYSTEM_OWNER, limit: 1_000 });
361
+ if (inventory.length === 1_000) {
362
+ throw new AssistantRecoveryError('service-unavailable', 'assistant-recovery system-owned inventory reached its safe reconciliation bound');
363
+ }
364
+ for (const current of inventory) {
365
+ if (desiredAutomationIds.has(current.automationId) || current.automationStatus !== 'active')
366
+ continue;
367
+ const operationId = `recovery-remove:v1:${stableDigest({
368
+ owner: RECOVERY_SYSTEM_OWNER,
369
+ automationId: current.automationId,
370
+ definitionHash: current.definitionHash,
371
+ expectedVersion: current.definitionVersion,
372
+ })}`;
373
+ const receipt = this.automations.pauseSystemOwned({
374
+ owner: RECOVERY_SYSTEM_OWNER,
375
+ operationId,
376
+ automationId: current.automationId,
377
+ definitionHash: current.definitionHash,
378
+ expectedVersion: current.definitionVersion,
379
+ });
380
+ if (receipt.operationId !== operationId
381
+ || receipt.owner !== RECOVERY_SYSTEM_OWNER
382
+ || receipt.automationId !== current.automationId
383
+ || receipt.definitionHash !== current.definitionHash
384
+ || receipt.expectedVersion !== current.definitionVersion
385
+ || receipt.definitionVersion !== current.definitionVersion + 1
386
+ || receipt.automationStatus !== 'paused') {
387
+ throw new AssistantRecoveryError('service-unavailable', 'assistant-recovery received an invalid removed-job pause receipt');
388
+ }
389
+ }
390
+ }
391
+ pauseUnattestedJob(job) {
392
+ const automationId = recoveryAutomationId(job.id);
393
+ let current;
394
+ try {
395
+ current = this.automations.inspectSystemOwned({ owner: RECOVERY_SYSTEM_OWNER, automationId });
396
+ }
397
+ catch (error) {
398
+ if (stableErrorCode(error, 'inspect-failed') === 'not-found')
399
+ return;
400
+ throw error;
401
+ }
402
+ if (current.automationStatus !== 'active')
403
+ return;
404
+ const operationId = `recovery-unattested:v1:${stableDigest({
405
+ owner: RECOVERY_SYSTEM_OWNER,
406
+ automationId,
407
+ definitionHash: current.definitionHash,
408
+ expectedVersion: current.definitionVersion,
409
+ })}`;
410
+ const receipt = this.automations.pauseSystemOwned({
411
+ owner: RECOVERY_SYSTEM_OWNER,
412
+ operationId,
413
+ automationId,
414
+ definitionHash: current.definitionHash,
415
+ expectedVersion: current.definitionVersion,
416
+ });
417
+ if (receipt.operationId !== operationId
418
+ || receipt.owner !== RECOVERY_SYSTEM_OWNER
419
+ || receipt.automationId !== automationId
420
+ || receipt.definitionHash !== current.definitionHash
421
+ || receipt.expectedVersion !== current.definitionVersion
422
+ || receipt.definitionVersion !== current.definitionVersion + 1
423
+ || receipt.automationStatus !== 'paused') {
424
+ throw new AssistantRecoveryError('service-unavailable', 'assistant-recovery received an invalid unattested-job pause receipt');
425
+ }
426
+ }
427
+ async runPreview(job) {
428
+ const automationId = recoveryAutomationId(job.id);
429
+ const definition = recoveryAutomationDefinition(job, this.config.maxStepDurationMs, 'preview');
430
+ let activationAttempted = false;
431
+ let failure;
432
+ try {
433
+ activationAttempted = true;
434
+ this.automations.reconcileSystem({
435
+ owner: RECOVERY_SYSTEM_OWNER,
436
+ automationId,
437
+ idempotencyKey: this.reconcileIdempotencyKey(job, 'active', definition, 'preview-active'),
438
+ desiredStatus: 'active',
439
+ definition,
440
+ });
441
+ const projection = this.automations.inspectSystemOwned({ owner: RECOVERY_SYSTEM_OWNER, automationId });
442
+ const result = await this.automations.runSystemDry({
443
+ owner: RECOVERY_SYSTEM_OWNER,
444
+ automationId,
445
+ definitionHash: projection.definitionHash,
446
+ idempotencyKey: `recovery-preview:${job.activationNonce}:${projection.definitionHash}`,
447
+ });
448
+ if (result.occurrence.dryRun !== true || result.run.executionMode !== 'preview'
449
+ || result.occurrence.status !== 'succeeded' || result.run.status !== 'succeeded') {
450
+ throw new AssistantRecoveryError('preview-failed', `assistant-recovery preview ${job.id} finished as ${result.run.status}`);
451
+ }
452
+ if (this.previewFor(job) === undefined) {
453
+ throw new AssistantRecoveryError('preview-failed', `assistant-recovery preview ${job.id} did not attest the current activation plan`);
454
+ }
455
+ }
456
+ catch (error) {
457
+ failure = { error, code: stableErrorCode(error, 'preview-bootstrap-failed') };
458
+ this.recordControlFailure(job, 'preview', failure.code);
459
+ }
460
+ if (activationAttempted) {
461
+ try {
462
+ this.automations.reconcileSystem({
463
+ owner: RECOVERY_SYSTEM_OWNER,
464
+ automationId,
465
+ idempotencyKey: this.reconcileIdempotencyKey(job, 'paused', definition, 'preview-paused'),
466
+ desiredStatus: 'paused',
467
+ definition,
468
+ });
469
+ }
470
+ catch (error) {
471
+ if (failure === undefined) {
472
+ failure = { error, code: stableErrorCode(error, 'preview-pause-failed') };
473
+ this.recordControlFailure(job, 'preview', failure.code);
474
+ }
475
+ }
476
+ }
477
+ if (failure !== undefined)
478
+ throw failure.error;
479
+ }
480
+ recordControlFailure(job, executionMode, resultCode) {
481
+ try {
482
+ const activationPlanDigest = this.activationPlanDigests.get(recoveryAutomationId(job.id));
483
+ if (activationPlanDigest === undefined)
484
+ return;
485
+ const definition = recoveryAutomationDefinition(job, this.config.maxStepDurationMs, executionMode === 'preview' ? 'preview' : 'production');
486
+ const definitionHash = stableDigest(definition);
487
+ const run = this.store.beginRun({
488
+ occurrenceId: `recovery-control-${stableDigest({
489
+ automationId: recoveryAutomationId(job.id),
490
+ executionMode,
491
+ resultCode,
492
+ activationPlanDigest,
493
+ })}`,
494
+ automationId: recoveryAutomationId(job.id),
495
+ definitionHash,
496
+ executionMode,
497
+ targetScope: { workspace: job.workspace, preset: job.preset },
498
+ principal: job.principal,
499
+ ownerRouteId: job.ownerRouteId,
500
+ activationNonce: job.activationNonce,
501
+ activationPlanDigest,
502
+ catalogDigest: job.catalogDigest,
503
+ }).run;
504
+ if (run.status === 'running') {
505
+ this.store.completeRun({
506
+ runId: run.id,
507
+ expectedVersion: run.version,
508
+ status: 'failed',
509
+ resultCode,
510
+ });
511
+ }
512
+ }
513
+ catch {
514
+ // The original bootstrap error remains authoritative. A secondary
515
+ // observability write must never mask it or invent a contradictory state.
516
+ }
517
+ }
518
+ reconcileIdempotencyKey(job, desiredStatus, definition, stage) {
519
+ const automationId = recoveryAutomationId(job.id);
520
+ let current;
521
+ try {
522
+ const projection = this.automations.inspectSystemOwned({ owner: RECOVERY_SYSTEM_OWNER, automationId });
523
+ current = Object.freeze({
524
+ status: projection.automationStatus,
525
+ definitionHash: projection.definitionHash,
526
+ definitionVersion: projection.definitionVersion,
527
+ });
528
+ }
529
+ catch (error) {
530
+ if (stableErrorCode(error, 'inspect-failed') !== 'not-found')
531
+ throw error;
532
+ current = Object.freeze({ missing: true });
533
+ }
534
+ return `recovery-reconcile:v1:${stableDigest({
535
+ stage,
536
+ owner: RECOVERY_SYSTEM_OWNER,
537
+ automationId,
538
+ desiredStatus,
539
+ definition,
540
+ current,
541
+ })}`;
542
+ }
543
+ assertActive() {
544
+ if (!this.active)
545
+ throw new AssistantRecoveryError('disposed', 'assistant-recovery service is disposed');
546
+ }
547
+ }
548
+ export const Config = AssistantRecoveryService.Config;
549
+ //# sourceMappingURL=service.js.map