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.
- package/README.md +50 -11
- package/dist/audit/auditCli.d.ts +19 -0
- package/dist/audit/auditCli.js +63 -0
- package/dist/audit/checks.d.ts +100 -0
- package/dist/audit/checks.js +279 -0
- package/dist/audit/checksShared.d.ts +74 -0
- package/dist/audit/checksShared.js +37 -0
- package/dist/audit/generateAudit.d.ts +19 -0
- package/dist/audit/generateAudit.js +122 -0
- package/dist/audit/index.d.ts +4 -0
- package/dist/audit/index.js +4 -0
- package/dist/audit/readAudit.d.ts +50 -0
- package/dist/audit/readAudit.js +59 -0
- package/dist/audit/types.d.ts +40 -0
- package/dist/audit/types.js +8 -0
- package/dist/auth/credentialEnvFile.d.ts +11 -0
- package/dist/auth/credentialEnvFile.js +60 -0
- package/dist/auth/credentialProvisioning.d.ts +15 -0
- package/dist/auth/credentialProvisioning.js +75 -0
- package/dist/auth/credentialProvisioningReceipt.d.ts +28 -0
- package/dist/auth/credentialProvisioningReceipt.js +70 -0
- package/dist/auth/credentialProvisioningRequest.d.ts +51 -0
- package/dist/auth/credentialProvisioningRequest.js +169 -0
- package/dist/auth/credentialWorldBindings.d.ts +21 -0
- package/dist/auth/credentialWorldBindings.js +104 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.js +7 -0
- package/dist/auth/paths.d.ts +11 -0
- package/dist/auth/paths.js +21 -0
- package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
- package/dist/auth/targetSecretSourceAuthor.js +52 -0
- package/dist/auth/targetSecretSourceFsPublish.d.ts +15 -0
- package/dist/auth/targetSecretSourceFsPublish.js +49 -0
- package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +16 -0
- package/dist/auth/targetSecretSourceFsPublishImmutable.js +435 -0
- package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
- package/dist/auth/targetSecretSourceFsRead.js +198 -0
- package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
- package/dist/auth/targetSecretSourceGrant.js +99 -0
- package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
- package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
- package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
- package/dist/auth/targetSecretSourceLifecycle.js +52 -0
- package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
- package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
- package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
- package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
- package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
- package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
- package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
- package/dist/auth/targetSecretSourceResolver.js +137 -0
- package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
- package/dist/auth/targetSecretSourceRevoke.js +92 -0
- package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
- package/dist/auth/targetSecretSourceRotate.js +121 -0
- package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
- package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
- package/dist/cli/artifactsCommands.d.ts +27 -0
- package/dist/cli/artifactsCommands.js +132 -0
- package/dist/cli/authCommands.d.ts +5 -0
- package/dist/cli/authCommands.js +221 -0
- package/dist/cli/compileBuildCommands.d.ts +3 -0
- package/dist/cli/compileBuildCommands.js +35 -0
- package/dist/cli/containerBundleCommand.d.ts +6 -0
- package/dist/cli/containerBundleCommand.js +116 -0
- package/dist/cli/downCommand.d.ts +25 -0
- package/dist/cli/downCommand.js +134 -0
- package/dist/cli/index.js +6 -3
- package/dist/cli/lifecycleCommands.d.ts +1 -1
- package/dist/cli/lifecycleCommands.js +11 -181
- package/dist/cli/lifecycleMachine.d.ts +19 -0
- package/dist/cli/lifecycleMachine.js +78 -0
- package/dist/cli/lifecyclePlan.d.ts +35 -0
- package/dist/cli/lifecyclePlan.js +240 -0
- package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
- package/dist/cli/lifecyclePlanningCommands.js +30 -0
- package/dist/cli/runCli.d.ts +9 -2
- package/dist/cli/runCli.js +27 -71
- package/dist/cli/runPublishCommands.d.ts +3 -0
- package/dist/cli/runPublishCommands.js +70 -0
- package/dist/cli/statusCommand.d.ts +3 -33
- package/dist/cli/statusCommand.js +19 -249
- package/dist/cli/statusCommandLive.d.ts +20 -0
- package/dist/cli/statusCommandLive.js +188 -0
- package/dist/cli/statusCommandOptions.d.ts +40 -0
- package/dist/cli/statusCommandOptions.js +42 -0
- package/dist/cli/targetCliRoute.d.ts +2 -0
- package/dist/cli/targetCliRoute.js +30 -0
- package/dist/cli/targetCommands.d.ts +33 -0
- package/dist/cli/targetCommands.js +257 -0
- package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
- package/dist/cli/targetComposedPreparationCommand.js +39 -0
- package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
- package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
- package/dist/cli/targetDefaultAuthorities.d.ts +53 -0
- package/dist/cli/targetDefaultAuthorities.js +210 -0
- package/dist/cli/targetDefaultConfig.d.ts +68 -0
- package/dist/cli/targetDefaultConfig.js +317 -0
- package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
- package/dist/cli/targetDefaultConfigStdin.js +215 -0
- package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
- package/dist/cli/targetDefaultEnvelope.js +13 -0
- package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
- package/dist/cli/targetDefaultHandlerFactory.js +247 -0
- package/dist/cli/targetDefaultHandlers.d.ts +21 -0
- package/dist/cli/targetDefaultHandlers.js +72 -0
- package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
- package/dist/cli/targetDefaultJournalAuthority.js +135 -0
- package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
- package/dist/cli/targetDefaultWorldClock.js +14 -0
- package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
- package/dist/cli/targetDefaultWorldQueries.js +11 -0
- package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
- package/dist/cli/targetDefaultWorldReadiness.js +17 -0
- package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
- package/dist/cli/targetEvidenceHelperResolution.js +23 -0
- package/dist/cli/targetLookupCli.d.ts +3 -0
- package/dist/cli/targetLookupCli.js +31 -0
- package/dist/cli/targetLookupCommands.d.ts +12 -0
- package/dist/cli/targetLookupCommands.js +69 -0
- package/dist/cli/targetOperationDispatch.d.ts +58 -0
- package/dist/cli/targetOperationDispatch.js +21 -0
- package/dist/cli/targetReceiptOutput.d.ts +14 -0
- package/dist/cli/targetReceiptOutput.js +21 -0
- package/dist/cli/targetRequestFile.d.ts +14 -0
- package/dist/cli/targetRequestFile.js +63 -0
- package/dist/cli/targetSecretSourceInput.d.ts +28 -0
- package/dist/cli/targetSecretSourceInput.js +121 -0
- package/dist/cli/targetWorldClockCommand.d.ts +10 -0
- package/dist/cli/targetWorldClockCommand.js +42 -0
- package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +13 -0
- package/dist/cli/targetWorldClockCrossProcess.test-helper.js +109 -0
- package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
- package/dist/cli/targetWorldReadinessCommand.js +43 -0
- package/dist/cli/upCommand.d.ts +3 -0
- package/dist/cli/upCommand.js +133 -0
- package/dist/cli/upImageCommand.d.ts +11 -0
- package/dist/cli/upImageCommand.js +41 -0
- package/dist/cli/upLifecycleInvocation.d.ts +41 -0
- package/dist/cli/upLifecycleInvocation.js +48 -0
- package/dist/cli/upLifecycleRecovery.d.ts +4 -0
- package/dist/cli/upLifecycleRecovery.js +53 -0
- package/dist/compiler/agentNodeMerge.d.ts +2 -0
- package/dist/compiler/agentNodeMerge.js +79 -0
- package/dist/compiler/agentSurfaces.js +11 -1
- package/dist/compiler/buildCompilePlan.js +17 -0
- package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
- package/dist/compiler/buildCompilePlanAgent.js +56 -0
- package/dist/compiler/buildCompilePlanTeams.d.ts +1 -0
- package/dist/compiler/buildCompilePlanTeams.js +4 -1
- package/dist/compiler/buildCompilePlanTraversal.js +75 -82
- package/dist/compiler/buildProject.d.ts +11 -0
- package/dist/compiler/buildProject.js +77 -2
- package/dist/compiler/compilePlanHelpers.js +2 -0
- package/dist/compiler/compileProject.d.ts +13 -0
- package/dist/compiler/compileProject.js +26 -74
- package/dist/compiler/compileProjectPolicy.d.ts +5 -0
- package/dist/compiler/compileProjectPolicy.js +21 -0
- package/dist/compiler/compileProjectReports.d.ts +9 -0
- package/dist/compiler/compileProjectReports.js +52 -0
- package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
- package/dist/compiler/containerArtifactSummaries.js +138 -0
- package/dist/compiler/containerArtifacts.d.ts +10 -0
- package/dist/compiler/containerArtifacts.js +126 -125
- package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
- package/dist/compiler/containerArtifactsPlans.js +31 -118
- package/dist/compiler/containerArtifactsRender.d.ts +3 -1
- package/dist/compiler/containerArtifactsRender.js +15 -12
- package/dist/compiler/containerArtifactsTypes.d.ts +12 -0
- package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
- package/dist/compiler/containerConfigEnvRender.js +54 -0
- package/dist/compiler/containerEntrypointRender.d.ts +1 -0
- package/dist/compiler/containerEntrypointRender.js +56 -52
- package/dist/compiler/containerEntrypointShell.d.ts +5 -0
- package/dist/compiler/containerEntrypointShell.js +29 -0
- package/dist/compiler/containerPackageOverrides.d.ts +27 -0
- package/dist/compiler/containerPackageOverrides.js +63 -0
- package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
- package/dist/compiler/containerTargetPlanResolution.js +97 -0
- package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
- package/dist/compiler/daimonTelemetryArtifacts.js +61 -0
- package/dist/compiler/dockerBuildContext.d.ts +16 -0
- package/dist/compiler/dockerBuildContext.js +159 -0
- package/dist/compiler/dockerBuildSkip.d.ts +30 -0
- package/dist/compiler/dockerBuildSkip.js +81 -0
- package/dist/compiler/index.d.ts +4 -0
- package/dist/compiler/index.js +4 -0
- package/dist/compiler/memoryArtifacts.d.ts +26 -0
- package/dist/compiler/memoryArtifacts.js +134 -0
- package/dist/compiler/memoryResolution.d.ts +4 -0
- package/dist/compiler/memoryResolution.js +147 -0
- package/dist/compiler/modelEnv.d.ts +2 -0
- package/dist/compiler/modelEnv.js +6 -0
- package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
- package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
- package/dist/compiler/moltnetArtifactPaths.d.ts +26 -0
- package/dist/compiler/moltnetArtifactPaths.js +49 -0
- package/dist/compiler/moltnetArtifactTypes.d.ts +46 -0
- package/dist/compiler/moltnetArtifactTypes.js +1 -0
- package/dist/compiler/moltnetArtifacts.d.ts +2 -40
- package/dist/compiler/moltnetArtifacts.js +43 -97
- package/dist/compiler/moltnetBinaries.d.ts +21 -4
- package/dist/compiler/moltnetBinaries.js +134 -27
- package/dist/compiler/moltnetClientConfig.js +7 -2
- package/dist/compiler/moltnetConfigLowering.d.ts +16 -1
- package/dist/compiler/moltnetConfigLowering.js +67 -5
- package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
- package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
- package/dist/compiler/moltnetNodeConfig.js +7 -2
- package/dist/compiler/moltnetReleaseAuthority.d.ts +17 -0
- package/dist/compiler/moltnetReleaseAuthority.js +73 -0
- package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
- package/dist/compiler/moltnetReleaseDownload.js +85 -0
- package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -0
- package/dist/compiler/moltnetRepresentativeResolution.js +16 -2
- package/dist/compiler/moltnetResolution.js +72 -20
- package/dist/compiler/moltnetRoomMemberships.js +37 -9
- package/dist/compiler/moltnetServerPlans.d.ts +9 -0
- package/dist/compiler/moltnetServerPlans.js +132 -0
- package/dist/compiler/organizationIdentity.d.ts +27 -0
- package/dist/compiler/organizationIdentity.js +297 -0
- package/dist/compiler/organizationReadyEvidence.d.ts +49 -0
- package/dist/compiler/organizationReadyEvidence.js +261 -0
- package/dist/compiler/projectManifestGraph.d.ts +4 -0
- package/dist/compiler/projectManifestGraph.js +24 -0
- package/dist/compiler/runProject.d.ts +4 -0
- package/dist/compiler/runProject.js +30 -21
- package/dist/compiler/runProjectAuth.d.ts +7 -1
- package/dist/compiler/runProjectAuth.js +87 -9
- package/dist/compiler/runProjectDocker.d.ts +7 -0
- package/dist/compiler/runProjectDocker.js +31 -8
- package/dist/compiler/runProjectLifecycle.d.ts +7 -0
- package/dist/compiler/runProjectLifecycle.js +40 -0
- package/dist/compiler/syncProjectAuth.js +4 -1
- package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
- package/dist/compiler/teamContextActiveEnvironments.js +255 -0
- package/dist/compiler/teamContextSupport.js +32 -40
- package/dist/compiler/teamContextTypes.d.ts +2 -0
- package/dist/compiler/types.d.ts +82 -1
- package/dist/compiler/upProject.d.ts +5 -0
- package/dist/compiler/upProject.js +256 -20
- package/dist/compiler/upReceipt.d.ts +36 -0
- package/dist/compiler/upReceipt.js +82 -0
- package/dist/compiler/updateProjectModels.js +42 -60
- package/dist/compiler/updateProjectRuntime.js +22 -35
- package/dist/compiler/updateProjectSurfaces.js +53 -47
- package/dist/compiler/worldBindings.d.ts +39 -0
- package/dist/compiler/worldBindings.js +247 -0
- package/dist/compiler/worldBindingsFile.d.ts +5 -0
- package/dist/compiler/worldBindingsFile.js +162 -0
- package/dist/deployment/artifactsExport.d.ts +49 -0
- package/dist/deployment/artifactsExport.js +217 -0
- package/dist/deployment/artifactsExportDocker.d.ts +48 -0
- package/dist/deployment/artifactsExportDocker.js +91 -0
- package/dist/deployment/artifactsExportPlan.d.ts +24 -0
- package/dist/deployment/artifactsExportPlan.js +135 -0
- package/dist/deployment/artifactsExportTypes.d.ts +50 -0
- package/dist/deployment/artifactsExportTypes.js +52 -0
- package/dist/deployment/buildImageCacheStore.d.ts +23 -0
- package/dist/deployment/buildImageCacheStore.js +54 -0
- package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
- package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
- package/dist/deployment/dockerInspect.d.ts +9 -0
- package/dist/deployment/dockerInspect.js +24 -1
- package/dist/deployment/dockerLabels.d.ts +2 -0
- package/dist/deployment/dockerLabels.js +2 -0
- package/dist/deployment/dockerLogs.js +2 -10
- package/dist/deployment/dockerManager.d.ts +51 -0
- package/dist/deployment/dockerManager.js +118 -1
- package/dist/deployment/dockerProbeGateway.js +64 -5
- package/dist/deployment/dockerRecover.js +9 -1
- package/dist/deployment/dockerTeardown.d.ts +32 -0
- package/dist/deployment/dockerTeardown.js +61 -0
- package/dist/deployment/downDeployment.d.ts +34 -0
- package/dist/deployment/downDeployment.js +147 -0
- package/dist/deployment/downReceiptTypes.d.ts +21 -0
- package/dist/deployment/downReceiptTypes.js +30 -0
- package/dist/deployment/index.d.ts +16 -0
- package/dist/deployment/index.js +17 -0
- package/dist/deployment/lifecycleCompletion.d.ts +37 -0
- package/dist/deployment/lifecycleCompletion.js +236 -0
- package/dist/deployment/lifecycleCompletionContracts.d.ts +158 -0
- package/dist/deployment/lifecycleCompletionContracts.js +106 -0
- package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
- package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
- package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
- package/dist/deployment/lifecycleCompletionLookup.js +88 -0
- package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
- package/dist/deployment/lifecycleCompletionOwner.js +31 -0
- package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
- package/dist/deployment/lifecycleCompletionParsing.js +108 -0
- package/dist/deployment/lifecycleCompletionPaths.d.ts +9 -0
- package/dist/deployment/lifecycleCompletionPaths.js +16 -0
- package/dist/deployment/lifecycleCompletionPublication.d.ts +5 -0
- package/dist/deployment/lifecycleCompletionPublication.js +35 -0
- package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
- package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
- package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
- package/dist/deployment/lifecycleCompletionRoot.js +243 -0
- package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
- package/dist/deployment/lifecycleCompletionStore.js +151 -0
- package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
- package/dist/deployment/organizationHandoffAuthorityFsClient.js +132 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorker.js +285 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
- package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
- package/dist/deployment/organizationHandoffAuthorityStore.js +348 -0
- package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
- package/dist/deployment/organizationHandoffAuthorityTypes.js +148 -0
- package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
- package/dist/deployment/organizationHandoffTypes.js +80 -0
- package/dist/deployment/organizationReady.d.ts +52 -0
- package/dist/deployment/organizationReady.js +200 -0
- package/dist/deployment/privateArtifactsExport.d.ts +18 -0
- package/dist/deployment/privateArtifactsExport.js +80 -0
- package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +8 -0
- package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +60 -0
- package/dist/deployment/record.d.ts +26 -1
- package/dist/deployment/record.js +49 -4
- package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +8 -0
- package/dist/deployment/simfileFixtureBoundary.test-helper.js +103 -0
- package/dist/deployment/target.d.ts +1 -35
- package/dist/deployment/target.js +1 -96
- package/dist/deployment/upReceiptTypes.d.ts +111 -0
- package/dist/deployment/upReceiptTypes.js +164 -0
- package/dist/dev/project.js +15 -9
- package/dist/distribution/buildDistributionReport.d.ts +2 -1
- package/dist/distribution/buildDistributionReport.js +2 -1
- package/dist/distribution/distributionReportSchema.d.ts +5 -0
- package/dist/distribution/distributionReportSchema.js +7 -2
- package/dist/distribution/index.d.ts +2 -2
- package/dist/distribution/index.js +1 -1
- package/dist/distribution/types.d.ts +7 -0
- package/dist/distribution/types.js +1 -0
- package/dist/filesystem/paths.js +10 -1
- package/dist/ledger/causalConformanceCli.d.ts +1 -0
- package/dist/ledger/causalConformanceCli.js +41 -0
- package/dist/ledger/causeNamespace.d.ts +8 -0
- package/dist/ledger/causeNamespace.js +24 -0
- package/dist/ledger/conformance.d.ts +83 -0
- package/dist/ledger/conformance.js +259 -0
- package/dist/ledger/emitters.d.ts +76 -0
- package/dist/ledger/emitters.js +188 -0
- package/dist/ledger/index.d.ts +4 -0
- package/dist/ledger/index.js +4 -0
- package/dist/ledger/principal.d.ts +96 -0
- package/dist/ledger/principal.js +121 -0
- package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
- package/dist/manifest/externalParticipantSchemas.js +17 -0
- package/dist/manifest/index.d.ts +1 -0
- package/dist/manifest/index.js +1 -0
- package/dist/manifest/inlineAgentMember.d.ts +2 -0
- package/dist/manifest/inlineAgentMember.js +9 -0
- package/dist/manifest/loadManifest.js +14 -8
- package/dist/manifest/mcpSchemas.d.ts +17 -0
- package/dist/manifest/mcpSchemas.js +41 -0
- package/dist/manifest/memorySchemas.d.ts +245 -0
- package/dist/manifest/memorySchemas.js +148 -0
- package/dist/manifest/renderSpawnfile.js +22 -131
- package/dist/manifest/renderSpawnfileNetworks.js +9 -2
- package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
- package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
- package/dist/manifest/schemas.d.ts +1868 -99
- package/dist/manifest/schemas.js +78 -32
- package/dist/manifest/surfaceSchemas.d.ts +17 -0
- package/dist/manifest/surfaceSchemas.js +24 -1
- package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
- package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
- package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
- package/dist/manifest/teamNetworkSchemas.d.ts +8 -187
- package/dist/manifest/teamNetworkSchemas.js +3 -317
- package/dist/manifest/teamNetworkServerSchemas.d.ts +150 -0
- package/dist/manifest/teamNetworkServerSchemas.js +199 -0
- package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
- package/dist/ownership/siblingBuildFreshness.js +20 -0
- package/dist/ownership/simfileRunOperatorInputs.d.ts +103 -0
- package/dist/ownership/simfileRunOperatorInputs.js +139 -0
- package/dist/report/types.d.ts +142 -0
- package/dist/runtime/common.d.ts +35 -0
- package/dist/runtime/common.js +55 -0
- package/dist/runtime/container.d.ts +28 -1
- package/dist/runtime/container.js +38 -5
- package/dist/runtime/containerPackageOverrides.d.ts +37 -0
- package/dist/runtime/containerPackageOverrides.js +33 -0
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.js +2 -0
- package/dist/runtime/mnemeMcp.d.ts +15 -0
- package/dist/runtime/mnemeMcp.js +109 -0
- package/dist/runtime/openclaw/adapter.js +15 -4
- package/dist/runtime/openclaw/mcp.d.ts +10 -0
- package/dist/runtime/openclaw/mcp.js +69 -0
- package/dist/runtime/openclaw/runAuth.js +2 -2
- package/dist/runtime/openclaw/scaffold.js +1 -1
- package/dist/runtime/openclaw/schedules.d.ts +38 -0
- package/dist/runtime/openclaw/schedules.js +74 -0
- package/dist/runtime/pi/adapter.d.ts +1 -1
- package/dist/runtime/pi/adapter.js +86 -53
- package/dist/runtime/pi/appActivitySource.js +114 -2
- package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
- package/dist/runtime/pi/appAgentConfig.js +264 -0
- package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
- package/dist/runtime/pi/appCliEnginesSource.js +183 -0
- package/dist/runtime/pi/appCliSource.d.ts +1 -0
- package/dist/runtime/pi/appCliSource.js +353 -0
- package/dist/runtime/pi/appControlSource.d.ts +1 -0
- package/dist/runtime/pi/appControlSource.js +390 -0
- package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
- package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
- package/dist/runtime/pi/appCoreSource.d.ts +4 -1
- package/dist/runtime/pi/appCoreSource.js +104 -214
- package/dist/runtime/pi/appPreludeSource.js +140 -52
- package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
- package/dist/runtime/pi/appScheduleSource.js +80 -0
- package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
- package/dist/runtime/pi/appScriptedEngine.js +42 -0
- package/dist/runtime/pi/appSource.d.ts +4 -1
- package/dist/runtime/pi/appSource.js +6 -2
- package/dist/runtime/pi/appTemplate.d.ts +8 -22
- package/dist/runtime/pi/appTemplate.js +9 -126
- package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
- package/dist/runtime/pi/appTemplateTypes.js +18 -0
- package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
- package/dist/runtime/pi/appWakeContextSource.js +398 -0
- package/dist/runtime/pi/containerTargets.d.ts +4 -0
- package/dist/runtime/pi/containerTargets.js +57 -0
- package/dist/runtime/pi/runAuth.js +126 -9
- package/dist/runtime/pi/testHelpers.d.ts +2 -0
- package/dist/runtime/pi/testHelpers.js +40 -0
- package/dist/runtime/picoclaw/adapter.js +23 -27
- package/dist/runtime/picoclaw/mcp.d.ts +4 -0
- package/dist/runtime/picoclaw/mcp.js +43 -0
- package/dist/runtime/picoclaw/memory.d.ts +7 -0
- package/dist/runtime/picoclaw/memory.js +17 -0
- package/dist/runtime/picoclaw/runAuth.js +1 -1
- package/dist/runtime/picoclaw/scaffold.js +1 -1
- package/dist/runtime/picoclaw/schedules.d.ts +26 -0
- package/dist/runtime/picoclaw/schedules.js +62 -3
- package/dist/runtime/scheduleUtils.d.ts +2 -0
- package/dist/runtime/scheduleUtils.js +15 -0
- package/dist/runtime/types.d.ts +25 -2
- package/dist/shared/errors.d.ts +1 -1
- package/dist/shared/errors.js +2 -2
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +1 -0
- package/dist/shared/redaction.d.ts +2 -0
- package/dist/shared/redaction.js +10 -0
- package/dist/status/buildStatus.d.ts +1 -0
- package/dist/status/buildStatus.js +2 -0
- package/dist/status/compileReport.d.ts +22 -0
- package/dist/status/compileReport.js +16 -2
- package/dist/status/compiledProbeCollection.d.ts +21 -0
- package/dist/status/compiledProbeCollection.js +27 -0
- package/dist/status/imageStatusReport.js +6 -0
- package/dist/status/index.d.ts +3 -0
- package/dist/status/index.js +3 -0
- package/dist/status/lifecycleProbes.d.ts +19 -0
- package/dist/status/lifecycleProbes.js +174 -0
- package/dist/status/moltnetProbes.d.ts +7 -8
- package/dist/status/moltnetProbes.js +27 -198
- package/dist/status/moltnetWiringProbes.d.ts +19 -0
- package/dist/status/moltnetWiringProbes.js +178 -0
- package/dist/target/cleanupRun.d.ts +41 -0
- package/dist/target/cleanupRun.js +139 -0
- package/dist/target/cleanupRunDocker.d.ts +16 -0
- package/dist/target/cleanupRunDocker.js +66 -0
- package/dist/target/cleanupRunDocker.test-helper.d.ts +67 -0
- package/dist/target/cleanupRunDocker.test-helper.js +238 -0
- package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
- package/dist/target/cleanupRunDockerPreflight.js +224 -0
- package/dist/target/composedPreparation.d.ts +205 -0
- package/dist/target/composedPreparation.js +223 -0
- package/dist/target/containerBundle.d.ts +82 -0
- package/dist/target/containerBundle.js +243 -0
- package/dist/target/containerBundleArchive.d.ts +31 -0
- package/dist/target/containerBundleArchive.js +140 -0
- package/dist/target/containerBundleAuthority.d.ts +25 -0
- package/dist/target/containerBundleAuthority.js +65 -0
- package/dist/target/containerBundleContracts.d.ts +114 -0
- package/dist/target/containerBundleContracts.js +173 -0
- package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
- package/dist/target/containerBundleFilesystemStore.js +247 -0
- package/dist/target/containerBundlePolicy.d.ts +33 -0
- package/dist/target/containerBundlePolicy.js +64 -0
- package/dist/target/containerBundleStore.d.ts +127 -0
- package/dist/target/containerBundleStore.js +284 -0
- package/dist/target/contracts.d.ts +538 -0
- package/dist/target/contracts.js +373 -0
- package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
- package/dist/target/dockerArtifactIdentityTypes.js +1 -0
- package/dist/target/dockerArtifactInspection.d.ts +40 -0
- package/dist/target/dockerArtifactInspection.js +125 -0
- package/dist/target/dockerArtifacts.d.ts +21 -0
- package/dist/target/dockerArtifacts.js +110 -0
- package/dist/target/dockerArtifactsProvider.d.ts +41 -0
- package/dist/target/dockerArtifactsProvider.js +449 -0
- package/dist/target/dockerCommandExecutor.d.ts +27 -0
- package/dist/target/dockerCommandExecutor.js +200 -0
- package/dist/target/dockerCommandExecutorCore.d.ts +34 -0
- package/dist/target/dockerCommandExecutorCore.js +273 -0
- package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
- package/dist/target/dockerContainerBundleBuilder.js +256 -0
- package/dist/target/dockerContextSnapshot.d.ts +21 -0
- package/dist/target/dockerContextSnapshot.js +158 -0
- package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
- package/dist/target/dockerEndpointFingerprint.js +9 -0
- package/dist/target/dockerPreparedArtifact.d.ts +48 -0
- package/dist/target/dockerPreparedArtifact.js +131 -0
- package/dist/target/dockerProjectionJson.d.ts +1 -0
- package/dist/target/dockerProjectionJson.js +80 -0
- package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
- package/dist/target/dockerPublicArtifactSnapshot.js +99 -0
- package/dist/target/dockerResources.d.ts +26 -0
- package/dist/target/dockerResources.js +162 -0
- package/dist/target/dockerResourcesProvider.d.ts +44 -0
- package/dist/target/dockerResourcesProvider.js +207 -0
- package/dist/target/dockerSecrets.d.ts +39 -0
- package/dist/target/dockerSecrets.js +249 -0
- package/dist/target/dockerSecretsAuthority.d.ts +26 -0
- package/dist/target/dockerSecretsAuthority.js +216 -0
- package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
- package/dist/target/dockerSecretsLifecycle.js +133 -0
- package/dist/target/dockerSecretsProvider.d.ts +68 -0
- package/dist/target/dockerSecretsProvider.js +329 -0
- package/dist/target/dockerTarget.d.ts +52 -0
- package/dist/target/dockerTarget.js +48 -0
- package/dist/target/dockerTargetBinding.d.ts +14 -0
- package/dist/target/dockerTargetBinding.js +96 -0
- package/dist/target/dockerWorldClock.d.ts +17 -0
- package/dist/target/dockerWorldClock.js +111 -0
- package/dist/target/dockerWorldReadiness.d.ts +17 -0
- package/dist/target/dockerWorldReadiness.js +119 -0
- package/dist/target/dockerWorldService.d.ts +23 -0
- package/dist/target/dockerWorldService.js +216 -0
- package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
- package/dist/target/dockerWorldServiceAuthority.js +182 -0
- package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
- package/dist/target/dockerWorldServiceLifecycle.js +275 -0
- package/dist/target/dockerWorldServiceProvider.d.ts +60 -0
- package/dist/target/dockerWorldServiceProvider.js +318 -0
- package/dist/target/dockerWorldServiceStore.d.ts +73 -0
- package/dist/target/dockerWorldServiceStore.js +367 -0
- package/dist/target/evidenceExport.d.ts +55 -0
- package/dist/target/evidenceExport.js +518 -0
- package/dist/target/evidenceExportArchive.d.ts +10 -0
- package/dist/target/evidenceExportArchive.js +302 -0
- package/dist/target/evidenceExportContract.d.ts +27 -0
- package/dist/target/evidenceExportContract.js +40 -0
- package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
- package/dist/target/evidenceExportOperationsTestKit.js +312 -0
- package/dist/target/evidenceExportProvider.d.ts +85 -0
- package/dist/target/evidenceExportProvider.js +187 -0
- package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
- package/dist/target/evidenceExportPublicationTypes.js +1 -0
- package/dist/target/evidenceExportStore.d.ts +70 -0
- package/dist/target/evidenceExportStore.js +498 -0
- package/dist/target/evidenceExportStorePublication.d.ts +7 -0
- package/dist/target/evidenceExportStorePublication.js +395 -0
- package/dist/target/handles.d.ts +20 -0
- package/dist/target/handles.js +56 -0
- package/dist/target/index.d.ts +12 -0
- package/dist/target/index.js +11 -0
- package/dist/target/journal.d.ts +59 -0
- package/dist/target/journal.js +529 -0
- package/dist/target/journalFilesystem.d.ts +3 -0
- package/dist/target/journalFilesystem.js +111 -0
- package/dist/target/journalRoot.d.ts +4 -0
- package/dist/target/journalRoot.js +6 -0
- package/dist/target/organizationAttachment.d.ts +23 -0
- package/dist/target/organizationAttachment.js +263 -0
- package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
- package/dist/target/organizationAttachmentAuthority.js +161 -0
- package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
- package/dist/target/organizationAttachmentLifecycle.js +101 -0
- package/dist/target/organizationAttachmentProvider.d.ts +76 -0
- package/dist/target/organizationAttachmentProvider.js +289 -0
- package/dist/target/organizationAttachmentStore.d.ts +51 -0
- package/dist/target/organizationAttachmentStore.js +316 -0
- package/dist/target/publicArtifactSnapshot.d.ts +41 -0
- package/dist/target/publicArtifactSnapshot.js +150 -0
- package/dist/target/topologyActivation.d.ts +51 -0
- package/dist/target/topologyActivation.js +149 -0
- package/dist/target/topologyAttestation.d.ts +37 -0
- package/dist/target/topologyAttestation.js +300 -0
- package/dist/target/topologyAttestationErrors.d.ts +1 -0
- package/dist/target/topologyAttestationErrors.js +1 -0
- package/dist/target/worldClock.d.ts +60 -0
- package/dist/target/worldClock.js +129 -0
- package/dist/target/worldReadiness.d.ts +103 -0
- package/dist/target/worldReadiness.js +153 -0
- package/moltnet-releases.json +20 -0
- package/package.json +27 -11
- package/runtimes.yaml +8 -23
- package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
- package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
- /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
- /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
|
@@ -56,6 +56,11 @@ export interface DistributionPortMapping {
|
|
|
56
56
|
internal_port: number;
|
|
57
57
|
published_port: number;
|
|
58
58
|
}
|
|
59
|
+
export interface DistributionWorldBindingsEvidence {
|
|
60
|
+
artifact_path: typeof WORLD_BINDINGS_IMAGE_PATH;
|
|
61
|
+
digest: string;
|
|
62
|
+
schema: "simfile.world-bindings.v1";
|
|
63
|
+
}
|
|
59
64
|
export interface DistributionReport {
|
|
60
65
|
compile_fingerprint: string;
|
|
61
66
|
generated_at: string;
|
|
@@ -72,9 +77,11 @@ export interface DistributionReport {
|
|
|
72
77
|
runtime_instances: DistributionRuntimeInstance[];
|
|
73
78
|
secrets: Record<DistributionSecretCategory, DistributionSecretEntry[]>;
|
|
74
79
|
version: "spawnfile.distribution-report.v1";
|
|
80
|
+
world_bindings?: DistributionWorldBindingsEvidence;
|
|
75
81
|
}
|
|
76
82
|
export declare const DISTRIBUTION_REPORT_VERSION = "spawnfile.distribution-report.v1";
|
|
77
83
|
export declare const DISTRIBUTION_REPORT_IMAGE_PATH = "/spawnfile/spawnfile-report.json";
|
|
78
84
|
export declare const DISTRIBUTION_REPORT_OUTPUT_FILE = "distribution-report.json";
|
|
79
85
|
export declare const IMAGE_CONTRACT_VERSION = "spawnfile.image.v1";
|
|
86
|
+
export declare const WORLD_BINDINGS_IMAGE_PATH = "/spawnfile/world-bindings.json";
|
|
80
87
|
export type DistributionImageLabels = Record<"com.spawnfile.compile_fingerprint" | "com.spawnfile.image_contract" | "com.spawnfile.project" | "com.spawnfile.report", string> & Record<string, string>;
|
|
@@ -2,3 +2,4 @@ export const DISTRIBUTION_REPORT_VERSION = "spawnfile.distribution-report.v1";
|
|
|
2
2
|
export const DISTRIBUTION_REPORT_IMAGE_PATH = "/spawnfile/spawnfile-report.json";
|
|
3
3
|
export const DISTRIBUTION_REPORT_OUTPUT_FILE = "distribution-report.json";
|
|
4
4
|
export const IMAGE_CONTRACT_VERSION = "spawnfile.image.v1";
|
|
5
|
+
export const WORLD_BINDINGS_IMAGE_PATH = "/spawnfile/world-bindings.json";
|
package/dist/filesystem/paths.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { statSync } from "node:fs";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { SpawnfileError } from "../shared/index.js";
|
|
3
4
|
export const assertPortableRelativePath = (inputPath) => {
|
|
@@ -9,7 +10,15 @@ export const assertPortableRelativePath = (inputPath) => {
|
|
|
9
10
|
}
|
|
10
11
|
};
|
|
11
12
|
export const getCanonicalManifestPath = (filePath) => path.resolve(filePath);
|
|
12
|
-
|
|
13
|
+
const isExistingFile = (inputPath) => {
|
|
14
|
+
try {
|
|
15
|
+
return statSync(inputPath).isFile();
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export const getManifestPath = (inputPath) => path.basename(inputPath) === "Spawnfile" || isExistingFile(inputPath)
|
|
13
22
|
? path.resolve(inputPath)
|
|
14
23
|
: path.resolve(inputPath, "Spawnfile");
|
|
15
24
|
export const getProjectRoot = (manifestPath) => path.dirname(manifestPath);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { runRealConformance } from "./conformance.js";
|
|
2
|
+
/**
|
|
3
|
+
* `npm run test:causal-conformance` entry point (B92). Runs the four real
|
|
4
|
+
* sibling causal fixture emitters (simfile, mneme, daimon, moltnet — see
|
|
5
|
+
* emitters.ts) by path, validates every record against the schema and
|
|
6
|
+
* payload minimums, stitches them into one interaction chain, and
|
|
7
|
+
* reconciles it. Prints per-source counts, any issues, and the
|
|
8
|
+
* reconstructed chain edges; exits 1 when the report is not ok.
|
|
9
|
+
*
|
|
10
|
+
* This is a hermetic-suite exception: it spawns real processes (a `go run`
|
|
11
|
+
* compile, three tsx processes), so it is its own npm script rather than a
|
|
12
|
+
* vitest test — `npm test` stays fully in-process (see emitters.test.ts and
|
|
13
|
+
* realConformance.test.ts for the injected-exec unit coverage of this same
|
|
14
|
+
* logic).
|
|
15
|
+
*/
|
|
16
|
+
const main = async () => {
|
|
17
|
+
const report = await runRealConformance();
|
|
18
|
+
console.log(`causal conformance: ${report.ok ? "OK" : "FAILED"} (events=${report.eventCount})`);
|
|
19
|
+
console.log("per-source counts:");
|
|
20
|
+
for (const { count, source } of report.sourceCounts) {
|
|
21
|
+
console.log(` - ${source}: ${count}`);
|
|
22
|
+
}
|
|
23
|
+
if (report.issues.length > 0) {
|
|
24
|
+
console.log("issues:");
|
|
25
|
+
for (const issue of report.issues) {
|
|
26
|
+
const line = issue.line !== undefined ? ` (line ${issue.line})` : "";
|
|
27
|
+
console.log(` - [${issue.source}]${line} ${issue.message}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
console.log(`chain: ${report.chain.stitchedEventCount} stitched events, ${report.chain.edges.length} backward edges`);
|
|
31
|
+
for (const edge of report.chain.edges) {
|
|
32
|
+
console.log(` - ${edge.from} -> ${edge.to}`);
|
|
33
|
+
}
|
|
34
|
+
if (!report.ok) {
|
|
35
|
+
process.exitCode = 1;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
main().catch((error) => {
|
|
39
|
+
process.stderr.write(`${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
|
|
40
|
+
process.exitCode = 1;
|
|
41
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type CausalEvent } from "@noopolis/stele";
|
|
2
|
+
import type { ConformanceIssue } from "./conformance.js";
|
|
3
|
+
/**
|
|
4
|
+
* Reports B169 D4 cause-namespace violations without throwing, filtering, or
|
|
5
|
+
* mutating events. Real conformance calls this only after chain stitching has
|
|
6
|
+
* had its chance to repair producer-local bare causes.
|
|
7
|
+
*/
|
|
8
|
+
export declare const checkCauseNamespaces: (events: readonly CausalEvent[], sourceName?: string) => ConformanceIssue[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { parseCausalCauseId } from "@noopolis/stele";
|
|
2
|
+
/**
|
|
3
|
+
* Reports B169 D4 cause-namespace violations without throwing, filtering, or
|
|
4
|
+
* mutating events. Real conformance calls this only after chain stitching has
|
|
5
|
+
* had its chance to repair producer-local bare causes.
|
|
6
|
+
*/
|
|
7
|
+
export const checkCauseNamespaces = (events, sourceName = "<cause-namespace>") => {
|
|
8
|
+
const issues = [];
|
|
9
|
+
for (const event of events) {
|
|
10
|
+
for (const causeId of event.cause_event_ids) {
|
|
11
|
+
try {
|
|
12
|
+
parseCausalCauseId(causeId);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
16
|
+
issues.push({
|
|
17
|
+
message: `event ${event.event_id} has nonconforming cause id ${JSON.stringify(causeId)}: ${reason}`,
|
|
18
|
+
source: sourceName
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return issues;
|
|
24
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { CausalEdge, CausalEvent } from "@noopolis/stele";
|
|
2
|
+
import type { EmitterSpec, Exec } from "./emitters.js";
|
|
3
|
+
export interface ConformanceFixtureSource {
|
|
4
|
+
/** JSONL text for this source. In synthetic mode this is seeded fixture text, not a live emitter invocation. */
|
|
5
|
+
jsonl: string;
|
|
6
|
+
name: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ConformancePayloadMinimum {
|
|
9
|
+
requiredKeys: string[];
|
|
10
|
+
type: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ConformanceIssue {
|
|
13
|
+
line?: number;
|
|
14
|
+
message: string;
|
|
15
|
+
source: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ConformanceReport {
|
|
18
|
+
eventCount: number;
|
|
19
|
+
issues: ConformanceIssue[];
|
|
20
|
+
ok: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Payload minimums for the event types named in specs/CAUSAL.md and the B57/
|
|
24
|
+
* B92 family packets. `runSyntheticConformance` validates seeded fixture
|
|
25
|
+
* text against these; `runRealConformance` (B92) validates the four real
|
|
26
|
+
* sibling emitters' output against the same minimums.
|
|
27
|
+
*/
|
|
28
|
+
export declare const DEFAULT_PAYLOAD_MINIMUMS: ConformancePayloadMinimum[];
|
|
29
|
+
/**
|
|
30
|
+
* Validates seeded/synthetic CausalEvent JSONL fixtures against the schema
|
|
31
|
+
* (via parseCausalJsonl), per-stream seq contiguity, payload minimums, and
|
|
32
|
+
* (B62) the principal grammar/consistency discipline in
|
|
33
|
+
* `PRINCIPAL_DISCIPLINE_CHECKS`. An empty source list is always reported as
|
|
34
|
+
* a failure — this harness never silently skips a missing source, even in
|
|
35
|
+
* synthetic mode.
|
|
36
|
+
*/
|
|
37
|
+
export declare const runSyntheticConformance: (sources: ConformanceFixtureSource[], payloadMinimums?: ConformancePayloadMinimum[]) => ConformanceReport;
|
|
38
|
+
/**
|
|
39
|
+
* Stitches the four independent, non-cross-referencing real fixtures into
|
|
40
|
+
* one interaction chain (B92 §4). Pure: never mutates its input, never does
|
|
41
|
+
* I/O. Rewrites ONLY linkage fields — R[i].cause_event_ids, T1.cause_event_ids,
|
|
42
|
+
* T1.payload.input_message_ids, T1.payload.input_content_sha256, and
|
|
43
|
+
* M2.cause_event_ids — every other field of every event is carried through
|
|
44
|
+
* byte-identical. T1out.cause_event_ids is asserted to already equal [T1.id]
|
|
45
|
+
* (daimon stamps that for real) rather than rewritten.
|
|
46
|
+
*
|
|
47
|
+
* Missing roles or a violated T1out->T1 assertion are reported as issues and
|
|
48
|
+
* the input is returned unstitched rather than guessed at.
|
|
49
|
+
*/
|
|
50
|
+
export declare const stitchInteractionChain: (events: CausalEvent[]) => {
|
|
51
|
+
issues: ConformanceIssue[];
|
|
52
|
+
stitched: CausalEvent[];
|
|
53
|
+
};
|
|
54
|
+
export interface ConformanceSourceCount {
|
|
55
|
+
count: number;
|
|
56
|
+
source: string;
|
|
57
|
+
}
|
|
58
|
+
export interface ChainSummary {
|
|
59
|
+
edges: CausalEdge[];
|
|
60
|
+
issues: ConformanceIssue[];
|
|
61
|
+
stitchedEventCount: number;
|
|
62
|
+
}
|
|
63
|
+
export interface RealConformanceReport extends ConformanceReport {
|
|
64
|
+
chain: ChainSummary;
|
|
65
|
+
events: CausalEvent[];
|
|
66
|
+
sourceCounts: ConformanceSourceCount[];
|
|
67
|
+
}
|
|
68
|
+
export interface RunRealConformanceOptions {
|
|
69
|
+
exec?: Exec;
|
|
70
|
+
specs?: EmitterSpec[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Collects the four real sibling emitters (emitters.ts), validates them
|
|
74
|
+
* (schema + payload minimums + combined seq contiguity + (B62) the
|
|
75
|
+
* principal grammar/consistency discipline in `PRINCIPAL_DISCIPLINE_CHECKS`
|
|
76
|
+
* — the real path now enforces exactly what `runSyntheticConformance` does,
|
|
77
|
+
* so a real emitter stamping a non-grammar principal is a reported issue,
|
|
78
|
+
* not a silent pass), stitches them into one interaction chain, and
|
|
79
|
+
* reconciles the result. This is B92's real-mode counterpart to
|
|
80
|
+
* runSyntheticConformance: same validation core, live process spawning
|
|
81
|
+
* instead of seeded fixture text.
|
|
82
|
+
*/
|
|
83
|
+
export declare const runRealConformance: (options?: RunRealConformanceOptions) => Promise<RealConformanceReport>;
|
|
@@ -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>;
|