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.
Files changed (546) hide show
  1. package/README.md +60 -159
  2. package/dist/audit/checksShared.d.ts +1 -1
  3. package/dist/auth/importers.d.ts +10 -0
  4. package/dist/auth/importers.js +29 -4
  5. package/dist/auth/index.d.ts +2 -0
  6. package/dist/auth/index.js +1 -0
  7. package/dist/auth/paths.d.ts +1 -1
  8. package/dist/auth/profileStore.js +9 -9
  9. package/dist/auth/targetSecretSourceFsIdentity.d.ts +40 -0
  10. package/dist/auth/targetSecretSourceFsIdentity.js +42 -0
  11. package/dist/auth/targetSecretSourceFsPublish.d.ts +2 -0
  12. package/dist/auth/targetSecretSourceFsPublish.js +3 -1
  13. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +2 -1
  14. package/dist/auth/targetSecretSourceFsPublishImmutable.js +104 -71
  15. package/dist/auth/targetSecretSourceFsRead.js +5 -14
  16. package/dist/auth/trainingAuth.d.ts +21 -0
  17. package/dist/auth/trainingAuth.js +86 -0
  18. package/dist/auth/types.d.ts +1 -1
  19. package/dist/cli/authCommands.d.ts +1 -1
  20. package/dist/cli/authCommands.js +9 -0
  21. package/dist/cli/canaryCutoverCommand.d.ts +2 -0
  22. package/dist/cli/canaryCutoverCommand.js +30 -0
  23. package/dist/cli/capabilitiesCommand.d.ts +3 -0
  24. package/dist/cli/capabilitiesCommand.js +12 -0
  25. package/dist/cli/capabilitiesReceipt.d.ts +56 -0
  26. package/dist/cli/capabilitiesReceipt.js +56 -0
  27. package/dist/cli/compileBuildCommands.js +13 -0
  28. package/dist/cli/composedLifecycleContractSet.d.ts +21 -0
  29. package/dist/cli/composedLifecycleContractSet.js +204 -0
  30. package/dist/cli/devCommands.js +2 -0
  31. package/dist/cli/downCommand.js +19 -8
  32. package/dist/cli/evidenceExportHelperCommand.d.ts +13 -0
  33. package/dist/cli/evidenceExportHelperCommand.js +51 -0
  34. package/dist/cli/index.js +12 -3
  35. package/dist/cli/lifecycleMachine.d.ts +7 -1
  36. package/dist/cli/lifecycleMachine.js +2 -2
  37. package/dist/cli/paideiaDelegation.d.ts +17 -0
  38. package/dist/cli/paideiaDelegation.js +210 -0
  39. package/dist/cli/paideiaSupervisor.d.ts +17 -0
  40. package/dist/cli/paideiaSupervisor.js +48 -0
  41. package/dist/cli/productStateCloneCommand.d.ts +2 -0
  42. package/dist/cli/productStateCloneCommand.js +34 -0
  43. package/dist/cli/runCli.d.ts +13 -3
  44. package/dist/cli/runCli.js +37 -9
  45. package/dist/cli/targetCommands.d.ts +4 -7
  46. package/dist/cli/targetCommands.js +16 -46
  47. package/dist/cli/targetConfigPreparedPlan.d.ts +3 -0
  48. package/dist/cli/targetConfigPreparedPlan.js +74 -0
  49. package/dist/cli/targetConfigResolver.d.ts +3 -0
  50. package/dist/cli/targetConfigResolver.js +111 -0
  51. package/dist/cli/targetConfigResolverCommand.d.ts +6 -0
  52. package/dist/cli/targetConfigResolverCommand.js +43 -0
  53. package/dist/cli/targetConfigResolverContracts.d.ts +56 -0
  54. package/dist/cli/targetConfigResolverContracts.js +30 -0
  55. package/dist/cli/targetConfigResolverDocker.d.ts +4 -0
  56. package/dist/cli/targetConfigResolverDocker.js +47 -0
  57. package/dist/cli/targetConfigResolverValidation.d.ts +10 -0
  58. package/dist/cli/targetConfigResolverValidation.js +94 -0
  59. package/dist/cli/targetDefaultAuthorities.d.ts +2 -0
  60. package/dist/cli/targetDefaultAuthorities.js +3 -0
  61. package/dist/cli/targetDefaultConfig.d.ts +7 -0
  62. package/dist/cli/targetDefaultConfig.js +22 -5
  63. package/dist/cli/targetDefaultConfigStdin.js +7 -1
  64. package/dist/cli/targetDefaultHandlerFactory.js +23 -2
  65. package/dist/cli/targetDefaultHandlers.d.ts +2 -2
  66. package/dist/cli/targetProductionCommands.d.ts +5 -0
  67. package/dist/cli/targetProductionCommands.js +45 -0
  68. package/dist/cli/trainCommand.d.ts +3 -0
  69. package/dist/cli/trainCommand.js +61 -0
  70. package/dist/cli/upCommand.js +35 -6
  71. package/dist/cli/upLifecycleRecovery.d.ts +2 -2
  72. package/dist/cli/upLifecycleRecovery.js +188 -44
  73. package/dist/cli/usageCommand.d.ts +40 -0
  74. package/dist/cli/usageCommand.js +284 -0
  75. package/dist/cli/usageCommandLive.d.ts +84 -0
  76. package/dist/cli/usageCommandLive.js +95 -0
  77. package/dist/cli/usageDeploymentSource.d.ts +9 -0
  78. package/dist/cli/usageDeploymentSource.js +22 -0
  79. package/dist/cli/workspaceResourceMigrationCommand.d.ts +8 -0
  80. package/dist/cli/workspaceResourceMigrationCommand.js +36 -0
  81. package/dist/compiler/buildCompilePlanTeams.d.ts +1 -1
  82. package/dist/compiler/buildCompilePlanTeams.js +6 -1
  83. package/dist/compiler/compilePlanHelpers.js +3 -0
  84. package/dist/compiler/compileProject.d.ts +2 -0
  85. package/dist/compiler/compileProject.js +5 -1
  86. package/dist/compiler/compileProjectSupport.js +9 -0
  87. package/dist/compiler/containerArtifacts.d.ts +3 -1
  88. package/dist/compiler/containerArtifacts.js +92 -40
  89. package/dist/compiler/containerArtifactsPlans.d.ts +1 -1
  90. package/dist/compiler/containerArtifactsPlans.js +24 -7
  91. package/dist/compiler/containerArtifactsRender.d.ts +2 -1
  92. package/dist/compiler/containerArtifactsRender.js +91 -58
  93. package/dist/compiler/containerArtifactsTypes.d.ts +8 -0
  94. package/dist/compiler/containerBackedMountRender.d.ts +56 -0
  95. package/dist/compiler/containerBackedMountRender.js +101 -0
  96. package/dist/compiler/containerDaimonBrokerRender.d.ts +112 -0
  97. package/dist/compiler/containerDaimonBrokerRender.js +191 -0
  98. package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +38 -0
  99. package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +108 -0
  100. package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +172 -0
  101. package/dist/compiler/containerDaimonGrokWorkerRender.js +268 -0
  102. package/dist/compiler/containerDaimonOwnershipGuardRender.d.ts +12 -0
  103. package/dist/compiler/containerDaimonOwnershipGuardRender.js +191 -0
  104. package/dist/compiler/containerDaimonUidEntrypointRender.d.ts +24 -0
  105. package/dist/compiler/containerDaimonUidEntrypointRender.js +297 -0
  106. package/dist/compiler/containerEntrypointRender.d.ts +7 -0
  107. package/dist/compiler/containerEntrypointRender.js +28 -22
  108. package/dist/compiler/containerPersistentMounts.d.ts +30 -0
  109. package/dist/compiler/containerPersistentMounts.js +66 -0
  110. package/dist/compiler/containerReadinessPaths.d.ts +1 -0
  111. package/dist/compiler/containerReadinessPaths.js +1 -0
  112. package/dist/compiler/containerRuntimeLinkMaterializer.d.ts +2 -0
  113. package/dist/compiler/containerRuntimeLinkMaterializer.js +12 -0
  114. package/dist/compiler/containerRuntimeReadinessRender.d.ts +7 -0
  115. package/dist/compiler/containerRuntimeReadinessRender.js +40 -0
  116. package/dist/compiler/containerStateOwnershipRender.d.ts +4 -0
  117. package/dist/compiler/containerStateOwnershipRender.js +75 -0
  118. package/dist/compiler/containerTargetResources.d.ts +22 -1
  119. package/dist/compiler/containerTargetResources.js +94 -2
  120. package/dist/compiler/containerVolumeBootstrap.d.ts +3 -0
  121. package/dist/compiler/containerVolumeBootstrap.js +3 -0
  122. package/dist/compiler/containerWorkspaceResourceRender.js +49 -1
  123. package/dist/compiler/daimonTelemetryArtifacts.d.ts +2 -2
  124. package/dist/compiler/daimonTelemetryArtifacts.js +5 -10
  125. package/dist/compiler/deploymentLineage.d.ts +40 -0
  126. package/dist/compiler/deploymentLineage.js +50 -0
  127. package/dist/compiler/index.d.ts +3 -0
  128. package/dist/compiler/index.js +3 -0
  129. package/dist/compiler/initProject.d.ts +2 -0
  130. package/dist/compiler/initProject.js +39 -1
  131. package/dist/compiler/localMoltnetAuthority.d.ts +64 -0
  132. package/dist/compiler/localMoltnetAuthority.js +177 -0
  133. package/dist/compiler/memoryArtifacts.d.ts +1 -1
  134. package/dist/compiler/memoryArtifacts.js +108 -32
  135. package/dist/compiler/modelEnv.d.ts +5 -0
  136. package/dist/compiler/modelEnv.js +8 -2
  137. package/dist/compiler/moltnetArtifactPaths.d.ts +17 -12
  138. package/dist/compiler/moltnetArtifactPaths.js +17 -15
  139. package/dist/compiler/moltnetArtifactTypes.d.ts +10 -0
  140. package/dist/compiler/moltnetArtifacts.d.ts +1 -1
  141. package/dist/compiler/moltnetArtifacts.js +52 -12
  142. package/dist/compiler/moltnetBinaries.d.ts +16 -4
  143. package/dist/compiler/moltnetBinaries.js +46 -6
  144. package/dist/compiler/moltnetClientConfig.js +1 -1
  145. package/dist/compiler/moltnetConfigLowering.d.ts +3 -1
  146. package/dist/compiler/moltnetConfigLowering.js +30 -6
  147. package/dist/compiler/moltnetNodeConfig.js +1 -1
  148. package/dist/compiler/moltnetReleaseAuthority.d.ts +24 -1
  149. package/dist/compiler/moltnetReleaseAuthority.js +33 -4
  150. package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -1
  151. package/dist/compiler/moltnetRepresentativeResolution.js +2 -2
  152. package/dist/compiler/moltnetResolution.js +9 -15
  153. package/dist/compiler/moltnetRoomMemberships.js +20 -5
  154. package/dist/compiler/moltnetRoomPolicyCompatibility.d.ts +1 -1
  155. package/dist/compiler/moltnetRoomPolicyCompatibility.js +3 -1
  156. package/dist/compiler/moltnetRuntimeConfig.d.ts +1 -1
  157. package/dist/compiler/moltnetRuntimeConfig.js +22 -2
  158. package/dist/compiler/moltnetServerPlans.js +19 -0
  159. package/dist/compiler/organizationExternalParticipants.d.ts +3 -0
  160. package/dist/compiler/organizationExternalParticipants.js +176 -0
  161. package/dist/compiler/organizationIdentity.d.ts +3 -9
  162. package/dist/compiler/organizationIdentity.js +37 -270
  163. package/dist/compiler/organizationIdentityGraph.d.ts +15 -0
  164. package/dist/compiler/organizationIdentityGraph.js +115 -0
  165. package/dist/compiler/organizationReadyEvidence.d.ts +8 -0
  166. package/dist/compiler/organizationReadyEvidence.js +23 -3
  167. package/dist/compiler/runProject.d.ts +4 -2
  168. package/dist/compiler/runProject.js +32 -6
  169. package/dist/compiler/runProjectAuth.d.ts +3 -1
  170. package/dist/compiler/runProjectAuth.js +19 -3
  171. package/dist/compiler/runProjectDaimonCodexDocker.d.ts +3 -0
  172. package/dist/compiler/runProjectDaimonCodexDocker.js +36 -0
  173. package/dist/compiler/runProjectDocker.d.ts +8 -4
  174. package/dist/compiler/runProjectDocker.js +43 -18
  175. package/dist/compiler/runProjectDockerDaimonGuards.d.ts +15 -0
  176. package/dist/compiler/runProjectDockerDaimonGuards.js +122 -0
  177. package/dist/compiler/runProjectDockerReservation.d.ts +3 -0
  178. package/dist/compiler/runProjectDockerReservation.js +118 -0
  179. package/dist/compiler/runProjectLifecycle.js +1 -1
  180. package/dist/compiler/training/broker/declaration.d.ts +45 -0
  181. package/dist/compiler/training/broker/declaration.js +55 -0
  182. package/dist/compiler/training/broker/entrypoint.d.ts +39 -0
  183. package/dist/compiler/training/broker/entrypoint.js +111 -0
  184. package/dist/compiler/training/broker/index.d.ts +10 -0
  185. package/dist/compiler/training/broker/index.js +10 -0
  186. package/dist/compiler/training/broker/main.d.ts +2 -0
  187. package/dist/compiler/training/broker/main.js +14 -0
  188. package/dist/compiler/training/broker/paths.d.ts +196 -0
  189. package/dist/compiler/training/broker/paths.js +241 -0
  190. package/dist/compiler/training/broker/processes.d.ts +42 -0
  191. package/dist/compiler/training/broker/processes.js +99 -0
  192. package/dist/compiler/training/broker/projection.d.ts +51 -0
  193. package/dist/compiler/training/broker/projection.js +76 -0
  194. package/dist/compiler/training/broker/provisioning.d.ts +87 -0
  195. package/dist/compiler/training/broker/provisioning.js +213 -0
  196. package/dist/compiler/training/broker/receipt.d.ts +77 -0
  197. package/dist/compiler/training/broker/receipt.js +110 -0
  198. package/dist/compiler/training/broker/registration.d.ts +41 -0
  199. package/dist/compiler/training/broker/registration.js +102 -0
  200. package/dist/compiler/training/broker/runtime.d.ts +25 -0
  201. package/dist/compiler/training/broker/runtime.js +173 -0
  202. package/dist/compiler/training/broker/seccompRoutes.d.ts +31 -0
  203. package/dist/compiler/training/broker/seccompRoutes.js +36 -0
  204. package/dist/compiler/training/broker/supervisor.d.ts +109 -0
  205. package/dist/compiler/training/broker/supervisor.js +173 -0
  206. package/dist/compiler/training/container/contract.d.ts +31 -0
  207. package/dist/compiler/training/container/contract.js +33 -0
  208. package/dist/compiler/training/container/index.d.ts +4 -0
  209. package/dist/compiler/training/container/index.js +2 -0
  210. package/dist/compiler/training/container/launch.d.ts +18 -0
  211. package/dist/compiler/training/container/launch.js +173 -0
  212. package/dist/compiler/training/container/prepare.d.ts +8 -0
  213. package/dist/compiler/training/container/prepare.js +80 -0
  214. package/dist/compiler/training/container/process.d.ts +14 -0
  215. package/dist/compiler/training/container/process.js +70 -0
  216. package/dist/compiler/training/container/security.d.ts +36 -0
  217. package/dist/compiler/training/container/security.js +58 -0
  218. package/dist/compiler/training/context.d.ts +7 -0
  219. package/dist/compiler/training/context.js +93 -0
  220. package/dist/compiler/training/contract.d.ts +142 -0
  221. package/dist/compiler/training/contract.js +34 -0
  222. package/dist/compiler/training/index.d.ts +4 -0
  223. package/dist/compiler/training/index.js +3 -0
  224. package/dist/compiler/training/preparation/assets/Dockerfile +98 -0
  225. package/dist/compiler/training/preparation/assets/package-lock.json +3787 -0
  226. package/dist/compiler/training/preparation/broker.d.ts +21 -0
  227. package/dist/compiler/training/preparation/broker.js +43 -0
  228. package/dist/compiler/training/preparation/contextModes.d.ts +12 -0
  229. package/dist/compiler/training/preparation/contextModes.js +38 -0
  230. package/dist/compiler/training/preparation/contract.d.ts +182 -0
  231. package/dist/compiler/training/preparation/contract.js +94 -0
  232. package/dist/compiler/training/preparation/copyAssets.d.ts +1 -0
  233. package/dist/compiler/training/preparation/copyAssets.js +8 -0
  234. package/dist/compiler/training/preparation/daimonParent.d.ts +42 -0
  235. package/dist/compiler/training/preparation/daimonParent.js +114 -0
  236. package/dist/compiler/training/preparation/files.d.ts +25 -0
  237. package/dist/compiler/training/preparation/files.js +85 -0
  238. package/dist/compiler/training/preparation/image.d.ts +28 -0
  239. package/dist/compiler/training/preparation/image.js +102 -0
  240. package/dist/compiler/training/preparation/index.d.ts +3 -0
  241. package/dist/compiler/training/preparation/index.js +2 -0
  242. package/dist/compiler/training/preparation/inputs.d.ts +23 -0
  243. package/dist/compiler/training/preparation/inputs.js +93 -0
  244. package/dist/compiler/training/preparation/prepare.d.ts +33 -0
  245. package/dist/compiler/training/preparation/prepare.js +186 -0
  246. package/dist/compiler/training/preparation/scratch.d.ts +19 -0
  247. package/dist/compiler/training/preparation/scratch.js +48 -0
  248. package/dist/compiler/training/repair/compatibility.d.ts +11 -0
  249. package/dist/compiler/training/repair/compatibility.js +34 -0
  250. package/dist/compiler/training/repair/contract.d.ts +506 -0
  251. package/dist/compiler/training/repair/contract.js +31 -0
  252. package/dist/compiler/training/repair/index.d.ts +3 -0
  253. package/dist/compiler/training/repair/index.js +3 -0
  254. package/dist/compiler/training/repair/prepare.d.ts +230 -0
  255. package/dist/compiler/training/repair/prepare.js +74 -0
  256. package/dist/compiler/training/repair/witness.d.ts +203 -0
  257. package/dist/compiler/training/repair/witness.js +42 -0
  258. package/dist/compiler/types.d.ts +2 -0
  259. package/dist/compiler/upProject.d.ts +26 -1
  260. package/dist/compiler/upProject.js +117 -178
  261. package/dist/compiler/upProjectHandoff.d.ts +62 -0
  262. package/dist/compiler/upProjectHandoff.js +204 -0
  263. package/dist/compiler/upReceipt.js +49 -4
  264. package/dist/compiler/updateProjectModels.js +1 -0
  265. package/dist/compiler/view/types.d.ts +1 -1
  266. package/dist/compiler/workspaceBundleArtifacts.d.ts +3 -0
  267. package/dist/compiler/workspaceBundleArtifacts.js +106 -0
  268. package/dist/compiler/workspaceResources.d.ts +4 -1
  269. package/dist/compiler/workspaceResources.js +12 -7
  270. package/dist/deployment/artifactsExportPlan.js +51 -1
  271. package/dist/deployment/canaryCutover.d.ts +42 -0
  272. package/dist/deployment/canaryCutover.js +140 -0
  273. package/dist/deployment/candidateDiagnostics.d.ts +15 -0
  274. package/dist/deployment/candidateDiagnostics.js +90 -0
  275. package/dist/deployment/dockerLogs.js +4 -1
  276. package/dist/deployment/dockerManager.js +9 -3
  277. package/dist/deployment/dockerProbeGateway.d.ts +17 -0
  278. package/dist/deployment/dockerProbeGateway.js +17 -2
  279. package/dist/deployment/downDeployment.d.ts +5 -0
  280. package/dist/deployment/downDeployment.js +109 -8
  281. package/dist/deployment/downReceiptTypes.d.ts +17 -2
  282. package/dist/deployment/downReceiptTypes.js +17 -2
  283. package/dist/deployment/index.d.ts +4 -0
  284. package/dist/deployment/index.js +4 -0
  285. package/dist/deployment/lifecycleCompletionContracts.d.ts +66 -0
  286. package/dist/deployment/lifecycleCompletionContracts.js +34 -0
  287. package/dist/deployment/lifecycleCompletionPaths.d.ts +4 -1
  288. package/dist/deployment/lifecycleCompletionPaths.js +3 -0
  289. package/dist/deployment/lifecycleCompletionPublication.d.ts +2 -0
  290. package/dist/deployment/lifecycleCompletionPublication.js +18 -4
  291. package/dist/deployment/lifecycleCompletionStore.d.ts +1 -1
  292. package/dist/deployment/lifecycleCompletionStore.js +7 -7
  293. package/dist/deployment/lifecycleUpRecords.d.ts +11 -0
  294. package/dist/deployment/lifecycleUpRecords.js +127 -0
  295. package/dist/deployment/native/AGENTS.md +11 -0
  296. package/dist/deployment/native/rename-noreplace-arm64 +0 -0
  297. package/dist/deployment/native/rename-noreplace-arm64.provenance.json +1 -0
  298. package/dist/deployment/native/rename-noreplace-x64 +0 -0
  299. package/dist/deployment/native/rename-noreplace-x64.provenance.json +1 -0
  300. package/dist/deployment/noReplaceActivation.d.ts +17 -0
  301. package/dist/deployment/noReplaceActivation.js +50 -0
  302. package/dist/deployment/organizationHandoffAuthorityFsBudget.d.ts +110 -0
  303. package/dist/deployment/organizationHandoffAuthorityFsBudget.js +156 -0
  304. package/dist/deployment/organizationHandoffAuthorityFsClient.js +82 -27
  305. package/dist/deployment/organizationHandoffAuthorityFsElection.d.ts +21 -0
  306. package/dist/deployment/organizationHandoffAuthorityFsElection.js +57 -0
  307. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +254 -108
  308. package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.d.ts +1 -0
  309. package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.js +16 -0
  310. package/dist/deployment/organizationHandoffAuthorityStore.js +14 -7
  311. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +2 -2
  312. package/dist/deployment/organizationHandoffAuthorityTypes.js +2 -1
  313. package/dist/deployment/organizationReady.d.ts +2 -0
  314. package/dist/deployment/organizationReady.js +36 -4
  315. package/dist/deployment/productStateClone.d.ts +43 -0
  316. package/dist/deployment/productStateClone.js +319 -0
  317. package/dist/deployment/upLifecycleRecoveryState.d.ts +23 -0
  318. package/dist/deployment/upLifecycleRecoveryState.js +12 -0
  319. package/dist/deployment/upReceiptTypes.d.ts +32 -6
  320. package/dist/deployment/upReceiptTypes.js +29 -2
  321. package/dist/deployment/workspaceResourceMigration.d.ts +55 -0
  322. package/dist/deployment/workspaceResourceMigration.js +315 -0
  323. package/dist/dev/project.d.ts +7 -0
  324. package/dist/dev/project.js +9 -0
  325. package/dist/distribution/consumeImage.d.ts +2 -0
  326. package/dist/distribution/consumeImage.js +98 -73
  327. package/dist/distribution/consumeImageDaimonDocker.d.ts +3 -0
  328. package/dist/distribution/consumeImageDaimonDocker.js +45 -0
  329. package/dist/distribution/consumeImageLifecycle.d.ts +17 -0
  330. package/dist/distribution/consumeImageLifecycle.js +231 -0
  331. package/dist/distribution/consumeImageSupport.d.ts +12 -0
  332. package/dist/distribution/consumeImageSupport.js +15 -0
  333. package/dist/distribution/distributionReportSchema.d.ts +11 -1
  334. package/dist/distribution/distributionReportSchema.js +15 -2
  335. package/dist/distribution/dockerRunner.d.ts +6 -1
  336. package/dist/distribution/dockerRunner.js +31 -4
  337. package/dist/distribution/imageRuntimeAuth.d.ts +9 -1
  338. package/dist/distribution/imageRuntimeAuth.js +70 -1
  339. package/dist/distribution/index.d.ts +1 -1
  340. package/dist/distribution/index.js +1 -1
  341. package/dist/distribution/preflight.js +5 -1
  342. package/dist/distribution/types.d.ts +14 -1
  343. package/dist/distribution/types.js +3 -0
  344. package/dist/evidenceExportHelper/boundedExecutor.d.ts +3 -0
  345. package/dist/evidenceExportHelper/boundedExecutor.js +33 -0
  346. package/dist/evidenceExportHelper/helperProgram.mjs +156 -0
  347. package/dist/evidenceExportHelper/index.d.ts +4 -0
  348. package/dist/evidenceExportHelper/index.js +4 -0
  349. package/dist/evidenceExportHelper/preparedAuthority.d.ts +64 -0
  350. package/dist/evidenceExportHelper/preparedAuthority.js +228 -0
  351. package/dist/evidenceExportHelper/preparedBuilder.d.ts +10 -0
  352. package/dist/evidenceExportHelper/preparedBuilder.js +183 -0
  353. package/dist/evidenceExportHelper/preparedBuilderTypes.d.ts +19 -0
  354. package/dist/evidenceExportHelper/preparedBuilderTypes.js +1 -0
  355. package/dist/evidenceExportHelper/recipe.d.ts +7 -0
  356. package/dist/evidenceExportHelper/recipe.js +83 -0
  357. package/dist/filesystem/io.d.ts +2 -0
  358. package/dist/filesystem/io.js +16 -1
  359. package/dist/manifest/executionSchemas.d.ts +27 -0
  360. package/dist/manifest/executionSchemas.js +21 -2
  361. package/dist/manifest/mcpSchemas.d.ts +1 -0
  362. package/dist/manifest/mcpSchemas.js +3 -0
  363. package/dist/manifest/renderSpawnfileNetworks.js +11 -0
  364. package/dist/manifest/renderSpawnfileWorkspace.js +5 -0
  365. package/dist/manifest/scheduleSchemas.d.ts +3 -1
  366. package/dist/manifest/scheduleSchemas.js +91 -5
  367. package/dist/manifest/schemas.d.ts +237 -12
  368. package/dist/manifest/schemas.js +5 -2
  369. package/dist/manifest/teamNetworkAccessSchemas.d.ts +5 -1
  370. package/dist/manifest/teamNetworkAccessSchemas.js +11 -0
  371. package/dist/manifest/teamNetworkAuthSchemas.d.ts +1 -1
  372. package/dist/manifest/teamNetworkSchemas.d.ts +17 -3
  373. package/dist/manifest/teamNetworkSchemas.js +19 -1
  374. package/dist/manifest/teamNetworkServerSchemas.d.ts +8 -3
  375. package/dist/manifest/teamNetworkServerSchemas.js +18 -2
  376. package/dist/manifest/workspaceSchemas.d.ts +16 -0
  377. package/dist/manifest/workspaceSchemas.js +11 -0
  378. package/dist/report/types.d.ts +34 -4
  379. package/dist/runtime/common.d.ts +28 -1
  380. package/dist/runtime/common.js +33 -3
  381. package/dist/runtime/container.js +49 -33
  382. package/dist/runtime/daimon/adapter.d.ts +14 -0
  383. package/dist/runtime/daimon/adapter.js +243 -0
  384. package/dist/runtime/daimon/attention.d.ts +8 -0
  385. package/dist/runtime/daimon/attention.js +32 -0
  386. package/dist/runtime/daimon/config.d.ts +25 -0
  387. package/dist/runtime/daimon/config.js +272 -0
  388. package/dist/runtime/daimon/contractManifest.d.ts +295 -0
  389. package/dist/runtime/daimon/contractManifest.js +319 -0
  390. package/dist/runtime/daimon/grokModel.d.ts +19 -0
  391. package/dist/runtime/daimon/grokModel.js +33 -0
  392. package/dist/runtime/daimon/grokWorkerConfigBytes.d.ts +26 -0
  393. package/dist/runtime/daimon/grokWorkerConfigBytes.js +36 -0
  394. package/dist/runtime/daimon/grokWorkerContract.d.ts +22 -0
  395. package/dist/runtime/daimon/grokWorkerContract.js +48 -0
  396. package/dist/runtime/daimon/memory.d.ts +57 -0
  397. package/dist/runtime/daimon/memory.js +125 -0
  398. package/dist/runtime/daimon/runAuth.d.ts +51 -0
  399. package/dist/runtime/daimon/runAuth.js +279 -0
  400. package/dist/runtime/daimon/runtimeIdentity.d.ts +22 -0
  401. package/dist/runtime/daimon/runtimeIdentity.js +22 -0
  402. package/dist/runtime/daimon/scheduleAuthority.d.ts +3 -0
  403. package/dist/runtime/daimon/scheduleAuthority.js +17 -0
  404. package/dist/runtime/index.d.ts +4 -0
  405. package/dist/runtime/index.js +4 -0
  406. package/dist/runtime/install.d.ts +3 -0
  407. package/dist/runtime/install.js +3 -0
  408. package/dist/runtime/localDaimonAuthority.d.ts +11 -0
  409. package/dist/runtime/localDaimonAuthority.js +77 -0
  410. package/dist/runtime/mnemeMcp.d.ts +13 -0
  411. package/dist/runtime/mnemeMcp.js +26 -0
  412. package/dist/runtime/openclaw/adapter.js +2 -2
  413. package/dist/runtime/pi/adapter.d.ts +0 -1
  414. package/dist/runtime/pi/adapter.js +2 -6
  415. package/dist/runtime/pi/appCliSource.js +1 -1
  416. package/dist/runtime/pi/appScheduleSource.js +6 -2
  417. package/dist/runtime/pi/appTemplateTypes.d.ts +1 -1
  418. package/dist/runtime/picoclaw/adapter.js +2 -2
  419. package/dist/runtime/registry.d.ts +3 -0
  420. package/dist/runtime/registry.js +19 -2
  421. package/dist/runtime/scheduleUtils.d.ts +1 -0
  422. package/dist/runtime/scheduleUtils.js +5 -1
  423. package/dist/runtime/types.d.ts +25 -0
  424. package/dist/runtime/usageLedger.d.ts +158 -0
  425. package/dist/runtime/usageLedger.js +269 -0
  426. package/dist/runtime/usageLedgerRead.d.ts +48 -0
  427. package/dist/runtime/usageLedgerRead.js +102 -0
  428. package/dist/runtime/usageRequestLedger.d.ts +42 -0
  429. package/dist/runtime/usageRequestLedger.js +72 -0
  430. package/dist/shared/daimonCodexDocker.d.ts +32 -0
  431. package/dist/shared/daimonCodexDocker.js +120 -0
  432. package/dist/shared/daimonGrokSeccompProfile.d.ts +10 -0
  433. package/dist/shared/daimonGrokSeccompProfile.js +11 -0
  434. package/dist/shared/index.d.ts +2 -0
  435. package/dist/shared/index.js +2 -0
  436. package/dist/shared/types.d.ts +1 -1
  437. package/dist/shared/volumeNames.d.ts +6 -0
  438. package/dist/shared/volumeNames.js +14 -0
  439. package/dist/target/dockerArtifactsProvider.js +34 -7
  440. package/dist/target/dockerBaseImage.d.ts +2 -0
  441. package/dist/target/dockerBaseImage.js +11 -0
  442. package/dist/target/dockerCommandExecutor.d.ts +11 -0
  443. package/dist/target/dockerCommandExecutor.js +53 -2
  444. package/dist/target/dockerCommandExecutorCore.d.ts +2 -1
  445. package/dist/target/dockerCommandExecutorCore.js +4 -2
  446. package/dist/target/dockerPublicArtifactSnapshot.d.ts +3 -3
  447. package/dist/target/dockerPublicArtifactSnapshot.js +17 -33
  448. package/dist/target/dockerTarget.d.ts +1 -0
  449. package/dist/target/dockerTargetBinding.d.ts +1 -2
  450. package/dist/target/dockerTargetBinding.js +2 -3
  451. package/dist/target/dockerTargetExecFile.d.ts +19 -0
  452. package/dist/target/dockerTargetExecFile.js +194 -0
  453. package/dist/target/dockerWorldServiceProvider.d.ts +4 -0
  454. package/dist/target/dockerWorldServiceProvider.js +13 -1
  455. package/dist/target/evidenceExport.d.ts +3 -1
  456. package/dist/target/evidenceExport.js +12 -3
  457. package/dist/target/evidenceExportOperationsTestKit.js +3 -3
  458. package/dist/target/evidenceExportProvider.d.ts +2 -0
  459. package/dist/target/evidenceExportProvider.js +15 -5
  460. package/dist/target/publicArtifactSnapshot.d.ts +31 -0
  461. package/dist/target/publicArtifactSnapshot.js +37 -3
  462. package/examples/README.md +45 -0
  463. package/examples/agent-with-subagents/AGENTS.md +3 -0
  464. package/examples/agent-with-subagents/Spawnfile +30 -0
  465. package/examples/agent-with-subagents/subagents/critic/AGENTS.md +3 -0
  466. package/examples/agent-with-subagents/subagents/critic/Spawnfile +15 -0
  467. package/examples/agent-with-subagents/subagents/researcher/AGENTS.md +3 -0
  468. package/examples/agent-with-subagents/subagents/researcher/Spawnfile +17 -0
  469. package/examples/daimon-org/Spawnfile +68 -0
  470. package/examples/daimon-org/TEAM.md +4 -0
  471. package/examples/daimon-org/agents/mapper/AGENTS.md +4 -0
  472. package/examples/daimon-org/agents/mapper/Spawnfile +37 -0
  473. package/examples/daimon-org/shared/skills/file-note/SKILL.md +9 -0
  474. package/examples/daimon-org/teams/review/Spawnfile +53 -0
  475. package/examples/daimon-org/teams/review/agents/reviewer/AGENTS.md +4 -0
  476. package/examples/daimon-org/teams/review/agents/reviewer/Spawnfile +37 -0
  477. package/examples/daimon-public-host/AGENTS.md +3 -0
  478. package/examples/daimon-public-host/Spawnfile +21 -0
  479. package/examples/distribution-org/Spawnfile +43 -0
  480. package/examples/distribution-org/TEAM.md +4 -0
  481. package/examples/distribution-org/agents/coordinator/AGENTS.md +1 -0
  482. package/examples/distribution-org/agents/coordinator/Spawnfile +20 -0
  483. package/examples/distribution-org/agents/researcher/AGENTS.md +1 -0
  484. package/examples/distribution-org/agents/researcher/Spawnfile +20 -0
  485. package/examples/jungian-daimon-org/Spawnfile +41 -0
  486. package/examples/jungian-daimon-org/TEAM.md +21 -0
  487. package/examples/jungian-daimon-org/teams/luna/Spawnfile +47 -0
  488. package/examples/jungian-daimon-org/teams/luna/TEAM.md +4 -0
  489. package/examples/jungian-daimon-org/teams/luna/agents/animus/AGENTS.md +10 -0
  490. package/examples/jungian-daimon-org/teams/luna/agents/animus/Spawnfile +33 -0
  491. package/examples/jungian-daimon-org/teams/luna/agents/representative/AGENTS.md +21 -0
  492. package/examples/jungian-daimon-org/teams/luna/agents/representative/Spawnfile +30 -0
  493. package/examples/jungian-daimon-org/teams/luna/agents/shadow/AGENTS.md +10 -0
  494. package/examples/jungian-daimon-org/teams/luna/agents/shadow/Spawnfile +33 -0
  495. package/examples/jungian-daimon-org/teams/selene/Spawnfile +47 -0
  496. package/examples/jungian-daimon-org/teams/selene/TEAM.md +4 -0
  497. package/examples/jungian-daimon-org/teams/selene/agents/animus/AGENTS.md +10 -0
  498. package/examples/jungian-daimon-org/teams/selene/agents/animus/Spawnfile +33 -0
  499. package/examples/jungian-daimon-org/teams/selene/agents/representative/AGENTS.md +19 -0
  500. package/examples/jungian-daimon-org/teams/selene/agents/representative/Spawnfile +33 -0
  501. package/examples/jungian-daimon-org/teams/selene/agents/shadow/AGENTS.md +10 -0
  502. package/examples/jungian-daimon-org/teams/selene/agents/shadow/Spawnfile +30 -0
  503. package/examples/mixed-runtime-org/Spawnfile +71 -0
  504. package/examples/mixed-runtime-org/TEAM.md +8 -0
  505. package/examples/mixed-runtime-org/agents/analyst/AGENTS.md +8 -0
  506. package/examples/mixed-runtime-org/agents/analyst/Spawnfile +27 -0
  507. package/examples/mixed-runtime-org/agents/conductor/AGENTS.md +8 -0
  508. package/examples/mixed-runtime-org/agents/conductor/Spawnfile +27 -0
  509. package/examples/mixed-runtime-org/agents/localist/AGENTS.md +7 -0
  510. package/examples/mixed-runtime-org/agents/localist/Spawnfile +50 -0
  511. package/examples/moltnet-team-chat/Spawnfile +43 -0
  512. package/examples/moltnet-team-chat/TEAM.md +5 -0
  513. package/examples/moltnet-team-chat/agents/coordinator/AGENTS.md +9 -0
  514. package/examples/moltnet-team-chat/agents/coordinator/Spawnfile +26 -0
  515. package/examples/moltnet-team-chat/teams/analysis/Spawnfile +23 -0
  516. package/examples/moltnet-team-chat/teams/analysis/TEAM.md +3 -0
  517. package/examples/moltnet-team-chat/teams/analysis/agents/observer/AGENTS.md +5 -0
  518. package/examples/moltnet-team-chat/teams/analysis/agents/observer/Spawnfile +19 -0
  519. package/examples/moltnet-team-chat/teams/analysis/agents/representative/AGENTS.md +5 -0
  520. package/examples/moltnet-team-chat/teams/analysis/agents/representative/Spawnfile +19 -0
  521. package/examples/moltnet-team-chat/teams/field/Spawnfile +41 -0
  522. package/examples/moltnet-team-chat/teams/field/TEAM.md +3 -0
  523. package/examples/moltnet-team-chat/teams/field/agents/observer/AGENTS.md +5 -0
  524. package/examples/moltnet-team-chat/teams/field/agents/observer/Spawnfile +26 -0
  525. package/examples/moltnet-team-chat/teams/field/agents/representative/AGENTS.md +11 -0
  526. package/examples/moltnet-team-chat/teams/field/agents/representative/Spawnfile +26 -0
  527. package/examples/single-agent/AGENTS.md +3 -0
  528. package/examples/single-agent/HEARTBEAT.md +3 -0
  529. package/examples/single-agent/IDENTITY.md +3 -0
  530. package/examples/single-agent/MEMORY.md +3 -0
  531. package/examples/single-agent/SOUL.md +3 -0
  532. package/examples/single-agent/Spawnfile +41 -0
  533. package/examples/single-agent/skills/web_search/SKILL.md +6 -0
  534. package/moltnet-releases.json +5 -4
  535. package/package.json +36 -9
  536. package/runtimes.yaml +5 -2
  537. package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +0 -13
  538. package/dist/cli/targetWorldClockCrossProcess.test-helper.js +0 -109
  539. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +0 -8
  540. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +0 -60
  541. package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +0 -8
  542. package/dist/deployment/simfileFixtureBoundary.test-helper.js +0 -103
  543. package/dist/ownership/simfileRunOperatorInputs.d.ts +0 -103
  544. package/dist/ownership/simfileRunOperatorInputs.js +0 -139
  545. package/dist/target/cleanupRunDocker.test-helper.d.ts +0 -67
  546. package/dist/target/cleanupRunDocker.test-helper.js +0 -238
@@ -16,7 +16,9 @@ export interface EvidenceExportOperationsOptions {
16
16
  readonly context: unknown;
17
17
  readonly executor: DockerResourceExecutor;
18
18
  readonly exportExecutor: DockerEvidenceExportExecutor;
19
- readonly helperArtifactBundle: unknown;
19
+ readonly helperArtifactBundle?: unknown;
20
+ /** Spawnfile-owned local config identity. Never a public provider field. */
21
+ readonly localHelper?: unknown;
20
22
  readonly helperArtifactManifestDigest: unknown;
21
23
  readonly helperArtifactContract: unknown;
22
24
  readonly artifactIdentityStore: DockerArtifactIdentityStore;
@@ -35,14 +35,21 @@ const options = (raw) => {
35
35
  return fail();
36
36
  const timeoutMs = typeof raw.timeoutMs === "number" ? raw.timeoutMs : 10_000;
37
37
  try {
38
+ if (typeof raw.helperArtifactManifestDigest !== "string" || !/^sha256:[a-f0-9]{64}$/u.test(raw.helperArtifactManifestDigest) || raw.helperArtifactContract !== EVIDENCE_EXPORT_HELPER_CONTRACT)
39
+ return fail();
40
+ const source = raw.localHelper;
41
+ const localHelper = source === undefined ? undefined : createEvidenceExportHelper({ artifactManifestDigest: source.artifactManifestDigest, imageDigest: source.image_digest, imageReference: source.image_reference, resultHandle: source.result_handle });
42
+ if (localHelper) {
43
+ if (raw.helperArtifactBundle !== undefined || localHelper.artifactManifestDigest !== raw.helperArtifactManifestDigest)
44
+ return fail();
45
+ return { authorityStore: raw.authorityStore, context: raw.context, executor: raw.executor, exportExecutor: raw.exportExecutor, localHelper, helperArtifactManifestDigest: raw.helperArtifactManifestDigest, helperArtifactContract: EVIDENCE_EXPORT_HELPER_CONTRACT, artifactIdentityStore: raw.artifactIdentityStore, journal: raw.journal, signal: raw.signal, timeoutMs, testHooks: raw.testHooks };
46
+ }
38
47
  const rawBundle = raw.helperArtifactBundle;
39
48
  if (!rawBundle || typeof rawBundle !== "object" || Array.isArray(rawBundle) || Object.keys(rawBundle).sort().join("\0") !== "operation_handle\0request_digest\0result_handle")
40
49
  return fail();
41
50
  const bundle = rawBundle;
42
51
  const helperArtifactBundle = Object.freeze({ operationHandle: parseOpaqueTargetHandle(bundle.operation_handle), requestDigest: (() => { if (typeof bundle.request_digest !== "string" || !/^sha256:[a-f0-9]{64}$/u.test(bundle.request_digest))
43
52
  return fail(); return bundle.request_digest; })(), resultHandle: parseOpaqueTargetHandle(bundle.result_handle) });
44
- if (typeof raw.helperArtifactManifestDigest !== "string" || !/^sha256:[a-f0-9]{64}$/u.test(raw.helperArtifactManifestDigest) || raw.helperArtifactContract !== EVIDENCE_EXPORT_HELPER_CONTRACT)
45
- return fail();
46
53
  return { authorityStore: raw.authorityStore, context: raw.context, executor: raw.executor, exportExecutor: raw.exportExecutor, helperArtifactBundle, helperArtifactManifestDigest: raw.helperArtifactManifestDigest, helperArtifactContract: EVIDENCE_EXPORT_HELPER_CONTRACT, artifactIdentityStore: raw.artifactIdentityStore, journal: raw.journal, signal: raw.signal, timeoutMs, testHooks: raw.testHooks };
47
54
  }
48
55
  catch {
@@ -78,7 +85,9 @@ const inspectAuthority = async (authority, input) => {
78
85
  return fail();
79
86
  };
80
87
  const helperFor = async (value, input) => {
81
- const bundle = input.helperArtifactBundle;
88
+ if (input.localHelper)
89
+ return input.localHelper;
90
+ const bundle = input.helperArtifactBundle ?? fail();
82
91
  const binding = await input.artifactIdentityStore.resolveOperation(bundle.operationHandle, bundle.requestDigest);
83
92
  const journal = await input.journal.read();
84
93
  const completed = binding ? await input.journal.resolveCompletedReceipt({ operationHandle: binding.operationHandle, requestDigest: binding.requestDigest }) : null;
@@ -1,7 +1,7 @@
1
1
  import { mkdtemp, realpath, rm } from "node:fs/promises";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
- import { EVIDENCE_EXPORT_MOUNT, EVIDENCE_EXPORT_HELPER_CMD, EVIDENCE_EXPORT_HELPER_CONTRACT, EVIDENCE_EXPORT_HELPER_CONTRACT_LABEL, EVIDENCE_EXPORT_HELPER_ENTRYPOINT, EVIDENCE_EXPORT_HELPER_USER, createEvidenceExportHelper, parseEvidenceVolumeAuthority } from "./evidenceExportProvider.js";
4
+ import { EVIDENCE_EXPORT_MOUNT, EVIDENCE_EXPORT_HELPER_CMD, EVIDENCE_EXPORT_HELPER_CONTRACT, EVIDENCE_EXPORT_HELPER_CONTRACT_LABEL, EVIDENCE_EXPORT_HELPER_ENTRYPOINT, EVIDENCE_EXPORT_HELPER_ENV, EVIDENCE_EXPORT_HELPER_USER, createEvidenceExportHelper, parseEvidenceVolumeAuthority } from "./evidenceExportProvider.js";
5
5
  import { createDockerArtifactSpec, initializeDockerArtifactIdentityStore } from "./dockerArtifactsProvider.js";
6
6
  import { initializeEvidenceExportAuthorityStore } from "./evidenceExportStore.js";
7
7
  import { createDockerResourceSpec } from "./dockerResourcesProvider.js";
@@ -92,7 +92,7 @@ export const runLifecycleExport = async (input = {}) => {
92
92
  Entrypoint: EVIDENCE_EXPORT_HELPER_ENTRYPOINT,
93
93
  Cmd: EVIDENCE_EXPORT_HELPER_CMD,
94
94
  Labels: { [EVIDENCE_EXPORT_HELPER_CONTRACT_LABEL]: "v1" },
95
- Env: null,
95
+ Env: ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],
96
96
  ExposedPorts: null,
97
97
  Healthcheck: null,
98
98
  User: EVIDENCE_EXPORT_HELPER_USER,
@@ -268,7 +268,7 @@ export const helperProjection = (args, volumeName, imageLabels, mutate) => {
268
268
  Config: {
269
269
  Entrypoint: EVIDENCE_EXPORT_HELPER_ENTRYPOINT,
270
270
  Cmd: EVIDENCE_EXPORT_HELPER_CMD,
271
- Env: null,
271
+ Env: EVIDENCE_EXPORT_HELPER_ENV,
272
272
  ExposedPorts: null,
273
273
  Healthcheck: null,
274
274
  Image: image,
@@ -6,6 +6,8 @@ export declare const EVIDENCE_EXPORT_HELPER_CONTRACT_VERSION: "v1";
6
6
  export declare const EVIDENCE_EXPORT_HELPER_CONTRACT_LABEL: "spawnfile.target.evidence-export.helper-contract";
7
7
  export declare const EVIDENCE_EXPORT_HELPER_ENTRYPOINT: readonly string[];
8
8
  export declare const EVIDENCE_EXPORT_HELPER_CMD: readonly string[];
9
+ export declare const EVIDENCE_EXPORT_HELPER_PATH: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
10
+ export declare const EVIDENCE_EXPORT_HELPER_ENV: readonly string[];
9
11
  export declare const EVIDENCE_EXPORT_HELPER_USER: "65534:65534";
10
12
  export interface DockerEvidenceExportExecutor {
11
13
  (file: string, args: readonly string[], options: {
@@ -10,6 +10,10 @@ export const EVIDENCE_EXPORT_HELPER_CONTRACT_VERSION = "v1";
10
10
  export const EVIDENCE_EXPORT_HELPER_CONTRACT_LABEL = "spawnfile.target.evidence-export.helper-contract";
11
11
  export const EVIDENCE_EXPORT_HELPER_ENTRYPOINT = Object.freeze(["/bin/spawnfile-export-helper"]);
12
12
  export const EVIDENCE_EXPORT_HELPER_CMD = Object.freeze([]);
13
+ export const EVIDENCE_EXPORT_HELPER_PATH = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
14
+ export const EVIDENCE_EXPORT_HELPER_ENV = Object.freeze([
15
+ `PATH=${EVIDENCE_EXPORT_HELPER_PATH}`,
16
+ ]);
13
17
  export const EVIDENCE_EXPORT_HELPER_USER = "65534:65534";
14
18
  const DIGEST = /^sha256:[a-f0-9]{64}$/u;
15
19
  const NAME = /^spfe_[a-f0-9]{58}$/u;
@@ -37,8 +41,11 @@ const json = (raw) => { if (!utf8(raw))
37
41
  catch {
38
42
  return fail();
39
43
  } };
44
+ const exactHelperEnv = (raw) => Array.isArray(raw)
45
+ && raw.length === 1 && raw[0] === EVIDENCE_EXPORT_HELPER_ENV[0];
40
46
  export const createEvidenceExportHelper = (raw) => {
41
- if (typeof raw.artifactManifestDigest !== "string" || !DIGEST.test(raw.artifactManifestDigest) || typeof raw.imageDigest !== "string" || !DIGEST.test(raw.imageDigest) || typeof raw.imageReference !== "string" || !isImmutableDockerImageReference(raw.imageReference) || !raw.imageReference.endsWith(`@${raw.imageDigest}`))
47
+ const localConfig = raw.imageReference === raw.imageDigest;
48
+ if (typeof raw.artifactManifestDigest !== "string" || !DIGEST.test(raw.artifactManifestDigest) || typeof raw.imageDigest !== "string" || !DIGEST.test(raw.imageDigest) || typeof raw.imageReference !== "string" || !localConfig && (!isImmutableDockerImageReference(raw.imageReference) || !raw.imageReference.endsWith(`@${raw.imageDigest}`)))
42
49
  return fail();
43
50
  return Object.freeze({ artifactManifestDigest: raw.artifactManifestDigest, image_digest: raw.imageDigest, image_reference: raw.imageReference, result_handle: parseOpaqueTargetHandle(raw.resultHandle) });
44
51
  };
@@ -91,7 +98,8 @@ export const parseEvidenceExportImageInspection = (stdout, helper) => {
91
98
  if (!Array.isArray(value) || value.length !== 1 || !exact(value[0], ["Config", "RepoDigests"]))
92
99
  return fail();
93
100
  const image = value[0];
94
- if (!Array.isArray(image.RepoDigests) || image.RepoDigests.length < 1 || image.RepoDigests.length > 32 || image.RepoDigests.some((value) => !isImmutableDockerImageReference(value)))
101
+ const localConfig = prepared.image_reference === prepared.image_digest;
102
+ if (!localConfig && (!Array.isArray(image.RepoDigests) || image.RepoDigests.length < 1 || image.RepoDigests.length > 32 || image.RepoDigests.some((value) => !isImmutableDockerImageReference(value))))
95
103
  return fail();
96
104
  if (!exact(image.Config, ["Cmd", "Entrypoint", "Env", "ExposedPorts", "Healthcheck", "Labels", "User", "Volumes"]))
97
105
  return fail();
@@ -105,9 +113,10 @@ export const parseEvidenceExportImageInspection = (stdout, helper) => {
105
113
  return fail();
106
114
  if (config.User !== EVIDENCE_EXPORT_HELPER_USER)
107
115
  return fail();
108
- if (config.Env !== null || config.ExposedPorts !== null || config.Healthcheck !== null || config.Volumes !== null)
116
+ if (!exactHelperEnv(config.Env)
117
+ || config.ExposedPorts !== null || config.Healthcheck !== null || config.Volumes !== null)
109
118
  return fail();
110
- if (!image.RepoDigests.includes(prepared.image_reference))
119
+ if (!localConfig && !image.RepoDigests.includes(prepared.image_reference))
111
120
  return fail();
112
121
  return { labels: Object.freeze({ ...labels }) };
113
122
  };
@@ -140,7 +149,8 @@ export const isExpectedEvidenceExportHelper = (stdout, spec) => {
140
149
  return item.Name === `/${spec.containerName}` && config.Image === spec.imageReference
141
150
  && JSON.stringify(config.Entrypoint) === JSON.stringify(EVIDENCE_EXPORT_HELPER_ENTRYPOINT)
142
151
  && (cmd === null || (Array.isArray(cmd) && cmd.length === 0))
143
- && config.Env === null && config.ExposedPorts === null && config.Healthcheck === null && config.Volumes === null
152
+ && exactHelperEnv(config.Env)
153
+ && config.ExposedPorts === null && config.Healthcheck === null && config.Volumes === null
144
154
  && config.User === EVIDENCE_EXPORT_HELPER_USER
145
155
  && exact(config.Labels, Object.keys(expectedLabels))
146
156
  && Object.entries(expectedLabels).every(([key, value]) => config.Labels !== null && config.Labels[key] === value)
@@ -1,8 +1,10 @@
1
1
  import { z } from "zod";
2
2
  export declare const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_REQUEST_VERSION: "spawnfile.target-public-artifact-snapshot.request.v1";
3
3
  export declare const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_VERSION: "spawnfile.target-public-artifact-snapshot.v1";
4
+ export declare const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_NOT_PRESENT_VERSION: "spawnfile.target-public-artifact-snapshot.not-present.v1";
4
5
  export declare const TARGET_PUBLIC_ARTIFACT_ROOT: "/tmp/spawnfile-public";
5
6
  export declare const MAX_TARGET_PUBLIC_ARTIFACT_BYTES = 131072;
7
+ export declare const isTargetPublicArtifactPath: (value: unknown) => value is string;
6
8
  export declare const targetPublicArtifactSnapshotRequestSchema: z.ZodObject<{
7
9
  artifact: z.ZodObject<{
8
10
  id: z.ZodString;
@@ -29,13 +31,42 @@ export declare const targetPublicArtifactSnapshotSchema: z.ZodObject<{
29
31
  size_bytes: z.ZodNumber;
30
32
  version: z.ZodLiteral<"spawnfile.target-public-artifact-snapshot.v1">;
31
33
  }, z.core.$strict>;
34
+ export declare const targetPublicArtifactSnapshotNotPresentSchema: z.ZodObject<{
35
+ artifact_id: z.ZodString;
36
+ request_digest: z.ZodString;
37
+ run_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
38
+ status: z.ZodLiteral<"not_present">;
39
+ version: z.ZodLiteral<"spawnfile.target-public-artifact-snapshot.not-present.v1">;
40
+ }, z.core.$strict>;
41
+ export declare const targetPublicArtifactSnapshotResultSchema: z.ZodUnion<readonly [z.ZodObject<{
42
+ artifact_id: z.ZodString;
43
+ content_base64: z.ZodString;
44
+ content_digest: z.ZodString;
45
+ media_type: z.ZodString;
46
+ request_digest: z.ZodString;
47
+ run_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
48
+ size_bytes: z.ZodNumber;
49
+ version: z.ZodLiteral<"spawnfile.target-public-artifact-snapshot.v1">;
50
+ }, z.core.$strict>, z.ZodObject<{
51
+ artifact_id: z.ZodString;
52
+ request_digest: z.ZodString;
53
+ run_id: z.ZodPipe<z.ZodString, z.ZodTransform<import("./contracts.js").RunId, string>>;
54
+ status: z.ZodLiteral<"not_present">;
55
+ version: z.ZodLiteral<"spawnfile.target-public-artifact-snapshot.not-present.v1">;
56
+ }, z.core.$strict>]>;
32
57
  export type TargetPublicArtifactSnapshotRequest = z.infer<typeof targetPublicArtifactSnapshotRequestSchema>;
33
58
  export type TargetPublicArtifactSnapshot = z.infer<typeof targetPublicArtifactSnapshotSchema>;
59
+ export type TargetPublicArtifactSnapshotNotPresent = z.infer<typeof targetPublicArtifactSnapshotNotPresentSchema>;
60
+ export type TargetPublicArtifactSnapshotResult = z.infer<typeof targetPublicArtifactSnapshotResultSchema>;
34
61
  export declare const parseTargetPublicArtifactSnapshotRequest: (raw: unknown) => TargetPublicArtifactSnapshotRequest;
35
62
  export declare const parseTargetPublicArtifactSnapshot: (raw: unknown) => TargetPublicArtifactSnapshot;
63
+ export declare const parseTargetPublicArtifactSnapshotNotPresent: (raw: unknown) => TargetPublicArtifactSnapshotNotPresent;
64
+ export declare const parseTargetPublicArtifactSnapshotResult: (raw: unknown) => TargetPublicArtifactSnapshotResult;
36
65
  export declare const createTargetPublicArtifactSnapshotRequestDigest: (raw: unknown) => `sha256:${string}`;
37
66
  export declare const createTargetPublicArtifactSnapshot: (input: {
38
67
  readonly content: Uint8Array;
39
68
  readonly request: TargetPublicArtifactSnapshotRequest;
40
69
  }) => TargetPublicArtifactSnapshot;
70
+ export declare const createTargetPublicArtifactSnapshotNotPresent: (raw: unknown) => TargetPublicArtifactSnapshotNotPresent;
41
71
  export declare const createCanonicalTargetPublicArtifactSnapshotBytes: (raw: unknown) => string;
72
+ export declare const createCanonicalTargetPublicArtifactSnapshotResultBytes: (raw: unknown) => string;
@@ -5,6 +5,7 @@ import { z } from "zod";
5
5
  import { assertOrdinaryJsonGraph, opaqueTargetHandleSchema, runIdSchema, selectedTargetSchema } from "./contracts.js";
6
6
  export const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_REQUEST_VERSION = "spawnfile.target-public-artifact-snapshot.request.v1";
7
7
  export const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_VERSION = "spawnfile.target-public-artifact-snapshot.v1";
8
+ export const TARGET_PUBLIC_ARTIFACT_SNAPSHOT_NOT_PRESENT_VERSION = "spawnfile.target-public-artifact-snapshot.not-present.v1";
8
9
  export const TARGET_PUBLIC_ARTIFACT_ROOT = "/tmp/spawnfile-public";
9
10
  export const MAX_TARGET_PUBLIC_ARTIFACT_BYTES = 131_072;
10
11
  const digestSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/u);
@@ -12,10 +13,13 @@ const identifierSchema = z.string().regex(/^[a-z][a-z0-9_-]{0,63}$/u);
12
13
  const mediaTypeSchema = z.string()
13
14
  .max(127)
14
15
  .regex(/^[a-z][a-z0-9!#$&^_.+-]*\/[a-z0-9][a-z0-9!#$&^_.+-]*$/u);
16
+ const PUBLIC_ARTIFACT_PATH = /^\/tmp\/spawnfile-public\/[A-Za-z0-9][A-Za-z0-9._-]*$/u;
15
17
  const publicPathSchema = z.string().max(255)
16
- .regex(/^\/tmp\/spawnfile-public\/[A-Za-z0-9][A-Za-z0-9._/-]*$/u)
17
- .refine((value) => !value.includes("//") && !value.endsWith("/")
18
- && !value.split("/").some((part) => part === "." || part === ".."));
18
+ // This is intentionally a direct child of the isolated public tmpfs. A
19
+ // nested path would require a recursive openat-style resolver to keep every
20
+ // parent below the mount while an untrusted world is writing its output.
21
+ .regex(PUBLIC_ARTIFACT_PATH);
22
+ export const isTargetPublicArtifactPath = (value) => typeof value === "string" && value.length <= 255 && PUBLIC_ARTIFACT_PATH.test(value);
19
23
  export const targetPublicArtifactSnapshotRequestSchema = z.object({
20
24
  artifact: z.object({
21
25
  id: identifierSchema,
@@ -53,6 +57,17 @@ export const targetPublicArtifactSnapshotSchema = z.object({
53
57
  context.addIssue({ code: z.ZodIssueCode.custom, message: "artifact content mismatch" });
54
58
  }
55
59
  });
60
+ export const targetPublicArtifactSnapshotNotPresentSchema = z.object({
61
+ artifact_id: identifierSchema,
62
+ request_digest: digestSchema,
63
+ run_id: runIdSchema,
64
+ status: z.literal("not_present"),
65
+ version: z.literal(TARGET_PUBLIC_ARTIFACT_SNAPSHOT_NOT_PRESENT_VERSION)
66
+ }).strict();
67
+ export const targetPublicArtifactSnapshotResultSchema = z.union([
68
+ targetPublicArtifactSnapshotSchema,
69
+ targetPublicArtifactSnapshotNotPresentSchema
70
+ ]);
56
71
  const canonicalJsonValue = (value) => {
57
72
  if (Array.isArray(value))
58
73
  return `[${value.map(canonicalJsonValue).join(",")}]`;
@@ -126,6 +141,14 @@ export const parseTargetPublicArtifactSnapshot = (raw) => {
126
141
  assertOrdinaryPublicArtifactSnapshot(raw);
127
142
  return targetPublicArtifactSnapshotSchema.parse(raw);
128
143
  };
144
+ export const parseTargetPublicArtifactSnapshotNotPresent = (raw) => {
145
+ assertOrdinaryPublicArtifactSnapshot(raw);
146
+ return targetPublicArtifactSnapshotNotPresentSchema.parse(raw);
147
+ };
148
+ export const parseTargetPublicArtifactSnapshotResult = (raw) => {
149
+ assertOrdinaryPublicArtifactSnapshot(raw);
150
+ return targetPublicArtifactSnapshotResultSchema.parse(raw);
151
+ };
129
152
  export const createTargetPublicArtifactSnapshotRequestDigest = (raw) => `sha256:${createHash("sha256")
130
153
  .update("spawnfile.target-public-artifact-snapshot.request.v1\0", "utf8")
131
154
  .update(canonicalJson(parseTargetPublicArtifactSnapshotRequest(raw)), "utf8")
@@ -147,4 +170,15 @@ export const createTargetPublicArtifactSnapshot = (input) => {
147
170
  version: TARGET_PUBLIC_ARTIFACT_SNAPSHOT_VERSION
148
171
  });
149
172
  };
173
+ export const createTargetPublicArtifactSnapshotNotPresent = (raw) => {
174
+ const request = parseTargetPublicArtifactSnapshotRequest(raw);
175
+ return parseTargetPublicArtifactSnapshotNotPresent({
176
+ artifact_id: request.artifact.id,
177
+ request_digest: createTargetPublicArtifactSnapshotRequestDigest(request),
178
+ run_id: request.run_id,
179
+ status: "not_present",
180
+ version: TARGET_PUBLIC_ARTIFACT_SNAPSHOT_NOT_PRESENT_VERSION
181
+ });
182
+ };
150
183
  export const createCanonicalTargetPublicArtifactSnapshotBytes = (raw) => canonicalJsonValue(parseTargetPublicArtifactSnapshot(raw));
184
+ export const createCanonicalTargetPublicArtifactSnapshotResultBytes = (raw) => canonicalJsonValue(parseTargetPublicArtifactSnapshotResult(raw));
@@ -0,0 +1,45 @@
1
+ # Example and Test Projects
2
+
3
+ Authored Spawnfile inputs live in two top-level directories:
4
+
5
+ - `examples/` — showcase org projects meant to be read as reference layouts.
6
+ - `fixtures/` — test-only org projects (and `fixtures/support/` executable
7
+ test-support code).
8
+
9
+ They exercise portable compiler contracts and opt-in runtime integration paths;
10
+ product code must not contain fixture-specific behavior.
11
+
12
+ ## Showcase Examples (`examples/`)
13
+
14
+ | Project | Contract |
15
+ |---|---|
16
+ | `single-agent` | Full agent workspace, docs, skills, MCP, secret, and OpenClaw lowering |
17
+ | `agent-with-subagents` | Canonical subagent graph resolution |
18
+ | `distribution-org` | Source-free image metadata, required/optional secrets, and managed Moltnet distribution |
19
+ | `moltnet-team-chat` | Nested-team representatives communicating through parent and child Moltnet rooms |
20
+ | `daimon-org` | One generated Daimon app with nested agents, shared files, and persistent Mneme recall |
21
+ | `mixed-runtime-org` | Daimon, OpenClaw, and PicoClaw sharing Moltnet and Mneme wiring |
22
+ | `jungian-daimon-org` | Nested council topology, representative routing, and scoped memory bindings |
23
+
24
+ ## Test-Only Fixtures (`fixtures/`)
25
+
26
+ | Project | Contract |
27
+ |---|---|
28
+ | `multi-runtime-team` | Hierarchical team resolution and mixed runtime capability reporting |
29
+ | `docker-auth-agent` | Single-runtime Docker auth injection |
30
+ | `docker-auth-team` | Mixed OpenClaw/PicoClaw Docker auth injection |
31
+ | `operational-smoke` | Scheduled PicoClaw wake, workspace volume, Moltnet, and live status |
32
+ | `daimon-cli-memory-org` | Codex, Claude, Grok, and Agy CLI engines receiving schedule/dream memory context |
33
+ | `lifecycle-smoke` | Minimal single-agent scripted lifecycle (`up`/`artifacts export`/`down`) receipt smoke |
34
+ | `moltnet-memetics` | Live two-agent Moltnet conversation over real Codex/Grok |
35
+ | `office-sim` | Standalone scripted-engine harness proving the pi adapter's `scripted` engine kind |
36
+
37
+ Executable test-support helpers (cross-process fork fixtures and the trusted
38
+ Moltnet release stager) live under `fixtures/support/`.
39
+
40
+ Simulation worlds, transcripts, clocks, and domain-specific orchestration do not
41
+ belong in this suite. They should consume Spawnfile as an external system and
42
+ test their own behavior in their owning project.
43
+
44
+ Generated output such as `.spawn/`, runtime logs, credentials, and run
45
+ transcripts must remain untracked.
@@ -0,0 +1,3 @@
1
+ # Operating Instructions
2
+
3
+ Break work into research, critique, and final editing passes when helpful.
@@ -0,0 +1,30 @@
1
+ spawnfile_version: "0.1"
2
+ kind: agent
3
+ name: editor
4
+
5
+ runtime:
6
+ name: picoclaw
7
+ options:
8
+ restrict_to_workspace: true
9
+
10
+ execution:
11
+ model:
12
+ primary:
13
+ provider: openai
14
+ name: gpt-4o-mini
15
+ sandbox:
16
+ mode: workspace
17
+
18
+ workspace:
19
+ docs:
20
+ system: AGENTS.md
21
+
22
+ subagents:
23
+ - id: researcher
24
+ ref: ./subagents/researcher
25
+ - id: critic
26
+ ref: ./subagents/critic
27
+
28
+ policy:
29
+ mode: warn
30
+ on_degrade: warn
@@ -0,0 +1,3 @@
1
+ # Critic
2
+
3
+ Look for weak claims, missing evidence, and avoidable ambiguity.
@@ -0,0 +1,15 @@
1
+ spawnfile_version: "0.1"
2
+ kind: agent
3
+ name: critic
4
+
5
+ execution:
6
+ model:
7
+ primary:
8
+ provider: openai
9
+ name: gpt-4o-mini
10
+ sandbox:
11
+ mode: sandboxed
12
+
13
+ workspace:
14
+ docs:
15
+ system: AGENTS.md
@@ -0,0 +1,3 @@
1
+ # Researcher
2
+
3
+ Gather relevant facts quickly and return structured notes instead of full prose.
@@ -0,0 +1,17 @@
1
+ spawnfile_version: "0.1"
2
+ kind: agent
3
+ name: researcher
4
+
5
+ runtime: picoclaw
6
+
7
+ execution:
8
+ model:
9
+ primary:
10
+ provider: openai
11
+ name: gpt-4o-mini
12
+ sandbox:
13
+ mode: workspace
14
+
15
+ workspace:
16
+ docs:
17
+ system: AGENTS.md
@@ -0,0 +1,68 @@
1
+ spawnfile_version: "0.1"
2
+ kind: team
3
+ name: daimon-org
4
+ description: "Legacy generated-Pi organization fixture with Moltnet and shared resources"
5
+
6
+ shared:
7
+ workspace:
8
+ docs:
9
+ system: TEAM.md
10
+ skills:
11
+ - ref: ./shared/skills/file-note
12
+ resources:
13
+ - id: shared-lab
14
+ kind: volume
15
+ mount: ./shared-lab
16
+ mode: mutable
17
+ sharing: team
18
+
19
+ members:
20
+ - id: mapper
21
+ ref: ./agents/mapper
22
+ - id: review
23
+ ref: ./teams/review
24
+
25
+ memory:
26
+ - id: shared-recall
27
+ access:
28
+ members: [mapper]
29
+ store:
30
+ kind: json
31
+ path: /var/lib/spawnfile/memory/daimon-org/shared-recall.jsonl
32
+ persistence:
33
+ mode: durable
34
+ index:
35
+ lexical:
36
+ enabled: true
37
+ engine: sqlite_fts
38
+ vector:
39
+ enabled: true
40
+ provider: ollama
41
+ model: qwen3-embedding:0.6b
42
+ dimensions: 1024
43
+
44
+ mode: hierarchical
45
+ lead: mapper
46
+
47
+ networks:
48
+ - id: daimon_lab
49
+ name: Daimon Lab
50
+ provider: moltnet
51
+ server:
52
+ mode: managed
53
+ listen:
54
+ bind: 0.0.0.0
55
+ port: 19877
56
+ store:
57
+ kind: sqlite
58
+ path: /var/lib/spawnfile/moltnet/networks/daimon_lab/moltnet.sqlite
59
+ auth:
60
+ mode: open
61
+ public_read: true
62
+ human_ingress: true
63
+ direct_messages: false
64
+ rooms:
65
+ - id: lab-floor
66
+ members: [mapper, review]
67
+ visibility: public
68
+ write_policy: registered_agents
@@ -0,0 +1,4 @@
1
+ # Daimon Org
2
+
3
+ This legacy organization verifies that Spawnfile can compile multiple generated Pi agents and
4
+ a nested team into one generated runtime app with shared resources and memory.
@@ -0,0 +1,4 @@
1
+ # Mapper
2
+
3
+ You are Mapper. Keep responses short and use the shared-lab resource when a
4
+ scheduled prompt asks for it.
@@ -0,0 +1,37 @@
1
+ spawnfile_version: "0.1"
2
+ kind: agent
3
+ name: mapper
4
+ description: "Maps shared workspace state for the Daimon org."
5
+
6
+ runtime: pi
7
+
8
+ execution:
9
+ model:
10
+ primary:
11
+ provider: openai
12
+ name: gpt-5.4-mini
13
+ auth:
14
+ method: codex
15
+ sandbox:
16
+ mode: workspace
17
+
18
+ schedule:
19
+ kind: every
20
+ every: 1s
21
+ prompt: "Create ./shared-lab/mapper-note.md with one sentence proving mapper can write to the shared resource."
22
+
23
+ surfaces:
24
+ moltnet:
25
+ - network: daimon_lab
26
+ rooms:
27
+ lab-floor:
28
+ wake: mentions
29
+
30
+ workspace:
31
+ docs:
32
+ system: AGENTS.md
33
+ resources:
34
+ - id: mapper-scratch
35
+ kind: volume
36
+ mount: ./scratch
37
+ mode: mutable
@@ -0,0 +1,9 @@
1
+ ---
2
+ name: file-note
3
+ description: "Create short markdown notes in requested workspace paths."
4
+ ---
5
+
6
+ # File Note
7
+
8
+ When asked to verify filesystem access, create a short markdown note in the
9
+ requested path and mention the exact file path in the response.
@@ -0,0 +1,53 @@
1
+ spawnfile_version: "0.1"
2
+ kind: team
3
+ name: daimon-review-team
4
+ description: "Nested review team for the legacy generated-Pi fixture"
5
+
6
+ members:
7
+ - id: reviewer
8
+ ref: ./agents/reviewer
9
+
10
+ memory:
11
+ - id: shared-recall
12
+ access:
13
+ members: [reviewer]
14
+ store:
15
+ kind: json
16
+ path: /var/lib/spawnfile/memory/daimon-org/shared-recall.jsonl
17
+ persistence:
18
+ mode: durable
19
+ index:
20
+ lexical:
21
+ enabled: true
22
+ engine: sqlite_fts
23
+ vector:
24
+ enabled: true
25
+ provider: ollama
26
+ model: qwen3-embedding:0.6b
27
+ dimensions: 1024
28
+
29
+ mode: hierarchical
30
+ lead: reviewer
31
+
32
+ networks:
33
+ - id: daimon_lab
34
+ name: Daimon Lab
35
+ provider: moltnet
36
+ server:
37
+ mode: managed
38
+ listen:
39
+ bind: 0.0.0.0
40
+ port: 19877
41
+ store:
42
+ kind: sqlite
43
+ path: /var/lib/spawnfile/moltnet/networks/daimon_lab/moltnet.sqlite
44
+ auth:
45
+ mode: open
46
+ public_read: true
47
+ human_ingress: true
48
+ direct_messages: false
49
+ rooms:
50
+ - id: lab-floor
51
+ members: [reviewer]
52
+ visibility: public
53
+ write_policy: registered_agents
@@ -0,0 +1,4 @@
1
+ # Reviewer
2
+
3
+ You are Reviewer. Keep responses short and use the shared-lab resource when a
4
+ scheduled prompt asks for it.
@@ -0,0 +1,37 @@
1
+ spawnfile_version: "0.1"
2
+ kind: agent
3
+ name: reviewer
4
+ description: "Reviews generated shared workspace notes."
5
+
6
+ runtime: pi
7
+
8
+ execution:
9
+ model:
10
+ primary:
11
+ provider: openai
12
+ name: gpt-5.4-mini
13
+ auth:
14
+ method: codex
15
+ sandbox:
16
+ mode: workspace
17
+
18
+ schedule:
19
+ kind: every
20
+ every: 1s
21
+ prompt: "Create ./shared-lab/reviewer-note.md with one sentence proving reviewer can write to the shared resource."
22
+
23
+ surfaces:
24
+ moltnet:
25
+ - network: daimon_lab
26
+ rooms:
27
+ lab-floor:
28
+ wake: mentions
29
+
30
+ workspace:
31
+ docs:
32
+ system: AGENTS.md
33
+ resources:
34
+ - id: reviewer-scratch
35
+ kind: volume
36
+ mount: ./scratch
37
+ mode: mutable
@@ -0,0 +1,3 @@
1
+ # Public Daimon Host
2
+
3
+ Work only in this agent's workspace and return concise outcomes.
@@ -0,0 +1,21 @@
1
+ spawnfile_version: "0.1"
2
+ kind: agent
3
+ name: public-host-agent
4
+ description: "Minimal public Daimon organization-host fixture"
5
+
6
+ runtime:
7
+ name: daimon
8
+ options:
9
+ engine: codex
10
+
11
+ execution:
12
+ model:
13
+ primary:
14
+ provider: openai
15
+ name: gpt-5.4-mini
16
+ auth:
17
+ method: codex
18
+
19
+ workspace:
20
+ docs:
21
+ system: AGENTS.md