spawnfile 0.1.12 → 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 (620) hide show
  1. package/README.md +58 -12
  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/runtimeCredentials.js +18 -2
  31. package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
  32. package/dist/auth/targetSecretSourceAuthor.js +52 -0
  33. package/dist/auth/targetSecretSourceFsPublish.d.ts +15 -0
  34. package/dist/auth/targetSecretSourceFsPublish.js +49 -0
  35. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +16 -0
  36. package/dist/auth/targetSecretSourceFsPublishImmutable.js +435 -0
  37. package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
  38. package/dist/auth/targetSecretSourceFsRead.js +198 -0
  39. package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
  40. package/dist/auth/targetSecretSourceGrant.js +99 -0
  41. package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
  42. package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
  43. package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
  44. package/dist/auth/targetSecretSourceLifecycle.js +52 -0
  45. package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
  46. package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
  47. package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
  48. package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
  49. package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
  50. package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
  51. package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
  52. package/dist/auth/targetSecretSourceResolver.js +137 -0
  53. package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
  54. package/dist/auth/targetSecretSourceRevoke.js +92 -0
  55. package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
  56. package/dist/auth/targetSecretSourceRotate.js +121 -0
  57. package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
  58. package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
  59. package/dist/cli/artifactsCommands.d.ts +27 -0
  60. package/dist/cli/artifactsCommands.js +132 -0
  61. package/dist/cli/authCommands.d.ts +5 -0
  62. package/dist/cli/authCommands.js +221 -0
  63. package/dist/cli/compileBuildCommands.d.ts +3 -0
  64. package/dist/cli/compileBuildCommands.js +35 -0
  65. package/dist/cli/containerBundleCommand.d.ts +6 -0
  66. package/dist/cli/containerBundleCommand.js +116 -0
  67. package/dist/cli/devCommands.d.ts +3 -0
  68. package/dist/cli/devCommands.js +115 -0
  69. package/dist/cli/downCommand.d.ts +25 -0
  70. package/dist/cli/downCommand.js +134 -0
  71. package/dist/cli/index.js +6 -3
  72. package/dist/cli/lifecycleCommands.d.ts +1 -1
  73. package/dist/cli/lifecycleCommands.js +11 -179
  74. package/dist/cli/lifecycleMachine.d.ts +19 -0
  75. package/dist/cli/lifecycleMachine.js +78 -0
  76. package/dist/cli/lifecyclePlan.d.ts +35 -0
  77. package/dist/cli/lifecyclePlan.js +240 -0
  78. package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
  79. package/dist/cli/lifecyclePlanningCommands.js +30 -0
  80. package/dist/cli/runCli.d.ts +15 -2
  81. package/dist/cli/runCli.js +31 -71
  82. package/dist/cli/runPublishCommands.d.ts +3 -0
  83. package/dist/cli/runPublishCommands.js +70 -0
  84. package/dist/cli/statusCommand.d.ts +3 -32
  85. package/dist/cli/statusCommand.js +37 -233
  86. package/dist/cli/statusCommandLive.d.ts +20 -0
  87. package/dist/cli/statusCommandLive.js +188 -0
  88. package/dist/cli/statusCommandOptions.d.ts +40 -0
  89. package/dist/cli/statusCommandOptions.js +42 -0
  90. package/dist/cli/targetCliRoute.d.ts +2 -0
  91. package/dist/cli/targetCliRoute.js +30 -0
  92. package/dist/cli/targetCommands.d.ts +33 -0
  93. package/dist/cli/targetCommands.js +257 -0
  94. package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
  95. package/dist/cli/targetComposedPreparationCommand.js +39 -0
  96. package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
  97. package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
  98. package/dist/cli/targetDefaultAuthorities.d.ts +53 -0
  99. package/dist/cli/targetDefaultAuthorities.js +210 -0
  100. package/dist/cli/targetDefaultConfig.d.ts +68 -0
  101. package/dist/cli/targetDefaultConfig.js +317 -0
  102. package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
  103. package/dist/cli/targetDefaultConfigStdin.js +215 -0
  104. package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
  105. package/dist/cli/targetDefaultEnvelope.js +13 -0
  106. package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
  107. package/dist/cli/targetDefaultHandlerFactory.js +247 -0
  108. package/dist/cli/targetDefaultHandlers.d.ts +21 -0
  109. package/dist/cli/targetDefaultHandlers.js +72 -0
  110. package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
  111. package/dist/cli/targetDefaultJournalAuthority.js +135 -0
  112. package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
  113. package/dist/cli/targetDefaultWorldClock.js +14 -0
  114. package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
  115. package/dist/cli/targetDefaultWorldQueries.js +11 -0
  116. package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
  117. package/dist/cli/targetDefaultWorldReadiness.js +17 -0
  118. package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
  119. package/dist/cli/targetEvidenceHelperResolution.js +23 -0
  120. package/dist/cli/targetLookupCli.d.ts +3 -0
  121. package/dist/cli/targetLookupCli.js +31 -0
  122. package/dist/cli/targetLookupCommands.d.ts +12 -0
  123. package/dist/cli/targetLookupCommands.js +69 -0
  124. package/dist/cli/targetOperationDispatch.d.ts +58 -0
  125. package/dist/cli/targetOperationDispatch.js +21 -0
  126. package/dist/cli/targetReceiptOutput.d.ts +14 -0
  127. package/dist/cli/targetReceiptOutput.js +21 -0
  128. package/dist/cli/targetRequestFile.d.ts +14 -0
  129. package/dist/cli/targetRequestFile.js +63 -0
  130. package/dist/cli/targetSecretSourceInput.d.ts +28 -0
  131. package/dist/cli/targetSecretSourceInput.js +121 -0
  132. package/dist/cli/targetWorldClockCommand.d.ts +10 -0
  133. package/dist/cli/targetWorldClockCommand.js +42 -0
  134. package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +13 -0
  135. package/dist/cli/targetWorldClockCrossProcess.test-helper.js +109 -0
  136. package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
  137. package/dist/cli/targetWorldReadinessCommand.js +43 -0
  138. package/dist/cli/upCommand.d.ts +3 -0
  139. package/dist/cli/upCommand.js +133 -0
  140. package/dist/cli/upImageCommand.d.ts +11 -0
  141. package/dist/cli/upImageCommand.js +41 -0
  142. package/dist/cli/upLifecycleInvocation.d.ts +41 -0
  143. package/dist/cli/upLifecycleInvocation.js +48 -0
  144. package/dist/cli/upLifecycleRecovery.d.ts +4 -0
  145. package/dist/cli/upLifecycleRecovery.js +53 -0
  146. package/dist/compiler/agentNodeMerge.d.ts +2 -0
  147. package/dist/compiler/agentNodeMerge.js +79 -0
  148. package/dist/compiler/agentSurfaces.js +11 -1
  149. package/dist/compiler/buildCompilePlan.js +17 -0
  150. package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
  151. package/dist/compiler/buildCompilePlanAgent.js +56 -0
  152. package/dist/compiler/buildCompilePlanTeams.d.ts +1 -0
  153. package/dist/compiler/buildCompilePlanTeams.js +4 -1
  154. package/dist/compiler/buildCompilePlanTraversal.js +75 -82
  155. package/dist/compiler/buildProject.d.ts +20 -1
  156. package/dist/compiler/buildProject.js +121 -7
  157. package/dist/compiler/compilePlanHelpers.js +2 -0
  158. package/dist/compiler/compileProject.d.ts +15 -0
  159. package/dist/compiler/compileProject.js +29 -75
  160. package/dist/compiler/compileProjectPolicy.d.ts +5 -0
  161. package/dist/compiler/compileProjectPolicy.js +21 -0
  162. package/dist/compiler/compileProjectReports.d.ts +9 -0
  163. package/dist/compiler/compileProjectReports.js +52 -0
  164. package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
  165. package/dist/compiler/containerArtifactSummaries.js +138 -0
  166. package/dist/compiler/containerArtifacts.d.ts +10 -0
  167. package/dist/compiler/containerArtifacts.js +126 -125
  168. package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
  169. package/dist/compiler/containerArtifactsPlans.js +31 -118
  170. package/dist/compiler/containerArtifactsRender.d.ts +3 -1
  171. package/dist/compiler/containerArtifactsRender.js +40 -81
  172. package/dist/compiler/containerArtifactsTypes.d.ts +12 -0
  173. package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
  174. package/dist/compiler/containerConfigEnvRender.js +54 -0
  175. package/dist/compiler/containerEntrypointRender.d.ts +1 -0
  176. package/dist/compiler/containerEntrypointRender.js +60 -53
  177. package/dist/compiler/containerEntrypointShell.d.ts +5 -0
  178. package/dist/compiler/containerEntrypointShell.js +29 -0
  179. package/dist/compiler/containerPackageOverrides.d.ts +27 -0
  180. package/dist/compiler/containerPackageOverrides.js +63 -0
  181. package/dist/compiler/containerPackageRender.d.ts +15 -0
  182. package/dist/compiler/containerPackageRender.js +63 -0
  183. package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
  184. package/dist/compiler/containerTargetPlanResolution.js +97 -0
  185. package/dist/compiler/containerTargetResources.js +3 -1
  186. package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
  187. package/dist/compiler/daimonTelemetryArtifacts.js +61 -0
  188. package/dist/compiler/dockerBuildContext.d.ts +16 -0
  189. package/dist/compiler/dockerBuildContext.js +159 -0
  190. package/dist/compiler/dockerBuildSkip.d.ts +30 -0
  191. package/dist/compiler/dockerBuildSkip.js +81 -0
  192. package/dist/compiler/index.d.ts +4 -0
  193. package/dist/compiler/index.js +4 -0
  194. package/dist/compiler/memoryArtifacts.d.ts +26 -0
  195. package/dist/compiler/memoryArtifacts.js +134 -0
  196. package/dist/compiler/memoryResolution.d.ts +4 -0
  197. package/dist/compiler/memoryResolution.js +147 -0
  198. package/dist/compiler/modelEnv.d.ts +2 -0
  199. package/dist/compiler/modelEnv.js +6 -0
  200. package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
  201. package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
  202. package/dist/compiler/moltnetArtifactPaths.d.ts +26 -0
  203. package/dist/compiler/moltnetArtifactPaths.js +49 -0
  204. package/dist/compiler/moltnetArtifactTypes.d.ts +46 -0
  205. package/dist/compiler/moltnetArtifactTypes.js +1 -0
  206. package/dist/compiler/moltnetArtifacts.d.ts +2 -40
  207. package/dist/compiler/moltnetArtifacts.js +56 -95
  208. package/dist/compiler/moltnetBinaries.d.ts +21 -1
  209. package/dist/compiler/moltnetBinaries.js +156 -28
  210. package/dist/compiler/moltnetClientConfig.js +18 -2
  211. package/dist/compiler/moltnetConfigLowering.d.ts +16 -1
  212. package/dist/compiler/moltnetConfigLowering.js +67 -5
  213. package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
  214. package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
  215. package/dist/compiler/moltnetNodeConfig.js +7 -2
  216. package/dist/compiler/moltnetReleaseAuthority.d.ts +17 -0
  217. package/dist/compiler/moltnetReleaseAuthority.js +73 -0
  218. package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
  219. package/dist/compiler/moltnetReleaseDownload.js +85 -0
  220. package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -0
  221. package/dist/compiler/moltnetRepresentativeResolution.js +16 -2
  222. package/dist/compiler/moltnetResolution.js +72 -20
  223. package/dist/compiler/moltnetRoomMemberships.js +37 -9
  224. package/dist/compiler/moltnetRuntimeConfig.js +11 -0
  225. package/dist/compiler/moltnetServerPlans.d.ts +9 -0
  226. package/dist/compiler/moltnetServerPlans.js +132 -0
  227. package/dist/compiler/organizationIdentity.d.ts +27 -0
  228. package/dist/compiler/organizationIdentity.js +297 -0
  229. package/dist/compiler/organizationReadyEvidence.d.ts +49 -0
  230. package/dist/compiler/organizationReadyEvidence.js +261 -0
  231. package/dist/compiler/projectManifestGraph.d.ts +4 -0
  232. package/dist/compiler/projectManifestGraph.js +24 -0
  233. package/dist/compiler/runProject.d.ts +4 -0
  234. package/dist/compiler/runProject.js +37 -22
  235. package/dist/compiler/runProjectAuth.d.ts +7 -1
  236. package/dist/compiler/runProjectAuth.js +87 -9
  237. package/dist/compiler/runProjectDocker.d.ts +7 -0
  238. package/dist/compiler/runProjectDocker.js +187 -19
  239. package/dist/compiler/runProjectLifecycle.d.ts +7 -0
  240. package/dist/compiler/runProjectLifecycle.js +40 -0
  241. package/dist/compiler/syncProjectAuth.js +4 -1
  242. package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
  243. package/dist/compiler/teamContextActiveEnvironments.js +255 -0
  244. package/dist/compiler/teamContextSupport.js +32 -40
  245. package/dist/compiler/teamContextTypes.d.ts +2 -0
  246. package/dist/compiler/types.d.ts +82 -1
  247. package/dist/compiler/upProject.d.ts +5 -0
  248. package/dist/compiler/upProject.js +257 -20
  249. package/dist/compiler/upReceipt.d.ts +36 -0
  250. package/dist/compiler/upReceipt.js +82 -0
  251. package/dist/compiler/updateProjectModels.js +42 -60
  252. package/dist/compiler/updateProjectRuntime.js +22 -35
  253. package/dist/compiler/updateProjectSurfaces.js +53 -47
  254. package/dist/compiler/worldBindings.d.ts +39 -0
  255. package/dist/compiler/worldBindings.js +247 -0
  256. package/dist/compiler/worldBindingsFile.d.ts +5 -0
  257. package/dist/compiler/worldBindingsFile.js +162 -0
  258. package/dist/deployment/artifactsExport.d.ts +49 -0
  259. package/dist/deployment/artifactsExport.js +217 -0
  260. package/dist/deployment/artifactsExportDocker.d.ts +48 -0
  261. package/dist/deployment/artifactsExportDocker.js +91 -0
  262. package/dist/deployment/artifactsExportPlan.d.ts +24 -0
  263. package/dist/deployment/artifactsExportPlan.js +135 -0
  264. package/dist/deployment/artifactsExportTypes.d.ts +50 -0
  265. package/dist/deployment/artifactsExportTypes.js +52 -0
  266. package/dist/deployment/buildImageCacheStore.d.ts +23 -0
  267. package/dist/deployment/buildImageCacheStore.js +54 -0
  268. package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
  269. package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
  270. package/dist/deployment/dockerInspect.d.ts +9 -0
  271. package/dist/deployment/dockerInspect.js +24 -1
  272. package/dist/deployment/dockerLabels.d.ts +2 -0
  273. package/dist/deployment/dockerLabels.js +2 -0
  274. package/dist/deployment/dockerLogs.js +2 -10
  275. package/dist/deployment/dockerManager.d.ts +51 -0
  276. package/dist/deployment/dockerManager.js +118 -1
  277. package/dist/deployment/dockerProbeGateway.js +64 -5
  278. package/dist/deployment/dockerRecover.d.ts +17 -0
  279. package/dist/deployment/dockerRecover.js +137 -0
  280. package/dist/deployment/dockerTeardown.d.ts +32 -0
  281. package/dist/deployment/dockerTeardown.js +61 -0
  282. package/dist/deployment/downDeployment.d.ts +34 -0
  283. package/dist/deployment/downDeployment.js +147 -0
  284. package/dist/deployment/downReceiptTypes.d.ts +21 -0
  285. package/dist/deployment/downReceiptTypes.js +30 -0
  286. package/dist/deployment/index.d.ts +17 -0
  287. package/dist/deployment/index.js +18 -0
  288. package/dist/deployment/lifecycleCompletion.d.ts +37 -0
  289. package/dist/deployment/lifecycleCompletion.js +236 -0
  290. package/dist/deployment/lifecycleCompletionContracts.d.ts +158 -0
  291. package/dist/deployment/lifecycleCompletionContracts.js +106 -0
  292. package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
  293. package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
  294. package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
  295. package/dist/deployment/lifecycleCompletionLookup.js +88 -0
  296. package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
  297. package/dist/deployment/lifecycleCompletionOwner.js +31 -0
  298. package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
  299. package/dist/deployment/lifecycleCompletionParsing.js +108 -0
  300. package/dist/deployment/lifecycleCompletionPaths.d.ts +9 -0
  301. package/dist/deployment/lifecycleCompletionPaths.js +16 -0
  302. package/dist/deployment/lifecycleCompletionPublication.d.ts +5 -0
  303. package/dist/deployment/lifecycleCompletionPublication.js +35 -0
  304. package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
  305. package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
  306. package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
  307. package/dist/deployment/lifecycleCompletionRoot.js +243 -0
  308. package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
  309. package/dist/deployment/lifecycleCompletionStore.js +151 -0
  310. package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
  311. package/dist/deployment/organizationHandoffAuthorityFsClient.js +132 -0
  312. package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
  313. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +285 -0
  314. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
  315. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
  316. package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
  317. package/dist/deployment/organizationHandoffAuthorityStore.js +348 -0
  318. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
  319. package/dist/deployment/organizationHandoffAuthorityTypes.js +148 -0
  320. package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
  321. package/dist/deployment/organizationHandoffTypes.js +80 -0
  322. package/dist/deployment/organizationReady.d.ts +52 -0
  323. package/dist/deployment/organizationReady.js +200 -0
  324. package/dist/deployment/privateArtifactsExport.d.ts +18 -0
  325. package/dist/deployment/privateArtifactsExport.js +80 -0
  326. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +8 -0
  327. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +60 -0
  328. package/dist/deployment/record.d.ts +26 -1
  329. package/dist/deployment/record.js +49 -4
  330. package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +8 -0
  331. package/dist/deployment/simfileFixtureBoundary.test-helper.js +103 -0
  332. package/dist/deployment/target.d.ts +1 -35
  333. package/dist/deployment/target.js +1 -96
  334. package/dist/deployment/upReceiptTypes.d.ts +111 -0
  335. package/dist/deployment/upReceiptTypes.js +164 -0
  336. package/dist/dev/activity.d.ts +14 -0
  337. package/dist/dev/activity.js +48 -0
  338. package/dist/dev/docker.d.ts +16 -0
  339. package/dist/dev/docker.js +71 -0
  340. package/dist/dev/index.d.ts +2 -0
  341. package/dist/dev/index.js +2 -0
  342. package/dist/dev/project.d.ts +35 -0
  343. package/dist/dev/project.js +170 -0
  344. package/dist/distribution/buildDistributionReport.d.ts +2 -1
  345. package/dist/distribution/buildDistributionReport.js +2 -1
  346. package/dist/distribution/distributionReportSchema.d.ts +5 -0
  347. package/dist/distribution/distributionReportSchema.js +7 -2
  348. package/dist/distribution/index.d.ts +2 -2
  349. package/dist/distribution/index.js +1 -1
  350. package/dist/distribution/types.d.ts +7 -0
  351. package/dist/distribution/types.js +1 -0
  352. package/dist/filesystem/paths.js +10 -1
  353. package/dist/ledger/causalConformanceCli.d.ts +1 -0
  354. package/dist/ledger/causalConformanceCli.js +41 -0
  355. package/dist/ledger/causeNamespace.d.ts +8 -0
  356. package/dist/ledger/causeNamespace.js +24 -0
  357. package/dist/ledger/conformance.d.ts +83 -0
  358. package/dist/ledger/conformance.js +259 -0
  359. package/dist/ledger/emitters.d.ts +76 -0
  360. package/dist/ledger/emitters.js +188 -0
  361. package/dist/ledger/index.d.ts +4 -0
  362. package/dist/ledger/index.js +4 -0
  363. package/dist/ledger/principal.d.ts +96 -0
  364. package/dist/ledger/principal.js +121 -0
  365. package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
  366. package/dist/manifest/externalParticipantSchemas.js +17 -0
  367. package/dist/manifest/index.d.ts +1 -0
  368. package/dist/manifest/index.js +1 -0
  369. package/dist/manifest/inlineAgentMember.d.ts +2 -0
  370. package/dist/manifest/inlineAgentMember.js +9 -0
  371. package/dist/manifest/loadManifest.js +14 -8
  372. package/dist/manifest/mcpSchemas.d.ts +17 -0
  373. package/dist/manifest/mcpSchemas.js +41 -0
  374. package/dist/manifest/memorySchemas.d.ts +245 -0
  375. package/dist/manifest/memorySchemas.js +148 -0
  376. package/dist/manifest/renderSpawnfile.js +22 -131
  377. package/dist/manifest/renderSpawnfileNetworks.js +9 -2
  378. package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
  379. package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
  380. package/dist/manifest/schemas.d.ts +1868 -99
  381. package/dist/manifest/schemas.js +78 -32
  382. package/dist/manifest/surfaceSchemas.d.ts +17 -0
  383. package/dist/manifest/surfaceSchemas.js +24 -1
  384. package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
  385. package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
  386. package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
  387. package/dist/manifest/teamNetworkSchemas.d.ts +8 -187
  388. package/dist/manifest/teamNetworkSchemas.js +3 -317
  389. package/dist/manifest/teamNetworkServerSchemas.d.ts +150 -0
  390. package/dist/manifest/teamNetworkServerSchemas.js +199 -0
  391. package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
  392. package/dist/ownership/siblingBuildFreshness.js +20 -0
  393. package/dist/ownership/simfileRunOperatorInputs.d.ts +103 -0
  394. package/dist/ownership/simfileRunOperatorInputs.js +139 -0
  395. package/dist/report/types.d.ts +142 -0
  396. package/dist/runtime/common.d.ts +37 -0
  397. package/dist/runtime/common.js +56 -1
  398. package/dist/runtime/container.d.ts +29 -1
  399. package/dist/runtime/container.js +127 -11
  400. package/dist/runtime/containerPackageOverrides.d.ts +37 -0
  401. package/dist/runtime/containerPackageOverrides.js +33 -0
  402. package/dist/runtime/index.d.ts +2 -0
  403. package/dist/runtime/index.js +2 -0
  404. package/dist/runtime/install.d.ts +1 -1
  405. package/dist/runtime/install.js +43 -1
  406. package/dist/runtime/mnemeMcp.d.ts +15 -0
  407. package/dist/runtime/mnemeMcp.js +109 -0
  408. package/dist/runtime/openclaw/adapter.js +15 -4
  409. package/dist/runtime/openclaw/mcp.d.ts +10 -0
  410. package/dist/runtime/openclaw/mcp.js +69 -0
  411. package/dist/runtime/openclaw/runAuth.js +2 -2
  412. package/dist/runtime/openclaw/scaffold.js +1 -1
  413. package/dist/runtime/openclaw/schedules.d.ts +38 -0
  414. package/dist/runtime/openclaw/schedules.js +74 -0
  415. package/dist/runtime/pi/adapter.d.ts +4 -0
  416. package/dist/runtime/pi/adapter.js +231 -0
  417. package/dist/runtime/pi/appActivitySource.d.ts +1 -0
  418. package/dist/runtime/pi/appActivitySource.js +199 -0
  419. package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
  420. package/dist/runtime/pi/appAgentConfig.js +264 -0
  421. package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
  422. package/dist/runtime/pi/appCliEnginesSource.js +183 -0
  423. package/dist/runtime/pi/appCliSource.d.ts +1 -0
  424. package/dist/runtime/pi/appCliSource.js +353 -0
  425. package/dist/runtime/pi/appControlSource.d.ts +1 -0
  426. package/dist/runtime/pi/appControlSource.js +390 -0
  427. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
  428. package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
  429. package/dist/runtime/pi/appCoreSource.d.ts +4 -0
  430. package/dist/runtime/pi/appCoreSource.js +244 -0
  431. package/dist/runtime/pi/appPreludeSource.d.ts +1 -0
  432. package/dist/runtime/pi/appPreludeSource.js +191 -0
  433. package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
  434. package/dist/runtime/pi/appScheduleSource.js +80 -0
  435. package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
  436. package/dist/runtime/pi/appScriptedEngine.js +42 -0
  437. package/dist/runtime/pi/appSource.d.ts +4 -0
  438. package/dist/runtime/pi/appSource.js +12 -0
  439. package/dist/runtime/pi/appTemplate.d.ts +14 -0
  440. package/dist/runtime/pi/appTemplate.js +27 -0
  441. package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
  442. package/dist/runtime/pi/appTemplateTypes.js +18 -0
  443. package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
  444. package/dist/runtime/pi/appWakeContextSource.js +398 -0
  445. package/dist/runtime/pi/containerTargets.d.ts +4 -0
  446. package/dist/runtime/pi/containerTargets.js +57 -0
  447. package/dist/runtime/pi/runAuth.d.ts +2 -0
  448. package/dist/runtime/pi/runAuth.js +185 -0
  449. package/dist/runtime/pi/testHelpers.d.ts +2 -0
  450. package/dist/runtime/pi/testHelpers.js +40 -0
  451. package/dist/runtime/picoclaw/adapter.js +23 -27
  452. package/dist/runtime/picoclaw/mcp.d.ts +4 -0
  453. package/dist/runtime/picoclaw/mcp.js +43 -0
  454. package/dist/runtime/picoclaw/memory.d.ts +7 -0
  455. package/dist/runtime/picoclaw/memory.js +17 -0
  456. package/dist/runtime/picoclaw/runAuth.js +1 -1
  457. package/dist/runtime/picoclaw/scaffold.js +1 -1
  458. package/dist/runtime/picoclaw/schedules.d.ts +26 -0
  459. package/dist/runtime/picoclaw/schedules.js +62 -3
  460. package/dist/runtime/registry.js +3 -0
  461. package/dist/runtime/scheduleUtils.d.ts +2 -0
  462. package/dist/runtime/scheduleUtils.js +15 -0
  463. package/dist/runtime/types.d.ts +26 -2
  464. package/dist/shared/errors.d.ts +1 -1
  465. package/dist/shared/errors.js +2 -2
  466. package/dist/shared/index.d.ts +1 -0
  467. package/dist/shared/index.js +1 -0
  468. package/dist/shared/redaction.d.ts +2 -0
  469. package/dist/shared/redaction.js +10 -0
  470. package/dist/status/buildStatus.d.ts +1 -0
  471. package/dist/status/buildStatus.js +2 -0
  472. package/dist/status/compileReport.d.ts +22 -0
  473. package/dist/status/compileReport.js +16 -2
  474. package/dist/status/compiledProbeCollection.d.ts +21 -0
  475. package/dist/status/compiledProbeCollection.js +27 -0
  476. package/dist/status/deployments.js +5 -12
  477. package/dist/status/imageStatusReport.js +6 -0
  478. package/dist/status/index.d.ts +3 -0
  479. package/dist/status/index.js +3 -0
  480. package/dist/status/lifecycleProbes.d.ts +19 -0
  481. package/dist/status/lifecycleProbes.js +174 -0
  482. package/dist/status/moltnetProbes.d.ts +7 -8
  483. package/dist/status/moltnetProbes.js +27 -198
  484. package/dist/status/moltnetWiringProbes.d.ts +19 -0
  485. package/dist/status/moltnetWiringProbes.js +178 -0
  486. package/dist/target/cleanupRun.d.ts +41 -0
  487. package/dist/target/cleanupRun.js +139 -0
  488. package/dist/target/cleanupRunDocker.d.ts +16 -0
  489. package/dist/target/cleanupRunDocker.js +66 -0
  490. package/dist/target/cleanupRunDocker.test-helper.d.ts +67 -0
  491. package/dist/target/cleanupRunDocker.test-helper.js +238 -0
  492. package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
  493. package/dist/target/cleanupRunDockerPreflight.js +224 -0
  494. package/dist/target/composedPreparation.d.ts +205 -0
  495. package/dist/target/composedPreparation.js +223 -0
  496. package/dist/target/containerBundle.d.ts +82 -0
  497. package/dist/target/containerBundle.js +243 -0
  498. package/dist/target/containerBundleArchive.d.ts +31 -0
  499. package/dist/target/containerBundleArchive.js +140 -0
  500. package/dist/target/containerBundleAuthority.d.ts +25 -0
  501. package/dist/target/containerBundleAuthority.js +65 -0
  502. package/dist/target/containerBundleContracts.d.ts +114 -0
  503. package/dist/target/containerBundleContracts.js +173 -0
  504. package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
  505. package/dist/target/containerBundleFilesystemStore.js +247 -0
  506. package/dist/target/containerBundlePolicy.d.ts +33 -0
  507. package/dist/target/containerBundlePolicy.js +64 -0
  508. package/dist/target/containerBundleStore.d.ts +127 -0
  509. package/dist/target/containerBundleStore.js +284 -0
  510. package/dist/target/contracts.d.ts +538 -0
  511. package/dist/target/contracts.js +373 -0
  512. package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
  513. package/dist/target/dockerArtifactIdentityTypes.js +1 -0
  514. package/dist/target/dockerArtifactInspection.d.ts +40 -0
  515. package/dist/target/dockerArtifactInspection.js +125 -0
  516. package/dist/target/dockerArtifacts.d.ts +21 -0
  517. package/dist/target/dockerArtifacts.js +110 -0
  518. package/dist/target/dockerArtifactsProvider.d.ts +41 -0
  519. package/dist/target/dockerArtifactsProvider.js +449 -0
  520. package/dist/target/dockerCommandExecutor.d.ts +27 -0
  521. package/dist/target/dockerCommandExecutor.js +200 -0
  522. package/dist/target/dockerCommandExecutorCore.d.ts +34 -0
  523. package/dist/target/dockerCommandExecutorCore.js +273 -0
  524. package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
  525. package/dist/target/dockerContainerBundleBuilder.js +256 -0
  526. package/dist/target/dockerContextSnapshot.d.ts +21 -0
  527. package/dist/target/dockerContextSnapshot.js +158 -0
  528. package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
  529. package/dist/target/dockerEndpointFingerprint.js +9 -0
  530. package/dist/target/dockerPreparedArtifact.d.ts +48 -0
  531. package/dist/target/dockerPreparedArtifact.js +131 -0
  532. package/dist/target/dockerProjectionJson.d.ts +1 -0
  533. package/dist/target/dockerProjectionJson.js +80 -0
  534. package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
  535. package/dist/target/dockerPublicArtifactSnapshot.js +99 -0
  536. package/dist/target/dockerResources.d.ts +26 -0
  537. package/dist/target/dockerResources.js +162 -0
  538. package/dist/target/dockerResourcesProvider.d.ts +44 -0
  539. package/dist/target/dockerResourcesProvider.js +207 -0
  540. package/dist/target/dockerSecrets.d.ts +39 -0
  541. package/dist/target/dockerSecrets.js +249 -0
  542. package/dist/target/dockerSecretsAuthority.d.ts +26 -0
  543. package/dist/target/dockerSecretsAuthority.js +216 -0
  544. package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
  545. package/dist/target/dockerSecretsLifecycle.js +133 -0
  546. package/dist/target/dockerSecretsProvider.d.ts +68 -0
  547. package/dist/target/dockerSecretsProvider.js +329 -0
  548. package/dist/target/dockerTarget.d.ts +52 -0
  549. package/dist/target/dockerTarget.js +48 -0
  550. package/dist/target/dockerTargetBinding.d.ts +14 -0
  551. package/dist/target/dockerTargetBinding.js +96 -0
  552. package/dist/target/dockerWorldClock.d.ts +17 -0
  553. package/dist/target/dockerWorldClock.js +111 -0
  554. package/dist/target/dockerWorldReadiness.d.ts +17 -0
  555. package/dist/target/dockerWorldReadiness.js +119 -0
  556. package/dist/target/dockerWorldService.d.ts +23 -0
  557. package/dist/target/dockerWorldService.js +216 -0
  558. package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
  559. package/dist/target/dockerWorldServiceAuthority.js +182 -0
  560. package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
  561. package/dist/target/dockerWorldServiceLifecycle.js +275 -0
  562. package/dist/target/dockerWorldServiceProvider.d.ts +60 -0
  563. package/dist/target/dockerWorldServiceProvider.js +318 -0
  564. package/dist/target/dockerWorldServiceStore.d.ts +73 -0
  565. package/dist/target/dockerWorldServiceStore.js +367 -0
  566. package/dist/target/evidenceExport.d.ts +55 -0
  567. package/dist/target/evidenceExport.js +518 -0
  568. package/dist/target/evidenceExportArchive.d.ts +10 -0
  569. package/dist/target/evidenceExportArchive.js +302 -0
  570. package/dist/target/evidenceExportContract.d.ts +27 -0
  571. package/dist/target/evidenceExportContract.js +40 -0
  572. package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
  573. package/dist/target/evidenceExportOperationsTestKit.js +312 -0
  574. package/dist/target/evidenceExportProvider.d.ts +85 -0
  575. package/dist/target/evidenceExportProvider.js +187 -0
  576. package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
  577. package/dist/target/evidenceExportPublicationTypes.js +1 -0
  578. package/dist/target/evidenceExportStore.d.ts +70 -0
  579. package/dist/target/evidenceExportStore.js +498 -0
  580. package/dist/target/evidenceExportStorePublication.d.ts +7 -0
  581. package/dist/target/evidenceExportStorePublication.js +395 -0
  582. package/dist/target/handles.d.ts +20 -0
  583. package/dist/target/handles.js +56 -0
  584. package/dist/target/index.d.ts +12 -0
  585. package/dist/target/index.js +11 -0
  586. package/dist/target/journal.d.ts +59 -0
  587. package/dist/target/journal.js +529 -0
  588. package/dist/target/journalFilesystem.d.ts +3 -0
  589. package/dist/target/journalFilesystem.js +111 -0
  590. package/dist/target/journalRoot.d.ts +4 -0
  591. package/dist/target/journalRoot.js +6 -0
  592. package/dist/target/organizationAttachment.d.ts +23 -0
  593. package/dist/target/organizationAttachment.js +263 -0
  594. package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
  595. package/dist/target/organizationAttachmentAuthority.js +161 -0
  596. package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
  597. package/dist/target/organizationAttachmentLifecycle.js +101 -0
  598. package/dist/target/organizationAttachmentProvider.d.ts +76 -0
  599. package/dist/target/organizationAttachmentProvider.js +289 -0
  600. package/dist/target/organizationAttachmentStore.d.ts +51 -0
  601. package/dist/target/organizationAttachmentStore.js +316 -0
  602. package/dist/target/publicArtifactSnapshot.d.ts +41 -0
  603. package/dist/target/publicArtifactSnapshot.js +150 -0
  604. package/dist/target/topologyActivation.d.ts +51 -0
  605. package/dist/target/topologyActivation.js +149 -0
  606. package/dist/target/topologyAttestation.d.ts +37 -0
  607. package/dist/target/topologyAttestation.js +300 -0
  608. package/dist/target/topologyAttestationErrors.d.ts +1 -0
  609. package/dist/target/topologyAttestationErrors.js +1 -0
  610. package/dist/target/worldClock.d.ts +60 -0
  611. package/dist/target/worldClock.js +129 -0
  612. package/dist/target/worldReadiness.d.ts +103 -0
  613. package/dist/target/worldReadiness.js +153 -0
  614. package/moltnet-releases.json +20 -0
  615. package/package.json +29 -8
  616. package/runtimes.yaml +28 -27
  617. package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
  618. package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
  619. /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
  620. /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
@@ -0,0 +1,259 @@
1
+ import { checkSeqContiguity, parseCausalJsonl, reconcileEvents, traceCausesBackward } from "@noopolis/stele";
2
+ import { checkCauseNamespaces } from "./causeNamespace.js";
3
+ import { collectEmitterFixtures, EMITTER_RUN_ID, EMITTER_SPECS, realExec } from "./emitters.js";
4
+ import { PRINCIPAL_DISCIPLINE_CHECKS } from "./principal.js";
5
+ /**
6
+ * Shared payload minimum for every world.act variant (specs/CAUSAL.md, the
7
+ * simfile runtime AGENTS.md). The wire never carries the literal type
8
+ * `world.act` — simfile emits the family members `world.message`,
9
+ * `world.dm`, and `wake.recommended` — but `world.act` is kept as its own
10
+ * declared type key so a hypothetical direct `world.act` record is still
11
+ * enforced, and so tests can assert the minimum by its family name.
12
+ */
13
+ const WORLD_ACT_REQUIRED_KEYS = ["sim_time", "provenance", "actor", "target", "scope", "act_id", "action", "value"];
14
+ /**
15
+ * Payload minimums for the event types named in specs/CAUSAL.md and the B57/
16
+ * B92 family packets. `runSyntheticConformance` validates seeded fixture
17
+ * text against these; `runRealConformance` (B92) validates the four real
18
+ * sibling emitters' output against the same minimums.
19
+ */
20
+ export const DEFAULT_PAYLOAD_MINIMUMS = [
21
+ { requiredKeys: ["message_id", "content_sha256"], type: "message.accepted" },
22
+ {
23
+ requiredKeys: ["turn_id", "input_message_ids", "input_content_sha256", "prompt_sha256"],
24
+ type: "turn.input.submitted"
25
+ },
26
+ { requiredKeys: ["turn_id", "output_sha256"], type: "turn.output.completed" },
27
+ { requiredKeys: ["memory_id", "content_sha256"], type: "memory.recalled" },
28
+ { requiredKeys: WORLD_ACT_REQUIRED_KEYS, type: "world.act" },
29
+ { requiredKeys: WORLD_ACT_REQUIRED_KEYS, type: "world.message" },
30
+ { requiredKeys: WORLD_ACT_REQUIRED_KEYS, type: "world.dm" },
31
+ { requiredKeys: WORLD_ACT_REQUIRED_KEYS, type: "wake.recommended" },
32
+ // B62 enforcement-point denial payloads (specs/CAUSAL.md §"Enforcement
33
+ // points"). Field names mirror each authority's real emitted shape:
34
+ // moltnet's protocol.MessageDeniedPayload (target/reason/content_sha256),
35
+ // mneme's kernel/support.ts denyWriteScope (requested_scope/reason), and
36
+ // daimon's controlCausal.ts emitControlWakeDenied (reason/target_agent_id).
37
+ { requiredKeys: ["target", "reason", "content_sha256"], type: "message.denied" },
38
+ { requiredKeys: ["requested_scope", "reason"], type: "memory.write.denied" },
39
+ { requiredKeys: ["reason", "target_agent_id"], type: "control.wake.denied" }
40
+ ];
41
+ const checkPayloadMinimums = (event, sourceName, requiredKeysByType) => {
42
+ const requiredKeys = requiredKeysByType.get(event.type);
43
+ if (!requiredKeys) {
44
+ return [];
45
+ }
46
+ // `key in payload` (not truthiness) is what lets an explicit `null` value
47
+ // (e.g. wake.recommended's `value: null`) pass: absent is a violation,
48
+ // present-but-null is not.
49
+ const missing = requiredKeys.filter((key) => !(key in event.payload) || event.payload[key] === undefined);
50
+ if (missing.length === 0) {
51
+ return [];
52
+ }
53
+ return [
54
+ {
55
+ message: `event ${event.event_id} of type ${event.type} is missing required payload keys: ${missing.join(", ")}`,
56
+ source: sourceName
57
+ }
58
+ ];
59
+ };
60
+ /**
61
+ * Shared validation core for both synthetic and real conformance: schema
62
+ * parsing (via parseCausalJsonl), payload minimums, and combined per-
63
+ * (run_id, system:stream) seq contiguity across every source (disjoint
64
+ * streams are safe to combine — checkSeqContiguity groups by stream key).
65
+ * An empty source list is always reported as a failure, never a silent
66
+ * no-op.
67
+ */
68
+ const validateConformanceSources = (sources, payloadMinimums, extraChecks = []) => {
69
+ const issues = [];
70
+ if (sources.length === 0) {
71
+ issues.push({ message: "no conformance fixture sources were provided", source: "<none>" });
72
+ }
73
+ const requiredKeysByType = new Map(payloadMinimums.map((minimum) => [minimum.type, minimum.requiredKeys]));
74
+ const allEvents = [];
75
+ for (const source of sources) {
76
+ const { errors, events } = parseCausalJsonl(source.jsonl);
77
+ for (const error of errors) {
78
+ issues.push({ line: error.line, message: error.message, source: source.name });
79
+ }
80
+ for (const event of events) {
81
+ issues.push(...checkPayloadMinimums(event, source.name, requiredKeysByType));
82
+ for (const check of extraChecks) {
83
+ issues.push(...check(event, source.name));
84
+ }
85
+ }
86
+ allEvents.push(...events);
87
+ }
88
+ const contiguity = checkSeqContiguity(allEvents);
89
+ for (const gap of contiguity.gaps) {
90
+ issues.push({
91
+ message: `stream ${gap.runId}/${gap.system}:${gap.streamId} has a seq gap at ${gap.missing.map(({ from, to }) => from === to ? `${from}` : `${from}-${to}`).join(", ")} (max seq ${gap.maxSeq})`,
92
+ source: "<seq>"
93
+ });
94
+ }
95
+ return { events: allEvents, issues };
96
+ };
97
+ /**
98
+ * Validates seeded/synthetic CausalEvent JSONL fixtures against the schema
99
+ * (via parseCausalJsonl), per-stream seq contiguity, payload minimums, and
100
+ * (B62) the principal grammar/consistency discipline in
101
+ * `PRINCIPAL_DISCIPLINE_CHECKS`. An empty source list is always reported as
102
+ * a failure — this harness never silently skips a missing source, even in
103
+ * synthetic mode.
104
+ */
105
+ export const runSyntheticConformance = (sources, payloadMinimums = DEFAULT_PAYLOAD_MINIMUMS) => {
106
+ const { events, issues } = validateConformanceSources(sources, payloadMinimums, PRINCIPAL_DISCIPLINE_CHECKS);
107
+ issues.push(...checkCauseNamespaces(events));
108
+ return { eventCount: events.length, issues, ok: issues.length === 0 };
109
+ };
110
+ /**
111
+ * Locates the B92 interaction-chain roles among a flat CausalEvent[] set,
112
+ * scoped to EMITTER_RUN_ID (every real emitter is invoked with that shared
113
+ * run_id — see emitters.ts): M1/M2 are moltnet message.accepted seq 1/2 on
114
+ * the same stream, R[] is every mneme memory.recalled event in seq order,
115
+ * T1/T1out are daimon's turn.input.submitted/turn.output.completed. A
116
+ * missing role is reported as an issue rather than throwing.
117
+ */
118
+ const identifyChainRoles = (events) => {
119
+ const issues = [];
120
+ const inRun = events.filter((event) => event.run_id === EMITTER_RUN_ID);
121
+ const moltnetAccepted = inRun.filter((event) => event.emitter.system === "moltnet" && event.type === "message.accepted");
122
+ const m1 = moltnetAccepted.find((event) => event.emitter.seq === 1);
123
+ const m2 = moltnetAccepted.find((event) => event.emitter.seq === 2 && (m1 === undefined || event.emitter.stream_id === m1.emitter.stream_id));
124
+ const recalls = inRun
125
+ .filter((event) => event.emitter.system === "mneme" && event.type === "memory.recalled")
126
+ .sort((left, right) => left.emitter.seq - right.emitter.seq);
127
+ const daimonEvents = inRun.filter((event) => event.emitter.system === "daimon");
128
+ const t1 = daimonEvents.find((event) => event.type === "turn.input.submitted");
129
+ const t1out = daimonEvents.find((event) => event.type === "turn.output.completed");
130
+ if (!m1) {
131
+ issues.push({ message: "chain stitch: missing moltnet message.accepted seq 1 (M1)", source: "<chain>" });
132
+ }
133
+ if (!m2) {
134
+ issues.push({ message: "chain stitch: missing moltnet message.accepted seq 2 (M2)", source: "<chain>" });
135
+ }
136
+ if (recalls.length === 0) {
137
+ issues.push({ message: "chain stitch: missing mneme memory.recalled events (R)", source: "<chain>" });
138
+ }
139
+ if (!t1) {
140
+ issues.push({ message: "chain stitch: missing daimon turn.input.submitted (T1)", source: "<chain>" });
141
+ }
142
+ if (!t1out) {
143
+ issues.push({ message: "chain stitch: missing daimon turn.output.completed (T1out)", source: "<chain>" });
144
+ }
145
+ return { issues, m1, m2, recalls, t1, t1out };
146
+ };
147
+ const cloneEvent = (event) => ({
148
+ ...event,
149
+ cause_event_ids: [...event.cause_event_ids],
150
+ payload: { ...event.payload }
151
+ });
152
+ /**
153
+ * Stitches the four independent, non-cross-referencing real fixtures into
154
+ * one interaction chain (B92 §4). Pure: never mutates its input, never does
155
+ * I/O. Rewrites ONLY linkage fields — R[i].cause_event_ids, T1.cause_event_ids,
156
+ * T1.payload.input_message_ids, T1.payload.input_content_sha256, and
157
+ * M2.cause_event_ids — every other field of every event is carried through
158
+ * byte-identical. T1out.cause_event_ids is asserted to already equal [T1.id]
159
+ * (daimon stamps that for real) rather than rewritten.
160
+ *
161
+ * Missing roles or a violated T1out->T1 assertion are reported as issues and
162
+ * the input is returned unstitched rather than guessed at.
163
+ */
164
+ export const stitchInteractionChain = (events) => {
165
+ const roles = identifyChainRoles(events);
166
+ if (roles.issues.length > 0) {
167
+ return { issues: roles.issues, stitched: [...events] };
168
+ }
169
+ const m1 = roles.m1;
170
+ const m2 = roles.m2;
171
+ const t1 = roles.t1;
172
+ const t1out = roles.t1out;
173
+ const recalls = roles.recalls;
174
+ if (t1out.cause_event_ids.length !== 1 || t1out.cause_event_ids[0] !== t1.event_id) {
175
+ return {
176
+ issues: [
177
+ {
178
+ message: `chain stitch: expected daimon turn.output.completed to cause from turn.input.submitted ` +
179
+ `${t1.event_id}, got [${t1out.cause_event_ids.join(", ")}]`,
180
+ source: "<chain>"
181
+ }
182
+ ],
183
+ stitched: [...events]
184
+ };
185
+ }
186
+ const m1MessageId = m1.payload.message_id;
187
+ const m1ContentSha256 = m1.payload.content_sha256;
188
+ if (typeof m1MessageId !== "string" || typeof m1ContentSha256 !== "string") {
189
+ return {
190
+ issues: [
191
+ { message: "chain stitch: moltnet M1 payload is missing string message_id/content_sha256", source: "<chain>" }
192
+ ],
193
+ stitched: [...events]
194
+ };
195
+ }
196
+ const recallIds = new Set(recalls.map((recall) => recall.event_id));
197
+ const stitchedRecallsById = new Map(recalls.map((recall) => {
198
+ const clone = cloneEvent(recall);
199
+ clone.cause_event_ids = [m1.event_id];
200
+ return [recall.event_id, clone];
201
+ }));
202
+ const stitchedT1 = cloneEvent(t1);
203
+ stitchedT1.cause_event_ids = [m1.event_id, ...recalls.map((recall) => recall.event_id)];
204
+ stitchedT1.payload.input_message_ids = [m1MessageId];
205
+ stitchedT1.payload.input_content_sha256 = m1ContentSha256;
206
+ const stitchedM2 = cloneEvent(m2);
207
+ stitchedM2.cause_event_ids = [t1out.event_id];
208
+ const stitched = events.map((event) => {
209
+ if (event.event_id === t1.event_id) {
210
+ return stitchedT1;
211
+ }
212
+ if (event.event_id === m2.event_id) {
213
+ return stitchedM2;
214
+ }
215
+ if (recallIds.has(event.event_id)) {
216
+ return stitchedRecallsById.get(event.event_id);
217
+ }
218
+ return event;
219
+ });
220
+ return { issues: [], stitched };
221
+ };
222
+ /**
223
+ * Collects the four real sibling emitters (emitters.ts), validates them
224
+ * (schema + payload minimums + combined seq contiguity + (B62) the
225
+ * principal grammar/consistency discipline in `PRINCIPAL_DISCIPLINE_CHECKS`
226
+ * — the real path now enforces exactly what `runSyntheticConformance` does,
227
+ * so a real emitter stamping a non-grammar principal is a reported issue,
228
+ * not a silent pass), stitches them into one interaction chain, and
229
+ * reconciles the result. This is B92's real-mode counterpart to
230
+ * runSyntheticConformance: same validation core, live process spawning
231
+ * instead of seeded fixture text.
232
+ */
233
+ export const runRealConformance = async (options = {}) => {
234
+ const { issues: collectIssues, sources } = await collectEmitterFixtures(options.specs ?? EMITTER_SPECS, options.exec ?? realExec);
235
+ const sourceCounts = sources.map((source) => ({
236
+ count: parseCausalJsonl(source.jsonl).events.length,
237
+ source: source.name
238
+ }));
239
+ const { events, issues: validateIssues } = validateConformanceSources(sources, DEFAULT_PAYLOAD_MINIMUMS, PRINCIPAL_DISCIPLINE_CHECKS);
240
+ const { issues: stitchIssues, stitched } = stitchInteractionChain(events);
241
+ const causeNamespaceIssues = checkCauseNamespaces(stitched);
242
+ let edges = [];
243
+ if (stitchIssues.length === 0) {
244
+ const roles = identifyChainRoles(stitched);
245
+ if (roles.m2) {
246
+ const reconciled = reconcileEvents(stitched);
247
+ edges = traceCausesBackward(reconciled, roles.m2.event_id);
248
+ }
249
+ }
250
+ const issues = [...collectIssues, ...validateIssues, ...stitchIssues, ...causeNamespaceIssues];
251
+ return {
252
+ chain: { edges, issues: stitchIssues, stitchedEventCount: stitched.length },
253
+ eventCount: events.length,
254
+ events,
255
+ issues,
256
+ ok: issues.length === 0,
257
+ sourceCounts
258
+ };
259
+ };
@@ -0,0 +1,76 @@
1
+ import type { ConformanceFixtureSource, ConformanceIssue } from "./conformance.js";
2
+ /**
3
+ * Normalized invocation contract for the four real Noopolis causal fixture
4
+ * emitters (B92, §2). `command` is a direct argv (never a shell string, never
5
+ * `npm run` — the npm banner would pollute stdout-jsonl output), resolved
6
+ * relative to `cwd`. `output` distinguishes emitters that print JSONL
7
+ * directly to stdout from daimon, which prints the absolute path of a JSONL
8
+ * file it wrote as the last stdout line.
9
+ */
10
+ export interface EmitterSpec {
11
+ command: string[];
12
+ cwd: string;
13
+ name: string;
14
+ output: "path-line" | "stdout-jsonl";
15
+ }
16
+ /** run_id every emitter is invoked with. Sourced from NOOPOLIS_RUN_ID, never model output. */
17
+ export declare const EMITTER_RUN_ID = "b92-conformance";
18
+ /**
19
+ * The four real sibling fixture emitters, invoked by path (never `npm run`).
20
+ * See B92 packet §1-§2 and each sibling's own runtime/observability AGENTS.md
21
+ * for what each emitter does.
22
+ */
23
+ export declare const EMITTER_SPECS: EmitterSpec[];
24
+ /**
25
+ * Builds the adversarial "spoof mode" variant of an `EmitterSpec` (B62
26
+ * enforcement point #4): the sibling fixture emitter is asked to embed a
27
+ * forged/claimed identity in its fixture's input or output content, while
28
+ * still stamping `principal_id` as its own authenticated identity — never
29
+ * the claimed one. `--spoof` is the flag convention daimon's own fixture
30
+ * emitter already understands (`npm run emit-causal-fixture:spoof`, see
31
+ * `ecosystem/daimon/src/observability/emitCausalFixture.ts`); this helper
32
+ * applies the same convention uniformly across all four `EmitterSpec`s so a
33
+ * future caller does not need one-off spoof plumbing per sibling.
34
+ *
35
+ * `EMITTER_SPOOF_SPECS` is deliberately NOT part of the default real-mode
36
+ * `EMITTER_SPECS` list `causalConformanceCli.ts` invokes: today only
37
+ * daimon's real fixture script understands `--spoof` (simfile/mneme/moltnet
38
+ * have not yet added a spoof-capable fixture variant), so spawning the
39
+ * other three with an unrecognized flag would break the hermetic real-mode
40
+ * run. `EMITTER_SPOOF_SPECS` exists for callers — and this file's own
41
+ * injected-exec tests — that want to exercise spoof-mode collection
42
+ * explicitly, and is the shape every sibling's real spoof script should
43
+ * match once added.
44
+ */
45
+ export declare const toSpoofEmitterSpec: (spec: EmitterSpec) => EmitterSpec;
46
+ /** The adversarial "spoof mode" counterpart to `EMITTER_SPECS` — see `toSpoofEmitterSpec`. */
47
+ export declare const EMITTER_SPOOF_SPECS: EmitterSpec[];
48
+ export interface ExecResult {
49
+ exitCode: number | null;
50
+ spawnError?: Error;
51
+ stderr: string;
52
+ stdout: string;
53
+ timedOut: boolean;
54
+ }
55
+ /** Injectable process runner. `realExec` is the only implementation that actually spawns a process. */
56
+ export type Exec = (spec: EmitterSpec) => Promise<ExecResult>;
57
+ /**
58
+ * Spawns `spec.command` directly (no shell) in `spec.cwd`, with stdout and
59
+ * stderr captured separately so stderr noise (npm banners, SQLite
60
+ * ExperimentalWarning, etc.) never corrupts stdout-jsonl parsing. Kills the
61
+ * child on `EMITTER_TIMEOUT_MS` expiry.
62
+ */
63
+ export declare const realExec: Exec;
64
+ export interface EmitterFixtureResult {
65
+ issues: ConformanceIssue[];
66
+ sources: ConformanceFixtureSource[];
67
+ }
68
+ /**
69
+ * Runs every emitter spec sequentially (daimon reuses a fixed on-disk
70
+ * directory across runs, so concurrent invocation is unsafe) and turns each
71
+ * result into either a conformance fixture source or a reported issue.
72
+ * Never silently skips an emitter: spawn error, timeout, nonzero exit, zero
73
+ * parsed records, and an unreadable daimon path-line are all reported as a
74
+ * `ConformanceIssue{source}` rather than dropped.
75
+ */
76
+ export declare const collectEmitterFixtures: (specs?: EmitterSpec[], exec?: Exec) => Promise<EmitterFixtureResult>;
@@ -0,0 +1,188 @@
1
+ import { spawn } from "node:child_process";
2
+ import { readFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { parseCausalJsonl } from "@noopolis/stele";
6
+ /** run_id every emitter is invoked with. Sourced from NOOPOLIS_RUN_ID, never model output. */
7
+ export const EMITTER_RUN_ID = "b92-conformance";
8
+ /** Per-emitter kill timeout. `go run` pays a compile cost on a cold module cache. */
9
+ const EMITTER_TIMEOUT_MS = 120_000;
10
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
11
+ // src/ledger -> src -> <repo root>
12
+ const ROOT_DIR = path.resolve(__dirname, "..", "..");
13
+ const ecosystemPath = (name) => path.resolve(ROOT_DIR, "ecosystem", name);
14
+ /**
15
+ * The four real sibling fixture emitters, invoked by path (never `npm run`).
16
+ * See B92 packet §1-§2 and each sibling's own runtime/observability AGENTS.md
17
+ * for what each emitter does.
18
+ */
19
+ export const EMITTER_SPECS = [
20
+ {
21
+ command: ["node_modules/.bin/tsx", "src/runtime/emit-causal-fixture.ts"],
22
+ cwd: ecosystemPath("simfile"),
23
+ name: "simfile",
24
+ output: "stdout-jsonl"
25
+ },
26
+ {
27
+ command: ["node_modules/.bin/tsx", "scripts/emit-causal-fixture.ts"],
28
+ cwd: ecosystemPath("mneme"),
29
+ name: "mneme",
30
+ output: "stdout-jsonl"
31
+ },
32
+ {
33
+ command: ["node_modules/.bin/tsx", "src/observability/emitCausalFixture.ts"],
34
+ cwd: ecosystemPath("daimon"),
35
+ name: "daimon",
36
+ output: "path-line"
37
+ },
38
+ {
39
+ command: ["go", "run", "./cmd/emit-causal-fixture"],
40
+ cwd: ecosystemPath("moltnet"),
41
+ name: "moltnet",
42
+ output: "stdout-jsonl"
43
+ }
44
+ ];
45
+ /**
46
+ * Builds the adversarial "spoof mode" variant of an `EmitterSpec` (B62
47
+ * enforcement point #4): the sibling fixture emitter is asked to embed a
48
+ * forged/claimed identity in its fixture's input or output content, while
49
+ * still stamping `principal_id` as its own authenticated identity — never
50
+ * the claimed one. `--spoof` is the flag convention daimon's own fixture
51
+ * emitter already understands (`npm run emit-causal-fixture:spoof`, see
52
+ * `ecosystem/daimon/src/observability/emitCausalFixture.ts`); this helper
53
+ * applies the same convention uniformly across all four `EmitterSpec`s so a
54
+ * future caller does not need one-off spoof plumbing per sibling.
55
+ *
56
+ * `EMITTER_SPOOF_SPECS` is deliberately NOT part of the default real-mode
57
+ * `EMITTER_SPECS` list `causalConformanceCli.ts` invokes: today only
58
+ * daimon's real fixture script understands `--spoof` (simfile/mneme/moltnet
59
+ * have not yet added a spoof-capable fixture variant), so spawning the
60
+ * other three with an unrecognized flag would break the hermetic real-mode
61
+ * run. `EMITTER_SPOOF_SPECS` exists for callers — and this file's own
62
+ * injected-exec tests — that want to exercise spoof-mode collection
63
+ * explicitly, and is the shape every sibling's real spoof script should
64
+ * match once added.
65
+ */
66
+ export const toSpoofEmitterSpec = (spec) => ({
67
+ ...spec,
68
+ command: [...spec.command, "--spoof"],
69
+ name: `${spec.name}-spoof`
70
+ });
71
+ /** The adversarial "spoof mode" counterpart to `EMITTER_SPECS` — see `toSpoofEmitterSpec`. */
72
+ export const EMITTER_SPOOF_SPECS = EMITTER_SPECS.map(toSpoofEmitterSpec);
73
+ /**
74
+ * Spawns `spec.command` directly (no shell) in `spec.cwd`, with stdout and
75
+ * stderr captured separately so stderr noise (npm banners, SQLite
76
+ * ExperimentalWarning, etc.) never corrupts stdout-jsonl parsing. Kills the
77
+ * child on `EMITTER_TIMEOUT_MS` expiry.
78
+ */
79
+ export const realExec = (spec) => new Promise((resolve) => {
80
+ const [command, ...args] = spec.command;
81
+ if (!command) {
82
+ resolve({ exitCode: null, spawnError: new Error("empty command"), stderr: "", stdout: "", timedOut: false });
83
+ return;
84
+ }
85
+ let stdout = "";
86
+ let stderr = "";
87
+ let timedOut = false;
88
+ let settled = false;
89
+ const child = spawn(command, args, {
90
+ cwd: spec.cwd,
91
+ env: { ...process.env, NOOPOLIS_RUN_ID: EMITTER_RUN_ID }
92
+ });
93
+ const timer = setTimeout(() => {
94
+ timedOut = true;
95
+ child.kill("SIGKILL");
96
+ }, EMITTER_TIMEOUT_MS);
97
+ child.stdout?.on("data", (chunk) => {
98
+ stdout += chunk.toString("utf8");
99
+ });
100
+ child.stderr?.on("data", (chunk) => {
101
+ stderr += chunk.toString("utf8");
102
+ });
103
+ child.on("error", (error) => {
104
+ if (settled) {
105
+ return;
106
+ }
107
+ settled = true;
108
+ clearTimeout(timer);
109
+ resolve({ exitCode: null, spawnError: error, stderr, stdout, timedOut });
110
+ });
111
+ child.on("close", (code) => {
112
+ if (settled) {
113
+ return;
114
+ }
115
+ settled = true;
116
+ clearTimeout(timer);
117
+ resolve({ exitCode: code, stderr, stdout, timedOut });
118
+ });
119
+ });
120
+ const lastNonEmptyLine = (text) => {
121
+ const lines = text.split("\n").map((line) => line.trim()).filter((line) => line.length > 0);
122
+ return lines[lines.length - 1];
123
+ };
124
+ /**
125
+ * Runs every emitter spec sequentially (daimon reuses a fixed on-disk
126
+ * directory across runs, so concurrent invocation is unsafe) and turns each
127
+ * result into either a conformance fixture source or a reported issue.
128
+ * Never silently skips an emitter: spawn error, timeout, nonzero exit, zero
129
+ * parsed records, and an unreadable daimon path-line are all reported as a
130
+ * `ConformanceIssue{source}` rather than dropped.
131
+ */
132
+ export const collectEmitterFixtures = async (specs = EMITTER_SPECS, exec = realExec) => {
133
+ const sources = [];
134
+ const issues = [];
135
+ for (const spec of specs) {
136
+ const result = await exec(spec);
137
+ if (result.spawnError) {
138
+ issues.push({ message: `spawn error: ${result.spawnError.message}`, source: spec.name });
139
+ continue;
140
+ }
141
+ if (result.timedOut) {
142
+ issues.push({ message: `timed out after ${EMITTER_TIMEOUT_MS}ms`, source: spec.name });
143
+ continue;
144
+ }
145
+ if (result.exitCode !== 0) {
146
+ const stderrDetail = result.stderr.trim();
147
+ issues.push({
148
+ message: `exited with code ${String(result.exitCode)}${stderrDetail ? `: ${stderrDetail}` : ""}`,
149
+ source: spec.name
150
+ });
151
+ continue;
152
+ }
153
+ let jsonl;
154
+ if (spec.output === "path-line") {
155
+ const pathLine = lastNonEmptyLine(result.stdout);
156
+ if (!pathLine) {
157
+ issues.push({ message: "path-line emitter produced no output path on stdout", source: spec.name });
158
+ continue;
159
+ }
160
+ try {
161
+ jsonl = await readFile(pathLine, "utf8");
162
+ }
163
+ catch (error) {
164
+ issues.push({
165
+ message: `unreadable path ${pathLine}: ${error instanceof Error ? error.message : String(error)}`,
166
+ source: spec.name
167
+ });
168
+ continue;
169
+ }
170
+ }
171
+ else {
172
+ jsonl = result.stdout;
173
+ }
174
+ const { errors, events } = parseCausalJsonl(jsonl);
175
+ if (errors.length > 0) {
176
+ for (const error of errors) {
177
+ issues.push({ line: error.line, message: error.message, source: spec.name });
178
+ }
179
+ continue;
180
+ }
181
+ if (events.length === 0) {
182
+ issues.push({ message: "emitter produced zero parsed records", source: spec.name });
183
+ continue;
184
+ }
185
+ sources.push({ jsonl, name: spec.name });
186
+ }
187
+ return { issues, sources };
188
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./causeNamespace.js";
2
+ export * from "./conformance.js";
3
+ export * from "./emitters.js";
4
+ export * from "@noopolis/stele";
@@ -0,0 +1,4 @@
1
+ export * from "./causeNamespace.js";
2
+ export * from "./conformance.js";
3
+ export * from "./emitters.js";
4
+ export * from "@noopolis/stele";
@@ -0,0 +1,96 @@
1
+ import type { CausalEvent } from "@noopolis/stele";
2
+ import { PRINCIPAL_GRAMMAR_SOURCE } from "@noopolis/stele";
3
+ /**
4
+ * Principal grammar (specs/CAUSAL.md §3, `specs/causal-event.v1.schema.json`
5
+ * `principal_id.pattern`): `agent:<agentId>` | `operator:<credentialKey|name>`
6
+ * | `system:<system>[.<component>]`. A principal is minted only by a
7
+ * trusted layer (root's container env, a per-agent harness config, an
8
+ * authn claim) — never derived from `request.From`, tool arguments, or
9
+ * model output. This module owns parsing/validating that grammar on the
10
+ * root side, plus the per-event conformance checks conformance.ts layers
11
+ * on top of it; it has no I/O and no knowledge of any specific authority's
12
+ * transport.
13
+ *
14
+ * The grammar itself (`PRINCIPAL_GRAMMAR_SOURCE`) is defined once in
15
+ * `envelope.ts` — the same regex `causalEventSchema` enforces on the wire —
16
+ * and re-exported from here so existing callers of this module keep working;
17
+ * this file never hardcodes a second copy of the pattern.
18
+ */
19
+ export type PrincipalKind = "agent" | "operator" | "system";
20
+ export interface Principal {
21
+ id: string;
22
+ kind: PrincipalKind;
23
+ }
24
+ export interface PrincipalParseError {
25
+ message: string;
26
+ }
27
+ export { PRINCIPAL_GRAMMAR_SOURCE };
28
+ /**
29
+ * `system:moltnet.anonymous` is moltnet's stamped principal for the
30
+ * unauthenticated dev-mode case (no authn claims on the request context at
31
+ * all) — see `ecosystem/moltnet/internal/rooms/causal.go`. It is grammar-
32
+ * valid (a real `system:` principal) but conformance treats it as
33
+ * unauthenticated on purpose: it is a placeholder for "no principal",
34
+ * never a credential to attribute causal events to.
35
+ */
36
+ export declare const ANONYMOUS_SYSTEM_PRINCIPAL = "system:moltnet.anonymous";
37
+ /**
38
+ * Parses a `principal_id` string against the grammar. Returns a
39
+ * `PrincipalParseError` (never throws) for anything that does not match
40
+ * `^(agent|operator|system):.+` — a bare id with no prefix, an unknown
41
+ * prefix, or an empty string all land here.
42
+ */
43
+ export declare const parsePrincipal: (value: string) => Principal | PrincipalParseError;
44
+ export declare const isPrincipalParseError: (value: Principal | PrincipalParseError) => value is PrincipalParseError;
45
+ /**
46
+ * True only for a principal that is both grammar-valid and represents a
47
+ * real authenticated identity: grammar mismatches, a bare id, an empty
48
+ * trailing id, the literal `anonymous`, and `system:moltnet.anonymous`
49
+ * (moltnet's unauthenticated dev-mode placeholder) are all rejected.
50
+ * Conformance (`conformance.ts`) uses this as its per-event grammar check.
51
+ */
52
+ export declare const isAuthenticatedPrincipal: (value: string) => boolean;
53
+ /**
54
+ * Lightweight structural sibling of `conformance.ts`'s `ConformanceIssue`
55
+ * (message + source; no line number — these are per-event, not per-line
56
+ * fixture checks). Kept local to this module to avoid a circular import
57
+ * with `conformance.ts`, which imports `PRINCIPAL_DISCIPLINE_CHECKS` from
58
+ * here; every field here is a subset of `ConformanceIssue`'s, so these
59
+ * values are usable anywhere a `ConformanceIssue` is expected.
60
+ */
61
+ export interface PrincipalConformanceIssue {
62
+ message: string;
63
+ source: string;
64
+ }
65
+ export type PrincipalEventCheck = (event: CausalEvent, sourceName: string) => PrincipalConformanceIssue[];
66
+ /**
67
+ * Principal-grammar check (specs/CAUSAL.md §3, B62 enforcement point #4a):
68
+ * every event's `principal_id` must be an authenticated `agent:`/`operator:`/
69
+ * `system:` principal — never a bare id, the literal `anonymous`, or
70
+ * moltnet's `system:moltnet.anonymous` unauthenticated placeholder.
71
+ */
72
+ export declare const checkPrincipalGrammar: PrincipalEventCheck;
73
+ /**
74
+ * Stream/principal consistency check (B62 enforcement point #4b): for
75
+ * daimon's turn events, `principal_id` must exactly equal `emitter.stream_id`
76
+ * — the agent whose stream this is must be the agent this event is
77
+ * attributed to. This deliberately does NOT apply to daimon's control-wake
78
+ * events (`control.wake.accepted`/`control.wake.denied`), whose stream is
79
+ * the *target* agent being woken but whose principal is the *operator* who
80
+ * requested the wake — an intentional mismatch, not a violation.
81
+ */
82
+ export declare const checkStreamPrincipalConsistency: PrincipalEventCheck;
83
+ /**
84
+ * Per-event checks `conformance.ts`'s `runSyntheticConformance` AND (as of
85
+ * the B62 fix) `runRealConformance` both layer on top of schema parsing +
86
+ * payload minimums, via `validateConformanceSources`'s `extraChecks`
87
+ * parameter. Wiring this into `runRealConformance` is what gives the real
88
+ * `npm run test:causal-conformance` path teeth: without it, a real sibling
89
+ * emitter stamping a non-grammar `principal_id` would pass conformance
90
+ * silently (the schema-level `PRINCIPAL_GRAMMAR_SOURCE` regex in
91
+ * `envelope.ts` already rejects most malformed principals at parse time, but
92
+ * `checkStreamPrincipalConsistency` in particular is conformance-only — it
93
+ * has no envelope-schema equivalent). `realConformance.test.ts`'s hand-
94
+ * authored fixtures are kept grammar-compliant for exactly this reason.
95
+ */
96
+ export declare const PRINCIPAL_DISCIPLINE_CHECKS: PrincipalEventCheck[];