@dsh-enhanced/lark-channel 0.1.6 → 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.
@@ -1,11 +1,14 @@
1
1
  #!/usr/bin/env node
2
- import { chmod, open, readFile, rename } from 'node:fs/promises';
2
+ import { chmod, open, readFile, rename, stat } from 'node:fs/promises';
3
3
  import { spawnSync } from 'node:child_process';
4
+ import { createHash, randomUUID } from 'node:crypto';
4
5
  import { homedir } from 'node:os';
5
6
  import { dirname, isAbsolute, join } from 'node:path';
7
+ import { isDeepStrictEqual } from 'node:util';
8
+ import { isMap, isSeq, parseDocument } from 'yaml';
6
9
  import { installDshResidentService, residentServiceKind } from './resident.js';
7
10
  import { isMainEntry } from './setup.js';
8
- import { assertEffectiveSupervisedGrowthConfig, configureSupervisedGrowthProfilePatch, supervisedGrowthDatabasePaths, supervisedGrowthBindingQuery, } from './supervised-growth-profile.js';
11
+ import { assertEffectiveSupervisedGrowthConfig, configureSupervisedGrowthProfilePatch, supervisedGrowthDatabasePaths, supervisedGrowthBindingQuery, supervisedGrowthAnalystRuntimeConfig, supervisedGrowthRecoveryRuntimeConfig, } from './supervised-growth-profile.js';
9
12
  const keyPattern = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u;
10
13
  function argumentValue(argv, index, option) {
11
14
  const value = argv[index + 1];
@@ -42,7 +45,15 @@ export function assertSupervisedGrowthAutomationGuard(records, acknowledged) {
42
45
  // heartbeat is not intrinsically safe: it may carry broad tools or a
43
46
  // different route. Keep the guard stricter than necessary until an exact
44
47
  // managed-definition hash can prove a pre-existing row is this overlay.
45
- const existing = records.filter(record => record.status === 'active');
48
+ // The exact legacy managed job is migrated with scheduler=false, its execute
49
+ // grant removed, and its Heartbeat profile reconciled to paused before the
50
+ // active scheduler is restored. Other durable active rows remain an explicit
51
+ // operator decision.
52
+ const existing = records.filter(record => record.status === 'active'
53
+ && !(record.id === 'heartbeat:supervised-growth' && record.owner === 'assistant-heartbeat')
54
+ && !(record.id === 'heartbeat:supervised-growth-analyst' && record.owner === 'assistant-heartbeat')
55
+ && !(record.id === 'recovery:supervised-growth'
56
+ && record.owner === 'dsh-enhanced-assistant-recovery'));
46
57
  if (existing.length > 0 && !acknowledged) {
47
58
  throw new Error('supervised-growth setup: active automations already exist; rerun with --ack-existing-automations to leave them untouched');
48
59
  }
@@ -145,65 +156,37 @@ export async function activateSupervisedGrowthPatch(input) {
145
156
  throw error;
146
157
  }
147
158
  }
148
- function delay(milliseconds) {
149
- return new Promise(resolve => setTimeout(resolve, milliseconds));
150
- }
151
- async function boundedAwait(input) {
152
- let timeout;
153
- const deadline = new Promise((_resolve, reject) => {
154
- timeout = setTimeout(() => {
155
- input.onTimeout?.();
156
- reject(new Error(`supervised-growth setup: ${input.label} timed out`));
157
- }, input.timeoutMs);
158
- });
159
- try {
160
- return await Promise.race([input.operation, deadline]);
161
- }
162
- finally {
163
- if (timeout !== undefined)
164
- clearTimeout(timeout);
165
- }
166
- }
167
159
  /**
168
- * Explicit installation-only control-plane probe. It calls the provider's
169
- * named readiness API rather than listModels/resolveModel, which intentionally
170
- * remain process-free because they do not carry a live loop session identity.
160
+ * Transactional two-restart activation. Preview and production deliberately
161
+ * share one nonce and catalog digest, but production is not even written until
162
+ * the caller has attested the restarted preview bootstrap. Any failure restores
163
+ * the exact original patch bytes and restarts that original profile.
171
164
  */
172
- export async function verifySupervisedGrowthTraexReadiness(input, dependencies = {}) {
173
- if (!Number.isSafeInteger(input.timeoutMs) || input.timeoutMs < 1) {
174
- throw new Error('supervised-growth setup: TraeX readiness timeout must be a positive integer');
175
- }
176
- if (input.traexConfig['enabled'] !== true) {
177
- throw new Error('supervised-growth setup: TraeX readiness requires an enabled effective provider configuration');
178
- }
179
- const timeoutMs = Math.min(input.timeoutMs, 60_000);
180
- const load = dependencies.load ?? (async () => {
181
- const provider = await import('@dsh-enhanced/traex-acp-provider');
182
- if (typeof provider.Config !== 'function' || typeof provider.probeTraexReadiness !== 'function') {
183
- throw new Error('supervised-growth setup: installed TraeX provider lacks the required explicit readiness probe');
184
- }
185
- return provider;
186
- });
187
- const provider = await boundedAwait({
188
- operation: load(), timeoutMs, label: 'loading the TraeX readiness provider',
189
- });
190
- const config = provider.Config({ ...input.traexConfig });
191
- const controller = new AbortController();
165
+ export async function activateSupervisedGrowthRecoveryStages(input) {
192
166
  try {
193
- const catalog = await boundedAwait({
194
- operation: provider.probeTraexReadiness(config, { timeoutMs, signal: controller.signal }),
195
- timeoutMs,
196
- label: 'TraeX login and model catalog readiness',
197
- onTimeout: () => controller.abort(new Error('supervised-growth readiness timeout')),
198
- });
199
- if (!Array.isArray(catalog.models) || catalog.models.length === 0) {
200
- throw new Error('supervised-growth setup: TraeX readiness returned no usable TraeX models');
201
- }
167
+ await atomicWrite(input.patchPath, input.previewPatch);
168
+ const previewEffective = input.validate('preview');
169
+ await input.afterStage('preview', previewEffective);
170
+ const activePatch = input.buildActivePatch(previewEffective);
171
+ await atomicWrite(input.patchPath, activePatch);
172
+ const activeEffective = input.validate('active');
173
+ await input.afterStage('active', activeEffective);
174
+ return activeEffective;
202
175
  }
203
- finally {
204
- controller.abort();
176
+ catch (error) {
177
+ await atomicWrite(input.patchPath, input.originalPatch);
178
+ try {
179
+ await input.restore();
180
+ }
181
+ catch (rollbackError) {
182
+ throw new Error(`supervised-growth setup: activation failed and rollback service restore also failed: ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}`, { cause: error });
183
+ }
184
+ throw error;
205
185
  }
206
186
  }
187
+ function delay(milliseconds) {
188
+ return new Promise(resolve => setTimeout(resolve, milliseconds));
189
+ }
207
190
  function residentHealthCommand(command, args) {
208
191
  const result = spawnSync(command, args, {
209
192
  encoding: 'utf8', maxBuffer: 128 * 1024, stdio: ['ignore', 'pipe', 'pipe'],
@@ -257,6 +240,285 @@ export async function restartAndVerifySupervisedGrowthResident(input) {
257
240
  await (input.verify ?? verifySupervisedGrowthResidentService)(service);
258
241
  return service;
259
242
  }
243
+ async function inspectRecoveryBootstrap(databasePath) {
244
+ const { RecoveryStore } = await import('@dsh-enhanced/assistant-recovery');
245
+ const store = new RecoveryStore({ path: databasePath });
246
+ try {
247
+ return store.health();
248
+ }
249
+ finally {
250
+ store.close();
251
+ }
252
+ }
253
+ async function recoveryBootstrapGenerationBeforeRestart(databasePath) {
254
+ try {
255
+ await stat(databasePath);
256
+ }
257
+ catch (error) {
258
+ if (typeof error === 'object' && error !== null && 'code' in error
259
+ && error.code === 'ENOENT')
260
+ return 0;
261
+ throw error;
262
+ }
263
+ const generation = (await inspectRecoveryBootstrap(databasePath)).bootstrapGeneration;
264
+ if (!Number.isSafeInteger(generation) || generation < 0) {
265
+ throw new Error('supervised-growth setup: persisted Recovery bootstrap generation is invalid before restart');
266
+ }
267
+ return generation;
268
+ }
269
+ async function automationSnapshots(databasePath) {
270
+ const { listAutomationsLocally } = await import('@dsh-enhanced/assistant-automations');
271
+ return listAutomationsLocally(databasePath);
272
+ }
273
+ function effectiveOwnerRoutes(effectiveConfig) {
274
+ const document = parseDocument(effectiveConfig, { uniqueKeys: true });
275
+ if (document.errors.length > 0) {
276
+ throw new Error(`supervised-growth setup: invalid effective profile YAML: ${document.errors[0].message}`);
277
+ }
278
+ if (!isSeq(document.contents)) {
279
+ throw new Error('supervised-growth setup: effective profile must be a YAML sequence');
280
+ }
281
+ const rows = document.contents.items.filter(item => isMap(item)
282
+ && item.get('id') === 'dsh-enhanced-assistant-delivery');
283
+ if (rows.length !== 1 || rows[0].get('disabled') === true) {
284
+ throw new Error('supervised-growth setup: effective assistant-delivery row must be uniquely enabled');
285
+ }
286
+ const configNode = rows[0].get('config', true);
287
+ if (!isMap(configNode)) {
288
+ throw new Error('supervised-growth setup: effective assistant-delivery config must be a YAML mapping');
289
+ }
290
+ const routesNode = configNode.get('ownerRoutes', true);
291
+ if (routesNode === undefined)
292
+ return Object.freeze([]);
293
+ if (!isSeq(routesNode)) {
294
+ throw new Error('supervised-growth setup: effective assistant-delivery.ownerRoutes must be a YAML sequence');
295
+ }
296
+ return Object.freeze(routesNode.items.map((item, index) => {
297
+ if (!isMap(item)) {
298
+ throw new Error(`supervised-growth setup: effective ownerRoutes[${index}] must be a YAML mapping`);
299
+ }
300
+ const value = item.toJSON();
301
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
302
+ throw new Error(`supervised-growth setup: effective ownerRoutes[${index}] must be a YAML mapping`);
303
+ }
304
+ return value;
305
+ }));
306
+ }
307
+ /**
308
+ * Rebuild Recovery's complete content-free bootstrap proof from the final DSH
309
+ * config. The same Delivery authority hash and Recovery activation-plan digest
310
+ * algorithms used by the live service are deliberately reused here.
311
+ */
312
+ export async function expectedSupervisedGrowthRecoveryBootstrap(effectiveConfig, recoveryDatabasePath) {
313
+ const [delivery, recovery] = await Promise.all([
314
+ import('@dsh-enhanced/assistant-delivery'),
315
+ import('@dsh-enhanced/assistant-recovery'),
316
+ ]);
317
+ const normalized = recovery.normalizeRecoveryConfig({
318
+ ...supervisedGrowthRecoveryRuntimeConfig(effectiveConfig),
319
+ databasePath: recoveryDatabasePath,
320
+ });
321
+ const authorityHash = delivery.ownerRouteAuthorityHash;
322
+ const authorities = new Map();
323
+ for (const raw of effectiveOwnerRoutes(effectiveConfig)) {
324
+ const rawId = raw.id;
325
+ if (typeof rawId !== 'string') {
326
+ throw new Error('supervised-growth setup: effective owner route id is invalid');
327
+ }
328
+ const id = rawId.normalize('NFC').trim();
329
+ const authority = raw;
330
+ const digest = authorityHash(authority);
331
+ if (authorities.has(id)) {
332
+ throw new Error(`supervised-growth setup: effective owner route ${id} is duplicated`);
333
+ }
334
+ authorities.set(id, digest);
335
+ }
336
+ const attestations = recovery.canonicalRecoveryBootstrapAttestationSet(normalized.jobs.map(job => {
337
+ const route = authorities.get(job.ownerRouteId);
338
+ if (route === undefined) {
339
+ throw new Error(`supervised-growth setup: Recovery job ${job.id} has no effective owner route`);
340
+ }
341
+ return Object.freeze({
342
+ automationId: recovery.recoveryAutomationId(job.id),
343
+ activationState: job.activationState,
344
+ activationNonce: job.activationNonce,
345
+ activationPlanDigest: recovery.recoveryActivationPlanDigest(job, normalized.maxStepDurationMs, route),
346
+ });
347
+ }));
348
+ return Object.freeze({
349
+ attestations,
350
+ attestationSetDigest: recovery.recoveryBootstrapAttestationSetDigest(attestations),
351
+ });
352
+ }
353
+ async function expectedRecoveryProductionDefinition(effectiveConfig, recoveryDatabasePath) {
354
+ const recovery = await import('@dsh-enhanced/assistant-recovery');
355
+ const runtimeConfig = supervisedGrowthRecoveryRuntimeConfig(effectiveConfig);
356
+ const normalized = recovery.normalizeRecoveryConfig({ ...runtimeConfig, databasePath: recoveryDatabasePath });
357
+ const job = normalized.jobs.find(candidate => candidate.id === 'supervised-growth');
358
+ if (job === undefined) {
359
+ throw new Error('supervised-growth setup: effective Recovery job is missing during runtime attestation');
360
+ }
361
+ return recovery.recoveryAutomationDefinition(job, normalized.maxStepDurationMs, 'production');
362
+ }
363
+ /**
364
+ * Rebuild the exact analyst definition from final config and its private,
365
+ * managed scratch. Drifted scratch bytes fail activation instead of silently
366
+ * changing what the unattended analyst will do.
367
+ */
368
+ async function expectedSupervisedGrowthAnalystDefinition(effectiveConfig) {
369
+ const heartbeatRuntime = supervisedGrowthAnalystRuntimeConfig(effectiveConfig);
370
+ const heartbeat = await import('@dsh-enhanced/assistant-heartbeat');
371
+ const normalized = heartbeat.normalizeHeartbeatConfig({
372
+ heartbeats: [heartbeatRuntime.heartbeat],
373
+ maxScratchBytes: heartbeatRuntime.maxScratchBytes,
374
+ });
375
+ const profile = normalized.heartbeats[0];
376
+ if (profile === undefined || profile.id !== 'supervised-growth-analyst') {
377
+ throw new Error('supervised-growth setup: normalized analyst heartbeat is missing');
378
+ }
379
+ const raw = await readFile(profile.scratchPath, 'utf8');
380
+ const content = raw.normalize('NFC').replace(/\r\n?/gu, '\n').trim();
381
+ if (content !== profile.initialScratch.normalize('NFC').replace(/\r\n?/gu, '\n').trim()) {
382
+ throw new Error('supervised-growth setup: managed analyst scratch drifted from the attested contract');
383
+ }
384
+ if (Buffer.byteLength(content, 'utf8') > heartbeatRuntime.maxScratchBytes) {
385
+ throw new Error('supervised-growth setup: managed analyst scratch exceeds its configured bound');
386
+ }
387
+ const revision = createHash('sha256').update(content, 'utf8').digest('hex');
388
+ return heartbeat.heartbeatDefinition(profile, content, revision);
389
+ }
390
+ /**
391
+ * Persisted plugin bootstrap, not merely OS process state, is the stage gate.
392
+ * Preview additionally proves both model-free jobs are paused; active proves the
393
+ * exact compiled production definition is the sole active managed replacement.
394
+ */
395
+ export async function verifySupervisedGrowthRecoveryStage(input, dependencies = {}) {
396
+ const inspect = dependencies.inspectRecovery ?? inspectRecoveryBootstrap;
397
+ const listAll = dependencies.listAutomations
398
+ ?? dependencies.listActiveAutomations
399
+ ?? automationSnapshots;
400
+ const expectedBootstrap = await (dependencies.expectedBootstrap
401
+ ?? expectedSupervisedGrowthRecoveryBootstrap)(input.effectiveConfig, input.recoveryDatabasePath);
402
+ const expectedDefinition = input.stage === 'active'
403
+ ? await (dependencies.expectedProductionDefinition ?? expectedRecoveryProductionDefinition)(input.effectiveConfig, input.recoveryDatabasePath)
404
+ : undefined;
405
+ const expectedAnalystDefinition = await (dependencies.expectedAnalystDefinition ?? expectedSupervisedGrowthAnalystDefinition)(input.effectiveConfig);
406
+ const wait = dependencies.wait ?? delay;
407
+ const retryDelayMs = dependencies.retryDelayMs ?? 250;
408
+ if (!Number.isSafeInteger(input.previousBootstrapGeneration) || input.previousBootstrapGeneration < 0
409
+ || !Number.isSafeInteger(input.timeoutMs) || input.timeoutMs < 1 || input.timeoutMs > 900_000
410
+ || !Number.isSafeInteger(retryDelayMs) || retryDelayMs < 1 || retryDelayMs > 5_000) {
411
+ throw new Error('supervised-growth setup: invalid Recovery bootstrap verification bounds');
412
+ }
413
+ let remaining = input.timeoutMs;
414
+ let highestObservedGeneration = input.previousBootstrapGeneration;
415
+ let lastFailure;
416
+ for (;;) {
417
+ try {
418
+ const health = await inspect(input.recoveryDatabasePath);
419
+ const generation = health.bootstrapGeneration;
420
+ if (!Number.isSafeInteger(generation) || generation < 0) {
421
+ throw new Error('supervised-growth setup: Recovery bootstrap generation is invalid');
422
+ }
423
+ if (generation < highestObservedGeneration) {
424
+ throw new Error(`supervised-growth setup: Recovery bootstrap generation regressed from ${highestObservedGeneration} to ${generation}`);
425
+ }
426
+ highestObservedGeneration = generation;
427
+ if (generation > input.previousBootstrapGeneration) {
428
+ if (health.bootstrapStatus === 'failed') {
429
+ throw new Error(`supervised-growth setup: Recovery ${input.stage} bootstrap failed${health.bootstrapFailureCode === undefined ? '' : `: ${health.bootstrapFailureCode}`}`);
430
+ }
431
+ if (health.bootstrapStatus === 'succeeded') {
432
+ if (!health.bootstrapAttestationValid) {
433
+ throw new Error(`supervised-growth setup: Recovery ${input.stage} bootstrap attestation is invalid`);
434
+ }
435
+ if (!isDeepStrictEqual(health.bootstrapAttestations, expectedBootstrap.attestations)) {
436
+ throw new Error(`supervised-growth setup: Recovery ${input.stage} exact bootstrap attestation set does not match the effective plan`);
437
+ }
438
+ if (health.bootstrapAttestationSetDigest !== expectedBootstrap.attestationSetDigest) {
439
+ throw new Error(`supervised-growth setup: Recovery ${input.stage} bootstrap attestation set digest does not match the effective plan`);
440
+ }
441
+ const automations = await listAll(input.automationsDatabasePath);
442
+ const stableHealth = await inspect(input.recoveryDatabasePath);
443
+ const stableGeneration = stableHealth.bootstrapGeneration;
444
+ if (!Number.isSafeInteger(stableGeneration) || stableGeneration < 0) {
445
+ throw new Error('supervised-growth setup: Recovery bootstrap generation is invalid');
446
+ }
447
+ if (stableGeneration < highestObservedGeneration) {
448
+ throw new Error(`supervised-growth setup: Recovery bootstrap generation regressed from ${highestObservedGeneration} to ${stableGeneration}`);
449
+ }
450
+ highestObservedGeneration = stableGeneration;
451
+ if (stableGeneration !== generation) {
452
+ lastFailure = new Error('Recovery bootstrap generation changed while attesting Automations');
453
+ }
454
+ else {
455
+ if (stableHealth.bootstrapStatus !== 'succeeded'
456
+ || !stableHealth.bootstrapAttestationValid
457
+ || stableHealth.bootstrapAttestationSetDigest !== expectedBootstrap.attestationSetDigest
458
+ || !isDeepStrictEqual(stableHealth.bootstrapAttestations, expectedBootstrap.attestations)) {
459
+ throw new Error(`supervised-growth setup: Recovery ${input.stage} bootstrap attestation changed while attesting Automations`);
460
+ }
461
+ const legacyActive = automations.find(record => record.id === 'heartbeat:supervised-growth'
462
+ && record.status === 'active');
463
+ const recoveries = automations.filter(record => record.id === 'recovery:supervised-growth'
464
+ && record.status === 'active');
465
+ const analysts = automations.filter(record => record.id === 'heartbeat:supervised-growth-analyst');
466
+ const analyst = analysts.length === 1 ? analysts[0] : undefined;
467
+ const expectedAnalystStatus = input.stage === 'active' ? 'active' : 'paused';
468
+ const analystExact = analyst !== undefined
469
+ && analyst.owner === 'assistant-heartbeat'
470
+ && analyst.status === expectedAnalystStatus
471
+ && isDeepStrictEqual(analyst.definition, expectedAnalystDefinition);
472
+ if (!analystExact) {
473
+ throw new Error(`supervised-growth setup: ${input.stage} analyst automation does not match its exact attested definition`);
474
+ }
475
+ if (legacyActive === undefined && input.stage === 'preview' && recoveries.length === 0) {
476
+ return generation;
477
+ }
478
+ if (legacyActive === undefined && input.stage === 'active' && recoveries.length === 1) {
479
+ const record = recoveries[0];
480
+ if (record.owner === 'dsh-enhanced-assistant-recovery'
481
+ && isDeepStrictEqual(record.definition, expectedDefinition))
482
+ return generation;
483
+ throw new Error('supervised-growth setup: active Recovery automation definition does not match the compiled plan');
484
+ }
485
+ lastFailure = new Error(input.stage === 'preview'
486
+ ? 'legacy/recovery/analyst preview automations have not reached their attested paused state'
487
+ : 'exact Recovery and analyst production automations are not active');
488
+ }
489
+ }
490
+ }
491
+ else if (health.bootstrapStatus === 'succeeded'
492
+ && health.bootstrapAttestationValid
493
+ && health.bootstrapAttestationSetDigest === expectedBootstrap.attestationSetDigest
494
+ && isDeepStrictEqual(health.bootstrapAttestations, expectedBootstrap.attestations)) {
495
+ throw new Error(`supervised-growth setup: Recovery ${input.stage} bootstrap reused generation ${generation}`);
496
+ }
497
+ else {
498
+ lastFailure = new Error(`waiting for a Recovery bootstrap generation newer than ${input.previousBootstrapGeneration}`);
499
+ }
500
+ }
501
+ catch (error) {
502
+ // A current-generation explicit bootstrap failure or definition mismatch
503
+ // is terminal. Missing/busy DB state and not-yet-reconciled paused rows are
504
+ // retried within the same bounded gate.
505
+ if (error instanceof Error
506
+ && (/Recovery (?:preview|active) bootstrap failed/u.test(error.message)
507
+ || /bootstrap (?:attestation|generation)/u.test(error.message)
508
+ || /bootstrap reused generation/u.test(error.message)
509
+ || /analyst automation/u.test(error.message)
510
+ || /definition does not match/u.test(error.message)))
511
+ throw error;
512
+ lastFailure = error;
513
+ }
514
+ if (remaining <= 0) {
515
+ throw new Error(`supervised-growth setup: Recovery ${input.stage} bootstrap did not become ready${lastFailure instanceof Error ? `: ${lastFailure.message}` : ''}`);
516
+ }
517
+ const waitFor = Math.min(retryDelayMs, remaining);
518
+ await wait(waitFor);
519
+ remaining -= waitFor;
520
+ }
521
+ }
260
522
  async function awaitOwnerBinding(input) {
261
523
  const { findActiveOwnerDmBindingsLocally } = await import('@dsh-enhanced/assistant-delivery');
262
524
  const deadline = Date.now() + input.timeoutMs;
@@ -309,11 +571,16 @@ export async function runSupervisedGrowthSetup(argv = process.argv.slice(2)) {
309
571
  });
310
572
  const { listActiveAutomationsLocally } = await import('@dsh-enhanced/assistant-automations');
311
573
  assertSupervisedGrowthAutomationGuard(listActiveAutomationsLocally(databases.automationsDatabasePath), args.ackExistingAutomations);
312
- const updatedPatch = configureSupervisedGrowthProfilePatch({
574
+ const { RECOVERY_CATALOG_DIGEST } = await import('@dsh-enhanced/assistant-recovery');
575
+ const activationNonce = randomUUID();
576
+ const previewPatch = configureSupervisedGrowthProfilePatch({
313
577
  profilePatch: originalPatch,
314
578
  effectiveConfig: effectiveBefore,
315
579
  dshHome,
316
580
  binding,
581
+ activationState: 'preview',
582
+ activationNonce,
583
+ recoveryCatalogDigest: RECOVERY_CATALOG_DIGEST,
317
584
  });
318
585
  await assertSelectedOwnerBindingCurrent({
319
586
  databasePath: databases.deliveryDatabasePath,
@@ -321,16 +588,37 @@ export async function runSupervisedGrowthSetup(argv = process.argv.slice(2)) {
321
588
  selected: binding,
322
589
  });
323
590
  let service;
324
- await activateSupervisedGrowthPatch({
591
+ let acceptedBootstrapGeneration;
592
+ await activateSupervisedGrowthRecoveryStages({
325
593
  patchPath,
326
594
  originalPatch,
327
- updatedPatch,
328
- validate: () => dumpProfile(args.profile),
329
- afterCommit: async (effectiveConfig) => {
330
- const verified = assertEffectiveSupervisedGrowthConfig({ effectiveConfig, dshHome, binding });
595
+ previewPatch,
596
+ validate: stage => {
597
+ const effectiveConfig = dumpProfile(args.profile);
598
+ assertEffectiveSupervisedGrowthConfig({
599
+ effectiveConfig,
600
+ dshHome,
601
+ binding,
602
+ activationState: stage,
603
+ activationNonce,
604
+ recoveryCatalogDigest: RECOVERY_CATALOG_DIGEST,
605
+ });
606
+ return effectiveConfig;
607
+ },
608
+ buildActivePatch: previewEffective => configureSupervisedGrowthProfilePatch({
609
+ profilePatch: previewPatch,
610
+ effectiveConfig: previewEffective,
611
+ dshHome,
612
+ binding,
613
+ activationState: 'active',
614
+ activationNonce,
615
+ recoveryCatalogDigest: RECOVERY_CATALOG_DIGEST,
616
+ }),
617
+ afterStage: async (stage, effectiveConfig) => {
331
618
  const effectiveDatabases = supervisedGrowthDatabasePaths(effectiveConfig, dshHome);
332
619
  if (effectiveDatabases.deliveryDatabasePath !== databases.deliveryDatabasePath
333
- || effectiveDatabases.automationsDatabasePath !== databases.automationsDatabasePath) {
620
+ || effectiveDatabases.automationsDatabasePath !== databases.automationsDatabasePath
621
+ || effectiveDatabases.recoveryDatabasePath !== databases.recoveryDatabasePath) {
334
622
  throw new Error('supervised-growth setup: a higher-priority profile layer changed a guarded local database path');
335
623
  }
336
624
  // The binding is re-read after the atomic write and again immediately
@@ -341,16 +629,17 @@ export async function runSupervisedGrowthSetup(argv = process.argv.slice(2)) {
341
629
  query,
342
630
  selected: binding,
343
631
  });
344
- await verifySupervisedGrowthTraexReadiness({
345
- traexConfig: verified.traexConfig,
632
+ const previousBootstrapGeneration = acceptedBootstrapGeneration
633
+ ?? await recoveryBootstrapGenerationBeforeRestart(databases.recoveryDatabasePath);
634
+ service = await restartAndVerifySupervisedGrowthResident({ dshHome, profile: args.profile });
635
+ acceptedBootstrapGeneration = await verifySupervisedGrowthRecoveryStage({
636
+ stage,
637
+ effectiveConfig,
638
+ recoveryDatabasePath: databases.recoveryDatabasePath,
639
+ automationsDatabasePath: databases.automationsDatabasePath,
640
+ previousBootstrapGeneration,
346
641
  timeoutMs: args.timeoutMs,
347
642
  });
348
- await assertSelectedOwnerBindingCurrent({
349
- databasePath: databases.deliveryDatabasePath,
350
- query,
351
- selected: binding,
352
- });
353
- service = await restartAndVerifySupervisedGrowthResident({ dshHome, profile: args.profile });
354
643
  },
355
644
  restore: async () => {
356
645
  dumpProfile(args.profile);
@@ -359,7 +648,7 @@ export async function runSupervisedGrowthSetup(argv = process.argv.slice(2)) {
359
648
  });
360
649
  if (service === undefined)
361
650
  throw new Error('supervised-growth setup: resident restart did not return a service');
362
- process.stdout.write(`supervised-growth 已启用:owner binding ${binding.id},每日运行次数上限 7;每轮最多 512 输出 token。\n`
651
+ process.stdout.write(`supervised-growth/v2 Recovery 已启用:owner binding ${binding.id},Recovery 每日上限 7;独立 adoption analyst 每日上限 1。\n`
363
652
  + `DSH Host 已由 ${service.kind} 重启并通过健康检查。状态:${service.statusCommand}\n日志:${service.logCommand}\n`);
364
653
  }
365
654
  if (process.argv[1] !== undefined && isMainEntry(import.meta.url, process.argv[1])) {
@@ -1 +1 @@
1
- {"version":3,"file":"supervised-growth-setup.js","sourceRoot":"","sources":["../src/supervised-growth-setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supervised-growth-setup.js","sourceRoot":"","sources":["../src/supervised-growth-setup.ts"],"names":[],"mappings":"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"}