agl 40.5.0 → 40.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/changelog.md +16 -0
  2. package/dist_serve/bundle.js +598 -598
  3. package/dist_serve/bundle.js.map +2 -2
  4. package/dist_ts/00_commitinfo_data.js +1 -1
  5. package/dist_ts/aglapi/aglapisurface.document.js +2 -2
  6. package/dist_ts/classes.aglhome.d.ts +5 -0
  7. package/dist_ts/classes.aglhome.js +2 -1
  8. package/dist_ts/classes.authstore.js +5 -1
  9. package/dist_ts/classes.controller.js +11 -2
  10. package/dist_ts/classes.inferencegateway.d.ts +35 -1
  11. package/dist_ts/classes.inferencegateway.js +86 -26
  12. package/dist_ts/classes.inferenceservice.d.ts +4 -2
  13. package/dist_ts/classes.inferenceservice.js +5 -4
  14. package/dist_ts/classes.proxycontrol.d.ts +58 -4
  15. package/dist_ts/classes.proxycontrol.js +23 -44
  16. package/dist_ts/classes.proxycontrolclient.d.ts +15 -5
  17. package/dist_ts/classes.proxycontrolclient.js +67 -17
  18. package/dist_ts/classes.proxydaemon.d.ts +22 -3
  19. package/dist_ts/classes.proxydaemon.js +73 -12
  20. package/dist_ts/classes.proxyleaseholder.d.ts +43 -14
  21. package/dist_ts/classes.proxyleaseholder.js +66 -22
  22. package/dist_ts/classes.proxystore.d.ts +9 -0
  23. package/dist_ts/classes.proxystore.js +15 -7
  24. package/dist_ts/classes.workercallerbindings.d.ts +66 -0
  25. package/dist_ts/classes.workercallerbindings.js +211 -0
  26. package/dist_ts/classes.workercallers.d.ts +63 -2
  27. package/dist_ts/classes.workercallers.js +430 -65
  28. package/dist_ts/fleet/classes.workerlaunches.d.ts +12 -5
  29. package/dist_ts/fleet/classes.workerlaunches.js +25 -19
  30. package/dist_ts/fleet/classes.workers.d.ts +17 -0
  31. package/dist_ts/fleet/classes.workers.js +74 -1
  32. package/dist_ts/functions.inferencecli.d.ts +3 -2
  33. package/dist_ts/functions.inferencecli.js +67 -5
  34. package/dist_ts/functions.inferencecliarguments.d.ts +6 -2
  35. package/dist_ts/functions.inferencecliarguments.js +29 -2
  36. package/dist_ts/functions.inferencelaunch.d.ts +24 -0
  37. package/dist_ts/functions.inferencelaunch.js +42 -2
  38. package/dist_ts/functions.proxycontract.d.ts +11 -0
  39. package/dist_ts/functions.proxycontract.js +12 -1
  40. package/dist_ts/functions.proxysocket.d.ts +6 -0
  41. package/dist_ts/functions.proxysocket.js +46 -0
  42. package/dist_ts/functions.workerprocessproof.d.ts +6 -0
  43. package/dist_ts/functions.workerprocessproof.js +28 -4
  44. package/dist_ts_authswitch/authority-contract.d.ts +30 -5
  45. package/dist_ts_authswitch/authority-contract.js +7 -1
  46. package/dist_ts_authswitch/classes.authoritycli.js +6 -2
  47. package/dist_ts_authswitch/classes.authorityclient.js +15 -5
  48. package/dist_ts_authswitch/classes.claudenative.d.ts +7 -1
  49. package/dist_ts_authswitch/classes.claudenative.js +21 -6
  50. package/dist_ts_authswitch/classes.claudesignin.d.ts +14 -2
  51. package/dist_ts_authswitch/classes.claudesignin.js +68 -22
  52. package/dist_ts_authswitch/classes.codexmanaged.d.ts +8 -0
  53. package/dist_ts_authswitch/classes.codexmanaged.js +33 -18
  54. package/dist_ts_authswitch/classes.harnessprocesses.d.ts +8 -0
  55. package/dist_ts_authswitch/classes.harnessprocesses.js +41 -9
  56. package/dist_ts_interfaces/interfaces.d.ts +1 -1
  57. package/dist_ts_interfaces/interfaces.js +1 -1
  58. package/dist_ts_interfaces/workercallers.d.ts +43 -4
  59. package/package.json +1 -1
  60. package/readme.md +103 -14
  61. package/ts/00_commitinfo_data.ts +1 -1
  62. package/ts/aglapi/aglapisurface.document.ts +2 -2
  63. package/ts/classes.aglhome.ts +6 -0
  64. package/ts/classes.authstore.ts +4 -0
  65. package/ts/classes.controller.ts +10 -1
  66. package/ts/classes.inferencegateway.ts +104 -23
  67. package/ts/classes.inferenceservice.ts +6 -3
  68. package/ts/classes.proxycontrol.ts +76 -39
  69. package/ts/classes.proxycontrolclient.ts +72 -20
  70. package/ts/classes.proxydaemon.ts +85 -15
  71. package/ts/classes.proxyleaseholder.ts +84 -28
  72. package/ts/classes.proxystore.ts +16 -5
  73. package/ts/classes.workercallerbindings.ts +147 -0
  74. package/ts/classes.workercallers.ts +410 -59
  75. package/ts/fleet/classes.workerlaunches.ts +23 -15
  76. package/ts/fleet/classes.workers.ts +51 -1
  77. package/ts/functions.inferencecli.ts +61 -7
  78. package/ts/functions.inferencecliarguments.ts +32 -1
  79. package/ts/functions.inferencelaunch.ts +49 -2
  80. package/ts/functions.proxycontract.ts +12 -0
  81. package/ts/functions.proxysocket.ts +39 -0
  82. package/ts/functions.workerprocessproof.ts +27 -4
  83. package/ts_authswitch/authority-contract.ts +34 -5
  84. package/ts_authswitch/classes.authoritycli.ts +5 -1
  85. package/ts_authswitch/classes.authorityclient.ts +25 -9
  86. package/ts_authswitch/classes.claudenative.ts +23 -7
  87. package/ts_authswitch/classes.claudesignin.ts +70 -23
  88. package/ts_authswitch/classes.codexmanaged.ts +30 -16
  89. package/ts_authswitch/classes.harnessprocesses.ts +39 -8
  90. package/ts_authswitch/native-contracts.md +1 -1
  91. package/ts_interfaces/interfaces.ts +1 -1
  92. package/ts_interfaces/workercallers.ts +32 -4
  93. package/ts_web/00_commitinfo_data.ts +1 -1
  94. package/ts_web/accounts.plugins.ts +5 -1
  95. package/ts_web/classes.accountsreadmodel.ts +4 -1
@@ -19,12 +19,15 @@ type TRevokeReason = Parameters<IFleetWorkerCallerHooks['revokeWorkerCaller']>[0
19
19
  /**
20
20
  * The verified caller launch each fleet worker's native process holds. Every native start, revival or relaunch gets a
21
21
  * fresh launch that replaces the worker's previous one, and the process proves it holds it once the fleet identified
22
- * the process. Launches are in memory, as the controller's caller records are: a controller restart forgets them, and
23
- * a Claude worker regains its identity at its next native start.
22
+ * the process. The controller keeps a Claude launch's binding to its background job (never a credential): a process
23
+ * Claude Code starts for the same job later, and a bridge that outlived a controller restart, prove themselves again
24
+ * when they enroll. Codex launches stay in memory and are bound again before the next dispatch.
24
25
  */
25
26
  export declare class FleetWorkerLaunches {
26
27
  private readonly options;
27
28
  private readonly launches;
29
+ /** Workers whose launch this fleet revoked and did not prepare again: the controller holds none for them to revoke. */
30
+ private readonly revoked;
28
31
  private readonly codexRuntimes;
29
32
  constructor(options: IFleetWorkerLaunchesOptions);
30
33
  /** The owner part of a worker id, `${owner}:${name}`: the launch's project. */
@@ -43,8 +46,9 @@ export declare class FleetWorkerLaunches {
43
46
  */
44
47
  prepareClaude(worker: IFleetWorker): Promise<string>;
45
48
  /**
46
- * Binds the worker's Claude launch to the background job the inventory shows for `nativeId`. A job whose process
47
- * already exited holds no launch to prove; its launch is revoked and its next wake prepares another.
49
+ * Binds the worker's Claude launch to the background job the inventory shows for `nativeId`, and to the job's process.
50
+ * A job whose process already exited (a quick turn) is bound without one: the process Claude Code continues the job
51
+ * in later proves itself when its bridge enrolls.
48
52
  */
49
53
  bindClaude(worker: IFleetWorker, nativeId: string, agent: {
50
54
  id?: string;
@@ -58,7 +62,10 @@ export declare class FleetWorkerLaunches {
58
62
  bindCodex(worker: IFleetWorker, nativeId: string): Promise<void>;
59
63
  /** The fleet's Codex connection of `supervisorGeneration`, while the fleet still uses it. */
60
64
  codexRuntime(supervisorGeneration: string): IFleetCodexCallerRuntime | undefined;
61
- /** Revokes the worker's launch: its process stopped, failed or was replaced. */
65
+ /**
66
+ * Revokes the worker's current launch for good: the worker stopped or is archived, its launch failed, or another
67
+ * replaces it. That is also a launch the controller kept from before its restart, which this fleet never prepared.
68
+ */
62
69
  revoke(worker: IFleetWorker, reason: TRevokeReason): Promise<void>;
63
70
  /** Revokes the worker's launch and removes its overlay, if it has one, once the worker is archived. */
64
71
  retire(worker: IFleetWorker): Promise<void>;
@@ -3,12 +3,15 @@ import { readWorkerProcessSnapshot } from '../functions.workerprocessproof.js';
3
3
  /**
4
4
  * The verified caller launch each fleet worker's native process holds. Every native start, revival or relaunch gets a
5
5
  * fresh launch that replaces the worker's previous one, and the process proves it holds it once the fleet identified
6
- * the process. Launches are in memory, as the controller's caller records are: a controller restart forgets them, and
7
- * a Claude worker regains its identity at its next native start.
6
+ * the process. The controller keeps a Claude launch's binding to its background job (never a credential): a process
7
+ * Claude Code starts for the same job later, and a bridge that outlived a controller restart, prove themselves again
8
+ * when they enroll. Codex launches stay in memory and are bound again before the next dispatch.
8
9
  */
9
10
  export class FleetWorkerLaunches {
10
11
  options;
11
12
  launches = new Map();
13
+ /** Workers whose launch this fleet revoked and did not prepare again: the controller holds none for them to revoke. */
14
+ revoked = new Set();
12
15
  codexRuntimes = new Map();
13
16
  constructor(options) {
14
17
  this.options = options;
@@ -24,7 +27,10 @@ export class FleetWorkerLaunches {
24
27
  return plugins.path.join(this.options.overlays, `${plugins.crypto.createHash('sha256').update(worker.id).digest('base64url')}.json`);
25
28
  }
26
29
  async prepare(worker, launch) {
27
- await this.revoke(worker, 'replacement');
30
+ // The controller replaces any other launch of the worker as it prepares this one, also one it kept from before a restart.
31
+ if (this.launches.has(worker.id))
32
+ await this.revoke(worker, 'replacement');
33
+ this.revoked.delete(worker.id);
28
34
  const ready = await this.options.hooks().prepareWorkerCaller(launch);
29
35
  this.launches.set(worker.id, { launchId: launch.launchId, projectId: launch.projectId, harnessId: launch.harnessId, bound: false,
30
36
  ...(launch.harnessId === 'codex' ? { supervisorGeneration: launch.codexOrigin.supervisorGeneration } : {}) });
@@ -47,7 +53,7 @@ export class FleetWorkerLaunches {
47
53
  * this start and at every later wake. Returns the overlay's path.
48
54
  */
49
55
  async prepareClaude(worker) {
50
- const ready = await this.prepare(worker, { launchId: plugins.crypto.randomUUID(), projectId: this.project(worker), harnessId: 'claude' });
56
+ const ready = await this.prepare(worker, { launchId: plugins.crypto.randomUUID(), projectId: this.project(worker), workerId: worker.id, harnessId: 'claude' });
51
57
  try {
52
58
  if (!ready.claudeMcpConfig)
53
59
  throw new Error('The Claude caller launch has no MCP configuration.');
@@ -68,23 +74,21 @@ export class FleetWorkerLaunches {
68
74
  }
69
75
  }
70
76
  /**
71
- * Binds the worker's Claude launch to the background job the inventory shows for `nativeId`. A job whose process
72
- * already exited holds no launch to prove; its launch is revoked and its next wake prepares another.
77
+ * Binds the worker's Claude launch to the background job the inventory shows for `nativeId`, and to the job's process.
78
+ * A job whose process already exited (a quick turn) is bound without one: the process Claude Code continues the job
79
+ * in later proves itself when its bridge enrolls.
73
80
  */
74
81
  async bindClaude(worker, nativeId, agent) {
75
82
  const launch = this.launches.get(worker.id);
76
83
  if (!launch || launch.harnessId !== 'claude' || launch.bound)
77
84
  throw new Error('The Claude worker has no prepared caller launch.');
78
- if (agent.pid === undefined) {
79
- await this.revoke(worker, 'stop');
80
- return;
81
- }
82
85
  try {
83
86
  if (!agent.id)
84
87
  throw new Error('The Claude background job has no agent id.');
85
- const { startTicks } = await readWorkerProcessSnapshot(agent.pid);
88
+ const claudeProcess = agent.pid === undefined ? undefined
89
+ : { jobId: agent.id, pid: agent.pid, startTicks: (await readWorkerProcessSnapshot(agent.pid)).startTicks };
86
90
  await this.options.hooks().bindWorkerCaller({ launchId: launch.launchId, projectId: launch.projectId, harnessId: 'claude', nativeSessionId: nativeId,
87
- expectedBindingRevision: 0, claudeProcess: { jobId: agent.id, pid: agent.pid, startTicks } });
91
+ expectedBindingRevision: 0, claudeJobId: agent.id, ...(claudeProcess ? { claudeProcess } : {}) });
88
92
  launch.bound = true;
89
93
  }
90
94
  catch (error) {
@@ -104,7 +108,7 @@ export class FleetWorkerLaunches {
104
108
  for (const [generation, known] of this.codexRuntimes)
105
109
  if (!known.isCurrent())
106
110
  this.codexRuntimes.delete(generation);
107
- const ready = await this.prepare(worker, { launchId: plugins.crypto.randomUUID(), projectId: this.project(worker), harnessId: 'codex',
111
+ const ready = await this.prepare(worker, { launchId: plugins.crypto.randomUUID(), projectId: this.project(worker), workerId: worker.id, harnessId: 'codex',
108
112
  codexOrigin: { source: 'fleet', supervisorGeneration: runtime.supervisor.generation } });
109
113
  if (!ready.codexConfig) {
110
114
  await this.revoke(worker, 'failure');
@@ -131,13 +135,15 @@ export class FleetWorkerLaunches {
131
135
  const runtime = this.codexRuntimes.get(supervisorGeneration);
132
136
  return runtime?.isCurrent() ? runtime : undefined;
133
137
  }
134
- /** Revokes the worker's launch: its process stopped, failed or was replaced. */
138
+ /**
139
+ * Revokes the worker's current launch for good: the worker stopped or is archived, its launch failed, or another
140
+ * replaces it. That is also a launch the controller kept from before its restart, which this fleet never prepared.
141
+ */
135
142
  async revoke(worker, reason) {
136
- const launch = this.launches.get(worker.id);
137
- if (!launch)
143
+ if (!this.launches.delete(worker.id) && this.revoked.has(worker.id))
138
144
  return;
139
- this.launches.delete(worker.id);
140
- await this.options.hooks().revokeWorkerCaller({ launchId: launch.launchId, reason });
145
+ await this.options.hooks().revokeWorkerCaller({ workerId: worker.id, reason });
146
+ this.revoked.add(worker.id);
141
147
  }
142
148
  /** Revokes the worker's launch and removes its overlay, if it has one, once the worker is archived. */
143
149
  async retire(worker) {
@@ -145,4 +151,4 @@ export class FleetWorkerLaunches {
145
151
  await plugins.fs.promises.rm(this.overlay(worker), { force: true });
146
152
  }
147
153
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy53b3JrZXJsYXVuY2hlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ZsZWV0L2NsYXNzZXMud29ya2VybGF1bmNoZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFLekMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFrQi9FOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQUdELE9BQU87SUFGbkIsUUFBUSxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0lBQ3RDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztJQUM3RSxZQUE2QixPQUFvQzt1QkFBcEMsT0FBTztJQUFnQyxDQUFDO0lBQ3JFLCtFQUErRTtJQUN2RSxPQUFPLENBQUMsTUFBb0I7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ25HLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELDRGQUE0RjtJQUNyRixPQUFPLENBQUMsTUFBb0I7UUFDakMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2SSxDQUFDO0lBQ08sS0FBSyxD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QUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuTCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFBQyxNQUFNLEtBQUssQ0FBQztRQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELDZGQUE2RjtJQUN0RixZQUFZLENBQUMsb0JBQTRCO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0QsT0FBTyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFDRCxnRkFBZ0Y7SUFDekUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFvQixFQUFFLE1BQXFCO1FBQzdELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUNELHVHQUF1RztJQUNoRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQW9CO1FBQ3RDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEMsTUFBTSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRiJ9
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy53b3JrZXJsYXVuY2hlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ZsZWV0L2NsYXNzZXMud29ya2VybGF1bmNoZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFLekMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFrQi9FOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFLRCxPQUFPO0lBSm5CLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUN2RCx1SEFBdUg7SUFDdEcsT0FBTyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDNUIsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFvQyxDQUFDO0lBQzdFLFlBQTZCLE9BQW9DO3VCQUFwQyxPQUFPO0lBQWdDLENBQUM7SUFDckUsK0VBQStFO0lBQ3ZFLE9BQU8sQ0FBQyxNQUFvQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDbkcsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsNEZBQTRGO0lBQ3JGLE9BQU8sQ0FBQyxNQUFvQjtRQUNqQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENB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
@@ -1,3 +1,4 @@
1
+ import { type IWorkerClaudeJobRequest, type TWorkerClaudeJobObservation } from '../../dist_ts_interfaces/index.js';
1
2
  import type { IFleetWorker, IFleetWorkerJob, IFleetNativeMessageReceipt, TFleetEventKind, TFleetWorkerAction, TFleetWorkerRequest, TFleetWorkerResponse } from '../../dist_ts_interfaces/fleetworkers.js';
2
3
  import type { IFleetConfiguration, IFleetOperation, IFleetTicketSync } from '../../dist_ts_interfaces/fleet.js';
3
4
  import type { ITicketActor } from '../../dist_ts_interfaces/tickets.js';
@@ -74,6 +75,10 @@ export declare class FleetWorkers {
74
75
  private lastLoad;
75
76
  private readonly controllerId;
76
77
  private holder?;
78
+ /** The chain the caller job re-proofs read their inventories on, one at a time. */
79
+ private callerJobs;
80
+ /** Set once the controller began to stop: no new worker job is admitted. */
81
+ private admissionClosed;
77
82
  constructor(options?: IFleetWorkersOptions);
78
83
  start(): void;
79
84
  /** Names for upgrade diagnostics from durable bindings; no native poll or transcript read. */
@@ -124,6 +129,12 @@ export declare class FleetWorkers {
124
129
  private view;
125
130
  /** The host's Claude Code sessions of the profile home `home` (the default home when absent), read at most `maxAgeMs` ago. */
126
131
  nativeAgents(home: string | undefined, maxAgeMs: number): Promise<IFleetNativeAgent[]>;
132
+ /**
133
+ * What a fresh inventory shows of the Claude background job a worker's caller launch is bound to, for the controller
134
+ * to prove the job's next process. One read at a time, however many bridges ask.
135
+ */
136
+ observeCallerJob(request: IWorkerClaudeJobRequest): Promise<TWorkerClaudeJobObservation>;
137
+ private readCallerJob;
127
138
  /** The newest root threads on the host's shared Codex app-server, read at most `maxAgeMs` ago. */
128
139
  nativeThreads(maxAgeMs: number): Promise<IFleetNativeThread[]>;
129
140
  private admitJob;
@@ -185,5 +196,11 @@ export declare class FleetWorkers {
185
196
  /** Starts `worker`'s native session with the prompt `start`, or launches it through `start`, and binds the session under the dispatch fence. */
186
197
  private startNative;
187
198
  private mutate;
199
+ /**
200
+ * Admits no new worker job and lets the running ones finish, for at most `waitMs`; the ones still running then are
201
+ * aborted and settle. The controller calls it before it tears down the caller hooks the jobs prepare, bind and
202
+ * revoke launches through, so no job meets them gone.
203
+ */
204
+ closeAdmission(waitMs?: number): Promise<void>;
188
205
  close(): Promise<void>;
189
206
  }