@opensoha/contracts 0.1.22 → 0.1.24

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 (361) hide show
  1. package/COMPATIBILITY.md +95 -0
  2. package/README.md +24 -6
  3. package/agent/environment/README.md +55 -0
  4. package/agent/environment/export.go +139 -0
  5. package/agent/environment/export_test.go +62 -0
  6. package/agent/environment/preflight.go +62 -0
  7. package/agent/environment/preflight_test.go +41 -0
  8. package/agent/environment/protocol.go +221 -0
  9. package/agent/environment/protocol_test.go +81 -0
  10. package/agent/environment-lease.schema.json +2 -2
  11. package/agent/environment-template.schema.json +1 -1
  12. package/agent/guest/browser_network.go +77 -0
  13. package/agent/guest/data.go +62 -0
  14. package/agent/guest/protocol.go +235 -0
  15. package/agent/guest/protocol_test.go +142 -0
  16. package/agent/guest/renewal.go +56 -0
  17. package/agent/guest/renewal_test.go +53 -0
  18. package/agent/guest/runtime.go +315 -0
  19. package/agent/guest/runtime_json.go +75 -0
  20. package/agent/guest/runtime_test.go +110 -0
  21. package/agent/personal-browser-network-request.schema.json +40 -0
  22. package/agent/personal-browser-network-response.schema.json +44 -0
  23. package/agent/personal-environment-export.schema.json +55 -0
  24. package/agent/personal-environment-preflight-request.schema.json +52 -0
  25. package/agent/personal-environment-preflight-result.schema.json +69 -0
  26. package/agent/personal-environment-request.schema.json +137 -0
  27. package/agent/personal-environment-result.schema.json +101 -0
  28. package/agent/personal-guest-binding.schema.json +92 -0
  29. package/agent/personal-guest-data-plan.schema.json +32 -0
  30. package/agent/personal-guest-enrollment.schema.json +21 -0
  31. package/agent/personal-guest-heartbeat.schema.json +44 -0
  32. package/agent/personal-guest-provisioning.schema.json +71 -0
  33. package/agent/personal-guest-renewal.schema.json +33 -0
  34. package/agent/personal-guest-runtime-result.schema.json +164 -0
  35. package/agent/personal-guest-runtime.schema.json +304 -0
  36. package/agent/personal-guest-tools.schema.json +75 -0
  37. package/auth/catalog_generated.go +2 -2
  38. package/auth/permission-catalog.json +32 -1
  39. package/auth/token-claims.schema.json +5 -0
  40. package/compat/consumer-revisions.json +4 -3
  41. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  42. package/compat/openapi-loose-boundaries-0.1.0.json +1 -1
  43. package/connectors/connector-action.schema.json +138 -0
  44. package/fixtures/json-schema/connector-action/invalid/empty-values.json +11 -0
  45. package/fixtures/json-schema/connector-action/invalid/invalid-expiry.json +16 -0
  46. package/fixtures/json-schema/connector-action/invalid/lowercase-alias.json +16 -0
  47. package/fixtures/json-schema/connector-action/invalid/unknown-entry-field.json +17 -0
  48. package/fixtures/json-schema/connector-action/invalid/unknown-frame-field.json +17 -0
  49. package/fixtures/json-schema/connector-action/invalid/unknown-version.json +16 -0
  50. package/fixtures/json-schema/connector-action/invalid/unversioned-reference.json +16 -0
  51. package/fixtures/json-schema/connector-action/invalid/zero-version.json +16 -0
  52. package/fixtures/json-schema/connector-action/valid/pinned.json +16 -0
  53. package/fixtures/json-schema/connector-definition/invalid/credential-userinfo.json +8 -0
  54. package/fixtures/json-schema/connector-definition/invalid/reference-traversal.json +8 -0
  55. package/fixtures/json-schema/connector-definition/invalid/zero-version.json +8 -0
  56. package/fixtures/json-schema/connector-definition/valid/canonical.json +8 -0
  57. package/fixtures/json-schema/connector-definition/valid/pinned.json +8 -0
  58. package/fixtures/json-schema/personal-browser-network-request/invalid/bounded.json +4 -0
  59. package/fixtures/json-schema/personal-browser-network-request/valid/bounded.json +4 -0
  60. package/fixtures/json-schema/personal-browser-network-response/invalid/bounded.json +5 -0
  61. package/fixtures/json-schema/personal-browser-network-response/valid/bounded.json +5 -0
  62. package/fixtures/json-schema/personal-environment-export/invalid/extra.json +11 -0
  63. package/fixtures/json-schema/personal-environment-export/invalid/ownerId.json +10 -0
  64. package/fixtures/json-schema/personal-environment-export/invalid/sha256.json +10 -0
  65. package/fixtures/json-schema/personal-environment-export/invalid/sizeBytes.json +10 -0
  66. package/fixtures/json-schema/personal-environment-export/valid/complete.json +10 -0
  67. package/fixtures/json-schema/personal-environment-preflight-request/invalid/disk.json +11 -0
  68. package/fixtures/json-schema/personal-environment-preflight-request/invalid/network.json +11 -0
  69. package/fixtures/json-schema/personal-environment-preflight-request/invalid/node.json +12 -0
  70. package/fixtures/json-schema/personal-environment-preflight-request/invalid/owner.json +12 -0
  71. package/fixtures/json-schema/personal-environment-preflight-request/valid/bounded.json +11 -0
  72. package/fixtures/json-schema/personal-environment-preflight-result/invalid/disk.json +15 -0
  73. package/fixtures/json-schema/personal-environment-preflight-result/invalid/network.json +15 -0
  74. package/fixtures/json-schema/personal-environment-preflight-result/invalid/no-hard-quota.json +15 -0
  75. package/fixtures/json-schema/personal-environment-preflight-result/invalid/node.json +16 -0
  76. package/fixtures/json-schema/personal-environment-preflight-result/invalid/not-ready.json +15 -0
  77. package/fixtures/json-schema/personal-environment-preflight-result/invalid/owner.json +16 -0
  78. package/fixtures/json-schema/personal-environment-preflight-result/valid/bounded.json +15 -0
  79. package/fixtures/json-schema/personal-environment-request/invalid/delete-data-argv.json +24 -0
  80. package/fixtures/json-schema/personal-environment-request/invalid/delete-data-createData.json +22 -0
  81. package/fixtures/json-schema/personal-environment-request/invalid/delete-data-taskId.json +22 -0
  82. package/fixtures/json-schema/personal-environment-request/invalid/export-argv.json +22 -0
  83. package/fixtures/json-schema/personal-environment-request/invalid/export-createData.json +22 -0
  84. package/fixtures/json-schema/personal-environment-request/invalid/export-taskId.json +22 -0
  85. package/fixtures/json-schema/personal-environment-request/invalid/extra-command.json +24 -0
  86. package/fixtures/json-schema/personal-environment-request/invalid/host-workspace.json +22 -0
  87. package/fixtures/json-schema/personal-environment-request/invalid/image-injection.json +22 -0
  88. package/fixtures/json-schema/personal-environment-request/invalid/network-egress.json +21 -0
  89. package/fixtures/json-schema/personal-environment-request/invalid/no-command.json +21 -0
  90. package/fixtures/json-schema/personal-environment-request/invalid/recreate-on-release.json +22 -0
  91. package/fixtures/json-schema/personal-environment-request/invalid/relative-command.json +24 -0
  92. package/fixtures/json-schema/personal-environment-request/invalid/released-identity.json +22 -0
  93. package/fixtures/json-schema/personal-environment-request/invalid/task-empty.json +27 -0
  94. package/fixtures/json-schema/personal-environment-request/invalid/task-host-path.json +27 -0
  95. package/fixtures/json-schema/personal-environment-request/invalid/task-noncanonical.json +27 -0
  96. package/fixtures/json-schema/personal-environment-request/invalid/task-null.json +27 -0
  97. package/fixtures/json-schema/personal-environment-request/invalid/task-on-inspection.json +22 -0
  98. package/fixtures/json-schema/personal-environment-request/invalid/unbounded-quota.json +21 -0
  99. package/fixtures/json-schema/personal-environment-request/valid/acquire.json +21 -0
  100. package/fixtures/json-schema/personal-environment-request/valid/delete-data.json +21 -0
  101. package/fixtures/json-schema/personal-environment-request/valid/execute.json +26 -0
  102. package/fixtures/json-schema/personal-environment-request/valid/export-data.json +21 -0
  103. package/fixtures/json-schema/personal-environment-request/valid/inspect.json +21 -0
  104. package/fixtures/json-schema/personal-environment-request/valid/provision.json +22 -0
  105. package/fixtures/json-schema/personal-environment-request/valid/release.json +21 -0
  106. package/fixtures/json-schema/personal-environment-request/valid/task-workspace.json +27 -0
  107. package/fixtures/json-schema/personal-environment-result/invalid/active-without-observation.json +7 -0
  108. package/fixtures/json-schema/personal-environment-result/invalid/deleted-output.json +8 -0
  109. package/fixtures/json-schema/personal-environment-result/invalid/deleted-snapshot.json +8 -0
  110. package/fixtures/json-schema/personal-environment-result/invalid/deleted-taskId.json +8 -0
  111. package/fixtures/json-schema/personal-environment-result/invalid/private-handle.json +8 -0
  112. package/fixtures/json-schema/personal-environment-result/invalid/stopped-fake-observation.json +20 -0
  113. package/fixtures/json-schema/personal-environment-result/invalid/task-empty.json +22 -0
  114. package/fixtures/json-schema/personal-environment-result/invalid/task-host-path.json +22 -0
  115. package/fixtures/json-schema/personal-environment-result/invalid/task-null.json +22 -0
  116. package/fixtures/json-schema/personal-environment-result/invalid/task-on-stopped.json +8 -0
  117. package/fixtures/json-schema/personal-environment-result/invalid/task-without-command-output.json +21 -0
  118. package/fixtures/json-schema/personal-environment-result/valid/active.json +21 -0
  119. package/fixtures/json-schema/personal-environment-result/valid/deleted.json +7 -0
  120. package/fixtures/json-schema/personal-environment-result/valid/expired.json +7 -0
  121. package/fixtures/json-schema/personal-environment-result/valid/missing.json +7 -0
  122. package/fixtures/json-schema/personal-environment-result/valid/released.json +7 -0
  123. package/fixtures/json-schema/personal-environment-result/valid/task-workspace.json +22 -0
  124. package/fixtures/json-schema/personal-guest-binding/invalid/host-path.json +17 -0
  125. package/fixtures/json-schema/personal-guest-binding/invalid/invalid-policy.json +17 -0
  126. package/fixtures/json-schema/personal-guest-binding/invalid/invalid-serial.json +17 -0
  127. package/fixtures/json-schema/personal-guest-binding/invalid/legacy-version.json +17 -0
  128. package/fixtures/json-schema/personal-guest-binding/invalid/missing-generation.json +17 -0
  129. package/fixtures/json-schema/personal-guest-binding/invalid/missing-identity.json +16 -0
  130. package/fixtures/json-schema/personal-guest-binding/invalid/missing-provider-identity.json +16 -0
  131. package/fixtures/json-schema/personal-guest-binding/invalid/raw-provider-identity.json +17 -0
  132. package/fixtures/json-schema/personal-guest-binding/valid/minimal.json +17 -0
  133. package/fixtures/json-schema/personal-guest-data-plan/invalid/quota.json +1 -0
  134. package/fixtures/json-schema/personal-guest-data-plan/valid/basic.json +1 -0
  135. package/fixtures/json-schema/personal-guest-enrollment/invalid/capabilities.json +7 -0
  136. package/fixtures/json-schema/personal-guest-enrollment/invalid/legacy-version.json +4 -0
  137. package/fixtures/json-schema/personal-guest-enrollment/invalid/missing-identity.json +3 -0
  138. package/fixtures/json-schema/personal-guest-enrollment/invalid/ownerId.json +5 -0
  139. package/fixtures/json-schema/personal-guest-enrollment/invalid/token.json +5 -0
  140. package/fixtures/json-schema/personal-guest-enrollment/valid/minimal.json +4 -0
  141. package/fixtures/json-schema/personal-guest-heartbeat/invalid/argv.json +11 -0
  142. package/fixtures/json-schema/personal-guest-heartbeat/invalid/legacy-version.json +8 -0
  143. package/fixtures/json-schema/personal-guest-heartbeat/invalid/missing-identity.json +7 -0
  144. package/fixtures/json-schema/personal-guest-heartbeat/invalid/owner.json +9 -0
  145. package/fixtures/json-schema/personal-guest-heartbeat/invalid/self-ready.json +9 -0
  146. package/fixtures/json-schema/personal-guest-heartbeat/invalid/zero-sequence.json +8 -0
  147. package/fixtures/json-schema/personal-guest-heartbeat/valid/minimal.json +8 -0
  148. package/fixtures/json-schema/personal-guest-provisioning/invalid/network.json +1 -0
  149. package/fixtures/json-schema/personal-guest-provisioning/valid/basic.json +1 -0
  150. package/fixtures/json-schema/personal-guest-renewal/invalid/unknown.json +1 -0
  151. package/fixtures/json-schema/personal-guest-renewal/valid/basic.json +1 -0
  152. package/fixtures/json-schema/personal-guest-runtime/invalid/minimal.json +45 -0
  153. package/fixtures/json-schema/personal-guest-runtime/valid/minimal.json +45 -0
  154. package/fixtures/json-schema/personal-guest-runtime-result/invalid/minimal.json +28 -0
  155. package/fixtures/json-schema/personal-guest-runtime-result/valid/minimal.json +27 -0
  156. package/fixtures/json-schema/personal-guest-tools/invalid/minimal.json +31 -0
  157. package/fixtures/json-schema/personal-guest-tools/valid/minimal.json +30 -0
  158. package/fixtures/json-schema/source-import-policy/invalid/case-variant-scope.json +4 -0
  159. package/fixtures/json-schema/source-import-policy/invalid/case-variant-version.json +4 -0
  160. package/fixtures/json-schema/source-import-policy/invalid/duplicate-grant.json +4 -0
  161. package/fixtures/json-schema/source-import-policy/invalid/empty-id.json +4 -0
  162. package/fixtures/json-schema/source-import-policy/invalid/future-version.json +4 -0
  163. package/fixtures/json-schema/source-import-policy/invalid/unknown-field.json +4 -0
  164. package/fixtures/json-schema/source-import-policy/valid/deny-all.json +4 -0
  165. package/fixtures/json-schema/source-import-policy/valid/shared.json +4 -0
  166. package/fixtures/json-schema/token-claims/invalid/authz-negative.json +23 -0
  167. package/fixtures/json-schema/token-claims/invalid/authz-string.json +23 -0
  168. package/fixtures/json-schema/token-claims/invalid/authz-zero.json +23 -0
  169. package/fixtures/json-schema/token-claims/valid/versioned-session.json +23 -0
  170. package/fixtures/openapi/AgentRunEventListEnvelope/invalid/basic.json +8 -0
  171. package/fixtures/openapi/AgentRunEventListEnvelope/valid/basic.json +8 -0
  172. package/fixtures/openapi/AgentRunEventListEnvelope/valid/native.json +1 -0
  173. package/fixtures/openapi/AgentRunResumeRequest/invalid/basic.json +3 -0
  174. package/fixtures/openapi/AgentRunResumeRequest/valid/basic.json +3 -0
  175. package/fixtures/openapi/AgentSSHCommandRequest/invalid/task51.json +24 -0
  176. package/fixtures/openapi/AgentSSHCommandRequest/valid/task51.json +23 -0
  177. package/fixtures/openapi/AgentSSHCommandResult/invalid/task51.json +8 -0
  178. package/fixtures/openapi/AgentSSHCommandResult/valid/task51.json +7 -0
  179. package/fixtures/openapi/AgentSSHSessionRequest/invalid/task51.json +20 -0
  180. package/fixtures/openapi/AgentSSHSessionRequest/valid/task51.json +19 -0
  181. package/fixtures/openapi/CapabilityTaskInput/invalid/duplicate-scope.json +36 -0
  182. package/fixtures/openapi/CapabilityTaskInput/valid/scoped.json +32 -0
  183. package/fixtures/openapi/DockerQuickCreateHostInput/invalid/guest-access.json +7 -0
  184. package/fixtures/openapi/DockerQuickCreateHostInput/valid/guest-access.json +9 -0
  185. package/fixtures/openapi/KnowledgeSourceDocument/invalid/tombstone-with-content.json +1 -0
  186. package/fixtures/openapi/KnowledgeSourceDocument/valid/tombstone.json +1 -0
  187. package/fixtures/openapi/KubernetesResourceUpdatePlanRequest/invalid/missing-required.json +1 -0
  188. package/fixtures/openapi/KubernetesResourceYaml/invalid/missing-required.json +1 -0
  189. package/fixtures/openapi/ObservabilityDataSource/invalid/missing-required.json +1 -0
  190. package/fixtures/openapi/PersonalAgentAccess/invalid/invalid.json +1 -0
  191. package/fixtures/openapi/PersonalAgentAccess/valid/valid.json +1 -0
  192. package/fixtures/openapi/PersonalAgentAccessDecision/invalid/invalid.json +1 -0
  193. package/fixtures/openapi/PersonalAgentAccessDecision/valid/valid.json +1 -0
  194. package/fixtures/openapi/PersonalAssistantArtifactListEnvelope/invalid/owner.json +8 -0
  195. package/fixtures/openapi/PersonalAssistantArtifactListEnvelope/valid/side-chat.json +9 -0
  196. package/fixtures/openapi/PersonalAssistantAvatarRequest/invalid/motion.json +1 -0
  197. package/fixtures/openapi/PersonalAssistantAvatarRequest/invalid/owner.json +1 -0
  198. package/fixtures/openapi/PersonalAssistantAvatarRequest/invalid/remote.json +1 -0
  199. package/fixtures/openapi/PersonalAssistantAvatarRequest/invalid/svg.json +1 -0
  200. package/fixtures/openapi/PersonalAssistantAvatarRequest/valid/raster.json +1 -0
  201. package/fixtures/openapi/PersonalAssistantAvatarRequest/valid/reset.json +1 -0
  202. package/fixtures/openapi/PersonalAssistantUpdateRequest/invalid/empty.json +1 -0
  203. package/fixtures/openapi/PersonalAssistantUpdateRequest/invalid/owner.json +1 -0
  204. package/fixtures/openapi/PersonalAssistantUpdateRequest/valid/name.json +1 -0
  205. package/fixtures/openapi/PersonalDockerEnvironmentPolicy/invalid/host-url.json +12 -0
  206. package/fixtures/openapi/PersonalDockerEnvironmentPolicy/invalid/lifetime.json +11 -0
  207. package/fixtures/openapi/PersonalDockerEnvironmentPolicy/invalid/unknown-agent.json +11 -0
  208. package/fixtures/openapi/PersonalDockerEnvironmentPolicy/valid/basic.json +11 -0
  209. package/fixtures/openapi/PersonalEnvironment/invalid/invented-state.json +6 -0
  210. package/fixtures/openapi/PersonalEnvironment/invalid/missing-state.json +5 -0
  211. package/fixtures/openapi/PersonalEnvironment/invalid/negative-generation.json +7 -0
  212. package/fixtures/openapi/PersonalEnvironment/invalid/network.json +23 -0
  213. package/fixtures/openapi/PersonalEnvironment/invalid/private-node.json +24 -0
  214. package/fixtures/openapi/PersonalEnvironment/invalid/unsupported-backend.json +7 -0
  215. package/fixtures/openapi/PersonalEnvironment/valid/deleted.json +23 -0
  216. package/fixtures/openapi/PersonalEnvironment/valid/deleting.json +23 -0
  217. package/fixtures/openapi/PersonalEnvironment/valid/deletion_unknown.json +23 -0
  218. package/fixtures/openapi/PersonalEnvironment/valid/frozen-binding.json +13 -0
  219. package/fixtures/openapi/PersonalEnvironment/valid/ready.json +23 -0
  220. package/fixtures/openapi/PersonalEnvironment/valid/unknown.json +23 -0
  221. package/fixtures/openapi/PersonalEnvironment/valid/unprovisioned.json +6 -0
  222. package/fixtures/openapi/PersonalEnvironmentActionRequest/invalid/command.json +3 -0
  223. package/fixtures/openapi/PersonalEnvironmentActionRequest/invalid/node.json +4 -0
  224. package/fixtures/openapi/PersonalEnvironmentActionRequest/invalid/owner.json +4 -0
  225. package/fixtures/openapi/PersonalEnvironmentActionRequest/invalid/quota.json +10 -0
  226. package/fixtures/openapi/PersonalEnvironmentActionRequest/valid/reconcile.json +3 -0
  227. package/fixtures/openapi/PersonalEnvironmentActionRequest/valid/sleep.json +3 -0
  228. package/fixtures/openapi/PersonalEnvironmentActionRequest/valid/wake.json +4 -0
  229. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/empty-name.json +5 -0
  230. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/long-name.json +5 -0
  231. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/missing-name.json +4 -0
  232. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/owner.json +6 -0
  233. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/stale-version.json +5 -0
  234. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/valid/confirmed.json +5 -0
  235. package/fixtures/openapi/PersonalEnvironmentDataExportRequest/invalid/assistantId.json +4 -0
  236. package/fixtures/openapi/PersonalEnvironmentDataExportRequest/invalid/environmentVersion.json +4 -0
  237. package/fixtures/openapi/PersonalEnvironmentDataExportRequest/invalid/ownerId.json +5 -0
  238. package/fixtures/openapi/PersonalEnvironmentDataExportRequest/valid/current.json +4 -0
  239. package/fixtures/openapi/PersonalEnvironmentEnvelope/invalid/missing-data.json +1 -0
  240. package/fixtures/openapi/PersonalEnvironmentEnvelope/valid/state.json +8 -0
  241. package/fixtures/openapi/PersonalEnvironmentQuota/invalid/cpu.json +7 -0
  242. package/fixtures/openapi/PersonalEnvironmentQuota/invalid/disk.json +7 -0
  243. package/fixtures/openapi/PersonalEnvironmentQuota/invalid/network.json +7 -0
  244. package/fixtures/openapi/PersonalEnvironmentQuota/invalid/processes.json +7 -0
  245. package/fixtures/openapi/PersonalEnvironmentQuota/valid/basic.json +7 -0
  246. package/fixtures/openapi/PersonalEnvironmentTemplate/invalid/mode.json +13 -0
  247. package/fixtures/openapi/PersonalEnvironmentTemplate/invalid/network.json +13 -0
  248. package/fixtures/openapi/PersonalEnvironmentTemplate/invalid/node.json +14 -0
  249. package/fixtures/openapi/PersonalEnvironmentTemplate/valid/template.json +13 -0
  250. package/fixtures/openapi/PersonalEnvironmentTemplateListEnvelope/invalid/missing.json +1 -0
  251. package/fixtures/openapi/PersonalEnvironmentTemplateListEnvelope/invalid/unbounded.json +1317 -0
  252. package/fixtures/openapi/PersonalEnvironmentTemplateListEnvelope/valid/choices.json +17 -0
  253. package/fixtures/openapi/PersonalEnvironmentTemplateListEnvelope/valid/empty.json +3 -0
  254. package/fixtures/openapi/PersonalEnvironmentUsage/invalid/negative.json +6 -0
  255. package/fixtures/openapi/PersonalEnvironmentUsage/valid/usage.json +6 -0
  256. package/fixtures/openapi/PersonalFeedFeedback/invalid/owner.json +4 -0
  257. package/fixtures/openapi/PersonalFeedFeedback/valid/liked.json +3 -0
  258. package/fixtures/openapi/PersonalFeedItem/invalid/no-source.json +9 -0
  259. package/fixtures/openapi/PersonalFeedItem/valid/post.json +15 -0
  260. package/fixtures/openapi/PersonalFeedSettings/invalid/owner.json +6 -0
  261. package/fixtures/openapi/PersonalFeedSettings/valid/default.json +5 -0
  262. package/fixtures/openapi/PersonalGuestPreparationInput/invalid/foreign-owner.json +5 -0
  263. package/fixtures/openapi/PersonalGuestPreparationInput/invalid/unsafe-counter.json +4 -0
  264. package/fixtures/openapi/PersonalGuestPreparationInput/valid/ed25519-csr.json +4 -0
  265. package/fixtures/openapi/PersonalGuestRuntimeEnvelope/invalid/minimal.json +10 -0
  266. package/fixtures/openapi/PersonalGuestRuntimeEnvelope/valid/minimal.json +9 -0
  267. package/fixtures/openapi/PersonalGuestRuntimeInput/invalid/minimal.json +6 -0
  268. package/fixtures/openapi/PersonalGuestRuntimeInput/valid/minimal.json +8 -0
  269. package/fixtures/openapi/PersonalGuestToolsInput/invalid/minimal.json +5 -0
  270. package/fixtures/openapi/PersonalGuestToolsInput/valid/minimal.json +4 -0
  271. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/device.json +15 -0
  272. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/fractional-size.json +15 -0
  273. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/network.json +15 -0
  274. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/owner.json +15 -0
  275. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/provider.json +15 -0
  276. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/unknown.json +16 -0
  277. package/fixtures/openapi/PersonalVMEnvironmentPolicy/valid/pve.json +15 -0
  278. package/fixtures/openapi/PersonalWorkspaceRuntime/invalid/shared.json +3 -0
  279. package/fixtures/openapi/PersonalWorkspaceRuntime/valid/shared.json +4 -0
  280. package/fixtures/openapi/PersonalWorkspaceRuntimeEnvelope/invalid/shared.json +5 -0
  281. package/fixtures/openapi/PersonalWorkspaceRuntimeEnvelope/valid/shared.json +6 -0
  282. package/fixtures/openapi/SecretGenerateSSHKeyRequest/invalid/task51.json +6 -0
  283. package/fixtures/openapi/SecretGenerateSSHKeyRequest/valid/task51.json +12 -0
  284. package/fixtures/openapi/SecretReferenceUsage/invalid/version.json +6 -0
  285. package/fixtures/openapi/SecretReferenceUsage/valid/version.json +8 -0
  286. package/fixtures/openapi/VMSSHCredentialRedemptionInput/invalid/task51.json +7 -0
  287. package/fixtures/openapi/VMSSHCredentialRedemptionInput/valid/task51.json +6 -0
  288. package/fixtures/openapi/VirtualMachineAccessBindingInput/invalid/task51.json +10 -0
  289. package/fixtures/openapi/VirtualMachineAccessBindingInput/valid/task51.json +10 -0
  290. package/fixtures/openapi/VirtualMachineActionInput/invalid/capacity-not-boolean.json +1 -0
  291. package/fixtures/openapi/VirtualMachineActionInput/valid/new-data-with-admission.json +1 -0
  292. package/fixtures/openapi/VirtualMachineCreateInput/valid/cloud-image.json +12 -0
  293. package/fixtures/openapi/VirtualMachineDiskChange/invalid/serial-config-injection.json +1 -0
  294. package/fixtures/openapi/VirtualMachineDiskChange/invalid/serial-existing-disk.json +1 -0
  295. package/fixtures/openapi/VirtualMachineDiskChange/invalid/serial-too-long.json +1 -0
  296. package/fixtures/openapi/VirtualMachineDiskChange/valid/personal-data.json +1 -0
  297. package/fixtures/openapi/VirtualMachineGuestAccessInput/invalid/task51.json +4 -0
  298. package/fixtures/openapi/VirtualMachineGuestAccessInput/valid/task51.json +6 -0
  299. package/fixtures/openapi/VirtualMachineSSHCommand/invalid/task51.json +9 -0
  300. package/fixtures/openapi/VirtualMachineSSHCommand/valid/task51.json +8 -0
  301. package/fixtures/openapi/VirtualMachineSSHCommandInput/invalid/task51.json +5 -0
  302. package/fixtures/openapi/VirtualMachineSSHCommandInput/valid/task51.json +5 -0
  303. package/fixtures/openapi/VirtualMachineSSHFrame/invalid/encoding.json +5 -0
  304. package/fixtures/openapi/VirtualMachineSSHFrame/invalid/task51.json +4 -0
  305. package/fixtures/openapi/VirtualMachineSSHFrame/valid/binary.json +5 -0
  306. package/fixtures/openapi/VirtualMachineSSHFrame/valid/task51.json +5 -0
  307. package/fixtures/openapi/VirtualMachineSSHSessionInput/invalid/task51.json +4 -0
  308. package/fixtures/openapi/VirtualMachineSSHSessionInput/valid/task51.json +5 -0
  309. package/fixtures/openapi/VirtualizationCapacityPolicyInput/invalid/task51.json +12 -0
  310. package/fixtures/openapi/VirtualizationCapacityPolicyInput/valid/task51.json +13 -0
  311. package/fixtures/openapi/VirtualizationImageInput/invalid/cloud-image-config-type.json +6 -0
  312. package/fixtures/openapi/VirtualizationImageInput/valid/cloud-image.json +11 -0
  313. package/fixtures/openapi/WorkbenchAssistantTask/invalid/kind.json +1 -0
  314. package/fixtures/openapi/WorkbenchAssistantTask/invalid/owner.json +1 -0
  315. package/fixtures/openapi/WorkbenchAssistantTask/valid/generate.json +1 -0
  316. package/fixtures/openapi/WorkbenchAssistantTask/valid/undo.json +1 -0
  317. package/fixtures/openapi/WorkbenchContextSelection/invalid/remote-image.json +1 -0
  318. package/fixtures/openapi/WorkbenchContextSelection/invalid/too-many-images.json +1 -0
  319. package/fixtures/openapi/WorkbenchContextSelection/valid/chat-image.json +9 -0
  320. package/fixtures/openapi/WorkbenchContextUsage/invalid/fractional-capacity.json +1 -0
  321. package/fixtures/openapi/WorkbenchContextUsage/invalid/negative.json +1 -0
  322. package/fixtures/openapi/WorkbenchContextUsage/valid/reported.json +1 -0
  323. package/fixtures/openapi/WorkbenchContextUsage/valid/unknown.json +1 -0
  324. package/fixtures/openapi/WorkbenchMainSessionRequest/invalid/owner.json +1 -0
  325. package/fixtures/openapi/WorkbenchMainSessionRequest/invalid/provider.json +1 -0
  326. package/fixtures/openapi/WorkbenchMainSessionRequest/valid/empty.json +1 -0
  327. package/fixtures/openapi/WorkbenchMainSessionRequest/valid/provider.json +1 -0
  328. package/fixtures/openapi/WorkbenchMessageSearchPage/invalid/role.json +12 -0
  329. package/fixtures/openapi/WorkbenchMessageSearchPage/valid/page.json +12 -0
  330. package/fixtures/openapi/WorkbenchMessageWindow/invalid/missing.json +1 -0
  331. package/fixtures/openapi/WorkbenchMessageWindow/valid/empty.json +3 -0
  332. package/fixtures/openapi/WorkbenchModelOption/invalid/zero-capacity.json +1 -0
  333. package/fixtures/openapi/WorkbenchModelOption/valid/capacity.json +1 -0
  334. package/fixtures/openapi/WorkbenchModelOption/valid/unknown.json +1 -0
  335. package/fixtures/openapi/WorkbenchProfessionalCapabilityInput/invalid/basic.json +7 -0
  336. package/fixtures/openapi/WorkbenchProfessionalCapabilityInput/valid/basic.json +11 -0
  337. package/fixtures/openapi/WorkbenchProfessionalCapabilityInput/valid/selected-profile.json +23 -0
  338. package/fixtures/openapi/WorkbenchSendMessageStreamRequest/invalid/missing-required.json +1 -0
  339. package/fixtures/openapi/WorkbenchSendMessageStreamRequest/valid/mixed-professional-task.json +22 -0
  340. package/fixtures/openapi/WorkbenchTaskIntent/invalid/basic.json +5 -0
  341. package/fixtures/openapi/WorkbenchTaskIntent/invalid/oversized-capability-source.json +3 -0
  342. package/fixtures/openapi/WorkbenchTaskIntent/valid/basic.json +9 -0
  343. package/fixtures/openapi/WorkbenchTaskIntent/valid/independent-sources.json +17 -0
  344. package/gen/go/sohaapi/client.go +1 -1
  345. package/gen/go/sohaapi/personal_environment_test.go +25 -0
  346. package/gen/go/sohaapi/types.go +2679 -240
  347. package/gen/go/sohaapi/types_test.go +30 -30
  348. package/gen/go/sohaapi/vm_disk_test.go +21 -0
  349. package/gen/ts/sohaapi/index.ts +4150 -169
  350. package/go.mod +61 -49
  351. package/go.sum +202 -176
  352. package/knowledge/connector-definition.schema.json +6 -1
  353. package/knowledge/source-import-policy.schema.json +32 -0
  354. package/memory/memory-record.schema.json +1 -1
  355. package/openapi/soha-api.json +22230 -15693
  356. package/openapi/soha-api.yaml +2495 -12
  357. package/openapi/spec_generated.go +3 -3
  358. package/package.json +19 -3
  359. /package/fixtures/openapi/DeliveryExecutionHistoryPage/{invalid-kind.json → invalid/invalid-kind.json} +0 -0
  360. /package/fixtures/openapi/DeliveryExecutionHistoryPage/{valid-build.json → valid/valid-build.json} +0 -0
  361. /package/fixtures/openapi/DeliveryExecutionHistoryPage/{valid-empty.json → valid/valid-empty.json} +0 -0
@@ -0,0 +1,138 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://contracts.opensoha.dev/connectors/connector-action.schema.json",
4
+ "title": "OpenSoha credential-bearing connector action v1",
5
+ "description": "Only over authenticated HTTPS or loopback transport, after an action explicitly declares credentialProtocol and aliases. Core pins and authorizes references. Credentials are invocation-local; never persist them in logs, queues, events or results. Actions without credentials keep the unversioned envelope. Runtime additionally rejects a canonical UTF-8 JSON envelope exceeding 1 MiB before dispatch. Cancellation signals and response rejection are cooperative, not proof that an external side effect stopped; action implementations must honor the signal and reconcile effects. All string material including structured keys is confidential.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "action",
11
+ "input",
12
+ "credentials"
13
+ ],
14
+ "properties": {
15
+ "schemaVersion": {
16
+ "const": "opensoha.dev/connector-action/v1"
17
+ },
18
+ "action": {
19
+ "type": "string",
20
+ "minLength": 1,
21
+ "maxLength": 128
22
+ },
23
+ "input": {
24
+ "type": "object"
25
+ },
26
+ "requestId": {
27
+ "type": "string",
28
+ "minLength": 1,
29
+ "maxLength": 128
30
+ },
31
+ "credentials": {
32
+ "type": "object",
33
+ "additionalProperties": false,
34
+ "required": [
35
+ "expiresAt",
36
+ "entries"
37
+ ],
38
+ "properties": {
39
+ "expiresAt": {
40
+ "type": "string",
41
+ "format": "date-time",
42
+ "description": "Reject expired or more than two minutes in the future; signal cancellation and reject late responses when reached or caller disconnects. The connector must cooperate; this does not prove external effects stopped."
43
+ },
44
+ "entries": {
45
+ "type": "object",
46
+ "minProperties": 1,
47
+ "maxProperties": 16,
48
+ "propertyNames": {
49
+ "type": "string",
50
+ "pattern": "^[A-Z][A-Z0-9_]{0,63}$"
51
+ },
52
+ "additionalProperties": {
53
+ "$ref": "#/$defs/Credential"
54
+ }
55
+ }
56
+ }
57
+ }
58
+ },
59
+ "$defs": {
60
+ "Credential": {
61
+ "type": "object",
62
+ "additionalProperties": false,
63
+ "required": [
64
+ "reference",
65
+ "value"
66
+ ],
67
+ "properties": {
68
+ "reference": {
69
+ "type": "string",
70
+ "maxLength": 512,
71
+ "pattern": "^soha://secrets/[A-Za-z0-9._-]+/versions/[1-9][0-9]*$"
72
+ },
73
+ "value": {
74
+ "type": "string",
75
+ "minLength": 1,
76
+ "maxLength": 65536,
77
+ "description": "Runtime additionally enforces a 64 KiB UTF-8 byte limit; structured material is bounded to depth 16 and 64 distinct nonempty strings including keys and the opaque value for redaction."
78
+ }
79
+ }
80
+ },
81
+ "ActionDefinition": {
82
+ "type": "object",
83
+ "additionalProperties": false,
84
+ "required": [
85
+ "name",
86
+ "description",
87
+ "inputSchema"
88
+ ],
89
+ "properties": {
90
+ "name": {
91
+ "type": "string",
92
+ "minLength": 1
93
+ },
94
+ "description": {
95
+ "type": "string",
96
+ "minLength": 1
97
+ },
98
+ "inputSchema": {
99
+ "type": "object"
100
+ },
101
+ "credentialProtocol": {
102
+ "const": "opensoha.dev/connector-action/v1",
103
+ "description": "Opt-in support for per-call delivery, not a requirement for every action call. Without credentials the existing envelope remains valid; actions requiring authentication must reject missing credentials themselves."
104
+ },
105
+ "credentialAliases": {
106
+ "type": "array",
107
+ "minItems": 1,
108
+ "maxItems": 16,
109
+ "uniqueItems": true,
110
+ "items": {
111
+ "type": "string",
112
+ "pattern": "^[A-Z][A-Z0-9_]{0,63}$"
113
+ }
114
+ }
115
+ },
116
+ "dependentRequired": {
117
+ "credentialProtocol": [
118
+ "credentialAliases"
119
+ ],
120
+ "credentialAliases": [
121
+ "credentialProtocol"
122
+ ]
123
+ },
124
+ "if": {
125
+ "required": [
126
+ "credentialProtocol"
127
+ ]
128
+ },
129
+ "then": {
130
+ "properties": {
131
+ "name": {
132
+ "maxLength": 128
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/connector-action/v1",
3
+ "action": "knowledge.connector.http.fetch",
4
+ "input": {
5
+ "cursor": ""
6
+ },
7
+ "credentials": {
8
+ "expiresAt": "2026-10-10T00:00:10Z",
9
+ "entries": {}
10
+ }
11
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/connector-action/v1",
3
+ "action": "knowledge.connector.http.fetch",
4
+ "input": {
5
+ "cursor": ""
6
+ },
7
+ "credentials": {
8
+ "expiresAt": "tomorrow",
9
+ "entries": {
10
+ "SOURCE": {
11
+ "reference": "soha://secrets/source-fixture/versions/2",
12
+ "value": "synthetic-fixture-value"
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/connector-action/v1",
3
+ "action": "knowledge.connector.http.fetch",
4
+ "input": {
5
+ "cursor": ""
6
+ },
7
+ "credentials": {
8
+ "expiresAt": "2026-10-10T00:00:10Z",
9
+ "entries": {
10
+ "source": {
11
+ "reference": "soha://secrets/source-fixture/versions/2",
12
+ "value": "synthetic-fixture-value"
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/connector-action/v1",
3
+ "action": "knowledge.connector.http.fetch",
4
+ "input": {
5
+ "cursor": ""
6
+ },
7
+ "credentials": {
8
+ "expiresAt": "2026-10-10T00:00:10Z",
9
+ "entries": {
10
+ "SOURCE": {
11
+ "reference": "soha://secrets/source-fixture/versions/2",
12
+ "value": "synthetic-fixture-value",
13
+ "role": "admin"
14
+ }
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/connector-action/v1",
3
+ "action": "knowledge.connector.http.fetch",
4
+ "input": {
5
+ "cursor": ""
6
+ },
7
+ "credentials": {
8
+ "expiresAt": "2026-10-10T00:00:10Z",
9
+ "entries": {
10
+ "SOURCE": {
11
+ "reference": "soha://secrets/source-fixture/versions/2",
12
+ "value": "synthetic-fixture-value"
13
+ }
14
+ }
15
+ },
16
+ "owner": "untrusted"
17
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/connector-action/v9",
3
+ "action": "knowledge.connector.http.fetch",
4
+ "input": {
5
+ "cursor": ""
6
+ },
7
+ "credentials": {
8
+ "expiresAt": "2026-10-10T00:00:10Z",
9
+ "entries": {
10
+ "SOURCE": {
11
+ "reference": "soha://secrets/source-fixture/versions/2",
12
+ "value": "synthetic-fixture-value"
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/connector-action/v1",
3
+ "action": "knowledge.connector.http.fetch",
4
+ "input": {
5
+ "cursor": ""
6
+ },
7
+ "credentials": {
8
+ "expiresAt": "2026-10-10T00:00:10Z",
9
+ "entries": {
10
+ "SOURCE": {
11
+ "reference": "soha://secrets/source-fixture",
12
+ "value": "synthetic-fixture-value"
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/connector-action/v1",
3
+ "action": "knowledge.connector.http.fetch",
4
+ "input": {
5
+ "cursor": ""
6
+ },
7
+ "credentials": {
8
+ "expiresAt": "2026-10-10T00:00:10Z",
9
+ "entries": {
10
+ "SOURCE": {
11
+ "reference": "soha://secrets/source-fixture/versions/0",
12
+ "value": "synthetic-fixture-value"
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/connector-action/v1",
3
+ "action": "knowledge.connector.http.fetch",
4
+ "input": {
5
+ "cursor": ""
6
+ },
7
+ "credentials": {
8
+ "expiresAt": "2026-10-10T00:00:10Z",
9
+ "entries": {
10
+ "SOURCE": {
11
+ "reference": "soha://secrets/source-fixture/versions/2",
12
+ "value": "synthetic-fixture-value"
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/knowledge-connector-definition/v1",
3
+ "id": "docs-http",
4
+ "kind": "http",
5
+ "version": "v1",
6
+ "configRef": "soha://user:password@secrets/source-id",
7
+ "enabled": true
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/knowledge-connector-definition/v1",
3
+ "id": "docs-http",
4
+ "kind": "http",
5
+ "version": "v1",
6
+ "configRef": "soha://secrets/source-id/../foreign",
7
+ "enabled": true
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/knowledge-connector-definition/v1",
3
+ "id": "docs-http",
4
+ "kind": "http",
5
+ "version": "v1",
6
+ "configRef": "soha://secrets/source-id/versions/0",
7
+ "enabled": true
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/knowledge-connector-definition/v1",
3
+ "id": "docs-http",
4
+ "kind": "http",
5
+ "version": "v1",
6
+ "configRef": "soha://secrets/source-id",
7
+ "enabled": true
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/knowledge-connector-definition/v1",
3
+ "id": "docs-http",
4
+ "kind": "http",
5
+ "version": "v1",
6
+ "configRef": "soha://secrets/source-id/versions/2",
7
+ "enabled": true
8
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "url": "file:///etc/shadow",
3
+ "method": "CONNECT"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "url": "https://example.com/",
3
+ "method": "GET"
4
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "status": 700,
3
+ "headers": [],
4
+ "bodyBase64": ""
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "status": 200,
3
+ "headers": [],
4
+ "bodyBase64": "b2s="
5
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-export/v1",
3
+ "leaseId": "lease-fixture",
4
+ "runId": "run-fixture",
5
+ "ownerId": "owner-fixture",
6
+ "scopeHash": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
7
+ "sizeBytes": 10240,
8
+ "sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
9
+ "observedAt": "2026-10-08T00:00:00Z",
10
+ "hostPath": "/data"
11
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-export/v1",
3
+ "leaseId": "lease-fixture",
4
+ "runId": "run-fixture",
5
+ "ownerId": "",
6
+ "scopeHash": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
7
+ "sizeBytes": 10240,
8
+ "sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
9
+ "observedAt": "2026-10-08T00:00:00Z"
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-export/v1",
3
+ "leaseId": "lease-fixture",
4
+ "runId": "run-fixture",
5
+ "ownerId": "owner-fixture",
6
+ "scopeHash": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
7
+ "sizeBytes": 10240,
8
+ "sha256": "invalid",
9
+ "observedAt": "2026-10-08T00:00:00Z"
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-export/v1",
3
+ "leaseId": "lease-fixture",
4
+ "runId": "run-fixture",
5
+ "ownerId": "owner-fixture",
6
+ "scopeHash": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
7
+ "sizeBytes": 268435457,
8
+ "sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
9
+ "observedAt": "2026-10-08T00:00:00Z"
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-export/v1",
3
+ "leaseId": "lease-fixture",
4
+ "runId": "run-fixture",
5
+ "ownerId": "owner-fixture",
6
+ "scopeHash": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
7
+ "sizeBytes": 10240,
8
+ "sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
9
+ "observedAt": "2026-10-08T00:00:00Z"
10
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-request/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 1,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-request/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": true
10
+ }
11
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-request/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ },
11
+ "nodeUrl": "https://example.invalid"
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-request/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ },
11
+ "ownerId": "selected-owner"
12
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-request/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ }
11
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-result/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 1,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ },
11
+ "ready": true,
12
+ "cgroupVersion": "2",
13
+ "diskMechanism": "btrfs-qgroup",
14
+ "observedAt": "2026-10-08T00:00:00Z"
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-result/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": true
10
+ },
11
+ "ready": true,
12
+ "cgroupVersion": "2",
13
+ "diskMechanism": "btrfs-qgroup",
14
+ "observedAt": "2026-10-08T00:00:00Z"
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-result/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ },
11
+ "ready": true,
12
+ "cgroupVersion": "2",
13
+ "diskMechanism": "best-effort",
14
+ "observedAt": "2026-10-08T00:00:00Z"
15
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-result/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ },
11
+ "ready": true,
12
+ "cgroupVersion": "2",
13
+ "diskMechanism": "btrfs-qgroup",
14
+ "observedAt": "2026-10-08T00:00:00Z",
15
+ "nodeUrl": "https://example.invalid"
16
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-result/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ },
11
+ "ready": false,
12
+ "cgroupVersion": "2",
13
+ "diskMechanism": "btrfs-qgroup",
14
+ "observedAt": "2026-10-08T00:00:00Z"
15
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-result/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ },
11
+ "ready": true,
12
+ "cgroupVersion": "2",
13
+ "diskMechanism": "btrfs-qgroup",
14
+ "observedAt": "2026-10-08T00:00:00Z",
15
+ "ownerId": "selected-owner"
16
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-preflight-result/v1",
3
+ "id": "00000000-0000-4000-8000-000000000048",
4
+ "quota": {
5
+ "diskBytes": 33554432,
6
+ "memoryBytes": 67108864,
7
+ "cpuUnits": 250,
8
+ "maxProcesses": 16,
9
+ "networkEgress": false
10
+ },
11
+ "ready": true,
12
+ "cgroupVersion": "2",
13
+ "diskMechanism": "btrfs-qgroup",
14
+ "observedAt": "2026-10-08T00:00:00Z"
15
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "schemaVersion": "opensoha.dev/personal-environment-request/v1",
3
+ "action": "delete_data",
4
+ "lease": {
5
+ "schemaVersion": "opensoha.dev/environment-lease/v1",
6
+ "id": "lease-personal-1",
7
+ "runId": "run-personal-1",
8
+ "ownerId": "owner-fixture",
9
+ "scopeHash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
10
+ "mode": "observe-only",
11
+ "quota": {
12
+ "diskBytes": 33554432,
13
+ "memoryBytes": 67108864,
14
+ "cpuUnits": 250,
15
+ "maxProcesses": 16,
16
+ "networkEgress": false
17
+ },
18
+ "issuedAt": "2026-10-08T01:00:00Z",
19
+ "expiresAt": "2026-10-08T01:05:00Z"
20
+ },
21
+ "argv": [
22
+ "/bin/true"
23
+ ]
24
+ }