@dharma-ai-labs/agent-fabric 0.2.153 → 0.2.155

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 (300) hide show
  1. package/dist/bootstrapGitScope.test.d.ts +2 -0
  2. package/dist/bootstrapGitScope.test.d.ts.map +1 -0
  3. package/dist/bootstrapGitScope.test.js +115 -0
  4. package/dist/bootstrapGitScope.test.js.map +1 -0
  5. package/dist/bootstrapHostFiles.d.ts +5 -0
  6. package/dist/bootstrapHostFiles.d.ts.map +1 -0
  7. package/dist/bootstrapHostFiles.js +150 -0
  8. package/dist/bootstrapHostFiles.js.map +1 -0
  9. package/dist/bootstrapHostFiles.test.d.ts +2 -0
  10. package/dist/bootstrapHostFiles.test.d.ts.map +1 -0
  11. package/dist/bootstrapHostFiles.test.js +127 -0
  12. package/dist/bootstrapHostFiles.test.js.map +1 -0
  13. package/dist/bootstrapHostScope.d.ts +42 -0
  14. package/dist/bootstrapHostScope.d.ts.map +1 -0
  15. package/dist/bootstrapHostScope.js +224 -0
  16. package/dist/bootstrapHostScope.js.map +1 -0
  17. package/dist/bootstrapHostScope.test.d.ts +2 -0
  18. package/dist/bootstrapHostScope.test.d.ts.map +1 -0
  19. package/dist/bootstrapHostScope.test.js +577 -0
  20. package/dist/bootstrapHostScope.test.js.map +1 -0
  21. package/dist/bootstrapInstallationScope.test.d.ts +2 -0
  22. package/dist/bootstrapInstallationScope.test.d.ts.map +1 -0
  23. package/dist/bootstrapInstallationScope.test.js +68 -0
  24. package/dist/bootstrapInstallationScope.test.js.map +1 -0
  25. package/dist/bootstrapLauncherCaller.test.d.ts +2 -0
  26. package/dist/bootstrapLauncherCaller.test.d.ts.map +1 -0
  27. package/dist/bootstrapLauncherCaller.test.js +91 -0
  28. package/dist/bootstrapLauncherCaller.test.js.map +1 -0
  29. package/dist/bootstrapOwnedChildren.test.d.ts +2 -0
  30. package/dist/bootstrapOwnedChildren.test.d.ts.map +1 -0
  31. package/dist/bootstrapOwnedChildren.test.js +93 -0
  32. package/dist/bootstrapOwnedChildren.test.js.map +1 -0
  33. package/dist/bootstrapPolicyScope.test.d.ts +2 -0
  34. package/dist/bootstrapPolicyScope.test.d.ts.map +1 -0
  35. package/dist/bootstrapPolicyScope.test.js +261 -0
  36. package/dist/bootstrapPolicyScope.test.js.map +1 -0
  37. package/dist/bootstrapProcessCaller.test.d.ts +2 -0
  38. package/dist/bootstrapProcessCaller.test.d.ts.map +1 -0
  39. package/dist/bootstrapProcessCaller.test.js +262 -0
  40. package/dist/bootstrapProcessCaller.test.js.map +1 -0
  41. package/dist/bootstrapRegistryCaller.test.d.ts +2 -0
  42. package/dist/bootstrapRegistryCaller.test.d.ts.map +1 -0
  43. package/dist/bootstrapRegistryCaller.test.js +128 -0
  44. package/dist/bootstrapRegistryCaller.test.js.map +1 -0
  45. package/dist/bootstrapVaultScope.test.d.ts +2 -0
  46. package/dist/bootstrapVaultScope.test.d.ts.map +1 -0
  47. package/dist/bootstrapVaultScope.test.js +105 -0
  48. package/dist/bootstrapVaultScope.test.js.map +1 -0
  49. package/dist/codexBootstrapCompletion.test.d.ts +2 -0
  50. package/dist/codexBootstrapCompletion.test.d.ts.map +1 -0
  51. package/dist/codexBootstrapCompletion.test.js +630 -0
  52. package/dist/codexBootstrapCompletion.test.js.map +1 -0
  53. package/dist/codexBoundSession.d.ts +2 -2
  54. package/dist/codexBoundSession.d.ts.map +1 -1
  55. package/dist/codexBoundSession.js +23 -17
  56. package/dist/codexBoundSession.js.map +1 -1
  57. package/dist/codexBoundSession.test.js +3 -0
  58. package/dist/codexBoundSession.test.js.map +1 -1
  59. package/dist/codexInboxSession.d.ts.map +1 -1
  60. package/dist/codexInboxSession.js +3 -3
  61. package/dist/codexInboxSession.js.map +1 -1
  62. package/dist/codexScopedDispatch.test.d.ts +2 -0
  63. package/dist/codexScopedDispatch.test.d.ts.map +1 -0
  64. package/dist/codexScopedDispatch.test.js +56 -0
  65. package/dist/codexScopedDispatch.test.js.map +1 -0
  66. package/dist/codexSetupAdmission.d.ts +108 -0
  67. package/dist/codexSetupAdmission.d.ts.map +1 -0
  68. package/dist/codexSetupAdmission.js +214 -0
  69. package/dist/codexSetupAdmission.js.map +1 -0
  70. package/dist/codexSetupAdmission.test.d.ts +2 -0
  71. package/dist/codexSetupAdmission.test.d.ts.map +1 -0
  72. package/dist/codexSetupAdmission.test.js +578 -0
  73. package/dist/codexSetupAdmission.test.js.map +1 -0
  74. package/dist/codexSetupChildProvider.test.d.ts +2 -0
  75. package/dist/codexSetupChildProvider.test.d.ts.map +1 -0
  76. package/dist/codexSetupChildProvider.test.js +210 -0
  77. package/dist/codexSetupChildProvider.test.js.map +1 -0
  78. package/dist/codexSetupChildStartup.d.ts +38 -0
  79. package/dist/codexSetupChildStartup.d.ts.map +1 -0
  80. package/dist/codexSetupChildStartup.js +115 -0
  81. package/dist/codexSetupChildStartup.js.map +1 -0
  82. package/dist/codexSetupChildStartup.test.d.ts +2 -0
  83. package/dist/codexSetupChildStartup.test.d.ts.map +1 -0
  84. package/dist/codexSetupChildStartup.test.js +141 -0
  85. package/dist/codexSetupChildStartup.test.js.map +1 -0
  86. package/dist/codexSetupCliDispatch.test.d.ts +2 -0
  87. package/dist/codexSetupCliDispatch.test.d.ts.map +1 -0
  88. package/dist/codexSetupCliDispatch.test.js +138 -0
  89. package/dist/codexSetupCliDispatch.test.js.map +1 -0
  90. package/dist/codexSetupJournalOpen.test.d.ts +2 -0
  91. package/dist/codexSetupJournalOpen.test.d.ts.map +1 -0
  92. package/dist/codexSetupJournalOpen.test.js +101 -0
  93. package/dist/codexSetupJournalOpen.test.js.map +1 -0
  94. package/dist/codexSetupNativeHost.d.ts +31 -0
  95. package/dist/codexSetupNativeHost.d.ts.map +1 -0
  96. package/dist/codexSetupNativeHost.js +211 -0
  97. package/dist/codexSetupNativeHost.js.map +1 -0
  98. package/dist/codexSetupNativeHost.test.d.ts +2 -0
  99. package/dist/codexSetupNativeHost.test.d.ts.map +1 -0
  100. package/dist/codexSetupNativeHost.test.js +479 -0
  101. package/dist/codexSetupNativeHost.test.js.map +1 -0
  102. package/dist/codexSetupNativeWire.test.d.ts +2 -0
  103. package/dist/codexSetupNativeWire.test.d.ts.map +1 -0
  104. package/dist/codexSetupNativeWire.test.js +243 -0
  105. package/dist/codexSetupNativeWire.test.js.map +1 -0
  106. package/dist/codexSetupOwnedConnection.d.ts +14 -0
  107. package/dist/codexSetupOwnedConnection.d.ts.map +1 -0
  108. package/dist/codexSetupOwnedConnection.js +64 -0
  109. package/dist/codexSetupOwnedConnection.js.map +1 -0
  110. package/dist/codexSetupOwnedConnection.test.d.ts +2 -0
  111. package/dist/codexSetupOwnedConnection.test.d.ts.map +1 -0
  112. package/dist/codexSetupOwnedConnection.test.js +192 -0
  113. package/dist/codexSetupOwnedConnection.test.js.map +1 -0
  114. package/dist/codexSetupPortalCommand.test.d.ts +2 -0
  115. package/dist/codexSetupPortalCommand.test.d.ts.map +1 -0
  116. package/dist/codexSetupPortalCommand.test.js +146 -0
  117. package/dist/codexSetupPortalCommand.test.js.map +1 -0
  118. package/dist/codexSetupReadiness.d.ts +23 -0
  119. package/dist/codexSetupReadiness.d.ts.map +1 -0
  120. package/dist/codexSetupReadiness.js +74 -0
  121. package/dist/codexSetupReadiness.js.map +1 -0
  122. package/dist/codexSetupReadiness.test.d.ts +2 -0
  123. package/dist/codexSetupReadiness.test.d.ts.map +1 -0
  124. package/dist/codexSetupReadiness.test.js +145 -0
  125. package/dist/codexSetupReadiness.test.js.map +1 -0
  126. package/dist/codexSetupSessionCaller.test.d.ts +2 -0
  127. package/dist/codexSetupSessionCaller.test.d.ts.map +1 -0
  128. package/dist/codexSetupSessionCaller.test.js +352 -0
  129. package/dist/codexSetupSessionCaller.test.js.map +1 -0
  130. package/dist/codexSetupSessionHandoff.d.ts +48 -0
  131. package/dist/codexSetupSessionHandoff.d.ts.map +1 -0
  132. package/dist/codexSetupSessionHandoff.js +146 -0
  133. package/dist/codexSetupSessionHandoff.js.map +1 -0
  134. package/dist/codexSetupSessionHandoff.test.d.ts +2 -0
  135. package/dist/codexSetupSessionHandoff.test.d.ts.map +1 -0
  136. package/dist/codexSetupSessionHandoff.test.js +289 -0
  137. package/dist/codexSetupSessionHandoff.test.js.map +1 -0
  138. package/dist/codexSetupTransport.test.d.ts +2 -0
  139. package/dist/codexSetupTransport.test.d.ts.map +1 -0
  140. package/dist/codexSetupTransport.test.js +206 -0
  141. package/dist/codexSetupTransport.test.js.map +1 -0
  142. package/dist/codexSetupVaultJournal.d.ts +13 -0
  143. package/dist/codexSetupVaultJournal.d.ts.map +1 -0
  144. package/dist/codexSetupVaultJournal.js +28 -0
  145. package/dist/codexSetupVaultJournal.js.map +1 -0
  146. package/dist/codexSetupVaultJournal.test.d.ts +2 -0
  147. package/dist/codexSetupVaultJournal.test.d.ts.map +1 -0
  148. package/dist/codexSetupVaultJournal.test.js +104 -0
  149. package/dist/codexSetupVaultJournal.test.js.map +1 -0
  150. package/dist/containerChildCleanup.test.d.ts +2 -0
  151. package/dist/containerChildCleanup.test.d.ts.map +1 -0
  152. package/dist/containerChildCleanup.test.js +145 -0
  153. package/dist/containerChildCleanup.test.js.map +1 -0
  154. package/dist/containerRelayLifecycle.d.ts +1 -1
  155. package/dist/containerRelayLifecycle.d.ts.map +1 -1
  156. package/dist/containerRelayLifecycle.js +29 -37
  157. package/dist/containerRelayLifecycle.js.map +1 -1
  158. package/dist/cooperativeInboxSession.d.ts +2 -2
  159. package/dist/cooperativeInboxSession.d.ts.map +1 -1
  160. package/dist/cooperativeInboxSession.js +21 -13
  161. package/dist/cooperativeInboxSession.js.map +1 -1
  162. package/dist/cooperativeInboxSession.test.js +65 -0
  163. package/dist/cooperativeInboxSession.test.js.map +1 -1
  164. package/dist/demoWatchControl.d.ts +3 -3
  165. package/dist/index.d.ts +55 -14
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +1642 -553
  168. package/dist/index.js.map +1 -1
  169. package/dist/namedCodexSkillDiscovery.d.ts +15 -0
  170. package/dist/namedCodexSkillDiscovery.d.ts.map +1 -0
  171. package/dist/namedCodexSkillDiscovery.js +90 -0
  172. package/dist/namedCodexSkillDiscovery.js.map +1 -0
  173. package/dist/namedCodexSkillDiscovery.test.d.ts +2 -0
  174. package/dist/namedCodexSkillDiscovery.test.d.ts.map +1 -0
  175. package/dist/namedCodexSkillDiscovery.test.js +37 -0
  176. package/dist/namedCodexSkillDiscovery.test.js.map +1 -0
  177. package/dist/namedCodexThread.d.ts +2 -0
  178. package/dist/namedCodexThread.d.ts.map +1 -1
  179. package/dist/namedCodexThread.js +13 -4
  180. package/dist/namedCodexThread.js.map +1 -1
  181. package/dist/namedSessionChildOwner.d.ts +17 -0
  182. package/dist/namedSessionChildOwner.d.ts.map +1 -0
  183. package/dist/namedSessionChildOwner.js +122 -0
  184. package/dist/namedSessionChildOwner.js.map +1 -0
  185. package/dist/namedSessionChildOwner.test.d.ts +2 -0
  186. package/dist/namedSessionChildOwner.test.d.ts.map +1 -0
  187. package/dist/namedSessionChildOwner.test.js +203 -0
  188. package/dist/namedSessionChildOwner.test.js.map +1 -0
  189. package/dist/namedSessionEvidence.d.ts +2 -2
  190. package/dist/namedSessionEvidence.d.ts.map +1 -1
  191. package/dist/namedSessionEvidence.js +2 -2
  192. package/dist/namedSessionEvidence.js.map +1 -1
  193. package/dist/namedSessionEvidence.test.js +24 -1
  194. package/dist/namedSessionEvidence.test.js.map +1 -1
  195. package/dist/namedSessionRepositoryState.d.ts +2 -2
  196. package/dist/namedSessionRepositoryState.d.ts.map +1 -1
  197. package/dist/namedSessionService.d.ts +4 -2
  198. package/dist/namedSessionService.d.ts.map +1 -1
  199. package/dist/namedSessionService.js +18 -1
  200. package/dist/namedSessionService.js.map +1 -1
  201. package/dist/namedSessionService.test.js +31 -2
  202. package/dist/namedSessionService.test.js.map +1 -1
  203. package/dist/namedSessionTaskExportSync.d.ts +3 -3
  204. package/dist/namedSessionTaskExportSync.d.ts.map +1 -1
  205. package/dist/namedSessionTaskExportSync.js +6 -6
  206. package/dist/namedSessionTaskExportSync.js.map +1 -1
  207. package/dist/namedSessionTrust.d.ts +2 -2
  208. package/dist/namedSessionTrust.d.ts.map +1 -1
  209. package/dist/namedSessionTrust.js +3 -2
  210. package/dist/namedSessionTrust.js.map +1 -1
  211. package/dist/namedSessionTrust.test.js +2 -1
  212. package/dist/namedSessionTrust.test.js.map +1 -1
  213. package/dist/ownedChildLifecycle.d.ts +13 -0
  214. package/dist/ownedChildLifecycle.d.ts.map +1 -0
  215. package/dist/ownedChildLifecycle.js +87 -0
  216. package/dist/ownedChildLifecycle.js.map +1 -0
  217. package/dist/ownedChildLifecycle.test.d.ts +2 -0
  218. package/dist/ownedChildLifecycle.test.d.ts.map +1 -0
  219. package/dist/ownedChildLifecycle.test.js +133 -0
  220. package/dist/ownedChildLifecycle.test.js.map +1 -0
  221. package/dist/pidLock.test.js +242 -9
  222. package/dist/pidLock.test.js.map +1 -1
  223. package/dist/providerSessionChannel.d.ts +1 -1
  224. package/dist/providerSessionChannel.d.ts.map +1 -1
  225. package/dist/providerSessionChannel.js +7 -3
  226. package/dist/providerSessionChannel.js.map +1 -1
  227. package/dist/providerSessionChannel.test.js +20 -0
  228. package/dist/providerSessionChannel.test.js.map +1 -1
  229. package/dist/providerSessionReplyRecovery.d.ts +2 -2
  230. package/dist/providerSessionReplyRecovery.d.ts.map +1 -1
  231. package/dist/providerSessionReplyRecovery.js +3 -3
  232. package/dist/providerSessionReplyRecovery.js.map +1 -1
  233. package/dist/relayAutostart.d.ts.map +1 -1
  234. package/dist/relayAutostart.js +12 -9
  235. package/dist/relayAutostart.js.map +1 -1
  236. package/dist/relayRuntimeUpgrade.d.ts +1 -1
  237. package/dist/relaySupervisor.d.ts.map +1 -1
  238. package/dist/relaySupervisor.js +19 -14
  239. package/dist/relaySupervisor.js.map +1 -1
  240. package/dist/relaySupervisor.test.js +26 -0
  241. package/dist/relaySupervisor.test.js.map +1 -1
  242. package/dist/relaySupervisorCleanup.test.d.ts +2 -0
  243. package/dist/relaySupervisorCleanup.test.d.ts.map +1 -0
  244. package/dist/relaySupervisorCleanup.test.js +69 -0
  245. package/dist/relaySupervisorCleanup.test.js.map +1 -0
  246. package/dist/repositoryInstallerFiles.d.ts +19 -1
  247. package/dist/repositoryInstallerFiles.d.ts.map +1 -1
  248. package/dist/repositoryInstallerFiles.js +205 -29
  249. package/dist/repositoryInstallerFiles.js.map +1 -1
  250. package/dist/repositoryInstallerScope.test.d.ts +2 -0
  251. package/dist/repositoryInstallerScope.test.d.ts.map +1 -0
  252. package/dist/repositoryInstallerScope.test.js +513 -0
  253. package/dist/repositoryInstallerScope.test.js.map +1 -0
  254. package/dist/repositoryKnowledge.d.ts.map +1 -1
  255. package/dist/repositoryKnowledge.js +177 -37
  256. package/dist/repositoryKnowledge.js.map +1 -1
  257. package/dist/repositoryKnowledgeScope.test.d.ts +2 -0
  258. package/dist/repositoryKnowledgeScope.test.d.ts.map +1 -0
  259. package/dist/repositoryKnowledgeScope.test.js +316 -0
  260. package/dist/repositoryKnowledgeScope.test.js.map +1 -0
  261. package/dist/repositoryOnboardingCaller.test.js +61 -4
  262. package/dist/repositoryOnboardingCaller.test.js.map +1 -1
  263. package/dist/repositoryPackage.d.ts.map +1 -1
  264. package/dist/repositoryPackage.js +340 -59
  265. package/dist/repositoryPackage.js.map +1 -1
  266. package/dist/repositoryPackageDelivery.test.js +65 -0
  267. package/dist/repositoryPackageDelivery.test.js.map +1 -1
  268. package/dist/repositoryPackageScope.test.d.ts +2 -0
  269. package/dist/repositoryPackageScope.test.d.ts.map +1 -0
  270. package/dist/repositoryPackageScope.test.js +578 -0
  271. package/dist/repositoryPackageScope.test.js.map +1 -0
  272. package/dist/schemas/codex-setup-child-start.schema.json +12 -0
  273. package/dist/schemas/codex-setup-intent.schema.json +27 -0
  274. package/dist/schemas/local-codex-setup-session.schema.json +39 -0
  275. package/dist/schemas/setup-claim-failure.schema.json +15 -0
  276. package/dist/skillInstallationScope.test.d.ts +2 -0
  277. package/dist/skillInstallationScope.test.d.ts.map +1 -0
  278. package/dist/skillInstallationScope.test.js +64 -0
  279. package/dist/skillInstallationScope.test.js.map +1 -0
  280. package/dist/skillPreparationCache.test.js +12 -4
  281. package/dist/skillPreparationCache.test.js.map +1 -1
  282. package/dist/skillPreparationCaller.test.js +31 -1
  283. package/dist/skillPreparationCaller.test.js.map +1 -1
  284. package/dist/startupCommitScope.test.d.ts +2 -0
  285. package/dist/startupCommitScope.test.d.ts.map +1 -0
  286. package/dist/startupCommitScope.test.js +172 -0
  287. package/dist/startupCommitScope.test.js.map +1 -0
  288. package/dist/workspaceRegistry.d.ts.map +1 -1
  289. package/dist/workspaceRegistry.js +7 -3
  290. package/dist/workspaceRegistry.js.map +1 -1
  291. package/dist/workspaceRegistry.test.js +51 -0
  292. package/dist/workspaceRegistry.test.js.map +1 -1
  293. package/dist/workspaceRegistryRecovery.d.ts.map +1 -1
  294. package/dist/workspaceRegistryRecovery.js +171 -64
  295. package/dist/workspaceRegistryRecovery.js.map +1 -1
  296. package/dist/workspaceRegistryRecoveryScope.test.d.ts +2 -0
  297. package/dist/workspaceRegistryRecoveryScope.test.d.ts.map +1 -0
  298. package/dist/workspaceRegistryRecoveryScope.test.js +416 -0
  299. package/dist/workspaceRegistryRecoveryScope.test.js.map +1 -0
  300. package/package.json +7 -7
@@ -0,0 +1,578 @@
1
+ import assert from 'node:assert/strict';
2
+ import test from 'node:test';
3
+ import { resolve } from 'node:path';
4
+ import { validateContract } from '@dharma-ai-labs/agent-fabric-contracts';
5
+ import { assertCodexSetupExecutionLease, createCodexSetupAdmission } from './codexSetupAdmission.js';
6
+ import { CODEX_PEER_TOOLS } from './codexPeerTools.js';
7
+ const id = (n) => `${String(n).padStart(8, '0')}-1111-4111-8111-111111111111`;
8
+ const digest = `sha256:${'a'.repeat(64)}`;
9
+ const intent = { schema: 'dharma.codex-setup-intent/v1', operationId: id(1),
10
+ setupReference: id(2), organizationId: 'org_demo', recipientMembershipId: id(3),
11
+ origin: 'https://hq.example', repositoryFingerprint: digest, policyRevision: 'policy-v1',
12
+ scopeDigest: digest, contractDigest: digest, hostContextId: id(4),
13
+ issuedAt: '2026-10-05T18:00:00.000Z', expiresAt: '2026-10-05T18:15:00.000Z' };
14
+ function fixture() {
15
+ let time = Date.parse('2026-10-05T18:01:00.000Z');
16
+ let mode = 'setup';
17
+ let qualified = true;
18
+ let calls = 0;
19
+ let claims = 0;
20
+ let state = 'new';
21
+ let disposition;
22
+ const journal = Object.assign({
23
+ claim: async (_operation, intentDigest) => {
24
+ claims++;
25
+ if (state === 'new') {
26
+ state = 'running';
27
+ return { state: 'acquired', leaseId: id(5), intentDigest };
28
+ }
29
+ return state === 'running' ? { state: 'running', intentDigest } : { state: 'terminal', result: disposition, intentDigest };
30
+ },
31
+ finish: async (_lease, _digest, result) => { state = 'terminal'; disposition = result; },
32
+ }, {
33
+ read: async (_operation, intentDigest) => state === 'new' ? null
34
+ : state === 'running' ? { state: 'running', intentDigest }
35
+ : { state: 'terminal', intentDigest, result: disposition },
36
+ });
37
+ const active = { connectionId: id(6), threadId: 'synthetic_thread', turnId: 'synthetic_turn', hostContextId: id(4) };
38
+ const input = { intent, ...active, now: () => time,
39
+ current: async () => ({ ...active, mode }), qualifyHost: async () => qualified,
40
+ journal, execute: async () => { calls++; return { state: 'completed', readinessReceiptId: id(7) }; },
41
+ verifyReadiness: async () => true };
42
+ const signal = new AbortController();
43
+ const params = { threadId: active.threadId, turnId: active.turnId, callId: 'synthetic_call', namespace: null,
44
+ tool: 'dharma_setup_reference', arguments: { operationId: id(1), setupReference: id(2) } };
45
+ return { input, params, signal, get calls() { return calls; }, get claims() { return claims; },
46
+ mode: (value) => { mode = value; }, qualify: (value) => { qualified = value; },
47
+ time: (value) => { time = value; } };
48
+ }
49
+ test('a journal without durable readback cannot claim or execute setup', () => {
50
+ const f = fixture();
51
+ const journal = { claim: f.input.journal.claim, finish: f.input.journal.finish };
52
+ assert.throws(() => createCodexSetupAdmission({ ...f.input, journal: journal }), /^Error: codex_setup_intent_invalid$/);
53
+ assert.equal(f.claims, 0);
54
+ assert.equal(f.calls, 0);
55
+ });
56
+ test('setup admission denies foreign context, peer/work turns and model-selected authority', async () => {
57
+ const variations = [
58
+ { threadId: 'foreign' }, { turnId: 'foreign' }, { tool: 'dharma_peer_ask' }, { namespace: 'foreign' },
59
+ { command: '/init' }, { arguments: { operationId: id(1), setupReference: id(2), home: '/private' } },
60
+ { arguments: { operationId: id(8), setupReference: id(2) } },
61
+ { arguments: { operationId: id(1), setupReference: id(8) } }, { callId: 'bad\ncall' },
62
+ ];
63
+ for (const variation of variations) {
64
+ const f = fixture();
65
+ const owner = createCodexSetupAdmission(f.input);
66
+ const result = await owner.handler({ ...f.params, ...variation }, { signal: f.signal.signal });
67
+ assert.equal(result.success, false);
68
+ assert.equal(f.calls, 0);
69
+ assert.equal(f.claims, 0);
70
+ }
71
+ for (const mode of ['work', 'peer']) {
72
+ const f = fixture();
73
+ f.mode(mode);
74
+ assert.equal((await createCodexSetupAdmission(f.input).handler(f.params, { signal: f.signal.signal })).success, false);
75
+ assert.equal(f.calls, 0);
76
+ assert.equal(f.claims, 0);
77
+ }
78
+ });
79
+ test('setup admission requires host qualification, live scope, signal and unexpired intent', async () => {
80
+ for (const invalid of ['host', 'expiry', 'abort', 'signal']) {
81
+ const f = fixture();
82
+ const owner = createCodexSetupAdmission(f.input);
83
+ if (invalid === 'host')
84
+ f.qualify(false);
85
+ if (invalid === 'expiry')
86
+ f.time(Date.parse(intent.expiresAt));
87
+ if (invalid === 'abort')
88
+ f.signal.abort();
89
+ assert.equal((await owner.handler(f.params, invalid === 'signal' ? undefined : { signal: f.signal.signal })).success, false);
90
+ assert.equal(f.calls, 0);
91
+ assert.equal(f.claims, 0);
92
+ }
93
+ });
94
+ test('completion requires independent readiness verification; repeated operation does not execute twice', async () => {
95
+ const f = fixture();
96
+ const owner = createCodexSetupAdmission(f.input);
97
+ assert.equal((await owner.handler(f.params, { signal: f.signal.signal })).success, true);
98
+ assert.equal((await owner.handler({ ...f.params, callId: 'another_call' }, { signal: f.signal.signal })).success, true);
99
+ assert.equal(f.calls, 1);
100
+ assert.equal((await owner.handler(f.params, { signal: f.signal.signal })).success, false);
101
+ const denied = fixture();
102
+ denied.input.verifyReadiness = async () => false;
103
+ const result = await createCodexSetupAdmission(denied.input).handler(denied.params, { signal: denied.signal.signal });
104
+ assert.equal(result.success, false);
105
+ assert.equal(JSON.stringify(result).includes('readinessReceiptId'), false);
106
+ });
107
+ test('the original lease and native-bound digest reach only trusted execution and readiness verification', async () => {
108
+ const f = fixture();
109
+ let executionDigest = '', verificationDigest = '';
110
+ const input = { ...f.input,
111
+ execute: async (_intent, _signal, current, lease) => {
112
+ assert.equal(await current(), true);
113
+ assert.equal(Object.isFrozen(lease), true);
114
+ assert.equal(lease.leaseId, id(5));
115
+ assert.deepEqual(Object.keys(lease).sort(), ['intentDigest', 'leaseId']);
116
+ executionDigest = lease.intentDigest;
117
+ return { state: 'completed', readinessReceiptId: id(7) };
118
+ },
119
+ verifyReadiness: async (_receipt, _intent, intentDigest) => {
120
+ verificationDigest = intentDigest;
121
+ return true;
122
+ } };
123
+ const owner = createCodexSetupAdmission(input);
124
+ const result = await owner.handler(f.params, { signal: f.signal.signal });
125
+ assert.equal(result.success, true);
126
+ assert.equal(executionDigest, owner.intentDigest);
127
+ assert.equal(verificationDigest, owner.intentDigest);
128
+ assert.notEqual(owner.intentDigest, intent.scopeDigest);
129
+ assert.equal(JSON.stringify(result).includes(id(5)), false);
130
+ assert.equal(JSON.stringify(result).includes(owner.intentDigest), false);
131
+ });
132
+ test('raw runtime errors and unexpected output never cross the tool boundary', async () => {
133
+ for (const runtime of [async () => { throw new Error('vendor-secret-canary'); },
134
+ async () => ({ state: 'completed', readinessReceiptId: id(7), token: 'vendor-secret-canary' })]) {
135
+ const f = fixture();
136
+ const input = { ...f.input, execute: runtime };
137
+ const result = await createCodexSetupAdmission(input).handler(f.params, { signal: f.signal.signal });
138
+ assert.equal(result.success, false);
139
+ assert.equal(JSON.stringify(result).includes('vendor-secret-canary'), false);
140
+ }
141
+ });
142
+ test('only the original admitted in-process lease authorizes its exact intent while execution is active', async () => {
143
+ const f = fixture();
144
+ let retained;
145
+ const owner = createCodexSetupAdmission({ ...f.input, execute: async (accepted, _signal, _current, lease) => {
146
+ retained = lease;
147
+ await assertCodexSetupExecutionLease(lease, accepted);
148
+ for (const copied of [{ ...lease }, new Proxy(lease, {})]) {
149
+ await assert.rejects(assertCodexSetupExecutionLease(copied, accepted), /execution_lease_unavailable/);
150
+ }
151
+ await assert.rejects(assertCodexSetupExecutionLease(lease, { ...accepted, policyRevision: 'foreign' }), /execution_lease_unavailable/);
152
+ let getters = 0;
153
+ await assert.rejects(assertCodexSetupExecutionLease(lease, { ...accepted,
154
+ get policyRevision() { getters++; return accepted.policyRevision; } }), /execution_lease_unavailable/);
155
+ assert.equal(getters, 0);
156
+ return { state: 'completed', readinessReceiptId: id(7) };
157
+ } });
158
+ assert.equal((await owner.handler(f.params, { signal: f.signal.signal })).success, true);
159
+ assert.ok(retained);
160
+ await assert.rejects(assertCodexSetupExecutionLease(retained, intent), /execution_lease_unavailable/);
161
+ });
162
+ test('execution lease loses authority after cancellation, even during asynchronous qualification', async () => {
163
+ const f = fixture();
164
+ let delayed = false, entered, release;
165
+ const started = new Promise(done => { entered = done; });
166
+ const finish = new Promise(done => { release = done; });
167
+ const owner = createCodexSetupAdmission({ ...f.input, responseWaitMs: 10,
168
+ qualifyHost: async () => { if (delayed) {
169
+ entered();
170
+ await finish;
171
+ } return true; },
172
+ execute: async (accepted, _signal, _current, lease) => {
173
+ delayed = true;
174
+ await assert.rejects(assertCodexSetupExecutionLease(lease, accepted), /execution_lease_unavailable/);
175
+ return { state: 'unconfirmed', code: 'setup_execution_unconfirmed' };
176
+ } });
177
+ const operation = owner.handler(f.params, { signal: f.signal.signal });
178
+ try {
179
+ await started;
180
+ owner.close();
181
+ release();
182
+ assert.equal((await operation).success, false);
183
+ await owner.settled;
184
+ }
185
+ finally {
186
+ owner.close();
187
+ release();
188
+ await owner.settled;
189
+ }
190
+ });
191
+ test('authority lost during operation withholds output without forgetting terminal effects', async () => {
192
+ const f = fixture();
193
+ const input = { ...f.input, execute: async () => {
194
+ f.mode('peer');
195
+ return { state: 'completed', readinessReceiptId: id(7) };
196
+ } };
197
+ const owner = createCodexSetupAdmission(input);
198
+ assert.equal((await owner.handler(f.params, { signal: f.signal.signal })).success, false);
199
+ f.mode('setup');
200
+ assert.equal((await owner.handler({ ...f.params, callId: 'reconcile' }, { signal: f.signal.signal })).success, true);
201
+ });
202
+ test('closing the setup gate prevents permission carryover and admission after close', async () => {
203
+ const f = fixture();
204
+ const owner = createCodexSetupAdmission(f.input);
205
+ owner.close();
206
+ assert.equal((await owner.handler(f.params, { signal: f.signal.signal })).success, false);
207
+ assert.equal(f.calls, 0);
208
+ });
209
+ test('intent schema and runtime deny credential fields, changed home and malformed binding', async () => {
210
+ const schemas = resolve(import.meta.dirname, '../../../schemas');
211
+ const schema = 'https://schemas.dharma-ai.io/codex-setup-intent/v1';
212
+ assert.equal((await validateContract(schemas, schema, intent)).ok, true);
213
+ const changes = [{ token: 'secret-canary' }, { home: '/foreign' }, { command: '/init' }, { env: { TOKEN: 'secret-canary' } },
214
+ { origin: 'https://user:password@hq.example' }, { origin: 'https://hq.example/foreign' },
215
+ { organizationId: 'org_demo\n' }, { setupReference: `${id(2)}\n` }, { scopeDigest: 'invalid' }];
216
+ for (const change of changes) {
217
+ const f = fixture();
218
+ const changed = { ...intent, ...change };
219
+ assert.equal((await validateContract(schemas, schema, changed)).ok, false);
220
+ assert.throws(() => createCodexSetupAdmission({ ...f.input, intent: changed }), /^Error: codex_setup_intent_invalid$/);
221
+ assert.equal(f.calls, 0);
222
+ }
223
+ for (const change of [{ expiresAt: intent.issuedAt }, { issuedAt: intent.expiresAt },
224
+ { expiresAt: '2026-10-05T18:16:00.000Z' }]) {
225
+ const f = fixture();
226
+ assert.throws(() => createCodexSetupAdmission({ ...f.input, intent: { ...intent, ...change } }), /^Error: codex_setup_intent_invalid$/);
227
+ }
228
+ });
229
+ test('concurrent calls retain one executor and cooperative abort does not invent termination', async () => {
230
+ const f = fixture();
231
+ let release;
232
+ let entered;
233
+ const started = new Promise(resolve => { entered = resolve; });
234
+ const finish = new Promise(resolve => { release = resolve; });
235
+ let running = 0;
236
+ const input = { ...f.input, execute: async () => {
237
+ running++;
238
+ entered();
239
+ await finish;
240
+ return { state: 'completed', readinessReceiptId: id(7) };
241
+ } };
242
+ const owner = createCodexSetupAdmission(input);
243
+ const first = owner.handler(f.params, { signal: f.signal.signal });
244
+ await started;
245
+ assert.equal(owner.pending, true);
246
+ assert.equal((await owner.handler({ ...f.params, callId: 'concurrent' }, { signal: f.signal.signal })).success, false);
247
+ owner.close();
248
+ assert.equal(owner.pending, true);
249
+ assert.equal(running, 1);
250
+ release();
251
+ assert.equal((await first).success, false);
252
+ assert.equal(owner.pending, false);
253
+ });
254
+ test('lost journal acknowledgement leaves the operation unconfirmed and does not execute again', async () => {
255
+ const f = fixture();
256
+ f.input.journal.finish = async () => { throw new Error('journal-secret-canary'); };
257
+ const owner = createCodexSetupAdmission(f.input);
258
+ const result = await owner.handler(f.params, { signal: f.signal.signal });
259
+ assert.equal(result.success, false);
260
+ assert.equal(JSON.stringify(result).includes('journal-secret-canary'), false);
261
+ assert.equal((await owner.handler({ ...f.params, callId: 'lost_ack' }, { signal: f.signal.signal })).success, false);
262
+ assert.equal(f.calls, 1);
263
+ });
264
+ test('lost acknowledgement after durable completion recovers the same result without a second execution', async () => {
265
+ const f = fixture(), finish = f.input.journal.finish;
266
+ f.input.journal.finish = async (...args) => { await finish(...args); throw new Error('journal-secret-canary'); };
267
+ const owner = createCodexSetupAdmission(f.input);
268
+ const result = await owner.handler(f.params, { signal: f.signal.signal });
269
+ assert.equal(result.success, true);
270
+ assert.deepEqual(JSON.parse(result.contentItems[0].text), { operationId: id(1), state: 'completed', readinessReceiptId: id(7) });
271
+ assert.equal(f.calls, 1);
272
+ assert.equal(f.claims, 1);
273
+ const again = await owner.handler({ ...f.params, callId: 'durable_readback' }, { signal: f.signal.signal });
274
+ assert.equal(again.success, true);
275
+ assert.equal(f.calls, 1);
276
+ assert.equal(JSON.stringify([result, again]).includes('journal-secret-canary'), false);
277
+ });
278
+ for (const state of ['absent', 'running', 'foreign-digest', 'foreign-receipt', 'private-field', 'unreadable']) {
279
+ test(`durable completion readback withholds ${state} without replaying execution`, async () => {
280
+ const f = fixture();
281
+ f.input.journal.read = async (_operation, intentDigest) => {
282
+ if (state === 'unreadable')
283
+ throw new Error('readback-private-canary');
284
+ if (state === 'absent')
285
+ return null;
286
+ if (state === 'running')
287
+ return { state: 'running', intentDigest };
288
+ return { state: 'terminal', intentDigest: state === 'foreign-digest' ? digest : intentDigest,
289
+ result: { state: 'completed', readinessReceiptId: state === 'foreign-receipt' ? id(8) : id(7),
290
+ ...(state === 'private-field' ? { token: 'readback-private-canary' } : {}) } };
291
+ };
292
+ const owner = createCodexSetupAdmission(f.input);
293
+ try {
294
+ const first = await owner.handler(f.params, { signal: f.signal.signal });
295
+ const repeated = await owner.handler({ ...f.params, callId: 'readback_retry' }, { signal: f.signal.signal });
296
+ for (const result of [first, repeated]) {
297
+ assert.equal(result.success, false);
298
+ assert.equal(JSON.stringify(result).includes('readinessReceiptId'), false);
299
+ assert.equal(JSON.stringify(result).includes('readback-private-canary'), false);
300
+ }
301
+ assert.equal(f.calls, 1);
302
+ }
303
+ finally {
304
+ owner.close();
305
+ await owner.settled;
306
+ }
307
+ });
308
+ }
309
+ for (const change of ['abort', 'peer', 'expiry', 'policy']) {
310
+ test(`authority lost during durable readback withholds completion after ${change}`, async () => {
311
+ const f = fixture(), read = f.input.journal.read;
312
+ f.input.journal.read = async (...args) => {
313
+ const result = await read(...args);
314
+ if (change === 'abort')
315
+ f.signal.abort();
316
+ if (change === 'peer')
317
+ f.mode('peer');
318
+ if (change === 'expiry')
319
+ f.time(Date.parse(intent.expiresAt));
320
+ if (change === 'policy')
321
+ f.qualify(false);
322
+ return result;
323
+ };
324
+ const owner = createCodexSetupAdmission(f.input);
325
+ try {
326
+ const result = await owner.handler(f.params, { signal: f.signal.signal });
327
+ assert.equal(result.success, false);
328
+ assert.equal(JSON.stringify(result).includes('readinessReceiptId'), false);
329
+ assert.equal(f.calls, 1);
330
+ }
331
+ finally {
332
+ owner.close();
333
+ await owner.settled;
334
+ }
335
+ });
336
+ }
337
+ test('same operation with changed admitted policy cannot reuse another context journal', async () => {
338
+ const f = fixture();
339
+ let admitted;
340
+ const claim = f.input.journal.claim;
341
+ f.input.journal.claim = async (operation, digest) => {
342
+ if (admitted && digest !== admitted)
343
+ throw new Error('journal_payload_mismatch');
344
+ admitted = digest;
345
+ return claim(operation, digest);
346
+ };
347
+ const first = createCodexSetupAdmission(f.input);
348
+ assert.equal((await first.handler(f.params, { signal: f.signal.signal })).success, true);
349
+ const changed = createCodexSetupAdmission({ ...f.input, intent: { ...intent, policyRevision: 'policy-v2' } });
350
+ assert.equal((await changed.handler(f.params, { signal: f.signal.signal })).success, false);
351
+ assert.equal(f.calls, 1);
352
+ });
353
+ test('host-intent mutation does not expand a previously admitted operation', async () => {
354
+ const f = fixture();
355
+ const mutable = { ...intent };
356
+ const owner = createCodexSetupAdmission({ ...f.input, intent: mutable });
357
+ mutable.setupReference = id(8);
358
+ assert.equal((await owner.handler({ ...f.params, arguments: { operationId: id(1), setupReference: id(8) } }, { signal: f.signal.signal })).success, false);
359
+ assert.equal(f.calls, 0);
360
+ });
361
+ test('setup admission stays absent from the existing peer tool registry', () => {
362
+ assert.deepEqual(CODEX_PEER_TOOLS.map(tool => tool.name), ['dharma_peer_ask', 'dharma_peer_reply']);
363
+ });
364
+ test('an unbound journal claim cannot admit execution or disclose readiness', async () => {
365
+ const f = fixture();
366
+ f.input.journal.claim = async () => ({ state: 'acquired', leaseId: id(5), intentDigest: `sha256:${'b'.repeat(64)}` });
367
+ const result = await createCodexSetupAdmission(f.input).handler(f.params, { signal: f.signal.signal });
368
+ assert.equal(result.success, false);
369
+ assert.equal(f.calls, 0);
370
+ });
371
+ test('setup callback returns bounded status while its owned operation remains fenced', async () => {
372
+ const f = fixture();
373
+ let release;
374
+ let executions = 0;
375
+ const completion = new Promise(done => { release = done; });
376
+ const input = { ...f.input, responseWaitMs: 10, execute: async () => {
377
+ executions++;
378
+ await completion;
379
+ return { state: 'completed', readinessReceiptId: id(7) };
380
+ } };
381
+ const owner = createCodexSetupAdmission(input);
382
+ const first = owner.handler(f.params, { signal: f.signal.signal });
383
+ let timeout;
384
+ try {
385
+ const result = await Promise.race([first, new Promise(done => {
386
+ timeout = setTimeout(() => done('missed_callback_boundary'), 250);
387
+ })]);
388
+ assert.notEqual(result, 'missed_callback_boundary');
389
+ if (result === 'missed_callback_boundary')
390
+ throw new Error('fixture_response_missing');
391
+ assert.equal(result.success, false);
392
+ assert.equal(JSON.parse(result.contentItems[0].text).code, 'codex_setup_in_progress');
393
+ assert.equal(owner.pending, true);
394
+ assert.equal(executions, 1);
395
+ const status = await owner.handler({ ...f.params, callId: 'poll_pending' }, { signal: f.signal.signal });
396
+ assert.equal(JSON.parse(status.contentItems[0].text).code, 'codex_setup_in_progress');
397
+ assert.equal(executions, 1);
398
+ release();
399
+ await owner.settled;
400
+ assert.equal(owner.pending, false);
401
+ assert.equal((await owner.handler({ ...f.params, callId: 'poll_completed' }, { signal: f.signal.signal })).success, true);
402
+ assert.equal(executions, 1);
403
+ }
404
+ finally {
405
+ if (timeout)
406
+ clearTimeout(timeout);
407
+ release();
408
+ await first;
409
+ owner.close();
410
+ }
411
+ });
412
+ for (const change of ['close', 'abort', 'peer', 'expiry', 'policy']) {
413
+ test(`bounded setup retains ownership but denies protected effects after ${change}`, async () => {
414
+ const f = fixture();
415
+ let release;
416
+ let effects = 0;
417
+ let executionSignal;
418
+ const finish = new Promise(done => { release = done; });
419
+ const owner = createCodexSetupAdmission({ ...f.input, responseWaitMs: 10,
420
+ execute: async (_intent, signal, current) => {
421
+ executionSignal = signal;
422
+ await finish;
423
+ if (!await current())
424
+ return { state: 'unconfirmed', code: 'setup_execution_unconfirmed' };
425
+ effects++;
426
+ return { state: 'completed', readinessReceiptId: id(7) };
427
+ } });
428
+ try {
429
+ const result = await owner.handler(f.params, { signal: f.signal.signal });
430
+ assert.equal(JSON.parse(result.contentItems[0].text).code, 'codex_setup_in_progress');
431
+ assert.equal(owner.pending, true);
432
+ assert.ok(executionSignal);
433
+ if (change === 'close')
434
+ owner.close();
435
+ if (change === 'abort')
436
+ f.signal.abort();
437
+ if (change === 'peer')
438
+ f.mode('peer');
439
+ if (change === 'expiry')
440
+ f.time(Date.parse(intent.expiresAt));
441
+ if (change === 'policy')
442
+ f.qualify(false);
443
+ if (change === 'close' || change === 'abort')
444
+ assert.equal(executionSignal.aborted, true);
445
+ let settled = false;
446
+ const observed = owner.settled.then(() => { settled = true; });
447
+ await new Promise(done => setTimeout(done, 20));
448
+ assert.equal(settled, false, 'a cancellation signal must not claim execution settlement');
449
+ assert.equal(owner.pending, true);
450
+ assert.equal(effects, 0);
451
+ release();
452
+ await observed;
453
+ assert.equal(owner.pending, false);
454
+ assert.equal(effects, 0);
455
+ const after = await owner.handler({ ...f.params, callId: 'after_change' }, { signal: f.signal.signal });
456
+ assert.equal(after.success, false);
457
+ assert.equal(JSON.stringify(after).includes('readinessReceiptId'), false);
458
+ }
459
+ finally {
460
+ owner.close();
461
+ release();
462
+ await owner.settled;
463
+ }
464
+ });
465
+ }
466
+ test('slow host qualification returns bounded status and cannot admit execution after close', async () => {
467
+ const f = fixture();
468
+ let release;
469
+ const qualified = new Promise(done => { release = () => done(true); });
470
+ const owner = createCodexSetupAdmission({ ...f.input, responseWaitMs: 10, qualifyHost: async () => qualified });
471
+ try {
472
+ const result = await owner.handler(f.params, { signal: f.signal.signal });
473
+ assert.equal(JSON.parse(result.contentItems[0].text).code, 'codex_setup_in_progress');
474
+ assert.equal(owner.pending, true);
475
+ assert.equal(f.claims, 0);
476
+ assert.equal(f.calls, 0);
477
+ owner.close();
478
+ release();
479
+ await owner.settled;
480
+ assert.equal(f.claims, 0);
481
+ assert.equal(f.calls, 0);
482
+ assert.equal(owner.pending, false);
483
+ }
484
+ finally {
485
+ owner.close();
486
+ release();
487
+ await owner.settled;
488
+ }
489
+ });
490
+ test('bounded status withholds readiness while independent verification is pending', async () => {
491
+ const f = fixture();
492
+ let release;
493
+ const verified = new Promise(done => { release = () => done(true); });
494
+ let checks = 0;
495
+ const owner = createCodexSetupAdmission({ ...f.input, responseWaitMs: 10,
496
+ verifyReadiness: async () => { checks++; return verified; } });
497
+ try {
498
+ const result = await owner.handler(f.params, { signal: f.signal.signal });
499
+ assert.equal(JSON.parse(result.contentItems[0].text).code, 'codex_setup_in_progress');
500
+ assert.equal(JSON.stringify(result).includes('readinessReceiptId'), false);
501
+ assert.equal(f.calls, 1);
502
+ assert.equal(checks, 1);
503
+ assert.equal(owner.pending, true);
504
+ release();
505
+ await owner.settled;
506
+ assert.equal((await owner.handler({ ...f.params, callId: 'verified_status' }, { signal: f.signal.signal })).success, true);
507
+ assert.equal(f.calls, 1);
508
+ assert.equal(checks, 2);
509
+ }
510
+ finally {
511
+ owner.close();
512
+ release();
513
+ await owner.settled;
514
+ }
515
+ });
516
+ test('host response budget is bounded and cannot be selected by model arguments', async () => {
517
+ for (const responseWaitMs of [0, -1, 0.5, 900001, Number.NaN]) {
518
+ const f = fixture();
519
+ assert.throws(() => createCodexSetupAdmission({ ...f.input, responseWaitMs }), /^Error: codex_setup_intent_invalid$/);
520
+ assert.equal(f.calls, 0);
521
+ assert.equal(f.claims, 0);
522
+ }
523
+ const f = fixture();
524
+ const owner = createCodexSetupAdmission(f.input);
525
+ assert.equal((await owner.handler({ ...f.params, arguments: { ...f.params.arguments, responseWaitMs: 5000 } }, { signal: f.signal.signal })).success, false);
526
+ assert.equal(f.calls, 0);
527
+ assert.equal(f.claims, 0);
528
+ owner.close();
529
+ });
530
+ test('setup boundary refuses getters, symbols and hidden fields without invoking accessors', async () => {
531
+ let getters = 0;
532
+ const f = fixture();
533
+ const owner = createCodexSetupAdmission(f.input);
534
+ const args = { get operationId() { getters++; return id(1); }, setupReference: id(2) };
535
+ assert.equal((await owner.handler({ ...f.params, arguments: args }, { signal: f.signal.signal })).success, false);
536
+ const request = { ...f.params, get arguments() { getters++; return f.params.arguments; } };
537
+ assert.equal((await owner.handler(request, { signal: f.signal.signal })).success, false);
538
+ assert.equal(f.claims, 0);
539
+ assert.equal(f.calls, 0);
540
+ owner.close();
541
+ for (const result of [
542
+ { get state() { getters++; return 'completed'; }, readinessReceiptId: id(7) },
543
+ { state: 'completed', readinessReceiptId: id(7), [Symbol('private')]: 'private-canary' },
544
+ Object.defineProperty({ state: 'completed', readinessReceiptId: id(7) }, 'private', { value: 'private-canary' }),
545
+ ]) {
546
+ const g = fixture();
547
+ const gate = createCodexSetupAdmission({ ...g.input, execute: async () => result });
548
+ const response = await gate.handler(g.params, { signal: g.signal.signal });
549
+ assert.equal(response.success, false);
550
+ assert.equal(JSON.stringify(response).includes('private-canary'), false);
551
+ gate.close();
552
+ await gate.settled;
553
+ }
554
+ assert.equal(getters, 0);
555
+ });
556
+ test('missing or foreign cancellation contexts fail closed without throwing or claiming a lease', async () => {
557
+ for (const context of [{}, { signal: 'private-context-canary' }]) {
558
+ const f = fixture();
559
+ const owner = createCodexSetupAdmission(f.input);
560
+ const result = await owner.handler(f.params, context);
561
+ assert.equal(JSON.parse(result.contentItems[0].text).code, 'codex_setup_not_authorized');
562
+ assert.equal(JSON.stringify(result).includes('private-context-canary'), false);
563
+ assert.equal(f.claims, 0);
564
+ assert.equal(f.calls, 0);
565
+ owner.close();
566
+ await owner.settled;
567
+ }
568
+ });
569
+ test('policy revoked during independent readiness verification cannot disclose completion', async () => {
570
+ const f = fixture();
571
+ const owner = createCodexSetupAdmission({ ...f.input, verifyReadiness: async () => { f.qualify(false); return true; } });
572
+ const result = await owner.handler(f.params, { signal: f.signal.signal });
573
+ assert.equal(result.success, false);
574
+ assert.equal(JSON.stringify(result).includes('readinessReceiptId'), false);
575
+ owner.close();
576
+ await owner.settled;
577
+ });
578
+ //# sourceMappingURL=codexSetupAdmission.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codexSetupAdmission.test.js","sourceRoot":"","sources":["../src/codexSetupAdmission.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codexSetupChildProvider.test.d.ts.map