@agent-link/agent 0.1.299 → 0.1.300

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.
@@ -18,8 +18,9 @@ export interface UpgradeLock {
18
18
  }
19
19
  export declare function getUpgradeLockPath(): string;
20
20
  export declare function loadUpgradeLockOwner(): UpgradeLockOwner;
21
- export declare function acquireUpgradeLock(jobId: string): UpgradeLock;
21
+ export declare function acquireUpgradeLock(jobId: string, nonce?: string): UpgradeLock;
22
22
  export declare function assignUpgradeLockWorker(jobId: string, nonce: string, worker: ProcessIdentity): UpgradeLockOwner;
23
23
  export declare function releaseUpgradeLockForWorker(jobId: string, nonce: string, worker: ProcessIdentity): void;
24
24
  export declare function hasUpgradeLock(): boolean;
25
25
  export declare function loadUpgradeLockWorkerClaim(): ProcessIdentity | null;
26
+ export declare function reclaimStaleUpgradeLock(jobId: string, nonce: string): boolean;
@@ -1,8 +1,9 @@
1
1
  import { closeSync, existsSync, fsyncSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, writeFileSync, } from 'fs';
2
2
  import { join, resolve } from 'path';
3
- import { randomUUID } from 'crypto';
3
+ import { createHash, randomUUID } from 'crypto';
4
4
  import { CONFIG_DIR } from './config.js';
5
5
  import { getProcessStartIdentity } from './process-identity.js';
6
+ import { matchProcessStartIdentity } from './process-identity.js';
6
7
  import { writePrivateJsonAtomic } from './upgrade-persistence.js';
7
8
  export function getUpgradeLockPath() {
8
9
  return join(CONFIG_DIR, 'upgrades', 'active.lock');
@@ -72,11 +73,15 @@ function releaseClaimedLock(jobId, nonce, role) {
72
73
  throw new Error('Upgrade lock ownership changed unexpectedly');
73
74
  }
74
75
  const lockPath = getUpgradeLockPath();
75
- const tombstone = `${lockPath}.released-${nonce}`;
76
+ const generation = createHash('sha256')
77
+ .update(`${owner.jobId}\0${owner.nonce}\0${owner.controller.pid}\0${owner.controller.processStartIdentity}`)
78
+ .digest('hex')
79
+ .slice(0, 16);
80
+ const tombstone = `${lockPath}.released-${nonce}-${generation}`;
76
81
  renameSync(lockPath, tombstone);
77
82
  rmSync(tombstone, { recursive: true, force: true });
78
83
  }
79
- export function acquireUpgradeLock(jobId) {
84
+ export function acquireUpgradeLock(jobId, nonce = randomUUID()) {
80
85
  const lockPath = getUpgradeLockPath();
81
86
  mkdirSync(join(CONFIG_DIR, 'upgrades'), { recursive: true, mode: 0o700 });
82
87
  try {
@@ -96,7 +101,7 @@ export function acquireUpgradeLock(jobId) {
96
101
  const owner = {
97
102
  schemaVersion: 1,
98
103
  jobId,
99
- nonce: randomUUID(),
104
+ nonce,
100
105
  dataRoot: resolve(CONFIG_DIR),
101
106
  controller: { pid: process.pid, processStartIdentity },
102
107
  createdAt: new Date().toISOString(),
@@ -127,7 +132,10 @@ export function acquireUpgradeLock(jobId) {
127
132
  return false;
128
133
  throw error;
129
134
  }
130
- if (current.jobId !== owner.jobId || current.nonce !== owner.nonce)
135
+ if (current.jobId !== owner.jobId
136
+ || current.nonce !== owner.nonce
137
+ || current.controller.pid !== owner.controller.pid
138
+ || current.controller.processStartIdentity !== owner.controller.processStartIdentity)
131
139
  return false;
132
140
  controllerClaimed = tryCreateHandoffClaim({
133
141
  schemaVersion: 1,
@@ -147,7 +155,10 @@ export function acquireUpgradeLock(jobId) {
147
155
  }
148
156
  throw error;
149
157
  }
150
- if (current.jobId !== owner.jobId || current.nonce !== owner.nonce) {
158
+ if (current.jobId !== owner.jobId
159
+ || current.nonce !== owner.nonce
160
+ || current.controller.pid !== owner.controller.pid
161
+ || current.controller.processStartIdentity !== owner.controller.processStartIdentity) {
151
162
  controllerClaimed = false;
152
163
  return false;
153
164
  }
@@ -232,4 +243,38 @@ export function loadUpgradeLockWorkerClaim() {
232
243
  const claim = loadHandoffClaim(owner.nonce);
233
244
  return claim?.role === 'worker' ? claim.worker ?? null : null;
234
245
  }
246
+ export function reclaimStaleUpgradeLock(jobId, nonce) {
247
+ if (!existsSync(getUpgradeLockPath()))
248
+ return false;
249
+ const owner = loadUpgradeLockOwner();
250
+ if (owner.jobId !== jobId || owner.nonce !== nonce) {
251
+ throw new Error('Stale upgrade lock does not match the requested recovery job');
252
+ }
253
+ for (const identity of [owner.controller, owner.worker].filter(Boolean)) {
254
+ const match = matchProcessStartIdentity(identity.pid, identity.processStartIdentity);
255
+ if (match.status === 'match') {
256
+ throw new Error('Upgrade lock still has a live exact process owner');
257
+ }
258
+ if (match.status === 'error') {
259
+ throw new Error(`Cannot safely reclaim upgrade lock: ${match.error}`);
260
+ }
261
+ }
262
+ const lockPath = getUpgradeLockPath();
263
+ const generation = createHash('sha256')
264
+ .update(`${owner.jobId}\0${owner.nonce}\0${owner.controller.pid}\0${owner.controller.processStartIdentity}`)
265
+ .digest('hex')
266
+ .slice(0, 16);
267
+ const tombstone = `${lockPath}.stale-${nonce}-${generation}`;
268
+ try {
269
+ renameSync(lockPath, tombstone);
270
+ }
271
+ catch (error) {
272
+ if (['EEXIST', 'ENOTEMPTY', 'ENOENT', 'EPERM'].includes(error.code ?? '')
273
+ && existsSync(tombstone)) {
274
+ return false;
275
+ }
276
+ throw error;
277
+ }
278
+ return true;
279
+ }
235
280
  //# sourceMappingURL=upgrade-lock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-lock.js","sourceRoot":"","sources":["../src/upgrade-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade-lock.js","sourceRoot":"","sources":["../src/upgrade-lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type ExternalUpgradeJob, type ProcessIdentity } from './upgrade-job.js';
2
+ import { spawnStableLauncher } from './launcher-manager.js';
3
+ export declare function loadUpgradeStatus(jobId?: string): ExternalUpgradeJob;
4
+ export declare function readUpgradeLog(jobId?: string): string;
5
+ export declare function repairExternalUpgrade(deps?: {
6
+ spawnLauncher?: (launchSpecPath: string, onSpawn?: (pid: number) => void) => number;
7
+ waitForHealth?: (job: ExternalUpgradeJob) => Promise<ExternalUpgradeJob['repairRuntime']>;
8
+ terminateProcessTree?: (identity: ProcessIdentity) => Promise<void>;
9
+ }): Promise<{
10
+ job: ExternalUpgradeJob;
11
+ launcherPid: number;
12
+ }>;
13
+ export declare function resumeInterruptedUpgrade(jobId: string, deps?: {
14
+ spawnLauncher?: typeof spawnStableLauncher;
15
+ }): 'terminal' | 'worker-running' | 'started';
16
+ export declare function runUpgradeRetention(now?: Date): {
17
+ removedVersions: string[];
18
+ removedJobs: string[];
19
+ removedStaging: string[];
20
+ };