@opensoha/contracts 0.1.23 → 0.1.25

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 (415) 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/gateway_permissions_test.go +48 -0
  39. package/auth/permission-catalog.json +331 -1
  40. package/auth/token-claims.schema.json +5 -0
  41. package/compat/consumer-revisions.json +3 -2
  42. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  43. package/compat/openapi-loose-boundaries-0.1.0.json +1 -1
  44. package/connectors/connector-action.schema.json +138 -0
  45. package/fixtures/json-schema/connector-action/invalid/empty-values.json +11 -0
  46. package/fixtures/json-schema/connector-action/invalid/invalid-expiry.json +16 -0
  47. package/fixtures/json-schema/connector-action/invalid/lowercase-alias.json +16 -0
  48. package/fixtures/json-schema/connector-action/invalid/unknown-entry-field.json +17 -0
  49. package/fixtures/json-schema/connector-action/invalid/unknown-frame-field.json +17 -0
  50. package/fixtures/json-schema/connector-action/invalid/unknown-version.json +16 -0
  51. package/fixtures/json-schema/connector-action/invalid/unversioned-reference.json +16 -0
  52. package/fixtures/json-schema/connector-action/invalid/zero-version.json +16 -0
  53. package/fixtures/json-schema/connector-action/valid/pinned.json +16 -0
  54. package/fixtures/json-schema/connector-definition/invalid/credential-userinfo.json +8 -0
  55. package/fixtures/json-schema/connector-definition/invalid/reference-traversal.json +8 -0
  56. package/fixtures/json-schema/connector-definition/invalid/zero-version.json +8 -0
  57. package/fixtures/json-schema/connector-definition/valid/canonical.json +8 -0
  58. package/fixtures/json-schema/connector-definition/valid/pinned.json +8 -0
  59. package/fixtures/json-schema/personal-browser-network-request/invalid/bounded.json +4 -0
  60. package/fixtures/json-schema/personal-browser-network-request/valid/bounded.json +4 -0
  61. package/fixtures/json-schema/personal-browser-network-response/invalid/bounded.json +5 -0
  62. package/fixtures/json-schema/personal-browser-network-response/valid/bounded.json +5 -0
  63. package/fixtures/json-schema/personal-environment-export/invalid/extra.json +11 -0
  64. package/fixtures/json-schema/personal-environment-export/invalid/ownerId.json +10 -0
  65. package/fixtures/json-schema/personal-environment-export/invalid/sha256.json +10 -0
  66. package/fixtures/json-schema/personal-environment-export/invalid/sizeBytes.json +10 -0
  67. package/fixtures/json-schema/personal-environment-export/valid/complete.json +10 -0
  68. package/fixtures/json-schema/personal-environment-preflight-request/invalid/disk.json +11 -0
  69. package/fixtures/json-schema/personal-environment-preflight-request/invalid/network.json +11 -0
  70. package/fixtures/json-schema/personal-environment-preflight-request/invalid/node.json +12 -0
  71. package/fixtures/json-schema/personal-environment-preflight-request/invalid/owner.json +12 -0
  72. package/fixtures/json-schema/personal-environment-preflight-request/valid/bounded.json +11 -0
  73. package/fixtures/json-schema/personal-environment-preflight-result/invalid/disk.json +15 -0
  74. package/fixtures/json-schema/personal-environment-preflight-result/invalid/network.json +15 -0
  75. package/fixtures/json-schema/personal-environment-preflight-result/invalid/no-hard-quota.json +15 -0
  76. package/fixtures/json-schema/personal-environment-preflight-result/invalid/node.json +16 -0
  77. package/fixtures/json-schema/personal-environment-preflight-result/invalid/not-ready.json +15 -0
  78. package/fixtures/json-schema/personal-environment-preflight-result/invalid/owner.json +16 -0
  79. package/fixtures/json-schema/personal-environment-preflight-result/valid/bounded.json +15 -0
  80. package/fixtures/json-schema/personal-environment-request/invalid/delete-data-argv.json +24 -0
  81. package/fixtures/json-schema/personal-environment-request/invalid/delete-data-createData.json +22 -0
  82. package/fixtures/json-schema/personal-environment-request/invalid/delete-data-taskId.json +22 -0
  83. package/fixtures/json-schema/personal-environment-request/invalid/export-argv.json +22 -0
  84. package/fixtures/json-schema/personal-environment-request/invalid/export-createData.json +22 -0
  85. package/fixtures/json-schema/personal-environment-request/invalid/export-taskId.json +22 -0
  86. package/fixtures/json-schema/personal-environment-request/invalid/extra-command.json +24 -0
  87. package/fixtures/json-schema/personal-environment-request/invalid/host-workspace.json +22 -0
  88. package/fixtures/json-schema/personal-environment-request/invalid/image-injection.json +22 -0
  89. package/fixtures/json-schema/personal-environment-request/invalid/network-egress.json +21 -0
  90. package/fixtures/json-schema/personal-environment-request/invalid/no-command.json +21 -0
  91. package/fixtures/json-schema/personal-environment-request/invalid/recreate-on-release.json +22 -0
  92. package/fixtures/json-schema/personal-environment-request/invalid/relative-command.json +24 -0
  93. package/fixtures/json-schema/personal-environment-request/invalid/released-identity.json +22 -0
  94. package/fixtures/json-schema/personal-environment-request/invalid/task-empty.json +27 -0
  95. package/fixtures/json-schema/personal-environment-request/invalid/task-host-path.json +27 -0
  96. package/fixtures/json-schema/personal-environment-request/invalid/task-noncanonical.json +27 -0
  97. package/fixtures/json-schema/personal-environment-request/invalid/task-null.json +27 -0
  98. package/fixtures/json-schema/personal-environment-request/invalid/task-on-inspection.json +22 -0
  99. package/fixtures/json-schema/personal-environment-request/invalid/unbounded-quota.json +21 -0
  100. package/fixtures/json-schema/personal-environment-request/valid/acquire.json +21 -0
  101. package/fixtures/json-schema/personal-environment-request/valid/delete-data.json +21 -0
  102. package/fixtures/json-schema/personal-environment-request/valid/execute.json +26 -0
  103. package/fixtures/json-schema/personal-environment-request/valid/export-data.json +21 -0
  104. package/fixtures/json-schema/personal-environment-request/valid/inspect.json +21 -0
  105. package/fixtures/json-schema/personal-environment-request/valid/provision.json +22 -0
  106. package/fixtures/json-schema/personal-environment-request/valid/release.json +21 -0
  107. package/fixtures/json-schema/personal-environment-request/valid/task-workspace.json +27 -0
  108. package/fixtures/json-schema/personal-environment-result/invalid/active-without-observation.json +7 -0
  109. package/fixtures/json-schema/personal-environment-result/invalid/deleted-output.json +8 -0
  110. package/fixtures/json-schema/personal-environment-result/invalid/deleted-snapshot.json +8 -0
  111. package/fixtures/json-schema/personal-environment-result/invalid/deleted-taskId.json +8 -0
  112. package/fixtures/json-schema/personal-environment-result/invalid/private-handle.json +8 -0
  113. package/fixtures/json-schema/personal-environment-result/invalid/stopped-fake-observation.json +20 -0
  114. package/fixtures/json-schema/personal-environment-result/invalid/task-empty.json +22 -0
  115. package/fixtures/json-schema/personal-environment-result/invalid/task-host-path.json +22 -0
  116. package/fixtures/json-schema/personal-environment-result/invalid/task-null.json +22 -0
  117. package/fixtures/json-schema/personal-environment-result/invalid/task-on-stopped.json +8 -0
  118. package/fixtures/json-schema/personal-environment-result/invalid/task-without-command-output.json +21 -0
  119. package/fixtures/json-schema/personal-environment-result/valid/active.json +21 -0
  120. package/fixtures/json-schema/personal-environment-result/valid/deleted.json +7 -0
  121. package/fixtures/json-schema/personal-environment-result/valid/expired.json +7 -0
  122. package/fixtures/json-schema/personal-environment-result/valid/missing.json +7 -0
  123. package/fixtures/json-schema/personal-environment-result/valid/released.json +7 -0
  124. package/fixtures/json-schema/personal-environment-result/valid/task-workspace.json +22 -0
  125. package/fixtures/json-schema/personal-guest-binding/invalid/host-path.json +17 -0
  126. package/fixtures/json-schema/personal-guest-binding/invalid/invalid-policy.json +17 -0
  127. package/fixtures/json-schema/personal-guest-binding/invalid/invalid-serial.json +17 -0
  128. package/fixtures/json-schema/personal-guest-binding/invalid/legacy-version.json +17 -0
  129. package/fixtures/json-schema/personal-guest-binding/invalid/missing-generation.json +17 -0
  130. package/fixtures/json-schema/personal-guest-binding/invalid/missing-identity.json +16 -0
  131. package/fixtures/json-schema/personal-guest-binding/invalid/missing-provider-identity.json +16 -0
  132. package/fixtures/json-schema/personal-guest-binding/invalid/raw-provider-identity.json +17 -0
  133. package/fixtures/json-schema/personal-guest-binding/valid/minimal.json +17 -0
  134. package/fixtures/json-schema/personal-guest-data-plan/invalid/quota.json +1 -0
  135. package/fixtures/json-schema/personal-guest-data-plan/valid/basic.json +1 -0
  136. package/fixtures/json-schema/personal-guest-enrollment/invalid/capabilities.json +7 -0
  137. package/fixtures/json-schema/personal-guest-enrollment/invalid/legacy-version.json +4 -0
  138. package/fixtures/json-schema/personal-guest-enrollment/invalid/missing-identity.json +3 -0
  139. package/fixtures/json-schema/personal-guest-enrollment/invalid/ownerId.json +5 -0
  140. package/fixtures/json-schema/personal-guest-enrollment/invalid/token.json +5 -0
  141. package/fixtures/json-schema/personal-guest-enrollment/valid/minimal.json +4 -0
  142. package/fixtures/json-schema/personal-guest-heartbeat/invalid/argv.json +11 -0
  143. package/fixtures/json-schema/personal-guest-heartbeat/invalid/legacy-version.json +8 -0
  144. package/fixtures/json-schema/personal-guest-heartbeat/invalid/missing-identity.json +7 -0
  145. package/fixtures/json-schema/personal-guest-heartbeat/invalid/owner.json +9 -0
  146. package/fixtures/json-schema/personal-guest-heartbeat/invalid/self-ready.json +9 -0
  147. package/fixtures/json-schema/personal-guest-heartbeat/invalid/zero-sequence.json +8 -0
  148. package/fixtures/json-schema/personal-guest-heartbeat/valid/minimal.json +8 -0
  149. package/fixtures/json-schema/personal-guest-provisioning/invalid/network.json +1 -0
  150. package/fixtures/json-schema/personal-guest-provisioning/valid/basic.json +1 -0
  151. package/fixtures/json-schema/personal-guest-renewal/invalid/unknown.json +1 -0
  152. package/fixtures/json-schema/personal-guest-renewal/valid/basic.json +1 -0
  153. package/fixtures/json-schema/personal-guest-runtime/invalid/minimal.json +45 -0
  154. package/fixtures/json-schema/personal-guest-runtime/valid/minimal.json +45 -0
  155. package/fixtures/json-schema/personal-guest-runtime-result/invalid/minimal.json +28 -0
  156. package/fixtures/json-schema/personal-guest-runtime-result/valid/minimal.json +27 -0
  157. package/fixtures/json-schema/personal-guest-tools/invalid/minimal.json +31 -0
  158. package/fixtures/json-schema/personal-guest-tools/valid/minimal.json +30 -0
  159. package/fixtures/json-schema/source-import-policy/invalid/case-variant-scope.json +4 -0
  160. package/fixtures/json-schema/source-import-policy/invalid/case-variant-version.json +4 -0
  161. package/fixtures/json-schema/source-import-policy/invalid/duplicate-grant.json +4 -0
  162. package/fixtures/json-schema/source-import-policy/invalid/empty-id.json +4 -0
  163. package/fixtures/json-schema/source-import-policy/invalid/future-version.json +4 -0
  164. package/fixtures/json-schema/source-import-policy/invalid/unknown-field.json +4 -0
  165. package/fixtures/json-schema/source-import-policy/valid/deny-all.json +4 -0
  166. package/fixtures/json-schema/source-import-policy/valid/shared.json +4 -0
  167. package/fixtures/json-schema/token-claims/invalid/authz-negative.json +23 -0
  168. package/fixtures/json-schema/token-claims/invalid/authz-string.json +23 -0
  169. package/fixtures/json-schema/token-claims/invalid/authz-zero.json +23 -0
  170. package/fixtures/json-schema/token-claims/valid/versioned-session.json +23 -0
  171. package/fixtures/openapi/AgentRunEventListEnvelope/invalid/basic.json +8 -0
  172. package/fixtures/openapi/AgentRunEventListEnvelope/valid/basic.json +8 -0
  173. package/fixtures/openapi/AgentRunEventListEnvelope/valid/native.json +1 -0
  174. package/fixtures/openapi/AgentRunResumeRequest/invalid/basic.json +3 -0
  175. package/fixtures/openapi/AgentRunResumeRequest/valid/basic.json +3 -0
  176. package/fixtures/openapi/AgentSSHCommandRequest/invalid/task51.json +24 -0
  177. package/fixtures/openapi/AgentSSHCommandRequest/valid/task51.json +23 -0
  178. package/fixtures/openapi/AgentSSHCommandResult/invalid/task51.json +8 -0
  179. package/fixtures/openapi/AgentSSHCommandResult/valid/task51.json +7 -0
  180. package/fixtures/openapi/AgentSSHSessionRequest/invalid/task51.json +20 -0
  181. package/fixtures/openapi/AgentSSHSessionRequest/valid/task51.json +19 -0
  182. package/fixtures/openapi/CapabilityTaskInput/invalid/duplicate-scope.json +36 -0
  183. package/fixtures/openapi/CapabilityTaskInput/valid/scoped.json +32 -0
  184. package/fixtures/openapi/DockerQuickCreateHostInput/invalid/guest-access.json +7 -0
  185. package/fixtures/openapi/DockerQuickCreateHostInput/valid/guest-access.json +9 -0
  186. package/fixtures/openapi/KnowledgeSourceDocument/invalid/tombstone-with-content.json +1 -0
  187. package/fixtures/openapi/KnowledgeSourceDocument/valid/tombstone.json +1 -0
  188. package/fixtures/openapi/KubernetesAgentActionCheck/invalid/unproven-state.json +6 -0
  189. package/fixtures/openapi/KubernetesAgentActionCheck/valid/configured-denied.json +9 -0
  190. package/fixtures/openapi/KubernetesAgentActionProfile/invalid/wildcard.json +1 -0
  191. package/fixtures/openapi/KubernetesAgentActionProfile/valid/workbench.json +1 -0
  192. package/fixtures/openapi/KubernetesClusterRegistrationRequest/invalid/action-profile.json +3 -0
  193. package/fixtures/openapi/KubernetesClusterRegistrationRequest/valid/action-profile.json +5 -0
  194. package/fixtures/openapi/KubernetesNodeListEnvelope/invalid/condition-status-boolean.json +17 -0
  195. package/fixtures/openapi/KubernetesNodeListEnvelope/invalid/taint-effect-missing.json +16 -0
  196. package/fixtures/openapi/KubernetesNodeListEnvelope/valid/legacy-fields-absent.json +11 -0
  197. package/fixtures/openapi/KubernetesNodeListEnvelope/valid/no-taints.json +13 -0
  198. package/fixtures/openapi/KubernetesNodeListEnvelope/valid/ready-cordoned-tainted.json +28 -0
  199. package/fixtures/openapi/KubernetesNodeListEnvelope/valid/unknown-fields-null.json +13 -0
  200. package/fixtures/openapi/KubernetesResourceUpdatePlanRequest/invalid/missing-required.json +1 -0
  201. package/fixtures/openapi/KubernetesResourceYaml/invalid/missing-required.json +1 -0
  202. package/fixtures/openapi/KubernetesTopologyCoverage/invalid/empty-as-success.json +5 -0
  203. package/fixtures/openapi/KubernetesTopologyCoverage/valid/not-installed.json +6 -0
  204. package/fixtures/openapi/KubernetesTopologyGraphEdge/invalid/negative-weight.json +8 -0
  205. package/fixtures/openapi/KubernetesTopologyGraphEdge/valid/zero-weight.json +20 -0
  206. package/fixtures/openapi/KubernetesTopologyGraphNode/invalid/fake-flow-kind.json +42 -0
  207. package/fixtures/openapi/KubernetesTopologyGraphNode/valid/rule.json +42 -0
  208. package/fixtures/openapi/KubernetesTopologySnapshot/invalid/raw-source-field.json +33 -0
  209. package/fixtures/openapi/KubernetesTopologySnapshot/valid/projected-source.json +32 -0
  210. package/fixtures/openapi/KubernetesTopologySnapshotRequest/invalid/arbitrary-gvr.json +8 -0
  211. package/fixtures/openapi/KubernetesTopologySnapshotRequest/valid/bounded-sources.json +11 -0
  212. package/fixtures/openapi/KubernetesTopologySourceQuery/invalid/cluster-namespace.json +4 -0
  213. package/fixtures/openapi/KubernetesTopologySourceQuery/valid/all-namespaces.json +4 -0
  214. package/fixtures/openapi/ObservabilityDataSource/invalid/missing-required.json +1 -0
  215. package/fixtures/openapi/PersonalAgentAccess/invalid/invalid.json +1 -0
  216. package/fixtures/openapi/PersonalAgentAccess/valid/valid.json +1 -0
  217. package/fixtures/openapi/PersonalAgentAccessDecision/invalid/invalid.json +1 -0
  218. package/fixtures/openapi/PersonalAgentAccessDecision/valid/valid.json +1 -0
  219. package/fixtures/openapi/PersonalAssistantArtifactListEnvelope/invalid/owner.json +8 -0
  220. package/fixtures/openapi/PersonalAssistantArtifactListEnvelope/valid/side-chat.json +9 -0
  221. package/fixtures/openapi/PersonalAssistantAvatarRequest/invalid/motion.json +1 -0
  222. package/fixtures/openapi/PersonalAssistantAvatarRequest/invalid/owner.json +1 -0
  223. package/fixtures/openapi/PersonalAssistantAvatarRequest/invalid/remote.json +1 -0
  224. package/fixtures/openapi/PersonalAssistantAvatarRequest/invalid/svg.json +1 -0
  225. package/fixtures/openapi/PersonalAssistantAvatarRequest/valid/raster.json +1 -0
  226. package/fixtures/openapi/PersonalAssistantAvatarRequest/valid/reset.json +1 -0
  227. package/fixtures/openapi/PersonalAssistantUpdateRequest/invalid/empty.json +1 -0
  228. package/fixtures/openapi/PersonalAssistantUpdateRequest/invalid/owner.json +1 -0
  229. package/fixtures/openapi/PersonalAssistantUpdateRequest/valid/name.json +1 -0
  230. package/fixtures/openapi/PersonalDockerEnvironmentPolicy/invalid/host-url.json +12 -0
  231. package/fixtures/openapi/PersonalDockerEnvironmentPolicy/invalid/lifetime.json +11 -0
  232. package/fixtures/openapi/PersonalDockerEnvironmentPolicy/invalid/unknown-agent.json +11 -0
  233. package/fixtures/openapi/PersonalDockerEnvironmentPolicy/valid/basic.json +11 -0
  234. package/fixtures/openapi/PersonalEnvironment/invalid/invented-state.json +6 -0
  235. package/fixtures/openapi/PersonalEnvironment/invalid/missing-state.json +5 -0
  236. package/fixtures/openapi/PersonalEnvironment/invalid/negative-generation.json +7 -0
  237. package/fixtures/openapi/PersonalEnvironment/invalid/network.json +23 -0
  238. package/fixtures/openapi/PersonalEnvironment/invalid/private-node.json +24 -0
  239. package/fixtures/openapi/PersonalEnvironment/invalid/unsupported-backend.json +7 -0
  240. package/fixtures/openapi/PersonalEnvironment/valid/deleted.json +23 -0
  241. package/fixtures/openapi/PersonalEnvironment/valid/deleting.json +23 -0
  242. package/fixtures/openapi/PersonalEnvironment/valid/deletion_unknown.json +23 -0
  243. package/fixtures/openapi/PersonalEnvironment/valid/frozen-binding.json +13 -0
  244. package/fixtures/openapi/PersonalEnvironment/valid/ready.json +23 -0
  245. package/fixtures/openapi/PersonalEnvironment/valid/unknown.json +23 -0
  246. package/fixtures/openapi/PersonalEnvironment/valid/unprovisioned.json +6 -0
  247. package/fixtures/openapi/PersonalEnvironmentActionRequest/invalid/command.json +3 -0
  248. package/fixtures/openapi/PersonalEnvironmentActionRequest/invalid/node.json +4 -0
  249. package/fixtures/openapi/PersonalEnvironmentActionRequest/invalid/owner.json +4 -0
  250. package/fixtures/openapi/PersonalEnvironmentActionRequest/invalid/quota.json +10 -0
  251. package/fixtures/openapi/PersonalEnvironmentActionRequest/valid/reconcile.json +3 -0
  252. package/fixtures/openapi/PersonalEnvironmentActionRequest/valid/sleep.json +3 -0
  253. package/fixtures/openapi/PersonalEnvironmentActionRequest/valid/wake.json +4 -0
  254. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/empty-name.json +5 -0
  255. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/long-name.json +5 -0
  256. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/missing-name.json +4 -0
  257. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/owner.json +6 -0
  258. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/invalid/stale-version.json +5 -0
  259. package/fixtures/openapi/PersonalEnvironmentDataDeletionRequest/valid/confirmed.json +5 -0
  260. package/fixtures/openapi/PersonalEnvironmentDataExportRequest/invalid/assistantId.json +4 -0
  261. package/fixtures/openapi/PersonalEnvironmentDataExportRequest/invalid/environmentVersion.json +4 -0
  262. package/fixtures/openapi/PersonalEnvironmentDataExportRequest/invalid/ownerId.json +5 -0
  263. package/fixtures/openapi/PersonalEnvironmentDataExportRequest/valid/current.json +4 -0
  264. package/fixtures/openapi/PersonalEnvironmentEnvelope/invalid/missing-data.json +1 -0
  265. package/fixtures/openapi/PersonalEnvironmentEnvelope/valid/state.json +8 -0
  266. package/fixtures/openapi/PersonalEnvironmentQuota/invalid/cpu.json +7 -0
  267. package/fixtures/openapi/PersonalEnvironmentQuota/invalid/disk.json +7 -0
  268. package/fixtures/openapi/PersonalEnvironmentQuota/invalid/network.json +7 -0
  269. package/fixtures/openapi/PersonalEnvironmentQuota/invalid/processes.json +7 -0
  270. package/fixtures/openapi/PersonalEnvironmentQuota/valid/basic.json +7 -0
  271. package/fixtures/openapi/PersonalEnvironmentTemplate/invalid/mode.json +13 -0
  272. package/fixtures/openapi/PersonalEnvironmentTemplate/invalid/network.json +13 -0
  273. package/fixtures/openapi/PersonalEnvironmentTemplate/invalid/node.json +14 -0
  274. package/fixtures/openapi/PersonalEnvironmentTemplate/valid/template.json +13 -0
  275. package/fixtures/openapi/PersonalEnvironmentTemplateListEnvelope/invalid/missing.json +1 -0
  276. package/fixtures/openapi/PersonalEnvironmentTemplateListEnvelope/invalid/unbounded.json +1317 -0
  277. package/fixtures/openapi/PersonalEnvironmentTemplateListEnvelope/valid/choices.json +17 -0
  278. package/fixtures/openapi/PersonalEnvironmentTemplateListEnvelope/valid/empty.json +3 -0
  279. package/fixtures/openapi/PersonalEnvironmentUsage/invalid/negative.json +6 -0
  280. package/fixtures/openapi/PersonalEnvironmentUsage/valid/usage.json +6 -0
  281. package/fixtures/openapi/PersonalFeedFeedback/invalid/owner.json +4 -0
  282. package/fixtures/openapi/PersonalFeedFeedback/valid/liked.json +3 -0
  283. package/fixtures/openapi/PersonalFeedItem/invalid/no-source.json +9 -0
  284. package/fixtures/openapi/PersonalFeedItem/valid/post.json +15 -0
  285. package/fixtures/openapi/PersonalFeedSettings/invalid/owner.json +6 -0
  286. package/fixtures/openapi/PersonalFeedSettings/valid/default.json +5 -0
  287. package/fixtures/openapi/PersonalGuestPreparationInput/invalid/foreign-owner.json +5 -0
  288. package/fixtures/openapi/PersonalGuestPreparationInput/invalid/unsafe-counter.json +4 -0
  289. package/fixtures/openapi/PersonalGuestPreparationInput/valid/ed25519-csr.json +4 -0
  290. package/fixtures/openapi/PersonalGuestRuntimeEnvelope/invalid/minimal.json +10 -0
  291. package/fixtures/openapi/PersonalGuestRuntimeEnvelope/valid/minimal.json +9 -0
  292. package/fixtures/openapi/PersonalGuestRuntimeInput/invalid/minimal.json +6 -0
  293. package/fixtures/openapi/PersonalGuestRuntimeInput/valid/minimal.json +8 -0
  294. package/fixtures/openapi/PersonalGuestToolsInput/invalid/minimal.json +5 -0
  295. package/fixtures/openapi/PersonalGuestToolsInput/valid/minimal.json +4 -0
  296. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/device.json +15 -0
  297. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/fractional-size.json +15 -0
  298. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/network.json +15 -0
  299. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/owner.json +15 -0
  300. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/provider.json +15 -0
  301. package/fixtures/openapi/PersonalVMEnvironmentPolicy/invalid/unknown.json +16 -0
  302. package/fixtures/openapi/PersonalVMEnvironmentPolicy/valid/pve.json +15 -0
  303. package/fixtures/openapi/PersonalWorkspaceRuntime/invalid/shared.json +3 -0
  304. package/fixtures/openapi/PersonalWorkspaceRuntime/valid/shared.json +4 -0
  305. package/fixtures/openapi/PersonalWorkspaceRuntimeEnvelope/invalid/shared.json +5 -0
  306. package/fixtures/openapi/PersonalWorkspaceRuntimeEnvelope/valid/shared.json +6 -0
  307. package/fixtures/openapi/ResourceMonitoringPanel/invalid/unknown-quality.json +7 -0
  308. package/fixtures/openapi/ResourceMonitoringPanel/valid/not-collected.json +7 -0
  309. package/fixtures/openapi/ResourceMonitoringPoint/invalid/string-zero.json +4 -0
  310. package/fixtures/openapi/ResourceMonitoringPoint/valid/missing.json +4 -0
  311. package/fixtures/openapi/ResourceMonitoringPoint/valid/zero.json +4 -0
  312. package/fixtures/openapi/ResourceMonitoringView/invalid/raw-query.json +12 -0
  313. package/fixtures/openapi/ResourceMonitoringView/valid/unconfigured.json +12 -0
  314. package/fixtures/openapi/SecretGenerateSSHKeyRequest/invalid/task51.json +6 -0
  315. package/fixtures/openapi/SecretGenerateSSHKeyRequest/valid/task51.json +12 -0
  316. package/fixtures/openapi/SecretReferenceUsage/invalid/version.json +6 -0
  317. package/fixtures/openapi/SecretReferenceUsage/valid/version.json +8 -0
  318. package/fixtures/openapi/VMSSHCredentialRedemptionInput/invalid/task51.json +7 -0
  319. package/fixtures/openapi/VMSSHCredentialRedemptionInput/valid/task51.json +6 -0
  320. package/fixtures/openapi/VirtualMachineAccessBindingInput/invalid/task51.json +10 -0
  321. package/fixtures/openapi/VirtualMachineAccessBindingInput/valid/task51.json +10 -0
  322. package/fixtures/openapi/VirtualMachineActionInput/invalid/capacity-not-boolean.json +1 -0
  323. package/fixtures/openapi/VirtualMachineActionInput/valid/new-data-with-admission.json +1 -0
  324. package/fixtures/openapi/VirtualMachineCreateInput/valid/cloud-image.json +12 -0
  325. package/fixtures/openapi/VirtualMachineDiskChange/invalid/serial-config-injection.json +1 -0
  326. package/fixtures/openapi/VirtualMachineDiskChange/invalid/serial-existing-disk.json +1 -0
  327. package/fixtures/openapi/VirtualMachineDiskChange/invalid/serial-too-long.json +1 -0
  328. package/fixtures/openapi/VirtualMachineDiskChange/valid/personal-data.json +1 -0
  329. package/fixtures/openapi/VirtualMachineGuestAccessInput/invalid/task51.json +4 -0
  330. package/fixtures/openapi/VirtualMachineGuestAccessInput/valid/task51.json +6 -0
  331. package/fixtures/openapi/VirtualMachineSSHCommand/invalid/task51.json +9 -0
  332. package/fixtures/openapi/VirtualMachineSSHCommand/valid/task51.json +8 -0
  333. package/fixtures/openapi/VirtualMachineSSHCommandInput/invalid/task51.json +5 -0
  334. package/fixtures/openapi/VirtualMachineSSHCommandInput/valid/task51.json +5 -0
  335. package/fixtures/openapi/VirtualMachineSSHFrame/invalid/encoding.json +5 -0
  336. package/fixtures/openapi/VirtualMachineSSHFrame/invalid/task51.json +4 -0
  337. package/fixtures/openapi/VirtualMachineSSHFrame/valid/binary.json +5 -0
  338. package/fixtures/openapi/VirtualMachineSSHFrame/valid/task51.json +5 -0
  339. package/fixtures/openapi/VirtualMachineSSHSessionInput/invalid/task51.json +4 -0
  340. package/fixtures/openapi/VirtualMachineSSHSessionInput/valid/task51.json +5 -0
  341. package/fixtures/openapi/VirtualizationCapacityPolicyInput/invalid/task51.json +12 -0
  342. package/fixtures/openapi/VirtualizationCapacityPolicyInput/valid/task51.json +13 -0
  343. package/fixtures/openapi/VirtualizationImageInput/invalid/cloud-image-config-type.json +6 -0
  344. package/fixtures/openapi/VirtualizationImageInput/valid/cloud-image.json +11 -0
  345. package/fixtures/openapi/WorkbenchAssistantTask/invalid/kind.json +1 -0
  346. package/fixtures/openapi/WorkbenchAssistantTask/invalid/owner.json +1 -0
  347. package/fixtures/openapi/WorkbenchAssistantTask/valid/generate.json +1 -0
  348. package/fixtures/openapi/WorkbenchAssistantTask/valid/undo.json +1 -0
  349. package/fixtures/openapi/WorkbenchContextSelection/invalid/remote-image.json +1 -0
  350. package/fixtures/openapi/WorkbenchContextSelection/invalid/too-many-images.json +1 -0
  351. package/fixtures/openapi/WorkbenchContextSelection/valid/chat-image.json +9 -0
  352. package/fixtures/openapi/WorkbenchContextUsage/invalid/fractional-capacity.json +1 -0
  353. package/fixtures/openapi/WorkbenchContextUsage/invalid/negative.json +1 -0
  354. package/fixtures/openapi/WorkbenchContextUsage/valid/reported.json +1 -0
  355. package/fixtures/openapi/WorkbenchContextUsage/valid/unknown.json +1 -0
  356. package/fixtures/openapi/WorkbenchMainSessionRequest/invalid/owner.json +1 -0
  357. package/fixtures/openapi/WorkbenchMainSessionRequest/invalid/provider.json +1 -0
  358. package/fixtures/openapi/WorkbenchMainSessionRequest/valid/empty.json +1 -0
  359. package/fixtures/openapi/WorkbenchMainSessionRequest/valid/provider.json +1 -0
  360. package/fixtures/openapi/WorkbenchMessageSearchPage/invalid/role.json +12 -0
  361. package/fixtures/openapi/WorkbenchMessageSearchPage/valid/page.json +12 -0
  362. package/fixtures/openapi/WorkbenchMessageWindow/invalid/missing.json +1 -0
  363. package/fixtures/openapi/WorkbenchMessageWindow/valid/empty.json +3 -0
  364. package/fixtures/openapi/WorkbenchModelOption/invalid/zero-capacity.json +1 -0
  365. package/fixtures/openapi/WorkbenchModelOption/valid/capacity.json +1 -0
  366. package/fixtures/openapi/WorkbenchModelOption/valid/unknown.json +1 -0
  367. package/fixtures/openapi/WorkbenchProfessionalCapabilityInput/invalid/basic.json +7 -0
  368. package/fixtures/openapi/WorkbenchProfessionalCapabilityInput/valid/basic.json +11 -0
  369. package/fixtures/openapi/WorkbenchProfessionalCapabilityInput/valid/selected-profile.json +23 -0
  370. package/fixtures/openapi/WorkbenchSendMessageStreamRequest/invalid/missing-required.json +1 -0
  371. package/fixtures/openapi/WorkbenchSendMessageStreamRequest/valid/mixed-professional-task.json +22 -0
  372. package/fixtures/openapi/WorkbenchTaskIntent/invalid/basic.json +5 -0
  373. package/fixtures/openapi/WorkbenchTaskIntent/invalid/oversized-capability-source.json +3 -0
  374. package/fixtures/openapi/WorkbenchTaskIntent/valid/basic.json +9 -0
  375. package/fixtures/openapi/WorkbenchTaskIntent/valid/independent-sources.json +17 -0
  376. package/gen/go/sohaapi/client.go +1 -1
  377. package/gen/go/sohaapi/kubernetes_monitoring_test.go +67 -0
  378. package/gen/go/sohaapi/personal_environment_test.go +25 -0
  379. package/gen/go/sohaapi/types.go +3460 -433
  380. package/gen/go/sohaapi/vm_disk_test.go +21 -0
  381. package/gen/ts/sohaapi/index.ts +5454 -1397
  382. package/go.mod +61 -49
  383. package/go.sum +202 -176
  384. package/knowledge/connector-definition.schema.json +6 -1
  385. package/knowledge/source-import-policy.schema.json +32 -0
  386. package/memory/memory-record.schema.json +1 -1
  387. package/openapi/soha-api.json +24199 -16810
  388. package/openapi/soha-api.yaml +2537 -14
  389. package/openapi/spec_generated.go +3 -3
  390. package/openapi/spec_test.go +34 -0
  391. package/package.json +19 -3
  392. package/resource/agent_access.go +12 -0
  393. package/resource/agent_profiles.go +62 -0
  394. package/resource/agent_profiles_test.go +36 -0
  395. package/resource/kubernetes_kinds.go +73 -0
  396. package/resource/kubernetes_kinds_test.go +38 -0
  397. package/resource/models.go +23 -14
  398. package/resource/network_topology.go +166 -0
  399. package/resource/network_topology_projection.go +208 -0
  400. package/resource/network_topology_projection_test.go +53 -0
  401. package/resource/network_topology_test.go +51 -0
  402. package/resource/network_topology_validation.go +29 -0
  403. package/resource/node_drain.go +34 -0
  404. package/resource/resource_monitoring.go +99 -0
  405. package/resource/runtime/network_topology.go +232 -0
  406. package/resource/runtime/network_topology_test.go +62 -0
  407. package/resource/runtime/node_drain.go +124 -0
  408. package/resource/runtime/node_drain_test.go +95 -0
  409. package/resource/runtime/resource_edit.go +128 -0
  410. package/resource/runtime/resource_edit_test.go +183 -0
  411. package/resource/runtime/resource_monitoring.go +243 -0
  412. package/resource/runtime/resource_monitoring_test.go +88 -0
  413. /package/fixtures/openapi/DeliveryExecutionHistoryPage/{invalid-kind.json → invalid/invalid-kind.json} +0 -0
  414. /package/fixtures/openapi/DeliveryExecutionHistoryPage/{valid-build.json → valid/valid-build.json} +0 -0
  415. /package/fixtures/openapi/DeliveryExecutionHistoryPage/{valid-empty.json → valid/valid-empty.json} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "authorization.opensoha.io/v1",
3
3
  "catalogVersion": "2.0.0",
4
- "contentHash": "sha256:be2c1caf05e680f75b40e6ce017e55f1c35f7977cf045ca3ec562adbd6cb37dc",
4
+ "contentHash": "sha256:2d98b53189afa67c09a2917325e3b1b1b70aafe00d370bdabaef7d6b11ef493c",
5
5
  "permissions": [
6
6
  {
7
7
  "key": "access.directory.create",
@@ -8504,6 +8504,54 @@
8504
8504
  "status": "active",
8505
8505
  "assignable": true
8506
8506
  },
8507
+ {
8508
+ "key": "platform.network.backend-tls-policies.create",
8509
+ "domain": "platform",
8510
+ "resource": "network.backend-tls-policies",
8511
+ "action": "create",
8512
+ "displayName": "创建 Kubernetes BackendTLSPolicy",
8513
+ "riskLevel": "mutate",
8514
+ "scopeKinds": [
8515
+ "cluster",
8516
+ "namespace",
8517
+ "resource"
8518
+ ],
8519
+ "approvalPolicy": "never",
8520
+ "status": "active",
8521
+ "assignable": true
8522
+ },
8523
+ {
8524
+ "key": "platform.network.backend-tls-policies.delete",
8525
+ "domain": "platform",
8526
+ "resource": "network.backend-tls-policies",
8527
+ "action": "delete",
8528
+ "displayName": "删除 Kubernetes BackendTLSPolicy",
8529
+ "riskLevel": "high",
8530
+ "scopeKinds": [
8531
+ "cluster",
8532
+ "namespace",
8533
+ "resource"
8534
+ ],
8535
+ "approvalPolicy": "eligible",
8536
+ "status": "active",
8537
+ "assignable": true
8538
+ },
8539
+ {
8540
+ "key": "platform.network.backend-tls-policies.update",
8541
+ "domain": "platform",
8542
+ "resource": "network.backend-tls-policies",
8543
+ "action": "update",
8544
+ "displayName": "修改 Kubernetes BackendTLSPolicy",
8545
+ "riskLevel": "mutate",
8546
+ "scopeKinds": [
8547
+ "cluster",
8548
+ "namespace",
8549
+ "resource"
8550
+ ],
8551
+ "approvalPolicy": "never",
8552
+ "status": "active",
8553
+ "assignable": true
8554
+ },
8507
8555
  {
8508
8556
  "key": "platform.network.backend-tls-policies.view",
8509
8557
  "domain": "platform",
@@ -8755,6 +8803,54 @@
8755
8803
  "platform.network.view"
8756
8804
  ]
8757
8805
  },
8806
+ {
8807
+ "key": "platform.network.grpc-routes.create",
8808
+ "domain": "platform",
8809
+ "resource": "network.grpc-routes",
8810
+ "action": "create",
8811
+ "displayName": "创建 Kubernetes GRPCRoute",
8812
+ "riskLevel": "mutate",
8813
+ "scopeKinds": [
8814
+ "cluster",
8815
+ "namespace",
8816
+ "resource"
8817
+ ],
8818
+ "approvalPolicy": "never",
8819
+ "status": "active",
8820
+ "assignable": true
8821
+ },
8822
+ {
8823
+ "key": "platform.network.grpc-routes.delete",
8824
+ "domain": "platform",
8825
+ "resource": "network.grpc-routes",
8826
+ "action": "delete",
8827
+ "displayName": "删除 Kubernetes GRPCRoute",
8828
+ "riskLevel": "high",
8829
+ "scopeKinds": [
8830
+ "cluster",
8831
+ "namespace",
8832
+ "resource"
8833
+ ],
8834
+ "approvalPolicy": "eligible",
8835
+ "status": "active",
8836
+ "assignable": true
8837
+ },
8838
+ {
8839
+ "key": "platform.network.grpc-routes.update",
8840
+ "domain": "platform",
8841
+ "resource": "network.grpc-routes",
8842
+ "action": "update",
8843
+ "displayName": "修改 Kubernetes GRPCRoute",
8844
+ "riskLevel": "mutate",
8845
+ "scopeKinds": [
8846
+ "cluster",
8847
+ "namespace",
8848
+ "resource"
8849
+ ],
8850
+ "approvalPolicy": "never",
8851
+ "status": "active",
8852
+ "assignable": true
8853
+ },
8758
8854
  {
8759
8855
  "key": "platform.network.grpc-routes.view",
8760
8856
  "domain": "platform",
@@ -8775,6 +8871,54 @@
8775
8871
  "platform.network.view"
8776
8872
  ]
8777
8873
  },
8874
+ {
8875
+ "key": "platform.network.http-routes.create",
8876
+ "domain": "platform",
8877
+ "resource": "network.http-routes",
8878
+ "action": "create",
8879
+ "displayName": "创建 Kubernetes HTTPRoute",
8880
+ "riskLevel": "mutate",
8881
+ "scopeKinds": [
8882
+ "cluster",
8883
+ "namespace",
8884
+ "resource"
8885
+ ],
8886
+ "approvalPolicy": "never",
8887
+ "status": "active",
8888
+ "assignable": true
8889
+ },
8890
+ {
8891
+ "key": "platform.network.http-routes.delete",
8892
+ "domain": "platform",
8893
+ "resource": "network.http-routes",
8894
+ "action": "delete",
8895
+ "displayName": "删除 Kubernetes HTTPRoute",
8896
+ "riskLevel": "high",
8897
+ "scopeKinds": [
8898
+ "cluster",
8899
+ "namespace",
8900
+ "resource"
8901
+ ],
8902
+ "approvalPolicy": "eligible",
8903
+ "status": "active",
8904
+ "assignable": true
8905
+ },
8906
+ {
8907
+ "key": "platform.network.http-routes.update",
8908
+ "domain": "platform",
8909
+ "resource": "network.http-routes",
8910
+ "action": "update",
8911
+ "displayName": "修改 Kubernetes HTTPRoute",
8912
+ "riskLevel": "mutate",
8913
+ "scopeKinds": [
8914
+ "cluster",
8915
+ "namespace",
8916
+ "resource"
8917
+ ],
8918
+ "approvalPolicy": "never",
8919
+ "status": "active",
8920
+ "assignable": true
8921
+ },
8778
8922
  {
8779
8923
  "key": "platform.network.http-routes.view",
8780
8924
  "domain": "platform",
@@ -9084,6 +9228,54 @@
9084
9228
  "platform.network.view"
9085
9229
  ]
9086
9230
  },
9231
+ {
9232
+ "key": "platform.network.reference-grants.create",
9233
+ "domain": "platform",
9234
+ "resource": "network.reference-grants",
9235
+ "action": "create",
9236
+ "displayName": "创建 Kubernetes ReferenceGrant",
9237
+ "riskLevel": "mutate",
9238
+ "scopeKinds": [
9239
+ "cluster",
9240
+ "namespace",
9241
+ "resource"
9242
+ ],
9243
+ "approvalPolicy": "never",
9244
+ "status": "active",
9245
+ "assignable": true
9246
+ },
9247
+ {
9248
+ "key": "platform.network.reference-grants.delete",
9249
+ "domain": "platform",
9250
+ "resource": "network.reference-grants",
9251
+ "action": "delete",
9252
+ "displayName": "删除 Kubernetes ReferenceGrant",
9253
+ "riskLevel": "high",
9254
+ "scopeKinds": [
9255
+ "cluster",
9256
+ "namespace",
9257
+ "resource"
9258
+ ],
9259
+ "approvalPolicy": "eligible",
9260
+ "status": "active",
9261
+ "assignable": true
9262
+ },
9263
+ {
9264
+ "key": "platform.network.reference-grants.update",
9265
+ "domain": "platform",
9266
+ "resource": "network.reference-grants",
9267
+ "action": "update",
9268
+ "displayName": "修改 Kubernetes ReferenceGrant",
9269
+ "riskLevel": "mutate",
9270
+ "scopeKinds": [
9271
+ "cluster",
9272
+ "namespace",
9273
+ "resource"
9274
+ ],
9275
+ "approvalPolicy": "never",
9276
+ "status": "active",
9277
+ "assignable": true
9278
+ },
9087
9279
  {
9088
9280
  "key": "platform.network.reference-grants.view",
9089
9281
  "domain": "platform",
@@ -9358,6 +9550,22 @@
9358
9550
  "enable"
9359
9551
  ]
9360
9552
  },
9553
+ {
9554
+ "key": "platform.pods.create",
9555
+ "domain": "platform",
9556
+ "resource": "pods",
9557
+ "action": "create",
9558
+ "displayName": "创建 Kubernetes Pod",
9559
+ "riskLevel": "mutate",
9560
+ "scopeKinds": [
9561
+ "cluster",
9562
+ "namespace",
9563
+ "resource"
9564
+ ],
9565
+ "approvalPolicy": "never",
9566
+ "status": "active",
9567
+ "assignable": true
9568
+ },
9361
9569
  {
9362
9570
  "key": "platform.pods.delete",
9363
9571
  "domain": "platform",
@@ -9537,6 +9745,81 @@
9537
9745
  "status": "active",
9538
9746
  "assignable": true
9539
9747
  },
9748
+ {
9749
+ "key": "platform.resource-monitoring.conntrack.view",
9750
+ "domain": "platform",
9751
+ "resource": "resource-monitoring.conntrack",
9752
+ "action": "view",
9753
+ "displayName": "查看资源监控连接跟踪",
9754
+ "riskLevel": "read",
9755
+ "scopeKinds": [
9756
+ "workspace",
9757
+ "cluster"
9758
+ ],
9759
+ "approvalPolicy": "never",
9760
+ "status": "active",
9761
+ "assignable": true
9762
+ },
9763
+ {
9764
+ "key": "platform.resource-monitoring.cpu.view",
9765
+ "domain": "platform",
9766
+ "resource": "resource-monitoring.cpu",
9767
+ "action": "view",
9768
+ "displayName": "查看资源监控CPU",
9769
+ "riskLevel": "read",
9770
+ "scopeKinds": [
9771
+ "workspace",
9772
+ "cluster"
9773
+ ],
9774
+ "approvalPolicy": "never",
9775
+ "status": "active",
9776
+ "assignable": true
9777
+ },
9778
+ {
9779
+ "key": "platform.resource-monitoring.memory.view",
9780
+ "domain": "platform",
9781
+ "resource": "resource-monitoring.memory",
9782
+ "action": "view",
9783
+ "displayName": "查看资源监控内存",
9784
+ "riskLevel": "read",
9785
+ "scopeKinds": [
9786
+ "workspace",
9787
+ "cluster"
9788
+ ],
9789
+ "approvalPolicy": "never",
9790
+ "status": "active",
9791
+ "assignable": true
9792
+ },
9793
+ {
9794
+ "key": "platform.resource-monitoring.overview.view",
9795
+ "domain": "platform",
9796
+ "resource": "resource-monitoring.overview",
9797
+ "action": "view",
9798
+ "displayName": "查看资源监控总览",
9799
+ "riskLevel": "read",
9800
+ "scopeKinds": [
9801
+ "workspace",
9802
+ "cluster"
9803
+ ],
9804
+ "approvalPolicy": "never",
9805
+ "status": "active",
9806
+ "assignable": true
9807
+ },
9808
+ {
9809
+ "key": "platform.resource-monitoring.pods.view",
9810
+ "domain": "platform",
9811
+ "resource": "resource-monitoring.pods",
9812
+ "action": "view",
9813
+ "displayName": "查看资源监控Pod 容量",
9814
+ "riskLevel": "read",
9815
+ "scopeKinds": [
9816
+ "workspace",
9817
+ "cluster"
9818
+ ],
9819
+ "approvalPolicy": "never",
9820
+ "status": "active",
9821
+ "assignable": true
9822
+ },
9540
9823
  {
9541
9824
  "key": "platform.storage.persistent-volume-claims.create",
9542
9825
  "domain": "platform",
@@ -10183,6 +10466,22 @@
10183
10466
  "create"
10184
10467
  ]
10185
10468
  },
10469
+ {
10470
+ "key": "platform.workloads.replication-controllers.delete",
10471
+ "domain": "platform",
10472
+ "resource": "workloads.replication-controllers",
10473
+ "action": "delete",
10474
+ "displayName": "删除 Kubernetes ReplicationController",
10475
+ "riskLevel": "high",
10476
+ "scopeKinds": [
10477
+ "cluster",
10478
+ "namespace",
10479
+ "resource"
10480
+ ],
10481
+ "approvalPolicy": "eligible",
10482
+ "status": "active",
10483
+ "assignable": true
10484
+ },
10186
10485
  {
10187
10486
  "key": "platform.workloads.replication-controllers.update",
10188
10487
  "domain": "platform",
@@ -11886,6 +12185,37 @@
11886
12185
  "status": "active",
11887
12186
  "assignable": true
11888
12187
  },
12188
+ {
12189
+ "key": "virtualization.vm_access.update",
12190
+ "domain": "virtualization",
12191
+ "resource": "vm_access",
12192
+ "action": "update",
12193
+ "displayName": "管理虚拟机登录绑定",
12194
+ "riskLevel": "mutate",
12195
+ "scopeKinds": [
12196
+ "workspace",
12197
+ "resource"
12198
+ ],
12199
+ "approvalPolicy": "never",
12200
+ "status": "active",
12201
+ "assignable": true,
12202
+ "legacyAliases": []
12203
+ },
12204
+ {
12205
+ "key": "virtualization.vms.connect",
12206
+ "domain": "virtualization",
12207
+ "resource": "vms",
12208
+ "action": "connect",
12209
+ "displayName": "连接虚拟机 SSH",
12210
+ "riskLevel": "execute",
12211
+ "scopeKinds": [
12212
+ "workspace",
12213
+ "resource"
12214
+ ],
12215
+ "approvalPolicy": "never",
12216
+ "status": "active",
12217
+ "assignable": true
12218
+ },
11889
12219
  {
11890
12220
  "key": "virtualization.vms.console",
11891
12221
  "domain": "virtualization",
@@ -41,6 +41,11 @@
41
41
  ]
42
42
  },
43
43
  "sessionId": { "type": "string" },
44
+ "authzVersion": {
45
+ "type": "integer",
46
+ "minimum": 1,
47
+ "description": "Authorization version at session access-token issuance. A version mismatch invalidates this token even after its session refreshes. Legacy tokens without this field require an authoritative current-identity lookup; their embedded roles must not restore revoked grants."
48
+ },
44
49
  "subjectType": {
45
50
  "type": "string",
46
51
  "enum": ["user", "service_account", "runner", "anonymous"]
@@ -1,6 +1,7 @@
1
1
  {
2
- "soha": "e022021d9f8da8917c135671f92248ef19f2b5b4",
3
- "soha-web": "816ec0fb82e6e804f0f66d47d3446a7b5baeabc1",
2
+ "soha": "57bfa94873ff2825bccc6312842859011c1ec23a",
3
+ "soha-web": "447cbe5358802ef40d86ac67b7b59c5afe9c846a",
4
+ "soha-app": "0c3c76c373246f7d2218b48f68b89bf3097f777b",
4
5
  "soha-cli": "1c9b760c986a9c1a5148db55b72ab99d23edd7a3",
5
6
  "soha-agent": "af1efc0b0cd6bb544153429fa28244dd6cc81ac7",
6
7
  "soha-skills": "bc115fab583d00d4cc7350d8f314077d11bb5488"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.23",
2
+ "version": "0.1.25",
3
3
  "schemas": {
4
4
  "plugins/plugin-manifest.schema.json": {
5
5
  "rootRequired": ["id", "name", "publisher", "type", "version"],
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.23",
2
+ "version": "0.1.25",
3
3
  "generatedFrom": "openapi/soha-api.yaml",
4
4
  "entries": [
5
5
  {
@@ -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
+ }