@dharma-ai-labs/agent-fabric 0.2.191 → 0.2.193

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 (32) hide show
  1. package/AGENT_FABRIC_ONBOARDING.md +6 -4
  2. package/dist/codexSetupPortalIngress.test.js +30 -2
  3. package/dist/codexSetupPortalIngress.test.js.map +1 -1
  4. package/dist/codexSetupPortalPreparation.d.ts +5 -1
  5. package/dist/codexSetupPortalPreparation.d.ts.map +1 -1
  6. package/dist/codexSetupPortalPreparation.js +38 -8
  7. package/dist/codexSetupPortalPreparation.js.map +1 -1
  8. package/dist/codexSetupPortalPrompt.test.d.ts +2 -0
  9. package/dist/codexSetupPortalPrompt.test.d.ts.map +1 -0
  10. package/dist/codexSetupPortalPrompt.test.js +141 -0
  11. package/dist/codexSetupPortalPrompt.test.js.map +1 -0
  12. package/dist/codexSetupPortalPromptDigest.d.ts +3 -0
  13. package/dist/codexSetupPortalPromptDigest.d.ts.map +1 -0
  14. package/dist/codexSetupPortalPromptDigest.js +18 -0
  15. package/dist/codexSetupPortalPromptDigest.js.map +1 -0
  16. package/dist/codexSetupPortalPromptDigest.test.d.ts +2 -0
  17. package/dist/codexSetupPortalPromptDigest.test.d.ts.map +1 -0
  18. package/dist/codexSetupPortalPromptDigest.test.js +23 -0
  19. package/dist/codexSetupPortalPromptDigest.test.js.map +1 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +15 -5
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.test.js +4 -1
  24. package/dist/index.test.js.map +1 -1
  25. package/dist/onboardingContract.test.js +12 -4
  26. package/dist/onboardingContract.test.js.map +1 -1
  27. package/dist/repositorySourceCapture.test.js +15 -0
  28. package/dist/repositorySourceCapture.test.js.map +1 -1
  29. package/dist/schemas/setup-host-preparation-v2.schema.json +171 -0
  30. package/dist/usage.js +1 -1
  31. package/dist/usage.js.map +1 -1
  32. package/package.json +1 -1
@@ -2,16 +2,18 @@
2
2
 
3
3
  The current portal setup-reference flow connects the exact selected source repository from one prompt in an actual authenticated coding-agent conversation. Follow its intended recipient, source selection, pinned release and bounded policy. The agent performs supported setup; the intended recipient approves only the matching browser device request. Never request a human terminal command, grant paste or keyring troubleshooting. Technical prerequisites must use the supported current client and protected store; unavailable prerequisites are a blocked stage, not permission to copy credentials or weaken protection. Existing join-only endpoints described below retain their separately qualified contract; the source-only setup reference does not authorize a join, source expansion or a writable peer task.
4
4
 
5
- The portal supplies a public setup reference with the organization, intended recipient, exact repository, policy, scope digest, contract digest and pinned CLI release. The public setup reference is not a bearer credential. On the selected Linux named-Codex route, the trusted native host supplies the original public prompt as the single user message and registers the matching `dharma_setup_reference` tool. Its original scoped intent and execution lease, not the prompt text, authorize setup. The native client proves possession of its protected device key and opens the same-origin recipient approval page. Organization credentials move only from the trusted HTTPS endpoint into the native protected store, using the approved device and its signed ephemeral encryption key. Never put credentials in agent output, argv, environment, files, clipboard or tool messages. The agent does not receive a private grant field. Legacy private-input options are not a fallback for this one-prompt contract.
5
+ The portal supplies a public setup reference with the organization, intended recipient, exact repository, policy, scope digest, contract digest and pinned CLI release. The public setup reference is not a bearer credential. On the selected Linux named-Codex route, the trusted native host supplies either verified server-canonical public instructions (CLI192 portal mode) or the provided original public prompt (legacy stdin mode) as its child session's single user message, then registers the matching `dharma_setup_reference` tool. Neither mode attests the enclosing human chat. The host's original scoped intent and execution lease, not the prompt text, authorize setup. The native client proves possession of its protected device key and opens the same-origin recipient approval page. Organization credentials move only from the trusted HTTPS endpoint into the native protected store, using the approved device and its signed ephemeral encryption key. Never put credentials in agent output, argv, environment, files, clipboard or tool messages. The agent does not receive a private grant field. Legacy private-input options are not a fallback for this one-prompt contract.
6
6
 
7
- Use an already registered matching `dharma_setup_reference` tool when present. Otherwise the selected Linux route's official entry is `dharma setup codex --stdin`, invoked once by the actual coding agent with the entire original public portal prompt unchanged on standard input and the exact public arguments supplied by the portal. It requires the intended qualified private `DHARMA_HOME` and existing `CODEX_HOME`, genuine Codex context and supported protected storage. It opens an owned named setup session with the matching tool, not attachment to an arbitrary existing desktop chat. The current authenticated provider account is checked through the official owned connection; its identity is distinct from the intended Dharma recipient. No human terminal command, nested login check, invented provider marker or copied authentication is permitted. Keep the originating command and same native turn pending through recipient approval and final JSON; never retry a refused, expired or interrupted setup through another route.
7
+ Use an already registered matching `dharma_setup_reference` tool when present. From CLI 0.2.192, the portal may instead supply the official `dharma setup codex` entry with `--portal-context-sha256` and `--portal-prompt-sha256`. The actual coding agent executes its exact public command once; the client fetches the canonical public portal instructions, verifies both independent copied pins and revalidates the current source policy. It does not read private conversation history or ask the agent to transcribe the full message. The public checksum masks only its own single argument value to avoid a self-referential digest; all other prompt bytes remain bound, with CRLF normalized to LF. The receipt identifies `verified_portal_prompt` and `nativeOriginalUserPromptAttested:false`: canonical portal input is not attestation of the enclosing human message. Legacy `--stdin` remains supported for an entire original public prompt and cannot combine with either portal pin. Follow only the selected issued route; legacy input is not a failure fallback.
8
8
 
9
- The controller entry `openCodexBootstrapFromPortalCommand` requires `initialUserPrompt` for the exact public portal text alongside independently validated command arguments and the host intent. Also supply `initialUserPromptBinding` containing the recipient email and repository remote URL from the independently verified portal selection; neither field comes from parsing the prompt or from the provider account email. Missing text is refused, never replaced with a controller message. Separately qualified legacy callers of `openCodexBootstrapNativeHost` retain their omitted-prompt behavior; they do not qualify this portal journey. The controller snapshots these public fields, checks the remote fingerprint and requires exact displayed headers before connecting. Credential-shaped text is rejected rather than redacted and forwarded. The original authenticated portal message pins immutable preparation context, CLI and expiry; same-origin HTTPS authenticates fresh policy and timestamps. This is context integrity, not an application-level server signature or independently signed freshness. Prompt capture is a consistency check, not new authority. Public preparation and a settled provider turn are not readiness: success requires the original host's journal/readiness-verified operation receipt and exact installed configuration. An unavailable prerequisite or `codex_setup_owned_start_unqualified` is a blocked stage, not permission to weaken protection or request terminal input. This implementation contract is not itself a live qualification receipt.
9
+ From CLI 0.2.193, the generated prompt explicitly prepares and selects both npm prefix and cache in a fresh private temporary directory outside the source checkout and private device/provider/runtime roots; `--prefix` alone does not select npm's cache. Preparation and entry execute in the same tool call, connected by `&&`, so the command-local public path cannot be lost between calls or used after preparation fails. Existing files and permissions are preserved. The native containment guard is unchanged: trusted runtime files inside a mutable source checkout remain forbidden. Do not manually rewrite or replay an older issued prompt to change its cache; obtain a fresh version-qualified portal instruction. The entry still requires the intended qualified private `DHARMA_HOME` and existing `CODEX_HOME`, genuine Codex context and supported protected storage. It opens an owned named setup session with the matching tool, not attachment to an arbitrary existing desktop chat. The current authenticated provider account is checked through the official owned connection; its identity is distinct from the intended Dharma recipient. No human terminal command, nested login check, invented provider marker or copied authentication is permitted. Keep the originating command and same native turn pending through recipient approval and final JSON; never retry a refused, expired or interrupted setup through another route. Source or parser tests do not prove a live customer journey.
10
+
11
+ The controller entry `openCodexBootstrapFromPortalCommand` requires `initialUserPrompt` containing the exact verified public text alongside independently validated command arguments and the host intent. In CLI192 portal mode this is fetched server-canonical text; in legacy stdin mode it is the provided original public text. The internal field name does not attest native transcript provenance. Also supply `initialUserPromptBinding` containing the recipient email and repository remote URL from the independently verified portal selection; neither field comes from parsing the prompt or from the provider account email. Missing text is refused, never replaced with a controller message. Separately qualified legacy callers of `openCodexBootstrapNativeHost` retain their omitted-prompt behavior; they do not qualify this portal journey. The controller snapshots these public fields, checks the remote fingerprint and requires exact displayed headers before connecting. Credential-shaped text is rejected rather than redacted and forwarded. The authenticated portal copy supplies independent immutable context/checksum pins, CLI and expiry; same-origin HTTPS authenticates fresh policy and timestamps. This is context integrity, not an application-level server signature, independently signed freshness or native-message attestation. Public preparation and a settled provider turn are not readiness: success requires the original host's journal/readiness-verified operation receipt and exact installed configuration. An unavailable prerequisite or `codex_setup_owned_start_unqualified` is a blocked stage, not permission to weaken protection or request terminal input. This implementation contract is not itself a live qualification receipt.
10
12
 
11
13
  ## 1. Connect safely
12
14
 
13
15
  1. Read the exact source selection in the portal prompt. The CLI uses a matching current checkout or clones only the selected hosted HTTPS remote into an isolated managed checkout, verifies its commit, tracked files and remote, and leaves the starting folder untouched. A disclosed prepared checkout may satisfy the starting prerequisite; that does not prove fresh remote authentication or cloning. Do not scan parent directories or unrelated repositories. An existing join-only binding needs no source Git access, but it must use its own separately qualified join contract rather than a source setup reference.
14
- 2. Verify the pinned release and public provenance. Use the legitimate current coding-agent context and its intended protected homes; a selected isolated test fixture must already have genuine provider authentication and isolated state, not copied default credentials. On the selected Linux named-Codex route, use the matching bound tool or the official original-message handoff above; keep the same native turn pending through recipient approval and final JSON. Do not run direct-CLI compatibility commands on this route. Separately qualified direct-CLI clients retain their exact generated command and genuine harness checks; they are not a fallback for a refused or failed setup. Neither route may request private terminal input. Do not change provider detection, invent environment markers, switch to a bearer grant, or ask the user to run a supplemental command. Before approval, a typed pending result identifies the exact local fingerprint, repository and bounded expiry. Pending inspection is not credential issuance. After enrollment, use supported cause-specific grant-free recovery; never replay an expired or spent setup. If expiry occurs before enrollment, request a fresh portal prompt only after the failed process is terminal and its disposition is known.
16
+ 2. Verify the pinned release and public provenance. Use the legitimate current coding-agent context and its intended protected homes; a selected isolated test fixture must already have genuine provider authentication and isolated state, not copied default credentials. On the selected Linux named-Codex route, use the matching bound tool or the official selected public-input handoff above; keep the same native turn pending through recipient approval and final JSON. Do not run direct-CLI compatibility commands on this route. Separately qualified direct-CLI clients retain their exact generated command and genuine harness checks; they are not a fallback for a refused or failed setup. Neither route may request private terminal input. Do not change provider detection, invent environment markers, switch to a bearer grant, or ask the user to run a supplemental command. Before approval, a typed pending result identifies the exact local fingerprint, repository and bounded expiry. Pending inspection is not credential issuance. After enrollment, use supported cause-specific grant-free recovery; never replay an expired or spent setup. If expiry occurs before enrollment, request a fresh portal prompt only after the failed process is terminal and its disposition is known.
15
17
  3. Complete the browser device approval when the CLI opens the same-origin approval page. The approving account must be the intended active organization member. A copied prompt, invitation, or administrator session cannot replace recipient approval.
16
18
  4. Read the complete JSON result. Verify `repositorySelection.workspace`. In join mode it is an isolated managed state directory, **not** a source checkout; do not edit product code there. In source mode use its verified checkout for follow-up work. Verify the organization, member, device, repository identity, provider, and enrollment state. If the command returns a pending or blocked stage, preserve the correlation data and continue only through the supported recovery path.
17
19
  Keep the original command attached through browser approval and signed repository publication, which may take up to five minutes after local setup. If the host shell yields a running session, poll that session for the final JSON; do not start a second bootstrap command.
@@ -23,7 +23,7 @@ async function declaration(name, dependencies) {
23
23
  }
24
24
  // Actual CLI composition; only filesystem, remote preparation and provider
25
25
  // boundaries are synthetic. No enrolled client or model is used by these tests.
26
- async function fixture() {
26
+ async function fixture(inputMode = 'stdin') {
27
27
  const process_ = Object.assign(new EventEmitter(), { platform: 'linux', getuid: () => 1000,
28
28
  cwd: () => '/home/synthetic/source', env: { DHARMA_HOME: '/home/synthetic/device', CODEX_HOME: '/home/synthetic/provider' },
29
29
  stdin: { synthetic: true } });
@@ -54,7 +54,13 @@ async function fixture() {
54
54
  readCodexSetupPublicStdin: async () => { counts.inputs++; return prepared.initialUserPrompt; },
55
55
  requestCodexSetupHostPreparation: async (input) => {
56
56
  counts.preparations++;
57
- assert.equal(input.initialUserPrompt, prepared.initialUserPrompt);
57
+ if (inputMode === 'portal' && counts.preparations === 1) {
58
+ assert.equal(input.initialUserPrompt, undefined);
59
+ assert.equal(input.portalContextSha256, 'f'.repeat(64));
60
+ assert.equal(input.portalPromptSha256, 'e'.repeat(64));
61
+ }
62
+ else
63
+ assert.equal(input.initialUserPrompt, prepared.initialUserPrompt);
58
64
  if (failPreparation || revokeBeforeTurn && counts.preparations > 1)
59
65
  throw new Error('codex_setup_portal_preparation_unavailable');
60
66
  return prepared;
@@ -112,6 +118,12 @@ async function fixture() {
112
118
  });
113
119
  const flags = new Map([['stdin', true], ['portal-url', 'https://hq.example'], ['organization-id', 'org_fixture'],
114
120
  ['setup-reference', reference], ['workspace', '/home/synthetic/source']]);
121
+ if (inputMode === 'portal') {
122
+ flags.delete('stdin');
123
+ flags.set('portal-context-sha256', 'f'.repeat(64));
124
+ flags.set('portal-prompt-sha256', 'e'.repeat(64));
125
+ Object.assign(prepared, { promptProvenance: 'verified_portal_prompt', nativeOriginalUserPromptAttested: false });
126
+ }
115
127
  return { ingress, flags, counts, prepared, process: process_,
116
128
  changeRuntime: () => { changed = true; }, denyBudget: () => { denyBudget = true; }, failClose: () => { failClose = true; },
117
129
  failPreparation: () => { failPreparation = true; }, foreignConfig: () => { foreignConfig = true; }, setResult: (value) => { result = value; },
@@ -140,6 +152,22 @@ if (process.argv.includes('--ingress-signal-fixture')) {
140
152
  await f.ingress(f.flags);
141
153
  throw new Error('signal fixture unexpectedly continued');
142
154
  }
155
+ test('portal input completes composition without stdin or native-history access and retains provenance', async () => {
156
+ const f = await fixture('portal');
157
+ const result = await f.ingress(f.flags);
158
+ assert.equal(result.ok, true);
159
+ assert.equal(f.counts.inputs, 0);
160
+ assert.equal(f.counts.hosts, 1);
161
+ assert.equal(f.counts.preparations, 2);
162
+ assert.equal(result.portalIngress.promptProvenance, 'verified_portal_prompt');
163
+ assert.equal(result.portalIngress.nativeOriginalUserPromptAttested, false);
164
+ });
165
+ test('conflicting portal and stdin options fail before any provider, input or network effect', async () => {
166
+ const f = await fixture('portal');
167
+ f.flags.set('stdin', true);
168
+ await assert.rejects(f.ingress(f.flags), /^Error: codex_setup_ingress_options_invalid$/);
169
+ assert.equal(f.counts.inputs + f.counts.preparations + f.counts.accounts + f.counts.hosts, 0);
170
+ });
143
171
  test('public dry-run prepares binding but launches no provider, reserves nothing and does not enroll', async () => {
144
172
  const f = await fixture();
145
173
  f.flags.set('dry-run', true);
@@ -1 +1 @@
1
- {"version":3,"file":"codexSetupPortalIngress.test.js","sourceRoot":"","sources":["../src/codexSetupPortalIngress.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codexSetupPortalIngress.test.js","sourceRoot":"","sources":["../src/codexSetupPortalIngress.test.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,9 @@ export declare function requestCodexSetupHostPreparation(input: {
5
5
  organizationId: string;
6
6
  setupReference: string;
7
7
  cliVersion: string;
8
- initialUserPrompt: unknown;
8
+ initialUserPrompt?: unknown;
9
+ portalContextSha256?: string;
10
+ portalPromptSha256?: string;
9
11
  signal: AbortSignal;
10
12
  fetcher?: typeof fetch;
11
13
  now?: () => number;
@@ -22,6 +24,8 @@ export declare function requestCodexSetupHostPreparation(input: {
22
24
  repositoryRemoteUrl: string;
23
25
  }>;
24
26
  intent: Readonly<CodexSetupIntent>;
27
+ promptProvenance: "verified_portal_prompt" | "provided_stdin";
28
+ nativeOriginalUserPromptAttested: false;
25
29
  requiresHostExecutionAdmission: true;
26
30
  requiresRecipientApproval: true;
27
31
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"codexSetupPortalPreparation.d.ts","sourceRoot":"","sources":["../src/codexSetupPortalPreparation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAa/D,kFAAkF;AAClF,wBAAsB,gCAAgC,CAAC,KAAK,EAAE;IAC5D,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IACnF,iBAAiB,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5F,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;;;;;;;;;;;;;;IAqEA"}
1
+ {"version":3,"file":"codexSetupPortalPreparation.d.ts","sourceRoot":"","sources":["../src/codexSetupPortalPreparation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAe/D,kFAAkF;AAClF,wBAAsB,gCAAgC,CAAC,KAAK,EAAE;IAC5D,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IACnF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACvF,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAChE,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;;;;;;;;;;;;;;;;IA6FA"}
@@ -3,18 +3,27 @@ import { resolve } from 'node:path';
3
3
  import { setTimeout as delay } from 'node:timers/promises';
4
4
  import { canonicalize, validateContract } from '@dharma-ai-labs/agent-fabric-contracts';
5
5
  import { captureCodexSetupPromptBinding, captureCodexSetupUserPrompt, capturePublicCodexSetupPrompt } from './codexSetupUserPrompt.js';
6
+ import { codexSetupPortalPromptDigest } from './codexSetupPortalPromptDigest.js';
6
7
  const fail = () => { throw new Error('codex_setup_portal_preparation_unavailable'); };
7
8
  /** A public HTTPS receipt is presentation binding, not a host execution lease. */
8
9
  export async function requestCodexSetupHostPreparation(input) {
9
10
  // Capture before awaiting: no secret-bearing prose may reach the endpoint.
10
- const initialUserPrompt = capturePublicCodexSetupPrompt(input.initialUserPrompt);
11
- const pins = [...initialUserPrompt.replace(/\r\n/g, '\n').matchAll(/^Preparation context SHA256: ([a-f0-9]{64})\.$/gm)];
12
- if (pins.length !== 1)
11
+ const portalMode = input.portalContextSha256 !== undefined || input.portalPromptSha256 !== undefined;
12
+ if (portalMode && (input.initialUserPrompt !== undefined
13
+ || !/^[a-f0-9]{64}$/.test(input.portalContextSha256 ?? '')
14
+ || !/^[a-f0-9]{64}$/.test(input.portalPromptSha256 ?? '')))
13
15
  return fail();
14
- const originalContextPin = pins[0][1];
16
+ let initialUserPrompt = portalMode ? undefined : capturePublicCodexSetupPrompt(input.initialUserPrompt);
17
+ const pins = initialUserPrompt === undefined ? []
18
+ : [...initialUserPrompt.replace(/\r\n/g, '\n').matchAll(/^Preparation context SHA256: ([a-f0-9]{64})\.$/gm)];
19
+ if (!portalMode && pins.length !== 1)
20
+ return fail();
21
+ const originalContextPin = portalMode ? input.portalContextSha256 : pins[0][1];
15
22
  const { origin, organizationId, setupReference, cliVersion } = input;
16
- const initialUserPromptSha256 = createHash('sha256').update(initialUserPrompt, 'utf8').digest('hex');
17
- const promptSha256 = createHash('sha256').update(initialUserPrompt.replace(/\r\n/g, '\n'), 'utf8').digest('hex');
23
+ let initialUserPromptSha256 = initialUserPrompt === undefined ? undefined
24
+ : createHash('sha256').update(initialUserPrompt, 'utf8').digest('hex');
25
+ let promptSha256 = initialUserPrompt === undefined ? undefined
26
+ : createHash('sha256').update(initialUserPrompt.replace(/\r\n/g, '\n'), 'utf8').digest('hex');
18
27
  const now = input.now ?? Date.now;
19
28
  const signal = AbortSignal.any([input.signal, AbortSignal.timeout(15000)]);
20
29
  let reader;
@@ -29,7 +38,9 @@ export async function requestCodexSetupHostPreparation(input) {
29
38
  const response = await (input.fetcher ?? fetch)(origin + '/api/v1/agent-fabric/bootstrap/setup-claim', {
30
39
  method: 'POST', redirect: 'error', credentials: 'omit', signal,
31
40
  headers: { 'Content-Type': 'application/json' },
32
- body: JSON.stringify({ action: 'prepare_host', organizationId, setupReference, promptSha256 }),
41
+ body: JSON.stringify({ action: 'prepare_host', organizationId, setupReference,
42
+ ...(portalMode ? { promptSource: 'portal_setup_prompt', contextSha256: originalContextPin,
43
+ portalPromptSha256: input.portalPromptSha256 } : { promptSha256 }) }),
33
44
  });
34
45
  if (signal.aborted || response.status !== 200 || !response.body
35
46
  || !response.headers.get('content-type')?.toLowerCase().startsWith('application/json')
@@ -53,10 +64,27 @@ export async function requestCodexSetupHostPreparation(input) {
53
64
  chunks.push(part.value);
54
65
  }
55
66
  const value = JSON.parse(Buffer.concat(chunks).toString('utf8'));
56
- const checked = await validateContract(resolve(import.meta.dirname, 'schemas'), 'https://schemas.dharma-ai.io/setup-host-preparation/v1', value);
67
+ const checked = await validateContract(resolve(import.meta.dirname, 'schemas'), `https://schemas.dharma-ai.io/setup-host-preparation/${portalMode ? 'v2' : 'v1'}`, value);
57
68
  if (!checked.ok || signal.aborted)
58
69
  return fail();
59
70
  const prepared = value, at = now();
71
+ if (portalMode) {
72
+ initialUserPrompt = capturePublicCodexSetupPrompt(prepared.publicPrompt);
73
+ if (prepared.promptSource !== 'portal_setup_prompt'
74
+ || prepared.portalPromptSha256 !== input.portalPromptSha256
75
+ || codexSetupPortalPromptDigest(initialUserPrompt) !== input.portalPromptSha256)
76
+ return fail();
77
+ const embeddedChecksum = /--portal-prompt-sha256 ([a-f0-9]{64})(?=[ \t\n]|$)/.exec(initialUserPrompt.replace(/\r\n/g, '\n'));
78
+ if (embeddedChecksum?.[1] !== input.portalPromptSha256)
79
+ return fail();
80
+ const returnedPins = [...initialUserPrompt.replace(/\r\n/g, '\n').matchAll(/^Preparation context SHA256: ([a-f0-9]{64})\.$/gm)];
81
+ if (returnedPins.length !== 1 || returnedPins[0][1] !== originalContextPin)
82
+ return fail();
83
+ initialUserPromptSha256 = createHash('sha256').update(initialUserPrompt, 'utf8').digest('hex');
84
+ promptSha256 = createHash('sha256').update(initialUserPrompt.replace(/\r\n/g, '\n'), 'utf8').digest('hex');
85
+ }
86
+ if (initialUserPrompt === undefined || initialUserPromptSha256 === undefined || promptSha256 === undefined)
87
+ return fail();
60
88
  const contextSha256 = createHash('sha256').update('dharma.setup-host-context/v1\0').update(canonicalize({
61
89
  cliVersion: prepared.cliVersion, expiresAt: prepared.expiresAt, binding: prepared.binding, context: prepared.context
62
90
  })).digest('hex');
@@ -88,6 +116,8 @@ export async function requestCodexSetupHostPreparation(input) {
88
116
  // No provider, key store, setup journal or enrollment operation is entered.
89
117
  return Object.freeze({ effects: false, grantRedeemed: false,
90
118
  initialUserPrompt, initialUserPromptSha256, promptSha256, portalContextSha256: originalContextPin, binding, intent,
119
+ promptProvenance: portalMode ? 'verified_portal_prompt' : 'provided_stdin',
120
+ nativeOriginalUserPromptAttested: false,
91
121
  requiresHostExecutionAdmission: true, requiresRecipientApproval: true });
92
122
  }
93
123
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"codexSetupPortalPreparation.js","sourceRoot":"","sources":["../src/codexSetupPortalPreparation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,aAAa,CAAC;AACnD,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,UAAU,IAAI,KAAK,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAC,8BAA8B,EAAE,2BAA2B,EAAE,6BAA6B,EAAC,MAAM,2BAA2B,CAAC;AAYrI,MAAM,IAAI,GAAG,GAAU,EAAE,GAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAA,CAAC,CAAC;AAE3F,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,KAItD;IACC,2EAA2E;IAC3E,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC,CAAC;IACxH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC;IACxC,MAAM,EAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAC,GAAG,KAAK,CAAC;IACnE,MAAM,uBAAuB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrG,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IAClC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,MAA2D,CAAC;IAChE,MAAM,MAAM,GAAG,GAAG,EAAE,GAAE,KAAK,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;eACjF,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC;eAC1C,CAAC,2EAA2E,CAAC,IAAI,CAAC,cAAc,CAAC;eACjG,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,EAAE,CAAC;QAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,4CAA4C,EAAE;YACrG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM;YAC9D,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAC,CAAC;SAC7F,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;eAC1D,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;eACnF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,KAAK;YAAE,OAAO,IAAI,EAAE,CAAC;QAC3E,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAiB,EAAE,CAAC;QAAC,IAAI,IAAI,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM;YACvD,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC9B,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;gBAAA,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gBAAC,OAAO,IAAI,EAAE,CAAC;YAAA,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAC5E,wDAAwD,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAoB,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC;QAClD,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACtG,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO;SAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxI,IAAI,aAAa,KAAK,kBAAkB,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,KAAK,kBAAkB;YAAE,OAAO,IAAI,EAAE,CAAC;QACnH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzF,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,cAAc,KAAK,cAAc;eACvF,QAAQ,CAAC,OAAO,CAAC,cAAc,KAAK,cAAc,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU;eACxF,QAAQ,CAAC,YAAY,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;eAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,UAAU;eACtD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,SAAS;eACtD,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,GAAG,MAAM,GAAG,MAAM;YAAE,OAAO,IAAI,EAAE,CAAC;QAC1G,MAAM,OAAO,GAAG,8BAA8B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,MAAM,GAA+B,MAAM,CAAC,MAAM,CAAC;YACvD,MAAM,EAAE,8BAA8B,EAAE,GAAG,QAAQ,CAAC,OAAO;YAC3D,WAAW,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE;YACtD,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC7D,CAAC,CAAC;QACH,IAAI,2BAA2B,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,iBAAiB;YAAE,OAAO,IAAI,EAAE,CAAC;QACzG,2EAA2E;QAC3E,oEAAoE;QACpE,IAAI,MAAM,GAAG,EAAE;YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,EAAC,MAAM,EAAE,WAAW,EAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAChI,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,MAAM,IAAI,WAAW,IAAI,OAAO;YAAE,OAAO,IAAI,EAAE,CAAC;QACrH,4EAA4E;QAC5E,OAAO,MAAM,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,KAAc,EAAE,aAAa,EAAE,KAAc;YAC1E,iBAAiB,EAAE,uBAAuB,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM;YAClH,8BAA8B,EAAE,IAAa,EAAE,yBAAyB,EAAE,IAAa,EAAC,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QAAA,OAAO,IAAI,EAAE,CAAC;IAAA,CAAC;YAChB,CAAC;QAAA,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAAA,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"codexSetupPortalPreparation.js","sourceRoot":"","sources":["../src/codexSetupPortalPreparation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codexSetupPortalPrompt.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexSetupPortalPrompt.test.d.ts","sourceRoot":"","sources":["../src/codexSetupPortalPrompt.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,141 @@
1
+ import assert from 'node:assert/strict';
2
+ import { createHash } from 'node:crypto';
3
+ import { createServer } from 'node:http';
4
+ import { once } from 'node:events';
5
+ import { canonicalize } from '@dharma-ai-labs/agent-fabric-contracts';
6
+ import test from 'node:test';
7
+ import { requestCodexSetupHostPreparation } from './codexSetupPortalPreparation.js';
8
+ const now = Date.parse('2030-01-01T00:00:00.000Z'), expiresAt = '2030-01-01T00:15:00.000Z';
9
+ const context = { origin: 'https://www.dharma-ai.io', organizationId: 'org_fixture',
10
+ setupReference: '11111111-1111-4111-8111-111111111111', recipientMembershipId: '22222222-2222-4222-8222-222222222222',
11
+ repositoryFingerprint: 'sha256:' + 'a'.repeat(64), policyRevision: 'policy-v1', scopeDigest: 'sha256:' + 'b'.repeat(64), contractDigest: 'sha256:' + 'c'.repeat(64) };
12
+ const binding = { recipientEmail: 'synthetic@example.test', repositoryRemoteUrl: 'https://github.com/example/synthetic.git' };
13
+ const pin = createHash('sha256').update('dharma.setup-host-context/v1\0').update(canonicalize({ cliVersion: '0.2.192', expiresAt, binding, context })).digest('hex');
14
+ const template = '# Dharma Agent Fabric \u2014 one-prompt source setup\n'
15
+ + `Recipient: ${binding.recipientEmail}. Organization: ${context.organizationId}.\n`
16
+ + `Selected repository: ${binding.repositoryRemoteUrl}. Fingerprint: ${context.repositoryFingerprint}.\n`
17
+ + `Public setup reference: ${context.setupReference}. Fixed expiry: ${expiresAt}.\n`
18
+ + `Preparation context SHA256: ${pin}.\n`
19
+ + 'dharma setup codex --portal-prompt-sha256 ' + '0'.repeat(64) + '\n';
20
+ const portalDigest = createHash('sha256').update(template).digest('hex');
21
+ const prompt = template.replace('--portal-prompt-sha256 ' + '0'.repeat(64), '--portal-prompt-sha256 ' + portalDigest);
22
+ function fixture() {
23
+ let calls = 0;
24
+ const response = { schema: 'dharma.setup-host-preparation/v2', ok: true, effects: false, grantRedeemed: false,
25
+ approvalRequired: true, sourcePolicyRevalidated: true, preparedAt: new Date(now).toISOString(), expiresAt,
26
+ promptSha256: createHash('sha256').update(prompt).digest('hex'), cliVersion: '0.2.192', binding: { ...binding }, context: { ...context },
27
+ integrity: { algorithm: 'sha256', kind: 'portal-context', authenticity: 'same-origin-https', contextSha256: pin },
28
+ publicPrompt: prompt, promptSource: 'portal_setup_prompt', portalPromptSha256: portalDigest };
29
+ const input = { origin: context.origin, organizationId: context.organizationId, setupReference: context.setupReference,
30
+ cliVersion: '0.2.192', portalContextSha256: pin, portalPromptSha256: portalDigest,
31
+ signal: new AbortController().signal, now: () => now,
32
+ fetcher: async (url, options) => {
33
+ calls++;
34
+ assert.equal(String(url), context.origin + '/api/v1/agent-fabric/bootstrap/setup-claim');
35
+ assert.equal(options.redirect, 'error');
36
+ assert.equal(options.credentials, 'omit');
37
+ assert.deepEqual(JSON.parse(options.body), { action: 'prepare_host', organizationId: context.organizationId,
38
+ setupReference: context.setupReference, promptSource: 'portal_setup_prompt', contextSha256: pin, portalPromptSha256: portalDigest });
39
+ return new Response(JSON.stringify(response), { headers: { 'content-type': 'application/json' } });
40
+ } };
41
+ return { input, response, get calls() { return calls; } };
42
+ }
43
+ test('canonical portal input is fetched without reading stdin or private native history', async () => {
44
+ const f = fixture(), value = await requestCodexSetupHostPreparation(f.input);
45
+ assert.equal(f.calls, 1);
46
+ assert.equal(value.initialUserPrompt, prompt);
47
+ assert.equal(value.promptProvenance, 'verified_portal_prompt');
48
+ assert.equal(value.nativeOriginalUserPromptAttested, false);
49
+ assert.equal(value.portalContextSha256, pin);
50
+ assert.equal(value.effects, false);
51
+ assert.equal(value.grantRedeemed, false);
52
+ });
53
+ test('the actual client parses canonical portal input over a real HTTP fixture', async () => {
54
+ const f = fixture();
55
+ let requests = 0;
56
+ const server = createServer(async (incoming, outgoing) => {
57
+ const chunks = [];
58
+ for await (const chunk of incoming)
59
+ chunks.push(Buffer.from(chunk));
60
+ const body = JSON.parse(Buffer.concat(chunks).toString('utf8'));
61
+ requests++;
62
+ assert.equal(body.promptSource, 'portal_setup_prompt');
63
+ assert.equal(body.contextSha256, pin);
64
+ assert.equal(body.portalPromptSha256, portalDigest);
65
+ assert.equal('promptSha256' in body, false);
66
+ outgoing.writeHead(200, { 'Content-Type': 'application/json', 'Cache-Control': 'no-store' });
67
+ outgoing.end(JSON.stringify(f.response));
68
+ });
69
+ try {
70
+ server.listen(0, '127.0.0.1');
71
+ await once(server, 'listening');
72
+ const address = server.address();
73
+ assert.ok(address && typeof address !== 'string');
74
+ // Inject only a loopback test transport. Production still requires HTTPS;
75
+ // this test qualifies serialization/parser compatibility, not TLS trust.
76
+ const result = await requestCodexSetupHostPreparation({ ...f.input, fetcher: async (url, options) => {
77
+ assert.equal(String(url), context.origin + '/api/v1/agent-fabric/bootstrap/setup-claim');
78
+ return fetch(`http://127.0.0.1:${address.port}/api/v1/agent-fabric/bootstrap/setup-claim`, options);
79
+ } });
80
+ assert.equal(result.initialUserPrompt, prompt);
81
+ assert.equal(result.promptProvenance, 'verified_portal_prompt');
82
+ assert.equal(result.nativeOriginalUserPromptAttested, false);
83
+ assert.equal(requests, 1);
84
+ }
85
+ finally {
86
+ server.closeAllConnections();
87
+ if (server.listening)
88
+ await new Promise((resolve, reject) => server.close(error => error ? reject(error) : resolve()));
89
+ }
90
+ });
91
+ for (const cause of ['missing-pin', 'bad-digest', 'conflicting-stdin', 'cancelled']) {
92
+ test('invalid portal-input ' + cause + ' stops before any request', async () => {
93
+ const f = fixture();
94
+ if (cause === 'missing-pin')
95
+ delete f.input.portalContextSha256;
96
+ if (cause === 'bad-digest')
97
+ f.input.portalPromptSha256 = 'not-a-digest';
98
+ if (cause === 'conflicting-stdin')
99
+ f.input.initialUserPrompt = prompt;
100
+ if (cause === 'cancelled')
101
+ f.input.signal = AbortSignal.abort();
102
+ await assert.rejects(requestCodexSetupHostPreparation(f.input));
103
+ assert.equal(f.calls, 0);
104
+ });
105
+ }
106
+ for (const cause of ['prompt-change', 'embedded-digest', 'context-change', 'secret', 'oversized', 'foreign-org', 'foreign-reference', 'expired', 'wrong-source', 'v1-downgrade', 'extra-field']) {
107
+ test('portal-input ' + cause + ' is rejected without reflecting response data', async () => {
108
+ const f = fixture();
109
+ if (cause === 'prompt-change') {
110
+ f.response.publicPrompt += 'Unexpected instruction\n';
111
+ f.response.promptSha256 = createHash('sha256').update(f.response.publicPrompt).digest('hex');
112
+ }
113
+ if (cause === 'embedded-digest') {
114
+ f.response.publicPrompt = f.response.publicPrompt.replace('--portal-prompt-sha256 ' + portalDigest, '--portal-prompt-sha256 ' + 'e'.repeat(64));
115
+ f.response.promptSha256 = createHash('sha256').update(f.response.publicPrompt).digest('hex');
116
+ }
117
+ if (cause === 'context-change') {
118
+ f.response.context.policyRevision = 'changed';
119
+ f.response.integrity.contextSha256 = 'e'.repeat(64);
120
+ }
121
+ if (cause === 'secret')
122
+ f.response.publicPrompt += 'dhab_SYNTHETIC_PRIVATE_CANARY';
123
+ if (cause === 'oversized')
124
+ f.response.publicPrompt += 'x'.repeat(32768);
125
+ if (cause === 'foreign-org')
126
+ f.response.context.organizationId = 'org_foreign';
127
+ if (cause === 'foreign-reference')
128
+ f.response.context.setupReference = context.recipientMembershipId;
129
+ if (cause === 'expired')
130
+ f.response.expiresAt = new Date(now).toISOString();
131
+ if (cause === 'wrong-source')
132
+ f.response.promptSource = 'original_user_message';
133
+ if (cause === 'v1-downgrade')
134
+ f.response.schema = 'dharma.setup-host-preparation/v1';
135
+ if (cause === 'extra-field')
136
+ f.response.credential = 'PRIVATE_CANARY';
137
+ await assert.rejects(requestCodexSetupHostPreparation(f.input), error => error instanceof Error && error.message === 'codex_setup_portal_preparation_unavailable');
138
+ assert.equal(f.calls, 1);
139
+ });
140
+ }
141
+ //# sourceMappingURL=codexSetupPortalPrompt.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexSetupPortalPrompt.test.js","sourceRoot":"","sources":["../src/codexSetupPortalPrompt.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** The single public checksum argument is zeroed to avoid a self-referential digest. */
2
+ export declare function codexSetupPortalPromptDigest(value: unknown): string;
3
+ //# sourceMappingURL=codexSetupPortalPromptDigest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexSetupPortalPromptDigest.d.ts","sourceRoot":"","sources":["../src/codexSetupPortalPromptDigest.ts"],"names":[],"mappings":"AAEA,wFAAwF;AACxF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWnE"}
@@ -0,0 +1,18 @@
1
+ import { createHash } from 'node:crypto';
2
+ /** The single public checksum argument is zeroed to avoid a self-referential digest. */
3
+ export function codexSetupPortalPromptDigest(value) {
4
+ const invalid = () => { throw new Error('codex_setup_public_prompt_invalid'); };
5
+ if (typeof value !== 'string' || !value || Buffer.byteLength(value) > 32768
6
+ || Buffer.from(value, 'utf8').toString('utf8') !== value
7
+ || /[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/.test(value))
8
+ return invalid();
9
+ const text = value.replace(/\r\n/g, '\n');
10
+ if ([...text.matchAll(/--portal-prompt-sha256\b/g)].length !== 1)
11
+ return invalid();
12
+ const matches = [...text.matchAll(/--portal-prompt-sha256 ([a-f0-9]{64})(?=[ \t\n]|$)/g)];
13
+ if (matches.length !== 1)
14
+ return invalid();
15
+ const match = matches[0], at = match.index + match[0].length - 64;
16
+ return createHash('sha256').update(text.slice(0, at) + '0'.repeat(64) + text.slice(at + 64), 'utf8').digest('hex');
17
+ }
18
+ //# sourceMappingURL=codexSetupPortalPromptDigest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexSetupPortalPromptDigest.js","sourceRoot":"","sources":["../src/codexSetupPortalPromptDigest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,wFAAwF;AACxF,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,MAAM,OAAO,GAAC,GAAQ,EAAE,GAAC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAA,CAAC,CAAC;IAChF,IAAG,OAAO,KAAK,KAAG,QAAQ,IAAE,CAAC,KAAK,IAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAC,KAAK;WAC9D,MAAM,CAAC,IAAI,CAAC,KAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAG,KAAK;WAClD,gDAAgD,CAAC,IAAI,CAAC,KAAK,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;IAClF,MAAM,IAAI,GAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAC,IAAI,CAAC,CAAC;IACvC,IAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,MAAM,KAAG,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;IAC/E,MAAM,OAAO,GAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,qDAAqD,CAAC,CAAC,CAAC;IACxF,IAAG,OAAO,CAAC,MAAM,KAAG,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;IACvC,MAAM,KAAK,GAAC,OAAO,CAAC,CAAC,CAAE,EAAC,EAAE,GAAC,KAAK,CAAC,KAAM,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,EAAE,CAAC;IAC3D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,GAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAC,EAAE,CAAC,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7G,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codexSetupPortalPromptDigest.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexSetupPortalPromptDigest.test.d.ts","sourceRoot":"","sources":["../src/codexSetupPortalPromptDigest.test.ts"],"names":[],"mappings":""}