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
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { SELECTED_TARGET_VERSION, parseSelectedTargetReceipt, parseTargetResourceRequest } from "../target/contracts.js";
|
|
2
|
+
import { initializeTargetJournal, openExistingTargetJournalAuthority } from "../target/journal.js";
|
|
3
|
+
import { targetDefaultEnvelope as envelope } from "./targetDefaultEnvelope.js";
|
|
4
|
+
export const TARGET_DEFAULT_AUTHORITIES_ERROR = "Target authority initialization failed";
|
|
5
|
+
const fail = () => { throw new Error(TARGET_DEFAULT_AUTHORITIES_ERROR); };
|
|
6
|
+
const selectedFrom = (request) => parseSelectedTargetReceipt({
|
|
7
|
+
...request.selected_target,
|
|
8
|
+
version: SELECTED_TARGET_VERSION
|
|
9
|
+
});
|
|
10
|
+
const mutation = (raw) => {
|
|
11
|
+
let request;
|
|
12
|
+
try {
|
|
13
|
+
request = parseTargetResourceRequest(raw);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return fail();
|
|
17
|
+
}
|
|
18
|
+
if (request.operation === "select_target")
|
|
19
|
+
return fail();
|
|
20
|
+
return request;
|
|
21
|
+
};
|
|
22
|
+
const same = (left, right) => JSON.stringify(left) === JSON.stringify(right);
|
|
23
|
+
const identityKey = (context, request, selected) => [
|
|
24
|
+
context,
|
|
25
|
+
request.run_id,
|
|
26
|
+
request.descriptor_digest,
|
|
27
|
+
selected.fingerprint,
|
|
28
|
+
selected.handle
|
|
29
|
+
].join("\0");
|
|
30
|
+
export const createTargetJournalAccess = (config) => {
|
|
31
|
+
const cache = new Map();
|
|
32
|
+
const resolveIdentity = async (input) => {
|
|
33
|
+
if (input.context !== config.context)
|
|
34
|
+
return fail();
|
|
35
|
+
let selectedTarget;
|
|
36
|
+
try {
|
|
37
|
+
selectedTarget = parseSelectedTargetReceipt({
|
|
38
|
+
...input.selectedTarget,
|
|
39
|
+
version: SELECTED_TARGET_VERSION
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return fail();
|
|
44
|
+
}
|
|
45
|
+
const synthetic = {
|
|
46
|
+
descriptor_digest: input.descriptorDigest,
|
|
47
|
+
run_id: input.runId,
|
|
48
|
+
selected_target: {
|
|
49
|
+
fingerprint: selectedTarget.fingerprint,
|
|
50
|
+
handle: selectedTarget.handle
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const key = identityKey(config.context, synthetic, selectedTarget);
|
|
54
|
+
let journal = cache.get(key);
|
|
55
|
+
if (!journal) {
|
|
56
|
+
journal = initializeTargetJournal({
|
|
57
|
+
context: config.context,
|
|
58
|
+
descriptorDigest: input.descriptorDigest,
|
|
59
|
+
root: config.paths.journals,
|
|
60
|
+
runId: input.runId,
|
|
61
|
+
selectedTarget
|
|
62
|
+
});
|
|
63
|
+
cache.set(key, journal);
|
|
64
|
+
journal.catch(() => { if (cache.get(key) === journal)
|
|
65
|
+
cache.delete(key); });
|
|
66
|
+
}
|
|
67
|
+
const resolved = await journal;
|
|
68
|
+
const snapshot = await resolved.read();
|
|
69
|
+
if (snapshot.run_id !== input.runId
|
|
70
|
+
|| snapshot.descriptor_digest !== input.descriptorDigest
|
|
71
|
+
|| !same(snapshot.selected_target, synthetic.selected_target))
|
|
72
|
+
return fail();
|
|
73
|
+
return resolved;
|
|
74
|
+
};
|
|
75
|
+
const resolveExistingIdentity = async (input) => {
|
|
76
|
+
if (input.context !== config.context)
|
|
77
|
+
return fail();
|
|
78
|
+
let selectedTarget;
|
|
79
|
+
try {
|
|
80
|
+
selectedTarget = parseSelectedTargetReceipt({
|
|
81
|
+
...input.selectedTarget,
|
|
82
|
+
version: SELECTED_TARGET_VERSION
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return fail();
|
|
87
|
+
}
|
|
88
|
+
const synthetic = {
|
|
89
|
+
descriptor_digest: input.descriptorDigest,
|
|
90
|
+
run_id: input.runId,
|
|
91
|
+
selected_target: { fingerprint: selectedTarget.fingerprint, handle: selectedTarget.handle }
|
|
92
|
+
};
|
|
93
|
+
let resolved;
|
|
94
|
+
try {
|
|
95
|
+
resolved = await openExistingTargetJournalAuthority({
|
|
96
|
+
context: config.context,
|
|
97
|
+
descriptorDigest: input.descriptorDigest,
|
|
98
|
+
root: config.paths.journals,
|
|
99
|
+
runId: input.runId,
|
|
100
|
+
selectedTarget
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return fail();
|
|
105
|
+
}
|
|
106
|
+
const snapshot = await resolved.read();
|
|
107
|
+
if (snapshot.run_id !== input.runId
|
|
108
|
+
|| snapshot.descriptor_digest !== input.descriptorDigest
|
|
109
|
+
|| !same(snapshot.selected_target, synthetic.selected_target))
|
|
110
|
+
return fail();
|
|
111
|
+
return resolved;
|
|
112
|
+
};
|
|
113
|
+
const resolver = Object.freeze({
|
|
114
|
+
resolve: async (raw) => {
|
|
115
|
+
const input = envelope(raw, ["context", "request"]);
|
|
116
|
+
if (input.context !== config.context)
|
|
117
|
+
return fail();
|
|
118
|
+
const request = mutation(input.request);
|
|
119
|
+
const selectedTarget = selectedFrom(request);
|
|
120
|
+
if (!same(request.selected_target, {
|
|
121
|
+
fingerprint: selectedTarget.fingerprint,
|
|
122
|
+
handle: selectedTarget.handle
|
|
123
|
+
}))
|
|
124
|
+
return fail();
|
|
125
|
+
const resolved = await resolveIdentity({
|
|
126
|
+
context: input.context,
|
|
127
|
+
descriptorDigest: request.descriptor_digest,
|
|
128
|
+
runId: request.run_id,
|
|
129
|
+
selectedTarget: request.selected_target
|
|
130
|
+
});
|
|
131
|
+
return Object.freeze({ journal: resolved, request, selectedTarget });
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
return { resolver, resolveExistingIdentity, resolveIdentity };
|
|
135
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type TargetWorldClockReceipt } from "../target/worldClock.js";
|
|
2
|
+
import type { TargetDefaultWorldReadinessConfig } from "./targetDefaultConfig.js";
|
|
3
|
+
/** Query one recorded world and its immutable activation marker for clock truth. */
|
|
4
|
+
export declare const queryTargetDefaultWorldClock: (config: TargetDefaultWorldReadinessConfig, request: unknown) => Promise<TargetWorldClockReceipt>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createDockerTargetExecutors } from "../target/dockerCommandExecutor.js";
|
|
2
|
+
import { createDockerWorldClockReader } from "../target/dockerWorldClock.js";
|
|
3
|
+
import { initializeWorldServiceAuthorityReader } from "../target/dockerWorldServiceStore.js";
|
|
4
|
+
import { parseTargetWorldClockRequest, } from "../target/worldClock.js";
|
|
5
|
+
/** Query one recorded world and its immutable activation marker for clock truth. */
|
|
6
|
+
export const queryTargetDefaultWorldClock = async (config, request) => {
|
|
7
|
+
const parsed = parseTargetWorldClockRequest(request);
|
|
8
|
+
const authorityStore = await initializeWorldServiceAuthorityReader(config.paths.worldAuthority);
|
|
9
|
+
const executors = createDockerTargetExecutors({ dockerCommand: config.dockerCommand });
|
|
10
|
+
return createDockerWorldClockReader({
|
|
11
|
+
authorityStore, context: config.context, contentExecutor: executors.publicArtifact,
|
|
12
|
+
executor: executors.world, timeoutMs: config.timeoutMs,
|
|
13
|
+
}).query(parsed);
|
|
14
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { TargetDefaultWorldReadinessConfig } from "./targetDefaultConfig.js";
|
|
2
|
+
import type { TargetWorldClockSession } from "./targetWorldClockCommand.js";
|
|
3
|
+
import type { TargetWorldReadinessSession } from "./targetWorldReadinessCommand.js";
|
|
4
|
+
/** Minimal production session shared by the two read-only world queries. */
|
|
5
|
+
export declare const createProductionTargetWorldQuerySession: (config: TargetDefaultWorldReadinessConfig) => TargetWorldReadinessSession & TargetWorldClockSession;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Minimal production session shared by the two read-only world queries. */
|
|
2
|
+
export const createProductionTargetWorldQuerySession = (config) => Object.freeze({
|
|
3
|
+
queryWorldReadiness: async (request) => {
|
|
4
|
+
const { queryTargetDefaultWorldReadiness } = await import("./targetDefaultWorldReadiness.js");
|
|
5
|
+
return queryTargetDefaultWorldReadiness(config, request);
|
|
6
|
+
},
|
|
7
|
+
queryWorldClock: async (request) => {
|
|
8
|
+
const { queryTargetDefaultWorldClock } = await import("./targetDefaultWorldClock.js");
|
|
9
|
+
return queryTargetDefaultWorldClock(config, request);
|
|
10
|
+
},
|
|
11
|
+
});
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type TargetWorldReadinessReceipt } from "../target/worldReadiness.js";
|
|
2
|
+
import type { TargetDefaultWorldReadinessConfig } from "./targetDefaultConfig.js";
|
|
3
|
+
/** Query one exact world through its private container-local readiness endpoint. */
|
|
4
|
+
export declare const queryTargetDefaultWorldReadiness: (config: TargetDefaultWorldReadinessConfig, request: unknown) => Promise<TargetWorldReadinessReceipt>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createDockerWorldReadinessReader } from "../target/dockerWorldReadiness.js";
|
|
2
|
+
import { createDockerTargetExecutors } from "../target/dockerCommandExecutor.js";
|
|
3
|
+
import { initializeWorldServiceAuthorityReader } from "../target/dockerWorldServiceStore.js";
|
|
4
|
+
import { parseTargetWorldReadinessRequest } from "../target/worldReadiness.js";
|
|
5
|
+
/** Query one exact world through its private container-local readiness endpoint. */
|
|
6
|
+
export const queryTargetDefaultWorldReadiness = async (config, request) => {
|
|
7
|
+
const parsedRequest = parseTargetWorldReadinessRequest(request);
|
|
8
|
+
const authorityStore = await initializeWorldServiceAuthorityReader(config.paths.worldAuthority);
|
|
9
|
+
const executors = createDockerTargetExecutors({ dockerCommand: config.dockerCommand });
|
|
10
|
+
return createDockerWorldReadinessReader({
|
|
11
|
+
authorityStore,
|
|
12
|
+
context: config.context,
|
|
13
|
+
contentExecutor: executors.publicArtifact,
|
|
14
|
+
executor: executors.world,
|
|
15
|
+
timeoutMs: config.timeoutMs
|
|
16
|
+
}).query(parsedRequest);
|
|
17
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type TargetResourceRequest } from "../target/contracts.js";
|
|
2
|
+
type EvidenceExportRequest = Extract<TargetResourceRequest, {
|
|
3
|
+
operation: "export_evidence_volume";
|
|
4
|
+
}>;
|
|
5
|
+
type ArtifactResolutionRequest = Extract<TargetResourceRequest, {
|
|
6
|
+
operation: "resolve_world_artifact";
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* Derives the target-owned helper admission immediately preceding an evidence
|
|
10
|
+
* export. The public export revision therefore names the second mutation in
|
|
11
|
+
* this aggregate operation; recovery reuses the completed admission.
|
|
12
|
+
*/
|
|
13
|
+
export declare const createTargetEvidenceHelperResolutionRequest: (request: EvidenceExportRequest, artifactManifestDigest: string) => ArtifactResolutionRequest;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { parseTargetResourceRequest, } from "../target/contracts.js";
|
|
3
|
+
/**
|
|
4
|
+
* Derives the target-owned helper admission immediately preceding an evidence
|
|
5
|
+
* export. The public export revision therefore names the second mutation in
|
|
6
|
+
* this aggregate operation; recovery reuses the completed admission.
|
|
7
|
+
*/
|
|
8
|
+
export const createTargetEvidenceHelperResolutionRequest = (request, artifactManifestDigest) => {
|
|
9
|
+
if (request.expected_revision < 1)
|
|
10
|
+
throw new Error("Target operation mismatch");
|
|
11
|
+
return parseTargetResourceRequest({
|
|
12
|
+
artifact_manifest_digest: artifactManifestDigest,
|
|
13
|
+
descriptor_digest: request.descriptor_digest,
|
|
14
|
+
expected_revision: request.expected_revision - 1,
|
|
15
|
+
idempotency_key: `idem_${createHash("sha256")
|
|
16
|
+
.update("spawnfile.target-evidence-helper-resolution.v1\0", "utf8")
|
|
17
|
+
.update(request.idempotency_key, "utf8").digest("hex").slice(0, 32)}`,
|
|
18
|
+
operation: "resolve_world_artifact",
|
|
19
|
+
run_id: request.run_id,
|
|
20
|
+
selected_target: request.selected_target,
|
|
21
|
+
version: "spawnfile.target-resource.request.v1",
|
|
22
|
+
});
|
|
23
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type TargetLookupCommandStreams } from "./targetLookupCommands.js";
|
|
2
|
+
/** Minimal production entry point for lookup; it loads no mutation/provider defaults. */
|
|
3
|
+
export declare const runTargetLookupCli: (argv: string[], stdin?: AsyncIterable<unknown>, streams?: TargetLookupCommandStreams) => Promise<number>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { createProductionTargetLookupLoader, registerTargetOperationLookup } from "./targetLookupCommands.js";
|
|
3
|
+
const defaultStreams = () => ({
|
|
4
|
+
stderr: (message) => process.stderr.write(`${message}\n`),
|
|
5
|
+
stdout: (message) => process.stdout.write(`${message}\n`)
|
|
6
|
+
});
|
|
7
|
+
const commanderError = (error) => typeof error === "object" && error !== null
|
|
8
|
+
&& typeof error.exitCode === "number";
|
|
9
|
+
/** Minimal production entry point for lookup; it loads no mutation/provider defaults. */
|
|
10
|
+
export const runTargetLookupCli = async (argv, stdin = process.stdin, streams = defaultStreams()) => {
|
|
11
|
+
let exitCode = 0;
|
|
12
|
+
const program = new Command();
|
|
13
|
+
program.exitOverride();
|
|
14
|
+
program.configureOutput({ writeErr: () => undefined, writeOut: () => undefined });
|
|
15
|
+
const target = program.command("target").description("Execute target-resource operations");
|
|
16
|
+
target.requiredOption("--config <config-input>", "Strict target configuration JSON stdin; use -");
|
|
17
|
+
registerTargetOperationLookup(target, createProductionTargetLookupLoader(stdin), streams, (code) => { exitCode = code; });
|
|
18
|
+
try {
|
|
19
|
+
await program.parseAsync(argv, { from: "user" });
|
|
20
|
+
return exitCode;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (commanderError(error)) {
|
|
24
|
+
if (error.exitCode !== 0)
|
|
25
|
+
streams.stderr("error: Invalid target command");
|
|
26
|
+
return error.exitCode === 0 ? 0 : 2;
|
|
27
|
+
}
|
|
28
|
+
streams.stderr("error: Target operation lookup failed");
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import { type TargetMutationRequest, type TargetOperationLookup } from "../target/contracts.js";
|
|
3
|
+
export interface TargetLookupCommandStreams {
|
|
4
|
+
stderr(message: string): void;
|
|
5
|
+
stdout(message: string): void;
|
|
6
|
+
}
|
|
7
|
+
export type TargetOperationLookupHandler = (request: TargetMutationRequest) => Promise<TargetOperationLookup>;
|
|
8
|
+
export type TargetOperationLookupLoader = (configInput: unknown) => Promise<TargetOperationLookupHandler>;
|
|
9
|
+
type SetExitCode = (exitCode: 1 | 2) => void;
|
|
10
|
+
export declare const registerTargetOperationLookup: (target: Command, loader: TargetOperationLookupLoader, streams: TargetLookupCommandStreams, setExitCode: SetExitCode) => void;
|
|
11
|
+
export declare const createProductionTargetLookupLoader: (stdin: AsyncIterable<unknown>) => TargetOperationLookupLoader;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { parseTargetOperationLookup } from "../target/contracts.js";
|
|
2
|
+
import { createCanonicalTargetOperationLookupBytes, createTargetReceiptDigest, createTargetRequestDigest } from "../target/handles.js";
|
|
3
|
+
import { lookupTargetOperation } from "../target/journal.js";
|
|
4
|
+
import { resolveTargetDefaultJournalRoot } from "../target/journalRoot.js";
|
|
5
|
+
import { readTargetLookupConfigStdin } from "./targetDefaultConfigStdin.js";
|
|
6
|
+
import { readTargetRequestFile } from "./targetRequestFile.js";
|
|
7
|
+
const same = (left, right) => JSON.stringify(left) === JSON.stringify(right);
|
|
8
|
+
const emitLookup = (raw, request, streams) => {
|
|
9
|
+
const result = parseTargetOperationLookup(raw);
|
|
10
|
+
const requestDigest = createTargetRequestDigest(request);
|
|
11
|
+
if (result.idempotency_key !== request.idempotency_key
|
|
12
|
+
|| result.operation !== request.operation
|
|
13
|
+
|| result.request_digest !== requestDigest)
|
|
14
|
+
throw new TypeError();
|
|
15
|
+
if (result.status === "completed"
|
|
16
|
+
&& (result.receipt.receipt_digest !== createTargetReceiptDigest(result.receipt)
|
|
17
|
+
|| result.receipt.descriptor_digest !== request.descriptor_digest
|
|
18
|
+
|| result.receipt.run_id !== request.run_id
|
|
19
|
+
|| !same(result.receipt.selected_target, request.selected_target)
|
|
20
|
+
|| result.receipt.resulting_revision !== request.expected_revision + 1)) {
|
|
21
|
+
throw new TypeError();
|
|
22
|
+
}
|
|
23
|
+
streams.stdout(createCanonicalTargetOperationLookupBytes(result));
|
|
24
|
+
};
|
|
25
|
+
export const registerTargetOperationLookup = (target, loader, streams, setExitCode) => {
|
|
26
|
+
target.command("lookup_operation")
|
|
27
|
+
.description("Read the state of one exact target mutation")
|
|
28
|
+
.argument("<request-file>", "Original strict target-resource mutation request JSON file")
|
|
29
|
+
.action(async (requestFile) => {
|
|
30
|
+
let request;
|
|
31
|
+
try {
|
|
32
|
+
const parsed = await readTargetRequestFile(requestFile);
|
|
33
|
+
if (parsed.operation === "select_target")
|
|
34
|
+
throw new TypeError();
|
|
35
|
+
request = parsed;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
streams.stderr("error: Invalid target lookup request");
|
|
39
|
+
setExitCode(2);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
let lookup;
|
|
43
|
+
try {
|
|
44
|
+
lookup = await loader(target.opts().config);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
streams.stderr("error: Invalid target lookup configuration");
|
|
48
|
+
setExitCode(2);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
emitLookup(await lookup(request), request, streams);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
streams.stderr("error: Target operation lookup failed");
|
|
56
|
+
setExitCode(1);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
export const createProductionTargetLookupLoader = (stdin) => async (configInput) => {
|
|
61
|
+
if (configInput !== "-")
|
|
62
|
+
throw new TypeError();
|
|
63
|
+
const config = await readTargetLookupConfigStdin(stdin);
|
|
64
|
+
return (request) => lookupTargetOperation({
|
|
65
|
+
context: config.context,
|
|
66
|
+
request,
|
|
67
|
+
root: resolveTargetDefaultJournalRoot()
|
|
68
|
+
});
|
|
69
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { TargetResourceRequest } from "../target/contracts.js";
|
|
2
|
+
export type TargetOperation = TargetResourceRequest["operation"];
|
|
3
|
+
export type TargetMutationOperation = Exclude<TargetOperation, "select_target">;
|
|
4
|
+
export interface TargetSelectionDispatch {
|
|
5
|
+
readonly kind: "selection";
|
|
6
|
+
readonly operation: "select_target";
|
|
7
|
+
}
|
|
8
|
+
export interface TargetMutationDispatch {
|
|
9
|
+
readonly kind: "mutation";
|
|
10
|
+
readonly operation: TargetMutationOperation;
|
|
11
|
+
}
|
|
12
|
+
export type TargetOperationDispatch = TargetSelectionDispatch | TargetMutationDispatch;
|
|
13
|
+
export declare const TARGET_OPERATION_DISPATCH: Readonly<{
|
|
14
|
+
attach_organization: TargetMutationDispatch & {
|
|
15
|
+
readonly operation: "attach_organization";
|
|
16
|
+
};
|
|
17
|
+
cleanup_run: TargetMutationDispatch & {
|
|
18
|
+
readonly operation: "cleanup_run";
|
|
19
|
+
};
|
|
20
|
+
create_data_network: TargetMutationDispatch & {
|
|
21
|
+
readonly operation: "create_data_network";
|
|
22
|
+
};
|
|
23
|
+
create_evidence_volume: TargetMutationDispatch & {
|
|
24
|
+
readonly operation: "create_evidence_volume";
|
|
25
|
+
};
|
|
26
|
+
create_world_service: TargetMutationDispatch & {
|
|
27
|
+
readonly operation: "create_world_service";
|
|
28
|
+
};
|
|
29
|
+
detach_organization: TargetMutationDispatch & {
|
|
30
|
+
readonly operation: "detach_organization";
|
|
31
|
+
};
|
|
32
|
+
export_evidence_volume: TargetMutationDispatch & {
|
|
33
|
+
readonly operation: "export_evidence_volume";
|
|
34
|
+
};
|
|
35
|
+
prepare_secret_bindings: TargetMutationDispatch & {
|
|
36
|
+
readonly operation: "prepare_secret_bindings";
|
|
37
|
+
};
|
|
38
|
+
recover_operation: TargetMutationDispatch & {
|
|
39
|
+
readonly operation: "recover_operation";
|
|
40
|
+
};
|
|
41
|
+
resolve_world_artifact: TargetMutationDispatch & {
|
|
42
|
+
readonly operation: "resolve_world_artifact";
|
|
43
|
+
};
|
|
44
|
+
revoke_secret_bindings: TargetMutationDispatch & {
|
|
45
|
+
readonly operation: "revoke_secret_bindings";
|
|
46
|
+
};
|
|
47
|
+
select_target: {
|
|
48
|
+
kind: "selection";
|
|
49
|
+
operation: "select_target";
|
|
50
|
+
};
|
|
51
|
+
start_world_service: TargetMutationDispatch & {
|
|
52
|
+
readonly operation: "start_world_service";
|
|
53
|
+
};
|
|
54
|
+
stop_world_service: TargetMutationDispatch & {
|
|
55
|
+
readonly operation: "stop_world_service";
|
|
56
|
+
};
|
|
57
|
+
}>;
|
|
58
|
+
export declare const targetOperationDispatch: (request: TargetResourceRequest) => TargetOperationDispatch;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const mutation = (operation) => ({
|
|
2
|
+
kind: "mutation",
|
|
3
|
+
operation
|
|
4
|
+
});
|
|
5
|
+
export const TARGET_OPERATION_DISPATCH = Object.freeze({
|
|
6
|
+
attach_organization: mutation("attach_organization"),
|
|
7
|
+
cleanup_run: mutation("cleanup_run"),
|
|
8
|
+
create_data_network: mutation("create_data_network"),
|
|
9
|
+
create_evidence_volume: mutation("create_evidence_volume"),
|
|
10
|
+
create_world_service: mutation("create_world_service"),
|
|
11
|
+
detach_organization: mutation("detach_organization"),
|
|
12
|
+
export_evidence_volume: mutation("export_evidence_volume"),
|
|
13
|
+
prepare_secret_bindings: mutation("prepare_secret_bindings"),
|
|
14
|
+
recover_operation: mutation("recover_operation"),
|
|
15
|
+
resolve_world_artifact: mutation("resolve_world_artifact"),
|
|
16
|
+
revoke_secret_bindings: mutation("revoke_secret_bindings"),
|
|
17
|
+
select_target: { kind: "selection", operation: "select_target" },
|
|
18
|
+
start_world_service: mutation("start_world_service"),
|
|
19
|
+
stop_world_service: mutation("stop_world_service")
|
|
20
|
+
});
|
|
21
|
+
export const targetOperationDispatch = (request) => TARGET_OPERATION_DISPATCH[request.operation];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type TargetResourceReceipt } from "../target/contracts.js";
|
|
2
|
+
export interface TargetMutationResult {
|
|
3
|
+
readonly receipt: unknown;
|
|
4
|
+
readonly receiptBytes: unknown;
|
|
5
|
+
}
|
|
6
|
+
export interface CanonicalTargetMutationReceipt {
|
|
7
|
+
readonly bytes: string;
|
|
8
|
+
readonly receipt: TargetResourceReceipt;
|
|
9
|
+
}
|
|
10
|
+
export type TargetCliErrorPhase = "operation" | "request";
|
|
11
|
+
export declare const formatTargetCliError: (phase: TargetCliErrorPhase) => string;
|
|
12
|
+
export declare const formatCaughtTargetCliError: (error: unknown, crashMessage: string) => string;
|
|
13
|
+
export declare const validateCanonicalTargetMutationReceipt: (raw: TargetMutationResult) => CanonicalTargetMutationReceipt;
|
|
14
|
+
export declare const emitCanonicalTargetMutationReceipt: (raw: TargetMutationResult, write: (receiptBytes: string) => void) => TargetResourceReceipt;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createCanonicalTargetReceiptBytes, createTargetReceiptDigest } from "../target/handles.js";
|
|
2
|
+
import { parseTargetResourceReceipt } from "../target/contracts.js";
|
|
3
|
+
import { isSpawnfileError } from "../shared/index.js";
|
|
4
|
+
export const formatTargetCliError = (phase) => phase === "request" ? "error: Invalid target request" : "error: Target operation failed";
|
|
5
|
+
export const formatCaughtTargetCliError = (error, crashMessage) => isSpawnfileError(error)
|
|
6
|
+
? `error: ${error.message}`
|
|
7
|
+
: `error: ${crashMessage}`;
|
|
8
|
+
export const validateCanonicalTargetMutationReceipt = (raw) => {
|
|
9
|
+
const receipt = parseTargetResourceReceipt(raw.receipt);
|
|
10
|
+
const bytes = createCanonicalTargetReceiptBytes(receipt);
|
|
11
|
+
if (receipt.receipt_digest !== createTargetReceiptDigest(receipt)
|
|
12
|
+
|| typeof raw.receiptBytes !== "string" || raw.receiptBytes !== bytes) {
|
|
13
|
+
throw new TypeError("Target operation returned a non-canonical receipt");
|
|
14
|
+
}
|
|
15
|
+
return Object.freeze({ bytes, receipt });
|
|
16
|
+
};
|
|
17
|
+
export const emitCanonicalTargetMutationReceipt = (raw, write) => {
|
|
18
|
+
const validated = validateCanonicalTargetMutationReceipt(raw);
|
|
19
|
+
write(validated.bytes);
|
|
20
|
+
return validated.receipt;
|
|
21
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type TargetTopologyAttestationRequest, type TargetResourceRequest } from "../target/contracts.js";
|
|
2
|
+
import { type ComposedPreparationRequest } from "../target/composedPreparation.js";
|
|
3
|
+
import { type TargetPublicArtifactSnapshotRequest } from "../target/publicArtifactSnapshot.js";
|
|
4
|
+
import { type TargetWorldClockRequest } from "../target/worldClock.js";
|
|
5
|
+
import { type TargetWorldReadinessRequest } from "../target/worldReadiness.js";
|
|
6
|
+
export declare const DEFAULT_TARGET_REQUEST_FILE_BYTES = 262144;
|
|
7
|
+
export declare const MAX_TARGET_REQUEST_FILE_BYTES = 1048576;
|
|
8
|
+
export declare const MAX_TARGET_REQUEST_FILE_PATH_BYTES = 4096;
|
|
9
|
+
export declare const readTargetRequestFile: (filePath: string, byteLimit?: number) => Promise<TargetResourceRequest>;
|
|
10
|
+
export declare const readComposedPreparationRequestFile: (filePath: string, byteLimit?: number) => Promise<ComposedPreparationRequest>;
|
|
11
|
+
export declare const readTargetTopologyAttestationRequestFile: (filePath: string, byteLimit?: number) => Promise<TargetTopologyAttestationRequest>;
|
|
12
|
+
export declare const readTargetPublicArtifactSnapshotRequestFile: (filePath: string, byteLimit?: number) => Promise<TargetPublicArtifactSnapshotRequest>;
|
|
13
|
+
export declare const readTargetWorldReadinessRequestFile: (filePath: string, byteLimit?: number) => Promise<TargetWorldReadinessRequest>;
|
|
14
|
+
export declare const readTargetWorldClockRequestFile: (filePath: string, byteLimit?: number) => Promise<TargetWorldClockRequest>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { open } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { parseTargetResourceRequest, parseTargetTopologyAttestationRequest } from "../target/contracts.js";
|
|
4
|
+
import { parseComposedPreparationRequest } from "../target/composedPreparation.js";
|
|
5
|
+
import { parseTargetPublicArtifactSnapshotRequest } from "../target/publicArtifactSnapshot.js";
|
|
6
|
+
import { parseTargetWorldClockRequest } from "../target/worldClock.js";
|
|
7
|
+
import { parseTargetWorldReadinessRequest } from "../target/worldReadiness.js";
|
|
8
|
+
export const DEFAULT_TARGET_REQUEST_FILE_BYTES = 262_144;
|
|
9
|
+
export const MAX_TARGET_REQUEST_FILE_BYTES = 1_048_576;
|
|
10
|
+
export const MAX_TARGET_REQUEST_FILE_PATH_BYTES = 4_096;
|
|
11
|
+
const parseByteLimit = (raw) => {
|
|
12
|
+
if (!Number.isSafeInteger(raw) || raw < 1
|
|
13
|
+
|| raw > MAX_TARGET_REQUEST_FILE_BYTES) {
|
|
14
|
+
throw new TypeError("Target request-file byte limit is invalid");
|
|
15
|
+
}
|
|
16
|
+
return raw;
|
|
17
|
+
};
|
|
18
|
+
const requireExactAbsolutePath = (raw) => {
|
|
19
|
+
if (typeof raw !== "string" || raw.length < 1 || raw.includes("\0")
|
|
20
|
+
|| Buffer.byteLength(raw, "utf8") > MAX_TARGET_REQUEST_FILE_PATH_BYTES
|
|
21
|
+
|| !path.isAbsolute(raw) || path.normalize(raw) !== raw) {
|
|
22
|
+
throw new TypeError("Target request file path is invalid");
|
|
23
|
+
}
|
|
24
|
+
return raw;
|
|
25
|
+
};
|
|
26
|
+
const requireObject = (raw) => {
|
|
27
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
|
|
28
|
+
throw new TypeError("Target request file must contain one JSON object");
|
|
29
|
+
}
|
|
30
|
+
return raw;
|
|
31
|
+
};
|
|
32
|
+
const readTargetRequestFileValue = async (filePath, byteLimit) => {
|
|
33
|
+
const limit = parseByteLimit(byteLimit);
|
|
34
|
+
const exactPath = requireExactAbsolutePath(filePath);
|
|
35
|
+
const handle = await open(exactPath, "r");
|
|
36
|
+
try {
|
|
37
|
+
const info = await handle.stat();
|
|
38
|
+
if (!info.isFile() || info.size > limit) {
|
|
39
|
+
throw new TypeError("Target request file is not a bounded regular file");
|
|
40
|
+
}
|
|
41
|
+
const bytes = Buffer.alloc(limit + 1);
|
|
42
|
+
let offset = 0;
|
|
43
|
+
while (offset <= limit) {
|
|
44
|
+
const result = await handle.read(bytes, offset, limit + 1 - offset, offset);
|
|
45
|
+
if (result.bytesRead === 0)
|
|
46
|
+
break;
|
|
47
|
+
offset += result.bytesRead;
|
|
48
|
+
}
|
|
49
|
+
if (offset > limit) {
|
|
50
|
+
throw new TypeError("Target request file exceeds the byte limit");
|
|
51
|
+
}
|
|
52
|
+
return requireObject(JSON.parse(bytes.toString("utf8", 0, offset)));
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
await handle.close();
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
export const readTargetRequestFile = async (filePath, byteLimit = DEFAULT_TARGET_REQUEST_FILE_BYTES) => parseTargetResourceRequest(await readTargetRequestFileValue(filePath, byteLimit));
|
|
59
|
+
export const readComposedPreparationRequestFile = async (filePath, byteLimit = DEFAULT_TARGET_REQUEST_FILE_BYTES) => parseComposedPreparationRequest(await readTargetRequestFileValue(filePath, byteLimit));
|
|
60
|
+
export const readTargetTopologyAttestationRequestFile = async (filePath, byteLimit = DEFAULT_TARGET_REQUEST_FILE_BYTES) => parseTargetTopologyAttestationRequest(await readTargetRequestFileValue(filePath, byteLimit));
|
|
61
|
+
export const readTargetPublicArtifactSnapshotRequestFile = async (filePath, byteLimit = DEFAULT_TARGET_REQUEST_FILE_BYTES) => parseTargetPublicArtifactSnapshotRequest(await readTargetRequestFileValue(filePath, byteLimit));
|
|
62
|
+
export const readTargetWorldReadinessRequestFile = async (filePath, byteLimit = DEFAULT_TARGET_REQUEST_FILE_BYTES) => parseTargetWorldReadinessRequest(await readTargetRequestFileValue(filePath, byteLimit));
|
|
63
|
+
export const readTargetWorldClockRequestFile = async (filePath, byteLimit = DEFAULT_TARGET_REQUEST_FILE_BYTES) => parseTargetWorldClockRequest(await readTargetRequestFileValue(filePath, byteLimit));
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type OpaqueTargetSecretSourceHandle } from "../auth/targetSecretSourceRecordCommon.js";
|
|
2
|
+
import { type TargetSecretSourceGrantCommandInput } from "../auth/targetSecretSourceGrantRecords.js";
|
|
3
|
+
export declare const TARGET_SECRET_SOURCE_REQUEST_VERSION: "spawnfile.auth.target-secret.source-request.v1";
|
|
4
|
+
export declare const TARGET_SECRET_SOURCE_GRANT_REQUEST_VERSION: "spawnfile.auth.target-secret.grant-request.v1";
|
|
5
|
+
export declare const TARGET_SECRET_SOURCE_RECEIPT_VERSION: "spawnfile.auth.target-secret.receipt.v1";
|
|
6
|
+
export declare const MAX_TARGET_SECRET_SOURCE_REQUEST_FILE_BYTES = 65536;
|
|
7
|
+
export type TargetSecretSourceCommandKind = "author" | "grant" | "revoke-grant" | "revoke-version" | "rotate";
|
|
8
|
+
export type TargetSecretSourceRequest = Readonly<{
|
|
9
|
+
source_handle: OpaqueTargetSecretSourceHandle;
|
|
10
|
+
version: typeof TARGET_SECRET_SOURCE_REQUEST_VERSION;
|
|
11
|
+
}>;
|
|
12
|
+
export type TargetSecretSourceReceipt = Readonly<{
|
|
13
|
+
kind: TargetSecretSourceCommandKind;
|
|
14
|
+
source_handle: OpaqueTargetSecretSourceHandle;
|
|
15
|
+
version: typeof TARGET_SECRET_SOURCE_RECEIPT_VERSION;
|
|
16
|
+
}>;
|
|
17
|
+
export declare const parseTargetSecretSourceRequestBytes: (bytes: Uint8Array) => TargetSecretSourceRequest;
|
|
18
|
+
export declare const parseTargetSecretSourceGrantRequestBytes: (bytes: Uint8Array) => TargetSecretSourceGrantCommandInput;
|
|
19
|
+
export interface TargetSecretSourceRequestFileOptions {
|
|
20
|
+
readonly beforeReadForTest?: () => Promise<void> | void;
|
|
21
|
+
}
|
|
22
|
+
export declare const readTargetSecretSourceRequestFile: (filePath: string, options?: TargetSecretSourceRequestFileOptions) => Promise<TargetSecretSourceRequest>;
|
|
23
|
+
export declare const readTargetSecretSourceGrantRequestFile: (filePath: string, options?: TargetSecretSourceRequestFileOptions) => Promise<TargetSecretSourceGrantCommandInput>;
|
|
24
|
+
export declare const createTargetSecretSourceReceiptBytes: (raw: Readonly<{
|
|
25
|
+
kind: TargetSecretSourceCommandKind;
|
|
26
|
+
source_handle: unknown;
|
|
27
|
+
}>) => Uint8Array;
|
|
28
|
+
export declare const readBoundedTargetSecretStdin: (input: AsyncIterable<unknown>, maximumBytes: number) => Promise<Uint8Array>;
|