spawnfile 0.1.14 → 0.1.17
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 +60 -159
- package/dist/audit/checksShared.d.ts +1 -1
- package/dist/auth/importers.d.ts +10 -0
- package/dist/auth/importers.js +29 -4
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.js +1 -0
- package/dist/auth/paths.d.ts +1 -1
- package/dist/auth/profileStore.js +9 -9
- package/dist/auth/targetSecretSourceFsIdentity.d.ts +40 -0
- package/dist/auth/targetSecretSourceFsIdentity.js +42 -0
- package/dist/auth/targetSecretSourceFsPublish.d.ts +2 -0
- package/dist/auth/targetSecretSourceFsPublish.js +3 -1
- package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +2 -1
- package/dist/auth/targetSecretSourceFsPublishImmutable.js +104 -71
- package/dist/auth/targetSecretSourceFsRead.js +5 -14
- package/dist/auth/trainingAuth.d.ts +21 -0
- package/dist/auth/trainingAuth.js +86 -0
- package/dist/auth/types.d.ts +1 -1
- package/dist/cli/authCommands.d.ts +1 -1
- package/dist/cli/authCommands.js +9 -0
- package/dist/cli/canaryCutoverCommand.d.ts +2 -0
- package/dist/cli/canaryCutoverCommand.js +30 -0
- package/dist/cli/capabilitiesCommand.d.ts +3 -0
- package/dist/cli/capabilitiesCommand.js +12 -0
- package/dist/cli/capabilitiesReceipt.d.ts +56 -0
- package/dist/cli/capabilitiesReceipt.js +56 -0
- package/dist/cli/compileBuildCommands.js +13 -0
- package/dist/cli/composedLifecycleContractSet.d.ts +21 -0
- package/dist/cli/composedLifecycleContractSet.js +204 -0
- package/dist/cli/devCommands.js +2 -0
- package/dist/cli/downCommand.js +19 -8
- package/dist/cli/evidenceExportHelperCommand.d.ts +13 -0
- package/dist/cli/evidenceExportHelperCommand.js +51 -0
- package/dist/cli/index.js +12 -3
- package/dist/cli/lifecycleMachine.d.ts +7 -1
- package/dist/cli/lifecycleMachine.js +2 -2
- package/dist/cli/paideiaDelegation.d.ts +17 -0
- package/dist/cli/paideiaDelegation.js +210 -0
- package/dist/cli/paideiaSupervisor.d.ts +17 -0
- package/dist/cli/paideiaSupervisor.js +48 -0
- package/dist/cli/productStateCloneCommand.d.ts +2 -0
- package/dist/cli/productStateCloneCommand.js +34 -0
- package/dist/cli/runCli.d.ts +13 -3
- package/dist/cli/runCli.js +37 -9
- package/dist/cli/targetCommands.d.ts +4 -7
- package/dist/cli/targetCommands.js +16 -46
- package/dist/cli/targetConfigPreparedPlan.d.ts +3 -0
- package/dist/cli/targetConfigPreparedPlan.js +74 -0
- package/dist/cli/targetConfigResolver.d.ts +3 -0
- package/dist/cli/targetConfigResolver.js +111 -0
- package/dist/cli/targetConfigResolverCommand.d.ts +6 -0
- package/dist/cli/targetConfigResolverCommand.js +43 -0
- package/dist/cli/targetConfigResolverContracts.d.ts +56 -0
- package/dist/cli/targetConfigResolverContracts.js +30 -0
- package/dist/cli/targetConfigResolverDocker.d.ts +4 -0
- package/dist/cli/targetConfigResolverDocker.js +47 -0
- package/dist/cli/targetConfigResolverValidation.d.ts +10 -0
- package/dist/cli/targetConfigResolverValidation.js +94 -0
- package/dist/cli/targetDefaultAuthorities.d.ts +2 -0
- package/dist/cli/targetDefaultAuthorities.js +3 -0
- package/dist/cli/targetDefaultConfig.d.ts +7 -0
- package/dist/cli/targetDefaultConfig.js +22 -5
- package/dist/cli/targetDefaultConfigStdin.js +7 -1
- package/dist/cli/targetDefaultHandlerFactory.js +23 -2
- package/dist/cli/targetDefaultHandlers.d.ts +2 -2
- package/dist/cli/targetProductionCommands.d.ts +5 -0
- package/dist/cli/targetProductionCommands.js +45 -0
- package/dist/cli/trainCommand.d.ts +3 -0
- package/dist/cli/trainCommand.js +61 -0
- package/dist/cli/upCommand.js +35 -6
- package/dist/cli/upLifecycleRecovery.d.ts +2 -2
- package/dist/cli/upLifecycleRecovery.js +188 -44
- package/dist/cli/usageCommand.d.ts +40 -0
- package/dist/cli/usageCommand.js +284 -0
- package/dist/cli/usageCommandLive.d.ts +84 -0
- package/dist/cli/usageCommandLive.js +95 -0
- package/dist/cli/usageDeploymentSource.d.ts +9 -0
- package/dist/cli/usageDeploymentSource.js +22 -0
- package/dist/cli/workspaceResourceMigrationCommand.d.ts +8 -0
- package/dist/cli/workspaceResourceMigrationCommand.js +36 -0
- package/dist/compiler/buildCompilePlanTeams.d.ts +1 -1
- package/dist/compiler/buildCompilePlanTeams.js +6 -1
- package/dist/compiler/compilePlanHelpers.js +3 -0
- package/dist/compiler/compileProject.d.ts +2 -0
- package/dist/compiler/compileProject.js +5 -1
- package/dist/compiler/compileProjectSupport.js +9 -0
- package/dist/compiler/containerArtifacts.d.ts +3 -1
- package/dist/compiler/containerArtifacts.js +92 -40
- package/dist/compiler/containerArtifactsPlans.d.ts +1 -1
- package/dist/compiler/containerArtifactsPlans.js +24 -7
- package/dist/compiler/containerArtifactsRender.d.ts +2 -1
- package/dist/compiler/containerArtifactsRender.js +91 -58
- package/dist/compiler/containerArtifactsTypes.d.ts +8 -0
- package/dist/compiler/containerBackedMountRender.d.ts +56 -0
- package/dist/compiler/containerBackedMountRender.js +101 -0
- package/dist/compiler/containerDaimonBrokerRender.d.ts +112 -0
- package/dist/compiler/containerDaimonBrokerRender.js +191 -0
- package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +38 -0
- package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +108 -0
- package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +172 -0
- package/dist/compiler/containerDaimonGrokWorkerRender.js +268 -0
- package/dist/compiler/containerDaimonOwnershipGuardRender.d.ts +12 -0
- package/dist/compiler/containerDaimonOwnershipGuardRender.js +191 -0
- package/dist/compiler/containerDaimonUidEntrypointRender.d.ts +24 -0
- package/dist/compiler/containerDaimonUidEntrypointRender.js +297 -0
- package/dist/compiler/containerEntrypointRender.d.ts +7 -0
- package/dist/compiler/containerEntrypointRender.js +28 -22
- package/dist/compiler/containerPersistentMounts.d.ts +30 -0
- package/dist/compiler/containerPersistentMounts.js +66 -0
- package/dist/compiler/containerReadinessPaths.d.ts +1 -0
- package/dist/compiler/containerReadinessPaths.js +1 -0
- package/dist/compiler/containerRuntimeLinkMaterializer.d.ts +2 -0
- package/dist/compiler/containerRuntimeLinkMaterializer.js +12 -0
- package/dist/compiler/containerRuntimeReadinessRender.d.ts +7 -0
- package/dist/compiler/containerRuntimeReadinessRender.js +40 -0
- package/dist/compiler/containerStateOwnershipRender.d.ts +4 -0
- package/dist/compiler/containerStateOwnershipRender.js +75 -0
- package/dist/compiler/containerTargetResources.d.ts +22 -1
- package/dist/compiler/containerTargetResources.js +94 -2
- package/dist/compiler/containerVolumeBootstrap.d.ts +3 -0
- package/dist/compiler/containerVolumeBootstrap.js +3 -0
- package/dist/compiler/containerWorkspaceResourceRender.js +49 -1
- package/dist/compiler/daimonTelemetryArtifacts.d.ts +2 -2
- package/dist/compiler/daimonTelemetryArtifacts.js +5 -10
- package/dist/compiler/deploymentLineage.d.ts +40 -0
- package/dist/compiler/deploymentLineage.js +50 -0
- package/dist/compiler/index.d.ts +3 -0
- package/dist/compiler/index.js +3 -0
- package/dist/compiler/initProject.d.ts +2 -0
- package/dist/compiler/initProject.js +39 -1
- package/dist/compiler/localMoltnetAuthority.d.ts +64 -0
- package/dist/compiler/localMoltnetAuthority.js +177 -0
- package/dist/compiler/memoryArtifacts.d.ts +1 -1
- package/dist/compiler/memoryArtifacts.js +108 -32
- package/dist/compiler/modelEnv.d.ts +5 -0
- package/dist/compiler/modelEnv.js +8 -2
- package/dist/compiler/moltnetArtifactPaths.d.ts +17 -12
- package/dist/compiler/moltnetArtifactPaths.js +17 -15
- package/dist/compiler/moltnetArtifactTypes.d.ts +10 -0
- package/dist/compiler/moltnetArtifacts.d.ts +1 -1
- package/dist/compiler/moltnetArtifacts.js +52 -12
- package/dist/compiler/moltnetBinaries.d.ts +16 -4
- package/dist/compiler/moltnetBinaries.js +46 -6
- package/dist/compiler/moltnetClientConfig.js +1 -1
- package/dist/compiler/moltnetConfigLowering.d.ts +3 -1
- package/dist/compiler/moltnetConfigLowering.js +30 -6
- package/dist/compiler/moltnetNodeConfig.js +1 -1
- package/dist/compiler/moltnetReleaseAuthority.d.ts +24 -1
- package/dist/compiler/moltnetReleaseAuthority.js +33 -4
- package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -1
- package/dist/compiler/moltnetRepresentativeResolution.js +2 -2
- package/dist/compiler/moltnetResolution.js +9 -15
- package/dist/compiler/moltnetRoomMemberships.js +20 -5
- package/dist/compiler/moltnetRoomPolicyCompatibility.d.ts +1 -1
- package/dist/compiler/moltnetRoomPolicyCompatibility.js +3 -1
- package/dist/compiler/moltnetRuntimeConfig.d.ts +1 -1
- package/dist/compiler/moltnetRuntimeConfig.js +22 -2
- package/dist/compiler/moltnetServerPlans.js +19 -0
- package/dist/compiler/organizationExternalParticipants.d.ts +3 -0
- package/dist/compiler/organizationExternalParticipants.js +176 -0
- package/dist/compiler/organizationIdentity.d.ts +3 -9
- package/dist/compiler/organizationIdentity.js +37 -270
- package/dist/compiler/organizationIdentityGraph.d.ts +15 -0
- package/dist/compiler/organizationIdentityGraph.js +115 -0
- package/dist/compiler/organizationReadyEvidence.d.ts +8 -0
- package/dist/compiler/organizationReadyEvidence.js +23 -3
- package/dist/compiler/runProject.d.ts +4 -2
- package/dist/compiler/runProject.js +32 -6
- package/dist/compiler/runProjectAuth.d.ts +3 -1
- package/dist/compiler/runProjectAuth.js +19 -3
- package/dist/compiler/runProjectDaimonCodexDocker.d.ts +3 -0
- package/dist/compiler/runProjectDaimonCodexDocker.js +36 -0
- package/dist/compiler/runProjectDocker.d.ts +8 -4
- package/dist/compiler/runProjectDocker.js +43 -18
- package/dist/compiler/runProjectDockerDaimonGuards.d.ts +15 -0
- package/dist/compiler/runProjectDockerDaimonGuards.js +122 -0
- package/dist/compiler/runProjectDockerReservation.d.ts +3 -0
- package/dist/compiler/runProjectDockerReservation.js +118 -0
- package/dist/compiler/runProjectLifecycle.js +1 -1
- package/dist/compiler/training/broker/declaration.d.ts +45 -0
- package/dist/compiler/training/broker/declaration.js +55 -0
- package/dist/compiler/training/broker/entrypoint.d.ts +39 -0
- package/dist/compiler/training/broker/entrypoint.js +111 -0
- package/dist/compiler/training/broker/index.d.ts +10 -0
- package/dist/compiler/training/broker/index.js +10 -0
- package/dist/compiler/training/broker/main.d.ts +2 -0
- package/dist/compiler/training/broker/main.js +14 -0
- package/dist/compiler/training/broker/paths.d.ts +196 -0
- package/dist/compiler/training/broker/paths.js +241 -0
- package/dist/compiler/training/broker/processes.d.ts +42 -0
- package/dist/compiler/training/broker/processes.js +99 -0
- package/dist/compiler/training/broker/projection.d.ts +51 -0
- package/dist/compiler/training/broker/projection.js +76 -0
- package/dist/compiler/training/broker/provisioning.d.ts +87 -0
- package/dist/compiler/training/broker/provisioning.js +213 -0
- package/dist/compiler/training/broker/receipt.d.ts +77 -0
- package/dist/compiler/training/broker/receipt.js +110 -0
- package/dist/compiler/training/broker/registration.d.ts +41 -0
- package/dist/compiler/training/broker/registration.js +102 -0
- package/dist/compiler/training/broker/runtime.d.ts +25 -0
- package/dist/compiler/training/broker/runtime.js +173 -0
- package/dist/compiler/training/broker/seccompRoutes.d.ts +31 -0
- package/dist/compiler/training/broker/seccompRoutes.js +36 -0
- package/dist/compiler/training/broker/supervisor.d.ts +109 -0
- package/dist/compiler/training/broker/supervisor.js +173 -0
- package/dist/compiler/training/container/contract.d.ts +31 -0
- package/dist/compiler/training/container/contract.js +33 -0
- package/dist/compiler/training/container/index.d.ts +4 -0
- package/dist/compiler/training/container/index.js +2 -0
- package/dist/compiler/training/container/launch.d.ts +18 -0
- package/dist/compiler/training/container/launch.js +173 -0
- package/dist/compiler/training/container/prepare.d.ts +8 -0
- package/dist/compiler/training/container/prepare.js +80 -0
- package/dist/compiler/training/container/process.d.ts +14 -0
- package/dist/compiler/training/container/process.js +70 -0
- package/dist/compiler/training/container/security.d.ts +36 -0
- package/dist/compiler/training/container/security.js +58 -0
- package/dist/compiler/training/context.d.ts +7 -0
- package/dist/compiler/training/context.js +93 -0
- package/dist/compiler/training/contract.d.ts +142 -0
- package/dist/compiler/training/contract.js +34 -0
- package/dist/compiler/training/index.d.ts +4 -0
- package/dist/compiler/training/index.js +3 -0
- package/dist/compiler/training/preparation/assets/Dockerfile +98 -0
- package/dist/compiler/training/preparation/assets/package-lock.json +3787 -0
- package/dist/compiler/training/preparation/broker.d.ts +21 -0
- package/dist/compiler/training/preparation/broker.js +43 -0
- package/dist/compiler/training/preparation/contextModes.d.ts +12 -0
- package/dist/compiler/training/preparation/contextModes.js +38 -0
- package/dist/compiler/training/preparation/contract.d.ts +182 -0
- package/dist/compiler/training/preparation/contract.js +94 -0
- package/dist/compiler/training/preparation/copyAssets.d.ts +1 -0
- package/dist/compiler/training/preparation/copyAssets.js +8 -0
- package/dist/compiler/training/preparation/daimonParent.d.ts +42 -0
- package/dist/compiler/training/preparation/daimonParent.js +114 -0
- package/dist/compiler/training/preparation/files.d.ts +25 -0
- package/dist/compiler/training/preparation/files.js +85 -0
- package/dist/compiler/training/preparation/image.d.ts +28 -0
- package/dist/compiler/training/preparation/image.js +102 -0
- package/dist/compiler/training/preparation/index.d.ts +3 -0
- package/dist/compiler/training/preparation/index.js +2 -0
- package/dist/compiler/training/preparation/inputs.d.ts +23 -0
- package/dist/compiler/training/preparation/inputs.js +93 -0
- package/dist/compiler/training/preparation/prepare.d.ts +33 -0
- package/dist/compiler/training/preparation/prepare.js +186 -0
- package/dist/compiler/training/preparation/scratch.d.ts +19 -0
- package/dist/compiler/training/preparation/scratch.js +48 -0
- package/dist/compiler/training/repair/compatibility.d.ts +11 -0
- package/dist/compiler/training/repair/compatibility.js +34 -0
- package/dist/compiler/training/repair/contract.d.ts +506 -0
- package/dist/compiler/training/repair/contract.js +31 -0
- package/dist/compiler/training/repair/index.d.ts +3 -0
- package/dist/compiler/training/repair/index.js +3 -0
- package/dist/compiler/training/repair/prepare.d.ts +230 -0
- package/dist/compiler/training/repair/prepare.js +74 -0
- package/dist/compiler/training/repair/witness.d.ts +203 -0
- package/dist/compiler/training/repair/witness.js +42 -0
- package/dist/compiler/types.d.ts +2 -0
- package/dist/compiler/upProject.d.ts +26 -1
- package/dist/compiler/upProject.js +117 -178
- package/dist/compiler/upProjectHandoff.d.ts +62 -0
- package/dist/compiler/upProjectHandoff.js +204 -0
- package/dist/compiler/upReceipt.js +49 -4
- package/dist/compiler/updateProjectModels.js +1 -0
- package/dist/compiler/view/types.d.ts +1 -1
- package/dist/compiler/workspaceBundleArtifacts.d.ts +3 -0
- package/dist/compiler/workspaceBundleArtifacts.js +106 -0
- package/dist/compiler/workspaceResources.d.ts +4 -1
- package/dist/compiler/workspaceResources.js +12 -7
- package/dist/deployment/artifactsExportPlan.js +51 -1
- package/dist/deployment/canaryCutover.d.ts +42 -0
- package/dist/deployment/canaryCutover.js +140 -0
- package/dist/deployment/candidateDiagnostics.d.ts +15 -0
- package/dist/deployment/candidateDiagnostics.js +90 -0
- package/dist/deployment/dockerLogs.js +4 -1
- package/dist/deployment/dockerManager.js +9 -3
- package/dist/deployment/dockerProbeGateway.d.ts +17 -0
- package/dist/deployment/dockerProbeGateway.js +17 -2
- package/dist/deployment/downDeployment.d.ts +5 -0
- package/dist/deployment/downDeployment.js +109 -8
- package/dist/deployment/downReceiptTypes.d.ts +17 -2
- package/dist/deployment/downReceiptTypes.js +17 -2
- package/dist/deployment/index.d.ts +4 -0
- package/dist/deployment/index.js +4 -0
- package/dist/deployment/lifecycleCompletionContracts.d.ts +66 -0
- package/dist/deployment/lifecycleCompletionContracts.js +34 -0
- package/dist/deployment/lifecycleCompletionPaths.d.ts +4 -1
- package/dist/deployment/lifecycleCompletionPaths.js +3 -0
- package/dist/deployment/lifecycleCompletionPublication.d.ts +2 -0
- package/dist/deployment/lifecycleCompletionPublication.js +18 -4
- package/dist/deployment/lifecycleCompletionStore.d.ts +1 -1
- package/dist/deployment/lifecycleCompletionStore.js +7 -7
- package/dist/deployment/lifecycleUpRecords.d.ts +11 -0
- package/dist/deployment/lifecycleUpRecords.js +127 -0
- package/dist/deployment/native/AGENTS.md +11 -0
- package/dist/deployment/native/rename-noreplace-arm64 +0 -0
- package/dist/deployment/native/rename-noreplace-arm64.provenance.json +1 -0
- package/dist/deployment/native/rename-noreplace-x64 +0 -0
- package/dist/deployment/native/rename-noreplace-x64.provenance.json +1 -0
- package/dist/deployment/noReplaceActivation.d.ts +17 -0
- package/dist/deployment/noReplaceActivation.js +50 -0
- package/dist/deployment/organizationHandoffAuthorityFsBudget.d.ts +110 -0
- package/dist/deployment/organizationHandoffAuthorityFsBudget.js +156 -0
- package/dist/deployment/organizationHandoffAuthorityFsClient.js +82 -27
- package/dist/deployment/organizationHandoffAuthorityFsElection.d.ts +21 -0
- package/dist/deployment/organizationHandoffAuthorityFsElection.js +57 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorker.js +254 -108
- package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.d.ts +1 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.js +16 -0
- package/dist/deployment/organizationHandoffAuthorityStore.js +14 -7
- package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +2 -2
- package/dist/deployment/organizationHandoffAuthorityTypes.js +2 -1
- package/dist/deployment/organizationReady.d.ts +2 -0
- package/dist/deployment/organizationReady.js +36 -4
- package/dist/deployment/productStateClone.d.ts +43 -0
- package/dist/deployment/productStateClone.js +319 -0
- package/dist/deployment/upLifecycleRecoveryState.d.ts +23 -0
- package/dist/deployment/upLifecycleRecoveryState.js +12 -0
- package/dist/deployment/upReceiptTypes.d.ts +32 -6
- package/dist/deployment/upReceiptTypes.js +29 -2
- package/dist/deployment/workspaceResourceMigration.d.ts +55 -0
- package/dist/deployment/workspaceResourceMigration.js +315 -0
- package/dist/dev/project.d.ts +7 -0
- package/dist/dev/project.js +9 -0
- package/dist/distribution/consumeImage.d.ts +2 -0
- package/dist/distribution/consumeImage.js +98 -73
- package/dist/distribution/consumeImageDaimonDocker.d.ts +3 -0
- package/dist/distribution/consumeImageDaimonDocker.js +45 -0
- package/dist/distribution/consumeImageLifecycle.d.ts +17 -0
- package/dist/distribution/consumeImageLifecycle.js +231 -0
- package/dist/distribution/consumeImageSupport.d.ts +12 -0
- package/dist/distribution/consumeImageSupport.js +15 -0
- package/dist/distribution/distributionReportSchema.d.ts +11 -1
- package/dist/distribution/distributionReportSchema.js +15 -2
- package/dist/distribution/dockerRunner.d.ts +6 -1
- package/dist/distribution/dockerRunner.js +31 -4
- package/dist/distribution/imageRuntimeAuth.d.ts +9 -1
- package/dist/distribution/imageRuntimeAuth.js +70 -1
- package/dist/distribution/index.d.ts +1 -1
- package/dist/distribution/index.js +1 -1
- package/dist/distribution/preflight.js +5 -1
- package/dist/distribution/types.d.ts +14 -1
- package/dist/distribution/types.js +3 -0
- package/dist/evidenceExportHelper/boundedExecutor.d.ts +3 -0
- package/dist/evidenceExportHelper/boundedExecutor.js +33 -0
- package/dist/evidenceExportHelper/helperProgram.mjs +156 -0
- package/dist/evidenceExportHelper/index.d.ts +4 -0
- package/dist/evidenceExportHelper/index.js +4 -0
- package/dist/evidenceExportHelper/preparedAuthority.d.ts +64 -0
- package/dist/evidenceExportHelper/preparedAuthority.js +228 -0
- package/dist/evidenceExportHelper/preparedBuilder.d.ts +10 -0
- package/dist/evidenceExportHelper/preparedBuilder.js +183 -0
- package/dist/evidenceExportHelper/preparedBuilderTypes.d.ts +19 -0
- package/dist/evidenceExportHelper/preparedBuilderTypes.js +1 -0
- package/dist/evidenceExportHelper/recipe.d.ts +7 -0
- package/dist/evidenceExportHelper/recipe.js +83 -0
- package/dist/filesystem/io.d.ts +2 -0
- package/dist/filesystem/io.js +16 -1
- package/dist/manifest/executionSchemas.d.ts +27 -0
- package/dist/manifest/executionSchemas.js +21 -2
- package/dist/manifest/mcpSchemas.d.ts +1 -0
- package/dist/manifest/mcpSchemas.js +3 -0
- package/dist/manifest/renderSpawnfileNetworks.js +11 -0
- package/dist/manifest/renderSpawnfileWorkspace.js +5 -0
- package/dist/manifest/scheduleSchemas.d.ts +3 -1
- package/dist/manifest/scheduleSchemas.js +91 -5
- package/dist/manifest/schemas.d.ts +237 -12
- package/dist/manifest/schemas.js +5 -2
- package/dist/manifest/teamNetworkAccessSchemas.d.ts +5 -1
- package/dist/manifest/teamNetworkAccessSchemas.js +11 -0
- package/dist/manifest/teamNetworkAuthSchemas.d.ts +1 -1
- package/dist/manifest/teamNetworkSchemas.d.ts +17 -3
- package/dist/manifest/teamNetworkSchemas.js +19 -1
- package/dist/manifest/teamNetworkServerSchemas.d.ts +8 -3
- package/dist/manifest/teamNetworkServerSchemas.js +18 -2
- package/dist/manifest/workspaceSchemas.d.ts +16 -0
- package/dist/manifest/workspaceSchemas.js +11 -0
- package/dist/report/types.d.ts +34 -4
- package/dist/runtime/common.d.ts +28 -1
- package/dist/runtime/common.js +33 -3
- package/dist/runtime/container.js +49 -33
- package/dist/runtime/daimon/adapter.d.ts +14 -0
- package/dist/runtime/daimon/adapter.js +243 -0
- package/dist/runtime/daimon/attention.d.ts +8 -0
- package/dist/runtime/daimon/attention.js +32 -0
- package/dist/runtime/daimon/config.d.ts +25 -0
- package/dist/runtime/daimon/config.js +272 -0
- package/dist/runtime/daimon/contractManifest.d.ts +295 -0
- package/dist/runtime/daimon/contractManifest.js +319 -0
- package/dist/runtime/daimon/grokModel.d.ts +19 -0
- package/dist/runtime/daimon/grokModel.js +33 -0
- package/dist/runtime/daimon/grokWorkerConfigBytes.d.ts +26 -0
- package/dist/runtime/daimon/grokWorkerConfigBytes.js +36 -0
- package/dist/runtime/daimon/grokWorkerContract.d.ts +22 -0
- package/dist/runtime/daimon/grokWorkerContract.js +48 -0
- package/dist/runtime/daimon/memory.d.ts +57 -0
- package/dist/runtime/daimon/memory.js +125 -0
- package/dist/runtime/daimon/runAuth.d.ts +51 -0
- package/dist/runtime/daimon/runAuth.js +279 -0
- package/dist/runtime/daimon/runtimeIdentity.d.ts +22 -0
- package/dist/runtime/daimon/runtimeIdentity.js +22 -0
- package/dist/runtime/daimon/scheduleAuthority.d.ts +3 -0
- package/dist/runtime/daimon/scheduleAuthority.js +17 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.js +4 -0
- package/dist/runtime/install.d.ts +3 -0
- package/dist/runtime/install.js +3 -0
- package/dist/runtime/localDaimonAuthority.d.ts +11 -0
- package/dist/runtime/localDaimonAuthority.js +77 -0
- package/dist/runtime/mnemeMcp.d.ts +13 -0
- package/dist/runtime/mnemeMcp.js +26 -0
- package/dist/runtime/openclaw/adapter.js +2 -2
- package/dist/runtime/pi/adapter.d.ts +0 -1
- package/dist/runtime/pi/adapter.js +2 -6
- package/dist/runtime/pi/appCliSource.js +1 -1
- package/dist/runtime/pi/appScheduleSource.js +6 -2
- package/dist/runtime/pi/appTemplateTypes.d.ts +1 -1
- package/dist/runtime/picoclaw/adapter.js +2 -2
- package/dist/runtime/registry.d.ts +3 -0
- package/dist/runtime/registry.js +19 -2
- package/dist/runtime/scheduleUtils.d.ts +1 -0
- package/dist/runtime/scheduleUtils.js +5 -1
- package/dist/runtime/types.d.ts +25 -0
- package/dist/runtime/usageLedger.d.ts +158 -0
- package/dist/runtime/usageLedger.js +269 -0
- package/dist/runtime/usageLedgerRead.d.ts +48 -0
- package/dist/runtime/usageLedgerRead.js +102 -0
- package/dist/runtime/usageRequestLedger.d.ts +42 -0
- package/dist/runtime/usageRequestLedger.js +72 -0
- package/dist/shared/daimonCodexDocker.d.ts +32 -0
- package/dist/shared/daimonCodexDocker.js +120 -0
- package/dist/shared/daimonGrokSeccompProfile.d.ts +10 -0
- package/dist/shared/daimonGrokSeccompProfile.js +11 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.js +2 -0
- package/dist/shared/types.d.ts +1 -1
- package/dist/shared/volumeNames.d.ts +6 -0
- package/dist/shared/volumeNames.js +14 -0
- package/dist/target/dockerArtifactsProvider.js +34 -7
- package/dist/target/dockerBaseImage.d.ts +2 -0
- package/dist/target/dockerBaseImage.js +11 -0
- package/dist/target/dockerCommandExecutor.d.ts +11 -0
- package/dist/target/dockerCommandExecutor.js +53 -2
- package/dist/target/dockerCommandExecutorCore.d.ts +2 -1
- package/dist/target/dockerCommandExecutorCore.js +4 -2
- package/dist/target/dockerPublicArtifactSnapshot.d.ts +3 -3
- package/dist/target/dockerPublicArtifactSnapshot.js +17 -33
- package/dist/target/dockerTarget.d.ts +1 -0
- package/dist/target/dockerTargetBinding.d.ts +1 -2
- package/dist/target/dockerTargetBinding.js +2 -3
- package/dist/target/dockerTargetExecFile.d.ts +19 -0
- package/dist/target/dockerTargetExecFile.js +194 -0
- package/dist/target/dockerWorldServiceProvider.d.ts +4 -0
- package/dist/target/dockerWorldServiceProvider.js +13 -1
- package/dist/target/evidenceExport.d.ts +3 -1
- package/dist/target/evidenceExport.js +12 -3
- package/dist/target/evidenceExportOperationsTestKit.js +3 -3
- package/dist/target/evidenceExportProvider.d.ts +2 -0
- package/dist/target/evidenceExportProvider.js +15 -5
- package/dist/target/publicArtifactSnapshot.d.ts +31 -0
- package/dist/target/publicArtifactSnapshot.js +37 -3
- package/examples/README.md +45 -0
- package/examples/agent-with-subagents/AGENTS.md +3 -0
- package/examples/agent-with-subagents/Spawnfile +30 -0
- package/examples/agent-with-subagents/subagents/critic/AGENTS.md +3 -0
- package/examples/agent-with-subagents/subagents/critic/Spawnfile +15 -0
- package/examples/agent-with-subagents/subagents/researcher/AGENTS.md +3 -0
- package/examples/agent-with-subagents/subagents/researcher/Spawnfile +17 -0
- package/examples/daimon-org/Spawnfile +68 -0
- package/examples/daimon-org/TEAM.md +4 -0
- package/examples/daimon-org/agents/mapper/AGENTS.md +4 -0
- package/examples/daimon-org/agents/mapper/Spawnfile +37 -0
- package/examples/daimon-org/shared/skills/file-note/SKILL.md +9 -0
- package/examples/daimon-org/teams/review/Spawnfile +53 -0
- package/examples/daimon-org/teams/review/agents/reviewer/AGENTS.md +4 -0
- package/examples/daimon-org/teams/review/agents/reviewer/Spawnfile +37 -0
- package/examples/daimon-public-host/AGENTS.md +3 -0
- package/examples/daimon-public-host/Spawnfile +21 -0
- package/examples/distribution-org/Spawnfile +43 -0
- package/examples/distribution-org/TEAM.md +4 -0
- package/examples/distribution-org/agents/coordinator/AGENTS.md +1 -0
- package/examples/distribution-org/agents/coordinator/Spawnfile +20 -0
- package/examples/distribution-org/agents/researcher/AGENTS.md +1 -0
- package/examples/distribution-org/agents/researcher/Spawnfile +20 -0
- package/examples/jungian-daimon-org/Spawnfile +41 -0
- package/examples/jungian-daimon-org/TEAM.md +21 -0
- package/examples/jungian-daimon-org/teams/luna/Spawnfile +47 -0
- package/examples/jungian-daimon-org/teams/luna/TEAM.md +4 -0
- package/examples/jungian-daimon-org/teams/luna/agents/animus/AGENTS.md +10 -0
- package/examples/jungian-daimon-org/teams/luna/agents/animus/Spawnfile +33 -0
- package/examples/jungian-daimon-org/teams/luna/agents/representative/AGENTS.md +21 -0
- package/examples/jungian-daimon-org/teams/luna/agents/representative/Spawnfile +30 -0
- package/examples/jungian-daimon-org/teams/luna/agents/shadow/AGENTS.md +10 -0
- package/examples/jungian-daimon-org/teams/luna/agents/shadow/Spawnfile +33 -0
- package/examples/jungian-daimon-org/teams/selene/Spawnfile +47 -0
- package/examples/jungian-daimon-org/teams/selene/TEAM.md +4 -0
- package/examples/jungian-daimon-org/teams/selene/agents/animus/AGENTS.md +10 -0
- package/examples/jungian-daimon-org/teams/selene/agents/animus/Spawnfile +33 -0
- package/examples/jungian-daimon-org/teams/selene/agents/representative/AGENTS.md +19 -0
- package/examples/jungian-daimon-org/teams/selene/agents/representative/Spawnfile +33 -0
- package/examples/jungian-daimon-org/teams/selene/agents/shadow/AGENTS.md +10 -0
- package/examples/jungian-daimon-org/teams/selene/agents/shadow/Spawnfile +30 -0
- package/examples/mixed-runtime-org/Spawnfile +71 -0
- package/examples/mixed-runtime-org/TEAM.md +8 -0
- package/examples/mixed-runtime-org/agents/analyst/AGENTS.md +8 -0
- package/examples/mixed-runtime-org/agents/analyst/Spawnfile +27 -0
- package/examples/mixed-runtime-org/agents/conductor/AGENTS.md +8 -0
- package/examples/mixed-runtime-org/agents/conductor/Spawnfile +27 -0
- package/examples/mixed-runtime-org/agents/localist/AGENTS.md +7 -0
- package/examples/mixed-runtime-org/agents/localist/Spawnfile +50 -0
- package/examples/moltnet-team-chat/Spawnfile +43 -0
- package/examples/moltnet-team-chat/TEAM.md +5 -0
- package/examples/moltnet-team-chat/agents/coordinator/AGENTS.md +9 -0
- package/examples/moltnet-team-chat/agents/coordinator/Spawnfile +26 -0
- package/examples/moltnet-team-chat/teams/analysis/Spawnfile +23 -0
- package/examples/moltnet-team-chat/teams/analysis/TEAM.md +3 -0
- package/examples/moltnet-team-chat/teams/analysis/agents/observer/AGENTS.md +5 -0
- package/examples/moltnet-team-chat/teams/analysis/agents/observer/Spawnfile +19 -0
- package/examples/moltnet-team-chat/teams/analysis/agents/representative/AGENTS.md +5 -0
- package/examples/moltnet-team-chat/teams/analysis/agents/representative/Spawnfile +19 -0
- package/examples/moltnet-team-chat/teams/field/Spawnfile +41 -0
- package/examples/moltnet-team-chat/teams/field/TEAM.md +3 -0
- package/examples/moltnet-team-chat/teams/field/agents/observer/AGENTS.md +5 -0
- package/examples/moltnet-team-chat/teams/field/agents/observer/Spawnfile +26 -0
- package/examples/moltnet-team-chat/teams/field/agents/representative/AGENTS.md +11 -0
- package/examples/moltnet-team-chat/teams/field/agents/representative/Spawnfile +26 -0
- package/examples/single-agent/AGENTS.md +3 -0
- package/examples/single-agent/HEARTBEAT.md +3 -0
- package/examples/single-agent/IDENTITY.md +3 -0
- package/examples/single-agent/MEMORY.md +3 -0
- package/examples/single-agent/SOUL.md +3 -0
- package/examples/single-agent/Spawnfile +41 -0
- package/examples/single-agent/skills/web_search/SKILL.md +6 -0
- package/moltnet-releases.json +5 -4
- package/package.json +36 -9
- package/runtimes.yaml +5 -2
- package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +0 -13
- package/dist/cli/targetWorldClockCrossProcess.test-helper.js +0 -109
- package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +0 -8
- package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +0 -60
- package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +0 -8
- package/dist/deployment/simfileFixtureBoundary.test-helper.js +0 -103
- package/dist/ownership/simfileRunOperatorInputs.d.ts +0 -103
- package/dist/ownership/simfileRunOperatorInputs.js +0 -139
- package/dist/target/cleanupRunDocker.test-helper.d.ts +0 -67
- package/dist/target/cleanupRunDocker.test-helper.js +0 -238
package/dist/manifest/schemas.js
CHANGED
|
@@ -5,7 +5,7 @@ import { memoryBanksSchema } from "./memorySchemas.js";
|
|
|
5
5
|
import { mcpServerSchema } from "./mcpSchemas.js";
|
|
6
6
|
import { surfacesSchema } from "./surfaceSchemas.js";
|
|
7
7
|
import { externalParticipantServiceSchema } from "./externalParticipantSchemas.js";
|
|
8
|
-
import { teamNetworkSchema, teamWorkspaceSchema } from "./teamNetworkSchemas.js";
|
|
8
|
+
import { isDeclaredPairedRemoteRoomMember, teamNetworkSchema, teamWorkspaceSchema } from "./teamNetworkSchemas.js";
|
|
9
9
|
const skillRequirementSchema = z
|
|
10
10
|
.object({
|
|
11
11
|
mcp: z.array(z.string()).optional()
|
|
@@ -217,7 +217,9 @@ const teamManifestSchema = commonManifestSchema
|
|
|
217
217
|
.map((participant) => participant.id) ?? []);
|
|
218
218
|
for (const room of network.rooms) {
|
|
219
219
|
for (const memberId of room.members) {
|
|
220
|
-
if (!memberIds.has(memberId)
|
|
220
|
+
if (!memberIds.has(memberId)
|
|
221
|
+
&& !externalRoomMembers.has(memberId)
|
|
222
|
+
&& !isDeclaredPairedRemoteRoomMember(network, room, memberId)) {
|
|
221
223
|
context.addIssue({
|
|
222
224
|
code: z.ZodIssueCode.custom,
|
|
223
225
|
message: `network ${network.id} room ${room.id} references unknown member ${memberId}`
|
|
@@ -256,6 +258,7 @@ export const manifestSchema = z.discriminatedUnion("kind", [
|
|
|
256
258
|
agentManifestSchema,
|
|
257
259
|
teamManifestSchema
|
|
258
260
|
]);
|
|
261
|
+
export { isDeclaredPairedRemoteRoomMember } from "./teamNetworkSchemas.js";
|
|
259
262
|
export const isAgentManifest = (manifest) => manifest.kind === "agent";
|
|
260
263
|
export const isTeamManifest = (manifest) => manifest.kind === "team";
|
|
261
264
|
export const isInlineAgentMember = (member) => !("ref" in member);
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const teamNetworkAgentRegistrationSchema: z.ZodEnum<{
|
|
3
|
-
token: "token";
|
|
4
3
|
disabled: "disabled";
|
|
4
|
+
token: "token";
|
|
5
5
|
open: "open";
|
|
6
6
|
}>;
|
|
7
|
+
export declare const teamNetworkRoomFederationSchema: z.ZodUnion<readonly [z.ZodEnum<{
|
|
8
|
+
none: "none";
|
|
9
|
+
all: "all";
|
|
10
|
+
}>, z.ZodArray<z.ZodString>]>;
|
|
7
11
|
export declare const teamNetworkRoomVisibilitySchema: z.ZodEnum<{
|
|
8
12
|
private: "private";
|
|
9
13
|
public: "public";
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export const teamNetworkAgentRegistrationSchema = z.enum(["disabled", "token", "open"]);
|
|
3
|
+
export const teamNetworkRoomFederationSchema = z.union([
|
|
4
|
+
z.enum(["none", "all"]),
|
|
5
|
+
z.array(z.string().trim().min(1)).min(1).superRefine((value, context) => {
|
|
6
|
+
if (new Set(value).size !== value.length) {
|
|
7
|
+
context.addIssue({
|
|
8
|
+
code: z.ZodIssueCode.custom,
|
|
9
|
+
message: "room federation pairing ids must be unique"
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
})
|
|
13
|
+
]);
|
|
3
14
|
export const teamNetworkRoomVisibilitySchema = z.enum(["public", "private"]);
|
|
4
15
|
export const teamNetworkRoomWritePolicySchema = z.enum([
|
|
5
16
|
"members",
|
|
@@ -15,8 +15,8 @@ declare const teamNetworkAuthTokenSchema: z.ZodObject<{
|
|
|
15
15
|
export declare const isTopologyOperatorToken: (token: z.infer<typeof teamNetworkAuthTokenSchema>) => boolean;
|
|
16
16
|
export declare const teamNetworkAuthSchema: z.ZodObject<{
|
|
17
17
|
agent_registration: z.ZodOptional<z.ZodEnum<{
|
|
18
|
-
token: "token";
|
|
19
18
|
disabled: "disabled";
|
|
19
|
+
token: "token";
|
|
20
20
|
open: "open";
|
|
21
21
|
}>>;
|
|
22
22
|
client: z.ZodOptional<z.ZodObject<{
|
|
@@ -4,6 +4,10 @@ export type { TeamWorkspace, TeamWorkspaceDocs, TeamWorkspaceResource, TeamWorks
|
|
|
4
4
|
export type { TeamNetworkAuth } from "./teamNetworkAuthSchemas.js";
|
|
5
5
|
export type { TeamNetworkServer, TeamNetworkStore } from "./teamNetworkServerSchemas.js";
|
|
6
6
|
declare const teamNetworkRoomSchema: z.ZodObject<{
|
|
7
|
+
federation: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
8
|
+
none: "none";
|
|
9
|
+
all: "all";
|
|
10
|
+
}>, z.ZodArray<z.ZodString>]>>;
|
|
7
11
|
id: z.ZodString;
|
|
8
12
|
members: z.ZodArray<z.ZodString>;
|
|
9
13
|
name: z.ZodOptional<z.ZodString>;
|
|
@@ -22,6 +26,10 @@ export declare const teamNetworkSchema: z.ZodObject<{
|
|
|
22
26
|
name: z.ZodOptional<z.ZodString>;
|
|
23
27
|
provider: z.ZodLiteral<"moltnet">;
|
|
24
28
|
rooms: z.ZodArray<z.ZodObject<{
|
|
29
|
+
federation: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
30
|
+
none: "none";
|
|
31
|
+
all: "all";
|
|
32
|
+
}>, z.ZodArray<z.ZodString>]>>;
|
|
25
33
|
id: z.ZodString;
|
|
26
34
|
members: z.ZodArray<z.ZodString>;
|
|
27
35
|
name: z.ZodOptional<z.ZodString>;
|
|
@@ -39,8 +47,8 @@ export declare const teamNetworkSchema: z.ZodObject<{
|
|
|
39
47
|
allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
40
48
|
auth: z.ZodObject<{
|
|
41
49
|
agent_registration: z.ZodOptional<z.ZodEnum<{
|
|
42
|
-
token: "token";
|
|
43
50
|
disabled: "disabled";
|
|
51
|
+
token: "token";
|
|
44
52
|
open: "open";
|
|
45
53
|
}>>;
|
|
46
54
|
client: z.ZodOptional<z.ZodObject<{
|
|
@@ -84,7 +92,12 @@ export declare const teamNetworkSchema: z.ZodObject<{
|
|
|
84
92
|
mode: z.ZodLiteral<"managed">;
|
|
85
93
|
pairings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
86
94
|
id: z.ZodString;
|
|
87
|
-
|
|
95
|
+
relay: z.ZodOptional<z.ZodObject<{
|
|
96
|
+
room: z.ZodString;
|
|
97
|
+
token_secret: z.ZodString;
|
|
98
|
+
url: z.ZodString;
|
|
99
|
+
}, z.core.$strict>>;
|
|
100
|
+
remote_base_url: z.ZodOptional<z.ZodString>;
|
|
88
101
|
remote_network_id: z.ZodString;
|
|
89
102
|
remote_network_name: z.ZodString;
|
|
90
103
|
token_secret: z.ZodString;
|
|
@@ -122,8 +135,8 @@ export declare const teamNetworkSchema: z.ZodObject<{
|
|
|
122
135
|
}, z.core.$strict>, z.ZodObject<{
|
|
123
136
|
auth: z.ZodObject<{
|
|
124
137
|
agent_registration: z.ZodOptional<z.ZodEnum<{
|
|
125
|
-
token: "token";
|
|
126
138
|
disabled: "disabled";
|
|
139
|
+
token: "token";
|
|
127
140
|
open: "open";
|
|
128
141
|
}>>;
|
|
129
142
|
client: z.ZodOptional<z.ZodObject<{
|
|
@@ -157,3 +170,4 @@ export declare const teamNetworkSchema: z.ZodObject<{
|
|
|
157
170
|
}, z.core.$strict>;
|
|
158
171
|
export type TeamNetwork = z.infer<typeof teamNetworkSchema>;
|
|
159
172
|
export type TeamNetworkRoom = z.infer<typeof teamNetworkRoomSchema>;
|
|
173
|
+
export declare const isDeclaredPairedRemoteRoomMember: (network: TeamNetwork, room: TeamNetworkRoom, memberId: string) => boolean;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { teamNetworkRoomVisibilitySchema, teamNetworkRoomWritePolicySchema } from "./teamNetworkAccessSchemas.js";
|
|
2
|
+
import { teamNetworkRoomFederationSchema, teamNetworkRoomVisibilitySchema, teamNetworkRoomWritePolicySchema } from "./teamNetworkAccessSchemas.js";
|
|
3
3
|
import { teamNetworkServerSchema } from "./teamNetworkServerSchemas.js";
|
|
4
4
|
export { teamWorkspaceDocsSchema, teamWorkspaceSchema } from "./workspaceSchemas.js";
|
|
5
5
|
const teamNetworkRoomSchema = z
|
|
6
6
|
.object({
|
|
7
|
+
federation: teamNetworkRoomFederationSchema.optional(),
|
|
7
8
|
id: z.string().trim().min(1),
|
|
8
9
|
members: z.array(z.string().trim().min(1)),
|
|
9
10
|
name: z.string().trim().min(1).optional(),
|
|
@@ -29,3 +30,20 @@ export const teamNetworkSchema = z
|
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
32
|
});
|
|
33
|
+
export const isDeclaredPairedRemoteRoomMember = (network, room, memberId) => {
|
|
34
|
+
const separator = memberId.indexOf(":");
|
|
35
|
+
if (separator <= 0 || separator === memberId.length - 1) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const remoteNetworkId = memberId.slice(0, separator).trim();
|
|
39
|
+
const remoteAgentId = memberId.slice(separator + 1).trim();
|
|
40
|
+
if (!remoteNetworkId || !remoteAgentId || network.server?.mode !== "managed") {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const pairing = network.server.pairings?.find((candidate) => candidate.remote_network_id === remoteNetworkId);
|
|
44
|
+
if (!pairing) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return room.federation === "all"
|
|
48
|
+
|| (Array.isArray(room.federation) && room.federation.includes(pairing.id));
|
|
49
|
+
};
|
|
@@ -31,8 +31,8 @@ export declare const teamNetworkServerSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
31
31
|
allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
32
32
|
auth: z.ZodObject<{
|
|
33
33
|
agent_registration: z.ZodOptional<z.ZodEnum<{
|
|
34
|
-
token: "token";
|
|
35
34
|
disabled: "disabled";
|
|
35
|
+
token: "token";
|
|
36
36
|
open: "open";
|
|
37
37
|
}>>;
|
|
38
38
|
client: z.ZodOptional<z.ZodObject<{
|
|
@@ -76,7 +76,12 @@ export declare const teamNetworkServerSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
76
76
|
mode: z.ZodLiteral<"managed">;
|
|
77
77
|
pairings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
78
78
|
id: z.ZodString;
|
|
79
|
-
|
|
79
|
+
relay: z.ZodOptional<z.ZodObject<{
|
|
80
|
+
room: z.ZodString;
|
|
81
|
+
token_secret: z.ZodString;
|
|
82
|
+
url: z.ZodString;
|
|
83
|
+
}, z.core.$strict>>;
|
|
84
|
+
remote_base_url: z.ZodOptional<z.ZodString>;
|
|
80
85
|
remote_network_id: z.ZodString;
|
|
81
86
|
remote_network_name: z.ZodString;
|
|
82
87
|
token_secret: z.ZodString;
|
|
@@ -114,8 +119,8 @@ export declare const teamNetworkServerSchema: z.ZodDiscriminatedUnion<[z.ZodObje
|
|
|
114
119
|
}, z.core.$strict>, z.ZodObject<{
|
|
115
120
|
auth: z.ZodObject<{
|
|
116
121
|
agent_registration: z.ZodOptional<z.ZodEnum<{
|
|
117
|
-
token: "token";
|
|
118
122
|
disabled: "disabled";
|
|
123
|
+
token: "token";
|
|
119
124
|
open: "open";
|
|
120
125
|
}>>;
|
|
121
126
|
client: z.ZodOptional<z.ZodObject<{
|
|
@@ -68,15 +68,31 @@ const teamNetworkListenSchema = z
|
|
|
68
68
|
port: z.number().int().min(1).max(65535)
|
|
69
69
|
})
|
|
70
70
|
.strict();
|
|
71
|
+
const teamNetworkPairingRelaySchema = z
|
|
72
|
+
.object({
|
|
73
|
+
room: z.string().trim().min(1),
|
|
74
|
+
token_secret: z.string().trim().min(1),
|
|
75
|
+
url: z.string().trim().min(1)
|
|
76
|
+
})
|
|
77
|
+
.strict();
|
|
71
78
|
const teamNetworkPairingSchema = z
|
|
72
79
|
.object({
|
|
73
80
|
id: z.string().trim().min(1),
|
|
74
|
-
|
|
81
|
+
relay: teamNetworkPairingRelaySchema.optional(),
|
|
82
|
+
remote_base_url: z.string().trim().min(1).optional(),
|
|
75
83
|
remote_network_id: z.string().trim().min(1),
|
|
76
84
|
remote_network_name: z.string().trim().min(1),
|
|
77
85
|
token_secret: z.string().trim().min(1)
|
|
78
86
|
})
|
|
79
|
-
.strict()
|
|
87
|
+
.strict()
|
|
88
|
+
.superRefine((value, context) => {
|
|
89
|
+
if ((value.remote_base_url === undefined) === (value.relay === undefined)) {
|
|
90
|
+
context.addIssue({
|
|
91
|
+
code: z.ZodIssueCode.custom,
|
|
92
|
+
message: "managed Moltnet pairing requires exactly one of remote_base_url or relay"
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
});
|
|
80
96
|
const teamNetworkManagedServerSchema = z
|
|
81
97
|
.object({
|
|
82
98
|
allowed_origins: z.array(z.string().trim().min(1)).optional(),
|
|
@@ -23,6 +23,14 @@ declare const teamWorkspaceResourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
23
23
|
}>>;
|
|
24
24
|
tag: z.ZodOptional<z.ZodString>;
|
|
25
25
|
url: z.ZodString;
|
|
26
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
27
|
+
id: z.ZodString;
|
|
28
|
+
kind: z.ZodLiteral<"bundle">;
|
|
29
|
+
mount: z.ZodString;
|
|
30
|
+
mode: z.ZodLiteral<"readonly">;
|
|
31
|
+
sha256: z.ZodString;
|
|
32
|
+
sharing: z.ZodOptional<z.ZodLiteral<"per_agent">>;
|
|
33
|
+
source: z.ZodString;
|
|
26
34
|
}, z.core.$strict>, z.ZodObject<{
|
|
27
35
|
id: z.ZodString;
|
|
28
36
|
kind: z.ZodLiteral<"volume">;
|
|
@@ -68,6 +76,14 @@ export declare const teamWorkspaceSchema: z.ZodObject<{
|
|
|
68
76
|
}>>;
|
|
69
77
|
tag: z.ZodOptional<z.ZodString>;
|
|
70
78
|
url: z.ZodString;
|
|
79
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
80
|
+
id: z.ZodString;
|
|
81
|
+
kind: z.ZodLiteral<"bundle">;
|
|
82
|
+
mount: z.ZodString;
|
|
83
|
+
mode: z.ZodLiteral<"readonly">;
|
|
84
|
+
sha256: z.ZodString;
|
|
85
|
+
sharing: z.ZodOptional<z.ZodLiteral<"per_agent">>;
|
|
86
|
+
source: z.ZodString;
|
|
71
87
|
}, z.core.$strict>, z.ZodObject<{
|
|
72
88
|
id: z.ZodString;
|
|
73
89
|
kind: z.ZodLiteral<"volume">;
|
|
@@ -89,8 +89,14 @@ const teamWorkspaceResourceVolumeSchema = z
|
|
|
89
89
|
sharing: workspaceResourceSharingSchema.optional()
|
|
90
90
|
})
|
|
91
91
|
.strict();
|
|
92
|
+
const teamWorkspaceResourceBundleSchema = z.object({
|
|
93
|
+
id: z.string().trim().min(1), kind: z.literal("bundle"), mount: resourceMountSchema,
|
|
94
|
+
mode: z.literal("readonly"), sha256: z.string().regex(/^sha256:[a-f0-9]{64}$/u),
|
|
95
|
+
sharing: z.literal("per_agent").optional(), source: z.string().trim().min(1)
|
|
96
|
+
}).strict();
|
|
92
97
|
const teamWorkspaceResourceSchema = z.discriminatedUnion("kind", [
|
|
93
98
|
teamWorkspaceResourceGitSchema,
|
|
99
|
+
teamWorkspaceResourceBundleSchema,
|
|
94
100
|
teamWorkspaceResourceVolumeSchema
|
|
95
101
|
]);
|
|
96
102
|
const workspaceSkillRequirementSchema = z
|
|
@@ -129,6 +135,11 @@ export const teamWorkspaceSchema = z
|
|
|
129
135
|
url: resource.url
|
|
130
136
|
});
|
|
131
137
|
}
|
|
138
|
+
if (resource.kind === "bundle")
|
|
139
|
+
return JSON.stringify({
|
|
140
|
+
kind: resource.kind, mode: resource.mode, mount: normalizeMount(resource.mount),
|
|
141
|
+
sha256: resource.sha256, sharing: resource.sharing ?? "per_agent", source: resource.source
|
|
142
|
+
});
|
|
132
143
|
return JSON.stringify({
|
|
133
144
|
kind: "volume",
|
|
134
145
|
mode: resource.mode,
|
package/dist/report/types.d.ts
CHANGED
|
@@ -35,14 +35,32 @@ export interface ContainerRuntimeInstanceReport {
|
|
|
35
35
|
export interface ContainerWorkspaceResourceReport {
|
|
36
36
|
backing_path: string;
|
|
37
37
|
id: string;
|
|
38
|
-
kind: "git" | "volume";
|
|
38
|
+
kind: "bundle" | "git" | "volume";
|
|
39
39
|
link_path: string;
|
|
40
40
|
mode: "mutable" | "readonly";
|
|
41
41
|
mount: string;
|
|
42
|
+
mount_path: string;
|
|
43
|
+
replacement_sentinel?: {
|
|
44
|
+
path: string;
|
|
45
|
+
result: "verified_on_startup";
|
|
46
|
+
};
|
|
47
|
+
resolved_identity: string;
|
|
42
48
|
sharing: "per_agent" | "team";
|
|
49
|
+
volume_name: string | null;
|
|
43
50
|
}
|
|
44
51
|
export interface ContainerPersistentMountReport {
|
|
52
|
+
/**
|
|
53
|
+
* The author's own volume name, when one was declared (a workspace resource
|
|
54
|
+
* `name`, a `store.persistence.name`, a memory bank's `persistence.name`).
|
|
55
|
+
* Present only when declared; `volume_name` equals it in that case. It is
|
|
56
|
+
* carried separately because it is the one part of the resolved name that is
|
|
57
|
+
* portable: it belongs to the declaration, not to the creator's plan root or
|
|
58
|
+
* deployment lineage, so a published image can honour it verbatim while a
|
|
59
|
+
* derived name must be re-derived per deployment.
|
|
60
|
+
*/
|
|
61
|
+
declared_volume_name?: string;
|
|
45
62
|
id: string;
|
|
63
|
+
lifecycle?: "exclusive-reattach";
|
|
46
64
|
mount_path: string;
|
|
47
65
|
reason: string;
|
|
48
66
|
volume_name: string;
|
|
@@ -200,9 +218,16 @@ export interface ContainerMoltnetPlanSummary {
|
|
|
200
218
|
architecture: "amd64" | "arm64";
|
|
201
219
|
asset: string;
|
|
202
220
|
asset_sha256: `sha256:${string}`;
|
|
203
|
-
capabilities: readonly ["pi-bridge"];
|
|
204
|
-
|
|
205
|
-
|
|
221
|
+
capabilities: readonly ["pi-bridge"] | readonly ["daimon-bridge", "pi-bridge"];
|
|
222
|
+
development?: {
|
|
223
|
+
mode: "local-development";
|
|
224
|
+
non_production: true;
|
|
225
|
+
unsigned: true;
|
|
226
|
+
unpublished: true;
|
|
227
|
+
};
|
|
228
|
+
release_version?: string;
|
|
229
|
+
source_revision?: string;
|
|
230
|
+
source_sha256?: `sha256:${string}`;
|
|
206
231
|
version: "spawnfile.moltnet-release-identity.v1";
|
|
207
232
|
};
|
|
208
233
|
server_plans: ContainerMoltnetServerPlanSummary[];
|
|
@@ -224,6 +249,11 @@ export interface ContainerReport {
|
|
|
224
249
|
entrypoint: string;
|
|
225
250
|
env_example: string;
|
|
226
251
|
internal_ports?: number[];
|
|
252
|
+
local_daimon_runtime?: {
|
|
253
|
+
capability_receipt_sha256: string;
|
|
254
|
+
image_reference: string;
|
|
255
|
+
registry_authority: string;
|
|
256
|
+
};
|
|
227
257
|
model_secrets_required: string[];
|
|
228
258
|
moltnet?: ContainerMoltnetPlanSummary;
|
|
229
259
|
memory?: ContainerMemoryReport[];
|
package/dist/runtime/common.d.ts
CHANGED
|
@@ -37,7 +37,34 @@ export declare const ensureNoopolisRunId: (env?: NodeJS.ProcessEnv) => string;
|
|
|
37
37
|
export declare const createCapability: (key: string, outcome: CapabilityReport["outcome"], message?: string) => CapabilityReport;
|
|
38
38
|
export declare const createDiagnostic: (level: DiagnosticReport["level"], message: string) => DiagnosticReport;
|
|
39
39
|
export declare const createDocumentFiles: (baseDirectory: string, documents: ResolvedDocument[]) => EmittedFile[];
|
|
40
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Skill roots for the runtimes whose declared skills are read by an external
|
|
42
|
+
* coding-agent CLI engine (`daimon` and `pi`). `.codex/skills` is Codex's own
|
|
43
|
+
* workspace discovery root; `.agents/skills` is the generic cross-engine root
|
|
44
|
+
* that grok, agy, and every other file-reading CLI engine use. Both entries
|
|
45
|
+
* are required and the two emitted files are byte-identical on purpose — this
|
|
46
|
+
* mirrors the Moltnet skill install, which is the working reference: Spawnfile
|
|
47
|
+
* runs `moltnet skill install --runtime codex` for these runtimes and Moltnet
|
|
48
|
+
* writes the same skill to both roots (`resolveMoltnetWorkspaceLayout` in
|
|
49
|
+
* `src/compiler/moltnetClientConfig.ts`, `installMoltnetSkill` in
|
|
50
|
+
* `moltnet/cmd/moltnet/skill.go`). A plain `workspace/skills/` root is read by
|
|
51
|
+
* no engine these two runtimes can host, so anything emitted there is invisible.
|
|
52
|
+
*/
|
|
53
|
+
export declare const CLI_ENGINE_SKILL_BASE_DIRECTORIES: readonly string[];
|
|
54
|
+
/**
|
|
55
|
+
* Skill root for the runtimes that own their own skill loader and read the
|
|
56
|
+
* workspace `skills/` directory directly (`openclaw`, `picoclaw`). Moltnet
|
|
57
|
+
* installs its skill to the same place for those runtimes.
|
|
58
|
+
*/
|
|
59
|
+
export declare const WORKSPACE_SKILL_BASE_DIRECTORY = "workspace/skills";
|
|
60
|
+
/**
|
|
61
|
+
* Lowers declared skills into emitted `SKILL.md` files. `baseDirectory`
|
|
62
|
+
* accepts a list because a runtime can need the same skill under more than
|
|
63
|
+
* one discovery root (see `CLI_ENGINE_SKILL_BASE_DIRECTORIES`); the emission
|
|
64
|
+
* order is root-major so a generated workspace lists each root's skills
|
|
65
|
+
* together and stays deterministic.
|
|
66
|
+
*/
|
|
67
|
+
export declare const createSkillFiles: (baseDirectory: string | readonly string[], skills: ResolvedSkill[]) => EmittedFile[];
|
|
41
68
|
export declare const createAgentCapabilities: (node: ResolvedAgentNode, options?: {
|
|
42
69
|
mcpOutcome?: CapabilityReport["outcome"];
|
|
43
70
|
memoryMessage?: string;
|
package/dist/runtime/common.js
CHANGED
|
@@ -62,10 +62,40 @@ export const createDocumentFiles = (baseDirectory, documents) => documents.map((
|
|
|
62
62
|
? `${baseDirectory}/${ROLE_FILE_NAMES[document.role]}`
|
|
63
63
|
: `${baseDirectory}/extras/${document.role.replace(/^extras\./, "")}.md`
|
|
64
64
|
}));
|
|
65
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Skill roots for the runtimes whose declared skills are read by an external
|
|
67
|
+
* coding-agent CLI engine (`daimon` and `pi`). `.codex/skills` is Codex's own
|
|
68
|
+
* workspace discovery root; `.agents/skills` is the generic cross-engine root
|
|
69
|
+
* that grok, agy, and every other file-reading CLI engine use. Both entries
|
|
70
|
+
* are required and the two emitted files are byte-identical on purpose — this
|
|
71
|
+
* mirrors the Moltnet skill install, which is the working reference: Spawnfile
|
|
72
|
+
* runs `moltnet skill install --runtime codex` for these runtimes and Moltnet
|
|
73
|
+
* writes the same skill to both roots (`resolveMoltnetWorkspaceLayout` in
|
|
74
|
+
* `src/compiler/moltnetClientConfig.ts`, `installMoltnetSkill` in
|
|
75
|
+
* `moltnet/cmd/moltnet/skill.go`). A plain `workspace/skills/` root is read by
|
|
76
|
+
* no engine these two runtimes can host, so anything emitted there is invisible.
|
|
77
|
+
*/
|
|
78
|
+
export const CLI_ENGINE_SKILL_BASE_DIRECTORIES = [
|
|
79
|
+
"workspace/.agents/skills",
|
|
80
|
+
"workspace/.codex/skills"
|
|
81
|
+
];
|
|
82
|
+
/**
|
|
83
|
+
* Skill root for the runtimes that own their own skill loader and read the
|
|
84
|
+
* workspace `skills/` directory directly (`openclaw`, `picoclaw`). Moltnet
|
|
85
|
+
* installs its skill to the same place for those runtimes.
|
|
86
|
+
*/
|
|
87
|
+
export const WORKSPACE_SKILL_BASE_DIRECTORY = "workspace/skills";
|
|
88
|
+
/**
|
|
89
|
+
* Lowers declared skills into emitted `SKILL.md` files. `baseDirectory`
|
|
90
|
+
* accepts a list because a runtime can need the same skill under more than
|
|
91
|
+
* one discovery root (see `CLI_ENGINE_SKILL_BASE_DIRECTORIES`); the emission
|
|
92
|
+
* order is root-major so a generated workspace lists each root's skills
|
|
93
|
+
* together and stays deterministic.
|
|
94
|
+
*/
|
|
95
|
+
export const createSkillFiles = (baseDirectory, skills) => (typeof baseDirectory === "string" ? [baseDirectory] : baseDirectory).flatMap((directory) => skills.map((skill) => ({
|
|
66
96
|
content: skill.content,
|
|
67
|
-
path: `${
|
|
68
|
-
}));
|
|
97
|
+
path: `${directory}/${skill.name}/SKILL.md`
|
|
98
|
+
})));
|
|
69
99
|
export const createAgentCapabilities = (node, options = {}) => {
|
|
70
100
|
const capabilities = [];
|
|
71
101
|
for (const document of node.docs) {
|
|
@@ -2,14 +2,18 @@ import { SpawnfileError } from "../shared/index.js";
|
|
|
2
2
|
import { NOOPOLIS_RUN_ID_ENV, resolveNoopolisRunId } from "./common.js";
|
|
3
3
|
import { createVendorCopyCommand, needsVendorCopyCommand, resolveInstallPackageSpec } from "./containerPackageOverrides.js";
|
|
4
4
|
import { resolveRuntimeInstallSelection } from "./install.js";
|
|
5
|
+
import { DAIMON_LOCAL_RUNTIME_IDENTITY_ENV, loadLocalDaimonRuntimeIdentity } from "./localDaimonAuthority.js";
|
|
6
|
+
import { DAIMON_CONTRACT_MANIFEST_SHA256, DAIMON_GROK_ENGINE_BROKER } from "./daimon/contractManifest.js";
|
|
7
|
+
import { DAIMON_WAKE_FUSE_DIRECTORY, DAIMON_WAKE_FUSE_DIRECTORY_ENV } from "./daimon/config.js";
|
|
5
8
|
export const RUNTIME_INSTALL_ROOT = "/opt/spawnfile/runtime-installs";
|
|
6
9
|
const PI_RUNTIME_BASE_IMAGE_ENV = "SPAWNFILE_PI_RUNTIME_BASE_IMAGE";
|
|
7
|
-
const
|
|
8
|
-
const
|
|
10
|
+
const LEGACY_DAIMON_RUNTIME_IMAGE_ENV = "SPAWNFILE_DAIMON_RUNTIME_IMAGE";
|
|
11
|
+
const LEGACY_DAIMON_RUNTIME_CAPABILITY_RECEIPT_ENV = "SPAWNFILE_DAIMON_RUNTIME_CAPABILITY_RECEIPT";
|
|
12
|
+
const DAIMON_CAPABILITY_RECEIPT_FILE = "capability-receipt.json";
|
|
9
13
|
const OPENCLAW_RUNTIME_IMAGE_ENV = "SPAWNFILE_OPENCLAW_RUNTIME_IMAGE";
|
|
10
14
|
const PICOCLAW_RUNTIME_IMAGE_ENV = "SPAWNFILE_PICOCLAW_RUNTIME_IMAGE";
|
|
11
15
|
const DAIMON_PACKAGE_NAME = "@noopolis/daimon";
|
|
12
|
-
const
|
|
16
|
+
const PI_DAIMON_PACKAGE_VERSION = "0.1.2";
|
|
13
17
|
const MNEME_PACKAGE_NAME = "@noopolis/mneme";
|
|
14
18
|
const MNEME_PACKAGE_VERSION = "0.1.1";
|
|
15
19
|
const PI_AI_PACKAGE_NAME = "@earendil-works/pi-ai";
|
|
@@ -40,6 +44,34 @@ const resolveRuntimeImageRef = (envName, selection) => process.env[envName]?.tri
|
|
|
40
44
|
(selection.kind === "container_image"
|
|
41
45
|
? `${selection.image}:${selection.tag}`
|
|
42
46
|
: undefined);
|
|
47
|
+
/**
|
|
48
|
+
* Daimon is distributed only as a generic, source-free runtime image. A
|
|
49
|
+
* local-development authority is deliberately narrow: it must be an explicit
|
|
50
|
+
* generated identity file naming the approved loopback registry repository by
|
|
51
|
+
* manifest digest plus the exact embedded receipt digest. Raw image/receipt
|
|
52
|
+
* overrides, mutable tags, checkouts, and host-installed CLIs are rejected.
|
|
53
|
+
*/
|
|
54
|
+
const resolveDaimonRuntimeImageRef = async (selection) => {
|
|
55
|
+
if (selection.kind !== "container_image" ||
|
|
56
|
+
!selection.digest ||
|
|
57
|
+
!selection.capabilityReceipt) {
|
|
58
|
+
throw new SpawnfileError("runtime_error", "Daimon organization runtime v1 requires a pinned generic Daimon runtime image");
|
|
59
|
+
}
|
|
60
|
+
const pinnedImage = `${selection.image}@${selection.digest}`;
|
|
61
|
+
if (process.env[LEGACY_DAIMON_RUNTIME_IMAGE_ENV]?.trim() ||
|
|
62
|
+
process.env[LEGACY_DAIMON_RUNTIME_CAPABILITY_RECEIPT_ENV]?.trim()) {
|
|
63
|
+
throw new SpawnfileError("runtime_error", `Raw Daimon runtime image overrides are disabled; use ${DAIMON_LOCAL_RUNTIME_IDENTITY_ENV}`);
|
|
64
|
+
}
|
|
65
|
+
const identityPath = process.env[DAIMON_LOCAL_RUNTIME_IDENTITY_ENV]?.trim();
|
|
66
|
+
if (identityPath) {
|
|
67
|
+
const identity = await loadLocalDaimonRuntimeIdentity(identityPath);
|
|
68
|
+
return { capabilityReceipt: identity.capabilityReceipt, image: identity.imageReference };
|
|
69
|
+
}
|
|
70
|
+
if (selection.contractManifestSha256 !== DAIMON_CONTRACT_MANIFEST_SHA256) {
|
|
71
|
+
throw new SpawnfileError("runtime_error", "Selected Daimon runtime image does not attest the compiler's exact contract manifest; build and select a matching local artifact or pin a published compatible release");
|
|
72
|
+
}
|
|
73
|
+
return { capabilityReceipt: selection.capabilityReceipt, image: pinnedImage };
|
|
74
|
+
};
|
|
43
75
|
export const createRuntimeInstallRecipe = async (runtimeName, options = {}) => {
|
|
44
76
|
const selection = await resolveRuntimeInstallSelection(runtimeName);
|
|
45
77
|
assertArtifactInstallSelection(runtimeName, selection);
|
|
@@ -96,38 +128,22 @@ export const createRuntimeInstallRecipe = async (runtimeName, options = {}) => {
|
|
|
96
128
|
};
|
|
97
129
|
}
|
|
98
130
|
case "daimon": {
|
|
99
|
-
const
|
|
100
|
-
process.env[DAIMON_RUNTIME_BASE_IMAGE_ENV]?.trim() ||
|
|
101
|
-
(selection.kind === "container_image"
|
|
102
|
-
? `${selection.image}:${selection.tag}`
|
|
103
|
-
: undefined);
|
|
104
|
-
if (daimonRuntimeImage) {
|
|
105
|
-
return {
|
|
106
|
-
commands: [],
|
|
107
|
-
copyCommands: [createRuntimeImageCopyCommand(daimonRuntimeImage, installRoot)],
|
|
108
|
-
env: containerEnv,
|
|
109
|
-
runtimeName,
|
|
110
|
-
runtimeRoot: installRoot
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
if (selection.kind !== "npm") {
|
|
114
|
-
throw new SpawnfileError("runtime_error", `Runtime ${runtimeName} has no compiled artifact recipe for ${selection.kind}`);
|
|
115
|
-
}
|
|
116
|
-
const npmPackages = [
|
|
117
|
-
resolveInstallPackageSpec(selection.packageName, selection.version, packageOverrides),
|
|
118
|
-
resolveInstallPackageSpec(MNEME_PACKAGE_NAME, MNEME_PACKAGE_VERSION, packageOverrides),
|
|
119
|
-
`${PI_CODING_AGENT_PACKAGE_NAME}@${PI_PACKAGE_VERSION}`,
|
|
120
|
-
`${PI_AI_PACKAGE_NAME}@${PI_PACKAGE_VERSION}`
|
|
121
|
-
];
|
|
131
|
+
const daimonRuntime = await resolveDaimonRuntimeImageRef(selection);
|
|
122
132
|
return {
|
|
123
133
|
commands: [
|
|
124
|
-
`
|
|
125
|
-
`
|
|
134
|
+
`test -f ${installRoot}/${DAIMON_CAPABILITY_RECEIPT_FILE} && actual="$(sha256sum ${installRoot}/${DAIMON_CAPABILITY_RECEIPT_FILE} | awk '{print "sha256:" $1}')" && test "$actual" = ${JSON.stringify(daimonRuntime.capabilityReceipt)}`,
|
|
135
|
+
`test -f ${installRoot}/contract-manifest.json && test -f ${installRoot}/contract-manifest.sha256 && manifest="$(cat ${installRoot}/contract-manifest.sha256)" && test "$manifest" = ${JSON.stringify(DAIMON_CONTRACT_MANIFEST_SHA256)} && test "$(sha256sum ${installRoot}/contract-manifest.json | awk '{print "sha256:" $1}')" = "$manifest" && node -e 'const fs=require("fs");const r=JSON.parse(fs.readFileSync(process.argv[1],"utf8"));if(r.manifest_sha256!==process.argv[2])process.exit(1)' ${installRoot}/${DAIMON_CAPABILITY_RECEIPT_FILE} "$manifest"`,
|
|
136
|
+
`ln -sf ${installRoot}/bin/daimon-runtime /usr/local/bin/daimon-runtime`,
|
|
137
|
+
`ln -sf ${installRoot}/bin/codex /usr/local/bin/codex`,
|
|
138
|
+
`install -o root -g root -m 0555 ${installRoot}/bin/grok /usr/local/bin/grok && arch="$(dpkg --print-architecture)" && case "$arch" in amd64) expected=${DAIMON_GROK_ENGINE_BROKER.grokCliArtifacts.x64.sha256} ;; arm64) expected=${DAIMON_GROK_ENGINE_BROKER.grokCliArtifacts.arm64.sha256} ;; *) exit 1 ;; esac && test "$(sha256sum /usr/local/bin/grok | awk '{print $1}')" = "$expected"`,
|
|
139
|
+
`ln -sf ${installRoot}/bin/agy /usr/local/bin/agy`,
|
|
140
|
+
`mkdir -p /opt/daimon/bin && install -o root -g root -m 0555 ${installRoot}/bin/daimon-engine-broker /opt/daimon/bin/daimon-engine-broker && arch="$(dpkg --print-architecture)" && case "$arch" in amd64) expected=${DAIMON_GROK_ENGINE_BROKER.artifacts.x64Sha256} ;; arm64) expected=${DAIMON_GROK_ENGINE_BROKER.artifacts.arm64Sha256} ;; *) exit 1 ;; esac && test "$(sha256sum /opt/daimon/bin/daimon-engine-broker | awk '{print $1}')" = "$expected"`
|
|
126
141
|
],
|
|
127
|
-
copyCommands:
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
142
|
+
copyCommands: [createRuntimeImageCopyCommand(daimonRuntime.image, installRoot)],
|
|
143
|
+
env: {
|
|
144
|
+
...containerEnv,
|
|
145
|
+
[DAIMON_WAKE_FUSE_DIRECTORY_ENV]: DAIMON_WAKE_FUSE_DIRECTORY
|
|
146
|
+
},
|
|
131
147
|
runtimeName,
|
|
132
148
|
runtimeRoot: installRoot
|
|
133
149
|
};
|
|
@@ -138,7 +154,7 @@ export const createRuntimeInstallRecipe = async (runtimeName, options = {}) => {
|
|
|
138
154
|
}
|
|
139
155
|
const prebuiltBaseImage = process.env[PI_RUNTIME_BASE_IMAGE_ENV]?.trim() || undefined;
|
|
140
156
|
const npmPackages = [
|
|
141
|
-
resolveInstallPackageSpec(DAIMON_PACKAGE_NAME,
|
|
157
|
+
resolveInstallPackageSpec(DAIMON_PACKAGE_NAME, PI_DAIMON_PACKAGE_VERSION, packageOverrides),
|
|
142
158
|
resolveInstallPackageSpec(MNEME_PACKAGE_NAME, MNEME_PACKAGE_VERSION, packageOverrides),
|
|
143
159
|
`${selection.packageName}@${selection.version}`,
|
|
144
160
|
`${PI_AI_PACKAGE_NAME}@${selection.version}`
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ResolvedAgentNode } from "../../compiler/types.js";
|
|
2
|
+
import type { RuntimeAdapter } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Workspace skill roots per Daimon engine.
|
|
5
|
+
*
|
|
6
|
+
* Codex and AGY keep both CLI-engine roots. A brokered Grok worker loads no
|
|
7
|
+
* workspace skill at all: Grok 1.0.34 discovers `.agents/skills` (never
|
|
8
|
+
* `.codex/skills`) only in a trusted folder, and Daimon keeps the workspace
|
|
9
|
+
* untrusted (root-owned empty `trusted_folders.toml`) and replaces the system
|
|
10
|
+
* prompt, whose fixed text references no skill. Emitting either root would ship
|
|
11
|
+
* files nothing reads, so none are emitted and the declaration is reported.
|
|
12
|
+
*/
|
|
13
|
+
export declare const daimonSkillBaseDirectories: (node: ResolvedAgentNode) => readonly string[];
|
|
14
|
+
export declare const daimonAdapter: RuntimeAdapter;
|