@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.
Files changed (74) hide show
  1. package/AGENT_FABRIC_ONBOARDING.md +13 -0
  2. package/dist/codexBoundSession.d.ts +30 -5
  3. package/dist/codexBoundSession.d.ts.map +1 -1
  4. package/dist/codexBoundSession.js +49 -2
  5. package/dist/codexBoundSession.js.map +1 -1
  6. package/dist/codexBoundSession.test.js +17 -0
  7. package/dist/codexBoundSession.test.js.map +1 -1
  8. package/dist/codexInboxSession.d.ts +50 -0
  9. package/dist/codexInboxSession.d.ts.map +1 -1
  10. package/dist/codexInboxSession.js +32 -3
  11. package/dist/codexInboxSession.js.map +1 -1
  12. package/dist/codexPeerTools.d.ts +62 -0
  13. package/dist/codexPeerTools.d.ts.map +1 -0
  14. package/dist/codexPeerTools.js +53 -0
  15. package/dist/codexPeerTools.js.map +1 -0
  16. package/dist/codexPeerTools.test.d.ts +2 -0
  17. package/dist/codexPeerTools.test.d.ts.map +1 -0
  18. package/dist/codexPeerTools.test.js +77 -0
  19. package/dist/codexPeerTools.test.js.map +1 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +267 -4
  22. package/dist/index.js.map +1 -1
  23. package/dist/namedCodexThread.d.ts +3 -0
  24. package/dist/namedCodexThread.d.ts.map +1 -0
  25. package/dist/namedCodexThread.js +22 -0
  26. package/dist/namedCodexThread.js.map +1 -0
  27. package/dist/namedCodexThread.test.d.ts +2 -0
  28. package/dist/namedCodexThread.test.d.ts.map +1 -0
  29. package/dist/namedCodexThread.test.js +63 -0
  30. package/dist/namedCodexThread.test.js.map +1 -0
  31. package/dist/namedSessionBudget.d.ts +21 -0
  32. package/dist/namedSessionBudget.d.ts.map +1 -0
  33. package/dist/namedSessionBudget.js +70 -0
  34. package/dist/namedSessionBudget.js.map +1 -0
  35. package/dist/namedSessionBudget.test.d.ts +2 -0
  36. package/dist/namedSessionBudget.test.d.ts.map +1 -0
  37. package/dist/namedSessionBudget.test.js +40 -0
  38. package/dist/namedSessionBudget.test.js.map +1 -0
  39. package/dist/namedSessionService.d.ts +39 -0
  40. package/dist/namedSessionService.d.ts.map +1 -0
  41. package/dist/namedSessionService.js +269 -0
  42. package/dist/namedSessionService.js.map +1 -0
  43. package/dist/namedSessionService.test.d.ts +2 -0
  44. package/dist/namedSessionService.test.d.ts.map +1 -0
  45. package/dist/namedSessionService.test.js +158 -0
  46. package/dist/namedSessionService.test.js.map +1 -0
  47. package/dist/namedSessionTrust.d.ts +21 -0
  48. package/dist/namedSessionTrust.d.ts.map +1 -0
  49. package/dist/namedSessionTrust.js +64 -0
  50. package/dist/namedSessionTrust.js.map +1 -0
  51. package/dist/namedSessionTrust.test.d.ts +2 -0
  52. package/dist/namedSessionTrust.test.d.ts.map +1 -0
  53. package/dist/namedSessionTrust.test.js +178 -0
  54. package/dist/namedSessionTrust.test.js.map +1 -0
  55. package/dist/onboardingStage.d.ts +1 -1
  56. package/dist/onboardingStage.d.ts.map +1 -1
  57. package/dist/onboardingStage.js.map +1 -1
  58. package/dist/providerSessionChannel.d.ts +1 -0
  59. package/dist/providerSessionChannel.d.ts.map +1 -1
  60. package/dist/providerSessionChannel.js +5 -1
  61. package/dist/providerSessionChannel.js.map +1 -1
  62. package/dist/providerSessionChannel.test.js +10 -3
  63. package/dist/providerSessionChannel.test.js.map +1 -1
  64. package/dist/repositoryOnboardingCaller.test.js +19 -0
  65. package/dist/repositoryOnboardingCaller.test.js.map +1 -1
  66. package/dist/usage.d.ts +1 -1
  67. package/dist/usage.d.ts.map +1 -1
  68. package/dist/usage.js +1 -1
  69. package/dist/usage.js.map +1 -1
  70. package/dist/usage.test.d.ts +2 -0
  71. package/dist/usage.test.d.ts.map +1 -0
  72. package/dist/usage.test.js +18 -0
  73. package/dist/usage.test.js.map +1 -0
  74. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codexPeerTools.test.d.ts.map
@@ -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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"}
@@ -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.111';
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 [demoResult, standardResult] = await Promise.all([demo, standard]);
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')