@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
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* OSSA 0.2.5-RC Validation Tool
|
|
4
|
+
* Validates power-suite modules' ossa.yaml files against OSSA 0.2.5-RC 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.5-RC schema
|
|
20
|
+
const schemaPath = resolve(__dirname, '../spec/v0.2.5-RC/ossa-0.2.5-RC.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.5-RC 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.5-RC 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.5')) {
|
|
87
|
+
errors.push(
|
|
88
|
+
`Invalid ossa.version: expected "0.2.5" or "0.2.5-RC" or "0.2.5.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.5-RC requirement)
|
|
105
|
+
if (!ossa.metadata) {
|
|
106
|
+
warnings.push(
|
|
107
|
+
'Missing ossa.metadata (OSSA 0.2.5-RC recommends metadata.reasoning)'
|
|
108
|
+
);
|
|
109
|
+
} else {
|
|
110
|
+
if (ossa.metadata.reasoning === undefined) {
|
|
111
|
+
warnings.push(
|
|
112
|
+
'OSSA 0.2.5-RC recommends metadata.reasoning: true for AI agents'
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
if (!ossa.metadata.compliance?.frameworks) {
|
|
116
|
+
warnings.push(
|
|
117
|
+
'OSSA 0.2.5-RC 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.5-RC') && !standards.includes('OSSA-0.2.5')) {
|
|
154
|
+
errors.push(
|
|
155
|
+
'compliance.standards must include "OSSA-0.2.5-RC" or "OSSA-0.2.5" for v0.2.5-RC 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.5-RC configuration'));
|
|
182
|
+
} else {
|
|
183
|
+
console.log(chalk.red('✗ Invalid OSSA 0.2.5-RC 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.5-RC Power-Suite Validation Tool\n'));
|
|
211
|
+
console.log('Usage:');
|
|
212
|
+
console.log(' validate-ossa-0.2.5-RC.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.5-RC.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.5-RC 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
|
+
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* OSSA Validation Tool (Version-Agnostic)
|
|
4
|
+
* Validates power-suite modules' ossa.yaml files against current OSSA schema
|
|
5
|
+
* Automatically detects version from package.json
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { readFileSync } from 'fs';
|
|
9
|
+
import { resolve, dirname } from 'path';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
import { parse as parseYaml } from 'yaml';
|
|
12
|
+
import Ajv from 'ajv';
|
|
13
|
+
import addFormats from 'ajv-formats';
|
|
14
|
+
import chalk from 'chalk';
|
|
15
|
+
|
|
16
|
+
// ES module __dirname equivalent
|
|
17
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
18
|
+
const __dirname = dirname(__filename);
|
|
19
|
+
|
|
20
|
+
// Get version from package.json
|
|
21
|
+
function getVersion(): string {
|
|
22
|
+
const packageJsonPath = resolve(__dirname, '../package.json');
|
|
23
|
+
const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
24
|
+
return pkg.version;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const VERSION = getVersion();
|
|
28
|
+
const VERSION_DIR = `v${VERSION}`;
|
|
29
|
+
|
|
30
|
+
// Load OSSA schema (auto-detected from version)
|
|
31
|
+
const schemaPath = resolve(__dirname, `../spec/${VERSION_DIR}/ossa-${VERSION}.schema.json`);
|
|
32
|
+
|
|
33
|
+
let schema;
|
|
34
|
+
try {
|
|
35
|
+
schema = JSON.parse(readFileSync(schemaPath, 'utf-8'));
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.error(chalk.red(`Failed to load schema at ${schemaPath}`));
|
|
38
|
+
console.error(chalk.yellow(`Make sure spec/${VERSION_DIR}/ossa-${VERSION}.schema.json exists`));
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Initialize AJV validator
|
|
43
|
+
const ajv = new Ajv({
|
|
44
|
+
allErrors: true,
|
|
45
|
+
strict: false,
|
|
46
|
+
validateFormats: true,
|
|
47
|
+
verbose: true,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
addFormats(ajv);
|
|
51
|
+
|
|
52
|
+
// Note: The power-suite ossa.yaml files use a different format (project config)
|
|
53
|
+
// than full agent manifests. This validator checks for OSSA compliance
|
|
54
|
+
// in the project configuration format.
|
|
55
|
+
|
|
56
|
+
interface PowerSuiteOssaConfig {
|
|
57
|
+
ossa?: {
|
|
58
|
+
version: string;
|
|
59
|
+
project?: {
|
|
60
|
+
name: string;
|
|
61
|
+
type: string;
|
|
62
|
+
version: string;
|
|
63
|
+
description: string;
|
|
64
|
+
};
|
|
65
|
+
metadata?: {
|
|
66
|
+
reasoning?: boolean;
|
|
67
|
+
compliance?: {
|
|
68
|
+
frameworks?: string[];
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
ecosystem?: {
|
|
72
|
+
mesh_enabled?: boolean;
|
|
73
|
+
protocol_enabled?: boolean;
|
|
74
|
+
router_enabled?: boolean;
|
|
75
|
+
tracer_enabled?: boolean;
|
|
76
|
+
brain_enabled?: boolean;
|
|
77
|
+
flows_enabled?: boolean;
|
|
78
|
+
[key: string]: unknown;
|
|
79
|
+
};
|
|
80
|
+
[key: string]: unknown;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Validate OSSA configuration format
|
|
86
|
+
*/
|
|
87
|
+
function validatePowerSuiteConfig(config: PowerSuiteOssaConfig): {
|
|
88
|
+
valid: boolean;
|
|
89
|
+
errors: string[];
|
|
90
|
+
warnings: string[];
|
|
91
|
+
} {
|
|
92
|
+
const errors: string[] = [];
|
|
93
|
+
const warnings: string[] = [];
|
|
94
|
+
|
|
95
|
+
if (!config.ossa) {
|
|
96
|
+
errors.push('Missing top-level "ossa" key');
|
|
97
|
+
return { valid: false, errors, warnings };
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const { ossa } = config;
|
|
101
|
+
|
|
102
|
+
// Check version - allow current version or compatible versions
|
|
103
|
+
if (!ossa.version) {
|
|
104
|
+
errors.push('Missing ossa.version');
|
|
105
|
+
} else {
|
|
106
|
+
// Extract base version (e.g., "0.2.5" from "0.2.5-RC")
|
|
107
|
+
const baseVersion = VERSION.split('-')[0];
|
|
108
|
+
const ossaBaseVersion = ossa.version.split('-')[0];
|
|
109
|
+
|
|
110
|
+
if (!ossaBaseVersion.startsWith(baseVersion)) {
|
|
111
|
+
errors.push(
|
|
112
|
+
`Invalid ossa.version: expected "${VERSION}" or compatible version, got "${ossa.version}"`
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Check project
|
|
118
|
+
if (!ossa.project) {
|
|
119
|
+
warnings.push('Missing ossa.project (recommended for identification)');
|
|
120
|
+
} else {
|
|
121
|
+
if (!ossa.project.name) {
|
|
122
|
+
errors.push('Missing ossa.project.name');
|
|
123
|
+
}
|
|
124
|
+
if (!ossa.project.type) {
|
|
125
|
+
warnings.push('Missing ossa.project.type');
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Check metadata
|
|
130
|
+
if (!ossa.metadata) {
|
|
131
|
+
warnings.push(
|
|
132
|
+
`Missing ossa.metadata (OSSA ${VERSION} recommends metadata.reasoning)`
|
|
133
|
+
);
|
|
134
|
+
} else {
|
|
135
|
+
if (ossa.metadata.reasoning === undefined) {
|
|
136
|
+
warnings.push(
|
|
137
|
+
`OSSA ${VERSION} recommends metadata.reasoning: true for AI agents`
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
if (!ossa.metadata.compliance?.frameworks) {
|
|
141
|
+
warnings.push(
|
|
142
|
+
`OSSA ${VERSION} recommends metadata.compliance.frameworks array`
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Check ecosystem (power-suite integration)
|
|
148
|
+
if (!ossa.ecosystem) {
|
|
149
|
+
warnings.push(
|
|
150
|
+
'Missing ossa.ecosystem (power-suite integration configuration)'
|
|
151
|
+
);
|
|
152
|
+
} else {
|
|
153
|
+
const ecosystem = ossa.ecosystem;
|
|
154
|
+
const requiredModules = [
|
|
155
|
+
'mesh_enabled',
|
|
156
|
+
'protocol_enabled',
|
|
157
|
+
'router_enabled',
|
|
158
|
+
'tracer_enabled',
|
|
159
|
+
'brain_enabled',
|
|
160
|
+
'flows_enabled',
|
|
161
|
+
];
|
|
162
|
+
|
|
163
|
+
for (const module of requiredModules) {
|
|
164
|
+
if (ecosystem[module] === undefined) {
|
|
165
|
+
warnings.push(
|
|
166
|
+
`Consider setting ossa.ecosystem.${module} for power-suite integration`
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Check compliance standards array
|
|
173
|
+
if (ossa.compliance?.standards) {
|
|
174
|
+
const standards = Array.isArray(ossa.compliance.standards)
|
|
175
|
+
? ossa.compliance.standards
|
|
176
|
+
: Object.values(ossa.compliance.standards);
|
|
177
|
+
|
|
178
|
+
const baseVersion = VERSION.split('-')[0];
|
|
179
|
+
const expectedStandard = `OSSA-${baseVersion}`;
|
|
180
|
+
const expectedStandardRC = `OSSA-${VERSION}`;
|
|
181
|
+
|
|
182
|
+
if (!standards.includes(expectedStandardRC) && !standards.includes(expectedStandard)) {
|
|
183
|
+
errors.push(
|
|
184
|
+
`compliance.standards must include "${expectedStandardRC}" or "${expectedStandard}" for v${VERSION} compliance`
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return {
|
|
190
|
+
valid: errors.length === 0,
|
|
191
|
+
errors,
|
|
192
|
+
warnings,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Validate a single ossa.yaml file
|
|
198
|
+
*/
|
|
199
|
+
function validateFile(filePath: string): boolean {
|
|
200
|
+
try {
|
|
201
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
202
|
+
const config = parseYaml(content) as PowerSuiteOssaConfig;
|
|
203
|
+
|
|
204
|
+
console.log(chalk.blue(`\nValidating: ${filePath}`));
|
|
205
|
+
console.log(chalk.gray('─'.repeat(80)));
|
|
206
|
+
|
|
207
|
+
const result = validatePowerSuiteConfig(config);
|
|
208
|
+
|
|
209
|
+
if (result.valid) {
|
|
210
|
+
console.log(chalk.green(`✓ Valid OSSA ${VERSION} configuration`));
|
|
211
|
+
} else {
|
|
212
|
+
console.log(chalk.red(`✗ Invalid OSSA ${VERSION} configuration`));
|
|
213
|
+
result.errors.forEach((error) => {
|
|
214
|
+
console.log(chalk.red(` ERROR: ${error}`));
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
if (result.warnings.length > 0) {
|
|
219
|
+
result.warnings.forEach((warning) => {
|
|
220
|
+
console.log(chalk.yellow(` WARNING: ${warning}`));
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return result.valid;
|
|
225
|
+
} catch (error) {
|
|
226
|
+
console.error(chalk.red(`Failed to validate ${filePath}:`));
|
|
227
|
+
console.error(error);
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Main validation function
|
|
234
|
+
*/
|
|
235
|
+
function main() {
|
|
236
|
+
const args = process.argv.slice(2);
|
|
237
|
+
|
|
238
|
+
if (args.length === 0) {
|
|
239
|
+
console.log(chalk.blue(`OSSA ${VERSION} Power-Suite Validation Tool\n`));
|
|
240
|
+
console.log('Usage:');
|
|
241
|
+
console.log(` validate-ossa.ts <file1.yaml> [file2.yaml] ...\n`);
|
|
242
|
+
console.log('Or validate all power-suite modules:');
|
|
243
|
+
console.log(
|
|
244
|
+
' find ../common_npm -name "ossa.yaml" -o -path "*/config/ossa.yaml" | xargs ts-node bin/validate-ossa.ts'
|
|
245
|
+
);
|
|
246
|
+
process.exit(1);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
let allValid = true;
|
|
250
|
+
for (const filePath of args) {
|
|
251
|
+
const valid = validateFile(resolve(filePath));
|
|
252
|
+
if (!valid) {
|
|
253
|
+
allValid = false;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
console.log(chalk.gray('\n' + '─'.repeat(80)));
|
|
258
|
+
if (allValid) {
|
|
259
|
+
console.log(chalk.green(`\n✓ All files are OSSA ${VERSION} compliant`));
|
|
260
|
+
process.exit(0);
|
|
261
|
+
} else {
|
|
262
|
+
console.log(chalk.red('\n✗ Some files failed validation'));
|
|
263
|
+
process.exit(1);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// Run if executed directly
|
|
268
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
269
|
+
main();
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export { validatePowerSuiteConfig, validateFile };
|
|
273
|
+
|
package/dist/di-container.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare const container: Container;
|
|
|
10
10
|
* @param serviceIdentifier - Service class or token
|
|
11
11
|
* @returns Service instance
|
|
12
12
|
*/
|
|
13
|
-
export declare function getService<T>(serviceIdentifier: new (...args:
|
|
13
|
+
export declare function getService<T>(serviceIdentifier: new (...args: unknown[]) => T): T;
|
|
14
14
|
/**
|
|
15
15
|
* Reset container (useful for testing)
|
|
16
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di-container.d.ts","sourceRoot":"","sources":["../src/di-container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,kBAAkB,CAAC;AAY1B,eAAO,MAAM,SAAS,WAAkB,CAAC;AAWzC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"di-container.d.ts","sourceRoot":"","sources":["../src/di-container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,kBAAkB,CAAC;AAY1B,eAAO,MAAM,SAAS,WAAkB,CAAC;AAWzC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,iBAAiB,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAC/C,CAAC,CAEH;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CASrC"}
|
package/dist/di-container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di-container.js","sourceRoot":"","sources":["../src/di-container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,kBAAkB,CAAC;AAE1B,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,WAAW;AACX,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,mBAAmB;AACnB,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAEzC,oBAAoB;AACpB,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;AAC7D,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;AAE/D,gBAAgB;AAChB,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;AAC3C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;AAC3C,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,UAAU,
|
|
1
|
+
{"version":3,"file":"di-container.js","sourceRoot":"","sources":["../src/di-container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,kBAAkB,CAAC;AAE1B,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,WAAW;AACX,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,mBAAmB;AACnB,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAEzC,oBAAoB;AACpB,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;AAC7D,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;AAE/D,gBAAgB;AAChB,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;AAC3C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;AAC3C,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,iBAAgD;IAEhD,OAAO,SAAS,CAAC,GAAG,CAAI,iBAAiB,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,SAAS,CAAC,SAAS,EAAE,CAAC;IAEtB,sBAAsB;IACtB,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7D,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC/D,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3C,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -5,6 +5,15 @@
|
|
|
5
5
|
import type { ISchemaRepository, SchemaVersion } from '../types/index';
|
|
6
6
|
export declare class SchemaRepository implements ISchemaRepository {
|
|
7
7
|
private schemaCache;
|
|
8
|
+
private _availableVersions;
|
|
9
|
+
/**
|
|
10
|
+
* Get available schema versions (cached after first discovery)
|
|
11
|
+
*/
|
|
12
|
+
getAvailableVersions(): string[];
|
|
13
|
+
/**
|
|
14
|
+
* Get the latest/current version from package.json or spec directory
|
|
15
|
+
*/
|
|
16
|
+
getCurrentVersion(): string;
|
|
8
17
|
/**
|
|
9
18
|
* Get schema for specific version
|
|
10
19
|
* @param version - Schema version (e.g., '0.2.3', '0.2.2', '0.1.9')
|
|
@@ -12,14 +21,20 @@ export declare class SchemaRepository implements ISchemaRepository {
|
|
|
12
21
|
*/
|
|
13
22
|
getSchema(version: SchemaVersion): Promise<Record<string, unknown>>;
|
|
14
23
|
/**
|
|
15
|
-
* Get schema file path for version
|
|
24
|
+
* Get schema file path for version (dynamically discovers from spec directory)
|
|
16
25
|
* @param version - Schema version
|
|
17
26
|
* @returns Absolute path to schema file
|
|
18
27
|
*/
|
|
19
28
|
private getSchemaPath;
|
|
29
|
+
/**
|
|
30
|
+
* Dynamically discover available schema versions from spec directory
|
|
31
|
+
* @param specDir - Path to spec directory
|
|
32
|
+
* @returns Array of available version strings
|
|
33
|
+
*/
|
|
34
|
+
private discoverAvailableVersions;
|
|
20
35
|
/**
|
|
21
36
|
* Find OSSA package root directory
|
|
22
|
-
* Looks for package.json with @bluefly/
|
|
37
|
+
* Looks for package.json with @bluefly/openstandardagents
|
|
23
38
|
*/
|
|
24
39
|
private findOssaRoot;
|
|
25
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/schema.repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"schema.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/schema.repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEvE,qBACa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,WAAW,CAAmD;IACtE,OAAO,CAAC,kBAAkB,CAAyB;IAEnD;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAShC;;OAEG;IACH,iBAAiB,IAAI,MAAM;IA0B3B;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA0BzE;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA8BrB;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IA+BjC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAkGpB;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}
|