@bluefly/openstandardagents 0.2.4 → 0.2.5-RC
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/.cursorrules +84 -0
- package/.devfile.yaml +87 -0
- package/.env.example +25 -3
- package/.github/workflows/release.yml +1 -1
- package/.kiro/specs/agent-buildkit-templates/design.md +495 -0
- package/.kiro/specs/agent-buildkit-templates/requirements.md +165 -0
- package/.kiro/specs/kiro-ide-supercharger/README.md +202 -0
- package/.kiro/specs/kiro-ide-supercharger/design.md +1005 -0
- package/.kiro/specs/kiro-ide-supercharger/requirements.md +141 -0
- package/.kiro/specs/kiro-ide-supercharger/tasks.md +507 -0
- package/.kiro/specs/website-design-audit/design.md +679 -0
- package/.kiro/specs/website-design-audit/requirements.md +199 -0
- package/.releaserc.json +5 -4
- package/.version.json +6 -0
- package/CHANGELOG.md +140 -96
- package/CONTRIBUTING.md +23 -5
- package/README.md +121 -43
- package/bin/ossa +24 -3
- package/bin/ossa-validate-all +55 -0
- package/bin/ossa-version +23 -0
- package/bin/validate-ossa-0.2.4.ts +244 -0
- package/bin/validate-ossa-0.2.5-RC.ts +244 -0
- package/bin/validate-ossa.ts +273 -0
- package/dist/di-container.d.ts +1 -1
- package/dist/di-container.d.ts.map +1 -1
- package/dist/di-container.js.map +1 -1
- package/dist/repositories/schema.repository.d.ts +17 -2
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +96 -18
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/generation.service.d.ts +7 -5
- package/dist/services/generation.service.d.ts.map +1 -1
- package/dist/services/generation.service.js +92 -44
- package/dist/services/generation.service.js.map +1 -1
- package/dist/services/gitlab-agent.service.d.ts +94 -0
- package/dist/services/gitlab-agent.service.d.ts.map +1 -0
- package/dist/services/gitlab-agent.service.js +162 -0
- package/dist/services/gitlab-agent.service.js.map +1 -0
- package/dist/services/migration.service.d.ts +3 -3
- package/dist/services/migration.service.d.ts.map +1 -1
- package/dist/services/migration.service.js +108 -61
- package/dist/services/migration.service.js.map +1 -1
- package/dist/services/release-automation/base-crud.service.d.ts +93 -0
- package/dist/services/release-automation/base-crud.service.d.ts.map +1 -0
- package/dist/services/release-automation/base-crud.service.js +68 -0
- package/dist/services/release-automation/base-crud.service.js.map +1 -0
- package/dist/services/release-automation/index.d.ts +12 -0
- package/dist/services/release-automation/index.d.ts.map +1 -0
- package/dist/services/release-automation/index.js +12 -0
- package/dist/services/release-automation/index.js.map +1 -0
- package/dist/services/release-automation/merge-request.service.d.ts +119 -0
- package/dist/services/release-automation/merge-request.service.d.ts.map +1 -0
- package/dist/services/release-automation/merge-request.service.js +212 -0
- package/dist/services/release-automation/merge-request.service.js.map +1 -0
- package/dist/services/release-automation/milestone.service.d.ts +104 -0
- package/dist/services/release-automation/milestone.service.d.ts.map +1 -0
- package/dist/services/release-automation/milestone.service.js +207 -0
- package/dist/services/release-automation/milestone.service.js.map +1 -0
- package/dist/services/release-automation/release.service.d.ts +118 -0
- package/dist/services/release-automation/release.service.d.ts.map +1 -0
- package/dist/services/release-automation/release.service.js +207 -0
- package/dist/services/release-automation/release.service.js.map +1 -0
- package/dist/services/release-automation/schemas/release.schema.d.ts +299 -0
- package/dist/services/release-automation/schemas/release.schema.d.ts.map +1 -0
- package/dist/services/release-automation/schemas/release.schema.js +269 -0
- package/dist/services/release-automation/schemas/release.schema.js.map +1 -0
- package/dist/services/release-automation/tag.service.d.ts +99 -0
- package/dist/services/release-automation/tag.service.d.ts.map +1 -0
- package/dist/services/release-automation/tag.service.js +180 -0
- package/dist/services/release-automation/tag.service.js.map +1 -0
- package/dist/services/release-automation/webhook.service.d.ts +37 -0
- package/dist/services/release-automation/webhook.service.d.ts.map +1 -0
- package/dist/services/release-automation/webhook.service.js +173 -0
- package/dist/services/release-automation/webhook.service.js.map +1 -0
- package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
- package/dist/services/runtime/openai.adapter.js.map +1 -1
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +24 -11
- package/dist/services/validation.service.js.map +1 -1
- package/dist/services/validators/anthropic.validator.d.ts +2 -2
- package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
- package/dist/services/validators/anthropic.validator.js +14 -9
- package/dist/services/validators/anthropic.validator.js.map +1 -1
- package/dist/services/validators/autogen.validator.d.ts +2 -2
- package/dist/services/validators/autogen.validator.d.ts.map +1 -1
- package/dist/services/validators/autogen.validator.js +18 -15
- package/dist/services/validators/autogen.validator.js.map +1 -1
- package/dist/services/validators/crewai.validator.d.ts +2 -2
- package/dist/services/validators/crewai.validator.d.ts.map +1 -1
- package/dist/services/validators/crewai.validator.js +18 -17
- package/dist/services/validators/crewai.validator.js.map +1 -1
- package/dist/services/validators/cursor.validator.d.ts +2 -2
- package/dist/services/validators/cursor.validator.d.ts.map +1 -1
- package/dist/services/validators/cursor.validator.js +15 -11
- package/dist/services/validators/cursor.validator.js.map +1 -1
- package/dist/services/validators/langchain.validator.d.ts +2 -2
- package/dist/services/validators/langchain.validator.d.ts.map +1 -1
- package/dist/services/validators/langchain.validator.js +14 -11
- package/dist/services/validators/langchain.validator.js.map +1 -1
- package/dist/services/validators/langflow.validator.d.ts +2 -2
- package/dist/services/validators/langflow.validator.d.ts.map +1 -1
- package/dist/services/validators/langflow.validator.js +14 -9
- package/dist/services/validators/langflow.validator.js.map +1 -1
- package/dist/services/validators/langgraph.validator.d.ts +2 -2
- package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
- package/dist/services/validators/langgraph.validator.js +23 -18
- package/dist/services/validators/langgraph.validator.js.map +1 -1
- package/dist/services/validators/llamaindex.validator.d.ts +2 -2
- package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
- package/dist/services/validators/llamaindex.validator.js +19 -16
- package/dist/services/validators/llamaindex.validator.js.map +1 -1
- package/dist/services/validators/openai.validator.d.ts +2 -2
- package/dist/services/validators/openai.validator.d.ts.map +1 -1
- package/dist/services/validators/openai.validator.js +20 -16
- package/dist/services/validators/openai.validator.js.map +1 -1
- package/dist/services/validators/vercel-ai.validator.d.ts +2 -2
- package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
- package/dist/services/validators/vercel-ai.validator.js +16 -15
- package/dist/services/validators/vercel-ai.validator.js.map +1 -1
- package/dist/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
- package/dist/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
- package/dist/spec/v0.2.3/CHANGELOG.md +7 -7
- package/dist/spec/v0.2.3/README.md +9 -9
- package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
- package/{spec/v0.2.4-dev → dist/spec/v0.2.4}/CHANGELOG.md +8 -8
- package/dist/spec/{v0.2.4-dev → v0.2.4}/migrations/v0.2.3-to-v0.2.4.md +10 -10
- package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
- package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
- package/dist/spec/v0.2.5/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.5/README.md +72 -0
- package/dist/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
- package/dist/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
- package/dist/spec/v0.2.5-RC/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.5-RC/README.md +72 -0
- package/{spec/v0.2.4-dev → dist/spec/v0.2.5-RC}/migrations/v0.2.3-to-v0.2.4.md +10 -10
- package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
- package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
- package/dist/types/index.d.ts +6 -1
- package/dist/types/index.d.ts.map +1 -1
- package/docs/issue-19-completion-summary.md +648 -0
- package/docs/issue-19-validation.md +351 -0
- package/examples/anthropic/claude-assistant.ossa.json +1 -1
- package/examples/autogen/multi-agent.ossa.json +1 -1
- package/examples/bridges/Dockerfile.production +1 -1
- package/examples/crewai/research-team.ossa.json +1 -1
- package/examples/cursor/code-review-agent.ossa.json +1 -1
- package/examples/enterprise/agent.yml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +2 -2
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
- package/examples/langchain/chain-agent.ossa.json +1 -1
- package/examples/langflow/workflow-agent.ossa.json +1 -1
- package/examples/langgraph/state-machine-agent.ossa.json +1 -1
- package/examples/llamaindex/rag-agent.ossa.json +1 -1
- package/examples/openai/basic-agent.ossa.yaml +61 -0
- package/examples/openai/multi-tool-agent.ossa.json +165 -0
- package/examples/openai/swarm-agent.ossa.json +1 -1
- package/examples/openapi-extensions/README.md +1 -1
- package/examples/quickstart/support-agent.ossa.yaml +1 -1
- package/examples/vercel/edge-agent.ossa.json +1 -1
- package/infrastructure/gitlab-agent/rbac.yaml +126 -0
- package/infrastructure/gitlab-agent/values.yaml +150 -0
- package/infrastructure/k8s/monitoring/00-namespace.yaml +7 -0
- package/infrastructure/k8s/monitoring/01-prometheus.yaml +142 -0
- package/infrastructure/k8s/monitoring/02-grafana.yaml +63 -0
- package/infrastructure/k8s/monitoring/03-lightweight.yaml +121 -0
- package/infrastructure/k8s/monitoring/README.md +73 -0
- package/infrastructure/k8s/monitoring/deploy.sh +38 -0
- package/openapi/CHANGELOG.md +21 -0
- package/openapi/README.md +46 -0
- package/openapi/{ossa-core-api.openapi.yaml → core/ossa-core-api.openapi.yaml} +59 -4
- package/openapi/{ossa-registry.openapi.yaml → core/ossa-registry.openapi.yaml} +75 -2
- package/openapi/{unified-agent-gateway.openapi.yaml → core/unified-agent-gateway.openapi.yaml} +3 -3
- package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +136 -0
- package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +192 -0
- package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +149 -0
- package/openapi/reference-implementations/critic-agent-api.openapi.yaml +151 -0
- package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +217 -0
- package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +149 -0
- package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +151 -0
- package/openapi/reference-implementations/governor-agent-api.openapi.yaml +193 -0
- package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +165 -0
- package/openapi/reference-implementations/judge-agent-api.openapi.yaml +148 -0
- package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +167 -0
- package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +171 -0
- package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +171 -0
- package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +242 -0
- package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +187 -0
- package/openapi/{self-evolving-ecosystem.openapi.yaml → reference-implementations/self-evolving-ecosystem.openapi.yaml} +2 -2
- package/openapi/reference-implementations/worker-agent-api.openapi.yaml +208 -0
- package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +193 -0
- package/package.json +31 -21
- package/release.config.js +20 -5
- package/scripts/bump-version.ts +57 -0
- package/scripts/enhanced-version-manager.ts +257 -0
- package/scripts/gen-types.ts +51 -0
- package/scripts/gen-zod.ts +51 -0
- package/scripts/lib/exec.ts +37 -0
- package/scripts/lib/file-ops.ts +58 -0
- package/scripts/lib/version.ts +83 -0
- package/scripts/process-doc-templates.ts +37 -0
- package/scripts/schemas/package.schema.ts +75 -0
- package/scripts/setup-branch-protection.sh +33 -0
- package/scripts/sync-version.ts +39 -0
- package/scripts/sync-versions.ts +488 -0
- package/scripts/validate-schema.ts +49 -0
- package/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
- package/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
- package/spec/v0.2.3/CHANGELOG.md +7 -7
- package/spec/v0.2.3/README.md +9 -9
- package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
- package/{dist/spec/v0.2.4-dev → spec/v0.2.4}/CHANGELOG.md +8 -8
- package/spec/v0.2.4/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
- package/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
- package/spec/v0.2.5/CHANGELOG.md +401 -0
- package/spec/v0.2.5/README.md +72 -0
- package/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
- package/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
- package/spec/v0.2.5-RC/CHANGELOG.md +401 -0
- package/spec/v0.2.5-RC/README.md +72 -0
- package/spec/v0.2.5-RC/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
- package/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
- package/website/{.lighthouserc.js → .lighthouserc.ts} +5 -1
- package/website/Dockerfile +18 -5
- package/website/app/about/page.tsx +7 -7
- package/website/app/blog/[slug]/page.tsx +61 -20
- package/website/app/blog/page.tsx +120 -33
- package/website/app/design-guide/page.tsx +511 -0
- package/website/app/docs/[[...slug]]/page.tsx +641 -143
- package/website/app/examples/page.tsx +51 -41
- package/website/app/{globals.css → globals.scss} +50 -23
- package/website/app/layout.tsx +2 -2
- package/website/app/license/page.tsx +183 -0
- package/website/app/not-found.tsx +18 -0
- package/website/app/page.tsx +144 -79
- package/website/app/playground/page.tsx +25 -45
- package/website/app/schema/page.tsx +423 -392
- package/website/app/specification/page.tsx +245 -169
- package/website/components/Logo.tsx +75 -2
- package/website/components/docs/DocsSidebar.tsx +40 -3
- package/website/components/docs/MarkdownContent.tsx +265 -47
- package/website/components/docs/VersionSelector.tsx +64 -8
- package/website/components/examples/ExamplesViewer.tsx +2 -2
- package/website/components/layout/Footer.tsx +6 -1
- package/website/components/layout/Header.tsx +31 -33
- package/website/components/schema/SchemaComponentsAccordion.tsx +84 -0
- package/website/components/schema/SchemaExplorer.tsx +4 -4
- package/website/content/blog/OpenAPI-AI-Agents-Standard.md +276 -276
- package/website/content/blog/Why-Formal-Standards-Matter-Now.md +3 -14
- package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +286 -0
- package/website/content/blog/introducing-ossa-framework.md +1 -1
- package/website/content/blog/ossa-production-results.md +5 -5
- package/website/content/blog/welcome-to-ossa.md +2 -2
- package/website/content/blog/why-ai-agents-need-open-standard.md +5 -5
- package/website/content/docs/00-HOME.md +18 -25
- package/website/content/docs/AIFlow-Framework-Integration-with-OSSA.md +8 -8
- package/website/content/docs/OpenAPI-Extensions.md +576 -140
- package/website/content/docs/adapters/openai-adapter.md +693 -0
- package/website/content/docs/architecture/execution-flow.md +3 -3
- package/website/content/docs/architecture/multi-agent-systems.md +4 -4
- package/website/content/docs/architecture/overview.md +4 -4
- package/website/content/docs/architecture/stack-integration.md +4 -4
- package/website/content/docs/changelog.md +4 -4
- package/website/content/docs/contributing.md +2 -2
- package/website/content/docs/ecosystem/framework-support.md +0 -2
- package/website/content/docs/examples/AIFlow-Framework-Integration-with-OSSA.md +107 -0
- package/website/content/docs/examples/Migration-Guides.md +2 -2
- package/website/content/docs/for-audiences/{architects.md → Architects.md} +1 -1
- package/website/content/docs/for-audiences/{developers.md → Developers.md} +3 -3
- package/website/content/docs/for-audiences/Enterprises.md +2 -2
- package/website/content/docs/for-audiences/Students-Researchers.md +1 -1
- package/website/content/docs/getting-started/{5-minute-overview.md → 5-Minute-Overview.md} +2 -2
- package/website/content/docs/getting-started/{first-agent.md → First-Agent.md} +1 -1
- package/website/content/docs/getting-started/Hello-World.md +3 -3
- package/website/content/docs/getting-started/{installation.md → Installation.md} +7 -7
- package/website/content/docs/getting-started/index.md +92 -0
- package/website/content/docs/getting-started/running-agents.md +215 -13
- package/{docs → website/content/docs}/getting-started.md +10 -6
- package/website/content/docs/integrations/aiflow.md +2 -2
- package/website/content/docs/integrations/drupal.md +2 -2
- package/website/content/docs/migration-guides/README.md +1 -1
- package/website/content/docs/migration-guides/agent-schema-comparison.md +232 -0
- package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
- package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
- package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +11 -11
- package/{docs/migration → website/content/docs/migration-guides}/general-agent-schema.yml +1 -9
- package/website/content/docs/migration-guides/index.md +1 -1
- package/website/content/docs/migration-guides/langchain-to-ossa.md +17 -17
- package/website/content/docs/migration-guides/langflow-to-ossa.md +3 -3
- package/website/content/docs/migration-guides/openai-to-ossa.md +10 -10
- package/website/content/docs/openapi-extensions/examples.md +9 -9
- package/website/content/docs/openapi-extensions/index.md +59 -3
- package/website/content/docs/openapi-extensions/operation-extensions.md +61 -2
- package/website/content/docs/openapi-extensions/root-extensions.md +49 -3
- package/{docs/OSSA-COMPLIANT-BADGE.md → website/content/docs/ossa-compliant-badge.md} +18 -15
- package/website/content/docs/pre-release/index.md +10 -10
- package/website/content/docs/readme.md +35 -0
- package/website/content/docs/schema-reference/agent-spec.md +2 -2
- package/website/content/docs/schema-reference/autonomy.md +5 -5
- package/website/content/docs/schema-reference/constraints.md +5 -5
- package/website/content/docs/schema-reference/llm-config.md +1 -1
- package/website/content/docs/schema-reference/observability.md +5 -5
- package/website/content/docs/schema-reference/ossa-manifest.md +6 -6
- package/website/content/docs/schema-reference/taxonomy.md +3 -3
- package/website/content/docs/use-cases/00-index.md +1 -1
- package/{docs/VERSIONING.md → website/content/docs/versioning.md} +9 -5
- package/website/lib/version.ts +18 -1
- package/website/lib/versions.json +78 -0
- package/website/next.config.ts +3 -1
- package/website/package-lock.json +552 -18
- package/website/package.json +11 -5
- package/website/postcss.config.mjs +1 -1
- package/website/scripts/fetch-versions.js +166 -0
- package/website/scripts/generate-examples-index.js +163 -0
- package/website/scripts/merge-docs-to-wiki.ts +207 -0
- package/website/scripts/sync-version.js +28 -0
- package/website/scripts/sync-wiki.ts +64 -3
- package/website/scripts/upload-wiki.ts +199 -0
- package/website/styles/_variables.scss +36 -0
- package/website/tailwind.config.ts +93 -22
- package/.releaserc.json.disabled +0 -81
- package/dist/spec/v0.2.5-dev/CHANGELOG.md +0 -171
- package/dist/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
- package/dist/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
- package/dist/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
- package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
- package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
- package/docs/README.md +0 -31
- package/docs/agent-openapi-spec.yml +0 -942
- package/docs/openapi-extensions.md +0 -930
- package/docs/schemas/openapi-extensions.schema.json +0 -486
- package/openapi/gitlab-orchestrator.openapi.yaml +0 -330
- package/ossa-website-swarm-tasks.json +0 -105
- package/spec/v0.2.5-dev/CHANGELOG.md +0 -171
- package/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
- package/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
- package/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
- package/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
- package/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
- package/website/app/api/validate/route.ts +0 -88
- package/website/next.config.js +0 -17
- package/website/postcss.config.js +0 -7
- package/website/tailwind.config.js +0 -58
- /package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
- /package/openapi/{ossa-registry-api.openapi.yaml → core/ossa-registry-api.openapi.yaml} +0 -0
- /package/openapi/{drupal-agent-api.openapi.yaml → reference-implementations/drupal-agent-api.openapi.yaml} +0 -0
- /package/openapi/{helm-generator.openapi.yaml → reference-implementations/helm-generator.openapi.yaml} +0 -0
- /package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
- /package/website/content/docs/{examples.md → Examples.md} +0 -0
- /package/website/content/docs/core-concepts/{project-structure.md → Project-Structure.md} +0 -0
- /package/website/content/docs/migration-guides/{00-index.md → 00-INDEX.md} +0 -0
- /package/{docs/migration → website/content/docs/migration-guides}/migration-manifest.json +0 -0
package/README.md
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
**The OpenAPI for AI Agents**
|
|
4
4
|
|
|
5
5
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
6
|
-
[](https://
|
|
8
|
-
[](https://github.com/
|
|
9
|
-
[](https://
|
|
6
|
+
[](https://www.npmjs.com/package/@bluefly/openstandardagents)
|
|
7
|
+
[](https://github.com/blueflyio/openstandardagents)
|
|
8
|
+
[](https://github.com/blueflyio/openstandardagents)
|
|
9
|
+
[](https://github.com/blueflyio/openstandardagents)
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -19,10 +19,10 @@ Just as OpenAPI standardized REST APIs, OSSA standardizes AI agent interaction,
|
|
|
19
19
|
**OSSA is NOT a framework** - it's a standard that defines the contract. Implementations provide the functionality.
|
|
20
20
|
|
|
21
21
|
**Key Qualities:**
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
22
|
+
- **Vendor-Neutral** - Community-driven, not controlled by any single company
|
|
23
|
+
- **Interoperable** - Common language enabling diverse AI agents to work together
|
|
24
|
+
- **Trustworthy** - Built with compliance and security in mind
|
|
25
|
+
- **Open** - Collaborative effort for the "Internet of Agents"
|
|
26
26
|
|
|
27
27
|
| Component | Role | Comparable To |
|
|
28
28
|
|-----------|------|---------------|
|
|
@@ -47,7 +47,7 @@ Just as OpenAPI standardized REST APIs, OSSA standardizes AI agent interaction,
|
|
|
47
47
|
### Installation
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
npm install -g @bluefly/
|
|
50
|
+
npm install -g @bluefly/openstandardagents
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
### Create Agent
|
|
@@ -63,6 +63,22 @@ ossa generate worker --name "My Agent" --id my-agent
|
|
|
63
63
|
ossa validate agent.yml
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
+
### Run Your Agent
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Set your API key
|
|
70
|
+
export OPENAI_API_KEY=sk-your-key-here
|
|
71
|
+
|
|
72
|
+
# Run interactively
|
|
73
|
+
ossa run agent.ossa.yaml
|
|
74
|
+
|
|
75
|
+
# Or send a single message
|
|
76
|
+
ossa run agent.ossa.yaml -m "Hello, how can you help me?"
|
|
77
|
+
|
|
78
|
+
# With verbose output
|
|
79
|
+
ossa run agent.ossa.yaml -v
|
|
80
|
+
```
|
|
81
|
+
|
|
66
82
|
### Deploy
|
|
67
83
|
|
|
68
84
|
Deploy to **YOUR** infrastructure:
|
|
@@ -82,32 +98,65 @@ The OSSA CLI provides basic tooling:
|
|
|
82
98
|
```bash
|
|
83
99
|
ossa validate <path> # Validate against OSSA schema
|
|
84
100
|
ossa generate <type> # Generate agent from template (chat, workflow, compliance, etc.)
|
|
85
|
-
ossa migrate <source> # Migrate
|
|
101
|
+
ossa migrate <source> # Migrate between OSSA versions
|
|
102
|
+
ossa run <path> # Run agents with OpenAI adapter
|
|
86
103
|
```
|
|
87
104
|
|
|
88
105
|
**What OSSA CLI does:**
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
106
|
+
- Validate agent manifests
|
|
107
|
+
- Generate project scaffolding
|
|
108
|
+
- Provide templates
|
|
109
|
+
- Run agents interactively (OpenAI adapter)
|
|
92
110
|
|
|
93
111
|
**What OSSA CLI does NOT do:**
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
112
|
+
- Runtime orchestration
|
|
113
|
+
- Deployment
|
|
114
|
+
- Production monitoring
|
|
115
|
+
- Infrastructure management
|
|
116
|
+
|
|
117
|
+
For production features, see [Agent Buildkit](https://github.com/blueflyio/agent-buildkit).
|
|
118
|
+
|
|
119
|
+
### Running Agents
|
|
120
|
+
|
|
121
|
+
The `ossa run` command allows you to execute agents using the OpenAI adapter:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Interactive mode (REPL)
|
|
125
|
+
ossa run my-agent.ossa.yaml
|
|
126
|
+
|
|
127
|
+
# Single message mode
|
|
128
|
+
ossa run my-agent.ossa.yaml -m "What is the weather today?"
|
|
129
|
+
|
|
130
|
+
# Verbose output (show tool calls)
|
|
131
|
+
ossa run my-agent.ossa.yaml -v
|
|
132
|
+
|
|
133
|
+
# Custom options
|
|
134
|
+
ossa run my-agent.ossa.yaml --max-turns 20 --no-validate
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Features:**
|
|
138
|
+
- Interactive REPL mode for conversations
|
|
139
|
+
- Single message mode for quick queries
|
|
140
|
+
- Tool execution with custom handlers
|
|
141
|
+
- Verbose mode for debugging
|
|
142
|
+
- Configurable max turns to prevent loops
|
|
98
143
|
|
|
99
|
-
|
|
144
|
+
**Requirements:**
|
|
145
|
+
- OpenAI API key: `export OPENAI_API_KEY=sk-...`
|
|
146
|
+
- Valid OSSA manifest (YAML or JSON)
|
|
147
|
+
|
|
148
|
+
See [Running Agents Guide](https://openstandardagents.org/docs/getting-started/running-agents) for more details.
|
|
100
149
|
|
|
101
150
|
---
|
|
102
151
|
|
|
103
152
|
## Specification
|
|
104
153
|
|
|
105
|
-
OSSA v0.2.
|
|
154
|
+
OSSA v0.2.5-RC Schema: [`spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json`](spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json)
|
|
106
155
|
|
|
107
156
|
### Required Fields
|
|
108
157
|
|
|
109
158
|
```yaml
|
|
110
|
-
ossaVersion: "0.2.
|
|
159
|
+
ossaVersion: "0.2.5-RC"
|
|
111
160
|
|
|
112
161
|
agent:
|
|
113
162
|
id: my-agent # DNS-1123 format
|
|
@@ -129,6 +178,38 @@ Full schema documentation: [`docs/specification/`](docs/specification/)
|
|
|
129
178
|
|
|
130
179
|
---
|
|
131
180
|
|
|
181
|
+
## Production-Ready Example: GitLab Kubernetes Agent Ecosystem
|
|
182
|
+
|
|
183
|
+
**NEW**: Complete production ecosystem with **8 specialized agents** for GitLab-integrated Kubernetes deployments.
|
|
184
|
+
|
|
185
|
+
[**View Full Documentation**](https://github.com/blueflyio/openstandardagents/wiki/OSSA-Agent-Ecosystem-for-GitLab-Kubernetes-Deployments)
|
|
186
|
+
|
|
187
|
+
### Highlights
|
|
188
|
+
|
|
189
|
+
- **8 OSSA-compliant agents**: Security, Performance, Database, Config, Monitoring, Rollback, Cost, Compliance
|
|
190
|
+
- **Agent mesh** with Istio + STRICT mTLS
|
|
191
|
+
- **Elite DORA metrics**: 12 deployments/day, 45min lead time, 8.5% change failure rate
|
|
192
|
+
- **Massive ROI**: $80-145K/month cost savings (31-57x return)
|
|
193
|
+
- **Full compliance**: SOC2, HIPAA, PCI-DSS, GDPR, FedRAMP
|
|
194
|
+
|
|
195
|
+
### Quick Deploy
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Deploy agent mesh
|
|
199
|
+
kubectl apply -f .gitlab/agents/mesh-config.yaml
|
|
200
|
+
|
|
201
|
+
# Deploy all 8 agents
|
|
202
|
+
for agent in security-scanner performance-optimizer db-migrator \
|
|
203
|
+
config-validator monitoring-agent rollback-coordinator \
|
|
204
|
+
cost-analyzer compliance-auditor; do
|
|
205
|
+
buildkit agents deploy .gitlab/agents/$agent/manifest.ossa.yaml
|
|
206
|
+
done
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Location**: [`.gitlab/agents/`](.gitlab/agents/)
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
132
213
|
## Examples
|
|
133
214
|
|
|
134
215
|
Reference implementations: [`examples/`](examples/)
|
|
@@ -136,6 +217,7 @@ Reference implementations: [`examples/`](examples/)
|
|
|
136
217
|
- `compliance-agent.yml` - FedRAMP compliance
|
|
137
218
|
- `chat-agent.yml` - Conversation agent
|
|
138
219
|
- `workflow-agent.yml` - Workflow orchestration
|
|
220
|
+
- **GitLab K8s Ecosystem** - Production-ready multi-agent system (see above)
|
|
139
221
|
|
|
140
222
|
---
|
|
141
223
|
|
|
@@ -154,14 +236,12 @@ Reference implementations: [`examples/`](examples/)
|
|
|
154
236
|
- GitLab integration
|
|
155
237
|
- Kubernetes deployment
|
|
156
238
|
- Production monitoring
|
|
157
|
-
- [Learn more →](https://gitlab.bluefly.io/llm/npm/agent-buildkit)
|
|
158
239
|
|
|
159
240
|
**Agent Studio** - GUI platform for agent orchestration
|
|
160
241
|
- macOS-aligned design
|
|
161
242
|
- Visual workflow design
|
|
162
243
|
- Agent monitoring and debugging
|
|
163
244
|
- End-to-end agent lifecycle management
|
|
164
|
-
- [Learn more →](https://gitlab.bluefly.io/llm/demos/llm-platform-demo)
|
|
165
245
|
|
|
166
246
|
### Part of the OSSA Ecosystem
|
|
167
247
|
|
|
@@ -180,16 +260,16 @@ Together, they form a complete ecosystem for AI agent development, deployment, a
|
|
|
180
260
|
|
|
181
261
|
### For Enterprises
|
|
182
262
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
263
|
+
- **Lightweight** - Just a standard, minimal dependencies
|
|
264
|
+
- **No Vendor Lock-in** - Use any implementation
|
|
265
|
+
- **Deploy Anywhere** - Your infrastructure, your choice
|
|
266
|
+
- **Clear Specification** - Well-defined contract
|
|
187
267
|
|
|
188
268
|
### For Framework Builders
|
|
189
269
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
270
|
+
- **Standard to Build On** - Like OpenAPI for APIs
|
|
271
|
+
- **Reference Implementation** - Agent Buildkit shows the way
|
|
272
|
+
- **Clear Boundaries** - Standard vs. implementation
|
|
193
273
|
|
|
194
274
|
---
|
|
195
275
|
|
|
@@ -198,7 +278,7 @@ Together, they form a complete ecosystem for AI agent development, deployment, a
|
|
|
198
278
|
### As a Standard (Validation Only)
|
|
199
279
|
|
|
200
280
|
```bash
|
|
201
|
-
npm install -g @bluefly/
|
|
281
|
+
npm install -g @bluefly/openstandardagents
|
|
202
282
|
ossa validate my-agent.yml
|
|
203
283
|
```
|
|
204
284
|
|
|
@@ -216,7 +296,7 @@ buildkit ossa sync-docs # GitLab integration
|
|
|
216
296
|
|
|
217
297
|
### Official Website & Documentation Portal
|
|
218
298
|
|
|
219
|
-
**Live Website**: https://
|
|
299
|
+
**Live Website**: https://openstandardagents.org
|
|
220
300
|
|
|
221
301
|
The OSSA website features:
|
|
222
302
|
- **Interactive Documentation** - Browse the complete OSSA wiki with an enhanced UI
|
|
@@ -236,11 +316,10 @@ The documentation is organized into:
|
|
|
236
316
|
|
|
237
317
|
### Additional Resources
|
|
238
318
|
|
|
239
|
-
- **Specification**: [spec/v0.2.
|
|
319
|
+
- **Specification**: [spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json](spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json)
|
|
240
320
|
- **Examples**: [examples/](examples/)
|
|
241
321
|
- **API Reference**: [docs/](docs/)
|
|
242
|
-
- **
|
|
243
|
-
- **Issue Tracker**: https://gitlab.bluefly.io/llm/ossa/-/issues
|
|
322
|
+
- **GitHub Issues**: https://github.com/blueflyio/openstandardagents/issues
|
|
244
323
|
|
|
245
324
|
---
|
|
246
325
|
|
|
@@ -248,17 +327,16 @@ The documentation is organized into:
|
|
|
248
327
|
|
|
249
328
|
OSSA is an open standard. Contributions welcome.
|
|
250
329
|
|
|
251
|
-
**
|
|
252
|
-
**
|
|
330
|
+
**Repository**: https://github.com/blueflyio/openstandardagents/
|
|
331
|
+
**Homepage**: https://openstandardagents.org
|
|
332
|
+
**Issues**: https://github.com/blueflyio/openstandardagents/issues
|
|
253
333
|
|
|
254
|
-
1. Fork the repository
|
|
334
|
+
1. Fork the repository on GitHub
|
|
255
335
|
2. Create feature branch
|
|
256
|
-
3. Submit
|
|
336
|
+
3. Submit pull request
|
|
257
337
|
|
|
258
338
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
259
339
|
|
|
260
|
-
> **Note**: This repository is automatically mirrored from GitLab to GitHub. The GitHub repository is read-only. All development happens on GitLab. See [GitHub Mirror Setup Guide](docs/GITHUB-MIRROR-SETUP.md) for details.
|
|
261
|
-
|
|
262
340
|
---
|
|
263
341
|
|
|
264
342
|
## License
|
|
@@ -271,9 +349,9 @@ Apache 2.0 - see [LICENSE](LICENSE) for details.
|
|
|
271
349
|
|
|
272
350
|
OSSA is part of a unified ecosystem for AI agent development:
|
|
273
351
|
|
|
274
|
-
- **
|
|
275
|
-
- **
|
|
276
|
-
- **
|
|
352
|
+
- **OSSA** - The open standard (this repository)
|
|
353
|
+
- **Agent Buildkit** - CLI for building and managing agents
|
|
354
|
+
- **Agent Studio** - GUI platform for agent orchestration
|
|
277
355
|
|
|
278
356
|
**OSSA: Open. Interoperable. Trustworthy.**
|
|
279
357
|
|
package/bin/ossa
CHANGED
|
@@ -1,8 +1,29 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* OSSA CLI
|
|
5
|
-
*
|
|
4
|
+
* OSSA CLI Entry Point
|
|
5
|
+
* Enhanced with error handling, version detection, and better UX
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import '
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
9
|
+
import { dirname, resolve } from 'path';
|
|
10
|
+
import { existsSync } from 'fs';
|
|
11
|
+
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
|
|
15
|
+
// Try to load compiled CLI
|
|
16
|
+
const cliPath = resolve(__dirname, '../dist/cli/index.js');
|
|
17
|
+
|
|
18
|
+
if (!existsSync(cliPath)) {
|
|
19
|
+
console.error('❌ OSSA CLI not built. Run: npm run build');
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
await import(cliPath);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
console.error('❌ Failed to load OSSA CLI:');
|
|
27
|
+
console.error(error);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* OSSA Validate All
|
|
5
|
+
* Validates all OSSA manifests in examples directory
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#!/usr/bin/env node
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* OSSA Validate All
|
|
12
|
+
* Validates all OSSA manifests in examples directory
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { execSync } from 'child_process';
|
|
16
|
+
import { glob } from 'glob';
|
|
17
|
+
import { resolve, dirname } from 'path';
|
|
18
|
+
import { fileURLToPath } from 'url';
|
|
19
|
+
|
|
20
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
21
|
+
const __dirname = dirname(__filename);
|
|
22
|
+
const root = resolve(__dirname, '..');
|
|
23
|
+
|
|
24
|
+
async function main() {
|
|
25
|
+
const examples = await glob('examples/**/*.ossa.{yaml,yml}', { cwd: root });
|
|
26
|
+
|
|
27
|
+
if (examples.length === 0) {
|
|
28
|
+
console.log('No OSSA manifests found in examples/');
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
console.log(`Found ${examples.length} OSSA manifests to validate\n`);
|
|
33
|
+
|
|
34
|
+
let passed = 0;
|
|
35
|
+
let failed = 0;
|
|
36
|
+
|
|
37
|
+
for (const file of examples) {
|
|
38
|
+
try {
|
|
39
|
+
execSync(`node bin/ossa validate ${file}`, {
|
|
40
|
+
cwd: root,
|
|
41
|
+
stdio: 'inherit'
|
|
42
|
+
});
|
|
43
|
+
passed++;
|
|
44
|
+
} catch (error) {
|
|
45
|
+
failed++;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
console.log(`\n✅ Passed: ${passed}`);
|
|
50
|
+
console.log(`❌ Failed: ${failed}`);
|
|
51
|
+
process.exit(failed > 0 ? 1 : 0);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
main();
|
|
55
|
+
|
package/bin/ossa-version
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* OSSA Version Checker
|
|
5
|
+
* Shows current OSSA CLI version and schema version
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { readFileSync } from 'fs';
|
|
9
|
+
import { resolve, dirname } from 'path';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
const pkg = JSON.parse(readFileSync(resolve(__dirname, '../package.json'), 'utf-8'));
|
|
17
|
+
console.log(`OSSA CLI: ${pkg.version}`);
|
|
18
|
+
console.log(`Schema: ${pkg.version}`);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
console.error('Failed to read version');
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* OSSA 0.2.4 Validation Tool
|
|
4
|
+
* Validates power-suite modules' ossa.yaml files against OSSA 0.2.4 schema
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { readFileSync } from 'fs';
|
|
8
|
+
import { resolve, dirname } from 'path';
|
|
9
|
+
import { fileURLToPath } from 'url';
|
|
10
|
+
import { parse as parseYaml } from 'yaml';
|
|
11
|
+
import Ajv from 'ajv';
|
|
12
|
+
import addFormats from 'ajv-formats';
|
|
13
|
+
import chalk from 'chalk';
|
|
14
|
+
|
|
15
|
+
// ES module __dirname equivalent
|
|
16
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
17
|
+
const __dirname = dirname(__filename);
|
|
18
|
+
|
|
19
|
+
// Load OSSA 0.2.4 schema
|
|
20
|
+
const schemaPath = resolve(__dirname, '../spec/v0.2.4/ossa-0.2.4.schema.json');
|
|
21
|
+
const schema = JSON.parse(readFileSync(schemaPath, 'utf-8'));
|
|
22
|
+
|
|
23
|
+
// Initialize AJV validator
|
|
24
|
+
const ajv = new Ajv({
|
|
25
|
+
allErrors: true,
|
|
26
|
+
strict: false,
|
|
27
|
+
validateFormats: true,
|
|
28
|
+
verbose: true,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
addFormats(ajv);
|
|
32
|
+
|
|
33
|
+
// Note: The power-suite ossa.yaml files use a different format (project config)
|
|
34
|
+
// than full agent manifests. This validator checks for OSSA 0.2.4 compliance
|
|
35
|
+
// in the project configuration format.
|
|
36
|
+
|
|
37
|
+
interface PowerSuiteOssaConfig {
|
|
38
|
+
ossa?: {
|
|
39
|
+
version: string;
|
|
40
|
+
project?: {
|
|
41
|
+
name: string;
|
|
42
|
+
type: string;
|
|
43
|
+
version: string;
|
|
44
|
+
description: string;
|
|
45
|
+
};
|
|
46
|
+
metadata?: {
|
|
47
|
+
reasoning?: boolean;
|
|
48
|
+
compliance?: {
|
|
49
|
+
frameworks?: string[];
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
ecosystem?: {
|
|
53
|
+
mesh_enabled?: boolean;
|
|
54
|
+
protocol_enabled?: boolean;
|
|
55
|
+
router_enabled?: boolean;
|
|
56
|
+
tracer_enabled?: boolean;
|
|
57
|
+
brain_enabled?: boolean;
|
|
58
|
+
flows_enabled?: boolean;
|
|
59
|
+
[key: string]: unknown;
|
|
60
|
+
};
|
|
61
|
+
[key: string]: unknown;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Validate OSSA 0.2.4 configuration format
|
|
67
|
+
*/
|
|
68
|
+
function validatePowerSuiteConfig(config: PowerSuiteOssaConfig): {
|
|
69
|
+
valid: boolean;
|
|
70
|
+
errors: string[];
|
|
71
|
+
warnings: string[];
|
|
72
|
+
} {
|
|
73
|
+
const errors: string[] = [];
|
|
74
|
+
const warnings: string[] = [];
|
|
75
|
+
|
|
76
|
+
if (!config.ossa) {
|
|
77
|
+
errors.push('Missing top-level "ossa" key');
|
|
78
|
+
return { valid: false, errors, warnings };
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const { ossa } = config;
|
|
82
|
+
|
|
83
|
+
// Check version
|
|
84
|
+
if (!ossa.version) {
|
|
85
|
+
errors.push('Missing ossa.version');
|
|
86
|
+
} else if (!ossa.version.startsWith('0.2.4')) {
|
|
87
|
+
errors.push(
|
|
88
|
+
`Invalid ossa.version: expected "0.2.4" or "0.2.4.x", got "${ossa.version}"`
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Check project
|
|
93
|
+
if (!ossa.project) {
|
|
94
|
+
warnings.push('Missing ossa.project (recommended for identification)');
|
|
95
|
+
} else {
|
|
96
|
+
if (!ossa.project.name) {
|
|
97
|
+
errors.push('Missing ossa.project.name');
|
|
98
|
+
}
|
|
99
|
+
if (!ossa.project.type) {
|
|
100
|
+
warnings.push('Missing ossa.project.type');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Check metadata (OSSA 0.2.4 requirement)
|
|
105
|
+
if (!ossa.metadata) {
|
|
106
|
+
warnings.push(
|
|
107
|
+
'Missing ossa.metadata (OSSA 0.2.4 recommends metadata.reasoning)'
|
|
108
|
+
);
|
|
109
|
+
} else {
|
|
110
|
+
if (ossa.metadata.reasoning === undefined) {
|
|
111
|
+
warnings.push(
|
|
112
|
+
'OSSA 0.2.4 recommends metadata.reasoning: true for AI agents'
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
if (!ossa.metadata.compliance?.frameworks) {
|
|
116
|
+
warnings.push(
|
|
117
|
+
'OSSA 0.2.4 recommends metadata.compliance.frameworks array'
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Check ecosystem (power-suite integration)
|
|
123
|
+
if (!ossa.ecosystem) {
|
|
124
|
+
warnings.push(
|
|
125
|
+
'Missing ossa.ecosystem (power-suite integration configuration)'
|
|
126
|
+
);
|
|
127
|
+
} else {
|
|
128
|
+
const ecosystem = ossa.ecosystem;
|
|
129
|
+
const requiredModules = [
|
|
130
|
+
'mesh_enabled',
|
|
131
|
+
'protocol_enabled',
|
|
132
|
+
'router_enabled',
|
|
133
|
+
'tracer_enabled',
|
|
134
|
+
'brain_enabled',
|
|
135
|
+
'flows_enabled',
|
|
136
|
+
];
|
|
137
|
+
|
|
138
|
+
for (const module of requiredModules) {
|
|
139
|
+
if (ecosystem[module] === undefined) {
|
|
140
|
+
warnings.push(
|
|
141
|
+
`Consider setting ossa.ecosystem.${module} for power-suite integration`
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Check compliance standards array
|
|
148
|
+
if (ossa.compliance?.standards) {
|
|
149
|
+
const standards = Array.isArray(ossa.compliance.standards)
|
|
150
|
+
? ossa.compliance.standards
|
|
151
|
+
: Object.values(ossa.compliance.standards);
|
|
152
|
+
|
|
153
|
+
if (!standards.includes('OSSA-0.2.4')) {
|
|
154
|
+
errors.push(
|
|
155
|
+
'compliance.standards must include "OSSA-0.2.4" for v0.2.4 compliance'
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return {
|
|
161
|
+
valid: errors.length === 0,
|
|
162
|
+
errors,
|
|
163
|
+
warnings,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Validate a single ossa.yaml file
|
|
169
|
+
*/
|
|
170
|
+
function validateFile(filePath: string): boolean {
|
|
171
|
+
try {
|
|
172
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
173
|
+
const config = parseYaml(content) as PowerSuiteOssaConfig;
|
|
174
|
+
|
|
175
|
+
console.log(chalk.blue(`\nValidating: ${filePath}`));
|
|
176
|
+
console.log(chalk.gray('─'.repeat(80)));
|
|
177
|
+
|
|
178
|
+
const result = validatePowerSuiteConfig(config);
|
|
179
|
+
|
|
180
|
+
if (result.valid) {
|
|
181
|
+
console.log(chalk.green('✓ Valid OSSA 0.2.4 configuration'));
|
|
182
|
+
} else {
|
|
183
|
+
console.log(chalk.red('✗ Invalid OSSA 0.2.4 configuration'));
|
|
184
|
+
result.errors.forEach((error) => {
|
|
185
|
+
console.log(chalk.red(` ERROR: ${error}`));
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
if (result.warnings.length > 0) {
|
|
190
|
+
result.warnings.forEach((warning) => {
|
|
191
|
+
console.log(chalk.yellow(` WARNING: ${warning}`));
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return result.valid;
|
|
196
|
+
} catch (error) {
|
|
197
|
+
console.error(chalk.red(`Failed to validate ${filePath}:`));
|
|
198
|
+
console.error(error);
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Main validation function
|
|
205
|
+
*/
|
|
206
|
+
function main() {
|
|
207
|
+
const args = process.argv.slice(2);
|
|
208
|
+
|
|
209
|
+
if (args.length === 0) {
|
|
210
|
+
console.log(chalk.blue('OSSA 0.2.4 Power-Suite Validation Tool\n'));
|
|
211
|
+
console.log('Usage:');
|
|
212
|
+
console.log(' validate-ossa-0.2.4.ts <file1.yaml> [file2.yaml] ...\n');
|
|
213
|
+
console.log('Or validate all power-suite modules:');
|
|
214
|
+
console.log(
|
|
215
|
+
' find ../common_npm -name "ossa.yaml" -o -path "*/config/ossa.yaml" | xargs validate-ossa-0.2.4.ts'
|
|
216
|
+
);
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
let allValid = true;
|
|
221
|
+
for (const filePath of args) {
|
|
222
|
+
const valid = validateFile(resolve(filePath));
|
|
223
|
+
if (!valid) {
|
|
224
|
+
allValid = false;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
console.log(chalk.gray('\n' + '─'.repeat(80)));
|
|
229
|
+
if (allValid) {
|
|
230
|
+
console.log(chalk.green('\n✓ All files are OSSA 0.2.4 compliant'));
|
|
231
|
+
process.exit(0);
|
|
232
|
+
} else {
|
|
233
|
+
console.log(chalk.red('\n✗ Some files failed validation'));
|
|
234
|
+
process.exit(1);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Run if executed directly
|
|
239
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
240
|
+
main();
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export { validatePowerSuiteConfig, validateFile };
|
|
244
|
+
|