@opensoha/contracts 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMPATIBILITY.md +306 -0
- package/LICENSE +201 -0
- package/README.md +224 -0
- package/agent/agent-checkpoint.schema.json +19 -0
- package/agent/agent-observation.schema.json +20 -0
- package/agent/agent-protocol.schema.json +717 -0
- package/agent/agent-provider-definition.schema.json +44 -0
- package/agent/agent-provider-registry.schema.json +25 -0
- package/agent/agent-provider-runtime-event.schema.json +26 -0
- package/agent/agent-run-step.schema.json +24 -0
- package/agent/conformance-run.schema.json +19 -0
- package/agent/environment-lease.schema.json +31 -0
- package/agent/environment-snapshot.schema.json +26 -0
- package/agent/environment-template.schema.json +19 -0
- package/agent/fleet-target.schema.json +15 -0
- package/agent/multi-agent-plan.schema.json +18 -0
- package/agent/provider-rollout.schema.json +19 -0
- package/apiresponse/response.go +25 -0
- package/apiresponse/response_test.go +27 -0
- package/auth/token-claims.schema.json +78 -0
- package/capabilities/cluster-capability-matrix.schema.json +87 -0
- package/compat/json-schema-ecosystem-0.1.0.json +59 -0
- package/compat/openapi-0.1.0.snapshot.json +5076 -0
- package/compat/openapi-loose-boundaries-0.1.0.json +769 -0
- package/connectors/connector-event-envelope.schema.json +64 -0
- package/evaluation/evaluation-dataset.schema.json +28 -0
- package/evaluation/evaluation-result.schema.json +18 -0
- package/evaluation/evaluation-run.schema.json +19 -0
- package/evaluation/executor-profile.schema.json +18 -0
- package/evaluation/feedback-sample.schema.json +20 -0
- package/evaluation/gate-decision.schema.json +20 -0
- package/evaluation/gate-policy.schema.json +18 -0
- package/evaluation/replay-plan.schema.json +17 -0
- package/evaluation/sample-attempt.schema.json +22 -0
- package/events/event-envelope.schema.json +58 -0
- package/examples/agent-profile/k8s-sre-readonly.json +16 -0
- package/examples/cluster-capability-matrix/runtime-parity.json +40 -0
- package/examples/connector-event-envelope/feishu-message.json +19 -0
- package/examples/gateway-capability-baseline/minimal.json +61 -0
- package/examples/gateway-manifest/minimal.json +72 -0
- package/examples/governance/approval-request.json +35 -0
- package/examples/governance/audit-log.json +14 -0
- package/examples/marketplace-catalog/default.json +75 -0
- package/examples/mcp-preset/k8s-readonly.json +20 -0
- package/examples/openapi/agent-run-tool-call-request.json +11 -0
- package/examples/openapi/agent-tool-call-result-envelope.json +19 -0
- package/examples/openapi/cloud-extension-point-list-envelope.json +15 -0
- package/examples/openapi/directory-runtime-status-envelope.json +31 -0
- package/examples/openapi/gateway-manifest-envelope.json +53 -0
- package/examples/openapi/tool-invocation-request.json +14 -0
- package/examples/openapi/tool-invocation-result-envelope.json +23 -0
- package/examples/plugin-manifest/compute-provider.json +27 -0
- package/examples/plugin-manifest/connector.json +76 -0
- package/examples/plugin-manifest/skill-pack.json +47 -0
- package/examples/runner-operation-lifecycle/late-callback.json +27 -0
- package/examples/skill-manifest/k8s-sre.json +22 -0
- package/examples/token-claims/service-account.json +15 -0
- package/fixtures/json-schema/agent-checkpoint/invalid/raw-state.json +1 -0
- package/fixtures/json-schema/agent-checkpoint/valid/minimal.json +1 -0
- package/fixtures/json-schema/agent-observation/invalid/extra-secret.json +1 -0
- package/fixtures/json-schema/agent-observation/valid/tool.json +1 -0
- package/fixtures/json-schema/agent-profile/invalid/missing-scope.json +15 -0
- package/fixtures/json-schema/agent-profile/valid/k8s-sre-readonly.json +35 -0
- package/fixtures/json-schema/agent-protocol/invalid/missing-agent-id.json +3 -0
- package/fixtures/json-schema/agent-protocol/valid/agent-run-callback-legacy.json +9 -0
- package/fixtures/json-schema/agent-protocol/valid/agent-run-callback-with-events.json +39 -0
- package/fixtures/json-schema/agent-protocol/valid/execution-task-claim.json +5 -0
- package/fixtures/json-schema/agent-provider-definition/invalid/missing-command.json +1 -0
- package/fixtures/json-schema/agent-provider-definition/valid/cli.json +1 -0
- package/fixtures/json-schema/agent-provider-registry/invalid/zero-revision.json +1 -0
- package/fixtures/json-schema/agent-provider-registry/valid/minimal.json +1 -0
- package/fixtures/json-schema/agent-provider-runtime-event/invalid/health-without-provider.json +1 -0
- package/fixtures/json-schema/agent-provider-runtime-event/valid/ack.json +1 -0
- package/fixtures/json-schema/agent-run-step/invalid/unknown-state.json +1 -0
- package/fixtures/json-schema/agent-run-step/valid/running.json +1 -0
- package/fixtures/json-schema/approval-request/invalid/missing-status.json +12 -0
- package/fixtures/json-schema/approval-request/valid/high-risk-tool.json +56 -0
- package/fixtures/json-schema/audit-log/invalid/extra-field.json +10 -0
- package/fixtures/json-schema/audit-log/valid/tool-denied.json +23 -0
- package/fixtures/json-schema/cluster-capability-matrix/invalid/missing-agent-support.json +16 -0
- package/fixtures/json-schema/cluster-capability-matrix/invalid/partial-without-reason.json +18 -0
- package/fixtures/json-schema/cluster-capability-matrix/valid/runtime-parity.json +59 -0
- package/fixtures/json-schema/conformance-run/invalid/missing.json +1 -0
- package/fixtures/json-schema/conformance-run/valid/passed.json +1 -0
- package/fixtures/json-schema/connector-checkpoint/invalid/missing.json +1 -0
- package/fixtures/json-schema/connector-checkpoint/valid/http.json +1 -0
- package/fixtures/json-schema/connector-definition/invalid/missing.json +1 -0
- package/fixtures/json-schema/connector-definition/valid/http.json +1 -0
- package/fixtures/json-schema/connector-event-envelope/invalid/missing-payload.json +11 -0
- package/fixtures/json-schema/connector-event-envelope/invalid/unknown-top-level-field.json +13 -0
- package/fixtures/json-schema/connector-event-envelope/valid/feishu-message.json +19 -0
- package/fixtures/json-schema/context-envelope/invalid/envelope.json +1 -0
- package/fixtures/json-schema/context-envelope/valid/envelope.json +1 -0
- package/fixtures/json-schema/environment-lease/invalid/unbounded.json +1 -0
- package/fixtures/json-schema/environment-lease/valid/observe.json +1 -0
- package/fixtures/json-schema/environment-snapshot/invalid/negative-usage.json +1 -0
- package/fixtures/json-schema/environment-snapshot/valid/active.json +1 -0
- package/fixtures/json-schema/environment-template/invalid/missing.json +1 -0
- package/fixtures/json-schema/environment-template/valid/container.json +1 -0
- package/fixtures/json-schema/evaluation-dataset/invalid/no-samples.json +1 -0
- package/fixtures/json-schema/evaluation-dataset/valid/minimal.json +1 -0
- package/fixtures/json-schema/evaluation-result/invalid/bad-score.json +1 -0
- package/fixtures/json-schema/evaluation-result/valid/passed.json +1 -0
- package/fixtures/json-schema/evaluation-run/invalid/no-candidate.json +1 -0
- package/fixtures/json-schema/evaluation-run/valid/running.json +1 -0
- package/fixtures/json-schema/event-envelope/invalid/bad-severity.json +7 -0
- package/fixtures/json-schema/event-envelope/valid/minimal.json +14 -0
- package/fixtures/json-schema/executor-profile/invalid/missing.json +1 -0
- package/fixtures/json-schema/executor-profile/valid/readonly.json +1 -0
- package/fixtures/json-schema/feedback-sample/invalid/missing.json +1 -0
- package/fixtures/json-schema/feedback-sample/valid/pending.json +1 -0
- package/fixtures/json-schema/fleet-target/invalid/missing.json +1 -0
- package/fixtures/json-schema/fleet-target/valid/linux.json +1 -0
- package/fixtures/json-schema/gate-decision/invalid/missing.json +1 -0
- package/fixtures/json-schema/gate-decision/valid/pass.json +1 -0
- package/fixtures/json-schema/gate-policy/invalid/missing.json +1 -0
- package/fixtures/json-schema/gate-policy/valid/release.json +1 -0
- package/fixtures/json-schema/gateway-capability-baseline/invalid/missing-owner.json +32 -0
- package/fixtures/json-schema/gateway-capability-baseline/valid/minimal.json +61 -0
- package/fixtures/json-schema/gateway-manifest/invalid/bad-risk-level.json +37 -0
- package/fixtures/json-schema/gateway-manifest/valid/minimal.json +48 -0
- package/fixtures/json-schema/graph-revision/invalid/missing.json +1 -0
- package/fixtures/json-schema/graph-revision/valid/active.json +1 -0
- package/fixtures/json-schema/index-publish/invalid/missing.json +1 -0
- package/fixtures/json-schema/index-publish/valid/publish.json +1 -0
- package/fixtures/json-schema/ingestion-job/invalid/missing.json +1 -0
- package/fixtures/json-schema/ingestion-job/valid/queued.json +1 -0
- package/fixtures/json-schema/ingestion-stage/invalid/missing.json +1 -0
- package/fixtures/json-schema/ingestion-stage/valid/succeeded.json +1 -0
- package/fixtures/json-schema/knowledge-base/invalid/base.json +1 -0
- package/fixtures/json-schema/knowledge-base/valid/base.json +1 -0
- package/fixtures/json-schema/knowledge-search/invalid/search.json +1 -0
- package/fixtures/json-schema/knowledge-search/valid/search.json +1 -0
- package/fixtures/json-schema/knowledge-source/invalid/source.json +1 -0
- package/fixtures/json-schema/knowledge-source/valid/source.json +1 -0
- package/fixtures/json-schema/marketplace-catalog/invalid/missing-source.json +5 -0
- package/fixtures/json-schema/marketplace-catalog/valid/minimal.json +44 -0
- package/fixtures/json-schema/mcp-preset/invalid/bad-risk-level.json +20 -0
- package/fixtures/json-schema/mcp-preset/valid/k8s-readonly.json +40 -0
- package/fixtures/json-schema/memory-policy/invalid/missing.json +1 -0
- package/fixtures/json-schema/memory-policy/valid/explicit.json +1 -0
- package/fixtures/json-schema/memory-record/invalid/missing.json +1 -0
- package/fixtures/json-schema/memory-record/valid/explicit.json +1 -0
- package/fixtures/json-schema/multi-agent-plan/invalid/missing.json +1 -0
- package/fixtures/json-schema/multi-agent-plan/valid/running.json +1 -0
- package/fixtures/json-schema/observability-log-query-v1/invalid/missing-query.json +6 -0
- package/fixtures/json-schema/observability-log-query-v1/valid/request.json +15 -0
- package/fixtures/json-schema/observability-log-query-v1/valid/response.json +13 -0
- package/fixtures/json-schema/plugin-manifest/invalid/bad-type.json +7 -0
- package/fixtures/json-schema/plugin-manifest/invalid/logs-query-without-action.json +28 -0
- package/fixtures/json-schema/plugin-manifest/invalid/manifest-only-observability-provider.json +26 -0
- package/fixtures/json-schema/plugin-manifest/invalid/manifest-only-read-provider.json +23 -0
- package/fixtures/json-schema/plugin-manifest/invalid/write-provider-without-actions.json +23 -0
- package/fixtures/json-schema/plugin-manifest/valid/compute-provider.json +25 -0
- package/fixtures/json-schema/plugin-manifest/valid/minimal.json +14 -0
- package/fixtures/json-schema/plugin-manifest/valid/observability-provider.json +29 -0
- package/fixtures/json-schema/project-manifest/invalid/inline-secret.json +14 -0
- package/fixtures/json-schema/project-manifest/valid/demo.json +21 -0
- package/fixtures/json-schema/provider-rollout/invalid/missing.json +1 -0
- package/fixtures/json-schema/provider-rollout/valid/canary.json +1 -0
- package/fixtures/json-schema/replay-plan/invalid/missing.json +1 -0
- package/fixtures/json-schema/replay-plan/valid/readonly.json +1 -0
- package/fixtures/json-schema/retrieval-trace/invalid/missing.json +1 -0
- package/fixtures/json-schema/retrieval-trace/valid/grounded.json +1 -0
- package/fixtures/json-schema/runner-operation-lifecycle/invalid/bad-state.json +7 -0
- package/fixtures/json-schema/runner-operation-lifecycle/invalid/missing-runner-id.json +6 -0
- package/fixtures/json-schema/runner-operation-lifecycle/valid/final-failed.json +27 -0
- package/fixtures/json-schema/runner-operation-lifecycle/valid/heartbeat.json +19 -0
- package/fixtures/json-schema/sample-attempt/invalid/missing.json +1 -0
- package/fixtures/json-schema/sample-attempt/valid/completed.json +1 -0
- package/fixtures/json-schema/skill-manifest/invalid/bad-id.json +5 -0
- package/fixtures/json-schema/skill-manifest/valid/minimal.json +8 -0
- package/fixtures/json-schema/token-claims/invalid/bad-token-kind.json +9 -0
- package/fixtures/json-schema/token-claims/valid/service-account.json +15 -0
- package/fixtures/openapi/AIGatewayManifestEnvelope/invalid/bad-date.json +28 -0
- package/fixtures/openapi/AIGatewayManifestEnvelope/valid/minimal.json +31 -0
- package/fixtures/openapi/AgentProviderRegistryAcknowledgement/invalid/missing-targeted.json +7 -0
- package/fixtures/openapi/AgentProviderRegistryAcknowledgement/valid/rollout.json +17 -0
- package/fixtures/openapi/AgentRunCallbackRequest/invalid/missing-agent-id.json +6 -0
- package/fixtures/openapi/AgentRunCallbackRequest/valid/succeeded.json +10 -0
- package/fixtures/openapi/AgentRunCallbackRequest/valid/with-events.json +39 -0
- package/fixtures/openapi/AuthResultEnvelope/invalid/missing-tokens.json +13 -0
- package/fixtures/openapi/AuthResultEnvelope/valid/session.json +20 -0
- package/fixtures/openapi/CloudExtensionPointListEnvelope/invalid/missing-exclusions.json +11 -0
- package/fixtures/openapi/CloudExtensionPointListEnvelope/valid/managed-fleet.json +19 -0
- package/fixtures/openapi/ComputeAccessSourceListEnvelope/invalid/bad-source-type.json +15 -0
- package/fixtures/openapi/ComputeAccessSourceListEnvelope/valid/mixed.json +19 -0
- package/fixtures/openapi/ComputeOverviewEnvelope/invalid/bad-section-status.json +9 -0
- package/fixtures/openapi/ComputeOverviewEnvelope/valid/partial.json +33 -0
- package/fixtures/openapi/ComputeProviderListEnvelope/invalid/bad-domain.json +23 -0
- package/fixtures/openapi/ComputeProviderListEnvelope/valid/builtin.json +30 -0
- package/fixtures/openapi/ComputeResourceRelationListEnvelope/invalid/bad-relation.json +29 -0
- package/fixtures/openapi/ComputeResourceRelationListEnvelope/valid/vm-runtime.json +33 -0
- package/fixtures/openapi/ComputeTaskListEnvelope/invalid/missing-source-id.json +19 -0
- package/fixtures/openapi/ComputeTaskListEnvelope/valid/running.json +30 -0
- package/fixtures/openapi/DeliveryDraftInput/invalid/missing-application-key.json +9 -0
- package/fixtures/openapi/DeliveryDraftInput/valid/ai-service.json +25 -0
- package/fixtures/openapi/DirectoryEventListEnvelope/invalid/unknown-status.json +13 -0
- package/fixtures/openapi/DirectoryEventListEnvelope/valid/failed.json +16 -0
- package/fixtures/openapi/DirectoryPersonLifecycle/invalid/unknown-employment-status.json +5 -0
- package/fixtures/openapi/DirectoryPersonLifecycle/valid/departed.json +6 -0
- package/fixtures/openapi/DirectoryRuntimeStatusEnvelope/invalid/negative-event-count.json +11 -0
- package/fixtures/openapi/DirectoryRuntimeStatusEnvelope/valid/verified.json +14 -0
- package/fixtures/openapi/DockerContainerStartInput/invalid/missing-image.json +8 -0
- package/fixtures/openapi/DockerContainerStartInput/valid/git-dockerfile.json +22 -0
- package/fixtures/openapi/DockerOperationCallbackRequest/invalid/logs-not-array.json +7 -0
- package/fixtures/openapi/DockerOperationCallbackRequest/valid/succeeded.json +9 -0
- package/fixtures/openapi/ErrorEnvelope/invalid/extra-field.json +7 -0
- package/fixtures/openapi/ErrorEnvelope/valid/error.json +7 -0
- package/fixtures/openapi/EvaluationGateRequest/invalid/missing-candidate.json +4 -0
- package/fixtures/openapi/EvaluationGateRequest/valid/candidate.json +5 -0
- package/fixtures/openapi/ExecutionCallbackRequest/invalid/extra-field.json +6 -0
- package/fixtures/openapi/ExecutionCallbackRequest/valid/succeeded.json +7 -0
- package/fixtures/openapi/GovernanceStatusEnvelope/invalid/window-hours-string.json +81 -0
- package/fixtures/openapi/GovernanceStatusEnvelope/valid/minimal.json +81 -0
- package/fixtures/openapi/IdentityErrorEnvelope/invalid/raw-assertion.json +7 -0
- package/fixtures/openapi/IdentityErrorEnvelope/valid/invalid-signature.json +7 -0
- package/fixtures/openapi/IdentityOutpostClaimRequest/invalid/missing-protocol-version.json +4 -0
- package/fixtures/openapi/IdentityOutpostClaimRequest/valid/current-version.json +5 -0
- package/fixtures/openapi/IdentityRuntimeCapabilityEnvelope/invalid/missing-runtime-state.json +17 -0
- package/fixtures/openapi/IdentityRuntimeCapabilityEnvelope/valid/available.json +17 -0
- package/fixtures/openapi/KnowledgeIngestionJobInput/invalid/missing-source.json +1 -0
- package/fixtures/openapi/KnowledgeIngestionJobInput/valid/source.json +3 -0
- package/fixtures/openapi/KubernetesResourceAgentCreateRequest/invalid/unresolved-target.json +18 -0
- package/fixtures/openapi/KubernetesResourceAgentCreateRequest/valid/resolved-target.json +25 -0
- package/fixtures/openapi/KubernetesResourceCreateRequest/invalid/unknown-source.json +5 -0
- package/fixtures/openapi/KubernetesResourceCreateRequest/valid/global-multi-document.json +5 -0
- package/fixtures/openapi/KubernetesResourceCreateResultEnvelope/invalid/bad-document-index.json +21 -0
- package/fixtures/openapi/KubernetesResourceCreateResultEnvelope/valid/partial.json +62 -0
- package/fixtures/openapi/KubernetesResourceCreateScopeDecisionEnvelope/invalid/missing-capability.json +12 -0
- package/fixtures/openapi/KubernetesResourceCreateScopeDecisionEnvelope/valid/allowed.json +17 -0
- package/fixtures/openapi/KubernetesResourcePreflightEnvelope/invalid/warning-without-message.json +32 -0
- package/fixtures/openapi/KubernetesResourcePreflightEnvelope/valid/mixed-diagnostics.json +83 -0
- package/fixtures/openapi/LogPage/invalid/missing-entry-source.json +12 -0
- package/fixtures/openapi/LogPage/valid/partial-runtime.json +42 -0
- package/fixtures/openapi/LogQuery/invalid/missing-selector.json +3 -0
- package/fixtures/openapi/LogQuery/invalid/unknown-source-mode.json +6 -0
- package/fixtures/openapi/LogQuery/valid/docker-project.json +12 -0
- package/fixtures/openapi/LogQuery/valid/runtime-workload.json +21 -0
- package/fixtures/openapi/LogStreamEvent/invalid/missing-entry.json +3 -0
- package/fixtures/openapi/LogStreamEvent/invalid/unknown-event-type.json +3 -0
- package/fixtures/openapi/LogStreamEvent/valid/live-entry.json +16 -0
- package/fixtures/openapi/MCPCapabilityListEnvelope/invalid/missing-scopes.json +9 -0
- package/fixtures/openapi/MCPCapabilityListEnvelope/valid/minimal.json +10 -0
- package/fixtures/openapi/MFAAdminResetRequest/invalid/missing-reason.json +3 -0
- package/fixtures/openapi/MFAAdminResetRequest/valid/security-incident.json +4 -0
- package/fixtures/openapi/MFAWebAuthnRequestOptionsEnvelope/invalid/missing-challenge-id.json +9 -0
- package/fixtures/openapi/MFAWebAuthnRequestOptionsEnvelope/valid/step-up.json +11 -0
- package/fixtures/openapi/ManifestDeploymentEnvelope/invalid/bad-condition-status.json +33 -0
- package/fixtures/openapi/ManifestDeploymentEnvelope/valid/converged.json +36 -0
- package/fixtures/openapi/ManifestSourceUpdateInput/invalid/unknown-mode.json +6 -0
- package/fixtures/openapi/ManifestSourceUpdateInput/valid/soha-managed.json +6 -0
- package/fixtures/openapi/ObservabilityDataSource/valid/healthy.json +33 -0
- package/fixtures/openapi/ObservabilityDataSourceInput/invalid/secret-in-config.json +9 -0
- package/fixtures/openapi/ObservabilityDataSourceInput/valid/loki.json +33 -0
- package/fixtures/openapi/ObservabilityDataSourceInput/valid/provider.json +21 -0
- package/fixtures/openapi/PasswordLoginRequest/invalid/extra-field.json +5 -0
- package/fixtures/openapi/PasswordLoginRequest/valid/password-login.json +4 -0
- package/fixtures/openapi/PersonalAccessTokenInput/invalid/extra-field.json +6 -0
- package/fixtures/openapi/PersonalAccessTokenInput/valid/create.json +9 -0
- package/fixtures/openapi/PluginManifest/invalid/bad-type.json +7 -0
- package/fixtures/openapi/PluginManifest/valid/skill-pack.json +12 -0
- package/fixtures/openapi/RepositoryInput/invalid/embedded-token.json +8 -0
- package/fixtures/openapi/RepositoryInput/valid/gitlab.json +11 -0
- package/fixtures/openapi/RuntimeConfigChangeRequest/invalid/missing-version.json +8 -0
- package/fixtures/openapi/RuntimeConfigChangeRequest/valid/feature-flags.json +14 -0
- package/fixtures/openapi/RuntimeConfigSnapshotEnvelope/invalid/editable-secret.json +17 -0
- package/fixtures/openapi/RuntimeConfigSnapshotEnvelope/invalid/exposed-default-secret.json +18 -0
- package/fixtures/openapi/RuntimeConfigSnapshotEnvelope/invalid/exposed-effective-secret.json +18 -0
- package/fixtures/openapi/RuntimeConfigSnapshotEnvelope/valid/effective.json +34 -0
- package/fixtures/openapi/SAMLMetadataInput/invalid/unknown-source.json +4 -0
- package/fixtures/openapi/SAMLMetadataInput/valid/xml.json +4 -0
- package/fixtures/openapi/SecretCreateRequest/invalid/missing-value.json +5 -0
- package/fixtures/openapi/SecretCreateRequest/valid/create.json +13 -0
- package/fixtures/openapi/SecretLeaseRedemptionEnvelope/invalid/invalid-alias.json +9 -0
- package/fixtures/openapi/SecretLeaseRedemptionEnvelope/valid/redeem.json +9 -0
- package/fixtures/openapi/SecretMetadataEnvelope/invalid/plaintext-value.json +15 -0
- package/fixtures/openapi/SecretMetadataEnvelope/valid/metadata.json +20 -0
- package/fixtures/openapi/SecretRotateRequest/invalid/empty-value.json +3 -0
- package/fixtures/openapi/SecretRotateRequest/valid/rotate.json +3 -0
- package/fixtures/openapi/ServiceAccountInput/invalid/missing-status.json +4 -0
- package/fixtures/openapi/ServiceAccountInput/valid/create.json +8 -0
- package/fixtures/openapi/WorkbenchStreamEvent/invalid/extra-field.json +11 -0
- package/fixtures/openapi/WorkbenchStreamEvent/invalid/missing-server-fields.json +5 -0
- package/fixtures/openapi/WorkbenchStreamEvent/valid/message-done.json +13 -0
- package/gen/go/sohaapi/client.go +989 -0
- package/gen/go/sohaapi/client_test.go +2127 -0
- package/gen/go/sohaapi/types.go +21450 -0
- package/gen/ts/sohaapi/index.ts +22869 -0
- package/go.mod +18 -0
- package/go.sum +46 -0
- package/governance/approval-request.schema.json +187 -0
- package/governance/audit-log.schema.json +37 -0
- package/helmrelease/release.go +108 -0
- package/helmrelease/release_test.go +9 -0
- package/knowledge/connector-checkpoint.schema.json +16 -0
- package/knowledge/connector-definition.schema.json +18 -0
- package/knowledge/context-envelope.schema.json +32 -0
- package/knowledge/graph-revision.schema.json +21 -0
- package/knowledge/index-publish.schema.json +17 -0
- package/knowledge/ingestion-job.schema.json +22 -0
- package/knowledge/ingestion-stage.schema.json +19 -0
- package/knowledge/knowledge-base.schema.json +48 -0
- package/knowledge/knowledge-search.schema.json +21 -0
- package/knowledge/knowledge-source.schema.json +28 -0
- package/knowledge/retrieval-trace.schema.json +21 -0
- package/mcp/gateway-capability-baseline.schema.json +290 -0
- package/mcp/gateway-manifest.schema.json +210 -0
- package/memory/memory-policy.schema.json +19 -0
- package/memory/memory-record.schema.json +25 -0
- package/openapi/soha-api.json +42282 -0
- package/openapi/soha-api.yaml +21748 -0
- package/openapi/spec_generated.go +23 -0
- package/openapi/spec_test.go +38 -0
- package/package.json +122 -0
- package/plugins/marketplace-catalog.schema.json +120 -0
- package/plugins/observability-log-query-v1.schema.json +88 -0
- package/plugins/plugin-manifest.schema.json +498 -0
- package/presets/mcp-preset.schema.json +142 -0
- package/profiles/agent-profile.schema.json +154 -0
- package/resource/crd_definition.go +10 -0
- package/resource/gateway_details_test.go +55 -0
- package/resource/models.go +1587 -0
- package/resource/models_test.go +72 -0
- package/runner/operation-lifecycle.schema.json +112 -0
- package/skills/skill-manifest.schema.json +64 -0
- package/streamlimit/limited_buffer.go +58 -0
- package/streamlimit/limited_buffer_test.go +38 -0
package/README.md
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# soha-contracts
|
|
2
|
+
|
|
3
|
+
Shared public contracts for OpenSoha.
|
|
4
|
+
|
|
5
|
+
This repository is the source of truth for schemas consumed across Soha core,
|
|
6
|
+
Soha CLI, Soha Agent, Soha Web, official skills, connectors, and Soha
|
|
7
|
+
Cloud services. Product repositories should depend on generated SDKs, HTTP
|
|
8
|
+
APIs, JSON Schemas, or released artifacts from this repository instead of
|
|
9
|
+
copying business logic between repos.
|
|
10
|
+
|
|
11
|
+
## Layout
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
openapi/soha-api.yaml Canonical public Soha HTTP API source
|
|
15
|
+
openapi/soha-api.json Generated canonical JSON distribution
|
|
16
|
+
openapi/spec_generated.go Embedded Go accessors and version/hash metadata
|
|
17
|
+
compat/openapi-0.1.0.snapshot.json OpenAPI compatibility baseline
|
|
18
|
+
examples Valid request/response and manifest examples
|
|
19
|
+
fixtures Valid and invalid contract payloads
|
|
20
|
+
capabilities/cluster-capability-matrix.schema.json Direct/Agent runtime capability matrix
|
|
21
|
+
profiles/agent-profile.schema.json Agent runtime profile manifest
|
|
22
|
+
presets/mcp-preset.schema.json MCP preset manifest
|
|
23
|
+
governance/approval-request.schema.json Approval request and trace contract
|
|
24
|
+
governance/audit-log.schema.json Audit log contract
|
|
25
|
+
agent/agent-protocol.schema.json Runner and agent control-plane protocol
|
|
26
|
+
runner/operation-lifecycle.schema.json Long-running operation lifecycle events
|
|
27
|
+
mcp/gateway-manifest.schema.json AI Gateway / MCP capability manifest
|
|
28
|
+
skills/skill-manifest.schema.json Official skill front matter contract
|
|
29
|
+
plugins/plugin-manifest.schema.json Plugin and marketplace package manifest
|
|
30
|
+
events/event-envelope.schema.json Shared event envelope contract
|
|
31
|
+
auth/token-claims.schema.json Token/JWT claims contract
|
|
32
|
+
connectors/connector-event-envelope.schema.json Connector runtime event batch envelope
|
|
33
|
+
gen/go/sohaapi Go SDK types for stable cross-repo contracts
|
|
34
|
+
gen/ts/sohaapi TypeScript SDK types for stable Web contracts
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Boundary Rules
|
|
38
|
+
|
|
39
|
+
- `soha` remains the open-source core and must run standalone.
|
|
40
|
+
- Cloud-only tenant lifecycle, billing, quota, SaaS IAM, and operations
|
|
41
|
+
contracts do not belong here unless they are explicitly public extension
|
|
42
|
+
points.
|
|
43
|
+
- Open-source Soha may keep tenant-aware fields, but the default distribution
|
|
44
|
+
uses `tenantId = default` and `workspaceId = default`.
|
|
45
|
+
- Public behavior changes should update this repository first, then update
|
|
46
|
+
generated SDKs and consumers.
|
|
47
|
+
|
|
48
|
+
## SDK Consumers
|
|
49
|
+
|
|
50
|
+
Current SDK entry points:
|
|
51
|
+
|
|
52
|
+
- Go: `github.com/opensoha/soha-contracts/gen/go/sohaapi`
|
|
53
|
+
- Go OpenAPI artifact: `github.com/opensoha/soha-contracts/openapi`
|
|
54
|
+
- TypeScript: `@opensoha/contracts/gen/ts/sohaapi`
|
|
55
|
+
- npm OpenAPI artifacts: `@opensoha/contracts/openapi/soha-api.yaml` and
|
|
56
|
+
`@opensoha/contracts/openapi/soha-api.json`
|
|
57
|
+
|
|
58
|
+
The current SDK pass covers auth, AI Gateway capability/tool/result types,
|
|
59
|
+
runner-facing protocol DTOs, plugin marketplace/install DTOs, public Cloud
|
|
60
|
+
extension point DTOs, and AI Gateway token management, audit, approval, and
|
|
61
|
+
governance DTOs used by `soha-cli`, `soha-agent`, and `soha-web`.
|
|
62
|
+
|
|
63
|
+
SDK DTOs are generated from `openapi/soha-api.yaml` with
|
|
64
|
+
`openapi-typescript` and `oapi-codegen`:
|
|
65
|
+
|
|
66
|
+
The public DTO surface also includes Identity applications, providers,
|
|
67
|
+
policies, OIDC clients, SAML SP/IdP configuration, MFA challenges, runtime
|
|
68
|
+
capabilities, and versioned Outpost agent messages. Sensitive enrollment and
|
|
69
|
+
protocol inputs are write-only; response DTOs exclude private keys and raw
|
|
70
|
+
SAML assertions.
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
npm run generate
|
|
74
|
+
npm run check:generated
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
`npm run check:generated` generates SDK and OpenAPI distribution output in a
|
|
78
|
+
temporary directory and compares it to committed files. It must not rewrite
|
|
79
|
+
generated files during a freshness check. The Go `openapi` package exposes
|
|
80
|
+
copies of both formats plus `Version`, `YAMLSHA256`, and `JSONSHA256`.
|
|
81
|
+
|
|
82
|
+
The Go client in `gen/go/sohaapi/client.go` intentionally keeps a stable
|
|
83
|
+
hand-written method surface while DTOs are generated from OpenAPI. For
|
|
84
|
+
`0.1.x`, the supported Go client method surface covers:
|
|
85
|
+
|
|
86
|
+
- system health and readiness checks;
|
|
87
|
+
- public auth discovery, password login, refresh, OIDC code exchange, current
|
|
88
|
+
principal/profile/bootstrap, logout, and stream tickets;
|
|
89
|
+
- delivery, Docker, and agent-run claim/status/callback runner APIs;
|
|
90
|
+
- Identity Outpost runtime claim, heartbeat, access-check, and event APIs;
|
|
91
|
+
- WebAuthn authentication/step-up and administrator MFA revoke/reset APIs;
|
|
92
|
+
- AI Gateway audit, approval, governance, token, service-account, and MCP
|
|
93
|
+
capability APIs;
|
|
94
|
+
- plugin marketplace, install, enable/disable, upgrade, configuration, and
|
|
95
|
+
manifest APIs.
|
|
96
|
+
|
|
97
|
+
Other Go consumers should use the generated DTOs directly and keep HTTP
|
|
98
|
+
calling code in the consumer until those APIs are promoted into the supported
|
|
99
|
+
client surface. Redirect-oriented flows such as OIDC provider redirects should
|
|
100
|
+
not use the JSON-only `doJSON` helper until a non-JSON client mode is added.
|
|
101
|
+
|
|
102
|
+
The Go generator and generated DTO checks run with Go 1.26.5 in CI.
|
|
103
|
+
|
|
104
|
+
## Validation
|
|
105
|
+
|
|
106
|
+
Run:
|
|
107
|
+
|
|
108
|
+
```sh
|
|
109
|
+
npm test
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The validation gate checks generated SDK freshness, JSON schema syntax,
|
|
113
|
+
valid and invalid JSON Schema fixtures, valid and invalid OpenAPI DTO
|
|
114
|
+
fixtures, request/response and manifest examples, OpenAPI structure and
|
|
115
|
+
operation ID uniqueness, version synchronization, OpenAPI lint rules,
|
|
116
|
+
breaking-change compatibility against the checked-in baseline, TypeScript
|
|
117
|
+
type declarations, and Go compilation for the generated SDK package.
|
|
118
|
+
|
|
119
|
+
Useful focused checks:
|
|
120
|
+
|
|
121
|
+
```sh
|
|
122
|
+
npm run check:version-sync
|
|
123
|
+
npm run validate
|
|
124
|
+
npm run lint:openapi
|
|
125
|
+
npm run check:openapi-breaking
|
|
126
|
+
npm run check:openapi-loose-boundaries
|
|
127
|
+
npm run check:json-schema-compat
|
|
128
|
+
npm run release:artifacts
|
|
129
|
+
npm run release:verify -- dist/release/opensoha-contracts-0.1.0.tgz
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
When intentionally establishing a new OpenAPI compatibility baseline, update
|
|
133
|
+
the snapshot with:
|
|
134
|
+
|
|
135
|
+
```sh
|
|
136
|
+
npm run check:openapi-breaking:update
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Do not update the baseline just to silence an unexpected breaking-change
|
|
140
|
+
failure.
|
|
141
|
+
|
|
142
|
+
## Consumer Matrix
|
|
143
|
+
|
|
144
|
+
The cross-repository consumer gate is:
|
|
145
|
+
|
|
146
|
+
```sh
|
|
147
|
+
npm run check:consumers
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
By default, the script discovers sibling checkouts under the parent directory
|
|
151
|
+
and skips any missing consumer. CI uses the strict form:
|
|
152
|
+
|
|
153
|
+
```sh
|
|
154
|
+
npm run check:consumers -- --consumer soha --require-all
|
|
155
|
+
npm run check:consumers -- --consumer soha-web --require-all
|
|
156
|
+
npm run check:consumers -- --consumer soha-cli --require-all
|
|
157
|
+
npm run check:consumers -- --consumer soha-agent --require-all
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Go consumers run in a temporary `go.work` that includes this checkout, so
|
|
161
|
+
changes are tested against the local contracts module. `soha-web` runs
|
|
162
|
+
`npm ci` and `npm run build` against its `file:../soha-contracts` dependency.
|
|
163
|
+
|
|
164
|
+
Use `--dry-run` to inspect the discovered commands without executing consumer
|
|
165
|
+
builds.
|
|
166
|
+
|
|
167
|
+
## Compatibility Policy
|
|
168
|
+
|
|
169
|
+
See [COMPATIBILITY.md](./COMPATIBILITY.md) for the versioning, compatibility,
|
|
170
|
+
fixture, baseline, and consumer adoption rules. In short, `0.1.x` changes may
|
|
171
|
+
add optional contract surface but must not remove existing public operations,
|
|
172
|
+
rename operation IDs, remove existing response statuses, remove schema
|
|
173
|
+
properties, add required request properties, or remove enum values.
|
|
174
|
+
|
|
175
|
+
## Release Shape
|
|
176
|
+
|
|
177
|
+
The stable TypeScript package name is `@opensoha/contracts`, and the stable Go
|
|
178
|
+
module path is `github.com/opensoha/soha-contracts/gen/go/sohaapi`.
|
|
179
|
+
|
|
180
|
+
Release tags must be `v<package.json version>`. `npm test` runs
|
|
181
|
+
`npm run check:version-sync`, which verifies `package.json`,
|
|
182
|
+
`package-lock.json`, OpenAPI `info.version`, the Go module path, the Go client
|
|
183
|
+
user agent version, and the GitHub release tag when the workflow runs from a
|
|
184
|
+
tag.
|
|
185
|
+
|
|
186
|
+
Release artifacts are prepared and verified with:
|
|
187
|
+
|
|
188
|
+
```sh
|
|
189
|
+
npm run release:artifacts
|
|
190
|
+
npm run release:verify -- dist/release/opensoha-contracts-0.1.0.tgz
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
The command writes `dist/release/<npm-tarball>.tgz`, a matching
|
|
194
|
+
`.sha256` checksum file, `dist/release/release-manifest.json`, a CycloneDX SBOM
|
|
195
|
+
with its checksum, a provenance policy manifest with its checksum, and, when
|
|
196
|
+
provided by CI, `dist/release/consumer-matrix.json`. `release:verify` checks
|
|
197
|
+
the tarball checksum, manifest metadata, packed `package.json`, every exported
|
|
198
|
+
package entrypoint, both OpenAPI artifact hashes, the SBOM identity and
|
|
199
|
+
checksum, the provenance policy and checksum, and the consumer matrix summary.
|
|
200
|
+
|
|
201
|
+
The tag workflow runs `npm test`, `npm pack --dry-run`, the strict consumer
|
|
202
|
+
matrix, requires `NPM_TOKEN`, publishes npm with provenance, verifies the npm
|
|
203
|
+
package and Go module tag after publish, and attaches the tarball, checksum,
|
|
204
|
+
SBOM, SBOM checksum, provenance policy, provenance policy checksum, manifest,
|
|
205
|
+
and consumer matrix to the GitHub release. It then downloads the published
|
|
206
|
+
release assets and runs `release:verify` against the downloaded tarball.
|
|
207
|
+
|
|
208
|
+
The local release manifest records the provenance policy expected from the tag
|
|
209
|
+
workflow. It does not prove a remote npm registry attestation by itself; that
|
|
210
|
+
evidence is produced and checked only after the tag workflow publishes with
|
|
211
|
+
`npm publish --provenance`.
|
|
212
|
+
|
|
213
|
+
During private staging, consumers intentionally use sibling repository
|
|
214
|
+
checkouts, `go.work` / `replace` entries, and `file:../soha-contracts` package
|
|
215
|
+
dependencies instead of resolving this repository through anonymous GitHub
|
|
216
|
+
module fetches or npm. After the repository is publicly readable and the npm
|
|
217
|
+
package is published, released consumer modules can switch to a real
|
|
218
|
+
`soha-contracts` version tag and the published npm package without changing SDK
|
|
219
|
+
import paths.
|
|
220
|
+
|
|
221
|
+
## License
|
|
222
|
+
|
|
223
|
+
This repository is licensed under the Apache License 2.0. See
|
|
224
|
+
[LICENSE](./LICENSE) for the full license text.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://opensoha.dev/schemas/agent-checkpoint.schema.json",
|
|
4
|
+
"title": "Agent Checkpoint",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "id", "runId", "stepId", "attempt", "sequence", "stateHash", "contextRef", "createdAt"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "opensoha.dev/agent-checkpoint/v1" },
|
|
10
|
+
"id": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
11
|
+
"runId": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
12
|
+
"stepId": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
13
|
+
"attempt": { "type": "integer", "minimum": 1 },
|
|
14
|
+
"sequence": { "type": "integer", "minimum": 1 },
|
|
15
|
+
"stateHash": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
|
|
16
|
+
"contextRef": { "type": "string", "minLength": 1, "maxLength": 512 },
|
|
17
|
+
"createdAt": { "type": "string", "format": "date-time" }
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://opensoha.dev/schemas/agent-observation.schema.json",
|
|
4
|
+
"title": "Agent Observation",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "id", "runId", "stepId", "kind", "status", "summary", "redacted", "observedAt"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "opensoha.dev/agent-observation/v1" },
|
|
10
|
+
"id": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
11
|
+
"runId": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
12
|
+
"stepId": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
13
|
+
"kind": { "enum": ["model", "tool", "environment", "approval", "provider"] },
|
|
14
|
+
"status": { "enum": ["pending", "running", "succeeded", "failed", "denied", "cancelled"] },
|
|
15
|
+
"summary": { "type": "string", "maxLength": 8192 },
|
|
16
|
+
"artifactRefs": { "type": "array", "maxItems": 128, "items": { "type": "string", "maxLength": 512 } },
|
|
17
|
+
"redacted": { "type": "boolean" },
|
|
18
|
+
"observedAt": { "type": "string", "format": "date-time" }
|
|
19
|
+
}
|
|
20
|
+
}
|