@dharma-ai-labs/agent-fabric 0.2.111 → 0.2.112
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/AGENT_FABRIC_ONBOARDING.md +13 -0
- package/dist/codexBoundSession.d.ts +30 -5
- package/dist/codexBoundSession.d.ts.map +1 -1
- package/dist/codexBoundSession.js +49 -2
- package/dist/codexBoundSession.js.map +1 -1
- package/dist/codexBoundSession.test.js +17 -0
- package/dist/codexBoundSession.test.js.map +1 -1
- package/dist/codexInboxSession.d.ts +50 -0
- package/dist/codexInboxSession.d.ts.map +1 -1
- package/dist/codexInboxSession.js +32 -3
- package/dist/codexInboxSession.js.map +1 -1
- package/dist/codexPeerTools.d.ts +62 -0
- package/dist/codexPeerTools.d.ts.map +1 -0
- package/dist/codexPeerTools.js +53 -0
- package/dist/codexPeerTools.js.map +1 -0
- package/dist/codexPeerTools.test.d.ts +2 -0
- package/dist/codexPeerTools.test.d.ts.map +1 -0
- package/dist/codexPeerTools.test.js +77 -0
- package/dist/codexPeerTools.test.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +267 -4
- package/dist/index.js.map +1 -1
- package/dist/namedCodexThread.d.ts +3 -0
- package/dist/namedCodexThread.d.ts.map +1 -0
- package/dist/namedCodexThread.js +22 -0
- package/dist/namedCodexThread.js.map +1 -0
- package/dist/namedCodexThread.test.d.ts +2 -0
- package/dist/namedCodexThread.test.d.ts.map +1 -0
- package/dist/namedCodexThread.test.js +63 -0
- package/dist/namedCodexThread.test.js.map +1 -0
- package/dist/namedSessionBudget.d.ts +21 -0
- package/dist/namedSessionBudget.d.ts.map +1 -0
- package/dist/namedSessionBudget.js +70 -0
- package/dist/namedSessionBudget.js.map +1 -0
- package/dist/namedSessionBudget.test.d.ts +2 -0
- package/dist/namedSessionBudget.test.d.ts.map +1 -0
- package/dist/namedSessionBudget.test.js +40 -0
- package/dist/namedSessionBudget.test.js.map +1 -0
- package/dist/namedSessionService.d.ts +39 -0
- package/dist/namedSessionService.d.ts.map +1 -0
- package/dist/namedSessionService.js +269 -0
- package/dist/namedSessionService.js.map +1 -0
- package/dist/namedSessionService.test.d.ts +2 -0
- package/dist/namedSessionService.test.d.ts.map +1 -0
- package/dist/namedSessionService.test.js +158 -0
- package/dist/namedSessionService.test.js.map +1 -0
- package/dist/namedSessionTrust.d.ts +21 -0
- package/dist/namedSessionTrust.d.ts.map +1 -0
- package/dist/namedSessionTrust.js +64 -0
- package/dist/namedSessionTrust.js.map +1 -0
- package/dist/namedSessionTrust.test.d.ts +2 -0
- package/dist/namedSessionTrust.test.d.ts.map +1 -0
- package/dist/namedSessionTrust.test.js +178 -0
- package/dist/namedSessionTrust.test.js.map +1 -0
- package/dist/onboardingStage.d.ts +1 -1
- package/dist/onboardingStage.d.ts.map +1 -1
- package/dist/onboardingStage.js.map +1 -1
- package/dist/providerSessionChannel.d.ts +1 -0
- package/dist/providerSessionChannel.d.ts.map +1 -1
- package/dist/providerSessionChannel.js +5 -1
- package/dist/providerSessionChannel.js.map +1 -1
- package/dist/providerSessionChannel.test.js +10 -3
- package/dist/providerSessionChannel.test.js.map +1 -1
- package/dist/repositoryOnboardingCaller.test.js +19 -0
- package/dist/repositoryOnboardingCaller.test.js.map +1 -1
- package/dist/usage.d.ts +1 -1
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +1 -1
- package/dist/usage.js.map +1 -1
- package/dist/usage.test.d.ts +2 -0
- package/dist/usage.test.d.ts.map +1 -0
- package/dist/usage.test.js +18 -0
- package/dist/usage.test.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { CodexToolHandler } from '@dharma-ai-labs/agent-fabric-provider-adapters/experimental/codex-session';
|
|
2
|
+
import type { createProviderSessionChannel } from './providerSessionChannel.js';
|
|
3
|
+
export declare const CODEX_PEER_TOOLS: ({
|
|
4
|
+
type: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: string;
|
|
9
|
+
additionalProperties: boolean;
|
|
10
|
+
properties: {
|
|
11
|
+
category: {
|
|
12
|
+
type: string;
|
|
13
|
+
minLength: number;
|
|
14
|
+
maxLength: number;
|
|
15
|
+
};
|
|
16
|
+
question: {
|
|
17
|
+
type: string;
|
|
18
|
+
minLength: number;
|
|
19
|
+
maxLength: number;
|
|
20
|
+
};
|
|
21
|
+
taskId: {
|
|
22
|
+
type: string;
|
|
23
|
+
format: string;
|
|
24
|
+
};
|
|
25
|
+
targetBindingId: {
|
|
26
|
+
type: string;
|
|
27
|
+
format: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
required: string[];
|
|
31
|
+
};
|
|
32
|
+
} | {
|
|
33
|
+
type: string;
|
|
34
|
+
name: string;
|
|
35
|
+
description: string;
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: string;
|
|
38
|
+
additionalProperties: boolean;
|
|
39
|
+
properties: {
|
|
40
|
+
questionId: {
|
|
41
|
+
type: string;
|
|
42
|
+
format: string;
|
|
43
|
+
};
|
|
44
|
+
taskId: {
|
|
45
|
+
type: string;
|
|
46
|
+
format: string;
|
|
47
|
+
};
|
|
48
|
+
targetBindingId: {
|
|
49
|
+
type: string;
|
|
50
|
+
format: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
required: string[];
|
|
54
|
+
};
|
|
55
|
+
})[];
|
|
56
|
+
export declare function createCodexPeerToolHandler(input: {
|
|
57
|
+
channel(): Pick<ReturnType<typeof createProviderSessionChannel>, 'ask' | 'read'>;
|
|
58
|
+
maximumProviderCostCents: number;
|
|
59
|
+
authorize(): Promise<boolean>;
|
|
60
|
+
authorizeContent(content: string): Promise<boolean>;
|
|
61
|
+
}): CodexToolHandler;
|
|
62
|
+
//# sourceMappingURL=codexPeerTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codexPeerTools.d.ts","sourceRoot":"","sources":["../src/codexPeerTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2EAA2E,CAAC;AAClH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAIhF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU5B,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,4BAA4B,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;IACjF,wBAAwB,EAAE,MAAM,CAAC;IACjC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD,GAAG,gBAAgB,CAkCnB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const uuid = { type: 'string', format: 'uuid' };
|
|
2
|
+
const common = { taskId: uuid, targetBindingId: uuid };
|
|
3
|
+
export const CODEX_PEER_TOOLS = [
|
|
4
|
+
{ type: 'function', name: 'dharma_peer_ask', description: 'Ask a specific same-repository peer session a bounded question tied to a task. Queued is delivery, not an answer. No broader permissions are granted.',
|
|
5
|
+
inputSchema: { type: 'object', additionalProperties: false, properties: { ...common,
|
|
6
|
+
category: { type: 'string', minLength: 1, maxLength: 64 }, question: { type: 'string', minLength: 1, maxLength: 2000 } },
|
|
7
|
+
required: ['taskId', 'targetBindingId', 'category', 'question'] } },
|
|
8
|
+
{ type: 'function', name: 'dharma_peer_reply', description: 'Read the durable answer to your task-bound peer question. Pending, failed, expired and unavailable are not successful execution.',
|
|
9
|
+
inputSchema: { type: 'object', additionalProperties: false, properties: { ...common, questionId: uuid },
|
|
10
|
+
required: ['taskId', 'targetBindingId', 'questionId'] } },
|
|
11
|
+
];
|
|
12
|
+
export function createCodexPeerToolHandler(input) {
|
|
13
|
+
const id = (value) => typeof value === 'string'
|
|
14
|
+
&& /^[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])/i.test(value);
|
|
15
|
+
const result = (success, value) => ({ success,
|
|
16
|
+
contentItems: [{ type: 'inputText', text: JSON.stringify(value) }] });
|
|
17
|
+
return async (params) => {
|
|
18
|
+
const deny = (code) => result(false, { code });
|
|
19
|
+
const ask = params.tool === 'dharma_peer_ask', read = params.tool === 'dharma_peer_reply';
|
|
20
|
+
if (Object.keys(params).some(key => !['threadId', 'turnId', 'callId', 'namespace', 'tool', 'arguments'].includes(key))
|
|
21
|
+
|| (!ask && !read) || params.namespace != null || !params.arguments || typeof params.arguments !== 'object'
|
|
22
|
+
|| Array.isArray(params.arguments))
|
|
23
|
+
return deny('codex_peer_tool_invalid');
|
|
24
|
+
const args = params.arguments;
|
|
25
|
+
const keys = ask ? ['taskId', 'targetBindingId', 'category', 'question'] : ['taskId', 'targetBindingId', 'questionId'];
|
|
26
|
+
if (Object.keys(args).length !== keys.length || Object.keys(args).some(key => !keys.includes(key))
|
|
27
|
+
|| !id(args.taskId) || !id(args.targetBindingId)
|
|
28
|
+
|| (ask ? typeof args.category !== 'string' || args.category.length > 64 || !/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$(?![\s\S])/.test(args.category)
|
|
29
|
+
|| typeof args.question !== 'string' || !args.question.trim() || args.question.length > 2000
|
|
30
|
+
|| /[\u0000-\u001f\u007f]/.test(args.question) : !id(args.questionId)))
|
|
31
|
+
return deny('codex_peer_tool_invalid');
|
|
32
|
+
if (!await input.authorize())
|
|
33
|
+
return deny('codex_peer_tool_not_authorized');
|
|
34
|
+
try {
|
|
35
|
+
const receipt = ask
|
|
36
|
+
? await input.channel().ask({ targetBindingId: args.targetBindingId, taskId: args.taskId,
|
|
37
|
+
category: args.category, question: args.question,
|
|
38
|
+
maximumProviderCostCents: input.maximumProviderCostCents })
|
|
39
|
+
: await input.channel().read(args.questionId, args.taskId, args.targetBindingId);
|
|
40
|
+
if (!await input.authorize())
|
|
41
|
+
return deny('codex_peer_tool_authority_changed');
|
|
42
|
+
const answer = receipt.answer;
|
|
43
|
+
if (typeof answer === 'string' && !await input.authorizeContent(answer))
|
|
44
|
+
return deny('codex_peer_tool_content_blocked');
|
|
45
|
+
return result(true, receipt);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// A timeout may have queued a question; never invent success or silently resend it.
|
|
49
|
+
return deny('codex_peer_tool_delivery_unconfirmed');
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=codexPeerTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codexPeerTools.js","sourceRoot":"","sources":["../src/codexPeerTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codexPeerTools.test.d.ts","sourceRoot":"","sources":["../src/codexPeerTools.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import { CODEX_PEER_TOOLS, createCodexPeerToolHandler } from './codexPeerTools.js';
|
|
4
|
+
const id = '40000000-0000-4000-8000-000000000001';
|
|
5
|
+
function fixture() {
|
|
6
|
+
const calls = [];
|
|
7
|
+
const input = { maximumProviderCostCents: 25, authorize: async () => true,
|
|
8
|
+
authorizeContent: async (_content) => true,
|
|
9
|
+
channel: () => ({ ask: async (args) => {
|
|
10
|
+
calls.push(args);
|
|
11
|
+
return { state: 'queued', questionId: id,
|
|
12
|
+
taskId: args.taskId, targetBindingId: args.targetBindingId, replay: false, correlationId: id };
|
|
13
|
+
},
|
|
14
|
+
read: async (...args) => {
|
|
15
|
+
calls.push(args);
|
|
16
|
+
return { state: 'answered', answer: 'Use the logical job identity.',
|
|
17
|
+
questionId: args[0], taskId: args[1], targetBindingId: args[2], failureCode: null,
|
|
18
|
+
replyReceiptHash: 'sha256:' + 'a'.repeat(64), correlationId: id };
|
|
19
|
+
} }) };
|
|
20
|
+
return { input, calls };
|
|
21
|
+
}
|
|
22
|
+
const ask = { tool: 'dharma_peer_ask', namespace: null,
|
|
23
|
+
arguments: { taskId: id, targetBindingId: id, category: 'code-review', question: 'Which retry identity is canonical?' } };
|
|
24
|
+
const read = { tool: 'dharma_peer_reply', arguments: { taskId: id, targetBindingId: id, questionId: id } };
|
|
25
|
+
test('tools expose bounded schemas, not authentication or permission parameters', () => {
|
|
26
|
+
assert.equal(CODEX_PEER_TOOLS.length, 2);
|
|
27
|
+
for (const tool of CODEX_PEER_TOOLS) {
|
|
28
|
+
assert.equal(tool.type, 'function');
|
|
29
|
+
assert.equal(tool.inputSchema.additionalProperties, false);
|
|
30
|
+
assert.equal(JSON.stringify(tool).includes('credentials'), false);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
test('peer tools delegate exact scopes and distinguish queued from answered', async () => {
|
|
34
|
+
const f = fixture(), handler = createCodexPeerToolHandler(f.input);
|
|
35
|
+
const queued = await handler(ask);
|
|
36
|
+
assert.equal(JSON.parse(queued.contentItems[0].text).state, 'queued');
|
|
37
|
+
assert.deepEqual(f.calls[0], { ...ask.arguments, maximumProviderCostCents: 25 });
|
|
38
|
+
const answered = await handler(read);
|
|
39
|
+
assert.equal(JSON.parse(answered.contentItems[0].text).state, 'answered');
|
|
40
|
+
assert.deepEqual(f.calls[1], [id, id, id]);
|
|
41
|
+
});
|
|
42
|
+
test('malformed or broader arguments never reach the signed channel', async () => {
|
|
43
|
+
const f = fixture(), handler = createCodexPeerToolHandler(f.input);
|
|
44
|
+
for (const call of [{ ...ask, tool: 'approve_device' }, { ...ask, namespace: 'other' },
|
|
45
|
+
{ ...ask, arguments: { ...ask.arguments, credentials: 'never' } },
|
|
46
|
+
{ ...ask, arguments: { ...ask.arguments, category: 'invalid_category' } },
|
|
47
|
+
{ ...ask, arguments: { ...ask.arguments, question: 'x'.repeat(2001) } },
|
|
48
|
+
{ ...ask, arguments: { ...ask.arguments, taskId: 'foreign' } }]) {
|
|
49
|
+
assert.equal((await handler(call)).success, false);
|
|
50
|
+
}
|
|
51
|
+
assert.equal(f.calls.length, 0);
|
|
52
|
+
});
|
|
53
|
+
test('revocation, post-dispatch authority changes and secrets cannot become successful tool answers', async () => {
|
|
54
|
+
const f = fixture();
|
|
55
|
+
f.input.authorize = async () => false;
|
|
56
|
+
assert.equal((await createCodexPeerToolHandler(f.input)(ask)).success, false);
|
|
57
|
+
assert.equal(f.calls.length, 0);
|
|
58
|
+
let checks = 0;
|
|
59
|
+
f.input.authorize = async () => ++checks === 1;
|
|
60
|
+
const changed = await createCodexPeerToolHandler(f.input)(ask);
|
|
61
|
+
assert.equal(changed.success, false);
|
|
62
|
+
assert.equal(JSON.parse(changed.contentItems[0].text).code, 'codex_peer_tool_authority_changed');
|
|
63
|
+
f.input.authorize = async () => true;
|
|
64
|
+
f.input.authorizeContent = async () => false;
|
|
65
|
+
assert.equal((await createCodexPeerToolHandler(f.input)(read)).success, false);
|
|
66
|
+
});
|
|
67
|
+
test('uncertain delivery is not replayed or described as success', async () => {
|
|
68
|
+
const f = fixture();
|
|
69
|
+
f.input.channel = () => ({ ask: async (args) => { f.calls.push(args); throw new Error('private provider body'); },
|
|
70
|
+
read: async () => { throw new Error('private provider body'); } });
|
|
71
|
+
const result = await createCodexPeerToolHandler(f.input)(ask);
|
|
72
|
+
assert.equal(result.success, false);
|
|
73
|
+
assert.equal(JSON.parse(result.contentItems[0].text).code, 'codex_peer_tool_delivery_unconfirmed');
|
|
74
|
+
assert.equal(f.calls.length, 1);
|
|
75
|
+
assert.equal(JSON.stringify(result).includes('private provider body'), false);
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=codexPeerTools.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codexPeerTools.test.js","sourceRoot":"","sources":["../src/codexPeerTools.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -47,8 +47,12 @@ import { runDemoSupervisor } from './demoSupervisor.js';
|
|
|
47
47
|
import { demoWatchRegistrationKey, listDemoWatchRegistrations } from './demoWatchRegistry.js';
|
|
48
48
|
import { createDemoWatchHealthRecorder } from './demoWatchHealth.js';
|
|
49
49
|
import { demoWatchStatus, disableDemoWatch, enableDemoWatch, inspectDemoWatchSupervisor } from './demoWatchControl.js';
|
|
50
|
+
import { namedSessionPaths, namedSessionRequest, readNamedSession, saveNamedSession, runNamedSessionService } from './namedSessionService.js';
|
|
51
|
+
import { openCodexAppServerTransport } from '@dharma-ai-labs/agent-fabric-provider-adapters/experimental/codex-transport';
|
|
52
|
+
import { createNamedSessionTrust, isNamedSessionOwnerReceipt, renewNamedSessionLifetime } from './namedSessionTrust.js';
|
|
53
|
+
import { startNamedCodexThread } from './namedCodexThread.js';
|
|
50
54
|
export { openCooperativeInboxSession } from './cooperativeInboxSession.js';
|
|
51
|
-
const VERSION = '0.2.
|
|
55
|
+
const VERSION = '0.2.112';
|
|
52
56
|
const USAGE = CLI_USAGE;
|
|
53
57
|
const execFileAsync = promisify(execFile);
|
|
54
58
|
const LOCAL_PROVIDER_IDS = ['codex', 'claude', 'agy', 'hermes'];
|
|
@@ -1667,7 +1671,9 @@ async function relaySupervise(flags) {
|
|
|
1667
1671
|
}),
|
|
1668
1672
|
}) : Promise.resolve({ restarts: 0 });
|
|
1669
1673
|
services.push(standard);
|
|
1670
|
-
const
|
|
1674
|
+
const sessions = policyPath ? superviseNamedSessions(controller.signal) : Promise.resolve();
|
|
1675
|
+
services.push(sessions);
|
|
1676
|
+
const [demoResult, standardResult] = await Promise.all([demo, standard, sessions]);
|
|
1671
1677
|
return { ok: true, stopped: true, ...standardResult, demo: demoResult };
|
|
1672
1678
|
}
|
|
1673
1679
|
finally {
|
|
@@ -1683,6 +1689,42 @@ async function relaySupervise(flags) {
|
|
|
1683
1689
|
await releaseLease();
|
|
1684
1690
|
}
|
|
1685
1691
|
}
|
|
1692
|
+
async function superviseNamedSessions(signal) {
|
|
1693
|
+
if (process.platform !== 'linux')
|
|
1694
|
+
return;
|
|
1695
|
+
while (!signal.aborted) {
|
|
1696
|
+
const root = resolve(dharmaHome(), 'sessions');
|
|
1697
|
+
const entries = await readdir(root, { withFileTypes: true }).catch(error => {
|
|
1698
|
+
if (error.code === 'ENOENT')
|
|
1699
|
+
return [];
|
|
1700
|
+
throw error;
|
|
1701
|
+
});
|
|
1702
|
+
for (const entry of entries.slice(0, 50)) {
|
|
1703
|
+
if (signal.aborted)
|
|
1704
|
+
break;
|
|
1705
|
+
if (!entry.isDirectory() || !/^[a-z][a-z0-9-]{0,47}$/.test(entry.name))
|
|
1706
|
+
continue;
|
|
1707
|
+
try {
|
|
1708
|
+
const registration = await readNamedSession(dharmaHome(), entry.name);
|
|
1709
|
+
if (!registration?.enabled)
|
|
1710
|
+
continue;
|
|
1711
|
+
await namedSessionCommand('start', new Map([
|
|
1712
|
+
['name', registration.name], ['workspace-id', registration.identity.workspaceId], ['apply', true],
|
|
1713
|
+
]));
|
|
1714
|
+
}
|
|
1715
|
+
catch {
|
|
1716
|
+
process.stderr.write(`${JSON.stringify({ event: 'named_session_reconnect_pending', name: entry.name })}\n`);
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1719
|
+
await new Promise(resolveWait => {
|
|
1720
|
+
const finish = () => { clearTimeout(timer); signal.removeEventListener('abort', finish); resolveWait(); };
|
|
1721
|
+
const timer = setTimeout(finish, 10_000);
|
|
1722
|
+
signal.addEventListener('abort', finish, { once: true });
|
|
1723
|
+
if (signal.aborted)
|
|
1724
|
+
finish();
|
|
1725
|
+
});
|
|
1726
|
+
}
|
|
1727
|
+
}
|
|
1686
1728
|
async function relayStop() {
|
|
1687
1729
|
const home = dharmaHome();
|
|
1688
1730
|
const supervisor = await relaySupervisorProcessState(home);
|
|
@@ -2035,12 +2077,22 @@ async function bootstrap(flags) {
|
|
|
2035
2077
|
usage,
|
|
2036
2078
|
});
|
|
2037
2079
|
const operatingContract = await loadAgentFabricOnboardingContract();
|
|
2080
|
+
const namedSession = provider === 'codex' && process.platform === 'linux' && sharedRepositoryReady
|
|
2081
|
+
? await withOnboardingStage('named_session', String(onboarded.workspaceId), `dharma bootstrap --resume --complete --portal-url ${hqUrl} --organization-id ${organizationId} --workspace . --policy-revision ${policyRevision}`, () => namedSessionCommand('start', new Map([
|
|
2082
|
+
['name', String(flags.get('session-name') || `codex-${String(onboarded.workspaceId).slice(0, 8)}`)],
|
|
2083
|
+
['workspace-id', String(onboarded.workspaceId)], ['apply', true],
|
|
2084
|
+
...(typeof flags.get('session-budget-cents') === 'string'
|
|
2085
|
+
? [['session-budget-cents', String(flags.get('session-budget-cents'))]] : []),
|
|
2086
|
+
])))
|
|
2087
|
+
: null;
|
|
2038
2088
|
const repositoryReceipt = onboarded;
|
|
2089
|
+
const namedSessionReady = provider !== 'codex' || process.platform !== 'linux'
|
|
2090
|
+
|| Boolean(namedSession?.ok === true && ['running', 'executing'].includes(String(namedSession.state)));
|
|
2039
2091
|
const firstLearning = repositoryReceipt.firstLearningEvidence;
|
|
2040
2092
|
const role = repositoryReceipt.repositoryRole;
|
|
2041
2093
|
return {
|
|
2042
|
-
ok: repositoryReadiness?.outcome !== 'blocked',
|
|
2043
|
-
stage: sharedRepositoryReady ? 'complete'
|
|
2094
|
+
ok: repositoryReadiness?.outcome !== 'blocked' && namedSessionReady,
|
|
2095
|
+
stage: sharedRepositoryReady ? namedSessionReady ? 'complete' : 'named_session_pending'
|
|
2044
2096
|
: repositoryReadiness?.outcome === 'blocked' ? 'shared_repository_blocked' : 'shared_repository_pending',
|
|
2045
2097
|
localStage: 'complete',
|
|
2046
2098
|
sharedRepositoryReady,
|
|
@@ -2065,6 +2117,7 @@ async function bootstrap(flags) {
|
|
|
2065
2117
|
},
|
|
2066
2118
|
relayProbe: relay.probe,
|
|
2067
2119
|
relay,
|
|
2120
|
+
namedSession,
|
|
2068
2121
|
repositoryReadiness,
|
|
2069
2122
|
organizationApi,
|
|
2070
2123
|
operatingContract: {
|
|
@@ -2079,6 +2132,8 @@ async function bootstrap(flags) {
|
|
|
2079
2132
|
? Number(firstLearning.discovered || 0) > 0 ? 'synchronized' : 'no_eligible_history'
|
|
2080
2133
|
: String(firstLearning?.state || 'pending'),
|
|
2081
2134
|
synchronization: relay.state === 'running' ? 'running' : 'pending',
|
|
2135
|
+
namedSession: namedSession && namedSessionReady ? 'ready'
|
|
2136
|
+
: provider === 'codex' && process.platform === 'linux' ? 'pending' : 'not_supported',
|
|
2082
2137
|
},
|
|
2083
2138
|
};
|
|
2084
2139
|
}
|
|
@@ -3161,6 +3216,17 @@ async function repositoryRoleCommand(action, flags) {
|
|
|
3161
3216
|
if (!item)
|
|
3162
3217
|
throw new Error('Repository role workspace is not registered locally.');
|
|
3163
3218
|
const scope = repositoryRoleScope(item), transport = await client();
|
|
3219
|
+
if (['ask', 'reply'].includes(action) && flags.has('session-name')) {
|
|
3220
|
+
const name = required(flags, 'session-name');
|
|
3221
|
+
const registered = await readNamedSession(dharmaHome(), name);
|
|
3222
|
+
if (!registered || registered.identity.workspaceId !== workspaceId)
|
|
3223
|
+
throw new Error('named_session_scope_mismatch');
|
|
3224
|
+
return namedSessionRequest(dharmaHome(), name, action === 'ask' ? {
|
|
3225
|
+
action: 'ask', targetBindingId: required(flags, 'target-session-binding-id'),
|
|
3226
|
+
taskId: required(flags, 'task-id'), category: required(flags, 'category'), question: required(flags, 'question'),
|
|
3227
|
+
} : { action: 'read', questionId: required(flags, 'question-id'),
|
|
3228
|
+
taskId: required(flags, 'task-id'), targetBindingId: required(flags, 'target-session-binding-id') });
|
|
3229
|
+
}
|
|
3164
3230
|
if (action === 'register') {
|
|
3165
3231
|
const categories = required(flags, 'question-categories').split(',').map(value => value.trim()).filter(Boolean);
|
|
3166
3232
|
return registerRepositoryRoleMetadata(transport, scope, { expectedRevision: Number(flags.get('expected-revision') || 0),
|
|
@@ -3177,6 +3243,201 @@ async function repositoryRoleCommand(action, flags) {
|
|
|
3177
3243
|
targetEndpointId: typeof flags.get('target-endpoint-id') === 'string' ? String(flags.get('target-endpoint-id')) : undefined });
|
|
3178
3244
|
return readRepositoryRoleReply({ transport, scope, questionId: required(flags, 'question-id') });
|
|
3179
3245
|
}
|
|
3246
|
+
async function namedSessionCommand(action, flags) {
|
|
3247
|
+
const name = String(flags.get('name') || 'codex');
|
|
3248
|
+
const paths = namedSessionPaths(dharmaHome(), name);
|
|
3249
|
+
if (process.platform !== 'linux')
|
|
3250
|
+
throw new Error('codex_session_sandbox_unqualified');
|
|
3251
|
+
const workspaceId = required(flags, 'workspace-id');
|
|
3252
|
+
const item = (await registry()).find(row => row.workspaceId === workspaceId);
|
|
3253
|
+
const config = await readDeviceConfig();
|
|
3254
|
+
if (!item || !config || item.organizationId !== config.organizationId)
|
|
3255
|
+
throw new Error('named_session_scope_mismatch');
|
|
3256
|
+
const scope = repositoryRoleScope(item);
|
|
3257
|
+
const existing = await readNamedSession(dharmaHome(), name);
|
|
3258
|
+
if (existing && (existing.identity.workspaceId !== item.workspaceId
|
|
3259
|
+
|| existing.identity.organizationId !== config.organizationId || existing.identity.deviceId !== config.deviceId
|
|
3260
|
+
|| existing.identity.endpointId !== scope.endpointId || existing.identity.repositoryBindingId !== scope.repositoryBindingId)) {
|
|
3261
|
+
throw new Error('named_session_scope_mismatch');
|
|
3262
|
+
}
|
|
3263
|
+
if (action === 'status') {
|
|
3264
|
+
try {
|
|
3265
|
+
return await namedSessionRequest(dharmaHome(), name, { action: 'status' });
|
|
3266
|
+
}
|
|
3267
|
+
catch {
|
|
3268
|
+
return { ok: true, name, state: 'stopped', registered: Boolean(existing), enabled: existing?.enabled ?? false,
|
|
3269
|
+
bindingId: existing?.bindingId ?? null };
|
|
3270
|
+
}
|
|
3271
|
+
}
|
|
3272
|
+
if (action === 'work')
|
|
3273
|
+
return namedSessionRequest(dharmaHome(), name, { action: 'work',
|
|
3274
|
+
workId: String(flags.get('work-id') || randomUUID()), prompt: required(flags, 'prompt') });
|
|
3275
|
+
if (action === 'stop') {
|
|
3276
|
+
if (!flags.has('apply'))
|
|
3277
|
+
return { ok: true, planned: true, name, action: 'stop' };
|
|
3278
|
+
if (existing)
|
|
3279
|
+
await saveNamedSession(dharmaHome(), { ...existing, enabled: false });
|
|
3280
|
+
try {
|
|
3281
|
+
return await namedSessionRequest(dharmaHome(), name, { action: 'stop' });
|
|
3282
|
+
}
|
|
3283
|
+
catch {
|
|
3284
|
+
return { ok: true, name, state: 'stopped', enabled: false };
|
|
3285
|
+
}
|
|
3286
|
+
}
|
|
3287
|
+
if (!['start', 'serve'].includes(action))
|
|
3288
|
+
throw new Error('named_session_action_invalid');
|
|
3289
|
+
if (!flags.has('apply'))
|
|
3290
|
+
return { ok: true, planned: true, name, workspaceId,
|
|
3291
|
+
provider: 'codex', localWork: 'workspace_write', peerQuestions: 'read_only', network: 'deny' };
|
|
3292
|
+
if (!await repositorySharedReady(item))
|
|
3293
|
+
throw new Error('named_session_repository_package_pending');
|
|
3294
|
+
if (action === 'start') {
|
|
3295
|
+
if (existing && !existing.enabled)
|
|
3296
|
+
await saveNamedSession(dharmaHome(), { ...existing, enabled: true });
|
|
3297
|
+
try {
|
|
3298
|
+
return await namedSessionRequest(dharmaHome(), name, { action: 'status' });
|
|
3299
|
+
}
|
|
3300
|
+
catch { /* Start an owned worker below. */ }
|
|
3301
|
+
const args = [fileURLToPath(import.meta.url), 'sessions', 'serve', '--name', name,
|
|
3302
|
+
'--workspace-id', workspaceId, '--apply'];
|
|
3303
|
+
for (const key of ['session-budget-cents', 'turn-budget-cents']) {
|
|
3304
|
+
if (flags.has(key))
|
|
3305
|
+
args.push(`--${key}`, required(flags, key));
|
|
3306
|
+
}
|
|
3307
|
+
const child = spawn(process.execPath, args, { cwd: item.path, detached: true, stdio: 'ignore', env: process.env });
|
|
3308
|
+
child.on('error', () => { });
|
|
3309
|
+
child.unref();
|
|
3310
|
+
for (let attempt = 0; attempt < 80; attempt++) {
|
|
3311
|
+
await new Promise(resolveWait => setTimeout(resolveWait, 250));
|
|
3312
|
+
try {
|
|
3313
|
+
return await namedSessionRequest(dharmaHome(), name, { action: 'status' });
|
|
3314
|
+
}
|
|
3315
|
+
catch { /* Await service initialization. */ }
|
|
3316
|
+
}
|
|
3317
|
+
throw new Error('named_session_startup_failed');
|
|
3318
|
+
}
|
|
3319
|
+
await mkdir(paths.root, { recursive: true, mode: 0o700 });
|
|
3320
|
+
const releaseLock = await acquirePidLock(resolve(paths.root, 'service.lock'), 250, 'named_session_already_running');
|
|
3321
|
+
const { LocalVault, loadOrCreateVaultMasterKey } = await loadVaultModule();
|
|
3322
|
+
const vault = await LocalVault.open({ root: resolve(dharmaHome(), 'vault'), masterKey: await loadOrCreateVaultMasterKey() });
|
|
3323
|
+
const controller = new AbortController(), stop = () => controller.abort();
|
|
3324
|
+
process.once('SIGTERM', stop);
|
|
3325
|
+
process.once('SIGINT', stop);
|
|
3326
|
+
let transport;
|
|
3327
|
+
try {
|
|
3328
|
+
const fabric = await AgentFabricClient.open({ configPath: configPath(), statePath: resolve(paths.root, 'protocol-state.json') });
|
|
3329
|
+
if (fabric.config.organizationId !== config.organizationId || fabric.config.deviceId !== config.deviceId
|
|
3330
|
+
|| fabric.config.publicKeyEd25519 !== config.publicKeyEd25519)
|
|
3331
|
+
throw new Error('named_session_trust_scope_mismatch');
|
|
3332
|
+
const trust = createNamedSessionTrust({ configPath: configPath(), identity: fabric.config });
|
|
3333
|
+
await trust.refresh();
|
|
3334
|
+
await fabric.openSession(VERSION);
|
|
3335
|
+
const policyPath = resolve(item.path, '.dharma', 'approved-policy.json');
|
|
3336
|
+
const policy = await refreshVerifiedWorkspacePolicyForTransmission(policyPath, workspaceId, fabric);
|
|
3337
|
+
const writeRoots = policy.tasks.writePaths.filter(path => /^[a-zA-Z0-9_-]+\/\*\*$/.test(path))
|
|
3338
|
+
.map(path => path.slice(0, -3));
|
|
3339
|
+
if (!writeRoots.length)
|
|
3340
|
+
throw new Error('named_session_workspace_write_not_authorized');
|
|
3341
|
+
const workRoots = ['"."="read"', ...writeRoots.map(root => `${JSON.stringify(root)}="write"`)].join(',');
|
|
3342
|
+
transport = await openCodexAppServerTransport({ command: 'codex', cwd: item.path,
|
|
3343
|
+
environment: providerProcessEnvironment(process.env), experimentalApi: true,
|
|
3344
|
+
argv: ['-c', 'default_permissions="dharma_bridge"',
|
|
3345
|
+
'-c', 'permissions.dharma_bridge.filesystem={":minimal"="read",":workspace_roots"={"."="read"}}',
|
|
3346
|
+
'-c', 'permissions.dharma_bridge.network={enabled=false}',
|
|
3347
|
+
'-c', `permissions.dharma_work.filesystem={":minimal"="read",":workspace_roots"={${workRoots}}}`,
|
|
3348
|
+
'-c', 'permissions.dharma_work.network={enabled=false}', 'app-server'] });
|
|
3349
|
+
const account = await transport.request('account/read', { refreshToken: false });
|
|
3350
|
+
if (!account.account)
|
|
3351
|
+
throw new Error('named_session_provider_authentication_required');
|
|
3352
|
+
let registration = existing;
|
|
3353
|
+
if (!registration) {
|
|
3354
|
+
const maximumCostCents = boundedInteger(flags.get('session-budget-cents'), 1000, 1, 10000, '--session-budget-cents');
|
|
3355
|
+
const maximumTurnCostCents = boundedInteger(flags.get('turn-budget-cents'), 25, 1, maximumCostCents, '--turn-budget-cents');
|
|
3356
|
+
const threadId = await startNamedCodexThread(transport, item.path, name);
|
|
3357
|
+
const bindingId = randomUUID();
|
|
3358
|
+
const response = await fabric.signedPost('/agent-fabric/provider-sessions', {
|
|
3359
|
+
schema: 'dharma.provider-session-registration/v1', action: 'attach', provider: 'codex', mode: 'bridge_owned',
|
|
3360
|
+
workspaceId, endpointId: scope.endpointId, repositoryBindingId: scope.repositoryBindingId,
|
|
3361
|
+
bindingId, expectedRevision: 0, leaseSeconds: 60,
|
|
3362
|
+
});
|
|
3363
|
+
const remote = response.registration;
|
|
3364
|
+
if (response.ok !== true || response.organizationId !== config.organizationId || !remote
|
|
3365
|
+
|| remote.bindingId !== bindingId || remote.workspaceId !== workspaceId || remote.endpointId !== scope.endpointId
|
|
3366
|
+
|| remote.repositoryBindingId !== scope.repositoryBindingId || remote.deviceId !== config.deviceId
|
|
3367
|
+
|| !UUID_PATTERN.test(String(remote.membershipId)) || remote.provider !== 'codex'
|
|
3368
|
+
|| remote.mode !== 'bridge_owned' || remote.state !== 'attached' || remote.revision !== 1) {
|
|
3369
|
+
throw new Error('named_session_registration_invalid');
|
|
3370
|
+
}
|
|
3371
|
+
const identity = { organizationId: config.organizationId, repositoryBindingId: scope.repositoryBindingId,
|
|
3372
|
+
workspaceId, endpointId: scope.endpointId, membershipId: String(remote.membershipId), deviceId: config.deviceId,
|
|
3373
|
+
provider: 'codex' };
|
|
3374
|
+
vault.saveProviderSessionBinding({ schema: 'dharma.local-provider-session-binding/v1', ...identity,
|
|
3375
|
+
bindingId, owner: 'dharma_bridge', sessionId: threadId, workspaceRoot: item.path,
|
|
3376
|
+
createdAt: new Date().toISOString(), expiresAt: new Date(Date.now() + 30 * 86400000).toISOString(),
|
|
3377
|
+
maximumProviderCostCents: maximumTurnCostCents });
|
|
3378
|
+
registration = { schema: 'dharma.named-session/v1', name, bindingId, identity,
|
|
3379
|
+
maximumCostCents, maximumTurnCostCents, enabled: true };
|
|
3380
|
+
await saveNamedSession(dharmaHome(), registration);
|
|
3381
|
+
}
|
|
3382
|
+
const authorizeLifetime = async () => {
|
|
3383
|
+
const current = await refreshVerifiedWorkspacePolicyForTransmission(policyPath, workspaceId, fabric);
|
|
3384
|
+
if (!writeRoots.every(root => current.tasks.writePaths.includes(`${root}/**`)))
|
|
3385
|
+
return false;
|
|
3386
|
+
const response = await fabric.signedPost('/agent-fabric/provider-sessions', {
|
|
3387
|
+
schema: 'dharma.provider-session-registration/v1', action: 'inspect', provider: 'codex', mode: 'bridge_owned',
|
|
3388
|
+
workspaceId, endpointId: scope.endpointId, repositoryBindingId: scope.repositoryBindingId,
|
|
3389
|
+
bindingId: registration.bindingId, expectedRevision: 0, leaseSeconds: 60,
|
|
3390
|
+
});
|
|
3391
|
+
return isNamedSessionOwnerReceipt(response, registration.bindingId, registration.identity);
|
|
3392
|
+
};
|
|
3393
|
+
const refreshLifetime = () => renewNamedSessionLifetime({ vault, bindingId: registration.bindingId,
|
|
3394
|
+
identity: registration.identity, trust, authorize: authorizeLifetime });
|
|
3395
|
+
await refreshLifetime();
|
|
3396
|
+
const channelTransport = { async signedPost(route, body) {
|
|
3397
|
+
await trust.refresh();
|
|
3398
|
+
const response = await fabric.signedPost(route, body);
|
|
3399
|
+
await trust.refresh();
|
|
3400
|
+
return response;
|
|
3401
|
+
} };
|
|
3402
|
+
// The durable reservation already suppresses duplicate provider execution.
|
|
3403
|
+
const consumed = new Set();
|
|
3404
|
+
return await runNamedSessionService({ home: dharmaHome(), registration, vault, signal: controller.signal,
|
|
3405
|
+
localWriteRoots: writeRoots,
|
|
3406
|
+
withActivationBoundary: operation => withWorkspaceSkillActivationLock(workspaceId, 'codex', async () => {
|
|
3407
|
+
await refreshLifetime();
|
|
3408
|
+
const skill = await verifyAgentFabricSkillInstallation({ provider: 'codex', workspace: item.path });
|
|
3409
|
+
if (!skill.ready || !await repositorySharedReady(item))
|
|
3410
|
+
throw new Error('named_session_repository_package_pending');
|
|
3411
|
+
return operation();
|
|
3412
|
+
}),
|
|
3413
|
+
authorizeLocalWork: async () => {
|
|
3414
|
+
const current = await refreshVerifiedWorkspacePolicyForTransmission(policyPath, workspaceId, fabric);
|
|
3415
|
+
return writeRoots.every(root => current.tasks.writePaths.includes(`${root}/**`));
|
|
3416
|
+
},
|
|
3417
|
+
openTransport: async () => transport, channelTransport,
|
|
3418
|
+
verifier: { resolvePublicKey: trust.resolvePublicKey, consume: async (id) => { if (consumed.has(id))
|
|
3419
|
+
return false; consumed.add(id); return true; } },
|
|
3420
|
+
authorizeContent: async (content) => {
|
|
3421
|
+
const current = await refreshVerifiedWorkspacePolicyForTransmission(policyPath, workspaceId, fabric);
|
|
3422
|
+
return current.evidence.automaticDisclosure?.mode === 'customer_authorized_content'
|
|
3423
|
+
&& !containsDisallowedLocalPath(content)
|
|
3424
|
+
&& canonicalize(redactValue(content, { classes: new Set(), redactedValues: 0,
|
|
3425
|
+
excludedPaths: 0, inputBytes: 0, outputBytes: 0 })) === canonicalize(content);
|
|
3426
|
+
} });
|
|
3427
|
+
}
|
|
3428
|
+
finally {
|
|
3429
|
+
try {
|
|
3430
|
+
if (transport)
|
|
3431
|
+
await transport.close();
|
|
3432
|
+
}
|
|
3433
|
+
finally {
|
|
3434
|
+
vault.close();
|
|
3435
|
+
await releaseLock();
|
|
3436
|
+
process.removeListener('SIGTERM', stop);
|
|
3437
|
+
process.removeListener('SIGINT', stop);
|
|
3438
|
+
}
|
|
3439
|
+
}
|
|
3440
|
+
}
|
|
3180
3441
|
async function workspaceSync(flags, positional) {
|
|
3181
3442
|
const workspaceId = positional[0] || required(flags, 'workspace-id');
|
|
3182
3443
|
const policyRevision = required(flags, 'policy-revision');
|
|
@@ -6064,6 +6325,8 @@ export async function run(argv) {
|
|
|
6064
6325
|
}
|
|
6065
6326
|
if (command === 'bootstrap')
|
|
6066
6327
|
return bootstrap(flags);
|
|
6328
|
+
if (command === 'sessions')
|
|
6329
|
+
return namedSessionCommand(String(subcommand), flags);
|
|
6067
6330
|
if (command === 'onboard')
|
|
6068
6331
|
return onboard(flags);
|
|
6069
6332
|
if (command === 'login')
|