spawnfile 0.1.13 → 0.1.14

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 (598) hide show
  1. package/README.md +50 -11
  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/index.d.ts +7 -0
  27. package/dist/auth/index.js +7 -0
  28. package/dist/auth/paths.d.ts +11 -0
  29. package/dist/auth/paths.js +21 -0
  30. package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
  31. package/dist/auth/targetSecretSourceAuthor.js +52 -0
  32. package/dist/auth/targetSecretSourceFsPublish.d.ts +15 -0
  33. package/dist/auth/targetSecretSourceFsPublish.js +49 -0
  34. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +16 -0
  35. package/dist/auth/targetSecretSourceFsPublishImmutable.js +435 -0
  36. package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
  37. package/dist/auth/targetSecretSourceFsRead.js +198 -0
  38. package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
  39. package/dist/auth/targetSecretSourceGrant.js +99 -0
  40. package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
  41. package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
  42. package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
  43. package/dist/auth/targetSecretSourceLifecycle.js +52 -0
  44. package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
  45. package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
  46. package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
  47. package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
  48. package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
  49. package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
  50. package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
  51. package/dist/auth/targetSecretSourceResolver.js +137 -0
  52. package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
  53. package/dist/auth/targetSecretSourceRevoke.js +92 -0
  54. package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
  55. package/dist/auth/targetSecretSourceRotate.js +121 -0
  56. package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
  57. package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
  58. package/dist/cli/artifactsCommands.d.ts +27 -0
  59. package/dist/cli/artifactsCommands.js +132 -0
  60. package/dist/cli/authCommands.d.ts +5 -0
  61. package/dist/cli/authCommands.js +221 -0
  62. package/dist/cli/compileBuildCommands.d.ts +3 -0
  63. package/dist/cli/compileBuildCommands.js +35 -0
  64. package/dist/cli/containerBundleCommand.d.ts +6 -0
  65. package/dist/cli/containerBundleCommand.js +116 -0
  66. package/dist/cli/downCommand.d.ts +25 -0
  67. package/dist/cli/downCommand.js +134 -0
  68. package/dist/cli/index.js +6 -3
  69. package/dist/cli/lifecycleCommands.d.ts +1 -1
  70. package/dist/cli/lifecycleCommands.js +11 -181
  71. package/dist/cli/lifecycleMachine.d.ts +19 -0
  72. package/dist/cli/lifecycleMachine.js +78 -0
  73. package/dist/cli/lifecyclePlan.d.ts +35 -0
  74. package/dist/cli/lifecyclePlan.js +240 -0
  75. package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
  76. package/dist/cli/lifecyclePlanningCommands.js +30 -0
  77. package/dist/cli/runCli.d.ts +9 -2
  78. package/dist/cli/runCli.js +27 -71
  79. package/dist/cli/runPublishCommands.d.ts +3 -0
  80. package/dist/cli/runPublishCommands.js +70 -0
  81. package/dist/cli/statusCommand.d.ts +3 -33
  82. package/dist/cli/statusCommand.js +19 -249
  83. package/dist/cli/statusCommandLive.d.ts +20 -0
  84. package/dist/cli/statusCommandLive.js +188 -0
  85. package/dist/cli/statusCommandOptions.d.ts +40 -0
  86. package/dist/cli/statusCommandOptions.js +42 -0
  87. package/dist/cli/targetCliRoute.d.ts +2 -0
  88. package/dist/cli/targetCliRoute.js +30 -0
  89. package/dist/cli/targetCommands.d.ts +33 -0
  90. package/dist/cli/targetCommands.js +257 -0
  91. package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
  92. package/dist/cli/targetComposedPreparationCommand.js +39 -0
  93. package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
  94. package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
  95. package/dist/cli/targetDefaultAuthorities.d.ts +53 -0
  96. package/dist/cli/targetDefaultAuthorities.js +210 -0
  97. package/dist/cli/targetDefaultConfig.d.ts +68 -0
  98. package/dist/cli/targetDefaultConfig.js +317 -0
  99. package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
  100. package/dist/cli/targetDefaultConfigStdin.js +215 -0
  101. package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
  102. package/dist/cli/targetDefaultEnvelope.js +13 -0
  103. package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
  104. package/dist/cli/targetDefaultHandlerFactory.js +247 -0
  105. package/dist/cli/targetDefaultHandlers.d.ts +21 -0
  106. package/dist/cli/targetDefaultHandlers.js +72 -0
  107. package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
  108. package/dist/cli/targetDefaultJournalAuthority.js +135 -0
  109. package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
  110. package/dist/cli/targetDefaultWorldClock.js +14 -0
  111. package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
  112. package/dist/cli/targetDefaultWorldQueries.js +11 -0
  113. package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
  114. package/dist/cli/targetDefaultWorldReadiness.js +17 -0
  115. package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
  116. package/dist/cli/targetEvidenceHelperResolution.js +23 -0
  117. package/dist/cli/targetLookupCli.d.ts +3 -0
  118. package/dist/cli/targetLookupCli.js +31 -0
  119. package/dist/cli/targetLookupCommands.d.ts +12 -0
  120. package/dist/cli/targetLookupCommands.js +69 -0
  121. package/dist/cli/targetOperationDispatch.d.ts +58 -0
  122. package/dist/cli/targetOperationDispatch.js +21 -0
  123. package/dist/cli/targetReceiptOutput.d.ts +14 -0
  124. package/dist/cli/targetReceiptOutput.js +21 -0
  125. package/dist/cli/targetRequestFile.d.ts +14 -0
  126. package/dist/cli/targetRequestFile.js +63 -0
  127. package/dist/cli/targetSecretSourceInput.d.ts +28 -0
  128. package/dist/cli/targetSecretSourceInput.js +121 -0
  129. package/dist/cli/targetWorldClockCommand.d.ts +10 -0
  130. package/dist/cli/targetWorldClockCommand.js +42 -0
  131. package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +13 -0
  132. package/dist/cli/targetWorldClockCrossProcess.test-helper.js +109 -0
  133. package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
  134. package/dist/cli/targetWorldReadinessCommand.js +43 -0
  135. package/dist/cli/upCommand.d.ts +3 -0
  136. package/dist/cli/upCommand.js +133 -0
  137. package/dist/cli/upImageCommand.d.ts +11 -0
  138. package/dist/cli/upImageCommand.js +41 -0
  139. package/dist/cli/upLifecycleInvocation.d.ts +41 -0
  140. package/dist/cli/upLifecycleInvocation.js +48 -0
  141. package/dist/cli/upLifecycleRecovery.d.ts +4 -0
  142. package/dist/cli/upLifecycleRecovery.js +53 -0
  143. package/dist/compiler/agentNodeMerge.d.ts +2 -0
  144. package/dist/compiler/agentNodeMerge.js +79 -0
  145. package/dist/compiler/agentSurfaces.js +11 -1
  146. package/dist/compiler/buildCompilePlan.js +17 -0
  147. package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
  148. package/dist/compiler/buildCompilePlanAgent.js +56 -0
  149. package/dist/compiler/buildCompilePlanTeams.d.ts +1 -0
  150. package/dist/compiler/buildCompilePlanTeams.js +4 -1
  151. package/dist/compiler/buildCompilePlanTraversal.js +75 -82
  152. package/dist/compiler/buildProject.d.ts +11 -0
  153. package/dist/compiler/buildProject.js +77 -2
  154. package/dist/compiler/compilePlanHelpers.js +2 -0
  155. package/dist/compiler/compileProject.d.ts +13 -0
  156. package/dist/compiler/compileProject.js +26 -74
  157. package/dist/compiler/compileProjectPolicy.d.ts +5 -0
  158. package/dist/compiler/compileProjectPolicy.js +21 -0
  159. package/dist/compiler/compileProjectReports.d.ts +9 -0
  160. package/dist/compiler/compileProjectReports.js +52 -0
  161. package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
  162. package/dist/compiler/containerArtifactSummaries.js +138 -0
  163. package/dist/compiler/containerArtifacts.d.ts +10 -0
  164. package/dist/compiler/containerArtifacts.js +126 -125
  165. package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
  166. package/dist/compiler/containerArtifactsPlans.js +31 -118
  167. package/dist/compiler/containerArtifactsRender.d.ts +3 -1
  168. package/dist/compiler/containerArtifactsRender.js +15 -12
  169. package/dist/compiler/containerArtifactsTypes.d.ts +12 -0
  170. package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
  171. package/dist/compiler/containerConfigEnvRender.js +54 -0
  172. package/dist/compiler/containerEntrypointRender.d.ts +1 -0
  173. package/dist/compiler/containerEntrypointRender.js +56 -52
  174. package/dist/compiler/containerEntrypointShell.d.ts +5 -0
  175. package/dist/compiler/containerEntrypointShell.js +29 -0
  176. package/dist/compiler/containerPackageOverrides.d.ts +27 -0
  177. package/dist/compiler/containerPackageOverrides.js +63 -0
  178. package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
  179. package/dist/compiler/containerTargetPlanResolution.js +97 -0
  180. package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
  181. package/dist/compiler/daimonTelemetryArtifacts.js +61 -0
  182. package/dist/compiler/dockerBuildContext.d.ts +16 -0
  183. package/dist/compiler/dockerBuildContext.js +159 -0
  184. package/dist/compiler/dockerBuildSkip.d.ts +30 -0
  185. package/dist/compiler/dockerBuildSkip.js +81 -0
  186. package/dist/compiler/index.d.ts +4 -0
  187. package/dist/compiler/index.js +4 -0
  188. package/dist/compiler/memoryArtifacts.d.ts +26 -0
  189. package/dist/compiler/memoryArtifacts.js +134 -0
  190. package/dist/compiler/memoryResolution.d.ts +4 -0
  191. package/dist/compiler/memoryResolution.js +147 -0
  192. package/dist/compiler/modelEnv.d.ts +2 -0
  193. package/dist/compiler/modelEnv.js +6 -0
  194. package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
  195. package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
  196. package/dist/compiler/moltnetArtifactPaths.d.ts +26 -0
  197. package/dist/compiler/moltnetArtifactPaths.js +49 -0
  198. package/dist/compiler/moltnetArtifactTypes.d.ts +46 -0
  199. package/dist/compiler/moltnetArtifactTypes.js +1 -0
  200. package/dist/compiler/moltnetArtifacts.d.ts +2 -40
  201. package/dist/compiler/moltnetArtifacts.js +43 -97
  202. package/dist/compiler/moltnetBinaries.d.ts +21 -4
  203. package/dist/compiler/moltnetBinaries.js +134 -27
  204. package/dist/compiler/moltnetClientConfig.js +7 -2
  205. package/dist/compiler/moltnetConfigLowering.d.ts +16 -1
  206. package/dist/compiler/moltnetConfigLowering.js +67 -5
  207. package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
  208. package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
  209. package/dist/compiler/moltnetNodeConfig.js +7 -2
  210. package/dist/compiler/moltnetReleaseAuthority.d.ts +17 -0
  211. package/dist/compiler/moltnetReleaseAuthority.js +73 -0
  212. package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
  213. package/dist/compiler/moltnetReleaseDownload.js +85 -0
  214. package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -0
  215. package/dist/compiler/moltnetRepresentativeResolution.js +16 -2
  216. package/dist/compiler/moltnetResolution.js +72 -20
  217. package/dist/compiler/moltnetRoomMemberships.js +37 -9
  218. package/dist/compiler/moltnetServerPlans.d.ts +9 -0
  219. package/dist/compiler/moltnetServerPlans.js +132 -0
  220. package/dist/compiler/organizationIdentity.d.ts +27 -0
  221. package/dist/compiler/organizationIdentity.js +297 -0
  222. package/dist/compiler/organizationReadyEvidence.d.ts +49 -0
  223. package/dist/compiler/organizationReadyEvidence.js +261 -0
  224. package/dist/compiler/projectManifestGraph.d.ts +4 -0
  225. package/dist/compiler/projectManifestGraph.js +24 -0
  226. package/dist/compiler/runProject.d.ts +4 -0
  227. package/dist/compiler/runProject.js +30 -21
  228. package/dist/compiler/runProjectAuth.d.ts +7 -1
  229. package/dist/compiler/runProjectAuth.js +87 -9
  230. package/dist/compiler/runProjectDocker.d.ts +7 -0
  231. package/dist/compiler/runProjectDocker.js +31 -8
  232. package/dist/compiler/runProjectLifecycle.d.ts +7 -0
  233. package/dist/compiler/runProjectLifecycle.js +40 -0
  234. package/dist/compiler/syncProjectAuth.js +4 -1
  235. package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
  236. package/dist/compiler/teamContextActiveEnvironments.js +255 -0
  237. package/dist/compiler/teamContextSupport.js +32 -40
  238. package/dist/compiler/teamContextTypes.d.ts +2 -0
  239. package/dist/compiler/types.d.ts +82 -1
  240. package/dist/compiler/upProject.d.ts +5 -0
  241. package/dist/compiler/upProject.js +256 -20
  242. package/dist/compiler/upReceipt.d.ts +36 -0
  243. package/dist/compiler/upReceipt.js +82 -0
  244. package/dist/compiler/updateProjectModels.js +42 -60
  245. package/dist/compiler/updateProjectRuntime.js +22 -35
  246. package/dist/compiler/updateProjectSurfaces.js +53 -47
  247. package/dist/compiler/worldBindings.d.ts +39 -0
  248. package/dist/compiler/worldBindings.js +247 -0
  249. package/dist/compiler/worldBindingsFile.d.ts +5 -0
  250. package/dist/compiler/worldBindingsFile.js +162 -0
  251. package/dist/deployment/artifactsExport.d.ts +49 -0
  252. package/dist/deployment/artifactsExport.js +217 -0
  253. package/dist/deployment/artifactsExportDocker.d.ts +48 -0
  254. package/dist/deployment/artifactsExportDocker.js +91 -0
  255. package/dist/deployment/artifactsExportPlan.d.ts +24 -0
  256. package/dist/deployment/artifactsExportPlan.js +135 -0
  257. package/dist/deployment/artifactsExportTypes.d.ts +50 -0
  258. package/dist/deployment/artifactsExportTypes.js +52 -0
  259. package/dist/deployment/buildImageCacheStore.d.ts +23 -0
  260. package/dist/deployment/buildImageCacheStore.js +54 -0
  261. package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
  262. package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
  263. package/dist/deployment/dockerInspect.d.ts +9 -0
  264. package/dist/deployment/dockerInspect.js +24 -1
  265. package/dist/deployment/dockerLabels.d.ts +2 -0
  266. package/dist/deployment/dockerLabels.js +2 -0
  267. package/dist/deployment/dockerLogs.js +2 -10
  268. package/dist/deployment/dockerManager.d.ts +51 -0
  269. package/dist/deployment/dockerManager.js +118 -1
  270. package/dist/deployment/dockerProbeGateway.js +64 -5
  271. package/dist/deployment/dockerRecover.js +9 -1
  272. package/dist/deployment/dockerTeardown.d.ts +32 -0
  273. package/dist/deployment/dockerTeardown.js +61 -0
  274. package/dist/deployment/downDeployment.d.ts +34 -0
  275. package/dist/deployment/downDeployment.js +147 -0
  276. package/dist/deployment/downReceiptTypes.d.ts +21 -0
  277. package/dist/deployment/downReceiptTypes.js +30 -0
  278. package/dist/deployment/index.d.ts +16 -0
  279. package/dist/deployment/index.js +17 -0
  280. package/dist/deployment/lifecycleCompletion.d.ts +37 -0
  281. package/dist/deployment/lifecycleCompletion.js +236 -0
  282. package/dist/deployment/lifecycleCompletionContracts.d.ts +158 -0
  283. package/dist/deployment/lifecycleCompletionContracts.js +106 -0
  284. package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
  285. package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
  286. package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
  287. package/dist/deployment/lifecycleCompletionLookup.js +88 -0
  288. package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
  289. package/dist/deployment/lifecycleCompletionOwner.js +31 -0
  290. package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
  291. package/dist/deployment/lifecycleCompletionParsing.js +108 -0
  292. package/dist/deployment/lifecycleCompletionPaths.d.ts +9 -0
  293. package/dist/deployment/lifecycleCompletionPaths.js +16 -0
  294. package/dist/deployment/lifecycleCompletionPublication.d.ts +5 -0
  295. package/dist/deployment/lifecycleCompletionPublication.js +35 -0
  296. package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
  297. package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
  298. package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
  299. package/dist/deployment/lifecycleCompletionRoot.js +243 -0
  300. package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
  301. package/dist/deployment/lifecycleCompletionStore.js +151 -0
  302. package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
  303. package/dist/deployment/organizationHandoffAuthorityFsClient.js +132 -0
  304. package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
  305. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +285 -0
  306. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
  307. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
  308. package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
  309. package/dist/deployment/organizationHandoffAuthorityStore.js +348 -0
  310. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
  311. package/dist/deployment/organizationHandoffAuthorityTypes.js +148 -0
  312. package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
  313. package/dist/deployment/organizationHandoffTypes.js +80 -0
  314. package/dist/deployment/organizationReady.d.ts +52 -0
  315. package/dist/deployment/organizationReady.js +200 -0
  316. package/dist/deployment/privateArtifactsExport.d.ts +18 -0
  317. package/dist/deployment/privateArtifactsExport.js +80 -0
  318. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +8 -0
  319. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +60 -0
  320. package/dist/deployment/record.d.ts +26 -1
  321. package/dist/deployment/record.js +49 -4
  322. package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +8 -0
  323. package/dist/deployment/simfileFixtureBoundary.test-helper.js +103 -0
  324. package/dist/deployment/target.d.ts +1 -35
  325. package/dist/deployment/target.js +1 -96
  326. package/dist/deployment/upReceiptTypes.d.ts +111 -0
  327. package/dist/deployment/upReceiptTypes.js +164 -0
  328. package/dist/dev/project.js +15 -9
  329. package/dist/distribution/buildDistributionReport.d.ts +2 -1
  330. package/dist/distribution/buildDistributionReport.js +2 -1
  331. package/dist/distribution/distributionReportSchema.d.ts +5 -0
  332. package/dist/distribution/distributionReportSchema.js +7 -2
  333. package/dist/distribution/index.d.ts +2 -2
  334. package/dist/distribution/index.js +1 -1
  335. package/dist/distribution/types.d.ts +7 -0
  336. package/dist/distribution/types.js +1 -0
  337. package/dist/filesystem/paths.js +10 -1
  338. package/dist/ledger/causalConformanceCli.d.ts +1 -0
  339. package/dist/ledger/causalConformanceCli.js +41 -0
  340. package/dist/ledger/causeNamespace.d.ts +8 -0
  341. package/dist/ledger/causeNamespace.js +24 -0
  342. package/dist/ledger/conformance.d.ts +83 -0
  343. package/dist/ledger/conformance.js +259 -0
  344. package/dist/ledger/emitters.d.ts +76 -0
  345. package/dist/ledger/emitters.js +188 -0
  346. package/dist/ledger/index.d.ts +4 -0
  347. package/dist/ledger/index.js +4 -0
  348. package/dist/ledger/principal.d.ts +96 -0
  349. package/dist/ledger/principal.js +121 -0
  350. package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
  351. package/dist/manifest/externalParticipantSchemas.js +17 -0
  352. package/dist/manifest/index.d.ts +1 -0
  353. package/dist/manifest/index.js +1 -0
  354. package/dist/manifest/inlineAgentMember.d.ts +2 -0
  355. package/dist/manifest/inlineAgentMember.js +9 -0
  356. package/dist/manifest/loadManifest.js +14 -8
  357. package/dist/manifest/mcpSchemas.d.ts +17 -0
  358. package/dist/manifest/mcpSchemas.js +41 -0
  359. package/dist/manifest/memorySchemas.d.ts +245 -0
  360. package/dist/manifest/memorySchemas.js +148 -0
  361. package/dist/manifest/renderSpawnfile.js +22 -131
  362. package/dist/manifest/renderSpawnfileNetworks.js +9 -2
  363. package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
  364. package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
  365. package/dist/manifest/schemas.d.ts +1868 -99
  366. package/dist/manifest/schemas.js +78 -32
  367. package/dist/manifest/surfaceSchemas.d.ts +17 -0
  368. package/dist/manifest/surfaceSchemas.js +24 -1
  369. package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
  370. package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
  371. package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
  372. package/dist/manifest/teamNetworkSchemas.d.ts +8 -187
  373. package/dist/manifest/teamNetworkSchemas.js +3 -317
  374. package/dist/manifest/teamNetworkServerSchemas.d.ts +150 -0
  375. package/dist/manifest/teamNetworkServerSchemas.js +199 -0
  376. package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
  377. package/dist/ownership/siblingBuildFreshness.js +20 -0
  378. package/dist/ownership/simfileRunOperatorInputs.d.ts +103 -0
  379. package/dist/ownership/simfileRunOperatorInputs.js +139 -0
  380. package/dist/report/types.d.ts +142 -0
  381. package/dist/runtime/common.d.ts +35 -0
  382. package/dist/runtime/common.js +55 -0
  383. package/dist/runtime/container.d.ts +28 -1
  384. package/dist/runtime/container.js +38 -5
  385. package/dist/runtime/containerPackageOverrides.d.ts +37 -0
  386. package/dist/runtime/containerPackageOverrides.js +33 -0
  387. package/dist/runtime/index.d.ts +2 -0
  388. package/dist/runtime/index.js +2 -0
  389. package/dist/runtime/mnemeMcp.d.ts +15 -0
  390. package/dist/runtime/mnemeMcp.js +109 -0
  391. package/dist/runtime/openclaw/adapter.js +15 -4
  392. package/dist/runtime/openclaw/mcp.d.ts +10 -0
  393. package/dist/runtime/openclaw/mcp.js +69 -0
  394. package/dist/runtime/openclaw/runAuth.js +2 -2
  395. package/dist/runtime/openclaw/scaffold.js +1 -1
  396. package/dist/runtime/openclaw/schedules.d.ts +38 -0
  397. package/dist/runtime/openclaw/schedules.js +74 -0
  398. package/dist/runtime/pi/adapter.d.ts +1 -1
  399. package/dist/runtime/pi/adapter.js +86 -53
  400. package/dist/runtime/pi/appActivitySource.js +114 -2
  401. package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
  402. package/dist/runtime/pi/appAgentConfig.js +264 -0
  403. package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
  404. package/dist/runtime/pi/appCliEnginesSource.js +183 -0
  405. package/dist/runtime/pi/appCliSource.d.ts +1 -0
  406. package/dist/runtime/pi/appCliSource.js +353 -0
  407. package/dist/runtime/pi/appControlSource.d.ts +1 -0
  408. package/dist/runtime/pi/appControlSource.js +390 -0
  409. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
  410. package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
  411. package/dist/runtime/pi/appCoreSource.d.ts +4 -1
  412. package/dist/runtime/pi/appCoreSource.js +104 -214
  413. package/dist/runtime/pi/appPreludeSource.js +140 -52
  414. package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
  415. package/dist/runtime/pi/appScheduleSource.js +80 -0
  416. package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
  417. package/dist/runtime/pi/appScriptedEngine.js +42 -0
  418. package/dist/runtime/pi/appSource.d.ts +4 -1
  419. package/dist/runtime/pi/appSource.js +6 -2
  420. package/dist/runtime/pi/appTemplate.d.ts +8 -22
  421. package/dist/runtime/pi/appTemplate.js +9 -126
  422. package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
  423. package/dist/runtime/pi/appTemplateTypes.js +18 -0
  424. package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
  425. package/dist/runtime/pi/appWakeContextSource.js +398 -0
  426. package/dist/runtime/pi/containerTargets.d.ts +4 -0
  427. package/dist/runtime/pi/containerTargets.js +57 -0
  428. package/dist/runtime/pi/runAuth.js +126 -9
  429. package/dist/runtime/pi/testHelpers.d.ts +2 -0
  430. package/dist/runtime/pi/testHelpers.js +40 -0
  431. package/dist/runtime/picoclaw/adapter.js +23 -27
  432. package/dist/runtime/picoclaw/mcp.d.ts +4 -0
  433. package/dist/runtime/picoclaw/mcp.js +43 -0
  434. package/dist/runtime/picoclaw/memory.d.ts +7 -0
  435. package/dist/runtime/picoclaw/memory.js +17 -0
  436. package/dist/runtime/picoclaw/runAuth.js +1 -1
  437. package/dist/runtime/picoclaw/scaffold.js +1 -1
  438. package/dist/runtime/picoclaw/schedules.d.ts +26 -0
  439. package/dist/runtime/picoclaw/schedules.js +62 -3
  440. package/dist/runtime/scheduleUtils.d.ts +2 -0
  441. package/dist/runtime/scheduleUtils.js +15 -0
  442. package/dist/runtime/types.d.ts +25 -2
  443. package/dist/shared/errors.d.ts +1 -1
  444. package/dist/shared/errors.js +2 -2
  445. package/dist/shared/index.d.ts +1 -0
  446. package/dist/shared/index.js +1 -0
  447. package/dist/shared/redaction.d.ts +2 -0
  448. package/dist/shared/redaction.js +10 -0
  449. package/dist/status/buildStatus.d.ts +1 -0
  450. package/dist/status/buildStatus.js +2 -0
  451. package/dist/status/compileReport.d.ts +22 -0
  452. package/dist/status/compileReport.js +16 -2
  453. package/dist/status/compiledProbeCollection.d.ts +21 -0
  454. package/dist/status/compiledProbeCollection.js +27 -0
  455. package/dist/status/imageStatusReport.js +6 -0
  456. package/dist/status/index.d.ts +3 -0
  457. package/dist/status/index.js +3 -0
  458. package/dist/status/lifecycleProbes.d.ts +19 -0
  459. package/dist/status/lifecycleProbes.js +174 -0
  460. package/dist/status/moltnetProbes.d.ts +7 -8
  461. package/dist/status/moltnetProbes.js +27 -198
  462. package/dist/status/moltnetWiringProbes.d.ts +19 -0
  463. package/dist/status/moltnetWiringProbes.js +178 -0
  464. package/dist/target/cleanupRun.d.ts +41 -0
  465. package/dist/target/cleanupRun.js +139 -0
  466. package/dist/target/cleanupRunDocker.d.ts +16 -0
  467. package/dist/target/cleanupRunDocker.js +66 -0
  468. package/dist/target/cleanupRunDocker.test-helper.d.ts +67 -0
  469. package/dist/target/cleanupRunDocker.test-helper.js +238 -0
  470. package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
  471. package/dist/target/cleanupRunDockerPreflight.js +224 -0
  472. package/dist/target/composedPreparation.d.ts +205 -0
  473. package/dist/target/composedPreparation.js +223 -0
  474. package/dist/target/containerBundle.d.ts +82 -0
  475. package/dist/target/containerBundle.js +243 -0
  476. package/dist/target/containerBundleArchive.d.ts +31 -0
  477. package/dist/target/containerBundleArchive.js +140 -0
  478. package/dist/target/containerBundleAuthority.d.ts +25 -0
  479. package/dist/target/containerBundleAuthority.js +65 -0
  480. package/dist/target/containerBundleContracts.d.ts +114 -0
  481. package/dist/target/containerBundleContracts.js +173 -0
  482. package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
  483. package/dist/target/containerBundleFilesystemStore.js +247 -0
  484. package/dist/target/containerBundlePolicy.d.ts +33 -0
  485. package/dist/target/containerBundlePolicy.js +64 -0
  486. package/dist/target/containerBundleStore.d.ts +127 -0
  487. package/dist/target/containerBundleStore.js +284 -0
  488. package/dist/target/contracts.d.ts +538 -0
  489. package/dist/target/contracts.js +373 -0
  490. package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
  491. package/dist/target/dockerArtifactIdentityTypes.js +1 -0
  492. package/dist/target/dockerArtifactInspection.d.ts +40 -0
  493. package/dist/target/dockerArtifactInspection.js +125 -0
  494. package/dist/target/dockerArtifacts.d.ts +21 -0
  495. package/dist/target/dockerArtifacts.js +110 -0
  496. package/dist/target/dockerArtifactsProvider.d.ts +41 -0
  497. package/dist/target/dockerArtifactsProvider.js +449 -0
  498. package/dist/target/dockerCommandExecutor.d.ts +27 -0
  499. package/dist/target/dockerCommandExecutor.js +200 -0
  500. package/dist/target/dockerCommandExecutorCore.d.ts +34 -0
  501. package/dist/target/dockerCommandExecutorCore.js +273 -0
  502. package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
  503. package/dist/target/dockerContainerBundleBuilder.js +256 -0
  504. package/dist/target/dockerContextSnapshot.d.ts +21 -0
  505. package/dist/target/dockerContextSnapshot.js +158 -0
  506. package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
  507. package/dist/target/dockerEndpointFingerprint.js +9 -0
  508. package/dist/target/dockerPreparedArtifact.d.ts +48 -0
  509. package/dist/target/dockerPreparedArtifact.js +131 -0
  510. package/dist/target/dockerProjectionJson.d.ts +1 -0
  511. package/dist/target/dockerProjectionJson.js +80 -0
  512. package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
  513. package/dist/target/dockerPublicArtifactSnapshot.js +99 -0
  514. package/dist/target/dockerResources.d.ts +26 -0
  515. package/dist/target/dockerResources.js +162 -0
  516. package/dist/target/dockerResourcesProvider.d.ts +44 -0
  517. package/dist/target/dockerResourcesProvider.js +207 -0
  518. package/dist/target/dockerSecrets.d.ts +39 -0
  519. package/dist/target/dockerSecrets.js +249 -0
  520. package/dist/target/dockerSecretsAuthority.d.ts +26 -0
  521. package/dist/target/dockerSecretsAuthority.js +216 -0
  522. package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
  523. package/dist/target/dockerSecretsLifecycle.js +133 -0
  524. package/dist/target/dockerSecretsProvider.d.ts +68 -0
  525. package/dist/target/dockerSecretsProvider.js +329 -0
  526. package/dist/target/dockerTarget.d.ts +52 -0
  527. package/dist/target/dockerTarget.js +48 -0
  528. package/dist/target/dockerTargetBinding.d.ts +14 -0
  529. package/dist/target/dockerTargetBinding.js +96 -0
  530. package/dist/target/dockerWorldClock.d.ts +17 -0
  531. package/dist/target/dockerWorldClock.js +111 -0
  532. package/dist/target/dockerWorldReadiness.d.ts +17 -0
  533. package/dist/target/dockerWorldReadiness.js +119 -0
  534. package/dist/target/dockerWorldService.d.ts +23 -0
  535. package/dist/target/dockerWorldService.js +216 -0
  536. package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
  537. package/dist/target/dockerWorldServiceAuthority.js +182 -0
  538. package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
  539. package/dist/target/dockerWorldServiceLifecycle.js +275 -0
  540. package/dist/target/dockerWorldServiceProvider.d.ts +60 -0
  541. package/dist/target/dockerWorldServiceProvider.js +318 -0
  542. package/dist/target/dockerWorldServiceStore.d.ts +73 -0
  543. package/dist/target/dockerWorldServiceStore.js +367 -0
  544. package/dist/target/evidenceExport.d.ts +55 -0
  545. package/dist/target/evidenceExport.js +518 -0
  546. package/dist/target/evidenceExportArchive.d.ts +10 -0
  547. package/dist/target/evidenceExportArchive.js +302 -0
  548. package/dist/target/evidenceExportContract.d.ts +27 -0
  549. package/dist/target/evidenceExportContract.js +40 -0
  550. package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
  551. package/dist/target/evidenceExportOperationsTestKit.js +312 -0
  552. package/dist/target/evidenceExportProvider.d.ts +85 -0
  553. package/dist/target/evidenceExportProvider.js +187 -0
  554. package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
  555. package/dist/target/evidenceExportPublicationTypes.js +1 -0
  556. package/dist/target/evidenceExportStore.d.ts +70 -0
  557. package/dist/target/evidenceExportStore.js +498 -0
  558. package/dist/target/evidenceExportStorePublication.d.ts +7 -0
  559. package/dist/target/evidenceExportStorePublication.js +395 -0
  560. package/dist/target/handles.d.ts +20 -0
  561. package/dist/target/handles.js +56 -0
  562. package/dist/target/index.d.ts +12 -0
  563. package/dist/target/index.js +11 -0
  564. package/dist/target/journal.d.ts +59 -0
  565. package/dist/target/journal.js +529 -0
  566. package/dist/target/journalFilesystem.d.ts +3 -0
  567. package/dist/target/journalFilesystem.js +111 -0
  568. package/dist/target/journalRoot.d.ts +4 -0
  569. package/dist/target/journalRoot.js +6 -0
  570. package/dist/target/organizationAttachment.d.ts +23 -0
  571. package/dist/target/organizationAttachment.js +263 -0
  572. package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
  573. package/dist/target/organizationAttachmentAuthority.js +161 -0
  574. package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
  575. package/dist/target/organizationAttachmentLifecycle.js +101 -0
  576. package/dist/target/organizationAttachmentProvider.d.ts +76 -0
  577. package/dist/target/organizationAttachmentProvider.js +289 -0
  578. package/dist/target/organizationAttachmentStore.d.ts +51 -0
  579. package/dist/target/organizationAttachmentStore.js +316 -0
  580. package/dist/target/publicArtifactSnapshot.d.ts +41 -0
  581. package/dist/target/publicArtifactSnapshot.js +150 -0
  582. package/dist/target/topologyActivation.d.ts +51 -0
  583. package/dist/target/topologyActivation.js +149 -0
  584. package/dist/target/topologyAttestation.d.ts +37 -0
  585. package/dist/target/topologyAttestation.js +300 -0
  586. package/dist/target/topologyAttestationErrors.d.ts +1 -0
  587. package/dist/target/topologyAttestationErrors.js +1 -0
  588. package/dist/target/worldClock.d.ts +60 -0
  589. package/dist/target/worldClock.js +129 -0
  590. package/dist/target/worldReadiness.d.ts +103 -0
  591. package/dist/target/worldReadiness.js +153 -0
  592. package/moltnet-releases.json +20 -0
  593. package/package.json +27 -11
  594. package/runtimes.yaml +8 -23
  595. package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
  596. package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
  597. /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
  598. /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
@@ -0,0 +1,140 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { createHash } from "node:crypto";
3
+ const BLOCK = 512;
4
+ const MAX_BYTES = 4_194_304;
5
+ const fail = () => { throw new Error("Container bundle archive failed"); };
6
+ const zero = (value) => value.every((byte) => byte === 0);
7
+ const text = (value) => {
8
+ const nul = value.indexOf(0);
9
+ const end = nul < 0 ? value.length : nul;
10
+ if (nul >= 0 && !zero(value.subarray(nul)))
11
+ return fail();
12
+ const result = Buffer.from(value.subarray(0, end)).toString("utf8");
13
+ if (!Buffer.from(result, "utf8").equals(Buffer.from(value.subarray(0, end))))
14
+ return fail();
15
+ return result;
16
+ };
17
+ const rawSha = (value) => `sha256:${createHash("sha256").update(value).digest("hex")}`;
18
+ const octal = (value) => {
19
+ if (value.at(-1) !== 0 || value.subarray(0, -1).some((byte) => byte < 48 || byte > 55))
20
+ return fail();
21
+ const parsed = Number.parseInt(Buffer.from(value.subarray(0, -1)).toString("ascii"), 8);
22
+ if (!Number.isSafeInteger(parsed) || parsed < 0)
23
+ return fail();
24
+ return parsed;
25
+ };
26
+ const canonicalOctal = (value) => {
27
+ const parsed = octal(value);
28
+ if (!Buffer.from(`${parsed.toString(8).padStart(value.byteLength - 1, "0")}\0`, "ascii").equals(Buffer.from(value)))
29
+ return fail();
30
+ return parsed;
31
+ };
32
+ const checksum = (header) => {
33
+ const field = header.subarray(148, 156);
34
+ /* POSIX USTAR permits both its traditional six-digit NUL-space spelling
35
+ * and a seven-digit NUL-terminated field. Accept neither padding nor any
36
+ * other checksum representation. */
37
+ const traditional = field[6] === 0 && field[7] === 0x20 && field.subarray(0, 6).every((byte) => byte >= 48 && byte <= 55);
38
+ const nulTerminated = field[7] === 0 && field.subarray(0, 7).every((byte) => byte >= 48 && byte <= 55);
39
+ if (!traditional && !nulTerminated)
40
+ return fail();
41
+ const claimed = Number.parseInt(Buffer.from(field.subarray(0, traditional ? 6 : 7)).toString("ascii"), 8);
42
+ let actual = 0;
43
+ for (let index = 0; index < BLOCK; index += 1)
44
+ actual += index >= 148 && index < 156 ? 0x20 : header[index];
45
+ if (claimed !== actual)
46
+ return fail();
47
+ return claimed;
48
+ };
49
+ const safePath = (raw) => {
50
+ if (!/^[A-Za-z0-9][A-Za-z0-9._/-]{0,255}$/u.test(raw) || raw.includes("//")
51
+ || raw.split("/").some((part) => part === "." || part === ".."))
52
+ return fail();
53
+ return raw;
54
+ };
55
+ const canonicalPath = (name, prefix) => {
56
+ if (name.length === 0 || prefix.endsWith("/"))
57
+ return fail();
58
+ const joined = safePath(prefix ? `${prefix}/${name}` : name);
59
+ if (joined.length <= 100) {
60
+ if (prefix || name !== joined)
61
+ return fail();
62
+ return joined;
63
+ }
64
+ const split = joined.lastIndexOf("/");
65
+ if (split < 1 || joined.slice(0, split) !== prefix || joined.slice(split + 1) !== name
66
+ || Buffer.byteLength(prefix, "utf8") > 155 || Buffer.byteLength(name, "utf8") > 100)
67
+ return fail();
68
+ return joined;
69
+ };
70
+ const canonicalAllowed = (paths) => {
71
+ if (paths.length < 1 || paths.length > 32)
72
+ return fail();
73
+ const normalized = paths.map(safePath);
74
+ if (normalized.some((value, index) => index > 0 && normalized[index - 1] >= value))
75
+ return fail();
76
+ return normalized;
77
+ };
78
+ /** Validates an uncompressed canonical USTAR bundle before Docker ever receives it. */
79
+ export const parseContainerBundleArchive = (raw, allowedPaths, expectedDigest) => {
80
+ if (!(raw instanceof Uint8Array) || raw.byteLength < BLOCK * 2 || raw.byteLength > MAX_BYTES || raw.byteLength % BLOCK !== 0
81
+ || !/^sha256:[a-f0-9]{64}$/u.test(expectedDigest)
82
+ || `sha256:${createHash("sha256").update(raw).digest("hex")}` !== expectedDigest)
83
+ return fail();
84
+ const expected = canonicalAllowed(allowedPaths);
85
+ const entries = [];
86
+ let offset = 0;
87
+ while (offset < raw.byteLength) {
88
+ const header = raw.subarray(offset, offset + BLOCK);
89
+ offset += BLOCK;
90
+ if (zero(header)) {
91
+ if (entries.length === 0 || offset + BLOCK !== raw.byteLength || !zero(raw.subarray(offset, offset + BLOCK)))
92
+ return fail();
93
+ if (entries.length !== expected.length)
94
+ return fail();
95
+ return Object.freeze({ bytes: new Uint8Array(raw), entries: Object.freeze(entries) });
96
+ }
97
+ if (!Buffer.from(header.subarray(257, 263)).equals(Buffer.from("ustar\0", "ascii"))
98
+ || !Buffer.from(header.subarray(263, 265)).equals(Buffer.from("00", "ascii"))
99
+ || !zero(header.subarray(157, 257)) || !zero(header.subarray(500, 512)))
100
+ return fail();
101
+ checksum(header);
102
+ if (canonicalOctal(header.subarray(100, 108)) !== 0o644 || canonicalOctal(header.subarray(108, 116)) !== 0
103
+ || canonicalOctal(header.subarray(116, 124)) !== 0 || canonicalOctal(header.subarray(136, 148)) !== 0
104
+ || !zero(header.subarray(329, 345)) || header[156] !== 48
105
+ || text(header.subarray(265, 297)) !== "" || text(header.subarray(297, 329)) !== "")
106
+ return fail();
107
+ const name = text(header.subarray(0, 100));
108
+ const prefix = text(header.subarray(345, 500));
109
+ const path = canonicalPath(name, prefix);
110
+ if (path !== expected[entries.length])
111
+ return fail();
112
+ const size = canonicalOctal(header.subarray(124, 136));
113
+ const end = offset + size;
114
+ const padded = Math.ceil(size / BLOCK) * BLOCK;
115
+ if (end > raw.byteLength || offset + padded > raw.byteLength || !zero(raw.subarray(end, offset + padded)))
116
+ return fail();
117
+ entries.push(Object.freeze({ bytes: new Uint8Array(raw.subarray(offset, end)), path }));
118
+ offset += padded;
119
+ }
120
+ return fail();
121
+ };
122
+ /**
123
+ * The versioned preparation request is the sealed deployment envelope.
124
+ * The archive digest already commits every byte. The artifact digest is an
125
+ * owner-defined semantic identity (for example, a manifest digest), while the
126
+ * launcher is the one generic executable role whose raw bytes Spawnfile can
127
+ * and must verify without interpreting provider-private contents.
128
+ */
129
+ export const validateContainerBundleEnvelope = (archive, claims) => {
130
+ try {
131
+ const launcher = archive.entries.find((item) => item.path === claims.entrypoint);
132
+ if (!launcher || rawSha(launcher.bytes) !== claims.launcher_digest
133
+ || !/^sha256:[a-f0-9]{64}$/u.test(claims.artifact_digest)
134
+ || claims.artifact_digest === claims.launcher_digest)
135
+ return fail();
136
+ }
137
+ catch {
138
+ return fail();
139
+ }
140
+ };
@@ -0,0 +1,25 @@
1
+ import type { TargetLocalBundlePrepareRequest } from "./containerBundleContracts.js";
2
+ export interface ContainerBundleAllowlistEntry {
3
+ readonly archive_digest: string;
4
+ readonly artifact_manifest_digest: string;
5
+ readonly base_image_config_digest: string;
6
+ readonly build_policy_digest: string;
7
+ readonly bundle_digest: string;
8
+ readonly entrypoint: string;
9
+ readonly launcher_digest: string;
10
+ readonly network_alias: string;
11
+ readonly platform: {
12
+ readonly architecture: "amd64" | "arm64";
13
+ readonly os: "linux";
14
+ };
15
+ readonly platform_digest: string;
16
+ }
17
+ export interface AuthorizedContainerBundlePlan extends ContainerBundleAllowlistEntry {
18
+ readonly artifact_digest: string;
19
+ }
20
+ export interface ContainerBundlePreparationAuthority {
21
+ /** Returns private build inputs only after the complete semantic tuple matches. */
22
+ authorize(request: TargetLocalBundlePrepareRequest): AuthorizedContainerBundlePlan;
23
+ }
24
+ /** A target may build only a complete, reviewed, target-local plan. */
25
+ export declare const createContainerBundlePreparationAuthority: (entries: readonly ContainerBundleAllowlistEntry[]) => ContainerBundlePreparationAuthority;
@@ -0,0 +1,65 @@
1
+ import { deriveTargetLocalContainerBundlePolicy } from "./containerBundlePolicy.js";
2
+ const DIGEST = /^sha256:[a-f0-9]{64}$/u;
3
+ const fail = () => { throw new Error("Target-local container bundle authorization failed"); };
4
+ const same = (left, right) => JSON.stringify(left) === JSON.stringify(right);
5
+ const entry = (raw) => {
6
+ if (!raw || typeof raw !== "object" || Array.isArray(raw) || Object.getPrototypeOf(raw) !== Object.prototype)
7
+ return fail();
8
+ const descriptors = Object.getOwnPropertyDescriptors(raw);
9
+ if (Object.values(descriptors).some((value) => !value.enumerable || !("value" in value)))
10
+ return fail();
11
+ const value = Object.fromEntries(Object.entries(descriptors).map(([key, descriptor]) => [key, descriptor.value]));
12
+ if (Object.keys(value).sort().join("\0") !== "archive_digest\0artifact_manifest_digest\0base_image_config_digest\0build_policy_digest\0bundle_digest\0entrypoint\0launcher_digest\0network_alias\0platform\0platform_digest"
13
+ || !Object.values(value).filter((item) => typeof item === "string").every((item) => typeof item === "string")
14
+ || ![value.archive_digest, value.artifact_manifest_digest, value.base_image_config_digest, value.build_policy_digest,
15
+ value.bundle_digest, value.launcher_digest, value.platform_digest].every((item) => typeof item === "string" && DIGEST.test(item))
16
+ || typeof value.entrypoint !== "string" || !/^[A-Za-z0-9][A-Za-z0-9._/-]{0,239}$/u.test(value.entrypoint)
17
+ || value.entrypoint.includes("//") || value.entrypoint.split("/").some((part) => part === "." || part === "..")
18
+ || typeof value.network_alias !== "string" || !/^[a-z][a-z0-9-]{0,62}$/u.test(value.network_alias)
19
+ || !value.platform || typeof value.platform !== "object" || Array.isArray(value.platform)
20
+ || Object.getPrototypeOf(value.platform) !== Object.prototype)
21
+ return fail();
22
+ const platform = value.platform;
23
+ if (Object.keys(platform).sort().join("\0") !== "architecture\0os"
24
+ || platform.os !== "linux" || (platform.architecture !== "amd64" && platform.architecture !== "arm64"))
25
+ return fail();
26
+ return Object.freeze({ archive_digest: value.archive_digest,
27
+ artifact_manifest_digest: value.artifact_manifest_digest,
28
+ base_image_config_digest: value.base_image_config_digest,
29
+ build_policy_digest: value.build_policy_digest, bundle_digest: value.bundle_digest,
30
+ entrypoint: value.entrypoint, launcher_digest: value.launcher_digest, network_alias: value.network_alias,
31
+ platform: Object.freeze({ architecture: platform.architecture, os: platform.os }),
32
+ platform_digest: value.platform_digest });
33
+ };
34
+ /** A target may build only a complete, reviewed, target-local plan. */
35
+ export const createContainerBundlePreparationAuthority = (entries) => {
36
+ if (!Array.isArray(entries) || entries.length > 32)
37
+ return fail();
38
+ const allowed = Object.freeze(entries.map(entry));
39
+ if (new Set(allowed.map((value) => value.artifact_manifest_digest)).size !== allowed.length)
40
+ return fail();
41
+ const authorize = (request) => {
42
+ const matches = allowed.filter((value) => value.artifact_manifest_digest === request.artifact_digest
43
+ && value.archive_digest === request.archive_digest && value.build_policy_digest === request.build_policy_digest
44
+ && value.bundle_digest === request.bundle_digest && value.entrypoint === request.entrypoint
45
+ && value.launcher_digest === request.launcher_digest && value.network_alias === request.network_alias
46
+ && value.platform_digest === request.platform_digest && same(value.platform, request.platform));
47
+ if (matches.length !== 1)
48
+ return fail();
49
+ const authoritative = deriveTargetLocalContainerBundlePolicy({
50
+ archiveDigest: request.archive_digest,
51
+ artifactDigest: request.artifact_digest,
52
+ baseImageConfigDigest: matches[0].base_image_config_digest,
53
+ bundleDigest: request.bundle_digest,
54
+ entrypoint: request.entrypoint,
55
+ launcherDigest: request.launcher_digest,
56
+ networkAlias: request.network_alias,
57
+ platform: request.platform
58
+ });
59
+ if (authoritative.buildPolicyDigest !== request.build_policy_digest
60
+ || authoritative.platformDigest !== request.platform_digest)
61
+ return fail();
62
+ return Object.freeze({ ...matches[0], artifact_digest: request.artifact_digest });
63
+ };
64
+ return Object.freeze({ authorize });
65
+ };
@@ -0,0 +1,114 @@
1
+ import { z } from "zod";
2
+ export declare const TARGET_LOCAL_BUNDLE_PREPARE_REQUEST_VERSION: "spawnfile.target-local-container-bundle.prepare-request.v1";
3
+ export declare const TARGET_LOCAL_BUNDLE_PREPARE_RECEIPT_VERSION: "spawnfile.target-local-container-bundle.prepare-receipt.v1";
4
+ export declare const TARGET_LOCAL_BUNDLE_LOOKUP_VERSION: "spawnfile.target-local-container-bundle.lookup.v1";
5
+ export declare const targetLocalBundlePrepareRequestSchema: z.ZodObject<{
6
+ archive_base64: z.ZodString;
7
+ archive_digest: z.ZodString;
8
+ archive_entries: z.ZodArray<z.ZodString>;
9
+ artifact_digest: z.ZodString;
10
+ build_policy_digest: z.ZodString;
11
+ bundle_digest: z.ZodString;
12
+ entrypoint: z.ZodString;
13
+ idempotency_key: z.ZodString;
14
+ launcher_digest: z.ZodString;
15
+ network_alias: z.ZodString;
16
+ platform: z.ZodObject<{
17
+ architecture: z.ZodEnum<{
18
+ amd64: "amd64";
19
+ arm64: "arm64";
20
+ }>;
21
+ os: z.ZodLiteral<"linux">;
22
+ }, z.core.$strict>;
23
+ platform_digest: z.ZodString;
24
+ selected_target: z.ZodObject<{
25
+ fingerprint: z.ZodString;
26
+ handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
27
+ }, z.core.$strict>;
28
+ version: z.ZodLiteral<"spawnfile.target-local-container-bundle.prepare-request.v1">;
29
+ }, z.core.$strict>;
30
+ export declare const targetLocalBundlePrepareReceiptSchema: z.ZodObject<{
31
+ archive_digest: z.ZodString;
32
+ artifact_digest: z.ZodString;
33
+ build_policy_digest: z.ZodString;
34
+ bundle_digest: z.ZodString;
35
+ launcher_digest: z.ZodString;
36
+ mapping_handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
37
+ network_alias: z.ZodString;
38
+ operation_handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
39
+ platform: z.ZodObject<{
40
+ architecture: z.ZodEnum<{
41
+ amd64: "amd64";
42
+ arm64: "arm64";
43
+ }>;
44
+ os: z.ZodLiteral<"linux">;
45
+ }, z.core.$strict>;
46
+ platform_digest: z.ZodString;
47
+ receipt_digest: z.ZodString;
48
+ request_digest: z.ZodString;
49
+ selected_target: z.ZodObject<{
50
+ fingerprint: z.ZodString;
51
+ handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
52
+ }, z.core.$strict>;
53
+ version: z.ZodLiteral<"spawnfile.target-local-container-bundle.prepare-receipt.v1">;
54
+ }, z.core.$strict>;
55
+ export declare const targetLocalBundleLookupSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
56
+ status: z.ZodLiteral<"not_applied">;
57
+ idempotency_key: z.ZodString;
58
+ request_digest: z.ZodString;
59
+ version: z.ZodLiteral<"spawnfile.target-local-container-bundle.lookup.v1">;
60
+ }, z.core.$strict>, z.ZodObject<{
61
+ operation_handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
62
+ status: z.ZodLiteral<"pending">;
63
+ idempotency_key: z.ZodString;
64
+ request_digest: z.ZodString;
65
+ version: z.ZodLiteral<"spawnfile.target-local-container-bundle.lookup.v1">;
66
+ }, z.core.$strict>, z.ZodObject<{
67
+ operation_handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
68
+ receipt: z.ZodObject<{
69
+ archive_digest: z.ZodString;
70
+ artifact_digest: z.ZodString;
71
+ build_policy_digest: z.ZodString;
72
+ bundle_digest: z.ZodString;
73
+ launcher_digest: z.ZodString;
74
+ mapping_handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
75
+ network_alias: z.ZodString;
76
+ operation_handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
77
+ platform: z.ZodObject<{
78
+ architecture: z.ZodEnum<{
79
+ amd64: "amd64";
80
+ arm64: "arm64";
81
+ }>;
82
+ os: z.ZodLiteral<"linux">;
83
+ }, z.core.$strict>;
84
+ platform_digest: z.ZodString;
85
+ receipt_digest: z.ZodString;
86
+ request_digest: z.ZodString;
87
+ selected_target: z.ZodObject<{
88
+ fingerprint: z.ZodString;
89
+ handle: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").OpaqueTargetHandle, string>>;
90
+ }, z.core.$strict>;
91
+ version: z.ZodLiteral<"spawnfile.target-local-container-bundle.prepare-receipt.v1">;
92
+ }, z.core.$strict>;
93
+ status: z.ZodLiteral<"completed">;
94
+ idempotency_key: z.ZodString;
95
+ request_digest: z.ZodString;
96
+ version: z.ZodLiteral<"spawnfile.target-local-container-bundle.lookup.v1">;
97
+ }, z.core.$strict>], "status">;
98
+ export declare const targetLocalBundleLookupRequestSchema: z.ZodObject<{
99
+ idempotency_key: z.ZodString;
100
+ request_digest: z.ZodString;
101
+ version: z.ZodLiteral<"spawnfile.target-local-container-bundle.lookup.v1">;
102
+ }, z.core.$strict>;
103
+ export type TargetLocalBundlePrepareRequest = z.infer<typeof targetLocalBundlePrepareRequestSchema>;
104
+ export type TargetLocalBundlePrepareReceipt = z.infer<typeof targetLocalBundlePrepareReceiptSchema>;
105
+ export type TargetLocalBundleLookup = z.infer<typeof targetLocalBundleLookupSchema>;
106
+ export type TargetLocalBundleLookupRequest = z.infer<typeof targetLocalBundleLookupRequestSchema>;
107
+ export declare const parseTargetLocalBundlePrepareRequest: (raw: unknown) => TargetLocalBundlePrepareRequest;
108
+ export declare const parseTargetLocalBundlePrepareReceipt: (raw: unknown) => TargetLocalBundlePrepareReceipt;
109
+ export declare const parseTargetLocalBundleLookup: (raw: unknown) => TargetLocalBundleLookup;
110
+ export declare const parseTargetLocalBundleLookupRequest: (raw: unknown) => TargetLocalBundleLookupRequest;
111
+ export declare const createTargetLocalBundleRequestDigest: (raw: unknown) => `sha256:${string}`;
112
+ export declare const createTargetLocalBundleReceiptDigest: (raw: unknown) => `sha256:${string}`;
113
+ export declare const createCanonicalTargetLocalBundleReceiptBytes: (raw: unknown) => string;
114
+ export declare const createCanonicalTargetLocalBundleLookupBytes: (raw: unknown) => string;
@@ -0,0 +1,173 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { createHash } from "node:crypto";
3
+ import { z } from "zod";
4
+ import { assertOrdinaryJsonGraph, opaqueTargetHandleSchema, selectedTargetSchema } from "./contracts.js";
5
+ export const TARGET_LOCAL_BUNDLE_PREPARE_REQUEST_VERSION = "spawnfile.target-local-container-bundle.prepare-request.v1";
6
+ export const TARGET_LOCAL_BUNDLE_PREPARE_RECEIPT_VERSION = "spawnfile.target-local-container-bundle.prepare-receipt.v1";
7
+ export const TARGET_LOCAL_BUNDLE_LOOKUP_VERSION = "spawnfile.target-local-container-bundle.lookup.v1";
8
+ const digest = z.string().regex(/^sha256:[a-f0-9]{64}$/u);
9
+ const idempotency = z.string().regex(/^idem_[a-z0-9]{16,64}$/u);
10
+ const alias = z.string().regex(/^[a-z][a-z0-9-]{0,62}$/u);
11
+ const archivePath = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._/-]{0,255}$/u)
12
+ .refine((value) => !value.includes("//") && !value.split("/").some((part) => part === "." || part === ".."))
13
+ .refine((value) => {
14
+ if (Buffer.byteLength(value, "utf8") <= 100)
15
+ return true;
16
+ const split = value.lastIndexOf("/");
17
+ return split > 0 && Buffer.byteLength(value.slice(0, split), "utf8") <= 155
18
+ && Buffer.byteLength(value.slice(split + 1), "utf8") <= 100;
19
+ });
20
+ const platform = z.object({ architecture: z.enum(["amd64", "arm64"]), os: z.literal("linux") }).strict();
21
+ const canonicalBase64 = (value) => {
22
+ if (value.length > 5_592_408 || value.length % 4 !== 0)
23
+ return false;
24
+ let padding = 0;
25
+ for (let index = 0; index < value.length; index += 1) {
26
+ const code = value.charCodeAt(index);
27
+ const equals = code === 61;
28
+ const ordinary = code >= 65 && code <= 90 || code >= 97 && code <= 122 || code >= 48 && code <= 57 || code === 43 || code === 47;
29
+ if (!equals && !ordinary || equals && index < value.length - 2)
30
+ return false;
31
+ if (equals)
32
+ padding += 1;
33
+ else if (padding > 0)
34
+ return false;
35
+ }
36
+ if (padding > 2 || padding === 1 && value.at(-1) !== "=" || padding === 2 && !value.endsWith("=="))
37
+ return false;
38
+ const bytes = Buffer.from(value, "base64");
39
+ return bytes.byteLength <= 4_194_304 && bytes.toString("base64") === value;
40
+ };
41
+ const archiveBytes = z.string().refine(canonicalBase64);
42
+ const canonicalEntries = (items) => items.every((item, index) => (index === 0 || items[index - 1] < item) && archivePath.safeParse(item).success);
43
+ export const targetLocalBundlePrepareRequestSchema = z.object({
44
+ archive_base64: archiveBytes,
45
+ archive_digest: digest,
46
+ archive_entries: z.array(archivePath).min(1).max(32).superRefine((items, context) => {
47
+ if (!canonicalEntries(items)) {
48
+ context.addIssue({ code: z.ZodIssueCode.custom, message: "archive entries must be canonical" });
49
+ }
50
+ }),
51
+ artifact_digest: digest,
52
+ build_policy_digest: digest,
53
+ bundle_digest: digest,
54
+ entrypoint: archivePath,
55
+ idempotency_key: idempotency,
56
+ launcher_digest: digest,
57
+ network_alias: alias,
58
+ platform,
59
+ platform_digest: digest,
60
+ selected_target: selectedTargetSchema,
61
+ version: z.literal(TARGET_LOCAL_BUNDLE_PREPARE_REQUEST_VERSION)
62
+ }).strict().superRefine((value, context) => {
63
+ if (new Set([value.archive_digest, value.artifact_digest, value.build_policy_digest,
64
+ value.bundle_digest, value.launcher_digest, value.platform_digest]).size !== 6) {
65
+ context.addIssue({ code: z.ZodIssueCode.custom, message: "bundle correlations must be distinct" });
66
+ }
67
+ if (!value.archive_entries.includes(value.entrypoint)) {
68
+ context.addIssue({ code: z.ZodIssueCode.custom, message: "entrypoint must be an admitted archive entry" });
69
+ }
70
+ });
71
+ const receiptBodySchema = z.object({
72
+ archive_digest: digest,
73
+ artifact_digest: digest,
74
+ build_policy_digest: digest,
75
+ bundle_digest: digest,
76
+ launcher_digest: digest,
77
+ mapping_handle: opaqueTargetHandleSchema,
78
+ network_alias: alias,
79
+ operation_handle: opaqueTargetHandleSchema,
80
+ platform,
81
+ platform_digest: digest,
82
+ receipt_digest: digest,
83
+ request_digest: digest,
84
+ selected_target: selectedTargetSchema,
85
+ version: z.literal(TARGET_LOCAL_BUNDLE_PREPARE_RECEIPT_VERSION)
86
+ }).strict();
87
+ export const targetLocalBundlePrepareReceiptSchema = receiptBodySchema;
88
+ const lookupBase = {
89
+ idempotency_key: idempotency,
90
+ request_digest: digest,
91
+ version: z.literal(TARGET_LOCAL_BUNDLE_LOOKUP_VERSION)
92
+ };
93
+ export const targetLocalBundleLookupSchema = z.discriminatedUnion("status", [
94
+ z.object({ ...lookupBase, status: z.literal("not_applied") }).strict(),
95
+ z.object({ ...lookupBase, operation_handle: opaqueTargetHandleSchema, status: z.literal("pending") }).strict(),
96
+ z.object({ ...lookupBase, operation_handle: opaqueTargetHandleSchema, receipt: receiptBodySchema, status: z.literal("completed") }).strict()
97
+ ]);
98
+ export const targetLocalBundleLookupRequestSchema = z.object({
99
+ idempotency_key: idempotency,
100
+ request_digest: digest,
101
+ version: z.literal(TARGET_LOCAL_BUNDLE_LOOKUP_VERSION)
102
+ }).strict();
103
+ /* The generic JSON graph guard intentionally caps ordinary control messages at
104
+ * 64 KiB. A bundle request is the one bounded binary envelope: its canonical
105
+ * base64 may be 5,592,408 bytes for a 4 MiB archive. Clone descriptor values
106
+ * first, replacing only that field for graph admission, so schema parsing
107
+ * never invokes caller-owned accessors or proxies. */
108
+ const safeBundleRequestGraph = (raw) => {
109
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
110
+ assertOrdinaryJsonGraph(raw);
111
+ return raw;
112
+ }
113
+ const prototype = Object.getPrototypeOf(raw);
114
+ const descriptors = Object.getOwnPropertyDescriptors(raw);
115
+ const archive = descriptors.archive_base64;
116
+ if (prototype !== Object.prototype || !archive || !("value" in archive) || typeof archive.value !== "string") {
117
+ assertOrdinaryJsonGraph(raw);
118
+ return raw;
119
+ }
120
+ const admitted = Object.create(Object.prototype);
121
+ Object.defineProperties(admitted, descriptors);
122
+ Object.defineProperty(admitted, "archive_base64", { configurable: true, enumerable: true, value: "", writable: true });
123
+ assertOrdinaryJsonGraph(admitted);
124
+ Object.defineProperty(admitted, "archive_base64", { configurable: true, enumerable: true, value: archive.value, writable: true });
125
+ return admitted;
126
+ };
127
+ export const parseTargetLocalBundlePrepareRequest = (raw) => {
128
+ return targetLocalBundlePrepareRequestSchema.parse(safeBundleRequestGraph(raw));
129
+ };
130
+ export const parseTargetLocalBundlePrepareReceipt = (raw) => {
131
+ assertOrdinaryJsonGraph(raw);
132
+ const parsed = targetLocalBundlePrepareReceiptSchema.parse(raw);
133
+ if (parsed.receipt_digest !== createTargetLocalBundleReceiptDigest(parsed))
134
+ throw new Error("Container bundle receipt failed");
135
+ return parsed;
136
+ };
137
+ export const parseTargetLocalBundleLookup = (raw) => {
138
+ assertOrdinaryJsonGraph(raw);
139
+ const parsed = targetLocalBundleLookupSchema.parse(raw);
140
+ if (parsed.status === "completed") {
141
+ const receipt = parseTargetLocalBundlePrepareReceipt(parsed.receipt);
142
+ if (receipt.operation_handle !== parsed.operation_handle || receipt.request_digest !== parsed.request_digest) {
143
+ throw new Error("Container bundle lookup failed");
144
+ }
145
+ }
146
+ return parsed;
147
+ };
148
+ export const parseTargetLocalBundleLookupRequest = (raw) => {
149
+ assertOrdinaryJsonGraph(raw);
150
+ return targetLocalBundleLookupRequestSchema.parse(raw);
151
+ };
152
+ const canonical = (value, trusted = false) => {
153
+ if (!trusted)
154
+ assertOrdinaryJsonGraph(value);
155
+ if (Array.isArray(value))
156
+ return `[${value.map((item) => canonical(item, true)).join(",")}]`;
157
+ if (value !== null && typeof value === "object") {
158
+ const record = value;
159
+ return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${canonical(record[key], true)}`).join(",")}}`;
160
+ }
161
+ return JSON.stringify(value);
162
+ };
163
+ const hashed = (domain, value, trusted = false) => `sha256:${createHash("sha256")
164
+ .update(`spawnfile.target-local-container-bundle.${domain}.v1\0`, "utf8")
165
+ .update(canonical(value, trusted), "utf8").digest("hex")}`;
166
+ export const createTargetLocalBundleRequestDigest = (raw) => hashed("request", parseTargetLocalBundlePrepareRequest(raw), true);
167
+ export const createTargetLocalBundleReceiptDigest = (raw) => {
168
+ assertOrdinaryJsonGraph(raw);
169
+ const { receipt_digest: _digest, ...body } = targetLocalBundlePrepareReceiptSchema.parse(raw);
170
+ return hashed("receipt", body);
171
+ };
172
+ export const createCanonicalTargetLocalBundleReceiptBytes = (raw) => canonical(parseTargetLocalBundlePrepareReceipt(raw));
173
+ export const createCanonicalTargetLocalBundleLookupBytes = (raw) => canonical(parseTargetLocalBundleLookup(raw));
@@ -0,0 +1,3 @@
1
+ import { type TargetLocalBundleStore } from "./containerBundleStore.js";
2
+ /** Secure single-file persistence around the strict exact-key store. */
3
+ export declare const initializeFilesystemTargetLocalBundleStore: (root: unknown) => Promise<TargetLocalBundleStore>;