@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 @@
1
+ {"version":3,"file":"bootstrapPolicyScope.test.js","sourceRoot":"","sources":["../src/bootstrapPolicyScope.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bootstrapProcessCaller.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapProcessCaller.test.d.ts","sourceRoot":"","sources":["../src/bootstrapProcessCaller.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,262 @@
1
+ import assert from 'node:assert/strict';
2
+ import { execFile, spawn } from 'node:child_process';
3
+ import { mkdtemp, readFile, realpath, rm } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import { dirname, resolve } from 'node:path';
6
+ import test from 'node:test';
7
+ import { compileFunction } from 'node:vm';
8
+ import { promisify } from 'node:util';
9
+ import ts from 'typescript';
10
+ import { assertBootstrapHostSource, captureBootstrapHostChild, currentBootstrapHostScope, drainBootstrapHostChildren, prepareCodexBootstrapHost, runCodexBootstrapHostScope } from './bootstrapHostScope.js';
11
+ import { watchOwnedChild } from './ownedChildLifecycle.js';
12
+ import { createNamedSessionChildOwner, currentNamedSessionChildOwner } from './namedSessionChildOwner.js';
13
+ import { currentAcceptedSetupSessionScope, originalCodexSetupSessionSender } from './codexSetupSessionHandoff.js';
14
+ const id = (n) => `${String(n).padStart(8, '0')}-1111-4111-8111-111111111111`;
15
+ // Actual caller declarations, with synthetic registry/OS readiness boundaries.
16
+ // The OS spawn boundary records exact argv/options, then creates C-only nodes.
17
+ async function fixture(t) {
18
+ const workspace = await realpath(await mkdtemp(resolve(tmpdir(), 'dharma-process-caller-'))), now = Date.now();
19
+ const hash = `sha256:${'a'.repeat(64)}`;
20
+ const prepared = prepareCodexBootstrapHost({ workspace, signal: new AbortController().signal, current: async () => true,
21
+ intent: { schema: 'dharma.codex-setup-intent/v1', operationId: id(1), setupReference: id(2),
22
+ organizationId: 'org_demo', recipientMembershipId: id(3), origin: 'https://hq.example',
23
+ repositoryFingerprint: hash, policyRevision: 'policy-v1', scopeDigest: hash, contractDigest: hash,
24
+ hostContextId: id(4), issuedAt: new Date(now - 1000).toISOString(), expiresAt: new Date(now + 60_000).toISOString() } });
25
+ const entry = resolve(workspace, 'index.js'), policyPath = resolve(workspace, '.dharma', 'approved-policy.json');
26
+ const item = { path: workspace, workspaceId: id(5), organizationId: 'org_demo', repositoryRemoteHash: hash };
27
+ const children = [], serviceChildren = [], effects = [], spawnCalls = [];
28
+ let running = false, preexisting = false, withdrawInSpawn = false, withdrawInStatus = false;
29
+ let container = false, withdrawInBackend = false, withdrawInContainerStart = false;
30
+ let standingService = false;
31
+ let serviceUnavailable = false;
32
+ t.after(async () => {
33
+ await drainBootstrapHostChildren(prepared.scope);
34
+ for (const child of children)
35
+ await watchOwnedChild(child).stop({ graceMs: 1000 });
36
+ for (const child of serviceChildren)
37
+ await watchOwnedChild(child).stop({ graceMs: 1000 });
38
+ await rm(workspace, { recursive: true, force: true });
39
+ });
40
+ const dependencies = {
41
+ currentBootstrapHostScope, captureBootstrapHostChild, assertBootstrapHostSource, currentNamedSessionChildOwner, currentAcceptedSetupSessionScope,
42
+ requestBootstrapNamedSession: async (scope) => originalCodexSetupSessionSender(scope),
43
+ resolve, dirname, Error, Promise, Number, String, Date, VERSION: '0.2.153',
44
+ process: { execPath: process.execPath, env: {}, platform: 'linux' },
45
+ setTimeout: (done) => { queueMicrotask(done); },
46
+ fileURLToPath: () => entry, dharmaHome: () => resolve(workspace, 'synthetic-home'),
47
+ readDeviceConfig: async () => ({ organizationId: 'org_demo', deviceId: id(6) }), registry: async () => [item],
48
+ loadOrganizationPolicy: async () => ({ serverAuthorization: { workspaceId: item.workspaceId } }),
49
+ relayProcessState: async () => running || preexisting ? 'running' : 'stopped',
50
+ relaySupervisorProcessState: async () => running || preexisting ? 'running' : 'stopped',
51
+ relayAutostartStatus: async () => {
52
+ if (withdrawInBackend)
53
+ prepared.scope.close();
54
+ return { backend: container ? 'container-entrypoint' : 'systemd-user' };
55
+ },
56
+ startRelayAutostart: async () => {
57
+ if (serviceUnavailable)
58
+ throw new Error('autostart_conflict: owned service unavailable');
59
+ effects.push(container ? 'container_start' : 'user_service_start');
60
+ running = true;
61
+ if (standingService)
62
+ serviceChildren.push(spawn(process.execPath, ['-e', 'setInterval(() => {}, 1000)'], { cwd: workspace, stdio: 'ignore' }));
63
+ if (withdrawInContainerStart)
64
+ prepared.scope.close();
65
+ },
66
+ spawn: (_command, argv, options) => {
67
+ spawnCalls.push({ argv, options });
68
+ effects.push('spawn');
69
+ const child = spawn(process.execPath, ['-e', 'setInterval(() => {}, 1000)'], { cwd: workspace, stdio: 'ignore' });
70
+ children.push(child);
71
+ running = true;
72
+ if (withdrawInSpawn)
73
+ prepared.scope.close();
74
+ return child;
75
+ },
76
+ readFile: async (path) => {
77
+ if (path.endsWith('supervisor-workspace.json'))
78
+ return JSON.stringify({ pid: 101, version: '0.2.153',
79
+ standardRepositories: true, organizationId: 'org_demo', deviceId: id(6) });
80
+ if (path.endsWith('last-successful-poll.json'))
81
+ return '{}';
82
+ return '101';
83
+ },
84
+ repositoryRelayObservationReady: () => true,
85
+ waitForRelayReadiness: async (input) => ({ state: await input.processState() }),
86
+ required: (flags, name) => flags.get(name),
87
+ namedSessionPaths: () => ({ root: resolve(workspace, 'synthetic-home', 'sessions') }),
88
+ repositoryRoleScope: () => ({ endpointId: id(7), repositoryBindingId: id(8) }),
89
+ readNamedSession: async () => null,
90
+ verifyAgentFabricSkillInstallation: async () => ({}), repositorySharedReady: async () => true,
91
+ verifyNamedSessionVisibleSkill: async () => { },
92
+ saveNamedSession: async () => { effects.push('registration'); },
93
+ namedSessionRequest: async () => {
94
+ effects.push('status');
95
+ if (!running && !preexisting)
96
+ throw new Error('not running');
97
+ if (withdrawInStatus)
98
+ prepared.scope.close();
99
+ return { ok: true, state: 'running' };
100
+ },
101
+ };
102
+ const baseline = process.env.DHARMA_RELAY_CALLER_BASELINE_SHA;
103
+ if (baseline && !/^[a-f0-9]{40}$/.test(baseline))
104
+ throw new Error('relay_caller_baseline_invalid');
105
+ const source = baseline ? (await promisify(execFile)('git', ['show', `${baseline}:packages/cli/src/index.ts`], { cwd: resolve(import.meta.dirname, '../../..'), maxBuffer: 4 * 1024 * 1024 })).stdout
106
+ : await readFile(new URL('../src/index.ts', import.meta.url), 'utf8');
107
+ const ast = ts.createSourceFile('index.ts', source, ts.ScriptTarget.Latest, true);
108
+ async function declaration(name) {
109
+ const declarations = ast.statements.filter(node => ts.isFunctionDeclaration(node) && node.name?.text === name);
110
+ assert.equal(declarations.length, 1);
111
+ const compiled = ts.transpileModule(declarations[0].getText(ast), { compilerOptions: {
112
+ target: ts.ScriptTarget.ES2023, module: ts.ModuleKind.CommonJS
113
+ }, reportDiagnostics: true });
114
+ assert.equal(compiled.diagnostics?.filter(d => d.category === ts.DiagnosticCategory.Error).length, 0);
115
+ return compileFunction(compiled.outputText.replaceAll('import.meta.url', '"file:///synthetic/index.js"')
116
+ + `\nreturn ${name};`, ['exports', ...Object.keys(dependencies)])({}, ...Object.values(dependencies));
117
+ }
118
+ const relay = await declaration('startRelayDaemon'), session = await declaration('namedSessionCommand');
119
+ const call = (kind) => runCodexBootstrapHostScope(prepared.scope, async () => kind === 'relay'
120
+ ? relay(resolve(item.path, '.dharma', 'approved-policy.json'))
121
+ : session('start', new Map([['name', 'implementer'], ['workspace-id', item.workspaceId], ['apply', true]])));
122
+ return { prepared, call, session, children, serviceChildren, effects, spawnCalls, item, workspace, entry, policyPath,
123
+ useStandingService: () => { standingService = true; },
124
+ denyStandingService: () => { serviceUnavailable = true; },
125
+ legacyRelay: () => relay(policyPath),
126
+ preexisting: () => { preexisting = true; }, cancelInSpawn: () => { withdrawInSpawn = true; withdrawInContainerStart = true; },
127
+ cancelInStatus: () => { withdrawInStatus = true; }, useContainer: () => { container = true; },
128
+ cancelInBackend: () => { withdrawInBackend = true; },
129
+ cancelInContainerStart: () => { withdrawInContainerStart = true; } };
130
+ }
131
+ test('actual relay caller refuses container start after setup withdrawal during backend discovery', async (t) => {
132
+ const f = await fixture(t);
133
+ f.useContainer();
134
+ f.cancelInBackend();
135
+ await assert.rejects(f.call('relay'), /codex_setup_host_scope_unavailable/);
136
+ assert.equal(f.effects.includes('container_start'), false);
137
+ assert.equal(f.children.length, 0);
138
+ });
139
+ test('actual relay caller withholds readiness after withdrawal inside admitted container start', async (t) => {
140
+ const f = await fixture(t);
141
+ f.useContainer();
142
+ f.cancelInContainerStart();
143
+ await assert.rejects(f.call('relay'), /codex_setup_host_scope_unavailable/);
144
+ assert.equal(f.effects.filter(effect => effect === 'container_start').length, 1);
145
+ assert.equal(f.children.length, 0, 'a startup request is not adoption of the standing controller');
146
+ });
147
+ test('actual relay caller preserves an already running container-owned service without a start request', async (t) => {
148
+ const f = await fixture(t);
149
+ f.useContainer();
150
+ f.preexisting();
151
+ await f.call('relay');
152
+ assert.equal(f.effects.includes('container_start'), false);
153
+ assert.equal(f.children.length, 0);
154
+ });
155
+ test('actual relay caller requests its verified user service instead of spawning a setup-owned supervisor', async (t) => {
156
+ const f = await fixture(t);
157
+ f.useStandingService();
158
+ await f.call('relay');
159
+ assert.equal(f.effects.filter(effect => effect === 'user_service_start').length, 1);
160
+ assert.equal(f.spawnCalls.length, 0);
161
+ assert.equal(f.children.length, 0);
162
+ assert.equal(f.serviceChildren.length, 1);
163
+ await drainBootstrapHostChildren(f.prepared.scope);
164
+ assert.equal(f.serviceChildren[0].exitCode, null);
165
+ assert.equal(f.serviceChildren[0].signalCode, null);
166
+ // The fixture's service owner, not the setup scope, drains this handle in t.after.
167
+ });
168
+ test('actual relay caller refuses user service start after setup withdrawal during backend discovery', async (t) => {
169
+ const f = await fixture(t);
170
+ f.cancelInBackend();
171
+ await assert.rejects(f.call('relay'), /codex_setup_host_scope_unavailable/);
172
+ assert.equal(f.effects.includes('user_service_start'), false);
173
+ assert.equal(f.spawnCalls.length, 0);
174
+ });
175
+ test('actual relay caller withholds readiness after withdrawal inside admitted user service start', async (t) => {
176
+ const f = await fixture(t);
177
+ f.cancelInContainerStart();
178
+ await assert.rejects(f.call('relay'), /codex_setup_host_scope_unavailable/);
179
+ assert.equal(f.effects.filter(effect => effect === 'user_service_start').length, 1);
180
+ assert.equal(f.children.length, 0);
181
+ assert.equal(f.spawnCalls.length, 0);
182
+ });
183
+ test('actual relay caller refuses an unavailable owned user service without detached fallback', async (t) => {
184
+ const f = await fixture(t);
185
+ f.denyStandingService();
186
+ await assert.rejects(f.call('relay'), /autostart_conflict/);
187
+ assert.equal(f.children.length, 0);
188
+ assert.equal(f.spawnCalls.length, 0);
189
+ assert.equal(f.effects.includes('user_service_start'), false);
190
+ });
191
+ test('actual legacy relay caller retains its unscoped detached supervisor startup', async (t) => {
192
+ const f = await fixture(t);
193
+ await f.legacyRelay();
194
+ assert.equal(f.spawnCalls.length, 1);
195
+ assert.equal(f.spawnCalls[0].options.detached, true);
196
+ assert.equal(f.effects.includes('user_service_start'), false);
197
+ });
198
+ for (const kind of ['relay']) {
199
+ test(`actual ${kind} caller uses its selected lifecycle owner on setup withdrawal`, async (t) => {
200
+ const f = await fixture(t);
201
+ await f.call(kind);
202
+ assert.equal(f.effects.filter(effect => effect === 'user_service_start').length, 1);
203
+ assert.equal(f.children.length, 0);
204
+ assert.equal(f.spawnCalls.length, 0);
205
+ await drainBootstrapHostChildren(f.prepared.scope);
206
+ });
207
+ test(`actual ${kind} caller preserves a preexisting service without acquiring its process`, async (t) => {
208
+ const f = await fixture(t);
209
+ f.preexisting();
210
+ await f.call(kind);
211
+ await drainBootstrapHostChildren(f.prepared.scope);
212
+ assert.equal(f.children.length, 0);
213
+ assert.equal(f.spawnCalls.length, 0);
214
+ });
215
+ test(`actual ${kind} caller refuses completion after cancellation inside its admitted startup`, async (t) => {
216
+ const f = await fixture(t);
217
+ f.cancelInSpawn();
218
+ await assert.rejects(f.call(kind), /^Error: codex_setup_host_scope_unavailable$/);
219
+ await drainBootstrapHostChildren(f.prepared.scope);
220
+ assert.equal(f.children.length, 0);
221
+ assert.equal(f.effects.filter(effect => effect === 'user_service_start').length, 1);
222
+ });
223
+ test(`actual ${kind} caller refuses a foreign checkout before starting a process`, async (t) => {
224
+ const f = await fixture(t);
225
+ f.item.path = resolve(f.workspace, 'foreign');
226
+ await assert.rejects(f.call(kind), /^Error: codex_setup_host_scope_unavailable$/);
227
+ assert.equal(f.prepared.scope.signal.aborted, true);
228
+ assert.equal(f.children.length, 0);
229
+ assert.equal(f.spawnCalls.length, 0);
230
+ });
231
+ }
232
+ test('actual session caller refuses a setup scope without its original private sender and acquires no child', async (t) => {
233
+ const f = await fixture(t);
234
+ await assert.rejects(f.call('session'), /^Error: setup_session_sender_unavailable$/);
235
+ await drainBootstrapHostChildren(f.prepared.scope);
236
+ assert.equal(f.children.length, 0);
237
+ assert.equal(f.spawnCalls.length, 0);
238
+ assert.deepEqual(f.effects, []);
239
+ });
240
+ test('actual session caller binds a fresh attached child to its standing supervisor and drains it at shutdown', async (t) => {
241
+ const f = await fixture(t), signal = new AbortController(), owner = createNamedSessionChildOwner(signal.signal);
242
+ await owner.run(async () => {
243
+ await f.session('start', new Map([['name', 'reviewer'], ['workspace-id', f.item.workspaceId], ['apply', true]]));
244
+ assert.equal(f.children.length, 1);
245
+ assert.equal(f.spawnCalls[0].options.detached, false);
246
+ assert.equal(f.children[0].exitCode, null);
247
+ });
248
+ assert.ok(f.children[0].exitCode !== null || f.children[0].signalCode !== null);
249
+ });
250
+ test('actual session caller does not adopt a preexisting service into standing supervisor ownership', async (t) => {
251
+ const f = await fixture(t);
252
+ f.preexisting();
253
+ await createNamedSessionChildOwner(new AbortController().signal).run(() => f.session('start', new Map([['name', 'reviewer'], ['workspace-id', f.item.workspaceId], ['apply', true]])));
254
+ assert.equal(f.children.length, 0);
255
+ assert.equal(f.spawnCalls.length, 0);
256
+ });
257
+ test('actual session caller refuses overlapping setup and standing-supervisor authority before spawning', async (t) => {
258
+ const f = await fixture(t);
259
+ await assert.rejects(createNamedSessionChildOwner(new AbortController().signal).run(() => f.call('session')), /named_session_child_owner_conflict/);
260
+ assert.equal(f.children.length, 0);
261
+ });
262
+ //# sourceMappingURL=bootstrapProcessCaller.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapProcessCaller.test.js","sourceRoot":"","sources":["../src/bootstrapProcessCaller.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAoB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAC,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAC,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EACrF,0BAA0B,EAAE,yBAAyB,EAAE,0BAA0B,EAAC,MAAM,yBAAyB,CAAC;AACpH,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,4BAA4B,EAAE,6BAA6B,EAAC,MAAM,6BAA6B,CAAC;AACxG,OAAO,EAAC,gCAAgC,EAAE,+BAA+B,EAAC,MAAM,+BAA+B,CAAC;AAEhH,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,8BAA8B,CAAC;AACtF,+EAA+E;AAC/E,+EAA+E;AAC/E,KAAK,UAAU,OAAO,CAAC,CAAyC;IAC9D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/G,MAAM,IAAI,GAAG,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QACpH,MAAM,EAAE,EAAC,MAAM,EAAE,8BAA8B,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;YACxF,cAAc,EAAE,UAAU,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB;YACtF,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI;YACjG,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,EAAC,EAAC,CAAC,CAAC;IAC3H,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACjH,MAAM,IAAI,GAAG,EAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAC,CAAC;IAC3G,MAAM,QAAQ,GAAmB,EAAE,EAAE,eAAe,GAAmB,EAAE,EAAE,OAAO,GAAa,EAAE,EAAE,UAAU,GAA8D,EAAE,CAAC;IAC9K,IAAI,OAAO,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAC5F,IAAI,SAAS,GAAG,KAAK,EAAE,iBAAiB,GAAG,KAAK,EAAE,wBAAwB,GAAG,KAAK,CAAC;IACnF,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,0BAA0B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,QAAQ;YAAE,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QACjF,KAAK,MAAM,KAAK,IAAI,eAAe;YAAE,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QACxF,MAAM,EAAE,CAAC,SAAS,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAA4B;QAC5C,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,gCAAgC;QAChJ,4BAA4B,EAAE,KAAK,EAAE,KAA4B,EAAE,EAAE,CAAC,+BAA+B,CAAC,KAAK,CAAC;QAC5G,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS;QAC1E,OAAO,EAAE,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAC;QACjE,UAAU,EAAE,CAAC,IAAgB,EAAE,EAAE,GAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC;QACzD,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC;QAClF,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QAC3G,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAC,mBAAmB,EAAE,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAC,EAAC,CAAC;QAC5F,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC7E,2BAA2B,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACvF,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAI,iBAAiB;gBAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9C,OAAO,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,cAAc,EAAC,CAAC;QACxE,CAAC;QACD,mBAAmB,EAAE,KAAK,IAAI,EAAE;YAC9B,IAAI,kBAAkB;gBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACzF,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;YACnF,IAAI,eAAe;gBAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAC9D,CAAC,IAAI,EAAE,6BAA6B,CAAC,EAAE,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;YAC7E,IAAI,wBAAwB;gBAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC;QACD,KAAK,EAAE,CAAC,QAAgB,EAAE,IAAc,EAAE,OAAgC,EAAE,EAAE;YAC5E,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,6BAA6B,CAAC,EAAE,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;YAChH,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;YACrC,IAAI,eAAe;gBAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,QAAQ,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS;oBACjG,oBAAoB,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;YAC5E,IAAI,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,+BAA+B,EAAE,GAAG,EAAE,CAAC,IAAI;QAC3C,qBAAqB,EAAE,KAAK,EAAE,KAAwC,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,KAAK,CAAC,YAAY,EAAE,EAAC,CAAC;QAChH,QAAQ,EAAE,CAAC,KAA2B,EAAE,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACxE,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAC,CAAC;QACnF,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC;QAC5E,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAClC,kCAAkC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAC7F,8BAA8B,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC9C,gBAAgB,EAAE,KAAK,IAAI,EAAE,GAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA,CAAC;QAC7D,mBAAmB,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,gBAAgB;gBAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7C,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC;QACtC,CAAC;KACF,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAC9D,IAAI,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnG,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,QAAQ,4BAA4B,CAAC,EAC3G,EAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAC,CAAC,CAAC,CAAC,MAAM;QACpF,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClF,KAAK,UAAU,WAAW,CAAC,IAAY;QACrC,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/G,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAC,eAAe,EAAE;gBACnF,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ;aAAC,EAAE,iBAAiB,EAAE,IAAI,EAAC,CAAC,CAAC;QAC7F,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtG,OAAO,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;cACpG,YAAY,IAAI,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,MAAM,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACxG,MAAM,IAAI,GAAG,CAAC,IAAyB,EAAE,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO;QACjH,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAC9D,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,CAA2B,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzI,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;QACjH,kBAAkB,EAAE,GAAG,EAAE,GAAE,eAAe,GAAG,IAAI,CAAC,CAAA,CAAC;QACnD,mBAAmB,EAAE,GAAG,EAAE,GAAE,kBAAkB,GAAG,IAAI,CAAC,CAAA,CAAC;QACvD,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;QACpC,WAAW,EAAE,GAAG,EAAE,GAAE,WAAW,GAAG,IAAI,CAAC,CAAA,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,GAAE,eAAe,GAAG,IAAI,CAAC,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAA,CAAC;QACzH,cAAc,EAAE,GAAG,EAAE,GAAE,gBAAgB,GAAG,IAAI,CAAC,CAAA,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,GAAE,SAAS,GAAG,IAAI,CAAC,CAAA,CAAC;QACzF,eAAe,EAAE,GAAG,EAAE,GAAE,iBAAiB,GAAG,IAAI,CAAC,CAAA,CAAC;QAClD,sBAAsB,EAAE,GAAG,EAAE,GAAE,wBAAwB,GAAG,IAAI,CAAC,CAAA,CAAC,EAAC,CAAC;AACtE,CAAC;AAED,IAAI,CAAC,6FAA6F,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC5G,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,YAAY,EAAE,CAAC;IAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAClE,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0FAA0F,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACzG,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,YAAY,EAAE,CAAC;IAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACzE,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,8DAA8D,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kGAAkG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACjH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,YAAY,EAAE,CAAC;IAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;IAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qGAAqG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACpH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1C,MAAM,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACrD,mFAAmF;AACrF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gGAAgG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC/G,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAChD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;IAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6FAA6F,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC5G,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACvD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yFAAyF,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACxG,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;IACpD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6EAA6E,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC5F,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5F,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAU,EAAE,CAAC;IACtC,IAAI,CAAC,UAAU,IAAI,+DAA+D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC5F,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,IAAI,uEAAuE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACpG,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,IAAI,2EAA2E,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACxG,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,6CAA6C,CAAC,CAAC;QAClF,MAAM,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,IAAI,8DAA8D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC3F,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1E,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,6CAA6C,CAAC,CAAC;QAClF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,CAAC,uGAAuG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACtH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,2CAA2C,CAAC,CAAC;IACrF,MAAM,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yGAAyG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACxH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,eAAe,EAAE,EAAE,KAAK,GAAG,4BAA4B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChH,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,CAA2B,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3I,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3F,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;AACpF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+FAA+F,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC9G,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,4BAA4B,CAAC,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAC1F,IAAI,GAAG,CAA2B,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mGAAmG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAClH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAC1G,oCAAoC,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bootstrapRegistryCaller.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapRegistryCaller.test.d.ts","sourceRoot":"","sources":["../src/bootstrapRegistryCaller.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
1
+ import assert from 'node:assert/strict';
2
+ import * as fs from 'node:fs/promises';
3
+ import { randomUUID } from 'node:crypto';
4
+ import { tmpdir } from 'node:os';
5
+ import { dirname, resolve } from 'node:path';
6
+ import { runInNewContext } from 'node:vm';
7
+ import test from 'node:test';
8
+ import ts from 'typescript';
9
+ import { currentBootstrapHostScope, runCodexBootstrapHost } from './bootstrapHostScope.js';
10
+ import { writeBootstrapHostJson } from './bootstrapHostFiles.js';
11
+ import { readWorkspaceRegistry } from './workspaceRegistry.js';
12
+ async function fixture(t) {
13
+ const root = await fs.mkdtemp(resolve(tmpdir(), 'dharma-registry-caller-'));
14
+ t.after(() => fs.rm(root, { recursive: true, force: true }));
15
+ const path = resolve(root, 'registry', 'workspaces.json'), now = Date.now(), digest = `sha256:${'a'.repeat(64)}`;
16
+ const id = (n) => `${String(n).padStart(8, '0')}-1111-4111-8111-111111111111`;
17
+ return { root, path, entry: { workspaceId: id(5), organizationId: 'org_demo', path: root },
18
+ input: { workspace: root, current: async () => true, signal: new AbortController().signal,
19
+ intent: { schema: 'dharma.codex-setup-intent/v1', operationId: id(1), setupReference: id(2),
20
+ organizationId: 'org_demo', recipientMembershipId: id(3), origin: 'https://hq.example',
21
+ repositoryFingerprint: digest, policyRevision: 'policy-v1', scopeDigest: digest, contractDigest: digest,
22
+ hostContextId: id(4), issuedAt: new Date(now - 1000).toISOString(), expiresAt: new Date(now + 60_000).toISOString() } } };
23
+ }
24
+ // Parse actual production declarations; inject only their C-only I/O dependencies.
25
+ async function callers(root, path, overrides = {}) {
26
+ const text = await fs.readFile(new URL('../src/index.ts', import.meta.url), 'utf8');
27
+ const ast = ts.createSourceFile('index.ts', text, ts.ScriptTarget.Latest, true);
28
+ const names = ['acquirePidLock', 'registry', 'saveRegistry', 'saveWorkspaceRecord', 'writeJsonAtomic',
29
+ 'withFileLock', 'withRelayStartupMutation', 'withEvidenceLedgerLock'];
30
+ const declarations = names.map(name => {
31
+ const nodes = ast.statements.filter(node => ts.isFunctionDeclaration(node) && node.name?.text === name);
32
+ assert.equal(nodes.length, 1);
33
+ return nodes[0].getText(ast);
34
+ });
35
+ const output = ts.transpileModule(declarations.join('\n'), { compilerOptions: {
36
+ target: ts.ScriptTarget.ES2023, module: ts.ModuleKind.None
37
+ }, reportDiagnostics: true });
38
+ assert.equal(output.diagnostics?.filter(item => item.category === ts.DiagnosticCategory.Error).length, 0);
39
+ return runInNewContext(`${output.outputText}\nif (typeof wrapAcquisition === 'function') acquirePidLock = wrapAcquisition(acquirePidLock);\n({${names.join(',')}})`, { ...fs, dirname, resolve, randomUUID,
40
+ process, Date, setTimeout, structuredClone, exports: {}, currentBootstrapHostScope, readWorkspaceRegistry, writeBootstrapHostJson,
41
+ dharmaHome: () => root, workspaceRegistryPath: () => path, evidenceUploadLedgerPath: () => resolve(root, 'ledger.json'),
42
+ ...overrides }, { timeout: 1000, contextCodeGeneration: { strings: false, wasm: false } });
43
+ }
44
+ test('registry mutation callers refuse a closed owner before directory or lock effects', async (t) => {
45
+ const f = await fixture(t), c = await callers(f.root, f.path);
46
+ for (const name of ['saveRegistry', 'saveWorkspaceRecord']) {
47
+ let outcome = [];
48
+ await assert.rejects(runCodexBootstrapHost(f.input, async ({ scope }) => {
49
+ scope.close();
50
+ outcome = await Promise.allSettled([c[name](name === 'saveRegistry' ? [f.entry] : f.entry)]);
51
+ }), { message: 'codex_setup_host_scope_unavailable' });
52
+ assert.equal(outcome[0]?.status, 'rejected');
53
+ assert.deepEqual(await fs.readdir(f.root), []);
54
+ }
55
+ });
56
+ test('registry mutation caller denies continuation after its actual read withdraws the owner', async (t) => {
57
+ const f = await fixture(t);
58
+ await fs.mkdir(dirname(f.path));
59
+ await fs.writeFile(f.path, '[]\n');
60
+ let writesAfterRead = 0, withdrawn = false;
61
+ await assert.rejects(runCodexBootstrapHost(f.input, async ({ scope }) => {
62
+ const c = await callers(f.root, f.path, {
63
+ readFile: async (path, encoding) => {
64
+ const value = await fs.readFile(path, encoding);
65
+ if (path === f.path) {
66
+ withdrawn = true;
67
+ scope.close();
68
+ }
69
+ return value;
70
+ }, mkdir: async (path, options) => {
71
+ if (withdrawn)
72
+ writesAfterRead++;
73
+ return fs.mkdir(path, options);
74
+ }
75
+ });
76
+ return c.saveWorkspaceRecord(f.entry);
77
+ }), { message: 'codex_setup_host_scope_unavailable' });
78
+ assert.equal(writesAfterRead, 0);
79
+ assert.equal(await fs.readFile(f.path, 'utf8'), '[]\n');
80
+ assert.deepEqual(await fs.readdir(dirname(f.path)), ['workspaces.json']);
81
+ });
82
+ test('registry mutation snapshots the original row before its first asynchronous effect', async (t) => {
83
+ const f = await fixture(t), originalId = f.entry.workspaceId;
84
+ await fs.mkdir(dirname(f.path));
85
+ await fs.writeFile(f.path, '[]\n');
86
+ const c = await callers(f.root, f.path, { readFile: async (path, encoding) => {
87
+ const value = await fs.readFile(path, encoding);
88
+ if (path === f.path)
89
+ f.entry.workspaceId = 'mutated-foreign-row';
90
+ return value;
91
+ } });
92
+ await runCodexBootstrapHost(f.input, () => c.saveWorkspaceRecord(f.entry));
93
+ assert.equal(JSON.parse(await fs.readFile(f.path, 'utf8'))[0].workspaceId, originalId);
94
+ });
95
+ test('registry mutation withholds diagnostics and rejects unsafe input before lock creation', async (t) => {
96
+ const f = await fixture(t), c = await callers(f.root, f.path);
97
+ const entry = Object.defineProperty({ ...f.entry }, 'workspaceId', { get() { throw new Error('private-row-canary'); } });
98
+ await assert.rejects(runCodexBootstrapHost(f.input, () => c.saveWorkspaceRecord(entry)), { message: 'workspace_registry_write_failed' });
99
+ assert.deepEqual(await fs.readdir(f.root), []);
100
+ });
101
+ test('current registry mutation preserves sibling rows and commits the intended row', async (t) => {
102
+ const f = await fixture(t), sibling = { ...f.entry, workspaceId: 'sibling-preserve' };
103
+ await fs.mkdir(dirname(f.path));
104
+ await fs.writeFile(f.path, `${JSON.stringify([sibling])}\n`);
105
+ const c = await callers(f.root, f.path);
106
+ await runCodexBootstrapHost(f.input, () => c.saveWorkspaceRecord(f.entry));
107
+ assert.deepEqual(JSON.parse(await fs.readFile(f.path, 'utf8')), [sibling, f.entry]);
108
+ assert.deepEqual(await fs.readdir(dirname(f.path)), ['workspaces.json']);
109
+ });
110
+ for (const name of ['withFileLock', 'withRelayStartupMutation', 'withEvidenceLedgerLock']) {
111
+ test(`${name} refuses a callback after scope loss at lock handoff and releases its lease`, async (t) => {
112
+ const f = await fixture(t);
113
+ let entered = false;
114
+ await assert.rejects(runCodexBootstrapHost(f.input, async ({ scope }) => {
115
+ const guarded = await callers(f.root, f.path, { wrapAcquisition: (actual) => async (...args) => {
116
+ const release = await actual(...args);
117
+ scope.close();
118
+ return release;
119
+ } });
120
+ const work = async () => { entered = true; };
121
+ return name === 'withFileLock' ? guarded[name](resolve(f.root, 'lock'), work)
122
+ : name === 'withRelayStartupMutation' ? guarded[name](work, f.root) : guarded[name](work);
123
+ }), { message: 'codex_setup_host_scope_unavailable' });
124
+ assert.equal(entered, false);
125
+ assert.deepEqual(await fs.readdir(f.root), []);
126
+ });
127
+ }
128
+ //# sourceMappingURL=bootstrapRegistryCaller.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapRegistryCaller.test.js","sourceRoot":"","sources":["../src/bootstrapRegistryCaller.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bootstrapVaultScope.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapVaultScope.test.d.ts","sourceRoot":"","sources":["../src/bootstrapVaultScope.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,105 @@
1
+ import assert from 'node:assert/strict';
2
+ import { mkdtemp, readFile, rm } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { runInNewContext } from 'node:vm';
6
+ import test from 'node:test';
7
+ import ts from 'typescript';
8
+ import { LocalVault } from '@dharma-ai-labs/agent-fabric-local-vault';
9
+ import { currentBootstrapHostScope, runCodexBootstrapHost } from './bootstrapHostScope.js';
10
+ function input() {
11
+ const id = (n) => `${String(n).padStart(8, '0')}-1111-4111-8111-111111111111`;
12
+ const now = Date.now(), digest = `sha256:${'a'.repeat(64)}`;
13
+ return { workspace: process.cwd(), current: async () => true, signal: new AbortController().signal,
14
+ intent: { schema: 'dharma.codex-setup-intent/v1', operationId: id(1), setupReference: id(2),
15
+ organizationId: 'org_demo', recipientMembershipId: id(3), origin: 'https://hq.example',
16
+ repositoryFingerprint: digest, policyRevision: 'policy-v1', scopeDigest: digest, contractDigest: digest,
17
+ hostContextId: id(4), issuedAt: new Date(now - 1000).toISOString(), expiresAt: new Date(now + 60_000).toISOString() } };
18
+ }
19
+ async function caller(loadVaultModule) {
20
+ const source = await readFile(new URL('../src/index.ts', import.meta.url), 'utf8');
21
+ const ast = ts.createSourceFile('index.ts', source, ts.ScriptTarget.Latest, true);
22
+ const nodes = ast.statements.filter(node => ts.isFunctionDeclaration(node) && node.name?.text === 'openBootstrapVault');
23
+ assert.equal(nodes.length, 1, 'actual CLI scoped open owner missing');
24
+ const result = ts.transpileModule(nodes[0].getText(ast), { compilerOptions: {
25
+ target: ts.ScriptTarget.ES2023, module: ts.ModuleKind.None
26
+ } });
27
+ return runInNewContext(`${result.outputText}\nopenBootstrapVault`, { loadVaultModule, currentBootstrapHostScope }, { timeout: 1000, contextCodeGeneration: { strings: false, wasm: false } });
28
+ }
29
+ test('actual CLI full-vault callsites all use the single scoped owner', async () => {
30
+ const source = await readFile(new URL('../src/index.ts', import.meta.url), 'utf8');
31
+ const ast = ts.createSourceFile('index.ts', source, ts.ScriptTarget.Latest, true);
32
+ const unscoped = [], owned = [];
33
+ function visit(node, owner = '') {
34
+ if (ts.isFunctionDeclaration(node))
35
+ owner = node.name?.text ?? owner;
36
+ if (ts.isCallExpression(node) && node.expression.getText(ast) === 'LocalVault.open' && owner !== 'openBootstrapVault') {
37
+ unscoped.push(owner);
38
+ }
39
+ if (ts.isCallExpression(node) && node.expression.getText(ast) === 'openBootstrapVault')
40
+ owned.push(owner);
41
+ ts.forEachChild(node, child => visit(child, owner));
42
+ }
43
+ visit(ast);
44
+ assert.deepEqual(unscoped, []);
45
+ assert.deepEqual(owned, ['superviseNamedSessions', 'startCodexBootstrapNativeHost', 'capture', 'namedSessionCommand', 'evidenceSync',
46
+ 'processEvidenceRequest', 'syncSignedTaskTrajectory', 'stageSignedTaskTrajectoryRecovery',
47
+ 'finalizeRecoveredSignedTaskTrajectories', 'finalizeRecoveredSignedTaskTrajectories',
48
+ 'finalizeRecoveredSignedTaskTrajectories', 'finalizeRecoveredSignedTaskTrajectories', 'relayWorkspaceLoop']);
49
+ });
50
+ test('actual CLI full-vault owner refuses closed scope before module or key access', async () => {
51
+ let effects = 0;
52
+ const open = await caller(async () => { effects++; throw new Error('private fixture'); });
53
+ await assert.rejects(runCodexBootstrapHost(input(), async ({ scope }) => {
54
+ scope.close();
55
+ await open({ root: 'synthetic-root' });
56
+ }), { message: 'codex_setup_host_scope_unavailable' });
57
+ assert.equal(effects, 0);
58
+ });
59
+ test('actual CLI full-vault owner binds original scope, snapshots options and wipes only owned key', async () => {
60
+ const options = { root: 'synthetic-root', rawLocalDays: 30 }, key = Buffer.alloc(32, 7);
61
+ let keyScope, openScope, observed;
62
+ const f = input();
63
+ const open = await caller(async () => {
64
+ options.root = 'changed-root';
65
+ options.rawLocalDays = 1;
66
+ return { loadOrCreateVaultMasterKey: async (_store, scope) => { keyScope = scope; return key; },
67
+ LocalVault: { open: async (args, scope) => { observed = args; openScope = scope; return { close: async () => { } }; } } };
68
+ });
69
+ await runCodexBootstrapHost(f, async ({ scope }) => {
70
+ await open(options);
71
+ assert.equal(openScope, scope);
72
+ assert.equal(keyScope, scope);
73
+ assert.equal(observed.root, 'synthetic-root');
74
+ assert.equal(observed.rawLocalDays, 30);
75
+ });
76
+ assert.ok(key.equals(Buffer.alloc(32)));
77
+ });
78
+ test('actual CLI full-vault owner closes an acquired vault if returned after withdrawal', async () => {
79
+ let closes = 0;
80
+ await assert.rejects(runCodexBootstrapHost(input(), async ({ scope }) => {
81
+ const open = await caller(async () => ({ loadOrCreateVaultMasterKey: async () => Buffer.alloc(32),
82
+ LocalVault: { open: async () => { scope.close(); return { close: async () => { closes++; } }; } } }));
83
+ await open({ root: 'synthetic-root' });
84
+ }), { message: 'codex_setup_host_scope_unavailable' });
85
+ assert.equal(closes, 1);
86
+ });
87
+ test('actual CLI full-vault owner reaches the real public encrypted vault under the same scope', async (t) => {
88
+ const root = await mkdtemp(join(tmpdir(), 'bootstrap-full-vault-'));
89
+ t.after(() => rm(root, { recursive: true, force: true }));
90
+ const key = Buffer.alloc(32, 11), payload = Buffer.from('synthetic scoped full-vault evidence');
91
+ const open = await caller(async () => ({ LocalVault, loadOrCreateVaultMasterKey: async () => key }));
92
+ await runCodexBootstrapHost(input(), async () => {
93
+ const vault = await open({ root });
94
+ try {
95
+ assert.ok(key.equals(Buffer.alloc(32)));
96
+ const id = await vault.putBlob(payload, 'synthetic');
97
+ assert.deepEqual(await vault.getBlob(id), payload);
98
+ assert.deepEqual(await vault.stats(), { blobs: 1, capsules: 0, sessions: 0 });
99
+ }
100
+ finally {
101
+ await vault.close();
102
+ }
103
+ });
104
+ });
105
+ //# sourceMappingURL=bootstrapVaultScope.test.js.map