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.
- package/README.md +58 -12
- 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/runtimeCredentials.js +18 -2
- 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/devCommands.d.ts +3 -0
- package/dist/cli/devCommands.js +115 -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 -179
- 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 +15 -2
- package/dist/cli/runCli.js +31 -71
- package/dist/cli/runPublishCommands.d.ts +3 -0
- package/dist/cli/runPublishCommands.js +70 -0
- package/dist/cli/statusCommand.d.ts +3 -32
- package/dist/cli/statusCommand.js +37 -233
- 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 +20 -1
- package/dist/compiler/buildProject.js +121 -7
- package/dist/compiler/compilePlanHelpers.js +2 -0
- package/dist/compiler/compileProject.d.ts +15 -0
- package/dist/compiler/compileProject.js +29 -75
- 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 +40 -81
- 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 +60 -53
- 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/containerPackageRender.d.ts +15 -0
- package/dist/compiler/containerPackageRender.js +63 -0
- package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
- package/dist/compiler/containerTargetPlanResolution.js +97 -0
- package/dist/compiler/containerTargetResources.js +3 -1
- 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 +56 -95
- package/dist/compiler/moltnetBinaries.d.ts +21 -1
- package/dist/compiler/moltnetBinaries.js +156 -28
- package/dist/compiler/moltnetClientConfig.js +18 -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/moltnetRuntimeConfig.js +11 -0
- 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 +37 -22
- 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 +187 -19
- 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 +257 -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.d.ts +17 -0
- package/dist/deployment/dockerRecover.js +137 -0
- 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 +17 -0
- package/dist/deployment/index.js +18 -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/activity.d.ts +14 -0
- package/dist/dev/activity.js +48 -0
- package/dist/dev/docker.d.ts +16 -0
- package/dist/dev/docker.js +71 -0
- package/dist/dev/index.d.ts +2 -0
- package/dist/dev/index.js +2 -0
- package/dist/dev/project.d.ts +35 -0
- package/dist/dev/project.js +170 -0
- 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 +37 -0
- package/dist/runtime/common.js +56 -1
- package/dist/runtime/container.d.ts +29 -1
- package/dist/runtime/container.js +127 -11
- 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/install.d.ts +1 -1
- package/dist/runtime/install.js +43 -1
- 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 +4 -0
- package/dist/runtime/pi/adapter.js +231 -0
- package/dist/runtime/pi/appActivitySource.d.ts +1 -0
- package/dist/runtime/pi/appActivitySource.js +199 -0
- 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 -0
- package/dist/runtime/pi/appCoreSource.js +244 -0
- package/dist/runtime/pi/appPreludeSource.d.ts +1 -0
- package/dist/runtime/pi/appPreludeSource.js +191 -0
- 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 -0
- package/dist/runtime/pi/appSource.js +12 -0
- package/dist/runtime/pi/appTemplate.d.ts +14 -0
- package/dist/runtime/pi/appTemplate.js +27 -0
- 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.d.ts +2 -0
- package/dist/runtime/pi/runAuth.js +185 -0
- 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/registry.js +3 -0
- package/dist/runtime/scheduleUtils.d.ts +2 -0
- package/dist/runtime/scheduleUtils.js +15 -0
- package/dist/runtime/types.d.ts +26 -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/deployments.js +5 -12
- 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 +29 -8
- package/runtimes.yaml +28 -27
- 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
|
@@ -3,10 +3,12 @@ import { SpawnfileError } from "../../shared/index.js";
|
|
|
3
3
|
import { createAgentCapabilities, createDiagnostic, createDocumentFiles, createSkillFiles } from "../common.js";
|
|
4
4
|
import { preparePicoClawRuntimeAuth } from "./runAuth.js";
|
|
5
5
|
import { createPicoClawAgentScaffold } from "./scaffold.js";
|
|
6
|
-
import { createPicoClawCronStoreFile, createScheduleDiagnostics, scheduleOutcomeFor } from "./schedules.js";
|
|
6
|
+
import { createPicoClawCronStoreFile, createScheduleDiagnostics, hasPicoClawCronJobs, scheduleOutcomeFor } from "./schedules.js";
|
|
7
7
|
import { assertSupportedPicoClawSurfaces, buildPicoClawChannelConfig, buildPicoClawSurfaceEnvBindings } from "./surfaces.js";
|
|
8
8
|
import { PICOCLAW_GATEWAY_BASE_PORT, PICOCLAW_INTERNAL_PICO_TOKEN } from "./pico.js";
|
|
9
9
|
import { picoClawStatusProbes } from "./statusProbes.js";
|
|
10
|
+
import { buildPicoClawMemoryMcpServers, picoClawMemoryCapabilityFor, PICOCLAW_MNEME_PACKAGE } from "./memory.js";
|
|
11
|
+
import { buildPicoClawAuthoredMcpServers, buildPicoClawMcpEnvBindings } from "./mcp.js";
|
|
10
12
|
const formatModelName = (node) => {
|
|
11
13
|
const primary = node.execution?.model?.primary;
|
|
12
14
|
if (!primary)
|
|
@@ -75,31 +77,9 @@ const buildModelList = (node) => {
|
|
|
75
77
|
};
|
|
76
78
|
});
|
|
77
79
|
};
|
|
78
|
-
const buildMcpServers = (servers) => {
|
|
79
|
-
const result = {};
|
|
80
|
-
for (const server of servers) {
|
|
81
|
-
const entry = { enabled: true };
|
|
82
|
-
if (server.transport === "stdio") {
|
|
83
|
-
entry.command = server.command;
|
|
84
|
-
if (server.args)
|
|
85
|
-
entry.args = server.args;
|
|
86
|
-
if (server.env)
|
|
87
|
-
entry.env = server.env;
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
entry.type = server.transport === "streamable_http" ? "http" : server.transport;
|
|
91
|
-
entry.url = server.url;
|
|
92
|
-
}
|
|
93
|
-
if (server.auth) {
|
|
94
|
-
entry.headers = { [server.auth.secret]: "" };
|
|
95
|
-
}
|
|
96
|
-
result[server.name] = entry;
|
|
97
|
-
}
|
|
98
|
-
return result;
|
|
99
|
-
};
|
|
100
80
|
const buildPicoClawToolsConfig = (node) => {
|
|
101
81
|
const tools = {};
|
|
102
|
-
if (node
|
|
82
|
+
if (hasPicoClawCronJobs(node)) {
|
|
103
83
|
tools.cron = {
|
|
104
84
|
enabled: true
|
|
105
85
|
};
|
|
@@ -112,7 +92,17 @@ const buildPicoClawToolsConfig = (node) => {
|
|
|
112
92
|
if (node.mcpServers.length > 0) {
|
|
113
93
|
tools.mcp = {
|
|
114
94
|
enabled: true,
|
|
115
|
-
servers:
|
|
95
|
+
servers: buildPicoClawAuthoredMcpServers(node.mcpServers)
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const memoryMcpServers = buildPicoClawMemoryMcpServers(node);
|
|
99
|
+
if (Object.keys(memoryMcpServers).length > 0) {
|
|
100
|
+
tools.mcp = {
|
|
101
|
+
enabled: true,
|
|
102
|
+
servers: {
|
|
103
|
+
...(tools.mcp?.servers ?? {}),
|
|
104
|
+
...memoryMcpServers
|
|
105
|
+
}
|
|
116
106
|
};
|
|
117
107
|
}
|
|
118
108
|
return Object.keys(tools).length > 0 ? tools : undefined;
|
|
@@ -148,7 +138,10 @@ const createContainerTargets = async (inputs) => inputs.map((input) => {
|
|
|
148
138
|
envName: secretName,
|
|
149
139
|
relativePath: createSecretPath(secretName)
|
|
150
140
|
}));
|
|
151
|
-
const configEnvBindings =
|
|
141
|
+
const configEnvBindings = [
|
|
142
|
+
...(buildPicoClawSurfaceEnvBindings(agent.surfaces) ?? []),
|
|
143
|
+
...buildPicoClawMcpEnvBindings(agent.mcpServers)
|
|
144
|
+
];
|
|
152
145
|
return {
|
|
153
146
|
configEnvBindings,
|
|
154
147
|
envFiles,
|
|
@@ -190,7 +183,7 @@ export const picoClawAdapter = {
|
|
|
190
183
|
container: {
|
|
191
184
|
configFileName: "config.json",
|
|
192
185
|
configPathEnv: "PICOCLAW_CONFIG",
|
|
193
|
-
globalNpmPackages: ["@anthropic-ai/claude-code", "@openai/codex"],
|
|
186
|
+
globalNpmPackages: ["@anthropic-ai/claude-code", "@openai/codex", PICOCLAW_MNEME_PACKAGE],
|
|
194
187
|
homeEnv: "PICOCLAW_HOME",
|
|
195
188
|
instancePaths: {
|
|
196
189
|
configPathTemplate: "<instance-root>/picoclaw/<config-file>",
|
|
@@ -216,8 +209,11 @@ export const picoClawAdapter = {
|
|
|
216
209
|
async compileAgent(node) {
|
|
217
210
|
const scheduleOutcome = scheduleOutcomeFor(node);
|
|
218
211
|
const cronStoreFile = createPicoClawCronStoreFile(node);
|
|
212
|
+
const memoryCapability = picoClawMemoryCapabilityFor(node);
|
|
219
213
|
return {
|
|
220
214
|
capabilities: createAgentCapabilities(node, {
|
|
215
|
+
memoryMessage: memoryCapability.message,
|
|
216
|
+
memoryOutcome: memoryCapability.outcome,
|
|
221
217
|
scheduleMessage: scheduleOutcome.message,
|
|
222
218
|
scheduleOutcome: scheduleOutcome.outcome
|
|
223
219
|
}),
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { McpServer } from "../../manifest/index.js";
|
|
2
|
+
import type { RuntimeContainerConfigEnvBinding } from "../types.js";
|
|
3
|
+
export declare const buildPicoClawAuthoredMcpServers: (servers: McpServer[]) => Record<string, Record<string, unknown>>;
|
|
4
|
+
export declare const buildPicoClawMcpEnvBindings: (servers: McpServer[]) => RuntimeContainerConfigEnvBinding[];
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export const buildPicoClawAuthoredMcpServers = (servers) => {
|
|
2
|
+
const result = Object.create(null);
|
|
3
|
+
for (const server of servers) {
|
|
4
|
+
if (server.transport === "stdio" && server.auth?.mode === "bearer") {
|
|
5
|
+
throw new Error("PicoClaw stdio MCP servers do not support bearer auth");
|
|
6
|
+
}
|
|
7
|
+
const entry = { enabled: true };
|
|
8
|
+
if (server.transport === "stdio") {
|
|
9
|
+
entry.command = server.command;
|
|
10
|
+
if (server.args)
|
|
11
|
+
entry.args = server.args;
|
|
12
|
+
if (server.env)
|
|
13
|
+
entry.env = server.env;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
entry.type = server.transport === "streamable_http" ? "http" : server.transport;
|
|
17
|
+
entry.url = server.url;
|
|
18
|
+
}
|
|
19
|
+
if (server.auth) {
|
|
20
|
+
entry.headers = {
|
|
21
|
+
[server.auth.mode === "bearer" ? "Authorization" : server.auth.secret]: ""
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
result[server.name] = entry;
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
export const buildPicoClawMcpEnvBindings = (servers) => servers.flatMap((server) => server.auth
|
|
29
|
+
? [
|
|
30
|
+
{
|
|
31
|
+
envName: server.auth.secret,
|
|
32
|
+
jsonPath: [
|
|
33
|
+
"tools",
|
|
34
|
+
"mcp",
|
|
35
|
+
"servers",
|
|
36
|
+
server.name,
|
|
37
|
+
"headers",
|
|
38
|
+
server.auth.mode === "bearer" ? "Authorization" : server.auth.secret
|
|
39
|
+
],
|
|
40
|
+
...(server.auth.mode === "bearer" ? { transform: "bearer" } : {})
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
: []);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ResolvedAgentNode } from "../../compiler/types.js";
|
|
2
|
+
export declare const buildPicoClawMemoryMcpServers: (node: ResolvedAgentNode) => Record<string, Record<string, unknown>>;
|
|
3
|
+
export declare const picoClawMemoryCapabilityFor: (node: ResolvedAgentNode) => {
|
|
4
|
+
message: string;
|
|
5
|
+
outcome: "degraded" | "supported";
|
|
6
|
+
};
|
|
7
|
+
export declare const PICOCLAW_MNEME_PACKAGE = "@noopolis/mneme@0.1.1";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { buildMnemeMemoryMcpServers, hasScheduledMemoryConsolidation, hasUnsupportedMnemeMemoryAccess, MNEME_PACKAGE } from "../mnemeMcp.js";
|
|
2
|
+
export const buildPicoClawMemoryMcpServers = (node) => buildMnemeMemoryMcpServers(node, {
|
|
3
|
+
modes: hasScheduledMemoryConsolidation(node) ? ["awake", "dream"] : ["awake"]
|
|
4
|
+
});
|
|
5
|
+
export const picoClawMemoryCapabilityFor = (node) => {
|
|
6
|
+
if (hasUnsupportedMnemeMemoryAccess(node)) {
|
|
7
|
+
return {
|
|
8
|
+
message: "PicoClaw lowers file-backed Mneme memory through generated MCP servers; non-file stores are not lowered",
|
|
9
|
+
outcome: "degraded"
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
message: "PicoClaw accesses Mneme memory through generated MCP servers",
|
|
14
|
+
outcome: "supported"
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export const PICOCLAW_MNEME_PACKAGE = MNEME_PACKAGE;
|
|
@@ -10,7 +10,7 @@ export const preparePicoClawRuntimeAuth = async (input) => {
|
|
|
10
10
|
if (!input.instance.home_path) {
|
|
11
11
|
return { coveredModelSecrets: [], mountArgs: [] };
|
|
12
12
|
}
|
|
13
|
-
const claudeCode = input.authProfile
|
|
13
|
+
const claudeCode = input.authProfile?.imports["claude-code"]
|
|
14
14
|
? await loadImportedClaudeCodeCredential(input.authProfile.imports["claude-code"].path)
|
|
15
15
|
: null;
|
|
16
16
|
const useClaudeCode = input.instance.model_auth_methods.anthropic === "claude-code" && claudeCode;
|
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
import type { ResolvedAgentNode } from "../../compiler/types.js";
|
|
2
2
|
import type { CapabilityReport } from "../../report/index.js";
|
|
3
3
|
import type { EmittedFile } from "../types.js";
|
|
4
|
+
type PicoClawCronSchedule = {
|
|
5
|
+
expr?: string;
|
|
6
|
+
kind: "cron";
|
|
7
|
+
tz?: string;
|
|
8
|
+
} | {
|
|
9
|
+
everyMs: number;
|
|
10
|
+
kind: "every";
|
|
11
|
+
};
|
|
12
|
+
interface PicoClawCronJob {
|
|
13
|
+
createdAtMs: number;
|
|
14
|
+
deleteAfterRun: boolean;
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
payload: {
|
|
19
|
+
deliver: boolean;
|
|
20
|
+
kind: "agent_turn";
|
|
21
|
+
message: string;
|
|
22
|
+
};
|
|
23
|
+
schedule: PicoClawCronSchedule;
|
|
24
|
+
state: Record<string, never>;
|
|
25
|
+
updatedAtMs: number;
|
|
26
|
+
}
|
|
27
|
+
export declare const createPicoClawCronJobs: (node: ResolvedAgentNode) => PicoClawCronJob[];
|
|
4
28
|
export declare const createPicoClawCronStoreFile: (node: ResolvedAgentNode) => EmittedFile | null;
|
|
29
|
+
export declare const hasPicoClawCronJobs: (node: ResolvedAgentNode) => boolean;
|
|
5
30
|
export declare const scheduleOutcomeFor: (node: ResolvedAgentNode) => {
|
|
6
31
|
message?: string;
|
|
7
32
|
outcome?: CapabilityReport["outcome"];
|
|
8
33
|
};
|
|
9
34
|
export declare const createScheduleDiagnostics: (node: ResolvedAgentNode) => import("../../report/types.js").DiagnosticReport[];
|
|
35
|
+
export {};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { slugify } from "../../compiler/helpers.js";
|
|
1
2
|
import { createDiagnostic } from "../common.js";
|
|
3
|
+
import { isMnemeMemoryAccessSupported, mnemeMemoryServerName } from "../mnemeMcp.js";
|
|
4
|
+
import { parseEveryScheduleMs } from "../scheduleUtils.js";
|
|
2
5
|
const createPicoClawCronJob = (node) => {
|
|
3
6
|
if (!node.schedule || node.schedule.kind !== "cron") {
|
|
4
7
|
return null;
|
|
@@ -23,13 +26,68 @@ const createPicoClawCronJob = (node) => {
|
|
|
23
26
|
updatedAtMs: 0
|
|
24
27
|
};
|
|
25
28
|
};
|
|
29
|
+
const dreamPrompt = (bankId, serverName) => [
|
|
30
|
+
`Dream over Mneme memory bank ${bankId}.`,
|
|
31
|
+
"This is an isolated memory-maintenance session, not normal conversation.",
|
|
32
|
+
`Prefer the ${serverName} MCP tools when available.`,
|
|
33
|
+
"Search the active dream scope and read-only global scope for stale, duplicate, noisy, or important memories.",
|
|
34
|
+
"Use memory_summarize, memory_register, or memory_forget only when consolidation is evidence-backed."
|
|
35
|
+
].join(" ");
|
|
36
|
+
const scheduleFromMemoryConsolidation = (schedule) => {
|
|
37
|
+
const everyMs = parseEveryScheduleMs(schedule);
|
|
38
|
+
if (everyMs !== null) {
|
|
39
|
+
return { everyMs, kind: "every" };
|
|
40
|
+
}
|
|
41
|
+
return { expr: schedule, kind: "cron" };
|
|
42
|
+
};
|
|
43
|
+
const createPicoClawMemoryDreamJobs = (node) => {
|
|
44
|
+
const jobs = [];
|
|
45
|
+
const seen = new Set();
|
|
46
|
+
for (const access of node.memoryAccess ?? []) {
|
|
47
|
+
const schedule = access.bank.consolidation.schedule;
|
|
48
|
+
if (!isMnemeMemoryAccessSupported(access) ||
|
|
49
|
+
access.bank.consolidation.mode !== "scheduled" ||
|
|
50
|
+
!schedule) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const key = `${access.source}:${access.bank.id}`;
|
|
54
|
+
if (seen.has(key)) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
seen.add(key);
|
|
58
|
+
const dreamServerName = mnemeMemoryServerName(node, access, "dream");
|
|
59
|
+
const bankSlug = dreamServerName.replace(/^mneme-/u, "").replace(/-dream$/u, "");
|
|
60
|
+
const agentSlug = slugify(node.name) || "agent";
|
|
61
|
+
const id = `spawnfile-dream-${agentSlug}-${bankSlug}`;
|
|
62
|
+
jobs.push({
|
|
63
|
+
createdAtMs: 0,
|
|
64
|
+
deleteAfterRun: false,
|
|
65
|
+
enabled: true,
|
|
66
|
+
id,
|
|
67
|
+
name: id,
|
|
68
|
+
payload: {
|
|
69
|
+
deliver: false,
|
|
70
|
+
kind: "agent_turn",
|
|
71
|
+
message: dreamPrompt(access.bank.id, dreamServerName)
|
|
72
|
+
},
|
|
73
|
+
schedule: scheduleFromMemoryConsolidation(schedule),
|
|
74
|
+
state: {},
|
|
75
|
+
updatedAtMs: 0
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return jobs;
|
|
79
|
+
};
|
|
80
|
+
export const createPicoClawCronJobs = (node) => [
|
|
81
|
+
createPicoClawCronJob(node),
|
|
82
|
+
...createPicoClawMemoryDreamJobs(node)
|
|
83
|
+
].filter((job) => job !== null);
|
|
26
84
|
export const createPicoClawCronStoreFile = (node) => {
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
85
|
+
const jobs = createPicoClawCronJobs(node);
|
|
86
|
+
if (jobs.length === 0) {
|
|
29
87
|
return null;
|
|
30
88
|
}
|
|
31
89
|
const store = {
|
|
32
|
-
jobs
|
|
90
|
+
jobs,
|
|
33
91
|
version: 1
|
|
34
92
|
};
|
|
35
93
|
return {
|
|
@@ -37,6 +95,7 @@ export const createPicoClawCronStoreFile = (node) => {
|
|
|
37
95
|
path: "workspace/cron/jobs.json"
|
|
38
96
|
};
|
|
39
97
|
};
|
|
98
|
+
export const hasPicoClawCronJobs = (node) => createPicoClawCronJobs(node).length > 0;
|
|
40
99
|
export const scheduleOutcomeFor = (node) => {
|
|
41
100
|
if (!node.schedule) {
|
|
42
101
|
return {};
|
package/dist/runtime/registry.js
CHANGED
|
@@ -3,9 +3,12 @@ import { parse as parseYaml } from "yaml";
|
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { SpawnfileError } from "../shared/index.js";
|
|
5
5
|
import { openClawAdapter } from "./openclaw/adapter.js";
|
|
6
|
+
import { daimonAdapter, piAdapter } from "./pi/adapter.js";
|
|
6
7
|
import { picoClawAdapter } from "./picoclaw/adapter.js";
|
|
7
8
|
const runtimeAdapters = new Map([
|
|
9
|
+
[daimonAdapter.name, daimonAdapter],
|
|
8
10
|
[openClawAdapter.name, openClawAdapter],
|
|
11
|
+
[piAdapter.name, piAdapter],
|
|
9
12
|
[picoClawAdapter.name, picoClawAdapter]
|
|
10
13
|
]);
|
|
11
14
|
const runtimeInstallSchema = z.discriminatedUnion("kind", [
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const isEveryScheduleValue = (value) => /^(\d+(?:\.\d+)?)(ms|s|m|h|d)?$/u.test(value.trim());
|
|
2
|
+
export const parseEveryScheduleMs = (value) => {
|
|
3
|
+
const match = /^(\d+(?:\.\d+)?)(ms|s|m|h|d)?$/u.exec(value.trim());
|
|
4
|
+
if (!match) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
const multipliers = {
|
|
8
|
+
d: 24 * 60 * 60 * 1000,
|
|
9
|
+
h: 60 * 60 * 1000,
|
|
10
|
+
m: 60 * 1000,
|
|
11
|
+
ms: 1,
|
|
12
|
+
s: 1000
|
|
13
|
+
};
|
|
14
|
+
return Math.max(1, Math.round(Number(match[1]) * multipliers[match[2] ?? "ms"]));
|
|
15
|
+
};
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EffectiveModelTarget, ResolvedAgentNode, ResolvedAgentSurfaces, ResolvedTeamNode } from "../compiler/types.js";
|
|
2
|
+
import type { SimfileWorldBindingV1 } from "../compiler/worldBindings.js";
|
|
2
3
|
import type { ResolvedAuthProfile } from "../auth/index.js";
|
|
3
4
|
import type { AgentManifest } from "../manifest/index.js";
|
|
4
5
|
import type { CapabilityReport, DiagnosticReport } from "../report/index.js";
|
|
@@ -20,17 +21,30 @@ export interface ContainerTargetInput {
|
|
|
20
21
|
kind: "agent" | "team";
|
|
21
22
|
slug: string;
|
|
22
23
|
value: ResolvedAgentNode | ResolvedTeamNode;
|
|
24
|
+
worldBinding?: SimfileWorldBindingV1;
|
|
23
25
|
}
|
|
24
26
|
export interface ContainerTargetEnvFile {
|
|
25
27
|
envName: string;
|
|
26
28
|
relativePath: string;
|
|
27
29
|
}
|
|
30
|
+
export type RuntimeContainerConfigValueTransform = "bearer";
|
|
28
31
|
export interface ContainerTarget {
|
|
29
32
|
configEnvBindings?: RuntimeContainerConfigEnvBinding[];
|
|
33
|
+
/**
|
|
34
|
+
* Optional node id -> resolved engine kind map (currently only populated by
|
|
35
|
+
* `src/runtime/pi/adapter.ts`'s `createContainerTargets`, e.g. `{"agent:
|
|
36
|
+
* eleanor": "scripted"}`). Threaded through `RuntimeTargetPlan` into
|
|
37
|
+
* `ContainerRuntimeInstanceReport.engine_by_node_id` for compile-report
|
|
38
|
+
* disclosure (Piece 5, Slice B) — adapters with no engine concept simply
|
|
39
|
+
* omit it.
|
|
40
|
+
*/
|
|
41
|
+
engineByNodeId?: Record<string, string>;
|
|
30
42
|
envFiles?: ContainerTargetEnvFile[];
|
|
31
43
|
files: EmittedFile[];
|
|
32
44
|
id: string;
|
|
33
45
|
sourceIds?: string[];
|
|
46
|
+
/** World token env names actually lowered into this target's native config. */
|
|
47
|
+
worldTokenEnvNames?: string[];
|
|
34
48
|
}
|
|
35
49
|
export interface RuntimeContainerInstancePaths {
|
|
36
50
|
configPathTemplate: string;
|
|
@@ -41,7 +55,9 @@ export interface RuntimeContainerInstancePaths {
|
|
|
41
55
|
export interface RuntimeContainerConfigEnvBinding {
|
|
42
56
|
envName: string;
|
|
43
57
|
generated?: boolean;
|
|
44
|
-
|
|
58
|
+
/** Legacy dot paths remain supported; structured paths address arbitrary JSON keys exactly. */
|
|
59
|
+
jsonPath: string | readonly string[];
|
|
60
|
+
transform?: RuntimeContainerConfigValueTransform;
|
|
45
61
|
}
|
|
46
62
|
export interface RuntimeContainerMeta {
|
|
47
63
|
configFileName: string;
|
|
@@ -59,6 +75,7 @@ export interface RuntimeContainerMeta {
|
|
|
59
75
|
port?: number;
|
|
60
76
|
portStride?: number;
|
|
61
77
|
portEnv?: string;
|
|
78
|
+
postRootfsCommands?: string[];
|
|
62
79
|
standaloneBaseImage: string;
|
|
63
80
|
startCommand: string[];
|
|
64
81
|
staticEnv?: Record<string, string>;
|
|
@@ -79,7 +96,14 @@ export interface RuntimeAuthInstance {
|
|
|
79
96
|
runtime: string;
|
|
80
97
|
}
|
|
81
98
|
export interface RuntimeAuthPreparationInput {
|
|
82
|
-
|
|
99
|
+
/**
|
|
100
|
+
* The Spawnfile-managed auth profile (`--auth-profile`), or `null` when the
|
|
101
|
+
* run/up invocation did not select one. Host-credential staging that does
|
|
102
|
+
* not depend on an imported auth profile (e.g. the Pi adapter's optional
|
|
103
|
+
* CLI-home mounts for grok/codex/antigravity) must still run when this is
|
|
104
|
+
* `null` — only the profile-derived `imports` lookups are unavailable.
|
|
105
|
+
*/
|
|
106
|
+
authProfile: ResolvedAuthProfile | null;
|
|
83
107
|
env: Record<string, string>;
|
|
84
108
|
instance: RuntimeAuthInstance;
|
|
85
109
|
outputDirectory: string;
|
package/dist/shared/errors.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type SpawnfileErrorCode = "adapter_error" | "compile_error" | "invalid_manifest" | "io_error" | "runtime_error" | "validation_error";
|
|
2
2
|
export declare class SpawnfileError extends Error {
|
|
3
3
|
readonly code: SpawnfileErrorCode;
|
|
4
|
-
constructor(code: SpawnfileErrorCode, message: string);
|
|
4
|
+
constructor(code: SpawnfileErrorCode, message: string, options?: ErrorOptions);
|
|
5
5
|
}
|
|
6
6
|
export declare const isSpawnfileError: (value: unknown) => value is SpawnfileError;
|
|
7
7
|
/**
|
package/dist/shared/errors.js
CHANGED
package/dist/shared/index.d.ts
CHANGED
package/dist/shared/index.js
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const redactTokenLikeText = (text) => {
|
|
2
|
+
let redacted = text;
|
|
3
|
+
redacted = redacted.replace(/\bBearer\s+[A-Za-z0-9._~+/=-]{12,}/gi, "Bearer [REDACTED]");
|
|
4
|
+
redacted = redacted.replace(/\bmagt_v1_[A-Za-z0-9_-]{16,}\b/g, "[REDACTED]");
|
|
5
|
+
redacted = redacted.replace(/\b(?:sk|sk-proj)-[A-Za-z0-9_-]{20,}\b/g, "[REDACTED]");
|
|
6
|
+
redacted = redacted.replace(/\b([A-Z0-9_]*(?:API[_-]?KEY|TOKEN|SECRET|PASSWORD)[A-Z0-9_]*=)([^\s"'`]+)/gi, "$1[REDACTED]");
|
|
7
|
+
return redacted.replace(/(\"([^\"]*(?:api[_-]?key|token|secret|password)[^\"]*)\"\s*:\s*\")([^\"]+)(\")/gi, "$1[REDACTED]$4");
|
|
8
|
+
};
|
|
9
|
+
export const redactSensitiveText = (text) => redactTokenLikeText(text);
|
|
10
|
+
export const boundedRedactedText = (text, limit = 240) => redactSensitiveText(text).replace(/\s+/gu, " ").slice(0, limit);
|
|
@@ -4,6 +4,7 @@ export declare const countObservations: (observations: StatusObservation[]) => S
|
|
|
4
4
|
export declare const getVisibleObservations: (status: StaticStatus) => StatusObservation[];
|
|
5
5
|
export declare const exitCodeForStatus: (status: StaticStatus) => StatusExitCode;
|
|
6
6
|
export declare const createStaticStatus: (view: StaticStatus["view"], loadedReport: LoadedCompileReport, input: {
|
|
7
|
+
compiledProbeObservations?: StatusObservation[];
|
|
7
8
|
deployments?: StatusDeploymentSummary[];
|
|
8
9
|
inputPath: string;
|
|
9
10
|
liveObservations?: StatusObservation[];
|
|
@@ -230,6 +230,7 @@ export const createStaticStatus = (view, loadedReport, input) => {
|
|
|
230
230
|
const deployments = input.deployments ?? [];
|
|
231
231
|
const live = input.live ?? defaultLiveRequest();
|
|
232
232
|
const liveObservations = input.liveObservations ?? [];
|
|
233
|
+
const compiledProbeObservations = input.compiledProbeObservations ?? [];
|
|
233
234
|
const selection = expandStatusSelectionSubjects(input.selection, {
|
|
234
235
|
deployments,
|
|
235
236
|
loadedReport,
|
|
@@ -237,6 +238,7 @@ export const createStaticStatus = (view, loadedReport, input) => {
|
|
|
237
238
|
});
|
|
238
239
|
addDeclaredObservations(observations, view, nodes);
|
|
239
240
|
addCompiledObservations(observations, loadedReport, view, nodes);
|
|
241
|
+
observations.push(...compiledProbeObservations);
|
|
240
242
|
observations.push(...createDeploymentObservations(deployments, {
|
|
241
243
|
compileFingerprint: compileInfoFor(loadedReport).compileFingerprint,
|
|
242
244
|
liveRequested: live.requested,
|
|
@@ -32,6 +32,10 @@ export interface StatusReportMoltnetRoom {
|
|
|
32
32
|
visibility: string | null;
|
|
33
33
|
writePolicy: string | null;
|
|
34
34
|
}
|
|
35
|
+
export interface StatusReportMoltnetNodePlan {
|
|
36
|
+
configPath: string;
|
|
37
|
+
networkId: string;
|
|
38
|
+
}
|
|
35
39
|
export interface StatusReportMoltnetServerPlan {
|
|
36
40
|
authMode: string | null;
|
|
37
41
|
baseUrl: string;
|
|
@@ -66,8 +70,26 @@ export interface StatusReportWorkspaceResource {
|
|
|
66
70
|
}
|
|
67
71
|
export interface StatusReport {
|
|
68
72
|
compileFingerprint: string | null;
|
|
73
|
+
/**
|
|
74
|
+
* Absolute physical path to the compiled `container/entrypoint` script
|
|
75
|
+
* (B93), resolved against the output directory a given
|
|
76
|
+
* `loadCompileReport`/`loadedImageCompileReport` call was actually handed
|
|
77
|
+
* — never a path baked into the report JSON's own `output_directory`
|
|
78
|
+
* field, which can be stale relative to the current invocation. `null`
|
|
79
|
+
* when the report has no `container.entrypoint` field, or (image/home
|
|
80
|
+
* deployment reports) when there is no on-disk compiled output at all.
|
|
81
|
+
*/
|
|
82
|
+
entrypointPath?: string | null;
|
|
69
83
|
generatedAt: string | null;
|
|
70
84
|
internalPorts?: number[];
|
|
85
|
+
/**
|
|
86
|
+
* Parsed `container.moltnet.node_plans[]` (B38): `configPath` is the
|
|
87
|
+
* container-absolute path from the compiled report (see
|
|
88
|
+
* `toContainerRootfsPath` in `src/compiler/moltnetArtifactPaths.ts`), not
|
|
89
|
+
* yet resolved onto disk — join it under `<output dir>/container/rootfs`.
|
|
90
|
+
* Optional, like `moltnetServers` below, for the same pre-B38 reason.
|
|
91
|
+
*/
|
|
92
|
+
moltnetNodePlans?: StatusReportMoltnetNodePlan[];
|
|
71
93
|
moltnetServers?: StatusReportMoltnetServerPlan[];
|
|
72
94
|
nodes: StatusReportNode[];
|
|
73
95
|
outputDirectory: string | null;
|
|
@@ -91,6 +91,14 @@ const normalizeMoltnetRoom = (value) => {
|
|
|
91
91
|
writePolicy: toStringOrNull(value.write_policy)
|
|
92
92
|
};
|
|
93
93
|
};
|
|
94
|
+
const normalizeMoltnetNodePlan = (value) => {
|
|
95
|
+
if (!isRecord(value)) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const configPath = toStringOrNull(value.config_path);
|
|
99
|
+
const networkId = toStringOrNull(value.network_id);
|
|
100
|
+
return configPath && networkId ? { configPath, networkId } : null;
|
|
101
|
+
};
|
|
94
102
|
const normalizeMoltnetServer = (value) => {
|
|
95
103
|
if (!isRecord(value)) {
|
|
96
104
|
return null;
|
|
@@ -153,7 +161,7 @@ const normalizeWorkspaceResource = (value) => {
|
|
|
153
161
|
? { backingPath, id, kind, linkPath, mode, mount, sharing }
|
|
154
162
|
: null;
|
|
155
163
|
};
|
|
156
|
-
const normalizeReport = (value, reportPath) => {
|
|
164
|
+
const normalizeReport = (value, reportPath, outputDirectory) => {
|
|
157
165
|
if (!isRecord(value) || !Array.isArray(value.nodes)) {
|
|
158
166
|
return null;
|
|
159
167
|
}
|
|
@@ -163,10 +171,16 @@ const normalizeReport = (value, reportPath) => {
|
|
|
163
171
|
: [];
|
|
164
172
|
const moltnet = isRecord(container.moltnet) ? container.moltnet : {};
|
|
165
173
|
const moltnetServers = Array.isArray(moltnet.server_plans) ? moltnet.server_plans : [];
|
|
174
|
+
const moltnetNodePlans = Array.isArray(moltnet.node_plans) ? moltnet.node_plans : [];
|
|
175
|
+
const entrypoint = toStringOrNull(container.entrypoint);
|
|
166
176
|
return {
|
|
167
177
|
compileFingerprint: toStringOrNull(value.compile_fingerprint),
|
|
178
|
+
entrypointPath: entrypoint ? path.join(outputDirectory, entrypoint) : null,
|
|
168
179
|
generatedAt: toStringOrNull(value.generated_at),
|
|
169
180
|
internalPorts: toNumberArray(container.internal_ports),
|
|
181
|
+
moltnetNodePlans: moltnetNodePlans
|
|
182
|
+
.map(normalizeMoltnetNodePlan)
|
|
183
|
+
.filter((entry) => entry !== null),
|
|
170
184
|
moltnetServers: moltnetServers
|
|
171
185
|
.map(normalizeMoltnetServer)
|
|
172
186
|
.filter((entry) => entry !== null),
|
|
@@ -219,7 +233,7 @@ export const loadCompileReport = async (outputDirectory) => {
|
|
|
219
233
|
reportPath
|
|
220
234
|
};
|
|
221
235
|
}
|
|
222
|
-
const report = normalizeReport(parsed, reportPath);
|
|
236
|
+
const report = normalizeReport(parsed, reportPath, outputDirectory);
|
|
223
237
|
return report
|
|
224
238
|
? { kind: "loaded", report, reportPath }
|
|
225
239
|
: {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { LoadedCompileReport } from "./compileReport.js";
|
|
2
|
+
import { collectLifecycleProbeObservations } from "./lifecycleProbes.js";
|
|
3
|
+
import { collectMoltnetWiringProbeObservations } from "./moltnetWiringProbes.js";
|
|
4
|
+
import type { StatusObservation } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* CLI-facing glue for the B38 offline lifecycle + Moltnet-wiring probes:
|
|
7
|
+
* a real disk `readFile` for the static (`--out <dir>`) status path, a
|
|
8
|
+
* stub that always resolves `null` for the home-deployment status path
|
|
9
|
+
* (no compiled output tree exists there at all), and one function that
|
|
10
|
+
* runs both probe collectors and concatenates their observations. Kept out
|
|
11
|
+
* of `src/cli/statusCommand.ts` to stay under this repo's 400-line file
|
|
12
|
+
* cap — this is CLI wiring plumbing, not a new probe contract.
|
|
13
|
+
*/
|
|
14
|
+
export type CompiledProbeReadFile = (filePath: string) => Promise<string | null>;
|
|
15
|
+
export interface CompiledProbeCollectors {
|
|
16
|
+
collectLifecycleProbeObservations?: typeof collectLifecycleProbeObservations;
|
|
17
|
+
collectMoltnetWiringProbeObservations?: typeof collectMoltnetWiringProbeObservations;
|
|
18
|
+
}
|
|
19
|
+
export declare const readCompiledProbeFile: CompiledProbeReadFile;
|
|
20
|
+
export declare const unavailableCompiledProbeFile: CompiledProbeReadFile;
|
|
21
|
+
export declare const collectCompiledProbeObservations: (loadedReport: LoadedCompileReport, outputDirectory: string | null, readFileFn: CompiledProbeReadFile, collectors?: CompiledProbeCollectors) => Promise<StatusObservation[]>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { collectLifecycleProbeObservations } from "./lifecycleProbes.js";
|
|
3
|
+
import { collectMoltnetWiringProbeObservations } from "./moltnetWiringProbes.js";
|
|
4
|
+
// Never throws: an unreadable path (missing file, permissions, not a
|
|
5
|
+
// regular file) resolves null so a probe reports its own defined
|
|
6
|
+
// unreadable-input severity instead of crashing status.
|
|
7
|
+
export const readCompiledProbeFile = async (filePath) => {
|
|
8
|
+
try {
|
|
9
|
+
return await readFile(filePath, "utf8");
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
// Home-deployment status has no on-disk compiled output tree (no `--out`
|
|
16
|
+
// directory, no container/rootfs mirror) to read from at all — every read
|
|
17
|
+
// resolves null so the probes report their own defined "nothing to check"
|
|
18
|
+
// unknown, never a crash and never a false ok.
|
|
19
|
+
export const unavailableCompiledProbeFile = async () => null;
|
|
20
|
+
export const collectCompiledProbeObservations = async (loadedReport, outputDirectory, readFileFn, collectors = {}) => {
|
|
21
|
+
const collectLifecycle = collectors.collectLifecycleProbeObservations ?? collectLifecycleProbeObservations;
|
|
22
|
+
const collectWiring = collectors.collectMoltnetWiringProbeObservations ?? collectMoltnetWiringProbeObservations;
|
|
23
|
+
return [
|
|
24
|
+
...await collectLifecycle({ loadedReport, outputDirectory, readFile: readFileFn }),
|
|
25
|
+
...await collectWiring({ loadedReport, outputDirectory, readFile: readFileFn })
|
|
26
|
+
];
|
|
27
|
+
};
|