@dharma-ai-labs/agent-fabric 0.2.206 → 0.2.208

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/README.md +22 -0
  2. package/dist/bootstrapHostScope.test.js +2 -1
  3. package/dist/bootstrapHostScope.test.js.map +1 -1
  4. package/dist/bootstrapProcessCaller.test.js +2 -0
  5. package/dist/bootstrapProcessCaller.test.js.map +1 -1
  6. package/dist/bootstrapVaultScope.test.js +32 -1
  7. package/dist/bootstrapVaultScope.test.js.map +1 -1
  8. package/dist/codexInboxSession.d.ts +1 -1
  9. package/dist/codexSetupSessionCaller.test.js +2 -0
  10. package/dist/codexSetupSessionCaller.test.js.map +1 -1
  11. package/dist/cooperativeInboxSession.d.ts +1 -1
  12. package/dist/demoPeer.d.ts +2 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +85 -4
  15. package/dist/index.js.map +1 -1
  16. package/dist/namedSessionAdmission.d.ts +23 -0
  17. package/dist/namedSessionAdmission.d.ts.map +1 -0
  18. package/dist/namedSessionAdmission.js +120 -0
  19. package/dist/namedSessionAdmission.js.map +1 -0
  20. package/dist/namedSessionAdmission.test.d.ts +2 -0
  21. package/dist/namedSessionAdmission.test.d.ts.map +1 -0
  22. package/dist/namedSessionAdmission.test.js +151 -0
  23. package/dist/namedSessionAdmission.test.js.map +1 -0
  24. package/dist/namedSessionMaintenance.d.ts +49 -0
  25. package/dist/namedSessionMaintenance.d.ts.map +1 -0
  26. package/dist/namedSessionMaintenance.js +79 -0
  27. package/dist/namedSessionMaintenance.js.map +1 -0
  28. package/dist/namedSessionMaintenance.test.d.ts +2 -0
  29. package/dist/namedSessionMaintenance.test.d.ts.map +1 -0
  30. package/dist/namedSessionMaintenance.test.js +141 -0
  31. package/dist/namedSessionMaintenance.test.js.map +1 -0
  32. package/dist/namedSessionService.d.ts +8 -1
  33. package/dist/namedSessionService.d.ts.map +1 -1
  34. package/dist/namedSessionService.js +138 -45
  35. package/dist/namedSessionService.js.map +1 -1
  36. package/dist/namedSessionService.test.js +58 -3
  37. package/dist/namedSessionService.test.js.map +1 -1
  38. package/dist/namedSessionTransportDiagnostic.d.ts +40 -0
  39. package/dist/namedSessionTransportDiagnostic.d.ts.map +1 -0
  40. package/dist/namedSessionTransportDiagnostic.js +71 -0
  41. package/dist/namedSessionTransportDiagnostic.js.map +1 -0
  42. package/dist/namedSessionTransportDiagnostic.test.d.ts +2 -0
  43. package/dist/namedSessionTransportDiagnostic.test.d.ts.map +1 -0
  44. package/dist/namedSessionTransportDiagnostic.test.js +188 -0
  45. package/dist/namedSessionTransportDiagnostic.test.js.map +1 -0
  46. package/dist/providerSessionReplyRecovery.d.ts +1 -1
  47. package/dist/schemas/named-session-maintenance.schema.json +38 -0
  48. package/dist/schemas/named-session-readiness-diagnostic.schema.json +37 -0
  49. package/dist/usage.d.ts.map +1 -1
  50. package/dist/usage.js +3 -2
  51. package/dist/usage.js.map +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,141 @@
1
+ import assert from 'node:assert/strict';
2
+ import { randomUUID } from 'node:crypto';
3
+ import test from 'node:test';
4
+ import { activateMaintenanceRestart, maintainNamedSession, recoverStoppedNamedSession } from './namedSessionMaintenance.js';
5
+ import { assertNamedSessionStartupRegistration } from './namedSessionAdmission.js';
6
+ import { validateContract } from '@dharma-ai-labs/agent-fabric-contracts';
7
+ import { join } from 'node:path';
8
+ function fixture() {
9
+ const registration = { schema: 'dharma.named-session/v1', name: 'reviewer',
10
+ bindingId: randomUUID(), enabled: true, maximumCostCents: 100, maximumTurnCostCents: 25,
11
+ identity: { organizationId: 'org_test', repositoryBindingId: randomUUID(), workspaceId: randomUUID(),
12
+ endpointId: randomUUID(), membershipId: randomUUID(), deviceId: randomUUID(), provider: 'codex' } };
13
+ const fenceId = randomUUID(), generation = randomUUID(), sessionId = randomUUID();
14
+ const status = { ok: true, name: registration.name, bindingId: registration.bindingId,
15
+ ...registration.identity, sessionId, admission: { generation, fenceId: null, pending: 0, state: 'open' } };
16
+ const receipt = { ok: true, schema: 'dharma.named-session-maintenance/v1', receiptId: randomUUID(),
17
+ ...registration.identity, name: registration.name, bindingId: registration.bindingId, sessionId,
18
+ action: 'quiesce', fenceId, generation, mode: 'live', state: 'quiesced', pending: 0, automaticRestartEnabled: false, observedAt: new Date().toISOString() };
19
+ return { registration, fenceId, generation, status, receipt };
20
+ }
21
+ for (const action of ['quiesce', 'resume', 'stop-drained'])
22
+ test(`maintenance ${action} binds the actual owner generation and scoped receipt`, async () => {
23
+ const value = fixture(), requests = [];
24
+ value.receipt.action = action;
25
+ value.receipt.state = action === 'quiesce' ? 'quiesced' : action === 'resume' ? 'open' : 'stop_requested';
26
+ value.receipt.automaticRestartEnabled = action === 'resume';
27
+ const result = await maintainNamedSession({ ...value, action, request: async (body) => {
28
+ requests.push(body);
29
+ return requests.length === 1 ? value.status : value.receipt;
30
+ } });
31
+ assert.deepEqual(requests, [{ action: 'status' }, { action, fenceId: value.fenceId, generation: value.generation }]);
32
+ assert.deepEqual(result, value.receipt);
33
+ });
34
+ test('a legacy service lacking a real admission fence is rejected before a control request', async () => {
35
+ const value = fixture(), requests = [];
36
+ delete value.status.admission;
37
+ await assert.rejects(maintainNamedSession({ ...value, action: 'quiesce', request: async (body) => {
38
+ requests.push(body);
39
+ return value.status;
40
+ } }), /named_session_quiescence_not_supported/);
41
+ assert.deepEqual(requests, [{ action: 'status' }]);
42
+ });
43
+ test('foreign owner, repository, member or device cannot authorize a maintenance request', async () => {
44
+ for (const key of ['name', 'bindingId', 'organizationId', 'repositoryBindingId', 'membershipId', 'deviceId', 'workspaceId', 'endpointId']) {
45
+ const value = fixture();
46
+ value.status[key] = key === 'name' ? 'foreign' : key === 'organizationId' ? 'org_foreign' : randomUUID();
47
+ const requests = [];
48
+ await assert.rejects(maintainNamedSession({ ...value, action: 'quiesce', request: async (body) => {
49
+ requests.push(body);
50
+ return value.status;
51
+ } }), /named_session_scope_mismatch/);
52
+ assert.deepEqual(requests, [{ action: 'status' }]);
53
+ }
54
+ });
55
+ test('invalid, stale, foreign or secret-bearing receipts never establish a drained boundary', async () => {
56
+ for (const change of [
57
+ { generation: randomUUID() }, { fenceId: randomUUID() }, { pending: 1 }, { state: 'open' }, { action: 'resume' },
58
+ { deviceId: randomUUID() }, { sessionId: randomUUID() }, { membershipId: randomUUID() },
59
+ { grant: 'dhab_PRIVATE_TEST_GRANT' }, { observedAt: 'invalid' }, { ok: false }, { automaticRestartEnabled: true },
60
+ ]) {
61
+ const value = fixture();
62
+ let requests = 0;
63
+ await assert.rejects(maintainNamedSession({ ...value, action: 'quiesce', request: async () => ++requests === 1 ? value.status : { ...value.receipt, ...change } }), /named_session_maintenance_scope_mismatch/);
64
+ assert.equal(requests, 2);
65
+ }
66
+ });
67
+ test('lost control responses are not retried or interpreted as successful drain', async () => {
68
+ const value = fixture();
69
+ let calls = 0;
70
+ await assert.rejects(maintainNamedSession({ ...value, action: 'quiesce', request: async () => {
71
+ if (++calls === 1)
72
+ return value.status;
73
+ throw Error('named_session_unavailable');
74
+ } }), /named_session_unavailable/);
75
+ assert.equal(calls, 2);
76
+ });
77
+ function recoveryFixture() {
78
+ const f = fixture(), registration = { ...f.registration, enabled: false,
79
+ maintenanceFence: { fenceId: f.fenceId, generation: f.generation } };
80
+ let current = registration, writes = 0, stateReads = 0;
81
+ const binding = { schema: 'dharma.local-provider-session-binding/v1',
82
+ ...registration.identity, bindingId: registration.bindingId, owner: 'dharma_bridge', sessionId: String(f.receipt.sessionId),
83
+ workspaceRoot: '/fixture/repo', createdAt: new Date().toISOString(), expiresAt: new Date(Date.now() + 60000).toISOString(), maximumProviderCostCents: 25 };
84
+ return { ...f, registration, binding, writes: () => writes, current: () => current,
85
+ input: { registration, fenceId: f.fenceId, workspace: '/fixture/repo', processState: async () => { stateReads++; return 'stopped'; },
86
+ readRegistration: async () => current, readBinding: async () => binding,
87
+ saveRegistration: async (value) => { writes++; current = value; } },
88
+ stateReads: () => stateReads };
89
+ }
90
+ test('explicit stopped-owner recovery preserves binding and budgets and does not start a provider', async () => {
91
+ const f = recoveryFixture(), receipt = await recoverStoppedNamedSession(f.input);
92
+ assert.equal(receipt.mode, 'stopped_recovery');
93
+ assert.equal(receipt.state, 'restart_permitted');
94
+ assert.equal(receipt.interruptedWorkDisposition, 'preserved_for_verified_start');
95
+ assert.equal(receipt.sessionId, f.binding.sessionId);
96
+ assert.equal(f.writes(), 1);
97
+ assert.equal(f.stateReads(), 2);
98
+ assert.equal(f.current()?.enabled, false);
99
+ assert.equal(receipt.automaticRestartEnabled, false);
100
+ assert.equal(f.current()?.maintenanceFence?.restartPermitted, true);
101
+ assert.throws(() => assertNamedSessionStartupRegistration(f.registration, f.current()), /named_session_quiesced/);
102
+ assert.equal((await validateContract(join(import.meta.dirname, 'schemas'), 'https://schemas.dharma-ai.io/named-session-maintenance/v1', receipt)).ok, true);
103
+ });
104
+ test('unavailable live owner and unknown process state never clear a persisted fence', async () => {
105
+ for (const state of ['running', 'unknown']) {
106
+ const f = recoveryFixture();
107
+ await assert.rejects(recoverStoppedNamedSession({ ...f.input, processState: async () => state }), /named_session_owner_not_stopped/);
108
+ assert.equal(f.writes(), 0);
109
+ assert.equal(f.current()?.enabled, false);
110
+ }
111
+ const f = recoveryFixture();
112
+ let reads = 0;
113
+ await assert.rejects(recoverStoppedNamedSession({ ...f.input, processState: async () => ++reads === 1 ? 'stopped' : 'running' }), /named_session_owner_not_stopped/);
114
+ assert.equal(f.writes(), 0);
115
+ });
116
+ test('stopped recovery rejects wrong fence, foreign binding, changed disk scope and expired authority before writes', async () => {
117
+ for (const kind of ['fence', 'binding', 'disk', 'expired']) {
118
+ const f = recoveryFixture();
119
+ const input = { ...f.input, ...(kind === 'fence' ? { fenceId: randomUUID() } : {}),
120
+ ...(kind === 'binding' ? { readBinding: async () => ({ ...f.binding, deviceId: randomUUID() }) } : {}),
121
+ ...(kind === 'disk' ? { readRegistration: async () => ({ ...f.registration, maximumCostCents: 200 }) } : {}),
122
+ ...(kind === 'expired' ? { readBinding: async () => ({ ...f.binding, expiresAt: new Date(0).toISOString() }) } : {}) };
123
+ await assert.rejects(recoverStoppedNamedSession(input), /named_session_maintenance_/);
124
+ assert.equal(f.writes(), 0);
125
+ }
126
+ });
127
+ test('restart-permitted registration remains supervisor-disabled until a matching explicit start', async () => {
128
+ const f = recoveryFixture();
129
+ await recoverStoppedNamedSession(f.input);
130
+ const permitted = f.current();
131
+ assert.equal(permitted.enabled, false);
132
+ await assert.rejects(activateMaintenanceRestart({ ...f.input, registration: permitted, fenceId: randomUUID() }), /named_session_maintenance_start_unavailable/);
133
+ assert.equal(f.current()?.enabled, false);
134
+ await assert.rejects(activateMaintenanceRestart({ ...f.input, registration: permitted, processState: async () => 'running' }), /named_session_owner_not_stopped/);
135
+ assert.equal(f.current()?.enabled, false);
136
+ await activateMaintenanceRestart({ ...f.input, registration: permitted });
137
+ const { maintenanceFence: _fence, ...base } = f.registration;
138
+ assert.deepEqual(f.current(), { ...base, enabled: true });
139
+ assert.equal(f.writes(), 2);
140
+ });
141
+ //# sourceMappingURL=namedSessionMaintenance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedSessionMaintenance.test.js","sourceRoot":"","sources":["../src/namedSessionMaintenance.test.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,11 @@ export interface NamedSessionRegistration {
12
12
  maximumCostCents: number;
13
13
  maximumTurnCostCents: number;
14
14
  enabled: boolean;
15
+ maintenanceFence?: {
16
+ fenceId: string;
17
+ generation: string;
18
+ restartPermitted?: true;
19
+ };
15
20
  }
16
21
  export declare function namedSessionPaths(home: string, name: string): {
17
22
  root: string;
@@ -22,7 +27,9 @@ export declare function namedSessionPaths(home: string, name: string): {
22
27
  };
23
28
  export declare function readNamedSession(home: string, name: string): Promise<NamedSessionRegistration | null>;
24
29
  export declare function saveNamedSession(home: string, value: NamedSessionRegistration): Promise<void>;
25
- export declare function namedSessionRequest(home: string, name: string, request: Record<string, unknown>): Promise<Record<string, unknown>>;
30
+ export declare function namedSessionRequest(home: string, name: string, request: Record<string, unknown>, options?: {
31
+ readonly diagnostic?: boolean;
32
+ }): Promise<Record<string, unknown>>;
26
33
  export declare function runNamedSessionService(input: {
27
34
  home: string;
28
35
  registration: NamedSessionRegistration;
@@ -1 +1 @@
1
- {"version":3,"file":"namedSessionService.d.ts","sourceRoot":"","sources":["../src/namedSessionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"namedSessionService.d.ts","sourceRoot":"","sources":["../src/namedSessionService.ts"],"names":[],"mappings":"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"}
@@ -2,20 +2,23 @@ import { createHash, randomUUID } from 'node:crypto';
2
2
  import { chmod, lstat, mkdir, readFile, rename, unlink, writeFile } from 'node:fs/promises';
3
3
  import { createConnection, createServer } from 'node:net';
4
4
  import { join, resolve } from 'node:path';
5
- import { validateContract } from '@dharma-ai-labs/agent-fabric-contracts';
5
+ import { canonicalize, validateContract } from '@dharma-ai-labs/agent-fabric-contracts';
6
6
  import { openCodexInboxSession } from './codexInboxSession.js';
7
7
  import { assertCodexWorkPrompt, codexWorkCaptureSchemaId } from '@dharma-ai-labs/agent-fabric-provider-adapters/experimental/codex-session';
8
8
  import { readNamedSessionNativeAudit } from './namedSessionNativeAudit.js';
9
9
  import { composeNamedSessionRepositoryPrompt } from './namedSessionPackageGate.js';
10
10
  import { parseNamedCodexSkillObservation } from './namedCodexSkillDiscovery.js';
11
+ import { NamedSessionAdmission } from './namedSessionAdmission.js';
12
+ import { NamedSessionTransportFailure } from './namedSessionTransportDiagnostic.js';
11
13
  function validateRegistration(value, name) {
12
14
  if (!value || typeof value !== 'object' || Array.isArray(value))
13
15
  throw new Error('named_session_registration_invalid');
14
16
  const record = value;
15
- const keys = ['schema', 'name', 'bindingId', 'identity', 'maximumCostCents', 'maximumTurnCostCents', 'enabled'];
17
+ const keys = ['schema', 'name', 'bindingId', 'identity', 'maximumCostCents', 'maximumTurnCostCents', 'enabled', 'maintenanceFence'];
16
18
  const ids = ['repositoryBindingId', 'workspaceId', 'endpointId', 'membershipId', 'deviceId'];
17
19
  const uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
18
20
  const identity = record.identity;
21
+ const fence = record.maintenanceFence;
19
22
  if (Object.keys(record).some(key => !keys.includes(key)) || record.schema !== 'dharma.named-session/v1'
20
23
  || record.name !== name || typeof record.enabled !== 'boolean'
21
24
  || !Number.isSafeInteger(record.maximumCostCents) || Number(record.maximumCostCents) < 1 || Number(record.maximumCostCents) > 10000
@@ -26,7 +29,12 @@ function validateRegistration(value, name) {
26
29
  || Object.keys(identity).some(key => ![...ids, 'organizationId', 'provider'].includes(key))
27
30
  || identity.provider !== 'codex' || typeof identity.organizationId !== 'string'
28
31
  || !/^[A-Za-z0-9][A-Za-z0-9_-]{0,199}$/.test(identity.organizationId)
29
- || ids.some(key => typeof identity[key] !== 'string' || !uuid.test(identity[key]))) {
32
+ || ids.some(key => typeof identity[key] !== 'string' || !uuid.test(identity[key]))
33
+ || fence !== undefined && (!fence || typeof fence !== 'object' || Array.isArray(fence)
34
+ || !['fenceId,generation', 'fenceId,generation,restartPermitted'].includes(Object.keys(fence).sort().join(',')) || record.enabled !== false
35
+ || fence.restartPermitted !== undefined && fence.restartPermitted !== true
36
+ || typeof fence.fenceId !== 'string' || !uuid.test(fence.fenceId)
37
+ || typeof fence.generation !== 'string' || !uuid.test(fence.generation))) {
30
38
  throw new Error('named_session_registration_invalid');
31
39
  }
32
40
  }
@@ -64,28 +72,44 @@ export async function saveNamedSession(home, value) {
64
72
  await writeFile(temporary, `${JSON.stringify(value)}\n`, { mode: 0o600, flag: 'wx' });
65
73
  await rename(temporary, paths.registration);
66
74
  }
67
- export async function namedSessionRequest(home, name, request) {
75
+ export async function namedSessionRequest(home, name, request, options) {
68
76
  const paths = namedSessionPaths(home, name);
69
77
  const serialized = `${JSON.stringify(request)}\n`;
70
78
  if (Buffer.byteLength(serialized) > 20000)
71
79
  throw new Error('named_session_request_too_large');
72
80
  return new Promise((resolveReply, reject) => {
73
81
  const socket = createConnection(paths.socket);
74
- let bytes = Buffer.alloc(0), complete = false;
75
- socket.setTimeout(request.action === 'work' ? 310_000 : 30_000);
76
- const fail = () => { if (!complete) {
77
- complete = true;
78
- reject(new Error('named_session_unavailable'));
79
- } socket.destroy(); };
80
- socket.on('connect', () => socket.write(serialized));
81
- socket.on('error', fail);
82
- socket.on('timeout', fail);
82
+ let bytes = Buffer.alloc(0), complete = false, connected = false;
83
+ socket.setTimeout(request.action === 'work' || request.action === 'quiesce' ? 310_000 : 30_000);
84
+ const fail = (failure) => {
85
+ if (!complete) {
86
+ complete = true;
87
+ reject(options?.diagnostic === true ? failure : new Error('named_session_unavailable'));
88
+ }
89
+ socket.destroy();
90
+ };
91
+ const phase = () => connected ? 'response' : 'connect';
92
+ socket.on('connect', () => {
93
+ if (complete)
94
+ return;
95
+ connected = true;
96
+ try {
97
+ socket.write(serialized);
98
+ }
99
+ catch (error) {
100
+ fail(NamedSessionTransportFailure.fromSocket('write', error));
101
+ }
102
+ });
103
+ socket.on('error', error => fail(NamedSessionTransportFailure.fromSocket(phase(), error)));
104
+ socket.on('timeout', () => fail(new NamedSessionTransportFailure(phase(), 'timeout')));
83
105
  socket.on('close', () => { if (!complete)
84
- fail(); });
106
+ fail(new NamedSessionTransportFailure(phase(), 'connection_closed')); });
85
107
  socket.on('data', chunk => {
108
+ if (complete)
109
+ return;
86
110
  bytes = Buffer.concat([bytes, chunk]);
87
111
  if (bytes.length > 50000) {
88
- fail();
112
+ fail(new NamedSessionTransportFailure('response', 'response_too_large'));
89
113
  return;
90
114
  }
91
115
  const end = bytes.indexOf(10);
@@ -98,12 +122,14 @@ export async function namedSessionRequest(home, name, request) {
98
122
  complete = true;
99
123
  socket.end();
100
124
  if (value.ok !== true)
101
- reject(new Error(String(value.code || 'named_session_failed')));
125
+ reject(options?.diagnostic === true
126
+ ? new NamedSessionTransportFailure('remote', 'remote_rejected', null, value.code)
127
+ : new Error(String(value.code || 'named_session_failed')));
102
128
  else
103
129
  resolveReply(value);
104
130
  }
105
131
  catch {
106
- fail();
132
+ fail(new NamedSessionTransportFailure('decode', 'malformed_response'));
107
133
  }
108
134
  });
109
135
  });
@@ -124,13 +150,16 @@ export async function runNamedSessionService(input) {
124
150
  let server;
125
151
  const connections = new Set();
126
152
  const responses = new Set();
127
- let closing = false, pending = 0, serial = Promise.resolve();
153
+ let closing = false;
154
+ const admission = new NamedSessionAdmission();
128
155
  let lastObservation = { state: 'starting' };
129
156
  let taskExports;
130
157
  const status = () => ({ ok: true, schema: 'dharma.named-session-status/v1', name: registration.name,
131
158
  bindingId: binding.bindingId, sessionId: binding.sessionId, ...registration.identity,
132
- state: closing ? 'stopping' : pending ? 'executing' : 'running', budget: budget.status(),
133
- queued: pending, lastObservation, lastWork: budget.lastWork(), ...(taskExports ? { taskExports } : {}) });
159
+ state: closing ? 'stopping' : admission.snapshot().state !== 'open' ? admission.snapshot().state
160
+ : admission.snapshot().pending ? 'executing' : 'running', budget: budget.status(),
161
+ queued: admission.snapshot().pending, admission: admission.snapshot(),
162
+ lastObservation, lastWork: budget.lastWork(), ...(taskExports ? { taskExports } : {}) });
134
163
  let healthWrites = Promise.resolve();
135
164
  const health = () => {
136
165
  const snapshot = JSON.stringify({ ...status(), pid: process.pid, observedAt: new Date().toISOString() });
@@ -143,22 +172,35 @@ export async function runNamedSessionService(input) {
143
172
  return write;
144
173
  };
145
174
  function enqueue(operation) {
146
- if (closing || pending >= 8)
175
+ if (closing)
147
176
  return Promise.reject(new Error('named_session_busy'));
148
- pending++;
149
- const result = serial.then(async () => {
150
- try {
151
- if (closing)
152
- throw new Error('named_session_stopped');
153
- return await operation();
154
- }
155
- finally {
156
- pending--;
157
- await health();
158
- }
159
- });
160
- serial = result.then(() => undefined, () => undefined);
161
- return result;
177
+ return admission.enqueue(async () => {
178
+ if (closing)
179
+ throw new Error('named_session_stopped');
180
+ return operation();
181
+ }, health);
182
+ }
183
+ async function maintenanceRegistration(enabled, write, fenceId, generation) {
184
+ try {
185
+ const { maintenanceFence: _oldFence, ...base } = registration;
186
+ const fence = { fenceId, generation };
187
+ const current = await readNamedSession(input.home, registration.name);
188
+ if (!current)
189
+ throw new Error('unconfirmed');
190
+ const { maintenanceFence: currentFence, ...currentBase } = current;
191
+ if (canonicalize({ ...currentBase, enabled: base.enabled }) !== canonicalize(base)
192
+ || currentFence && canonicalize(currentFence) !== canonicalize(fence))
193
+ throw new Error('unconfirmed');
194
+ const expected = enabled ? { ...base, enabled: true } : { ...base, enabled: false, maintenanceFence: fence };
195
+ if (write)
196
+ await saveNamedSession(input.home, expected);
197
+ const observed = await readNamedSession(input.home, registration.name);
198
+ if (!observed || canonicalize(observed) !== canonicalize(expected))
199
+ throw new Error('unconfirmed');
200
+ }
201
+ catch {
202
+ throw new Error('named_session_maintenance_persistence_unconfirmed');
203
+ }
162
204
  }
163
205
  try {
164
206
  owner = await openCodexInboxSession({ ...input, ...registration,
@@ -216,7 +258,39 @@ export async function runNamedSessionService(input) {
216
258
  const request = JSON.parse(bytes.subarray(0, end).toString('utf8'));
217
259
  if (request.action === 'status')
218
260
  return status();
261
+ if (['quiesce', 'resume', 'stop-drained'].includes(String(request.action))) {
262
+ if (Object.keys(request).sort().join(',') !== 'action,fenceId,generation'
263
+ || typeof request.fenceId !== 'string' || typeof request.generation !== 'string'
264
+ || !await owner.assertActive())
265
+ throw new Error('named_session_maintenance_unavailable');
266
+ let state;
267
+ if (request.action === 'quiesce') {
268
+ await admission.quiesce(request.fenceId, request.generation, () => maintenanceRegistration(false, true, request.fenceId, request.generation));
269
+ if (!await owner.assertActive())
270
+ throw new Error('named_session_maintenance_unavailable');
271
+ state = 'quiesced';
272
+ }
273
+ else if (request.action === 'resume') {
274
+ await admission.resume(request.fenceId, request.generation, () => maintenanceRegistration(true, true, request.fenceId, request.generation));
275
+ state = 'open';
276
+ }
277
+ else {
278
+ // Quiescence already disabled automatic restart; verify it before irreversible shutdown.
279
+ await admission.stopDrained(request.fenceId, request.generation, () => maintenanceRegistration(false, false, request.fenceId, request.generation));
280
+ closing = true;
281
+ state = 'stop_requested';
282
+ }
283
+ const result = { ok: true, schema: 'dharma.named-session-maintenance/v1', receiptId: randomUUID(),
284
+ name: registration.name, bindingId: binding.bindingId, sessionId: binding.sessionId,
285
+ ...registration.identity, action: request.action, fenceId: request.fenceId,
286
+ generation: request.generation, mode: 'live', state, pending: 0, automaticRestartEnabled: state === 'open',
287
+ observedAt: new Date().toISOString() };
288
+ await health();
289
+ return result;
290
+ }
219
291
  if (request.action === 'stop') {
292
+ admission.stop();
293
+ await saveNamedSession(input.home, { ...registration, enabled: false });
220
294
  closing = true;
221
295
  return { ok: true, state: 'stop_requested' };
222
296
  }
@@ -350,16 +424,33 @@ export async function runNamedSessionService(input) {
350
424
  await health();
351
425
  let nextExportSyncAt = 0;
352
426
  while (!closing && !input.signal.aborted) {
353
- if (input.syncTaskExports && Date.now() >= nextExportSyncAt) {
354
- await enqueue(async () => {
355
- try {
356
- taskExports = await input.syncTaskExports();
357
- }
358
- catch {
359
- taskExports = { state: 'pending', pending: null, delivered: 0,
360
- code: 'task_export_sync_unavailable', acceptedLearningObservation: false };
361
- }
427
+ if (admission.snapshot().state !== 'open') {
428
+ await new Promise(resolveWait => {
429
+ const done = () => { clearTimeout(timer); input.signal.removeEventListener('abort', done); resolveWait(); };
430
+ const timer = setTimeout(done, 1000);
431
+ input.signal.addEventListener('abort', done, { once: true });
432
+ if (input.signal.aborted)
433
+ done();
362
434
  });
435
+ continue;
436
+ }
437
+ if (input.syncTaskExports && Date.now() >= nextExportSyncAt) {
438
+ try {
439
+ await enqueue(async () => {
440
+ try {
441
+ taskExports = await input.syncTaskExports();
442
+ }
443
+ catch {
444
+ taskExports = { state: 'pending', pending: null, delivered: 0,
445
+ code: 'task_export_sync_unavailable', acceptedLearningObservation: false };
446
+ }
447
+ });
448
+ }
449
+ catch (error) {
450
+ if (error instanceof Error && error.message === 'named_session_quiesced')
451
+ continue;
452
+ throw error;
453
+ }
363
454
  nextExportSyncAt = Date.now() + 30000;
364
455
  await health();
365
456
  }
@@ -370,6 +461,8 @@ export async function runNamedSessionService(input) {
370
461
  catch (error) {
371
462
  if (closing || input.signal.aborted)
372
463
  break;
464
+ if (error instanceof Error && error.message === 'named_session_quiesced')
465
+ continue;
373
466
  throw error;
374
467
  }
375
468
  lastObservation = result;
@@ -397,7 +490,7 @@ export async function runNamedSessionService(input) {
397
490
  try {
398
491
  const serverClosed = server?.listening
399
492
  ? new Promise(resolveClose => server.close(() => resolveClose())) : null;
400
- await serial;
493
+ await admission.settled();
401
494
  // An accepted work failure must reach its caller before shutdown tears down the socket.
402
495
  await Promise.allSettled([...responses]);
403
496
  if (server) {
@@ -1 +1 @@
1
- {"version":3,"file":"namedSessionService.js","sourceRoot":"","sources":["../src/namedSessionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"namedSessionService.js","sourceRoot":"","sources":["../src/namedSessionService.ts"],"names":[],"mappings":"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"}