spawnfile 0.1.13 → 0.1.17

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 (950) hide show
  1. package/README.md +61 -121
  2. package/dist/audit/auditCli.d.ts +19 -0
  3. package/dist/audit/auditCli.js +63 -0
  4. package/dist/audit/checks.d.ts +100 -0
  5. package/dist/audit/checks.js +279 -0
  6. package/dist/audit/checksShared.d.ts +74 -0
  7. package/dist/audit/checksShared.js +37 -0
  8. package/dist/audit/generateAudit.d.ts +19 -0
  9. package/dist/audit/generateAudit.js +122 -0
  10. package/dist/audit/index.d.ts +4 -0
  11. package/dist/audit/index.js +4 -0
  12. package/dist/audit/readAudit.d.ts +50 -0
  13. package/dist/audit/readAudit.js +59 -0
  14. package/dist/audit/types.d.ts +40 -0
  15. package/dist/audit/types.js +8 -0
  16. package/dist/auth/credentialEnvFile.d.ts +11 -0
  17. package/dist/auth/credentialEnvFile.js +60 -0
  18. package/dist/auth/credentialProvisioning.d.ts +15 -0
  19. package/dist/auth/credentialProvisioning.js +75 -0
  20. package/dist/auth/credentialProvisioningReceipt.d.ts +28 -0
  21. package/dist/auth/credentialProvisioningReceipt.js +70 -0
  22. package/dist/auth/credentialProvisioningRequest.d.ts +51 -0
  23. package/dist/auth/credentialProvisioningRequest.js +169 -0
  24. package/dist/auth/credentialWorldBindings.d.ts +21 -0
  25. package/dist/auth/credentialWorldBindings.js +104 -0
  26. package/dist/auth/importers.d.ts +10 -0
  27. package/dist/auth/importers.js +29 -4
  28. package/dist/auth/index.d.ts +9 -0
  29. package/dist/auth/index.js +8 -0
  30. package/dist/auth/paths.d.ts +12 -1
  31. package/dist/auth/paths.js +21 -0
  32. package/dist/auth/profileStore.js +9 -9
  33. package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
  34. package/dist/auth/targetSecretSourceAuthor.js +52 -0
  35. package/dist/auth/targetSecretSourceFsIdentity.d.ts +40 -0
  36. package/dist/auth/targetSecretSourceFsIdentity.js +42 -0
  37. package/dist/auth/targetSecretSourceFsPublish.d.ts +17 -0
  38. package/dist/auth/targetSecretSourceFsPublish.js +51 -0
  39. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +17 -0
  40. package/dist/auth/targetSecretSourceFsPublishImmutable.js +468 -0
  41. package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
  42. package/dist/auth/targetSecretSourceFsRead.js +189 -0
  43. package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
  44. package/dist/auth/targetSecretSourceGrant.js +99 -0
  45. package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
  46. package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
  47. package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
  48. package/dist/auth/targetSecretSourceLifecycle.js +52 -0
  49. package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
  50. package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
  51. package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
  52. package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
  53. package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
  54. package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
  55. package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
  56. package/dist/auth/targetSecretSourceResolver.js +137 -0
  57. package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
  58. package/dist/auth/targetSecretSourceRevoke.js +92 -0
  59. package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
  60. package/dist/auth/targetSecretSourceRotate.js +121 -0
  61. package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
  62. package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
  63. package/dist/auth/trainingAuth.d.ts +21 -0
  64. package/dist/auth/trainingAuth.js +86 -0
  65. package/dist/auth/types.d.ts +1 -1
  66. package/dist/cli/artifactsCommands.d.ts +27 -0
  67. package/dist/cli/artifactsCommands.js +132 -0
  68. package/dist/cli/authCommands.d.ts +5 -0
  69. package/dist/cli/authCommands.js +230 -0
  70. package/dist/cli/canaryCutoverCommand.d.ts +2 -0
  71. package/dist/cli/canaryCutoverCommand.js +30 -0
  72. package/dist/cli/capabilitiesCommand.d.ts +3 -0
  73. package/dist/cli/capabilitiesCommand.js +12 -0
  74. package/dist/cli/capabilitiesReceipt.d.ts +56 -0
  75. package/dist/cli/capabilitiesReceipt.js +56 -0
  76. package/dist/cli/compileBuildCommands.d.ts +3 -0
  77. package/dist/cli/compileBuildCommands.js +48 -0
  78. package/dist/cli/composedLifecycleContractSet.d.ts +21 -0
  79. package/dist/cli/composedLifecycleContractSet.js +204 -0
  80. package/dist/cli/containerBundleCommand.d.ts +6 -0
  81. package/dist/cli/containerBundleCommand.js +116 -0
  82. package/dist/cli/devCommands.js +2 -0
  83. package/dist/cli/downCommand.d.ts +25 -0
  84. package/dist/cli/downCommand.js +145 -0
  85. package/dist/cli/evidenceExportHelperCommand.d.ts +13 -0
  86. package/dist/cli/evidenceExportHelperCommand.js +51 -0
  87. package/dist/cli/index.js +15 -3
  88. package/dist/cli/lifecycleCommands.d.ts +1 -1
  89. package/dist/cli/lifecycleCommands.js +11 -181
  90. package/dist/cli/lifecycleMachine.d.ts +25 -0
  91. package/dist/cli/lifecycleMachine.js +78 -0
  92. package/dist/cli/lifecyclePlan.d.ts +35 -0
  93. package/dist/cli/lifecyclePlan.js +240 -0
  94. package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
  95. package/dist/cli/lifecyclePlanningCommands.js +30 -0
  96. package/dist/cli/paideiaDelegation.d.ts +17 -0
  97. package/dist/cli/paideiaDelegation.js +210 -0
  98. package/dist/cli/paideiaSupervisor.d.ts +17 -0
  99. package/dist/cli/paideiaSupervisor.js +48 -0
  100. package/dist/cli/productStateCloneCommand.d.ts +2 -0
  101. package/dist/cli/productStateCloneCommand.js +34 -0
  102. package/dist/cli/runCli.d.ts +19 -2
  103. package/dist/cli/runCli.js +58 -74
  104. package/dist/cli/runPublishCommands.d.ts +3 -0
  105. package/dist/cli/runPublishCommands.js +70 -0
  106. package/dist/cli/statusCommand.d.ts +3 -33
  107. package/dist/cli/statusCommand.js +19 -249
  108. package/dist/cli/statusCommandLive.d.ts +20 -0
  109. package/dist/cli/statusCommandLive.js +188 -0
  110. package/dist/cli/statusCommandOptions.d.ts +40 -0
  111. package/dist/cli/statusCommandOptions.js +42 -0
  112. package/dist/cli/targetCliRoute.d.ts +2 -0
  113. package/dist/cli/targetCliRoute.js +30 -0
  114. package/dist/cli/targetCommands.d.ts +30 -0
  115. package/dist/cli/targetCommands.js +227 -0
  116. package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
  117. package/dist/cli/targetComposedPreparationCommand.js +39 -0
  118. package/dist/cli/targetConfigPreparedPlan.d.ts +3 -0
  119. package/dist/cli/targetConfigPreparedPlan.js +74 -0
  120. package/dist/cli/targetConfigResolver.d.ts +3 -0
  121. package/dist/cli/targetConfigResolver.js +111 -0
  122. package/dist/cli/targetConfigResolverCommand.d.ts +6 -0
  123. package/dist/cli/targetConfigResolverCommand.js +43 -0
  124. package/dist/cli/targetConfigResolverContracts.d.ts +56 -0
  125. package/dist/cli/targetConfigResolverContracts.js +30 -0
  126. package/dist/cli/targetConfigResolverDocker.d.ts +4 -0
  127. package/dist/cli/targetConfigResolverDocker.js +47 -0
  128. package/dist/cli/targetConfigResolverValidation.d.ts +10 -0
  129. package/dist/cli/targetConfigResolverValidation.js +94 -0
  130. package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
  131. package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
  132. package/dist/cli/targetDefaultAuthorities.d.ts +55 -0
  133. package/dist/cli/targetDefaultAuthorities.js +213 -0
  134. package/dist/cli/targetDefaultConfig.d.ts +75 -0
  135. package/dist/cli/targetDefaultConfig.js +334 -0
  136. package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
  137. package/dist/cli/targetDefaultConfigStdin.js +221 -0
  138. package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
  139. package/dist/cli/targetDefaultEnvelope.js +13 -0
  140. package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
  141. package/dist/cli/targetDefaultHandlerFactory.js +268 -0
  142. package/dist/cli/targetDefaultHandlers.d.ts +21 -0
  143. package/dist/cli/targetDefaultHandlers.js +72 -0
  144. package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
  145. package/dist/cli/targetDefaultJournalAuthority.js +135 -0
  146. package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
  147. package/dist/cli/targetDefaultWorldClock.js +14 -0
  148. package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
  149. package/dist/cli/targetDefaultWorldQueries.js +11 -0
  150. package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
  151. package/dist/cli/targetDefaultWorldReadiness.js +17 -0
  152. package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
  153. package/dist/cli/targetEvidenceHelperResolution.js +23 -0
  154. package/dist/cli/targetLookupCli.d.ts +3 -0
  155. package/dist/cli/targetLookupCli.js +31 -0
  156. package/dist/cli/targetLookupCommands.d.ts +12 -0
  157. package/dist/cli/targetLookupCommands.js +69 -0
  158. package/dist/cli/targetOperationDispatch.d.ts +58 -0
  159. package/dist/cli/targetOperationDispatch.js +21 -0
  160. package/dist/cli/targetProductionCommands.d.ts +5 -0
  161. package/dist/cli/targetProductionCommands.js +45 -0
  162. package/dist/cli/targetReceiptOutput.d.ts +14 -0
  163. package/dist/cli/targetReceiptOutput.js +21 -0
  164. package/dist/cli/targetRequestFile.d.ts +14 -0
  165. package/dist/cli/targetRequestFile.js +63 -0
  166. package/dist/cli/targetSecretSourceInput.d.ts +28 -0
  167. package/dist/cli/targetSecretSourceInput.js +121 -0
  168. package/dist/cli/targetWorldClockCommand.d.ts +10 -0
  169. package/dist/cli/targetWorldClockCommand.js +42 -0
  170. package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
  171. package/dist/cli/targetWorldReadinessCommand.js +43 -0
  172. package/dist/cli/trainCommand.d.ts +3 -0
  173. package/dist/cli/trainCommand.js +61 -0
  174. package/dist/cli/upCommand.d.ts +3 -0
  175. package/dist/cli/upCommand.js +162 -0
  176. package/dist/cli/upImageCommand.d.ts +11 -0
  177. package/dist/cli/upImageCommand.js +41 -0
  178. package/dist/cli/upLifecycleInvocation.d.ts +41 -0
  179. package/dist/cli/upLifecycleInvocation.js +48 -0
  180. package/dist/cli/upLifecycleRecovery.d.ts +4 -0
  181. package/dist/cli/upLifecycleRecovery.js +197 -0
  182. package/dist/cli/usageCommand.d.ts +40 -0
  183. package/dist/cli/usageCommand.js +284 -0
  184. package/dist/cli/usageCommandLive.d.ts +84 -0
  185. package/dist/cli/usageCommandLive.js +95 -0
  186. package/dist/cli/usageDeploymentSource.d.ts +9 -0
  187. package/dist/cli/usageDeploymentSource.js +22 -0
  188. package/dist/cli/workspaceResourceMigrationCommand.d.ts +8 -0
  189. package/dist/cli/workspaceResourceMigrationCommand.js +36 -0
  190. package/dist/compiler/agentNodeMerge.d.ts +2 -0
  191. package/dist/compiler/agentNodeMerge.js +79 -0
  192. package/dist/compiler/agentSurfaces.js +11 -1
  193. package/dist/compiler/buildCompilePlan.js +17 -0
  194. package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
  195. package/dist/compiler/buildCompilePlanAgent.js +56 -0
  196. package/dist/compiler/buildCompilePlanTeams.d.ts +2 -1
  197. package/dist/compiler/buildCompilePlanTeams.js +9 -1
  198. package/dist/compiler/buildCompilePlanTraversal.js +75 -82
  199. package/dist/compiler/buildProject.d.ts +11 -0
  200. package/dist/compiler/buildProject.js +77 -2
  201. package/dist/compiler/compilePlanHelpers.js +5 -0
  202. package/dist/compiler/compileProject.d.ts +15 -0
  203. package/dist/compiler/compileProject.js +31 -75
  204. package/dist/compiler/compileProjectPolicy.d.ts +5 -0
  205. package/dist/compiler/compileProjectPolicy.js +21 -0
  206. package/dist/compiler/compileProjectReports.d.ts +9 -0
  207. package/dist/compiler/compileProjectReports.js +52 -0
  208. package/dist/compiler/compileProjectSupport.js +9 -0
  209. package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
  210. package/dist/compiler/containerArtifactSummaries.js +138 -0
  211. package/dist/compiler/containerArtifacts.d.ts +12 -0
  212. package/dist/compiler/containerArtifacts.js +180 -127
  213. package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
  214. package/dist/compiler/containerArtifactsPlans.js +54 -124
  215. package/dist/compiler/containerArtifactsRender.d.ts +5 -2
  216. package/dist/compiler/containerArtifactsRender.js +106 -70
  217. package/dist/compiler/containerArtifactsTypes.d.ts +20 -0
  218. package/dist/compiler/containerBackedMountRender.d.ts +56 -0
  219. package/dist/compiler/containerBackedMountRender.js +101 -0
  220. package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
  221. package/dist/compiler/containerConfigEnvRender.js +54 -0
  222. package/dist/compiler/containerDaimonBrokerRender.d.ts +112 -0
  223. package/dist/compiler/containerDaimonBrokerRender.js +191 -0
  224. package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +38 -0
  225. package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +108 -0
  226. package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +172 -0
  227. package/dist/compiler/containerDaimonGrokWorkerRender.js +268 -0
  228. package/dist/compiler/containerDaimonOwnershipGuardRender.d.ts +12 -0
  229. package/dist/compiler/containerDaimonOwnershipGuardRender.js +191 -0
  230. package/dist/compiler/containerDaimonUidEntrypointRender.d.ts +24 -0
  231. package/dist/compiler/containerDaimonUidEntrypointRender.js +297 -0
  232. package/dist/compiler/containerEntrypointRender.d.ts +8 -0
  233. package/dist/compiler/containerEntrypointRender.js +82 -72
  234. package/dist/compiler/containerEntrypointShell.d.ts +5 -0
  235. package/dist/compiler/containerEntrypointShell.js +29 -0
  236. package/dist/compiler/containerPackageOverrides.d.ts +27 -0
  237. package/dist/compiler/containerPackageOverrides.js +63 -0
  238. package/dist/compiler/containerPersistentMounts.d.ts +30 -0
  239. package/dist/compiler/containerPersistentMounts.js +66 -0
  240. package/dist/compiler/containerReadinessPaths.d.ts +1 -0
  241. package/dist/compiler/containerReadinessPaths.js +1 -0
  242. package/dist/compiler/containerRuntimeLinkMaterializer.d.ts +2 -0
  243. package/dist/compiler/containerRuntimeLinkMaterializer.js +12 -0
  244. package/dist/compiler/containerRuntimeReadinessRender.d.ts +7 -0
  245. package/dist/compiler/containerRuntimeReadinessRender.js +40 -0
  246. package/dist/compiler/containerStateOwnershipRender.d.ts +4 -0
  247. package/dist/compiler/containerStateOwnershipRender.js +75 -0
  248. package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
  249. package/dist/compiler/containerTargetPlanResolution.js +97 -0
  250. package/dist/compiler/containerTargetResources.d.ts +22 -1
  251. package/dist/compiler/containerTargetResources.js +94 -2
  252. package/dist/compiler/containerVolumeBootstrap.d.ts +3 -0
  253. package/dist/compiler/containerVolumeBootstrap.js +3 -0
  254. package/dist/compiler/containerWorkspaceResourceRender.js +49 -1
  255. package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
  256. package/dist/compiler/daimonTelemetryArtifacts.js +56 -0
  257. package/dist/compiler/deploymentLineage.d.ts +40 -0
  258. package/dist/compiler/deploymentLineage.js +50 -0
  259. package/dist/compiler/dockerBuildContext.d.ts +16 -0
  260. package/dist/compiler/dockerBuildContext.js +159 -0
  261. package/dist/compiler/dockerBuildSkip.d.ts +30 -0
  262. package/dist/compiler/dockerBuildSkip.js +81 -0
  263. package/dist/compiler/index.d.ts +7 -0
  264. package/dist/compiler/index.js +7 -0
  265. package/dist/compiler/initProject.d.ts +2 -0
  266. package/dist/compiler/initProject.js +39 -1
  267. package/dist/compiler/localMoltnetAuthority.d.ts +64 -0
  268. package/dist/compiler/localMoltnetAuthority.js +177 -0
  269. package/dist/compiler/memoryArtifacts.d.ts +26 -0
  270. package/dist/compiler/memoryArtifacts.js +210 -0
  271. package/dist/compiler/memoryResolution.d.ts +4 -0
  272. package/dist/compiler/memoryResolution.js +147 -0
  273. package/dist/compiler/modelEnv.d.ts +7 -0
  274. package/dist/compiler/modelEnv.js +13 -1
  275. package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
  276. package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
  277. package/dist/compiler/moltnetArtifactPaths.d.ts +31 -0
  278. package/dist/compiler/moltnetArtifactPaths.js +51 -0
  279. package/dist/compiler/moltnetArtifactTypes.d.ts +56 -0
  280. package/dist/compiler/moltnetArtifactTypes.js +1 -0
  281. package/dist/compiler/moltnetArtifacts.d.ts +3 -41
  282. package/dist/compiler/moltnetArtifacts.js +87 -101
  283. package/dist/compiler/moltnetBinaries.d.ts +33 -4
  284. package/dist/compiler/moltnetBinaries.js +173 -26
  285. package/dist/compiler/moltnetClientConfig.js +7 -2
  286. package/dist/compiler/moltnetConfigLowering.d.ts +18 -1
  287. package/dist/compiler/moltnetConfigLowering.js +92 -6
  288. package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
  289. package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
  290. package/dist/compiler/moltnetNodeConfig.js +7 -2
  291. package/dist/compiler/moltnetReleaseAuthority.d.ts +40 -0
  292. package/dist/compiler/moltnetReleaseAuthority.js +102 -0
  293. package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
  294. package/dist/compiler/moltnetReleaseDownload.js +85 -0
  295. package/dist/compiler/moltnetRepresentativeResolution.d.ts +2 -1
  296. package/dist/compiler/moltnetRepresentativeResolution.js +17 -3
  297. package/dist/compiler/moltnetResolution.js +67 -21
  298. package/dist/compiler/moltnetRoomMemberships.js +52 -9
  299. package/dist/compiler/moltnetRoomPolicyCompatibility.d.ts +1 -1
  300. package/dist/compiler/moltnetRoomPolicyCompatibility.js +3 -1
  301. package/dist/compiler/moltnetRuntimeConfig.d.ts +1 -1
  302. package/dist/compiler/moltnetRuntimeConfig.js +22 -2
  303. package/dist/compiler/moltnetServerPlans.d.ts +9 -0
  304. package/dist/compiler/moltnetServerPlans.js +151 -0
  305. package/dist/compiler/organizationExternalParticipants.d.ts +3 -0
  306. package/dist/compiler/organizationExternalParticipants.js +176 -0
  307. package/dist/compiler/organizationIdentity.d.ts +21 -0
  308. package/dist/compiler/organizationIdentity.js +64 -0
  309. package/dist/compiler/organizationIdentityGraph.d.ts +15 -0
  310. package/dist/compiler/organizationIdentityGraph.js +115 -0
  311. package/dist/compiler/organizationReadyEvidence.d.ts +57 -0
  312. package/dist/compiler/organizationReadyEvidence.js +281 -0
  313. package/dist/compiler/projectManifestGraph.d.ts +4 -0
  314. package/dist/compiler/projectManifestGraph.js +24 -0
  315. package/dist/compiler/runProject.d.ts +8 -2
  316. package/dist/compiler/runProject.js +62 -27
  317. package/dist/compiler/runProjectAuth.d.ts +10 -2
  318. package/dist/compiler/runProjectAuth.js +105 -11
  319. package/dist/compiler/runProjectDaimonCodexDocker.d.ts +3 -0
  320. package/dist/compiler/runProjectDaimonCodexDocker.js +36 -0
  321. package/dist/compiler/runProjectDocker.d.ts +11 -0
  322. package/dist/compiler/runProjectDocker.js +64 -16
  323. package/dist/compiler/runProjectDockerDaimonGuards.d.ts +15 -0
  324. package/dist/compiler/runProjectDockerDaimonGuards.js +122 -0
  325. package/dist/compiler/runProjectDockerReservation.d.ts +3 -0
  326. package/dist/compiler/runProjectDockerReservation.js +118 -0
  327. package/dist/compiler/runProjectLifecycle.d.ts +7 -0
  328. package/dist/compiler/runProjectLifecycle.js +40 -0
  329. package/dist/compiler/syncProjectAuth.js +4 -1
  330. package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
  331. package/dist/compiler/teamContextActiveEnvironments.js +255 -0
  332. package/dist/compiler/teamContextSupport.js +32 -40
  333. package/dist/compiler/teamContextTypes.d.ts +2 -0
  334. package/dist/compiler/training/broker/declaration.d.ts +45 -0
  335. package/dist/compiler/training/broker/declaration.js +55 -0
  336. package/dist/compiler/training/broker/entrypoint.d.ts +39 -0
  337. package/dist/compiler/training/broker/entrypoint.js +111 -0
  338. package/dist/compiler/training/broker/index.d.ts +10 -0
  339. package/dist/compiler/training/broker/index.js +10 -0
  340. package/dist/compiler/training/broker/main.d.ts +2 -0
  341. package/dist/compiler/training/broker/main.js +14 -0
  342. package/dist/compiler/training/broker/paths.d.ts +196 -0
  343. package/dist/compiler/training/broker/paths.js +241 -0
  344. package/dist/compiler/training/broker/processes.d.ts +42 -0
  345. package/dist/compiler/training/broker/processes.js +99 -0
  346. package/dist/compiler/training/broker/projection.d.ts +51 -0
  347. package/dist/compiler/training/broker/projection.js +76 -0
  348. package/dist/compiler/training/broker/provisioning.d.ts +87 -0
  349. package/dist/compiler/training/broker/provisioning.js +213 -0
  350. package/dist/compiler/training/broker/receipt.d.ts +77 -0
  351. package/dist/compiler/training/broker/receipt.js +110 -0
  352. package/dist/compiler/training/broker/registration.d.ts +41 -0
  353. package/dist/compiler/training/broker/registration.js +102 -0
  354. package/dist/compiler/training/broker/runtime.d.ts +25 -0
  355. package/dist/compiler/training/broker/runtime.js +173 -0
  356. package/dist/compiler/training/broker/seccompRoutes.d.ts +31 -0
  357. package/dist/compiler/training/broker/seccompRoutes.js +36 -0
  358. package/dist/compiler/training/broker/supervisor.d.ts +109 -0
  359. package/dist/compiler/training/broker/supervisor.js +173 -0
  360. package/dist/compiler/training/container/contract.d.ts +31 -0
  361. package/dist/compiler/training/container/contract.js +33 -0
  362. package/dist/compiler/training/container/index.d.ts +4 -0
  363. package/dist/compiler/training/container/index.js +2 -0
  364. package/dist/compiler/training/container/launch.d.ts +18 -0
  365. package/dist/compiler/training/container/launch.js +173 -0
  366. package/dist/compiler/training/container/prepare.d.ts +8 -0
  367. package/dist/compiler/training/container/prepare.js +80 -0
  368. package/dist/compiler/training/container/process.d.ts +14 -0
  369. package/dist/compiler/training/container/process.js +70 -0
  370. package/dist/compiler/training/container/security.d.ts +36 -0
  371. package/dist/compiler/training/container/security.js +58 -0
  372. package/dist/compiler/training/context.d.ts +7 -0
  373. package/dist/compiler/training/context.js +93 -0
  374. package/dist/compiler/training/contract.d.ts +142 -0
  375. package/dist/compiler/training/contract.js +34 -0
  376. package/dist/compiler/training/index.d.ts +4 -0
  377. package/dist/compiler/training/index.js +3 -0
  378. package/dist/compiler/training/preparation/assets/Dockerfile +98 -0
  379. package/dist/compiler/training/preparation/assets/package-lock.json +3787 -0
  380. package/dist/compiler/training/preparation/broker.d.ts +21 -0
  381. package/dist/compiler/training/preparation/broker.js +43 -0
  382. package/dist/compiler/training/preparation/contextModes.d.ts +12 -0
  383. package/dist/compiler/training/preparation/contextModes.js +38 -0
  384. package/dist/compiler/training/preparation/contract.d.ts +182 -0
  385. package/dist/compiler/training/preparation/contract.js +94 -0
  386. package/dist/compiler/training/preparation/copyAssets.d.ts +1 -0
  387. package/dist/compiler/training/preparation/copyAssets.js +8 -0
  388. package/dist/compiler/training/preparation/daimonParent.d.ts +42 -0
  389. package/dist/compiler/training/preparation/daimonParent.js +114 -0
  390. package/dist/compiler/training/preparation/files.d.ts +25 -0
  391. package/dist/compiler/training/preparation/files.js +85 -0
  392. package/dist/compiler/training/preparation/image.d.ts +28 -0
  393. package/dist/compiler/training/preparation/image.js +102 -0
  394. package/dist/compiler/training/preparation/index.d.ts +3 -0
  395. package/dist/compiler/training/preparation/index.js +2 -0
  396. package/dist/compiler/training/preparation/inputs.d.ts +23 -0
  397. package/dist/compiler/training/preparation/inputs.js +93 -0
  398. package/dist/compiler/training/preparation/prepare.d.ts +33 -0
  399. package/dist/compiler/training/preparation/prepare.js +186 -0
  400. package/dist/compiler/training/preparation/scratch.d.ts +19 -0
  401. package/dist/compiler/training/preparation/scratch.js +48 -0
  402. package/dist/compiler/training/repair/compatibility.d.ts +11 -0
  403. package/dist/compiler/training/repair/compatibility.js +34 -0
  404. package/dist/compiler/training/repair/contract.d.ts +506 -0
  405. package/dist/compiler/training/repair/contract.js +31 -0
  406. package/dist/compiler/training/repair/index.d.ts +3 -0
  407. package/dist/compiler/training/repair/index.js +3 -0
  408. package/dist/compiler/training/repair/prepare.d.ts +230 -0
  409. package/dist/compiler/training/repair/prepare.js +74 -0
  410. package/dist/compiler/training/repair/witness.d.ts +203 -0
  411. package/dist/compiler/training/repair/witness.js +42 -0
  412. package/dist/compiler/types.d.ts +84 -1
  413. package/dist/compiler/upProject.d.ts +31 -1
  414. package/dist/compiler/upProject.js +197 -22
  415. package/dist/compiler/upProjectHandoff.d.ts +62 -0
  416. package/dist/compiler/upProjectHandoff.js +204 -0
  417. package/dist/compiler/upReceipt.d.ts +36 -0
  418. package/dist/compiler/upReceipt.js +127 -0
  419. package/dist/compiler/updateProjectModels.js +43 -60
  420. package/dist/compiler/updateProjectRuntime.js +22 -35
  421. package/dist/compiler/updateProjectSurfaces.js +53 -47
  422. package/dist/compiler/view/types.d.ts +1 -1
  423. package/dist/compiler/workspaceBundleArtifacts.d.ts +3 -0
  424. package/dist/compiler/workspaceBundleArtifacts.js +106 -0
  425. package/dist/compiler/workspaceResources.d.ts +4 -1
  426. package/dist/compiler/workspaceResources.js +12 -7
  427. package/dist/compiler/worldBindings.d.ts +39 -0
  428. package/dist/compiler/worldBindings.js +247 -0
  429. package/dist/compiler/worldBindingsFile.d.ts +5 -0
  430. package/dist/compiler/worldBindingsFile.js +162 -0
  431. package/dist/deployment/artifactsExport.d.ts +49 -0
  432. package/dist/deployment/artifactsExport.js +217 -0
  433. package/dist/deployment/artifactsExportDocker.d.ts +48 -0
  434. package/dist/deployment/artifactsExportDocker.js +91 -0
  435. package/dist/deployment/artifactsExportPlan.d.ts +24 -0
  436. package/dist/deployment/artifactsExportPlan.js +185 -0
  437. package/dist/deployment/artifactsExportTypes.d.ts +50 -0
  438. package/dist/deployment/artifactsExportTypes.js +52 -0
  439. package/dist/deployment/buildImageCacheStore.d.ts +23 -0
  440. package/dist/deployment/buildImageCacheStore.js +54 -0
  441. package/dist/deployment/canaryCutover.d.ts +42 -0
  442. package/dist/deployment/canaryCutover.js +140 -0
  443. package/dist/deployment/candidateDiagnostics.d.ts +15 -0
  444. package/dist/deployment/candidateDiagnostics.js +90 -0
  445. package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
  446. package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
  447. package/dist/deployment/dockerInspect.d.ts +9 -0
  448. package/dist/deployment/dockerInspect.js +24 -1
  449. package/dist/deployment/dockerLabels.d.ts +2 -0
  450. package/dist/deployment/dockerLabels.js +2 -0
  451. package/dist/deployment/dockerLogs.js +5 -10
  452. package/dist/deployment/dockerManager.d.ts +51 -0
  453. package/dist/deployment/dockerManager.js +124 -1
  454. package/dist/deployment/dockerProbeGateway.d.ts +17 -0
  455. package/dist/deployment/dockerProbeGateway.js +80 -6
  456. package/dist/deployment/dockerRecover.js +9 -1
  457. package/dist/deployment/dockerTeardown.d.ts +32 -0
  458. package/dist/deployment/dockerTeardown.js +61 -0
  459. package/dist/deployment/downDeployment.d.ts +39 -0
  460. package/dist/deployment/downDeployment.js +248 -0
  461. package/dist/deployment/downReceiptTypes.d.ts +36 -0
  462. package/dist/deployment/downReceiptTypes.js +45 -0
  463. package/dist/deployment/index.d.ts +20 -0
  464. package/dist/deployment/index.js +21 -0
  465. package/dist/deployment/lifecycleCompletion.d.ts +37 -0
  466. package/dist/deployment/lifecycleCompletion.js +236 -0
  467. package/dist/deployment/lifecycleCompletionContracts.d.ts +224 -0
  468. package/dist/deployment/lifecycleCompletionContracts.js +140 -0
  469. package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
  470. package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
  471. package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
  472. package/dist/deployment/lifecycleCompletionLookup.js +88 -0
  473. package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
  474. package/dist/deployment/lifecycleCompletionOwner.js +31 -0
  475. package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
  476. package/dist/deployment/lifecycleCompletionParsing.js +108 -0
  477. package/dist/deployment/lifecycleCompletionPaths.d.ts +12 -0
  478. package/dist/deployment/lifecycleCompletionPaths.js +19 -0
  479. package/dist/deployment/lifecycleCompletionPublication.d.ts +7 -0
  480. package/dist/deployment/lifecycleCompletionPublication.js +49 -0
  481. package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
  482. package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
  483. package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
  484. package/dist/deployment/lifecycleCompletionRoot.js +243 -0
  485. package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
  486. package/dist/deployment/lifecycleCompletionStore.js +151 -0
  487. package/dist/deployment/lifecycleUpRecords.d.ts +11 -0
  488. package/dist/deployment/lifecycleUpRecords.js +127 -0
  489. package/dist/deployment/native/AGENTS.md +11 -0
  490. package/dist/deployment/native/rename-noreplace-arm64 +0 -0
  491. package/dist/deployment/native/rename-noreplace-arm64.provenance.json +1 -0
  492. package/dist/deployment/native/rename-noreplace-x64 +0 -0
  493. package/dist/deployment/native/rename-noreplace-x64.provenance.json +1 -0
  494. package/dist/deployment/noReplaceActivation.d.ts +17 -0
  495. package/dist/deployment/noReplaceActivation.js +50 -0
  496. package/dist/deployment/organizationHandoffAuthorityFsBudget.d.ts +110 -0
  497. package/dist/deployment/organizationHandoffAuthorityFsBudget.js +156 -0
  498. package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
  499. package/dist/deployment/organizationHandoffAuthorityFsClient.js +187 -0
  500. package/dist/deployment/organizationHandoffAuthorityFsElection.d.ts +21 -0
  501. package/dist/deployment/organizationHandoffAuthorityFsElection.js +57 -0
  502. package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
  503. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +431 -0
  504. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
  505. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
  506. package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.d.ts +1 -0
  507. package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.js +16 -0
  508. package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
  509. package/dist/deployment/organizationHandoffAuthorityStore.js +355 -0
  510. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
  511. package/dist/deployment/organizationHandoffAuthorityTypes.js +149 -0
  512. package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
  513. package/dist/deployment/organizationHandoffTypes.js +80 -0
  514. package/dist/deployment/organizationReady.d.ts +54 -0
  515. package/dist/deployment/organizationReady.js +232 -0
  516. package/dist/deployment/privateArtifactsExport.d.ts +18 -0
  517. package/dist/deployment/privateArtifactsExport.js +80 -0
  518. package/dist/deployment/productStateClone.d.ts +43 -0
  519. package/dist/deployment/productStateClone.js +319 -0
  520. package/dist/deployment/record.d.ts +26 -1
  521. package/dist/deployment/record.js +49 -4
  522. package/dist/deployment/target.d.ts +1 -35
  523. package/dist/deployment/target.js +1 -96
  524. package/dist/deployment/upLifecycleRecoveryState.d.ts +23 -0
  525. package/dist/deployment/upLifecycleRecoveryState.js +12 -0
  526. package/dist/deployment/upReceiptTypes.d.ts +137 -0
  527. package/dist/deployment/upReceiptTypes.js +191 -0
  528. package/dist/deployment/workspaceResourceMigration.d.ts +55 -0
  529. package/dist/deployment/workspaceResourceMigration.js +315 -0
  530. package/dist/dev/project.d.ts +7 -0
  531. package/dist/dev/project.js +24 -9
  532. package/dist/distribution/buildDistributionReport.d.ts +2 -1
  533. package/dist/distribution/buildDistributionReport.js +2 -1
  534. package/dist/distribution/consumeImage.d.ts +2 -0
  535. package/dist/distribution/consumeImage.js +98 -73
  536. package/dist/distribution/consumeImageDaimonDocker.d.ts +3 -0
  537. package/dist/distribution/consumeImageDaimonDocker.js +45 -0
  538. package/dist/distribution/consumeImageLifecycle.d.ts +17 -0
  539. package/dist/distribution/consumeImageLifecycle.js +231 -0
  540. package/dist/distribution/consumeImageSupport.d.ts +12 -0
  541. package/dist/distribution/consumeImageSupport.js +15 -0
  542. package/dist/distribution/distributionReportSchema.d.ts +16 -1
  543. package/dist/distribution/distributionReportSchema.js +21 -3
  544. package/dist/distribution/dockerRunner.d.ts +6 -1
  545. package/dist/distribution/dockerRunner.js +31 -4
  546. package/dist/distribution/imageRuntimeAuth.d.ts +9 -1
  547. package/dist/distribution/imageRuntimeAuth.js +70 -1
  548. package/dist/distribution/index.d.ts +3 -3
  549. package/dist/distribution/index.js +2 -2
  550. package/dist/distribution/preflight.js +5 -1
  551. package/dist/distribution/types.d.ts +21 -1
  552. package/dist/distribution/types.js +4 -0
  553. package/dist/evidenceExportHelper/boundedExecutor.d.ts +3 -0
  554. package/dist/evidenceExportHelper/boundedExecutor.js +33 -0
  555. package/dist/evidenceExportHelper/helperProgram.mjs +156 -0
  556. package/dist/evidenceExportHelper/index.d.ts +4 -0
  557. package/dist/evidenceExportHelper/index.js +4 -0
  558. package/dist/evidenceExportHelper/preparedAuthority.d.ts +64 -0
  559. package/dist/evidenceExportHelper/preparedAuthority.js +228 -0
  560. package/dist/evidenceExportHelper/preparedBuilder.d.ts +10 -0
  561. package/dist/evidenceExportHelper/preparedBuilder.js +183 -0
  562. package/dist/evidenceExportHelper/preparedBuilderTypes.d.ts +19 -0
  563. package/dist/evidenceExportHelper/preparedBuilderTypes.js +1 -0
  564. package/dist/evidenceExportHelper/recipe.d.ts +7 -0
  565. package/dist/evidenceExportHelper/recipe.js +83 -0
  566. package/dist/filesystem/io.d.ts +2 -0
  567. package/dist/filesystem/io.js +16 -1
  568. package/dist/filesystem/paths.js +10 -1
  569. package/dist/ledger/causalConformanceCli.d.ts +1 -0
  570. package/dist/ledger/causalConformanceCli.js +41 -0
  571. package/dist/ledger/causeNamespace.d.ts +8 -0
  572. package/dist/ledger/causeNamespace.js +24 -0
  573. package/dist/ledger/conformance.d.ts +83 -0
  574. package/dist/ledger/conformance.js +259 -0
  575. package/dist/ledger/emitters.d.ts +76 -0
  576. package/dist/ledger/emitters.js +188 -0
  577. package/dist/ledger/index.d.ts +4 -0
  578. package/dist/ledger/index.js +4 -0
  579. package/dist/ledger/principal.d.ts +96 -0
  580. package/dist/ledger/principal.js +121 -0
  581. package/dist/manifest/executionSchemas.d.ts +27 -0
  582. package/dist/manifest/executionSchemas.js +21 -2
  583. package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
  584. package/dist/manifest/externalParticipantSchemas.js +17 -0
  585. package/dist/manifest/index.d.ts +1 -0
  586. package/dist/manifest/index.js +1 -0
  587. package/dist/manifest/inlineAgentMember.d.ts +2 -0
  588. package/dist/manifest/inlineAgentMember.js +9 -0
  589. package/dist/manifest/loadManifest.js +14 -8
  590. package/dist/manifest/mcpSchemas.d.ts +18 -0
  591. package/dist/manifest/mcpSchemas.js +44 -0
  592. package/dist/manifest/memorySchemas.d.ts +245 -0
  593. package/dist/manifest/memorySchemas.js +148 -0
  594. package/dist/manifest/renderSpawnfile.js +22 -131
  595. package/dist/manifest/renderSpawnfileNetworks.js +20 -2
  596. package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
  597. package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
  598. package/dist/manifest/renderSpawnfileWorkspace.js +5 -0
  599. package/dist/manifest/scheduleSchemas.d.ts +3 -1
  600. package/dist/manifest/scheduleSchemas.js +91 -5
  601. package/dist/manifest/schemas.d.ts +2034 -40
  602. package/dist/manifest/schemas.js +82 -33
  603. package/dist/manifest/surfaceSchemas.d.ts +17 -0
  604. package/dist/manifest/surfaceSchemas.js +24 -1
  605. package/dist/manifest/teamNetworkAccessSchemas.d.ts +6 -2
  606. package/dist/manifest/teamNetworkAccessSchemas.js +11 -0
  607. package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
  608. package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
  609. package/dist/manifest/teamNetworkSchemas.d.ts +25 -190
  610. package/dist/manifest/teamNetworkSchemas.js +21 -317
  611. package/dist/manifest/teamNetworkServerSchemas.d.ts +155 -0
  612. package/dist/manifest/teamNetworkServerSchemas.js +215 -0
  613. package/dist/manifest/workspaceSchemas.d.ts +16 -0
  614. package/dist/manifest/workspaceSchemas.js +11 -0
  615. package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
  616. package/dist/ownership/siblingBuildFreshness.js +20 -0
  617. package/dist/report/types.d.ts +173 -1
  618. package/dist/runtime/common.d.ts +63 -1
  619. package/dist/runtime/common.js +88 -3
  620. package/dist/runtime/container.d.ts +28 -1
  621. package/dist/runtime/container.js +78 -29
  622. package/dist/runtime/containerPackageOverrides.d.ts +37 -0
  623. package/dist/runtime/containerPackageOverrides.js +33 -0
  624. package/dist/runtime/daimon/adapter.d.ts +14 -0
  625. package/dist/runtime/daimon/adapter.js +243 -0
  626. package/dist/runtime/daimon/attention.d.ts +8 -0
  627. package/dist/runtime/daimon/attention.js +32 -0
  628. package/dist/runtime/daimon/config.d.ts +25 -0
  629. package/dist/runtime/daimon/config.js +272 -0
  630. package/dist/runtime/daimon/contractManifest.d.ts +295 -0
  631. package/dist/runtime/daimon/contractManifest.js +319 -0
  632. package/dist/runtime/daimon/grokModel.d.ts +19 -0
  633. package/dist/runtime/daimon/grokModel.js +33 -0
  634. package/dist/runtime/daimon/grokWorkerConfigBytes.d.ts +26 -0
  635. package/dist/runtime/daimon/grokWorkerConfigBytes.js +36 -0
  636. package/dist/runtime/daimon/grokWorkerContract.d.ts +22 -0
  637. package/dist/runtime/daimon/grokWorkerContract.js +48 -0
  638. package/dist/runtime/daimon/memory.d.ts +57 -0
  639. package/dist/runtime/daimon/memory.js +125 -0
  640. package/dist/runtime/daimon/runAuth.d.ts +51 -0
  641. package/dist/runtime/daimon/runAuth.js +279 -0
  642. package/dist/runtime/daimon/runtimeIdentity.d.ts +22 -0
  643. package/dist/runtime/daimon/runtimeIdentity.js +22 -0
  644. package/dist/runtime/daimon/scheduleAuthority.d.ts +3 -0
  645. package/dist/runtime/daimon/scheduleAuthority.js +17 -0
  646. package/dist/runtime/index.d.ts +6 -0
  647. package/dist/runtime/index.js +6 -0
  648. package/dist/runtime/install.d.ts +3 -0
  649. package/dist/runtime/install.js +3 -0
  650. package/dist/runtime/localDaimonAuthority.d.ts +11 -0
  651. package/dist/runtime/localDaimonAuthority.js +77 -0
  652. package/dist/runtime/mnemeMcp.d.ts +28 -0
  653. package/dist/runtime/mnemeMcp.js +135 -0
  654. package/dist/runtime/openclaw/adapter.js +17 -6
  655. package/dist/runtime/openclaw/mcp.d.ts +10 -0
  656. package/dist/runtime/openclaw/mcp.js +69 -0
  657. package/dist/runtime/openclaw/runAuth.js +2 -2
  658. package/dist/runtime/openclaw/scaffold.js +1 -1
  659. package/dist/runtime/openclaw/schedules.d.ts +38 -0
  660. package/dist/runtime/openclaw/schedules.js +74 -0
  661. package/dist/runtime/pi/adapter.d.ts +1 -2
  662. package/dist/runtime/pi/adapter.js +87 -58
  663. package/dist/runtime/pi/appActivitySource.js +114 -2
  664. package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
  665. package/dist/runtime/pi/appAgentConfig.js +264 -0
  666. package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
  667. package/dist/runtime/pi/appCliEnginesSource.js +183 -0
  668. package/dist/runtime/pi/appCliSource.d.ts +1 -0
  669. package/dist/runtime/pi/appCliSource.js +353 -0
  670. package/dist/runtime/pi/appControlSource.d.ts +1 -0
  671. package/dist/runtime/pi/appControlSource.js +390 -0
  672. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
  673. package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
  674. package/dist/runtime/pi/appCoreSource.d.ts +4 -1
  675. package/dist/runtime/pi/appCoreSource.js +104 -214
  676. package/dist/runtime/pi/appPreludeSource.js +140 -52
  677. package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
  678. package/dist/runtime/pi/appScheduleSource.js +84 -0
  679. package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
  680. package/dist/runtime/pi/appScriptedEngine.js +42 -0
  681. package/dist/runtime/pi/appSource.d.ts +4 -1
  682. package/dist/runtime/pi/appSource.js +6 -2
  683. package/dist/runtime/pi/appTemplate.d.ts +8 -22
  684. package/dist/runtime/pi/appTemplate.js +9 -126
  685. package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
  686. package/dist/runtime/pi/appTemplateTypes.js +18 -0
  687. package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
  688. package/dist/runtime/pi/appWakeContextSource.js +398 -0
  689. package/dist/runtime/pi/containerTargets.d.ts +4 -0
  690. package/dist/runtime/pi/containerTargets.js +57 -0
  691. package/dist/runtime/pi/runAuth.js +126 -9
  692. package/dist/runtime/pi/testHelpers.d.ts +2 -0
  693. package/dist/runtime/pi/testHelpers.js +40 -0
  694. package/dist/runtime/picoclaw/adapter.js +25 -29
  695. package/dist/runtime/picoclaw/mcp.d.ts +4 -0
  696. package/dist/runtime/picoclaw/mcp.js +43 -0
  697. package/dist/runtime/picoclaw/memory.d.ts +7 -0
  698. package/dist/runtime/picoclaw/memory.js +17 -0
  699. package/dist/runtime/picoclaw/runAuth.js +1 -1
  700. package/dist/runtime/picoclaw/scaffold.js +1 -1
  701. package/dist/runtime/picoclaw/schedules.d.ts +26 -0
  702. package/dist/runtime/picoclaw/schedules.js +62 -3
  703. package/dist/runtime/registry.d.ts +3 -0
  704. package/dist/runtime/registry.js +19 -2
  705. package/dist/runtime/scheduleUtils.d.ts +3 -0
  706. package/dist/runtime/scheduleUtils.js +19 -0
  707. package/dist/runtime/types.d.ts +50 -2
  708. package/dist/runtime/usageLedger.d.ts +158 -0
  709. package/dist/runtime/usageLedger.js +269 -0
  710. package/dist/runtime/usageLedgerRead.d.ts +48 -0
  711. package/dist/runtime/usageLedgerRead.js +102 -0
  712. package/dist/runtime/usageRequestLedger.d.ts +42 -0
  713. package/dist/runtime/usageRequestLedger.js +72 -0
  714. package/dist/shared/daimonCodexDocker.d.ts +32 -0
  715. package/dist/shared/daimonCodexDocker.js +120 -0
  716. package/dist/shared/daimonGrokSeccompProfile.d.ts +10 -0
  717. package/dist/shared/daimonGrokSeccompProfile.js +11 -0
  718. package/dist/shared/errors.d.ts +1 -1
  719. package/dist/shared/errors.js +2 -2
  720. package/dist/shared/index.d.ts +3 -0
  721. package/dist/shared/index.js +3 -0
  722. package/dist/shared/redaction.d.ts +2 -0
  723. package/dist/shared/redaction.js +10 -0
  724. package/dist/shared/types.d.ts +1 -1
  725. package/dist/shared/volumeNames.d.ts +6 -0
  726. package/dist/shared/volumeNames.js +14 -0
  727. package/dist/status/buildStatus.d.ts +1 -0
  728. package/dist/status/buildStatus.js +2 -0
  729. package/dist/status/compileReport.d.ts +22 -0
  730. package/dist/status/compileReport.js +16 -2
  731. package/dist/status/compiledProbeCollection.d.ts +21 -0
  732. package/dist/status/compiledProbeCollection.js +27 -0
  733. package/dist/status/imageStatusReport.js +6 -0
  734. package/dist/status/index.d.ts +3 -0
  735. package/dist/status/index.js +3 -0
  736. package/dist/status/lifecycleProbes.d.ts +19 -0
  737. package/dist/status/lifecycleProbes.js +174 -0
  738. package/dist/status/moltnetProbes.d.ts +7 -8
  739. package/dist/status/moltnetProbes.js +27 -198
  740. package/dist/status/moltnetWiringProbes.d.ts +19 -0
  741. package/dist/status/moltnetWiringProbes.js +178 -0
  742. package/dist/target/cleanupRun.d.ts +41 -0
  743. package/dist/target/cleanupRun.js +139 -0
  744. package/dist/target/cleanupRunDocker.d.ts +16 -0
  745. package/dist/target/cleanupRunDocker.js +66 -0
  746. package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
  747. package/dist/target/cleanupRunDockerPreflight.js +224 -0
  748. package/dist/target/composedPreparation.d.ts +205 -0
  749. package/dist/target/composedPreparation.js +223 -0
  750. package/dist/target/containerBundle.d.ts +82 -0
  751. package/dist/target/containerBundle.js +243 -0
  752. package/dist/target/containerBundleArchive.d.ts +31 -0
  753. package/dist/target/containerBundleArchive.js +140 -0
  754. package/dist/target/containerBundleAuthority.d.ts +25 -0
  755. package/dist/target/containerBundleAuthority.js +65 -0
  756. package/dist/target/containerBundleContracts.d.ts +114 -0
  757. package/dist/target/containerBundleContracts.js +173 -0
  758. package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
  759. package/dist/target/containerBundleFilesystemStore.js +247 -0
  760. package/dist/target/containerBundlePolicy.d.ts +33 -0
  761. package/dist/target/containerBundlePolicy.js +64 -0
  762. package/dist/target/containerBundleStore.d.ts +127 -0
  763. package/dist/target/containerBundleStore.js +284 -0
  764. package/dist/target/contracts.d.ts +538 -0
  765. package/dist/target/contracts.js +373 -0
  766. package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
  767. package/dist/target/dockerArtifactIdentityTypes.js +1 -0
  768. package/dist/target/dockerArtifactInspection.d.ts +40 -0
  769. package/dist/target/dockerArtifactInspection.js +125 -0
  770. package/dist/target/dockerArtifacts.d.ts +21 -0
  771. package/dist/target/dockerArtifacts.js +110 -0
  772. package/dist/target/dockerArtifactsProvider.d.ts +41 -0
  773. package/dist/target/dockerArtifactsProvider.js +476 -0
  774. package/dist/target/dockerBaseImage.d.ts +2 -0
  775. package/dist/target/dockerBaseImage.js +11 -0
  776. package/dist/target/dockerCommandExecutor.d.ts +38 -0
  777. package/dist/target/dockerCommandExecutor.js +251 -0
  778. package/dist/target/dockerCommandExecutorCore.d.ts +35 -0
  779. package/dist/target/dockerCommandExecutorCore.js +275 -0
  780. package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
  781. package/dist/target/dockerContainerBundleBuilder.js +256 -0
  782. package/dist/target/dockerContextSnapshot.d.ts +21 -0
  783. package/dist/target/dockerContextSnapshot.js +158 -0
  784. package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
  785. package/dist/target/dockerEndpointFingerprint.js +9 -0
  786. package/dist/target/dockerPreparedArtifact.d.ts +48 -0
  787. package/dist/target/dockerPreparedArtifact.js +131 -0
  788. package/dist/target/dockerProjectionJson.d.ts +1 -0
  789. package/dist/target/dockerProjectionJson.js +80 -0
  790. package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
  791. package/dist/target/dockerPublicArtifactSnapshot.js +83 -0
  792. package/dist/target/dockerResources.d.ts +26 -0
  793. package/dist/target/dockerResources.js +162 -0
  794. package/dist/target/dockerResourcesProvider.d.ts +44 -0
  795. package/dist/target/dockerResourcesProvider.js +207 -0
  796. package/dist/target/dockerSecrets.d.ts +39 -0
  797. package/dist/target/dockerSecrets.js +249 -0
  798. package/dist/target/dockerSecretsAuthority.d.ts +26 -0
  799. package/dist/target/dockerSecretsAuthority.js +216 -0
  800. package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
  801. package/dist/target/dockerSecretsLifecycle.js +133 -0
  802. package/dist/target/dockerSecretsProvider.d.ts +68 -0
  803. package/dist/target/dockerSecretsProvider.js +329 -0
  804. package/dist/target/dockerTarget.d.ts +53 -0
  805. package/dist/target/dockerTarget.js +48 -0
  806. package/dist/target/dockerTargetBinding.d.ts +13 -0
  807. package/dist/target/dockerTargetBinding.js +95 -0
  808. package/dist/target/dockerTargetExecFile.d.ts +19 -0
  809. package/dist/target/dockerTargetExecFile.js +194 -0
  810. package/dist/target/dockerWorldClock.d.ts +17 -0
  811. package/dist/target/dockerWorldClock.js +111 -0
  812. package/dist/target/dockerWorldReadiness.d.ts +17 -0
  813. package/dist/target/dockerWorldReadiness.js +119 -0
  814. package/dist/target/dockerWorldService.d.ts +23 -0
  815. package/dist/target/dockerWorldService.js +216 -0
  816. package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
  817. package/dist/target/dockerWorldServiceAuthority.js +182 -0
  818. package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
  819. package/dist/target/dockerWorldServiceLifecycle.js +275 -0
  820. package/dist/target/dockerWorldServiceProvider.d.ts +64 -0
  821. package/dist/target/dockerWorldServiceProvider.js +330 -0
  822. package/dist/target/dockerWorldServiceStore.d.ts +73 -0
  823. package/dist/target/dockerWorldServiceStore.js +367 -0
  824. package/dist/target/evidenceExport.d.ts +57 -0
  825. package/dist/target/evidenceExport.js +527 -0
  826. package/dist/target/evidenceExportArchive.d.ts +10 -0
  827. package/dist/target/evidenceExportArchive.js +302 -0
  828. package/dist/target/evidenceExportContract.d.ts +27 -0
  829. package/dist/target/evidenceExportContract.js +40 -0
  830. package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
  831. package/dist/target/evidenceExportOperationsTestKit.js +312 -0
  832. package/dist/target/evidenceExportProvider.d.ts +87 -0
  833. package/dist/target/evidenceExportProvider.js +197 -0
  834. package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
  835. package/dist/target/evidenceExportPublicationTypes.js +1 -0
  836. package/dist/target/evidenceExportStore.d.ts +70 -0
  837. package/dist/target/evidenceExportStore.js +498 -0
  838. package/dist/target/evidenceExportStorePublication.d.ts +7 -0
  839. package/dist/target/evidenceExportStorePublication.js +395 -0
  840. package/dist/target/handles.d.ts +20 -0
  841. package/dist/target/handles.js +56 -0
  842. package/dist/target/index.d.ts +12 -0
  843. package/dist/target/index.js +11 -0
  844. package/dist/target/journal.d.ts +59 -0
  845. package/dist/target/journal.js +529 -0
  846. package/dist/target/journalFilesystem.d.ts +3 -0
  847. package/dist/target/journalFilesystem.js +111 -0
  848. package/dist/target/journalRoot.d.ts +4 -0
  849. package/dist/target/journalRoot.js +6 -0
  850. package/dist/target/organizationAttachment.d.ts +23 -0
  851. package/dist/target/organizationAttachment.js +263 -0
  852. package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
  853. package/dist/target/organizationAttachmentAuthority.js +161 -0
  854. package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
  855. package/dist/target/organizationAttachmentLifecycle.js +101 -0
  856. package/dist/target/organizationAttachmentProvider.d.ts +76 -0
  857. package/dist/target/organizationAttachmentProvider.js +289 -0
  858. package/dist/target/organizationAttachmentStore.d.ts +51 -0
  859. package/dist/target/organizationAttachmentStore.js +316 -0
  860. package/dist/target/publicArtifactSnapshot.d.ts +72 -0
  861. package/dist/target/publicArtifactSnapshot.js +184 -0
  862. package/dist/target/topologyActivation.d.ts +51 -0
  863. package/dist/target/topologyActivation.js +149 -0
  864. package/dist/target/topologyAttestation.d.ts +37 -0
  865. package/dist/target/topologyAttestation.js +300 -0
  866. package/dist/target/topologyAttestationErrors.d.ts +1 -0
  867. package/dist/target/topologyAttestationErrors.js +1 -0
  868. package/dist/target/worldClock.d.ts +60 -0
  869. package/dist/target/worldClock.js +129 -0
  870. package/dist/target/worldReadiness.d.ts +103 -0
  871. package/dist/target/worldReadiness.js +153 -0
  872. package/examples/README.md +45 -0
  873. package/examples/agent-with-subagents/AGENTS.md +3 -0
  874. package/examples/agent-with-subagents/Spawnfile +30 -0
  875. package/examples/agent-with-subagents/subagents/critic/AGENTS.md +3 -0
  876. package/examples/agent-with-subagents/subagents/critic/Spawnfile +15 -0
  877. package/examples/agent-with-subagents/subagents/researcher/AGENTS.md +3 -0
  878. package/examples/agent-with-subagents/subagents/researcher/Spawnfile +17 -0
  879. package/examples/daimon-org/Spawnfile +68 -0
  880. package/examples/daimon-org/TEAM.md +4 -0
  881. package/examples/daimon-org/agents/mapper/AGENTS.md +4 -0
  882. package/examples/daimon-org/agents/mapper/Spawnfile +37 -0
  883. package/examples/daimon-org/shared/skills/file-note/SKILL.md +9 -0
  884. package/examples/daimon-org/teams/review/Spawnfile +53 -0
  885. package/examples/daimon-org/teams/review/agents/reviewer/AGENTS.md +4 -0
  886. package/examples/daimon-org/teams/review/agents/reviewer/Spawnfile +37 -0
  887. package/examples/daimon-public-host/AGENTS.md +3 -0
  888. package/examples/daimon-public-host/Spawnfile +21 -0
  889. package/examples/distribution-org/Spawnfile +43 -0
  890. package/examples/distribution-org/TEAM.md +4 -0
  891. package/examples/distribution-org/agents/coordinator/AGENTS.md +1 -0
  892. package/examples/distribution-org/agents/coordinator/Spawnfile +20 -0
  893. package/examples/distribution-org/agents/researcher/AGENTS.md +1 -0
  894. package/examples/distribution-org/agents/researcher/Spawnfile +20 -0
  895. package/examples/jungian-daimon-org/Spawnfile +41 -0
  896. package/examples/jungian-daimon-org/TEAM.md +21 -0
  897. package/examples/jungian-daimon-org/teams/luna/Spawnfile +47 -0
  898. package/examples/jungian-daimon-org/teams/luna/TEAM.md +4 -0
  899. package/examples/jungian-daimon-org/teams/luna/agents/animus/AGENTS.md +10 -0
  900. package/examples/jungian-daimon-org/teams/luna/agents/animus/Spawnfile +33 -0
  901. package/examples/jungian-daimon-org/teams/luna/agents/representative/AGENTS.md +21 -0
  902. package/examples/jungian-daimon-org/teams/luna/agents/representative/Spawnfile +30 -0
  903. package/examples/jungian-daimon-org/teams/luna/agents/shadow/AGENTS.md +10 -0
  904. package/examples/jungian-daimon-org/teams/luna/agents/shadow/Spawnfile +33 -0
  905. package/examples/jungian-daimon-org/teams/selene/Spawnfile +47 -0
  906. package/examples/jungian-daimon-org/teams/selene/TEAM.md +4 -0
  907. package/examples/jungian-daimon-org/teams/selene/agents/animus/AGENTS.md +10 -0
  908. package/examples/jungian-daimon-org/teams/selene/agents/animus/Spawnfile +33 -0
  909. package/examples/jungian-daimon-org/teams/selene/agents/representative/AGENTS.md +19 -0
  910. package/examples/jungian-daimon-org/teams/selene/agents/representative/Spawnfile +33 -0
  911. package/examples/jungian-daimon-org/teams/selene/agents/shadow/AGENTS.md +10 -0
  912. package/examples/jungian-daimon-org/teams/selene/agents/shadow/Spawnfile +30 -0
  913. package/examples/mixed-runtime-org/Spawnfile +71 -0
  914. package/examples/mixed-runtime-org/TEAM.md +8 -0
  915. package/examples/mixed-runtime-org/agents/analyst/AGENTS.md +8 -0
  916. package/examples/mixed-runtime-org/agents/analyst/Spawnfile +27 -0
  917. package/examples/mixed-runtime-org/agents/conductor/AGENTS.md +8 -0
  918. package/examples/mixed-runtime-org/agents/conductor/Spawnfile +27 -0
  919. package/examples/mixed-runtime-org/agents/localist/AGENTS.md +7 -0
  920. package/examples/mixed-runtime-org/agents/localist/Spawnfile +50 -0
  921. package/examples/moltnet-team-chat/Spawnfile +43 -0
  922. package/examples/moltnet-team-chat/TEAM.md +5 -0
  923. package/examples/moltnet-team-chat/agents/coordinator/AGENTS.md +9 -0
  924. package/examples/moltnet-team-chat/agents/coordinator/Spawnfile +26 -0
  925. package/examples/moltnet-team-chat/teams/analysis/Spawnfile +23 -0
  926. package/examples/moltnet-team-chat/teams/analysis/TEAM.md +3 -0
  927. package/examples/moltnet-team-chat/teams/analysis/agents/observer/AGENTS.md +5 -0
  928. package/examples/moltnet-team-chat/teams/analysis/agents/observer/Spawnfile +19 -0
  929. package/examples/moltnet-team-chat/teams/analysis/agents/representative/AGENTS.md +5 -0
  930. package/examples/moltnet-team-chat/teams/analysis/agents/representative/Spawnfile +19 -0
  931. package/examples/moltnet-team-chat/teams/field/Spawnfile +41 -0
  932. package/examples/moltnet-team-chat/teams/field/TEAM.md +3 -0
  933. package/examples/moltnet-team-chat/teams/field/agents/observer/AGENTS.md +5 -0
  934. package/examples/moltnet-team-chat/teams/field/agents/observer/Spawnfile +26 -0
  935. package/examples/moltnet-team-chat/teams/field/agents/representative/AGENTS.md +11 -0
  936. package/examples/moltnet-team-chat/teams/field/agents/representative/Spawnfile +26 -0
  937. package/examples/single-agent/AGENTS.md +3 -0
  938. package/examples/single-agent/HEARTBEAT.md +3 -0
  939. package/examples/single-agent/IDENTITY.md +3 -0
  940. package/examples/single-agent/MEMORY.md +3 -0
  941. package/examples/single-agent/SOUL.md +3 -0
  942. package/examples/single-agent/Spawnfile +41 -0
  943. package/examples/single-agent/skills/web_search/SKILL.md +6 -0
  944. package/moltnet-releases.json +21 -0
  945. package/package.json +57 -14
  946. package/runtimes.yaml +11 -23
  947. package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
  948. package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
  949. /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
  950. /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
@@ -0,0 +1,70 @@
1
+ import { type OpaqueTargetHandle, type TargetResourceExportIndex } from "./contracts.js";
2
+ import { EVIDENCE_EXPORT_HELPER_CONTRACT, type EvidenceExportHelper, type EvidenceVolumeAuthority } from "./evidenceExportProvider.js";
3
+ declare const VERSION: "spawnfile.target-evidence-export.private.v1";
4
+ export interface EvidenceExportAdmission {
5
+ readonly evidence_volume: EvidenceVolumeAuthority;
6
+ readonly helper: EvidenceExportHelper;
7
+ readonly helper_contract: typeof EVIDENCE_EXPORT_HELPER_CONTRACT;
8
+ readonly descriptor_digest: string;
9
+ readonly operation_handle: OpaqueTargetHandle;
10
+ readonly request_digest: string;
11
+ readonly run_id: string;
12
+ readonly selected_target: {
13
+ readonly fingerprint: string;
14
+ readonly handle: OpaqueTargetHandle;
15
+ };
16
+ readonly version: typeof VERSION;
17
+ }
18
+ export interface EvidenceExportAuthorityStore {
19
+ bindAdmission(raw: EvidenceExportAdmission): Promise<void>;
20
+ bindDestination(admission: EvidenceExportAdmission, destination: string): Promise<void>;
21
+ bindIndex(admission: EvidenceExportAdmission, index: TargetResourceExportIndex): Promise<string>;
22
+ loadAdmission(operationHandle: OpaqueTargetHandle): Promise<EvidenceExportAdmission>;
23
+ loadIndex(admission: EvidenceExportAdmission): Promise<{
24
+ readonly index: TargetResourceExportIndex;
25
+ readonly bytes: string;
26
+ } | null>;
27
+ requireDestination(admission: EvidenceExportAdmission, destination: string): Promise<void>;
28
+ /**
29
+ * A private, short-lived owner lease for one export operation. This is not a
30
+ * second journal: it has no result state and exists solely to keep separate
31
+ * callers from performing the same Docker/export mutation at once.
32
+ * `null` means a live exact owner exists; callers must return incomplete and
33
+ * retry rather than wait or steal it.
34
+ */
35
+ claimExport(admission: EvidenceExportAdmission): Promise<EvidenceExportClaim | null>;
36
+ releaseExport(admission: EvidenceExportAdmission, claim: EvidenceExportClaim): Promise<void>;
37
+ /** Recovery-only: clear one proven-dead exact claim, but never claim it. */
38
+ clearStaleExportClaim(admission: EvidenceExportAdmission): Promise<boolean>;
39
+ }
40
+ export interface EvidenceExportClaim {
41
+ readonly token: string;
42
+ }
43
+ export interface EvidenceExportAuthorityStoreOptions {
44
+ /** Test seam; production uses signal 0 and treats permission errors as live. */
45
+ readonly isProcessAlive?: (pid: number) => boolean;
46
+ /** Test seam; production tokens are 256-bit random values. */
47
+ readonly createToken?: () => string;
48
+ /** Test-only crash seam for immutable publication: after final hard link and before temp unlink. */
49
+ readonly afterImmutableFinalLinkBeforeTempUnlink?: () => Promise<void>;
50
+ /** Test-only seam after transient immutable read in converged and recovery states. */
51
+ readonly afterImmutableTransientRead?: () => Promise<void>;
52
+ /** Test-only crash seams for the keyed-destination authority publication. */
53
+ readonly beforeDestinationKeyLink?: () => Promise<void>;
54
+ readonly afterDestinationKeyInitialFinalAbsent?: () => Promise<void>;
55
+ readonly afterDestinationKeyLinkBeforePendingUnlink?: () => Promise<void>;
56
+ readonly afterDestinationKeyPendingLinkBeforeTempUnlink?: () => Promise<void>;
57
+ readonly afterDestinationKeyPendingLstatBeforeOpen?: () => Promise<void>;
58
+ readonly afterDestinationKeyPendingLink?: () => Promise<void>;
59
+ readonly afterDestinationKeyRecovered?: () => Promise<void>;
60
+ /** Test-only seam after observing a final destination key snapshot. */
61
+ readonly afterDestinationKeyFinalSnapshot?: () => Promise<void>;
62
+ /** Test-only deterministic claim-recovery interleaving seams. */
63
+ readonly afterStaleClaimObserved?: () => Promise<void>;
64
+ readonly afterRecoveryTombstoneLinked?: () => Promise<void>;
65
+ readonly afterClaimPendingCreated?: () => Promise<void>;
66
+ readonly afterReleaseClaimObserved?: () => Promise<void>;
67
+ readonly onReleaseRecoveryTombstone?: () => Promise<void>;
68
+ }
69
+ export declare const initializeEvidenceExportAuthorityStore: (root: unknown, options?: EvidenceExportAuthorityStoreOptions) => Promise<EvidenceExportAuthorityStore>;
70
+ export {};
@@ -0,0 +1,498 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
3
+ import { constants } from "node:fs";
4
+ import { chmod, link, lstat, mkdir, open, unlink } from "node:fs/promises";
5
+ import path from "node:path";
6
+ import { assertOrdinaryJsonGraph, parseOpaqueTargetHandle, parseRunId, parseTargetResourceExportIndex } from "./contracts.js";
7
+ import { EVIDENCE_EXPORT_ERROR, EVIDENCE_EXPORT_HELPER_CONTRACT, assertExportRun, createEvidenceExportHandle, createEvidenceExportHelper, evidenceReceiptLabels, parseEvidenceVolumeAuthority } from "./evidenceExportProvider.js";
8
+ import { destinationKey, MAX_BYTES, publishImmutable } from "./evidenceExportStorePublication.js";
9
+ const VERSION = "spawnfile.target-evidence-export.private.v1";
10
+ const DIGEST = /^sha256:[a-f0-9]{64}$/u;
11
+ const fail = () => { throw new Error(EVIDENCE_EXPORT_ERROR); };
12
+ const canonical = (value) => {
13
+ assertOrdinaryJsonGraph(value);
14
+ if (Array.isArray(value))
15
+ return `[${value.map(canonical).join(",")}]`;
16
+ if (value !== null && typeof value === "object")
17
+ return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${canonical(value[key])}`).join(",")}}`;
18
+ return JSON.stringify(value);
19
+ };
20
+ const name = (domain, value) => createHash("sha256").update(`spawnfile.target-evidence-export.${domain}.v1\0`).update(value).digest("hex");
21
+ const admission = (raw) => {
22
+ try {
23
+ assertOrdinaryJsonGraph(raw);
24
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
25
+ return fail();
26
+ const value = raw;
27
+ if (Object.keys(value).sort().join("\0") !== "descriptor_digest\0evidence_volume\0helper\0helper_contract\0operation_handle\0request_digest\0run_id\0selected_target\0version" || value.version !== VERSION || value.helper_contract !== EVIDENCE_EXPORT_HELPER_CONTRACT || typeof value.request_digest !== "string" || !DIGEST.test(value.request_digest) || typeof value.descriptor_digest !== "string" || !DIGEST.test(value.descriptor_digest) || typeof value.run_id !== "string" || !value.selected_target || typeof value.selected_target !== "object" || Array.isArray(value.selected_target))
28
+ return fail();
29
+ const target = value.selected_target;
30
+ if (Object.keys(target).sort().join("\0") !== "fingerprint\0handle" || typeof target.fingerprint !== "string" || !/^sha256:[a-f0-9]{32}$/u.test(target.fingerprint))
31
+ return fail();
32
+ const evidenceVolume = parseEvidenceVolumeAuthority(value.evidence_volume);
33
+ const rawHelper = value.helper;
34
+ if (!rawHelper || Object.keys(rawHelper).sort().join("\0") !== "artifactManifestDigest\0image_digest\0image_reference\0result_handle")
35
+ return fail();
36
+ const helper = createEvidenceExportHelper({ artifactManifestDigest: rawHelper.artifactManifestDigest, imageDigest: rawHelper.image_digest, imageReference: rawHelper.image_reference, resultHandle: rawHelper.result_handle });
37
+ const runId = parseRunId(value.run_id);
38
+ const selectedTargetHandle = parseOpaqueTargetHandle(target.handle);
39
+ assertExportRun(evidenceVolume, { runId, selectedTargetHandle });
40
+ return Object.freeze({ descriptor_digest: value.descriptor_digest, evidence_volume: evidenceVolume, helper, helper_contract: EVIDENCE_EXPORT_HELPER_CONTRACT, operation_handle: parseOpaqueTargetHandle(value.operation_handle), request_digest: value.request_digest, run_id: runId, selected_target: Object.freeze({ fingerprint: target.fingerprint, handle: selectedTargetHandle }), version: VERSION });
41
+ }
42
+ catch {
43
+ return fail();
44
+ }
45
+ };
46
+ const checkedRoot = async (raw) => {
47
+ if (typeof raw !== "string" || raw.length < 1 || Buffer.byteLength(raw, "utf8") > 4_096)
48
+ return fail();
49
+ const root = path.resolve(raw);
50
+ const parsed = path.parse(root);
51
+ /* A filesystem root cannot be made into a private per-run authority boundary. */
52
+ if (root === parsed.root)
53
+ return fail();
54
+ let current = parsed.root;
55
+ let createdRoot = false;
56
+ for (const piece of root.slice(current.length).split(path.sep).filter(Boolean)) {
57
+ current = path.join(current, piece);
58
+ let info;
59
+ let created = false;
60
+ try {
61
+ info = await lstat(current);
62
+ }
63
+ catch (error) {
64
+ if (error.code !== "ENOENT")
65
+ return fail();
66
+ try {
67
+ await mkdir(current, { mode: 0o700 });
68
+ created = true;
69
+ }
70
+ catch (mkdirError) {
71
+ if (mkdirError.code !== "EEXIST")
72
+ return fail();
73
+ }
74
+ info = await lstat(current).catch(fail);
75
+ }
76
+ if (!info.isDirectory() || info.isSymbolicLink())
77
+ return fail();
78
+ if (current === root) {
79
+ createdRoot = created;
80
+ if (!createdRoot && (info.uid !== (process.getuid?.() ?? -1) || (info.mode & 0o777) !== 0o700))
81
+ return fail();
82
+ }
83
+ }
84
+ if (createdRoot)
85
+ await chmod(root, 0o700).catch(fail);
86
+ const final = await lstat(root).catch(fail);
87
+ if (!final.isDirectory() || final.isSymbolicLink() || final.uid !== (process.getuid?.() ?? -1) || (final.mode & 0o777) !== 0o700)
88
+ return fail();
89
+ return root;
90
+ };
91
+ const read = async (file, links = [1]) => {
92
+ let info;
93
+ try {
94
+ info = await lstat(file);
95
+ }
96
+ catch (error) {
97
+ if (error.code === "ENOENT")
98
+ return null;
99
+ return fail();
100
+ }
101
+ if (!info.isFile() || info.isSymbolicLink() || !links.includes(info.nlink) || info.uid !== (process.getuid?.() ?? -1) || info.size > MAX_BYTES || (info.mode & 0o777) !== 0o600)
102
+ return fail();
103
+ let handle;
104
+ try {
105
+ handle = await open(file, constants.O_RDONLY | constants.O_NOFOLLOW);
106
+ }
107
+ catch {
108
+ return fail();
109
+ }
110
+ try {
111
+ const current = await handle.stat();
112
+ if (!current.isFile() || !links.includes(current.nlink) || current.uid !== (process.getuid?.() ?? -1) || current.size > MAX_BYTES || (current.mode & 0o777) !== 0o600)
113
+ return fail();
114
+ return await handle.readFile({ encoding: "utf8" });
115
+ }
116
+ catch {
117
+ return fail();
118
+ }
119
+ finally {
120
+ await handle.close().catch(() => undefined);
121
+ }
122
+ };
123
+ const sync = async (directory) => {
124
+ const handle = await open(directory, constants.O_RDONLY);
125
+ try {
126
+ await handle.sync();
127
+ }
128
+ finally {
129
+ await handle.close();
130
+ }
131
+ };
132
+ const destinationCommitment = (key, value, destination) => createHmac("sha256", key).update(`${value.operation_handle}\0${value.request_digest}\0${value.run_id}\0${value.selected_target.handle}\0${value.descriptor_digest}\0${value.evidence_volume.resultHandle}\0${destination}`, "utf8").digest("hex");
133
+ const claimAuthority = (value) => createHash("sha256").update(`spawnfile.target-evidence-export.claim.v1\0${canonical(value)}`, "utf8").digest("hex");
134
+ const claimFile = (root, value) => path.join(root, `${name("claim", value.operation_handle)}.claim.json`);
135
+ const claimPendingFile = (file) => `${file}.pending`;
136
+ const claimRecoveryFile = (file) => `${file}.recovery`;
137
+ const claimRecord = (raw) => {
138
+ try {
139
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
140
+ return fail();
141
+ const value = raw;
142
+ const ownerPid = value.owner_pid;
143
+ if (Object.keys(value).sort().join("\0") !== "authority\0generation\0owner_pid\0token\0version" || value.version !== VERSION || typeof value.authority !== "string" || !/^[a-f0-9]{64}$/u.test(value.authority) || typeof value.generation !== "string" || !/^[a-f0-9]{64}$/u.test(value.generation) || typeof ownerPid !== "number" || !Number.isSafeInteger(ownerPid) || ownerPid < 1 || typeof value.token !== "string" || !/^[a-f0-9]{64}$/u.test(value.token))
144
+ return fail();
145
+ return Object.freeze({ authority: value.authority, generation: value.generation, owner_pid: ownerPid, token: value.token, version: VERSION });
146
+ }
147
+ catch {
148
+ return fail();
149
+ }
150
+ };
151
+ const claimBytes = (value) => canonical(value);
152
+ const liveProcess = (pid) => {
153
+ try {
154
+ process.kill(pid, 0);
155
+ return true;
156
+ }
157
+ catch (error) {
158
+ return error.code === "EPERM";
159
+ }
160
+ };
161
+ const parsedClaim = (bytes) => {
162
+ if (bytes === null)
163
+ return null;
164
+ try {
165
+ const value = claimRecord(JSON.parse(bytes));
166
+ if (claimBytes(value) !== bytes)
167
+ return fail();
168
+ return value;
169
+ }
170
+ catch {
171
+ return fail();
172
+ }
173
+ };
174
+ const snapshotClaim = async (file) => {
175
+ let first;
176
+ try {
177
+ first = await lstat(file);
178
+ }
179
+ catch (error) {
180
+ if (error.code === "ENOENT")
181
+ return null;
182
+ return fail();
183
+ }
184
+ if (!first.isFile() || first.isSymbolicLink() || ![1, 2, 3].includes(first.nlink) || first.uid !== (process.getuid?.() ?? -1) || first.size > MAX_BYTES || (first.mode & 0o777) !== 0o600)
185
+ return fail();
186
+ let handle;
187
+ try {
188
+ handle = await open(file, constants.O_RDONLY | constants.O_NOFOLLOW);
189
+ }
190
+ catch (error) {
191
+ if (error.code === "ENOENT")
192
+ return null;
193
+ return fail();
194
+ }
195
+ try {
196
+ const info = await handle.stat();
197
+ if (!info.isFile() || ![1, 2, 3].includes(info.nlink) || info.uid !== (process.getuid?.() ?? -1) || info.size > MAX_BYTES || (info.mode & 0o777) !== 0o600 || info.dev !== first.dev || info.ino !== first.ino)
198
+ return fail();
199
+ const bytes = await handle.readFile({ encoding: "utf8" });
200
+ const record = parsedClaim(bytes);
201
+ if (record === null)
202
+ return fail();
203
+ return Object.freeze({ bytes, dev: info.dev, ino: info.ino, nlink: info.nlink, path: file, record });
204
+ }
205
+ catch {
206
+ return fail();
207
+ }
208
+ finally {
209
+ await handle.close().catch(() => undefined);
210
+ }
211
+ };
212
+ const sameClaimGeneration = (left, right) => left.dev === right.dev && left.ino === right.ino && left.bytes === right.bytes && left.record.token === right.record.token;
213
+ const claimState = async (file) => {
214
+ const final = await snapshotClaim(file);
215
+ const pending = await snapshotClaim(claimPendingFile(file));
216
+ if (final === null)
217
+ return pending === null ? null : Object.freeze({ final, pending, pendingOnly: true, record: pending.record, target: pending });
218
+ if (pending === null)
219
+ return Object.freeze({ final, pending, pendingOnly: false, record: final.record, target: final });
220
+ if (!sameClaimGeneration(final, pending))
221
+ return fail();
222
+ return Object.freeze({ final, pending, pendingOnly: false, record: final.record, target: final });
223
+ };
224
+ const recoveryTombstone = async (file) => snapshotClaim(claimRecoveryFile(file));
225
+ const removeExactTombstone = async (file, snapshot) => {
226
+ const current = await snapshotClaim(snapshot.path);
227
+ if (current === null || !sameClaimGeneration(current, snapshot))
228
+ return fail();
229
+ await unlink(snapshot.path).catch((error) => { if (error.code !== "ENOENT")
230
+ fail(); });
231
+ await sync(path.dirname(file));
232
+ };
233
+ const hasRecoveryTombstone = async (file) => (await recoveryTombstone(file)) !== null;
234
+ const unlinkExactClaimPath = async (root, snapshot) => {
235
+ const current = await snapshotClaim(snapshot.path);
236
+ if (current === null)
237
+ return false;
238
+ if (!sameClaimGeneration(current, snapshot))
239
+ return false;
240
+ await unlink(snapshot.path).catch((error) => { if (error.code !== "ENOENT")
241
+ fail(); });
242
+ await sync(root);
243
+ return true;
244
+ };
245
+ const writeClaimPending = async (file, bytes) => {
246
+ const directory = path.dirname(file);
247
+ const pending = claimPendingFile(file);
248
+ const temporary = path.join(directory, `.${path.basename(file)}.${process.pid}.${randomUUID()}.tmp`);
249
+ let handle;
250
+ let temporaryIdentity;
251
+ try {
252
+ handle = await open(temporary, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY | constants.O_NOFOLLOW, 0o600);
253
+ await handle.chmod(0o600);
254
+ await handle.writeFile(bytes, "utf8");
255
+ await handle.sync();
256
+ const info = await handle.stat();
257
+ if (!info.isFile() || info.uid !== (process.getuid?.() ?? -1) || (info.mode & 0o777) !== 0o600)
258
+ return fail();
259
+ temporaryIdentity = { dev: info.dev, ino: info.ino };
260
+ await handle.close();
261
+ handle = undefined;
262
+ await sync(directory);
263
+ try {
264
+ await link(temporary, pending);
265
+ await sync(directory);
266
+ }
267
+ catch (error) {
268
+ if (error.code === "EEXIST")
269
+ return null;
270
+ return fail();
271
+ }
272
+ const published = await snapshotClaim(pending);
273
+ if (published === null || !temporaryIdentity || published.dev !== temporaryIdentity.dev || published.ino !== temporaryIdentity.ino || published.bytes !== bytes)
274
+ return fail();
275
+ return published;
276
+ }
277
+ finally {
278
+ if (handle)
279
+ await handle.close().catch(() => undefined);
280
+ await unlink(temporary).catch(() => undefined);
281
+ }
282
+ };
283
+ const publishClaim = async (file, bytes, options) => {
284
+ if (await hasRecoveryTombstone(file))
285
+ return false;
286
+ const state = await claimState(file);
287
+ if (state !== null)
288
+ return false;
289
+ const ownedPending = await writeClaimPending(file, bytes);
290
+ if (ownedPending === null)
291
+ return false;
292
+ const pending = claimPendingFile(file);
293
+ await options?.afterClaimPendingCreated?.();
294
+ /* The pending pathname is shared election state. A recovery or another
295
+ * generation may have removed/replaced ours while a test/process paused;
296
+ * never turn that pathname into a final claim unless it remains our inode. */
297
+ const pendingAfterHook = await snapshotClaim(pending);
298
+ if (pendingAfterHook === null || !sameClaimGeneration(pendingAfterHook, ownedPending))
299
+ return false;
300
+ if (await hasRecoveryTombstone(file)) {
301
+ /* We did not receive a claim, so abandon only our exact pending inode.
302
+ * The tombstone remains as the recovery lock until its owner resolves it;
303
+ * a later claimant therefore cannot enter the release/recovery window. */
304
+ await unlinkExactClaimPath(path.dirname(file), ownedPending);
305
+ return false;
306
+ }
307
+ const beforeFinalLink = await snapshotClaim(pending);
308
+ if (beforeFinalLink === null || !sameClaimGeneration(beforeFinalLink, ownedPending))
309
+ return false;
310
+ try {
311
+ await link(pending, file);
312
+ await sync(path.dirname(file));
313
+ }
314
+ catch (error) {
315
+ const code = error.code;
316
+ if (code !== "EEXIST" && code !== "ENOENT")
317
+ return fail();
318
+ return false;
319
+ }
320
+ /* A crash here is a valid two-link generation. Claim/release/recovery all
321
+ * preserve its inode identity instead of unlinking a path from a stale read. */
322
+ if (!await unlinkExactClaimPath(path.dirname(file), beforeFinalLink))
323
+ return false;
324
+ const final = await snapshotClaim(file);
325
+ return final !== null && final.bytes === bytes;
326
+ };
327
+ class Store {
328
+ #root;
329
+ #options;
330
+ constructor(root, options) { this.#root = root; this.#options = options; }
331
+ async bindAdmission(raw) { const value = admission(raw); await publishImmutable(this.#root, `${name("admission", value.operation_handle)}.admission.json`, canonical(value), false, this.#options); }
332
+ async bindDestination(raw, destination) { const value = admission(raw); if (typeof destination !== "string")
333
+ return fail(); const key = await destinationKey(this.#root, this.#options); await publishImmutable(this.#root, `${name("destination", value.operation_handle)}.destination.json`, JSON.stringify({ commitment: destinationCommitment(key, value, destination), version: VERSION }), false, this.#options); }
334
+ async loadAdmission(operationHandle) { const handle = parseOpaqueTargetHandle(operationHandle); const text = await read(path.join(this.#root, `${name("admission", handle)}.admission.json`)); if (text === null)
335
+ return fail(); try {
336
+ return admission(JSON.parse(text));
337
+ }
338
+ catch {
339
+ return fail();
340
+ } }
341
+ async bindIndex(raw, rawIndex) { const value = admission(raw); const index = validIndex(value, rawIndex); const bytes = canonical(index); await publishImmutable(this.#root, `${name("index", value.operation_handle)}.index.json`, bytes, false, this.#options); return bytes; }
342
+ async loadIndex(raw) { const value = admission(raw); const bytes = await read(path.join(this.#root, `${name("index", value.operation_handle)}.index.json`)); if (bytes === null)
343
+ return null; try {
344
+ const index = validIndex(value, JSON.parse(bytes));
345
+ if (canonical(index) !== bytes)
346
+ return fail();
347
+ return { index, bytes };
348
+ }
349
+ catch {
350
+ return fail();
351
+ } }
352
+ async requireDestination(raw, destination) { const value = admission(raw); if (typeof destination !== "string")
353
+ return fail(); const key = await destinationKey(this.#root, this.#options); const bytes = await read(path.join(this.#root, `${name("destination", value.operation_handle)}.destination.json`)); if (bytes === null)
354
+ return fail(); try {
355
+ const parsed = JSON.parse(bytes);
356
+ if (Object.keys(parsed).sort().join("\0") !== "commitment\0version" || parsed.version !== VERSION || typeof parsed.commitment !== "string" || parsed.commitment !== destinationCommitment(key, value, destination))
357
+ return fail();
358
+ }
359
+ catch {
360
+ return fail();
361
+ } }
362
+ async claimExport(raw) {
363
+ const value = admission(raw);
364
+ const authority = claimAuthority(value);
365
+ const file = claimFile(this.#root, value);
366
+ const token = this.#options?.createToken?.() ?? randomBytes(32).toString("hex");
367
+ if (!/^[a-f0-9]{64}$/u.test(token))
368
+ return fail();
369
+ const candidate = claimBytes({ authority, generation: randomBytes(32).toString("hex"), owner_pid: process.pid, token, version: VERSION });
370
+ if (await publishClaim(file, candidate, this.#options))
371
+ return Object.freeze({ token });
372
+ const current = await claimState(file);
373
+ if (current === null)
374
+ return null;
375
+ if (current.record.authority !== authority)
376
+ return fail();
377
+ /* A normal caller never steals, including from a dead PID. Recovery clears
378
+ * and returns first; a later O_EXCL claim elects exactly one new owner. */
379
+ return null;
380
+ }
381
+ async releaseExport(raw, claim) {
382
+ const value = admission(raw);
383
+ if (!claim || typeof claim.token !== "string" || !/^[a-f0-9]{64}$/u.test(claim.token))
384
+ return fail();
385
+ const file = claimFile(this.#root, value);
386
+ /* Claim release uses the same generation pin as recovery. Without it, a
387
+ * second delayed releaser could unlink a later claimant by pathname after
388
+ * the first release had removed this generation. */
389
+ for (let attempt = 0; attempt < 4; attempt += 1) {
390
+ const current = await claimState(file);
391
+ if (current === null)
392
+ return;
393
+ if (current.record.authority !== claimAuthority(value) || current.record.token !== claim.token || current.record.owner_pid !== process.pid)
394
+ return;
395
+ await this.#options?.afterReleaseClaimObserved?.();
396
+ const tombstone = await recoveryTombstone(file);
397
+ if (tombstone !== null) {
398
+ if (!sameClaimGeneration(tombstone, current.target))
399
+ return fail();
400
+ await this.#options?.onReleaseRecoveryTombstone?.();
401
+ await Promise.resolve();
402
+ continue;
403
+ }
404
+ const recovery = claimRecoveryFile(file);
405
+ try {
406
+ await link(current.target.path, recovery);
407
+ await sync(this.#root);
408
+ }
409
+ catch (error) {
410
+ const code = error.code;
411
+ if (code === "EEXIST" || code === "ENOENT") {
412
+ await Promise.resolve();
413
+ continue;
414
+ }
415
+ return fail();
416
+ }
417
+ const pinned = await recoveryTombstone(file);
418
+ const target = await snapshotClaim(current.target.path);
419
+ if (pinned === null || target === null || !sameClaimGeneration(pinned, current.target) || !sameClaimGeneration(target, current.target)) {
420
+ if (pinned !== null)
421
+ await removeExactTombstone(file, pinned);
422
+ return;
423
+ }
424
+ const final = await snapshotClaim(file);
425
+ const pending = await snapshotClaim(claimPendingFile(file));
426
+ if ((final !== null && !sameClaimGeneration(final, current.target)) || (pending !== null && !sameClaimGeneration(pending, current.target)) || (final === null && pending === null)) {
427
+ await removeExactTombstone(file, pinned);
428
+ return;
429
+ }
430
+ for (const peer of [final, pending]) {
431
+ if (peer !== null && !await unlinkExactClaimPath(this.#root, peer)) {
432
+ await removeExactTombstone(file, pinned);
433
+ return;
434
+ }
435
+ }
436
+ await removeExactTombstone(file, pinned);
437
+ return;
438
+ }
439
+ return fail();
440
+ }
441
+ async clearStaleExportClaim(raw) {
442
+ const value = admission(raw);
443
+ const file = claimFile(this.#root, value);
444
+ if (await hasRecoveryTombstone(file))
445
+ return false;
446
+ const current = await claimState(file);
447
+ if (current === null)
448
+ return false;
449
+ if (current.record.authority !== claimAuthority(value))
450
+ return fail();
451
+ if ((this.#options?.isProcessAlive ?? liveProcess)(current.record.owner_pid))
452
+ return false;
453
+ await this.#options?.afterStaleClaimObserved?.();
454
+ const recovery = claimRecoveryFile(file);
455
+ try {
456
+ await link(current.target.path, recovery);
457
+ await sync(this.#root);
458
+ }
459
+ catch (error) {
460
+ const code = error.code;
461
+ if (code === "EEXIST" || code === "ENOENT")
462
+ return false;
463
+ return fail();
464
+ }
465
+ await this.#options?.afterRecoveryTombstoneLinked?.();
466
+ const tombstone = await recoveryTombstone(file);
467
+ const target = await snapshotClaim(current.target.path);
468
+ /* The hard link pins the exact inode observed above. A delayed recovery
469
+ * that linked a later generation cannot clear it: it can only remove its
470
+ * own pin and report incomplete. */
471
+ if (tombstone === null || target === null || !sameClaimGeneration(tombstone, current.target) || !sameClaimGeneration(target, current.target) || (this.#options?.isProcessAlive ?? liveProcess)(tombstone.record.owner_pid)) {
472
+ if (tombstone !== null)
473
+ await removeExactTombstone(file, tombstone);
474
+ return false;
475
+ }
476
+ const final = await snapshotClaim(file);
477
+ const pending = await snapshotClaim(claimPendingFile(file));
478
+ const pinned = await recoveryTombstone(file);
479
+ if (pinned === null || !sameClaimGeneration(pinned, current.target) || (final !== null && !sameClaimGeneration(final, current.target)) || (pending !== null && !sameClaimGeneration(pending, current.target)) || (final === null && pending === null) || (this.#options?.isProcessAlive ?? liveProcess)(pinned.record.owner_pid)) {
480
+ if (pinned !== null)
481
+ await removeExactTombstone(file, pinned);
482
+ return false;
483
+ }
484
+ /* Tombstone remains linked while every claim name is removed. Therefore a
485
+ * normal claimant cannot publish in the check/unlink window. */
486
+ for (const peer of [final, pending]) {
487
+ if (peer !== null && !await unlinkExactClaimPath(this.#root, peer)) {
488
+ await removeExactTombstone(file, pinned);
489
+ return false;
490
+ }
491
+ }
492
+ await removeExactTombstone(file, pinned);
493
+ return true;
494
+ }
495
+ }
496
+ const validIndex = (admissionValue, raw) => { const index = parseTargetResourceExportIndex(raw); if (index.state !== "exported" || index.run_id !== admissionValue.run_id || index.source.evidence_volume_handle !== admissionValue.evidence_volume.resultHandle || index.source.state !== "preserved" || index.export_handle !== createEvidenceExportHandle({ evidenceVolumeHandle: admissionValue.evidence_volume.resultHandle, operationHandle: admissionValue.operation_handle, requestDigest: admissionValue.request_digest }) || JSON.stringify(index.labels) !== JSON.stringify(evidenceReceiptLabels(admissionValue.evidence_volume)))
497
+ return fail(); return index; };
498
+ export const initializeEvidenceExportAuthorityStore = async (root, options) => new Store(await checkedRoot(root), options);
@@ -0,0 +1,7 @@
1
+ import { Buffer } from "node:buffer";
2
+ import type { EvidenceExportPublicationOptions } from "./evidenceExportPublicationTypes.js";
3
+ export type { EvidenceExportPublicationOptions } from "./evidenceExportPublicationTypes.js";
4
+ export declare const MAX_BYTES = 65536;
5
+ export declare const publishImmutable: (root: string, fileName: string, content: string, joinExisting?: boolean, options?: EvidenceExportPublicationOptions) => Promise<void>;
6
+ declare const destination: (root: string, options?: EvidenceExportPublicationOptions) => Promise<Buffer>;
7
+ export { destination as destinationKey };