@dharma-ai-labs/agent-fabric 0.2.209 → 0.2.210
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.
- package/dist/bin.js +2 -2
- package/dist/bin.js.map +1 -1
- package/dist/bootstrapHostScope.test.js +1 -1
- package/dist/bootstrapHostScope.test.js.map +1 -1
- package/dist/bootstrapProcessCaller.test.js +1 -0
- package/dist/bootstrapProcessCaller.test.js.map +1 -1
- package/dist/bootstrapVaultScope.test.js +25 -1
- package/dist/bootstrapVaultScope.test.js.map +1 -1
- package/dist/codexBoundSession.d.ts +59 -0
- package/dist/codexBoundSession.d.ts.map +1 -1
- package/dist/codexBoundSession.js +140 -1
- package/dist/codexBoundSession.js.map +1 -1
- package/dist/codexInboxSession.d.ts +1 -1
- package/dist/codexInboxSession.d.ts.map +1 -1
- package/dist/codexRecoveryController.test.d.ts +2 -0
- package/dist/codexRecoveryController.test.d.ts.map +1 -0
- package/dist/codexRecoveryController.test.js +295 -0
- package/dist/codexRecoveryController.test.js.map +1 -0
- package/dist/codexScopedDispatch.test.js +2 -1
- package/dist/codexScopedDispatch.test.js.map +1 -1
- package/dist/codexSetupChildProvider.test.js +20 -0
- package/dist/codexSetupChildProvider.test.js.map +1 -1
- package/dist/codexSetupNativeHost.test.js +2 -1
- package/dist/codexSetupNativeHost.test.js.map +1 -1
- package/dist/codexSetupSessionCaller.test.js +1 -0
- package/dist/codexSetupSessionCaller.test.js.map +1 -1
- package/dist/codexSigningRecoveryNativeHost.d.ts +50 -0
- package/dist/codexSigningRecoveryNativeHost.d.ts.map +1 -0
- package/dist/codexSigningRecoveryNativeHost.js +186 -0
- package/dist/codexSigningRecoveryNativeHost.js.map +1 -0
- package/dist/codexSigningRecoveryNativeHost.test.d.ts +2 -0
- package/dist/codexSigningRecoveryNativeHost.test.d.ts.map +1 -0
- package/dist/codexSigningRecoveryNativeHost.test.js +475 -0
- package/dist/codexSigningRecoveryNativeHost.test.js.map +1 -0
- package/dist/codexSigningRecoveryTool.d.ts +25 -0
- package/dist/codexSigningRecoveryTool.d.ts.map +1 -0
- package/dist/codexSigningRecoveryTool.js +24 -0
- package/dist/codexSigningRecoveryTool.js.map +1 -0
- package/dist/containerRelayLifecycle.d.ts +1 -1
- package/dist/cooperativeInboxSession.d.ts +1 -1
- package/dist/demoPackage.d.ts +1 -1
- package/dist/demoWatchControl.d.ts +6 -6
- package/dist/deviceSigningMaintenanceController.d.ts +35 -0
- package/dist/deviceSigningMaintenanceController.d.ts.map +1 -0
- package/dist/deviceSigningMaintenanceController.js +197 -0
- package/dist/deviceSigningMaintenanceController.js.map +1 -0
- package/dist/deviceSigningMaintenanceController.test.d.ts +2 -0
- package/dist/deviceSigningMaintenanceController.test.d.ts.map +1 -0
- package/dist/deviceSigningMaintenanceController.test.js +67 -0
- package/dist/deviceSigningMaintenanceController.test.js.map +1 -0
- package/dist/deviceSigningMaintenanceFlow.test.d.ts +2 -0
- package/dist/deviceSigningMaintenanceFlow.test.d.ts.map +1 -0
- package/dist/deviceSigningMaintenanceFlow.test.js +196 -0
- package/dist/deviceSigningMaintenanceFlow.test.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +609 -466
- package/dist/index.js.map +1 -1
- package/dist/legacySigningMaintenanceBoundary.d.ts +14 -0
- package/dist/legacySigningMaintenanceBoundary.d.ts.map +1 -0
- package/dist/legacySigningMaintenanceBoundary.js +128 -0
- package/dist/legacySigningMaintenanceBoundary.js.map +1 -0
- package/dist/legacySigningMaintenanceBoundary.test.d.ts +2 -0
- package/dist/legacySigningMaintenanceBoundary.test.d.ts.map +1 -0
- package/dist/legacySigningMaintenanceBoundary.test.js +109 -0
- package/dist/legacySigningMaintenanceBoundary.test.js.map +1 -0
- package/dist/namedCodexThread.d.ts.map +1 -1
- package/dist/namedCodexThread.js +3 -1
- package/dist/namedCodexThread.js.map +1 -1
- package/dist/namedCodexThread.test.js +17 -1
- package/dist/namedCodexThread.test.js.map +1 -1
- package/dist/namedSessionMaintenance.d.ts +1 -1
- package/dist/namedSessionStartupFence.test.d.ts +2 -0
- package/dist/namedSessionStartupFence.test.d.ts.map +1 -0
- package/dist/namedSessionStartupFence.test.js +81 -0
- package/dist/namedSessionStartupFence.test.js.map +1 -0
- package/dist/providerSessionReplyRecovery.d.ts +1 -1
- package/dist/relayRuntimeUpgrade.d.ts +1 -1
- package/dist/schemas/codex-signing-recovery-native-progress.schema.json +16 -0
- package/dist/schemas/device-enrollment-recovery-journal.schema.json +20 -0
- package/dist/schemas/device-signing-maintenance-challenge.schema.json +185 -0
- package/dist/schemas/device-signing-maintenance-completion.schema.json +98 -0
- package/dist/schemas/device-signing-maintenance-context-request.schema.json +68 -0
- package/dist/schemas/device-signing-maintenance-context.schema.json +137 -0
- package/dist/schemas/device-signing-maintenance-control.schema.json +12 -0
- package/dist/schemas/device-signing-maintenance-controller-progress.schema.json +26 -0
- package/dist/schemas/device-signing-maintenance-delivery-request.schema.json +45 -0
- package/dist/schemas/device-signing-maintenance-host-progress.schema.json +121 -0
- package/dist/schemas/device-signing-maintenance-plan.schema.json +136 -0
- package/dist/schemas/device-signing-maintenance-preparation.schema.json +56 -0
- package/dist/schemas/device-signing-recovery-candidate.schema.json +28 -0
- package/dist/schemas/device-signing-recovery-challenge.schema.json +52 -0
- package/dist/schemas/device-signing-recovery-completion.schema.json +23 -0
- package/dist/schemas/device-signing-recovery-delivery-request.schema.json +16 -0
- package/dist/schemas/device-signing-recovery-delivery.schema.json +22 -0
- package/dist/schemas/device-signing-recovery-host-progress.schema.json +28 -0
- package/dist/schemas/device-signing-recovery-offer-progress.schema.json +32 -0
- package/dist/schemas/device-signing-recovery-offer-read-request.schema.json +16 -0
- package/dist/schemas/device-signing-recovery-offer-registration-receipt.schema.json +16 -0
- package/dist/schemas/device-signing-recovery-offer-registration-request.schema.json +18 -0
- package/dist/schemas/device-signing-recovery-offer-response.schema.json +43 -0
- package/dist/schemas/device-signing-recovery-plan.schema.json +40 -0
- package/dist/schemas/device-signing-recovery-preparation.schema.json +23 -0
- package/dist/schemas/provider-session-recovery-declaration.schema.json +21 -0
- package/dist/signingMaintenanceCohort.test.d.ts +2 -0
- package/dist/signingMaintenanceCohort.test.d.ts.map +1 -0
- package/dist/signingMaintenanceCohort.test.js +55 -0
- package/dist/signingMaintenanceCohort.test.js.map +1 -0
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +3 -2
- package/dist/usage.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,5 +1,43 @@
|
|
|
1
|
-
import { inspectSessionQuestionForBinding } from '@dharma-ai-labs/agent-fabric-contracts';
|
|
1
|
+
import { canonicalize, inspectSessionQuestionForBinding } from '@dharma-ai-labs/agent-fabric-contracts';
|
|
2
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
3
|
+
import { types } from 'node:util';
|
|
4
|
+
import { isAbsolute, resolve } from 'node:path';
|
|
2
5
|
import { CodexSessionAnswerTooLargeError, runCodexBridgeQuestion, runCodexLocalWork } from '@dharma-ai-labs/agent-fabric-provider-adapters/experimental/codex-session';
|
|
6
|
+
import { attachCodexSigningRecoveryNativeHost } from './codexSigningRecoveryNativeHost.js';
|
|
7
|
+
import { CODEX_SIGNING_RECOVERY_TOOL_HASH } from './codexSigningRecoveryTool.js';
|
|
8
|
+
function recoveryRequest(value) {
|
|
9
|
+
const snapshot = (item, allowed, required) => {
|
|
10
|
+
if (!item || typeof item !== 'object' || Array.isArray(item) || types.isProxy(item))
|
|
11
|
+
throw Error('codex_signing_recovery_input_invalid');
|
|
12
|
+
const fields = Object.getOwnPropertyDescriptors(item);
|
|
13
|
+
if (required.some(key => !Object.hasOwn(fields, key)) || Reflect.ownKeys(fields).some(key => typeof key !== 'string' || !allowed.includes(key)
|
|
14
|
+
|| !fields[key].enumerable || !Object.hasOwn(fields[key], 'value')))
|
|
15
|
+
throw Error('codex_signing_recovery_input_invalid');
|
|
16
|
+
return Object.fromEntries(Object.entries(fields).map(([key, field]) => [key, field.value]));
|
|
17
|
+
};
|
|
18
|
+
const keys = ['operationId', 'signal', 'current', 'authorize', 'recovery'];
|
|
19
|
+
const request = snapshot(value, keys, keys);
|
|
20
|
+
request.recovery = snapshot(request.recovery, ['configPath', 'source', 'store', 'fetcher', 'now'], ['configPath', 'source']);
|
|
21
|
+
return request;
|
|
22
|
+
}
|
|
23
|
+
function recoverySourceSnapshot(value) {
|
|
24
|
+
const keys = ['organizationId', 'workspaceId', 'repositoryBindingId', 'repositoryFingerprint', 'policyRevision', 'scopeDigest',
|
|
25
|
+
'contractDigest', 'sourceGenerationId', 'sourceReceiptId', 'sourceRevision', 'sourcePolicyRevision', 'sourcePolicyHash'];
|
|
26
|
+
if (!value || typeof value !== 'object' || Array.isArray(value) || types.isProxy(value))
|
|
27
|
+
throw Error('codex_signing_recovery_input_invalid');
|
|
28
|
+
const fields = Object.getOwnPropertyDescriptors(value);
|
|
29
|
+
if (Reflect.ownKeys(fields).length !== keys.length || Reflect.ownKeys(fields).some(key => typeof key !== 'string' || !keys.includes(key)
|
|
30
|
+
|| !fields[key].enumerable || !Object.hasOwn(fields[key], 'value')))
|
|
31
|
+
throw Error('codex_signing_recovery_input_invalid');
|
|
32
|
+
const output = {};
|
|
33
|
+
for (const key of keys) {
|
|
34
|
+
const item = fields[key].value;
|
|
35
|
+
if (key === 'sourceRevision' ? typeof item !== 'number' || !Number.isSafeInteger(item) : typeof item !== 'string' || item.length > 512)
|
|
36
|
+
throw Error('codex_signing_recovery_input_invalid');
|
|
37
|
+
output[key] = item;
|
|
38
|
+
}
|
|
39
|
+
return output;
|
|
40
|
+
}
|
|
3
41
|
export async function openCodexBoundSession(input) {
|
|
4
42
|
const binding = await input.vault.getProviderSessionBinding(input.bindingId, input.identity);
|
|
5
43
|
if (!binding || binding.provider !== 'codex' || binding.owner !== 'dharma_bridge') {
|
|
@@ -33,13 +71,22 @@ export async function openCodexBoundSession(input) {
|
|
|
33
71
|
let closing = false;
|
|
34
72
|
let closed = false;
|
|
35
73
|
let shutdown = null;
|
|
74
|
+
const recoveryLifetime = new AbortController(), connectionId = randomUUID(), hostContextId = randomUUID();
|
|
75
|
+
let recoveryHost;
|
|
76
|
+
let recoveryOpening;
|
|
77
|
+
let recoveryOnly = false;
|
|
36
78
|
async function close() {
|
|
37
79
|
closing = true;
|
|
80
|
+
recoveryLifetime.abort();
|
|
38
81
|
if (closed)
|
|
39
82
|
return;
|
|
40
83
|
if (shutdown)
|
|
41
84
|
return shutdown;
|
|
42
85
|
shutdown = (async () => {
|
|
86
|
+
if (recoveryOpening)
|
|
87
|
+
await recoveryOpening.catch(() => { });
|
|
88
|
+
if (recoveryHost)
|
|
89
|
+
await recoveryHost.close();
|
|
43
90
|
// Never release the fence while a provider child could still accept turns.
|
|
44
91
|
await transport.close();
|
|
45
92
|
await heldLease.release();
|
|
@@ -55,9 +102,88 @@ export async function openCodexBoundSession(input) {
|
|
|
55
102
|
return {
|
|
56
103
|
close,
|
|
57
104
|
async assertActive() { return !closing && !closed && await heldLease.assertHeld(); },
|
|
105
|
+
/** Trusted original-controller entry, never a peer/socket/model authority
|
|
106
|
+
* object. This arms one already-declared tool; it never starts a turn. */
|
|
107
|
+
async beginSigningRecovery(value) {
|
|
108
|
+
if (closing || closed)
|
|
109
|
+
throw Error('codex_session_closed');
|
|
110
|
+
if (running)
|
|
111
|
+
throw Error('codex_session_busy');
|
|
112
|
+
if (recoveryOnly)
|
|
113
|
+
throw Error('codex_signing_recovery_owner_consumed');
|
|
114
|
+
running = true;
|
|
115
|
+
const opening = (async () => {
|
|
116
|
+
const selected = await currentBinding();
|
|
117
|
+
const catalog = await input.vault.readProviderSessionRecoveryDeclaration(selected.bindingId, input.identity);
|
|
118
|
+
if (catalog?.toolHash !== CODEX_SIGNING_RECOVERY_TOOL_HASH)
|
|
119
|
+
throw Error('codex_signing_recovery_catalog_unavailable');
|
|
120
|
+
const request = recoveryRequest(value);
|
|
121
|
+
const source = recoverySourceSnapshot(request.recovery.source);
|
|
122
|
+
if (!(request.signal instanceof AbortSignal) || typeof request.current !== 'function' || typeof request.authorize !== 'function'
|
|
123
|
+
|| typeof request.operationId !== 'string' || !/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\s\S])/.test(request.operationId)
|
|
124
|
+
|| typeof request.recovery.configPath !== 'string' || !isAbsolute(request.recovery.configPath)
|
|
125
|
+
|| resolve(request.recovery.configPath) !== request.recovery.configPath || /[\x00-\x1f\x7f]/.test(request.recovery.configPath)
|
|
126
|
+
|| ['organizationId', 'workspaceId', 'repositoryBindingId'].some(key => source[key] !== selected[key]))
|
|
127
|
+
throw Error('codex_signing_recovery_input_invalid');
|
|
128
|
+
const signal = AbortSignal.any([request.signal, recoveryLifetime.signal, transport.signal]);
|
|
129
|
+
const session = { organizationId: selected.organizationId, workspaceId: selected.workspaceId, repositoryBindingId: selected.repositoryBindingId,
|
|
130
|
+
endpointId: selected.endpointId, membershipId: selected.membershipId, deviceId: selected.deviceId, bindingId: selected.bindingId,
|
|
131
|
+
provider: selected.provider, owner: selected.owner, sessionId: selected.sessionId, createdAt: selected.createdAt,
|
|
132
|
+
expiresAt: selected.expiresAt, maximumProviderCostCents: selected.maximumProviderCostCents };
|
|
133
|
+
const current = request.current.bind(request), authorize = request.authorize.bind(request);
|
|
134
|
+
const valid = async (native) => {
|
|
135
|
+
if (closing || closed || signal.aborted || !await heldLease.assertHeld() || signal.aborted)
|
|
136
|
+
return false;
|
|
137
|
+
const fresh = await currentBinding();
|
|
138
|
+
if (canonicalize(fresh) !== canonicalize(selected) || !await current(native))
|
|
139
|
+
return false;
|
|
140
|
+
return !closing && !closed && !signal.aborted && await heldLease.assertHeld()
|
|
141
|
+
&& canonicalize(await currentBinding()) === canonicalize(selected)
|
|
142
|
+
&& canonicalize(await input.vault.readProviderSessionRecoveryDeclaration(selected.bindingId, input.identity)) === canonicalize(catalog)
|
|
143
|
+
&& !signal.aborted;
|
|
144
|
+
};
|
|
145
|
+
if (!await valid(null))
|
|
146
|
+
throw Error('codex_signing_recovery_scope_unavailable');
|
|
147
|
+
recoveryOnly = true;
|
|
148
|
+
// Reuse the encrypted original-operation journal with a separate purpose
|
|
149
|
+
// digest. Leave the claim consumed: settlement is not readiness or a
|
|
150
|
+
// safe basis for recycling an interrupted recovery operation.
|
|
151
|
+
const digest = 'sha256:' + createHash('sha256').update('dharma.codex-signing-recovery-controller/v1\0'
|
|
152
|
+
+ canonicalize({ operationId: request.operationId, session, source, configPathHash: 'sha256:' + createHash('sha256')
|
|
153
|
+
.update(request.recovery.configPath).digest('hex'), declaration: catalog })).digest('hex');
|
|
154
|
+
const claimed = await input.vault.claimCodexSetupOperation(request.operationId, digest);
|
|
155
|
+
if (claimed.state !== 'acquired')
|
|
156
|
+
throw Error('codex_signing_recovery_operation_consumed');
|
|
157
|
+
if (!await valid(null))
|
|
158
|
+
throw Error('codex_signing_recovery_scope_unavailable');
|
|
159
|
+
const host = await attachCodexSigningRecoveryNativeHost({ transport, workspace: selected.workspaceRoot, operationId: request.operationId,
|
|
160
|
+
connectionId, hostContextId, signal, current: valid, authorize, additionalFilesystemRules: input.additionalFilesystemRules,
|
|
161
|
+
recovery: { ...request.recovery, source: source, session } });
|
|
162
|
+
recoveryHost = host;
|
|
163
|
+
void host.settled.then(() => { if (recoveryHost === host) {
|
|
164
|
+
recoveryHost = undefined;
|
|
165
|
+
running = false;
|
|
166
|
+
} }, () => { });
|
|
167
|
+
return host;
|
|
168
|
+
})();
|
|
169
|
+
recoveryOpening = opening;
|
|
170
|
+
try {
|
|
171
|
+
return await opening;
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
running = false;
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
finally {
|
|
178
|
+
if (recoveryOpening === opening)
|
|
179
|
+
recoveryOpening = undefined;
|
|
180
|
+
}
|
|
181
|
+
},
|
|
58
182
|
async runWork(request) {
|
|
59
183
|
if (closing)
|
|
60
184
|
throw new Error('codex_session_closed');
|
|
185
|
+
if (recoveryOnly)
|
|
186
|
+
throw new Error('codex_session_recovery_only');
|
|
61
187
|
if (running)
|
|
62
188
|
throw new Error('codex_session_busy');
|
|
63
189
|
running = true;
|
|
@@ -85,6 +211,8 @@ export async function openCodexBoundSession(input) {
|
|
|
85
211
|
async runQuestion(request) {
|
|
86
212
|
if (closing)
|
|
87
213
|
throw new Error('codex_session_closed');
|
|
214
|
+
if (recoveryOnly)
|
|
215
|
+
throw new Error('codex_session_recovery_only');
|
|
88
216
|
if (running)
|
|
89
217
|
throw new Error('codex_session_busy');
|
|
90
218
|
running = true;
|
|
@@ -162,4 +290,15 @@ export async function runCodexBoundSessionQuestion(input) {
|
|
|
162
290
|
throw error;
|
|
163
291
|
}
|
|
164
292
|
}
|
|
293
|
+
/** Purpose-limited original-owner composition; it exposes no peer/write turn. */
|
|
294
|
+
export async function openCodexSigningRecoveryOwner(input) {
|
|
295
|
+
if (process.platform !== 'linux')
|
|
296
|
+
throw Error('codex_session_sandbox_unqualified');
|
|
297
|
+
const catalog = await input.vault.readProviderSessionRecoveryDeclaration(input.bindingId, input.identity);
|
|
298
|
+
if (catalog?.toolHash !== CODEX_SIGNING_RECOVERY_TOOL_HASH)
|
|
299
|
+
throw Error('codex_signing_recovery_catalog_unavailable');
|
|
300
|
+
const owner = await openCodexBoundSession({ ...input, verifier: { resolvePublicKey: () => null, consume: async () => false },
|
|
301
|
+
budget: { reserve: async () => false } });
|
|
302
|
+
return Object.freeze({ beginSigningRecovery: owner.beginSigningRecovery, assertActive: owner.assertActive, close: owner.close });
|
|
303
|
+
}
|
|
165
304
|
//# sourceMappingURL=codexBoundSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexBoundSession.js","sourceRoot":"","sources":["../src/codexBoundSession.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codexBoundSession.js","sourceRoot":"","sources":["../src/codexBoundSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ export declare function openCodexInboxSession(input: Parameters<typeof openCodex
|
|
|
79
79
|
questionId: string;
|
|
80
80
|
taskId: string;
|
|
81
81
|
completionHash: string;
|
|
82
|
-
reasonCode: "
|
|
82
|
+
reasonCode: "delivery_unconfirmed" | "content_or_contract_blocked" | "receipt_invalid";
|
|
83
83
|
dispositionHash?: undefined;
|
|
84
84
|
delivered?: undefined;
|
|
85
85
|
replyReceiptHash?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexInboxSession.d.ts","sourceRoot":"","sources":["../src/codexInboxSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAGxI,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAO3E,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG;IAC/F,gBAAgB,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACzF,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;sBA4C+B;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;wBAVuB,OAAO;wBAAkB,IAAI;;;;wBAA7B,OAAO;wBAAkB,IAAI;;qBAuD7E,UAAU;;;;
|
|
1
|
+
{"version":3,"file":"codexInboxSession.d.ts","sourceRoot":"","sources":["../src/codexInboxSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAGxI,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAO3E,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG;IAC/F,gBAAgB,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACzF,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;sBA4C+B;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;wBAVuB,OAAO;wBAAkB,IAAI;;;;wBAA7B,OAAO;wBAAkB,IAAI;;qBAuD7E,UAAU;;;;iBAuErB,CAAF;sBAA8B,CAAC;;;;;;;;;;OAvEc,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBASnC;QAAC,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;KAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoHlG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codexRecoveryController.test.d.ts","sourceRoot":"","sources":["../src/codexRecoveryController.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { createHash, generateKeyPairSync, randomBytes } from 'node:crypto';
|
|
3
|
+
import { mkdtemp, rm, writeFile } from 'node:fs/promises';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { resolve } from 'node:path';
|
|
6
|
+
import test, { describe } from 'node:test';
|
|
7
|
+
import { signCanonicalObject } from '@dharma-ai-labs/agent-fabric-contracts';
|
|
8
|
+
import { LocalVault } from '@dharma-ai-labs/agent-fabric-local-vault';
|
|
9
|
+
import { openCodexBoundSession, openCodexSigningRecoveryOwner } from './codexBoundSession.js';
|
|
10
|
+
import { CODEX_SIGNING_RECOVERY_TOOL, CODEX_SIGNING_RECOVERY_TOOL_HASH } from './codexSigningRecoveryTool.js';
|
|
11
|
+
const id = (n) => `d3000000-0000-4000-8000-${String(n).padStart(12, '0')}`;
|
|
12
|
+
const hash = (value) => 'sha256:' + createHash('sha256').update(value).digest('hex');
|
|
13
|
+
test('the fixed recovery declaration is deeply immutable and never embeds an operation or approval', () => {
|
|
14
|
+
assert.ok(Object.isFrozen(CODEX_SIGNING_RECOVERY_TOOL.inputSchema.properties.operationId));
|
|
15
|
+
assert.ok(Object.isFrozen(CODEX_SIGNING_RECOVERY_TOOL.inputSchema.properties.action.enum));
|
|
16
|
+
assert.match(CODEX_SIGNING_RECOVERY_TOOL_HASH, /^sha256:[a-f0-9]{64}$/);
|
|
17
|
+
assert.equal(Object.hasOwn(CODEX_SIGNING_RECOVERY_TOOL.inputSchema.properties.operationId, 'const'), false);
|
|
18
|
+
assert.doesNotMatch(JSON.stringify(CODEX_SIGNING_RECOVERY_TOOL), /approved|grant|token|password/);
|
|
19
|
+
});
|
|
20
|
+
test('the official public surface exposes the purpose-limited recovery owner rather than the unrestricted bound owner', async () => {
|
|
21
|
+
const api = await import('./index.js');
|
|
22
|
+
assert.equal(api.openCodexSigningRecoveryOwner, openCodexSigningRecoveryOwner);
|
|
23
|
+
assert.equal(Object.hasOwn(api, 'openCodexBoundSession'), false);
|
|
24
|
+
});
|
|
25
|
+
describe('original Linux bound-controller recovery adoption', { skip: process.platform !== 'linux' }, () => {
|
|
26
|
+
async function fixture(catalog = CODEX_SIGNING_RECOVERY_TOOL_HASH) {
|
|
27
|
+
const root = await mkdtemp(resolve(tmpdir(), 'fabric-original-controller-')), key = randomBytes(32), now = Date.now();
|
|
28
|
+
const binding = { schema: 'dharma.local-provider-session-binding/v1', owner: 'dharma_bridge',
|
|
29
|
+
organizationId: 'org_fixture', workspaceId: id(1), repositoryBindingId: id(2), endpointId: id(3), membershipId: id(4),
|
|
30
|
+
deviceId: id(5), bindingId: id(6), provider: 'codex', sessionId: 'original_native_thread', workspaceRoot: root,
|
|
31
|
+
createdAt: new Date(now - 1000).toISOString(), expiresAt: new Date(now + 3600000).toISOString(), maximumProviderCostCents: 25 };
|
|
32
|
+
const identity = { organizationId: binding.organizationId, workspaceId: binding.workspaceId, repositoryBindingId: binding.repositoryBindingId,
|
|
33
|
+
endpointId: binding.endpointId, membershipId: binding.membershipId, deviceId: binding.deviceId, provider: binding.provider };
|
|
34
|
+
const vault = await LocalVault.open({ root: resolve(root, 'vault'), masterKey: key });
|
|
35
|
+
vault.saveProviderSessionBinding(binding);
|
|
36
|
+
if (catalog)
|
|
37
|
+
vault.saveProviderSessionRecoveryDeclaration(binding.bindingId, identity, catalog);
|
|
38
|
+
const old = generateKeyPairSync('ed25519'), device = generateKeyPairSync('ed25519');
|
|
39
|
+
const publicKey = (pair) => pair.publicKey.export({ format: 'jwk' }).x;
|
|
40
|
+
const keyset = { schema: 'dharma.server-signing-keyset/v1', organizationId: binding.organizationId, generation: 2,
|
|
41
|
+
keys: [{ keyVersion: 'synthetic-old', publicKeyEd25519: publicKey(old), status: 'active', notBefore: new Date(now - 86400000).toISOString(), notAfter: new Date(now - 1000).toISOString() }],
|
|
42
|
+
signedByKeyVersion: 'synthetic-old', issuedAt: new Date(now - 86400000).toISOString(), expiresAt: new Date(now - 1000).toISOString() };
|
|
43
|
+
const config = { schema: 'dharma.device-config/v1', hqUrl: 'https://www.dharma-ai.io', organizationId: binding.organizationId,
|
|
44
|
+
installationId: id(7), deviceId: binding.deviceId, deviceName: 'Synthetic original controller', platform: 'linux', publicKeyEd25519: publicKey(device),
|
|
45
|
+
serverPublicKeyEd25519: publicKey(old), serverSigningKeyset: { ...keyset, signature: signCanonicalObject(keyset, old.privateKey) },
|
|
46
|
+
relayUrl: 'wss://relay.example.invalid', enrolledAt: new Date(now - 172800000).toISOString(), connectionMode: 'manual',
|
|
47
|
+
setupClaimReference: id(8), setupClaimRepositoryFingerprint: 'sha256:' + 'a'.repeat(64) };
|
|
48
|
+
const anchor = { schema: 'dharma.device-enrollment-anchor/v1', hqUrl: config.hqUrl, organizationId: config.organizationId,
|
|
49
|
+
deviceId: config.deviceId, devicePublicKeyEd25519: config.publicKeyEd25519, serverPublicKeyEd25519: config.serverPublicKeyEd25519,
|
|
50
|
+
serverSigningKeyset: config.serverSigningKeyset, enrolledAt: config.enrolledAt };
|
|
51
|
+
const anchorAccount = 'device-enrollment-' + hash(`${config.hqUrl}:${config.organizationId}:${config.deviceId}`).slice(7, 39);
|
|
52
|
+
const reads = [], writes = [], requests = [], rpc = [], events = new Set();
|
|
53
|
+
const lifetime = new AbortController(), scope = new AbortController();
|
|
54
|
+
let handler, state = 'idle', reserved = 0, closes = 0;
|
|
55
|
+
const transport = { signal: lifetime.signal,
|
|
56
|
+
onToolCall(value) { assert.equal(handler, undefined); handler = value; return () => { handler = undefined; }; },
|
|
57
|
+
onNotification(value) { events.add(value); return () => { events.delete(value); }; },
|
|
58
|
+
async close() { closes++; lifetime.abort(); },
|
|
59
|
+
async request(method) {
|
|
60
|
+
rpc.push(method);
|
|
61
|
+
if (method === 'permissionProfile/list')
|
|
62
|
+
return { data: [{ id: 'dharma_bridge', allowed: true }] };
|
|
63
|
+
if (method === 'config/read')
|
|
64
|
+
return { config: { permissions: { dharma_bridge: { extends: null, workspace_roots: null,
|
|
65
|
+
filesystem: { ':minimal': 'read', ':workspace_roots': { '.': 'read' } }, network: { enabled: false } } } } };
|
|
66
|
+
if (method === 'thread/read')
|
|
67
|
+
return { thread: { id: binding.sessionId, cwd: root, status: { type: state } } };
|
|
68
|
+
throw Error('unexpected_native_request');
|
|
69
|
+
} };
|
|
70
|
+
const store = { backend: 'linux-secret-service',
|
|
71
|
+
async get(account) { reads.push(account); return account === anchorAccount ? JSON.stringify(anchor) : null; },
|
|
72
|
+
async put(account) { writes.push(account); }, async delete(account) { writes.push(account); } };
|
|
73
|
+
const configPath = resolve(root, 'device.json');
|
|
74
|
+
await writeFile(configPath, JSON.stringify(config));
|
|
75
|
+
const recovery = { configPath, source: { organizationId: binding.organizationId, workspaceId: binding.workspaceId, repositoryBindingId: binding.repositoryBindingId,
|
|
76
|
+
repositoryFingerprint: config.setupClaimRepositoryFingerprint, policyRevision: 'agent-fabric-policy-v1', scopeDigest: 'sha256:' + 'b'.repeat(64),
|
|
77
|
+
contractDigest: 'sha256:' + 'c'.repeat(64), sourceGenerationId: id(9), sourceReceiptId: 'repo_consent_' + id(9), sourceRevision: 1,
|
|
78
|
+
sourcePolicyRevision: 'repository-source-' + id(9), sourcePolicyHash: 'sha256:' + 'd'.repeat(64) }, store,
|
|
79
|
+
fetcher: (async () => { requests.push('unexpected'); throw Error('no_live_http'); }) };
|
|
80
|
+
const intent = { operationId: id(10), signal: scope.signal, recovery, current: async () => true,
|
|
81
|
+
authorize: async (phase) => phase === 'prepare' };
|
|
82
|
+
const owner = await openCodexBoundSession({ vault, bindingId: binding.bindingId, identity, openTransport: async () => transport,
|
|
83
|
+
verifier: { resolvePublicKey: () => null, consume: async () => false }, budget: { reserve: async () => { reserved++; return true; } } });
|
|
84
|
+
const emit = (method) => {
|
|
85
|
+
state = method === 'turn/started' ? 'active' : 'idle';
|
|
86
|
+
for (const event of [...events])
|
|
87
|
+
event({ method,
|
|
88
|
+
params: { threadId: binding.sessionId, turn: { id: 'original_live_turn', status: state === 'active' ? 'inProgress' : 'completed' } } });
|
|
89
|
+
};
|
|
90
|
+
const call = async (action) => {
|
|
91
|
+
assert.ok(handler);
|
|
92
|
+
return handler({ threadId: binding.sessionId, turnId: 'original_live_turn',
|
|
93
|
+
callId: 'actual_call', namespace: null, tool: 'dharma_signing_recovery', arguments: { operationId: id(10), action } }, { signal: scope.signal });
|
|
94
|
+
};
|
|
95
|
+
return { root, key, vault, binding, identity, transport, intent, owner, reads, writes, requests, rpc, emit, call, scope,
|
|
96
|
+
get reserved() { return reserved; }, get closes() { return closes; }, get handler() { return handler; },
|
|
97
|
+
cleanup: async () => { await owner.close(); vault.close(); key.fill(0); await rm(root, { recursive: true, force: true }); } };
|
|
98
|
+
}
|
|
99
|
+
test('a legacy or unknown catalog is refused without native requests, journal claims, key reads or budget', async () => {
|
|
100
|
+
for (const catalog of [null, 'sha256:' + 'f'.repeat(64)]) {
|
|
101
|
+
const f = await fixture(catalog);
|
|
102
|
+
try {
|
|
103
|
+
const owner = f.owner;
|
|
104
|
+
await assert.rejects(owner.beginSigningRecovery(f.intent), /catalog_unavailable/);
|
|
105
|
+
assert.deepEqual(f.rpc, []);
|
|
106
|
+
assert.deepEqual(f.reads, []);
|
|
107
|
+
assert.equal(f.reserved, 0);
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
await f.cleanup().catch(() => { });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
test('the actual original bound controller derives identity, prepares through the real client and never dispatches a turn', async () => {
|
|
115
|
+
const f = await fixture();
|
|
116
|
+
try {
|
|
117
|
+
const host = await f.owner.beginSigningRecovery(f.intent);
|
|
118
|
+
assert.deepEqual(f.reads, []);
|
|
119
|
+
assert.equal(f.reserved, 0);
|
|
120
|
+
await assert.rejects(f.owner.runQuestion({ question: {} }), /recovery_only/);
|
|
121
|
+
f.emit('turn/started');
|
|
122
|
+
const response = await f.call('prepare');
|
|
123
|
+
assert.equal(response.success, true);
|
|
124
|
+
const value = JSON.parse(response.contentItems[0].type === 'inputText' ? response.contentItems[0].text : 'null');
|
|
125
|
+
assert.equal(value.threadId, f.binding.sessionId);
|
|
126
|
+
assert.equal(value.turnId, 'original_live_turn');
|
|
127
|
+
assert.equal(value.ready, false);
|
|
128
|
+
assert.equal(value.progress.state, 'prepared');
|
|
129
|
+
assert.ok(f.reads.length > 0);
|
|
130
|
+
assert.deepEqual(f.writes, []);
|
|
131
|
+
assert.deepEqual(f.requests, []);
|
|
132
|
+
assert.equal((await f.call('submit')).success, false);
|
|
133
|
+
assert.equal(f.rpc.some(method => /start|resume|fork|interrupt/.test(method)), false);
|
|
134
|
+
f.emit('turn/completed');
|
|
135
|
+
await host.settled;
|
|
136
|
+
await assert.rejects(f.owner.runWork({ workId: 'not-a-new-grant', prompt: 'Do work', maximumProviderCostCents: 1 }), /recovery_only/);
|
|
137
|
+
await assert.rejects(f.owner.beginSigningRecovery({ ...f.intent, operationId: id(11) }), /owner_consumed/);
|
|
138
|
+
assert.equal(f.vault.getProviderSessionBinding(f.binding.bindingId, f.identity).sessionId, f.binding.sessionId);
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
await f.cleanup();
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
test('durable admission cannot replay the operation after the original owner closes', async () => {
|
|
145
|
+
const f = await fixture();
|
|
146
|
+
try {
|
|
147
|
+
const host = await f.owner.beginSigningRecovery(f.intent);
|
|
148
|
+
await host.close();
|
|
149
|
+
await f.owner.close();
|
|
150
|
+
const nextLifetime = new AbortController();
|
|
151
|
+
let nextRpc = 0;
|
|
152
|
+
const next = await openCodexBoundSession({ vault: f.vault, bindingId: f.binding.bindingId, identity: f.identity,
|
|
153
|
+
openTransport: async () => ({ ...f.transport, signal: nextLifetime.signal, close: async () => { nextLifetime.abort(); },
|
|
154
|
+
request: async () => { nextRpc++; throw Error('must_not_reach_native'); } }),
|
|
155
|
+
verifier: { resolvePublicKey: () => null, consume: async () => false }, budget: { reserve: async () => false } });
|
|
156
|
+
try {
|
|
157
|
+
await assert.rejects(next.beginSigningRecovery(f.intent), /operation_consumed/);
|
|
158
|
+
assert.equal(nextRpc, 0);
|
|
159
|
+
}
|
|
160
|
+
finally {
|
|
161
|
+
await next.close();
|
|
162
|
+
}
|
|
163
|
+
assert.deepEqual(f.reads, []);
|
|
164
|
+
assert.deepEqual(f.requests, []);
|
|
165
|
+
}
|
|
166
|
+
finally {
|
|
167
|
+
await f.cleanup();
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
test('current source revocation and accessor-bearing inputs stop before a handler or protected effect', async () => {
|
|
171
|
+
const f = await fixture();
|
|
172
|
+
let getters = 0;
|
|
173
|
+
try {
|
|
174
|
+
const unsafe = { ...f.intent };
|
|
175
|
+
Object.defineProperty(unsafe, 'authorize', { enumerable: true, get() { getters++; return () => true; } });
|
|
176
|
+
await assert.rejects(f.owner.beginSigningRecovery(unsafe), /input_invalid/);
|
|
177
|
+
assert.equal(getters, 0);
|
|
178
|
+
await assert.rejects(f.owner.beginSigningRecovery({ ...f.intent, current: async () => false }), /scope_unavailable/);
|
|
179
|
+
assert.equal(f.handler, undefined);
|
|
180
|
+
assert.deepEqual(f.rpc, []);
|
|
181
|
+
assert.deepEqual(f.reads, []);
|
|
182
|
+
assert.equal(f.reserved, 0);
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
await f.cleanup();
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
test('a private session selection cannot be supplied by the caller', async () => {
|
|
189
|
+
const f = await fixture();
|
|
190
|
+
try {
|
|
191
|
+
await assert.rejects(f.owner.beginSigningRecovery({ ...f.intent, recovery: { ...f.intent.recovery, session: { sessionId: 'foreign' } } }), /input_invalid/);
|
|
192
|
+
assert.deepEqual(f.rpc, []);
|
|
193
|
+
assert.deepEqual(f.reads, []);
|
|
194
|
+
assert.equal(f.handler, undefined);
|
|
195
|
+
}
|
|
196
|
+
finally {
|
|
197
|
+
await f.cleanup();
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
test('malformed operation IDs are rejected before journal admission or native effects', async () => {
|
|
201
|
+
const f = await fixture();
|
|
202
|
+
try {
|
|
203
|
+
for (const operationId of [id(10) + '\n', id(10).replace('-8000-', '-0000-'), id(10).replace('-4000-', '-0000-'),
|
|
204
|
+
'd3000000-0000-4000-8000000000000', id(10).slice(0, -1)]) {
|
|
205
|
+
await assert.rejects(f.owner.beginSigningRecovery({ ...f.intent, operationId }), /input_invalid/);
|
|
206
|
+
}
|
|
207
|
+
assert.equal(f.handler, undefined);
|
|
208
|
+
assert.deepEqual(f.rpc, []);
|
|
209
|
+
assert.deepEqual(f.reads, []);
|
|
210
|
+
assert.equal(f.reserved, 0);
|
|
211
|
+
}
|
|
212
|
+
finally {
|
|
213
|
+
await f.cleanup();
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
test('revocation during awaited qualification is observed before durable admission or native metadata', async () => {
|
|
217
|
+
const f = await fixture();
|
|
218
|
+
try {
|
|
219
|
+
await assert.rejects(f.owner.beginSigningRecovery({ ...f.intent, current: async () => {
|
|
220
|
+
f.vault.revokeProviderSessionBinding(f.binding.bindingId, f.identity);
|
|
221
|
+
return true;
|
|
222
|
+
} }), /scope_unavailable/);
|
|
223
|
+
assert.equal(f.handler, undefined);
|
|
224
|
+
assert.deepEqual(f.rpc, []);
|
|
225
|
+
assert.deepEqual(f.reads, []);
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
await f.cleanup();
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
test('close waits for pending qualification and cannot leave a late handler or released live owner', async () => {
|
|
232
|
+
const f = await fixture();
|
|
233
|
+
let release, entered;
|
|
234
|
+
const gate = new Promise(done => { release = done; }), arrived = new Promise(done => { entered = done; });
|
|
235
|
+
try {
|
|
236
|
+
const opening = f.owner.beginSigningRecovery({ ...f.intent, current: async () => { entered(); await gate; return true; } });
|
|
237
|
+
const rejected = assert.rejects(opening, /scope_unavailable/);
|
|
238
|
+
await arrived;
|
|
239
|
+
await assert.rejects(f.owner.runQuestion({ question: {} }), /busy/);
|
|
240
|
+
let closed = false;
|
|
241
|
+
const closing = f.owner.close().then(() => { closed = true; });
|
|
242
|
+
await Promise.resolve();
|
|
243
|
+
assert.equal(closed, false);
|
|
244
|
+
assert.equal(f.closes, 0);
|
|
245
|
+
release();
|
|
246
|
+
await rejected;
|
|
247
|
+
await closing;
|
|
248
|
+
assert.equal(f.closes, 1);
|
|
249
|
+
assert.equal(f.handler, undefined);
|
|
250
|
+
assert.deepEqual(f.rpc, []);
|
|
251
|
+
assert.deepEqual(f.reads, []);
|
|
252
|
+
const lease = f.vault.tryAcquireProviderSessionLease(f.binding.bindingId, f.identity);
|
|
253
|
+
assert.ok(lease);
|
|
254
|
+
lease.release();
|
|
255
|
+
}
|
|
256
|
+
finally {
|
|
257
|
+
release?.();
|
|
258
|
+
await f.cleanup();
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
test('the public recovery owner refuses a legacy catalog before its transport factory and offers no peer/work turn', async () => {
|
|
262
|
+
const legacy = await fixture(null);
|
|
263
|
+
try {
|
|
264
|
+
let opened = 0;
|
|
265
|
+
await assert.rejects(openCodexSigningRecoveryOwner({ vault: legacy.vault, bindingId: legacy.binding.bindingId, identity: legacy.identity,
|
|
266
|
+
openTransport: async () => { opened++; throw Error('must_not_open'); } }), /catalog_unavailable/);
|
|
267
|
+
assert.equal(opened, 0);
|
|
268
|
+
}
|
|
269
|
+
finally {
|
|
270
|
+
await legacy.cleanup();
|
|
271
|
+
}
|
|
272
|
+
const f = await fixture();
|
|
273
|
+
try {
|
|
274
|
+
await f.owner.close();
|
|
275
|
+
const lifetime = new AbortController();
|
|
276
|
+
const owner = await openCodexSigningRecoveryOwner({ vault: f.vault, bindingId: f.binding.bindingId, identity: f.identity,
|
|
277
|
+
openTransport: async () => ({ ...f.transport, signal: lifetime.signal, close: async () => { lifetime.abort(); } }) });
|
|
278
|
+
try {
|
|
279
|
+
assert.deepEqual(Object.keys(owner).sort(), ['assertActive', 'beginSigningRecovery', 'close']);
|
|
280
|
+
const host = await owner.beginSigningRecovery(f.intent);
|
|
281
|
+
await host.close();
|
|
282
|
+
assert.deepEqual(f.reads, []);
|
|
283
|
+
assert.deepEqual(f.requests, []);
|
|
284
|
+
assert.equal(f.reserved, 0);
|
|
285
|
+
}
|
|
286
|
+
finally {
|
|
287
|
+
await owner.close();
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
finally {
|
|
291
|
+
await f.cleanup();
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
});
|
|
295
|
+
//# sourceMappingURL=codexRecoveryController.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codexRecoveryController.test.js","sourceRoot":"","sources":["../src/codexRecoveryController.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
2
3
|
import { readFile } from 'node:fs/promises';
|
|
3
4
|
import { runInNewContext } from 'node:vm';
|
|
4
5
|
import test from 'node:test';
|
|
@@ -17,7 +18,7 @@ test('async scoped binding lookup reserves the local question turn before yieldi
|
|
|
17
18
|
maximumProviderCostCents: 1 };
|
|
18
19
|
const open = runInNewContext(`${result.outputText}\nopenCodexBoundSession`, {
|
|
19
20
|
// Control-flow fixture only: no Linux sandbox or provider execution claim.
|
|
20
|
-
process: { platform: 'linux' }, inspectSessionQuestionForBinding: () => ({ ok: true }),
|
|
21
|
+
process: { platform: 'linux' }, AbortController, randomUUID, inspectSessionQuestionForBinding: () => ({ ok: true }),
|
|
21
22
|
runCodexBridgeQuestion: async () => ({}), runCodexLocalWork: async () => ({}),
|
|
22
23
|
CodexSessionAnswerTooLargeError: class extends Error {
|
|
23
24
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexScopedDispatch.test.js","sourceRoot":"","sources":["../src/codexScopedDispatch.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,IAAI,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;IAC9F,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/F,MAAM,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9F,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,uBAAuB,CAAC,CAAC;IACxH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAChB,MAAM,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;QAC1E,eAAe,EAAE,EAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAC;KAAC,CAAC,CAAC;IAClF,IAAI,KAAK,GAAG,CAAC,EAAE,OAAoB,EAAE,KAAkB,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAE,OAAO,GAAG,OAAO,CAAC,CAAA,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAE,KAAK,GAAG,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC;IAC5H,MAAM,OAAO,GAAG,EAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW;QAC5G,wBAAwB,EAAE,CAAC,EAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,MAAM,CAAC,UAAU,yBAAyB,EAAE;QAC1E,2EAA2E;QAC3E,OAAO,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,EAAE,gCAAgC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"codexScopedDispatch.test.js","sourceRoot":"","sources":["../src/codexScopedDispatch.test.ts"],"names":[],"mappings":"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"}
|