@bluefly/openstandardagents 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +41 -0
- package/.eslintrc.cjs +43 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +39 -0
- package/.github/dependabot.yml +58 -0
- package/.github/workflows/ci.yml +154 -0
- package/.github/workflows/codeql.yml +41 -0
- package/.github/workflows/dependabot-auto-merge.yml +28 -0
- package/.github/workflows/release.yml +103 -0
- package/.prettierignore +7 -0
- package/.prettierrc.json +10 -0
- package/.redocly.yaml +9 -0
- package/.releaserc.json +84 -0
- package/.releaserc.json.disabled +81 -0
- package/CHANGELOG.md +152 -0
- package/CONTRIBUTING.md +249 -0
- package/LICENSE +190 -0
- package/README.md +280 -0
- package/bin/ossa +8 -0
- package/bin/validate-ossa-0.2.2.ts +244 -0
- package/dist/di-container.d.ts +18 -0
- package/dist/di-container.d.ts.map +1 -0
- package/dist/di-container.js +43 -0
- package/dist/di-container.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories/manifest.repository.d.ts +26 -0
- package/dist/repositories/manifest.repository.d.ts.map +1 -0
- package/dist/repositories/manifest.repository.js +90 -0
- package/dist/repositories/manifest.repository.js.map +1 -0
- package/dist/repositories/schema.repository.d.ts +30 -0
- package/dist/repositories/schema.repository.d.ts.map +1 -0
- package/dist/repositories/schema.repository.js +143 -0
- package/dist/repositories/schema.repository.js.map +1 -0
- package/dist/services/generation.service.d.ts +54 -0
- package/dist/services/generation.service.d.ts.map +1 -0
- package/dist/services/generation.service.js +298 -0
- package/dist/services/generation.service.js.map +1 -0
- package/dist/services/migration.service.d.ts +30 -0
- package/dist/services/migration.service.d.ts.map +1 -0
- package/dist/services/migration.service.js +231 -0
- package/dist/services/migration.service.js.map +1 -0
- package/dist/services/runtime/openai.adapter.d.ts +94 -0
- package/dist/services/runtime/openai.adapter.d.ts.map +1 -0
- package/dist/services/runtime/openai.adapter.js +209 -0
- package/dist/services/runtime/openai.adapter.js.map +1 -0
- package/dist/services/validation.service.d.ts +45 -0
- package/dist/services/validation.service.d.ts.map +1 -0
- package/dist/services/validation.service.js +362 -0
- package/dist/services/validation.service.js.map +1 -0
- package/dist/services/validators/anthropic.validator.d.ts +9 -0
- package/dist/services/validators/anthropic.validator.d.ts.map +1 -0
- package/dist/services/validators/anthropic.validator.js +105 -0
- package/dist/services/validators/anthropic.validator.js.map +1 -0
- package/dist/services/validators/autogen.validator.d.ts +9 -0
- package/dist/services/validators/autogen.validator.d.ts.map +1 -0
- package/dist/services/validators/autogen.validator.js +111 -0
- package/dist/services/validators/autogen.validator.js.map +1 -0
- package/dist/services/validators/crewai.validator.d.ts +9 -0
- package/dist/services/validators/crewai.validator.d.ts.map +1 -0
- package/dist/services/validators/crewai.validator.js +117 -0
- package/dist/services/validators/crewai.validator.js.map +1 -0
- package/dist/services/validators/cursor.validator.d.ts +9 -0
- package/dist/services/validators/cursor.validator.d.ts.map +1 -0
- package/dist/services/validators/cursor.validator.js +88 -0
- package/dist/services/validators/cursor.validator.js.map +1 -0
- package/dist/services/validators/index.d.ts +15 -0
- package/dist/services/validators/index.d.ts.map +1 -0
- package/dist/services/validators/index.js +15 -0
- package/dist/services/validators/index.js.map +1 -0
- package/dist/services/validators/langchain.validator.d.ts +9 -0
- package/dist/services/validators/langchain.validator.d.ts.map +1 -0
- package/dist/services/validators/langchain.validator.js +103 -0
- package/dist/services/validators/langchain.validator.js.map +1 -0
- package/dist/services/validators/langflow.validator.d.ts +9 -0
- package/dist/services/validators/langflow.validator.d.ts.map +1 -0
- package/dist/services/validators/langflow.validator.js +92 -0
- package/dist/services/validators/langflow.validator.js.map +1 -0
- package/dist/services/validators/langgraph.validator.d.ts +9 -0
- package/dist/services/validators/langgraph.validator.d.ts.map +1 -0
- package/dist/services/validators/langgraph.validator.js +123 -0
- package/dist/services/validators/langgraph.validator.js.map +1 -0
- package/dist/services/validators/llamaindex.validator.d.ts +9 -0
- package/dist/services/validators/llamaindex.validator.d.ts.map +1 -0
- package/dist/services/validators/llamaindex.validator.js +121 -0
- package/dist/services/validators/llamaindex.validator.js.map +1 -0
- package/dist/services/validators/openai.validator.d.ts +9 -0
- package/dist/services/validators/openai.validator.d.ts.map +1 -0
- package/dist/services/validators/openai.validator.js +126 -0
- package/dist/services/validators/openai.validator.js.map +1 -0
- package/dist/services/validators/vercel-ai.validator.d.ts +9 -0
- package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -0
- package/dist/services/validators/vercel-ai.validator.js +99 -0
- package/dist/services/validators/vercel-ai.validator.js.map +1 -0
- package/dist/spec/v0.1.9/agent-autonomous-extensions.json +234 -0
- package/dist/spec/v0.1.9/ecosystem-compliance.json +235 -0
- package/dist/spec/v0.1.9/ossa-v0.1.9.schema.json +695 -0
- package/dist/spec/v0.1.9/ossa-v0.1.9.schema.json.backup +695 -0
- package/dist/spec/v0.1.9/reasoning-compliance.json +654 -0
- package/dist/spec/v0.2.2/kagent-enhancements.json +395 -0
- package/dist/spec/v0.2.2/ossa-0.2.2.schema.json +906 -0
- package/dist/spec/v0.2.2/ossa-0.2.2.yaml +448 -0
- package/dist/spec/v0.2.2/ossa-reasoning-compliance-1.0.schema.json +424 -0
- package/dist/spec/v0.2.3/CHANGELOG.md +176 -0
- package/dist/spec/v0.2.3/README.md +154 -0
- package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/dist/spec/v0.2.3/ossa-0.2.3.schema.json +1397 -0
- package/dist/spec/v0.2.3/ossa-0.2.3.yaml +448 -0
- package/dist/spec/v0.2.4-dev/CHANGELOG.md +403 -0
- package/dist/spec/v0.2.4-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.4-dev/ossa-0.2.4-dev.schema.json +1696 -0
- package/dist/spec/v0.2.4-dev/ossa-0.2.4-dev.yaml +581 -0
- package/dist/spec/v0.2.5-dev/CHANGELOG.md +171 -0
- package/dist/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +362 -0
- package/dist/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +464 -0
- package/dist/spec/v0.2.5-dev/examples/research-team.ossa.yaml +440 -0
- package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +317 -0
- package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.schema.json +1732 -0
- package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +409 -0
- package/dist/types/index.d.ts +178 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/openapi-extensions.d.ts +164 -0
- package/dist/types/openapi-extensions.d.ts.map +1 -0
- package/dist/types/openapi-extensions.js +6 -0
- package/dist/types/openapi-extensions.js.map +1 -0
- package/docs/OSSA-COMPLIANT-BADGE.md +248 -0
- package/docs/README.md +31 -0
- package/docs/VERSIONING.md +284 -0
- package/docs/agent-openapi-spec.yml +942 -0
- package/docs/getting-started.md +87 -0
- package/docs/migration/general-agent-schema.yml +255 -0
- package/docs/migration/migration-manifest.json +64 -0
- package/docs/openapi-extensions.md +930 -0
- package/docs/schemas/openapi-extensions.schema.json +486 -0
- package/examples/adk-integration/code-review-workflow.yml +136 -0
- package/examples/adk-integration/customer-support.yml +263 -0
- package/examples/adk-integration/data-pipeline.yml +173 -0
- package/examples/advanced/patterns/compliance-context-production.json +53 -0
- package/examples/advanced/patterns/model-router.ts +274 -0
- package/examples/advanced/patterns/smart-model-routing.ts +248 -0
- package/examples/advanced/workflows/hybrid-model-strategy.yaml +232 -0
- package/examples/agent-manifests/critics/critic-agent.yaml +149 -0
- package/examples/agent-manifests/governors/governor-agent.yaml +128 -0
- package/examples/agent-manifests/integrators/integrator-agent.yaml +103 -0
- package/examples/agent-manifests/judges/judge-agent.yaml +153 -0
- package/examples/agent-manifests/monitors/monitor-agent.yaml +122 -0
- package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +247 -0
- package/examples/agent-manifests/sample-compliant-agent.yaml +147 -0
- package/examples/agent-manifests/workers/worker-agent.yaml +82 -0
- package/examples/anthropic/claude-assistant.ossa.json +45 -0
- package/examples/architecture/model-configuration/ollama-integration.ts +110 -0
- package/examples/autogen/multi-agent.ossa.json +37 -0
- package/examples/bridge-configurations.yaml +346 -0
- package/examples/bridges/Dockerfile.production +87 -0
- package/examples/bridges/__pycache__/aiflow-bridge-enhanced.cpython-313.pyc +0 -0
- package/examples/bridges/__pycache__/aiflow-phoenix-tracing.cpython-313.pyc +0 -0
- package/examples/bridges/__pycache__/test_aiflow_integration.cpython-313.pyc +0 -0
- package/examples/bridges/aiflow-bridge-enhanced.py +462 -0
- package/examples/bridges/aiflow-bridge-example.yml +310 -0
- package/examples/bridges/aiflow-phoenix-tracing.py +310 -0
- package/examples/bridges/aiflow-registration-api.openapi.yml +439 -0
- package/examples/bridges/k8s/configmap.yaml +121 -0
- package/examples/bridges/k8s/deployment-simple.yaml +34 -0
- package/examples/bridges/k8s/deployment.yaml +275 -0
- package/examples/bridges/k8s/hpa.yaml +126 -0
- package/examples/bridges/k8s/ingress.yaml +155 -0
- package/examples/bridges/kagent-bridge-example.yml +94 -0
- package/examples/bridges/load-tests/Dockerfile +28 -0
- package/examples/bridges/load-tests/k6-load-test.js +302 -0
- package/examples/bridges/load-tests/requirements.txt +20 -0
- package/examples/bridges/loadtest/k6-scenarios.js +270 -0
- package/examples/bridges/phase4/SLO-SLA.yaml +249 -0
- package/examples/bridges/phase4/chaos-tests.yaml +226 -0
- package/examples/bridges/requirements.txt +24 -0
- package/examples/bridges/test_aiflow_integration.py +341 -0
- package/examples/common_npm/agent-router.ossa.yaml +182 -0
- package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +60 -0
- package/examples/compliance-agent.yml +155 -0
- package/examples/crewai/research-team.ossa.json +36 -0
- package/examples/cursor/code-review-agent.ossa.json +47 -0
- package/examples/drupal/gitlab-ml-recommender.ossa.yaml +609 -0
- package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +68 -0
- package/examples/enterprise/agent.yml +452 -0
- package/examples/extensions/drupal-v1.yml +266 -0
- package/examples/extensions/kagent-v1.yml +167 -0
- package/examples/getting-started/hello-world-complete.ossa.yaml +266 -0
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +376 -0
- package/examples/kagent/README.md +31 -0
- package/examples/kagent/compliance-validator.ossa.yaml +111 -0
- package/examples/kagent/cost-optimizer.ossa.yaml +93 -0
- package/examples/kagent/documentation-agent.ossa.yaml +91 -0
- package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +269 -0
- package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +106 -0
- package/examples/kagent/k8s-troubleshooter.ossa.yaml +257 -0
- package/examples/kagent/security-scanner.ossa.yaml +140 -0
- package/examples/langchain/chain-agent.ossa.json +42 -0
- package/examples/langflow/workflow-agent.ossa.json +39 -0
- package/examples/langgraph/state-machine-agent.ossa.json +59 -0
- package/examples/llamaindex/rag-agent.ossa.json +41 -0
- package/examples/migration-guides/from-langchain-to-ossa.yaml +309 -0
- package/examples/minimal/agent.yml +152 -0
- package/examples/minimal/openapi.yaml +95 -0
- package/examples/openai/swarm-agent.ossa.json +59 -0
- package/examples/openapi-extensions/README.md +87 -0
- package/examples/openapi-extensions/minimal-agent-api.openapi.yml +288 -0
- package/examples/openapi-extensions/orchestrator-agent-api.openapi.yml +633 -0
- package/examples/openapi-extensions/worker-agent-api.openapi.yml +533 -0
- package/examples/production/agent.yml +713 -0
- package/examples/production/document-analyzer-openai.yml +134 -0
- package/examples/quickstart/support-agent.ossa.yaml +59 -0
- package/examples/service-registry-usage.ts +423 -0
- package/examples/spec-examples/audit-agent.yml +147 -0
- package/examples/spec-examples/chat-agent.yml +189 -0
- package/examples/spec-examples/compliance-agent.yml +204 -0
- package/examples/spec-examples/data-processing-agent.yml +132 -0
- package/examples/spec-examples/development-agent.yml +138 -0
- package/examples/spec-examples/edge-agent.yml +101 -0
- package/examples/spec-examples/integration-agent.yml +129 -0
- package/examples/spec-examples/monitoring-agent.yml +130 -0
- package/examples/spec-examples/serverless-agent.yml +82 -0
- package/examples/spec-examples/workflow-agent.yml +223 -0
- package/examples/templates/ossa-compliance.yaml +56 -0
- package/examples/typescript/advanced/demo-registry.ts +168 -0
- package/examples/typescript/mcpb-agent-example.ts +358 -0
- package/examples/vercel/edge-agent.ossa.json +43 -0
- package/infrastructure/docker-compose.yml +33 -0
- package/junit.xml +1 -0
- package/openapi/drupal-agent-api.openapi.yaml +348 -0
- package/openapi/gitlab-orchestrator.openapi.yaml +330 -0
- package/openapi/helm-generator.openapi.yaml +389 -0
- package/openapi/ossa-core-api.openapi.yaml +1448 -0
- package/openapi/ossa-registry-api.openapi.yaml +980 -0
- package/openapi/ossa-registry.openapi.yaml +782 -0
- package/openapi/self-evolving-ecosystem.openapi.yaml +1530 -0
- package/openapi/unified-agent-gateway.openapi.yaml +833 -0
- package/ossa-website-swarm-tasks.json +105 -0
- package/package.json +132 -0
- package/release.config.js +64 -0
- package/spec/v0.1.9/agent-autonomous-extensions.json +234 -0
- package/spec/v0.1.9/ecosystem-compliance.json +235 -0
- package/spec/v0.1.9/ossa-v0.1.9.schema.json +695 -0
- package/spec/v0.1.9/ossa-v0.1.9.schema.json.backup +695 -0
- package/spec/v0.1.9/reasoning-compliance.json +654 -0
- package/spec/v0.2.2/kagent-enhancements.json +395 -0
- package/spec/v0.2.2/ossa-0.2.2.schema.json +906 -0
- package/spec/v0.2.2/ossa-0.2.2.yaml +448 -0
- package/spec/v0.2.2/ossa-reasoning-compliance-1.0.schema.json +424 -0
- package/spec/v0.2.3/CHANGELOG.md +176 -0
- package/spec/v0.2.3/README.md +154 -0
- package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/spec/v0.2.3/ossa-0.2.3.schema.json +1397 -0
- package/spec/v0.2.3/ossa-0.2.3.yaml +448 -0
- package/spec/v0.2.4-dev/CHANGELOG.md +403 -0
- package/spec/v0.2.4-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.4-dev/ossa-0.2.4-dev.schema.json +1696 -0
- package/spec/v0.2.4-dev/ossa-0.2.4-dev.yaml +581 -0
- package/spec/v0.2.5-dev/CHANGELOG.md +171 -0
- package/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +362 -0
- package/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +464 -0
- package/spec/v0.2.5-dev/examples/research-team.ossa.yaml +440 -0
- package/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +317 -0
- package/spec/v0.2.5-dev/ossa-0.2.5-dev.schema.json +1732 -0
- package/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +409 -0
- package/test-results.xml +1 -0
- package/website/.lighthouserc.js +20 -0
- package/website/.prettierrc +10 -0
- package/website/Dockerfile +17 -0
- package/website/app/about/page.tsx +295 -0
- package/website/app/api/validate/route.ts +88 -0
- package/website/app/blog/[slug]/page.tsx +167 -0
- package/website/app/blog/page.tsx +162 -0
- package/website/app/docs/[[...slug]]/page.tsx +349 -0
- package/website/app/docs/core-concepts/project-structure/page.tsx +349 -0
- package/website/app/ecosystem/page.tsx +375 -0
- package/website/app/examples/page.tsx +123 -0
- package/website/app/globals.css +108 -0
- package/website/app/layout.tsx +106 -0
- package/website/app/page.tsx +409 -0
- package/website/app/playground/page.tsx +507 -0
- package/website/app/robots.ts +19 -0
- package/website/app/rss.xml/route.ts +74 -0
- package/website/app/schema/page.tsx +970 -0
- package/website/app/sitemap.ts +56 -0
- package/website/app/specification/page.tsx +211 -0
- package/website/components/InstallCommand.tsx +96 -0
- package/website/components/Logo.tsx +24 -0
- package/website/components/StructuredData.tsx +65 -0
- package/website/components/docs/DocsSearch.tsx +104 -0
- package/website/components/docs/DocsSidebar.tsx +118 -0
- package/website/components/docs/MarkdownContent.tsx +183 -0
- package/website/components/docs/VersionSelector.tsx +49 -0
- package/website/components/examples/ExamplesViewer.tsx +293 -0
- package/website/components/layout/Footer.tsx +111 -0
- package/website/components/layout/Header.tsx +170 -0
- package/website/components/schema/SchemaExplorer.tsx +213 -0
- package/website/content/blog/OpenAPI-AI-Agents-Standard.md +285 -0
- package/website/content/blog/Why-Formal-Standards-Matter-Now.md +209 -0
- package/website/content/blog/introducing-ossa-framework.md +328 -0
- package/website/content/blog/ossa-production-results.md +279 -0
- package/website/content/blog/welcome-to-ossa.md +43 -0
- package/website/content/blog/why-ai-agents-need-open-standard.md +98 -0
- package/website/content/docs/00-HOME.md +160 -0
- package/website/content/docs/AIFlow-Framework-Integration-with-OSSA.md +107 -0
- package/website/content/docs/OpenAPI-Extensions.md +498 -0
- package/website/content/docs/architecture/execution-flow.md +335 -0
- package/website/content/docs/architecture/multi-agent-systems.md +737 -0
- package/website/content/docs/architecture/overview.md +121 -0
- package/website/content/docs/architecture/stack-integration.md +461 -0
- package/website/content/docs/changelog.md +246 -0
- package/website/content/docs/contributing.md +599 -0
- package/website/content/docs/core-concepts/project-structure.md +348 -0
- package/website/content/docs/ecosystem/framework-support.md +821 -0
- package/website/content/docs/ecosystem/overview.md +366 -0
- package/website/content/docs/examples/Migration-Guides.md +214 -0
- package/website/content/docs/examples.md +71 -0
- package/website/content/docs/for-audiences/Enterprises.md +256 -0
- package/website/content/docs/for-audiences/Students-Researchers.md +122 -0
- package/website/content/docs/for-audiences/architects.md +224 -0
- package/website/content/docs/for-audiences/developers.md +220 -0
- package/website/content/docs/getting-started/5-minute-overview.md +85 -0
- package/website/content/docs/getting-started/Hello-World.md +184 -0
- package/website/content/docs/getting-started/first-agent.md +196 -0
- package/website/content/docs/getting-started/installation.md +155 -0
- package/website/content/docs/getting-started/running-agents.md +107 -0
- package/website/content/docs/integrations/aiflow.md +104 -0
- package/website/content/docs/integrations/drupal.md +105 -0
- package/website/content/docs/migration-guides/00-index.md +76 -0
- package/website/content/docs/migration-guides/README.md +133 -0
- package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +1750 -0
- package/website/content/docs/migration-guides/crewai-to-ossa.md +274 -0
- package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +2017 -0
- package/website/content/docs/migration-guides/index.md +133 -0
- package/website/content/docs/migration-guides/langchain-to-ossa.md +1714 -0
- package/website/content/docs/migration-guides/langflow-to-ossa.md +2075 -0
- package/website/content/docs/migration-guides/openai-to-ossa.md +1202 -0
- package/website/content/docs/openapi-extensions/examples.md +550 -0
- package/website/content/docs/openapi-extensions/index.md +495 -0
- package/website/content/docs/openapi-extensions/operation-extensions.md +398 -0
- package/website/content/docs/openapi-extensions/root-extensions.md +364 -0
- package/website/content/docs/pre-release/index.md +175 -0
- package/website/content/docs/quick-reference.md +17 -0
- package/website/content/docs/schema-reference/agent-spec.md +406 -0
- package/website/content/docs/schema-reference/autonomy.md +568 -0
- package/website/content/docs/schema-reference/constraints.md +543 -0
- package/website/content/docs/schema-reference/index.md +176 -0
- package/website/content/docs/schema-reference/llm-config.md +445 -0
- package/website/content/docs/schema-reference/observability.md +654 -0
- package/website/content/docs/schema-reference/ossa-manifest.md +309 -0
- package/website/content/docs/schema-reference/taxonomy.md +509 -0
- package/website/content/docs/schema-reference/tools.md +628 -0
- package/website/content/docs/templates/blog-post.md +43 -0
- package/website/content/docs/use-cases/00-index.md +395 -0
- package/website/content/docs/use-cases/cicd-code-review.md +1236 -0
- package/website/content/docs/use-cases/customer-support.md +1234 -0
- package/website/content/docs/use-cases/enterprise-compliance.md +1208 -0
- package/website/content/docs/use-cases/research-multi-agent.md +1161 -0
- package/website/lib/version.ts +18 -0
- package/website/next.config.js +17 -0
- package/website/next.config.ts +16 -0
- package/website/nginx.conf +32 -0
- package/website/package-lock.json +9145 -0
- package/website/package.json +53 -0
- package/website/postcss.config.js +7 -0
- package/website/postcss.config.mjs +9 -0
- package/website/scripts/sync-version.js +44 -0
- package/website/scripts/sync-wiki.ts +261 -0
- package/website/tailwind.config.js +58 -0
- package/website/tailwind.config.ts +65 -0
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import Link from 'next/link';
|
|
2
|
+
import type { Metadata } from 'next';
|
|
3
|
+
|
|
4
|
+
export const metadata: Metadata = {
|
|
5
|
+
title: 'Ecosystem - Open Standard Agents',
|
|
6
|
+
description: 'Explore OSSA framework support, integrations, and runtime compatibility across the AI agent ecosystem.',
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
interface FrameworkSupport {
|
|
10
|
+
name: string;
|
|
11
|
+
status: 'Supported' | 'Native' | 'Planned';
|
|
12
|
+
migrationGuide?: string;
|
|
13
|
+
example?: string;
|
|
14
|
+
notes: string;
|
|
15
|
+
logo?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const frameworks: FrameworkSupport[] = [
|
|
19
|
+
{
|
|
20
|
+
name: 'kAgent',
|
|
21
|
+
status: 'Native',
|
|
22
|
+
example: '/examples#kagent',
|
|
23
|
+
notes: 'Native OSSA implementation - built from the ground up on OSSA specification',
|
|
24
|
+
logo: '🚀',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'LangChain',
|
|
28
|
+
status: 'Supported',
|
|
29
|
+
migrationGuide: '/docs/ecosystem/framework-support#langchain',
|
|
30
|
+
example: '/examples#langchain',
|
|
31
|
+
notes: 'Full support for LangChain agents with OSSA manifest compatibility',
|
|
32
|
+
logo: '🦜',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'CrewAI',
|
|
36
|
+
status: 'Supported',
|
|
37
|
+
migrationGuide: '/docs/ecosystem/framework-support#crewai',
|
|
38
|
+
example: '/examples#crewai',
|
|
39
|
+
notes: 'Multi-agent crew orchestration with OSSA coordination',
|
|
40
|
+
logo: '⚓',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Anthropic MCP',
|
|
44
|
+
status: 'Supported',
|
|
45
|
+
migrationGuide: '/docs/ecosystem/framework-support#mcp',
|
|
46
|
+
example: '/examples#mcp',
|
|
47
|
+
notes: 'Model Context Protocol integration for Claude and other models',
|
|
48
|
+
logo: '🔌',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'Langflow',
|
|
52
|
+
status: 'Supported',
|
|
53
|
+
migrationGuide: '/docs/ecosystem/framework-support#langflow',
|
|
54
|
+
example: '/examples#langflow',
|
|
55
|
+
notes: 'Visual flow-based agent builder with OSSA export',
|
|
56
|
+
logo: '🌊',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'Drupal ECA',
|
|
60
|
+
status: 'Supported',
|
|
61
|
+
migrationGuide: '/docs/ecosystem/framework-support#drupal-eca',
|
|
62
|
+
example: '/examples#drupal',
|
|
63
|
+
notes: 'Event-Condition-Action framework integration for Drupal CMS',
|
|
64
|
+
logo: '💧',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'OpenAI Assistants',
|
|
68
|
+
status: 'Supported',
|
|
69
|
+
migrationGuide: '/docs/ecosystem/framework-support#openai-assistants',
|
|
70
|
+
example: '/examples#openai',
|
|
71
|
+
notes: 'OpenAI Assistants API with OSSA manifest support',
|
|
72
|
+
logo: '🤖',
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
interface RuntimeSupport {
|
|
77
|
+
name: string;
|
|
78
|
+
status: 'Supported' | 'Beta' | 'Planned';
|
|
79
|
+
notes: string;
|
|
80
|
+
logo: string;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const runtimes: RuntimeSupport[] = [
|
|
84
|
+
{
|
|
85
|
+
name: 'Docker',
|
|
86
|
+
status: 'Supported',
|
|
87
|
+
notes: 'Container-based deployment with full OSSA manifest support',
|
|
88
|
+
logo: '🐳',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'Kubernetes',
|
|
92
|
+
status: 'Supported',
|
|
93
|
+
notes: 'Cloud-native orchestration with autoscaling and service mesh',
|
|
94
|
+
logo: '☸️',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'AWS Lambda',
|
|
98
|
+
status: 'Supported',
|
|
99
|
+
notes: 'Serverless execution with event-driven agent invocation',
|
|
100
|
+
logo: '⚡',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'Google Cloud Functions',
|
|
104
|
+
status: 'Supported',
|
|
105
|
+
notes: 'Serverless deployment on Google Cloud Platform',
|
|
106
|
+
logo: '☁️',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: 'Azure Functions',
|
|
110
|
+
status: 'Supported',
|
|
111
|
+
notes: 'Serverless compute service on Microsoft Azure',
|
|
112
|
+
logo: '🔷',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'Cloudflare Workers',
|
|
116
|
+
status: 'Beta',
|
|
117
|
+
notes: 'Edge computing with global distribution',
|
|
118
|
+
logo: '🌐',
|
|
119
|
+
},
|
|
120
|
+
];
|
|
121
|
+
|
|
122
|
+
function StatusBadge({ status }: { status: string }) {
|
|
123
|
+
const colors = {
|
|
124
|
+
Supported: 'bg-green-100 text-green-800 border-green-300',
|
|
125
|
+
Native: 'bg-blue-100 text-blue-800 border-blue-300',
|
|
126
|
+
Planned: 'bg-gray-100 text-gray-800 border-gray-300',
|
|
127
|
+
Beta: 'bg-yellow-100 text-yellow-800 border-yellow-300',
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
return (
|
|
131
|
+
<span className={`px-3 py-1 rounded-full text-sm font-medium border ${colors[status as keyof typeof colors] || 'bg-gray-100 text-gray-800'}`}>
|
|
132
|
+
{status}
|
|
133
|
+
</span>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export default function EcosystemPage() {
|
|
138
|
+
return (
|
|
139
|
+
<div className="container mx-auto max-w-7xl px-4 py-12">
|
|
140
|
+
<div className="max-w-6xl mx-auto">
|
|
141
|
+
<h1 className="text-5xl font-bold mb-6">OSSA Ecosystem</h1>
|
|
142
|
+
<p className="text-xl text-gray-700 mb-12">
|
|
143
|
+
Explore framework support, integrations, and runtime compatibility across the Open Standard Agents ecosystem.
|
|
144
|
+
OSSA enables interoperability between AI agent frameworks and deployment flexibility across cloud platforms.
|
|
145
|
+
</p>
|
|
146
|
+
|
|
147
|
+
{/* Framework Support Matrix */}
|
|
148
|
+
<section className="mb-16">
|
|
149
|
+
<h2 className="text-4xl font-bold mb-6 text-primary">Framework Support</h2>
|
|
150
|
+
<p className="text-lg text-gray-700 mb-8">
|
|
151
|
+
OSSA provides compatibility layers for popular AI agent frameworks, enabling you to standardize
|
|
152
|
+
agent definitions while preserving framework-specific features.
|
|
153
|
+
</p>
|
|
154
|
+
|
|
155
|
+
<div className="overflow-x-auto">
|
|
156
|
+
<table className="w-full border-collapse bg-white shadow-sm rounded-lg overflow-hidden">
|
|
157
|
+
<thead>
|
|
158
|
+
<tr className="bg-gray-100 border-b border-gray-200">
|
|
159
|
+
<th className="px-6 py-4 text-left font-semibold text-gray-700">Framework</th>
|
|
160
|
+
<th className="px-6 py-4 text-left font-semibold text-gray-700">Status</th>
|
|
161
|
+
<th className="px-6 py-4 text-left font-semibold text-gray-700">Migration Guide</th>
|
|
162
|
+
<th className="px-6 py-4 text-left font-semibold text-gray-700">Example</th>
|
|
163
|
+
<th className="px-6 py-4 text-left font-semibold text-gray-700">Notes</th>
|
|
164
|
+
</tr>
|
|
165
|
+
</thead>
|
|
166
|
+
<tbody>
|
|
167
|
+
{frameworks.map((framework, index) => (
|
|
168
|
+
<tr key={framework.name} className={index % 2 === 0 ? 'bg-white' : 'bg-gray-50'}>
|
|
169
|
+
<td className="px-6 py-4 font-medium">
|
|
170
|
+
<span className="text-2xl mr-2">{framework.logo}</span>
|
|
171
|
+
{framework.name}
|
|
172
|
+
</td>
|
|
173
|
+
<td className="px-6 py-4">
|
|
174
|
+
<StatusBadge status={framework.status} />
|
|
175
|
+
</td>
|
|
176
|
+
<td className="px-6 py-4">
|
|
177
|
+
{framework.migrationGuide ? (
|
|
178
|
+
<Link href={framework.migrationGuide} className="text-primary hover:underline">
|
|
179
|
+
View Guide
|
|
180
|
+
</Link>
|
|
181
|
+
) : (
|
|
182
|
+
<span className="text-gray-400">N/A</span>
|
|
183
|
+
)}
|
|
184
|
+
</td>
|
|
185
|
+
<td className="px-6 py-4">
|
|
186
|
+
{framework.example ? (
|
|
187
|
+
<Link href={framework.example} className="text-primary hover:underline">
|
|
188
|
+
View Example
|
|
189
|
+
</Link>
|
|
190
|
+
) : (
|
|
191
|
+
<span className="text-gray-400">Coming Soon</span>
|
|
192
|
+
)}
|
|
193
|
+
</td>
|
|
194
|
+
<td className="px-6 py-4 text-gray-600">{framework.notes}</td>
|
|
195
|
+
</tr>
|
|
196
|
+
))}
|
|
197
|
+
</tbody>
|
|
198
|
+
</table>
|
|
199
|
+
</div>
|
|
200
|
+
</section>
|
|
201
|
+
|
|
202
|
+
{/* Runtime Compatibility */}
|
|
203
|
+
<section className="mb-16">
|
|
204
|
+
<h2 className="text-4xl font-bold mb-6 text-primary">Runtime Compatibility</h2>
|
|
205
|
+
<p className="text-lg text-gray-700 mb-8">
|
|
206
|
+
Deploy OSSA-compliant agents across multiple cloud platforms and execution environments.
|
|
207
|
+
The specification ensures consistent behavior regardless of deployment target.
|
|
208
|
+
</p>
|
|
209
|
+
|
|
210
|
+
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
211
|
+
{runtimes.map((runtime) => (
|
|
212
|
+
<div key={runtime.name} className="card p-6 hover:shadow-lg transition-shadow">
|
|
213
|
+
<div className="flex items-center justify-between mb-4">
|
|
214
|
+
<span className="text-4xl">{runtime.logo}</span>
|
|
215
|
+
<StatusBadge status={runtime.status} />
|
|
216
|
+
</div>
|
|
217
|
+
<h3 className="text-xl font-semibold mb-2">{runtime.name}</h3>
|
|
218
|
+
<p className="text-gray-600">{runtime.notes}</p>
|
|
219
|
+
</div>
|
|
220
|
+
))}
|
|
221
|
+
</div>
|
|
222
|
+
</section>
|
|
223
|
+
|
|
224
|
+
{/* Integration Ecosystem */}
|
|
225
|
+
<section className="mb-16">
|
|
226
|
+
<h2 className="text-4xl font-bold mb-6 text-primary">Integration Ecosystem</h2>
|
|
227
|
+
<div className="grid md:grid-cols-2 gap-6">
|
|
228
|
+
<div className="card p-6">
|
|
229
|
+
<h3 className="text-2xl font-semibold mb-4 text-primary">Tool Integration</h3>
|
|
230
|
+
<ul className="space-y-3 text-gray-700">
|
|
231
|
+
<li className="flex items-start">
|
|
232
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
233
|
+
<span><strong>MCP Servers:</strong> Native Model Context Protocol support</span>
|
|
234
|
+
</li>
|
|
235
|
+
<li className="flex items-start">
|
|
236
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
237
|
+
<span><strong>OpenAPI/REST:</strong> Standard HTTP API integration</span>
|
|
238
|
+
</li>
|
|
239
|
+
<li className="flex items-start">
|
|
240
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
241
|
+
<span><strong>GraphQL:</strong> Query-based data fetching</span>
|
|
242
|
+
</li>
|
|
243
|
+
<li className="flex items-start">
|
|
244
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
245
|
+
<span><strong>gRPC:</strong> High-performance RPC protocols</span>
|
|
246
|
+
</li>
|
|
247
|
+
<li className="flex items-start">
|
|
248
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
249
|
+
<span><strong>WebSockets:</strong> Real-time bidirectional communication</span>
|
|
250
|
+
</li>
|
|
251
|
+
</ul>
|
|
252
|
+
</div>
|
|
253
|
+
|
|
254
|
+
<div className="card p-6">
|
|
255
|
+
<h3 className="text-2xl font-semibold mb-4 text-primary">Data Integration</h3>
|
|
256
|
+
<ul className="space-y-3 text-gray-700">
|
|
257
|
+
<li className="flex items-start">
|
|
258
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
259
|
+
<span><strong>Vector Databases:</strong> Pinecone, Weaviate, Qdrant</span>
|
|
260
|
+
</li>
|
|
261
|
+
<li className="flex items-start">
|
|
262
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
263
|
+
<span><strong>SQL Databases:</strong> PostgreSQL, MySQL, SQLite</span>
|
|
264
|
+
</li>
|
|
265
|
+
<li className="flex items-start">
|
|
266
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
267
|
+
<span><strong>NoSQL:</strong> MongoDB, Redis, DynamoDB</span>
|
|
268
|
+
</li>
|
|
269
|
+
<li className="flex items-start">
|
|
270
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
271
|
+
<span><strong>Message Queues:</strong> RabbitMQ, Kafka, SQS</span>
|
|
272
|
+
</li>
|
|
273
|
+
<li className="flex items-start">
|
|
274
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
275
|
+
<span><strong>Object Storage:</strong> S3, GCS, Azure Blob</span>
|
|
276
|
+
</li>
|
|
277
|
+
</ul>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
<div className="card p-6">
|
|
281
|
+
<h3 className="text-2xl font-semibold mb-4 text-primary">Monitoring & Observability</h3>
|
|
282
|
+
<ul className="space-y-3 text-gray-700">
|
|
283
|
+
<li className="flex items-start">
|
|
284
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
285
|
+
<span><strong>OpenTelemetry:</strong> Distributed tracing support</span>
|
|
286
|
+
</li>
|
|
287
|
+
<li className="flex items-start">
|
|
288
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
289
|
+
<span><strong>Prometheus:</strong> Metrics collection and alerting</span>
|
|
290
|
+
</li>
|
|
291
|
+
<li className="flex items-start">
|
|
292
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
293
|
+
<span><strong>Grafana:</strong> Visualization and dashboards</span>
|
|
294
|
+
</li>
|
|
295
|
+
<li className="flex items-start">
|
|
296
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
297
|
+
<span><strong>Sentry:</strong> Error tracking and reporting</span>
|
|
298
|
+
</li>
|
|
299
|
+
<li className="flex items-start">
|
|
300
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
301
|
+
<span><strong>DataDog:</strong> Full-stack monitoring</span>
|
|
302
|
+
</li>
|
|
303
|
+
</ul>
|
|
304
|
+
</div>
|
|
305
|
+
|
|
306
|
+
<div className="card p-6">
|
|
307
|
+
<h3 className="text-2xl font-semibold mb-4 text-primary">CI/CD & DevOps</h3>
|
|
308
|
+
<ul className="space-y-3 text-gray-700">
|
|
309
|
+
<li className="flex items-start">
|
|
310
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
311
|
+
<span><strong>GitHub Actions:</strong> Automated testing and deployment</span>
|
|
312
|
+
</li>
|
|
313
|
+
<li className="flex items-start">
|
|
314
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
315
|
+
<span><strong>GitLab CI/CD:</strong> Pipeline automation</span>
|
|
316
|
+
</li>
|
|
317
|
+
<li className="flex items-start">
|
|
318
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
319
|
+
<span><strong>Jenkins:</strong> Continuous integration server</span>
|
|
320
|
+
</li>
|
|
321
|
+
<li className="flex items-start">
|
|
322
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
323
|
+
<span><strong>ArgoCD:</strong> GitOps continuous delivery</span>
|
|
324
|
+
</li>
|
|
325
|
+
<li className="flex items-start">
|
|
326
|
+
<span className="text-green-500 mr-2">✓</span>
|
|
327
|
+
<span><strong>Terraform:</strong> Infrastructure as code</span>
|
|
328
|
+
</li>
|
|
329
|
+
</ul>
|
|
330
|
+
</div>
|
|
331
|
+
</div>
|
|
332
|
+
</section>
|
|
333
|
+
|
|
334
|
+
{/* Community & Resources */}
|
|
335
|
+
<section className="mb-16">
|
|
336
|
+
<h2 className="text-4xl font-bold mb-6 text-primary">Community & Resources</h2>
|
|
337
|
+
<div className="grid md:grid-cols-3 gap-6">
|
|
338
|
+
<Link href="/docs/ecosystem/overview" className="card-hover p-6">
|
|
339
|
+
<h3 className="text-xl font-semibold mb-2 text-primary">Ecosystem Overview</h3>
|
|
340
|
+
<p className="text-gray-700">Learn about the OSSA ecosystem architecture and integration patterns.</p>
|
|
341
|
+
</Link>
|
|
342
|
+
<Link href="/docs/ecosystem/framework-support" className="card-hover p-6">
|
|
343
|
+
<h3 className="text-xl font-semibold mb-2 text-primary">Framework Support Guide</h3>
|
|
344
|
+
<p className="text-gray-700">Detailed compatibility information and migration guides for each framework.</p>
|
|
345
|
+
</Link>
|
|
346
|
+
<Link href="/examples" className="card-hover p-6">
|
|
347
|
+
<h3 className="text-xl font-semibold mb-2 text-primary">Integration Examples</h3>
|
|
348
|
+
<p className="text-gray-700">Real-world examples of OSSA integrations across frameworks and platforms.</p>
|
|
349
|
+
</Link>
|
|
350
|
+
</div>
|
|
351
|
+
</section>
|
|
352
|
+
|
|
353
|
+
{/* Call to Action */}
|
|
354
|
+
<section className="bg-gradient-to-r from-primary to-blue-600 rounded-lg p-8 text-white">
|
|
355
|
+
<h2 className="text-3xl font-bold mb-4">Build on OSSA</h2>
|
|
356
|
+
<p className="text-lg mb-6">
|
|
357
|
+
Ready to integrate OSSA into your framework or platform? Our specification is open source
|
|
358
|
+
and designed for extensibility.
|
|
359
|
+
</p>
|
|
360
|
+
<div className="flex flex-wrap gap-4">
|
|
361
|
+
<Link href="/docs/getting-started/5-minute-overview" className="btn-secondary">
|
|
362
|
+
Get Started
|
|
363
|
+
</Link>
|
|
364
|
+
<Link href="/specification" className="bg-white text-primary px-6 py-3 rounded-lg font-semibold hover:bg-gray-100 transition-colors">
|
|
365
|
+
Read Specification
|
|
366
|
+
</Link>
|
|
367
|
+
<Link href="https://github.com/blueflyio/openstandardagents/issues" target="_blank" rel="noopener noreferrer" className="border-2 border-white text-white px-6 py-3 rounded-lg font-semibold hover:bg-white hover:text-primary transition-colors">
|
|
368
|
+
Request Integration
|
|
369
|
+
</Link>
|
|
370
|
+
</div>
|
|
371
|
+
</section>
|
|
372
|
+
</div>
|
|
373
|
+
</div>
|
|
374
|
+
);
|
|
375
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { Suspense } from 'react';
|
|
4
|
+
import { ExamplesViewer } from '@/components/examples/ExamplesViewer';
|
|
5
|
+
|
|
6
|
+
interface ExampleFile {
|
|
7
|
+
name: string;
|
|
8
|
+
path: string;
|
|
9
|
+
content: string;
|
|
10
|
+
category: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function getAllExamples(): ExampleFile[] {
|
|
14
|
+
// Check for mounted examples directory (Docker) or local development
|
|
15
|
+
const examplesDir = fs.existsSync('/examples')
|
|
16
|
+
? '/examples'
|
|
17
|
+
: path.join(process.cwd(), '../examples');
|
|
18
|
+
const examples: ExampleFile[] = [];
|
|
19
|
+
|
|
20
|
+
if (!fs.existsSync(examplesDir)) {
|
|
21
|
+
return examples;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function traverseDir(dir: string, category = ''): void {
|
|
25
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
26
|
+
|
|
27
|
+
for (const entry of entries) {
|
|
28
|
+
const fullPath = path.join(dir, entry.name);
|
|
29
|
+
const relativePath = path.relative(examplesDir, fullPath);
|
|
30
|
+
|
|
31
|
+
if (entry.isDirectory()) {
|
|
32
|
+
traverseDir(fullPath, entry.name);
|
|
33
|
+
} else if (
|
|
34
|
+
entry.isFile() &&
|
|
35
|
+
(entry.name.endsWith('.yml') ||
|
|
36
|
+
entry.name.endsWith('.yaml') ||
|
|
37
|
+
entry.name.endsWith('.json') ||
|
|
38
|
+
entry.name.endsWith('.ts'))
|
|
39
|
+
) {
|
|
40
|
+
try {
|
|
41
|
+
const content = fs.readFileSync(fullPath, 'utf8');
|
|
42
|
+
examples.push({
|
|
43
|
+
name: entry.name,
|
|
44
|
+
path: relativePath,
|
|
45
|
+
content,
|
|
46
|
+
category: category || 'root',
|
|
47
|
+
});
|
|
48
|
+
} catch (error) {
|
|
49
|
+
// Skip files that can't be read
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
traverseDir(examplesDir);
|
|
56
|
+
return examples;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export default function ExamplesPage() {
|
|
60
|
+
const examples = getAllExamples();
|
|
61
|
+
|
|
62
|
+
// Group examples by category with counts
|
|
63
|
+
const categoryStats = examples.reduce((acc, ex) => {
|
|
64
|
+
acc[ex.category] = (acc[ex.category] || 0) + 1;
|
|
65
|
+
return acc;
|
|
66
|
+
}, {} as Record<string, number>);
|
|
67
|
+
|
|
68
|
+
return (
|
|
69
|
+
<>
|
|
70
|
+
{/* Hero Section */}
|
|
71
|
+
<div className="bg-gradient-to-br from-primary via-accent to-secondary text-white py-16 px-4">
|
|
72
|
+
<div className="container mx-auto max-w-6xl text-center">
|
|
73
|
+
<div className="inline-flex items-center justify-center w-20 h-20 bg-white/20 backdrop-blur-sm rounded-full mb-6">
|
|
74
|
+
<svg className="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
75
|
+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" />
|
|
76
|
+
</svg>
|
|
77
|
+
</div>
|
|
78
|
+
<h1 className="text-5xl font-bold mb-4">OSSA Examples Gallery</h1>
|
|
79
|
+
<p className="text-xl text-white/90 mb-2">
|
|
80
|
+
{examples.length}+ real-world Open Standard Agents manifests
|
|
81
|
+
</p>
|
|
82
|
+
<p className="text-base text-white/80">
|
|
83
|
+
Learn from production-ready implementations across multiple frameworks
|
|
84
|
+
</p>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
{/* Stats Bar */}
|
|
89
|
+
<div className="bg-gradient-to-r from-primary/5 to-secondary/5 border-b border-primary/20">
|
|
90
|
+
<div className="container mx-auto max-w-7xl px-4 py-6">
|
|
91
|
+
<div className="flex flex-wrap gap-6 justify-center items-center">
|
|
92
|
+
<div className="text-center">
|
|
93
|
+
<div className="text-3xl font-bold text-primary">{examples.length}</div>
|
|
94
|
+
<div className="text-sm text-gray-600">Total Examples</div>
|
|
95
|
+
</div>
|
|
96
|
+
<div className="w-px h-12 bg-gray-300"></div>
|
|
97
|
+
<div className="text-center">
|
|
98
|
+
<div className="text-3xl font-bold text-secondary">{Object.keys(categoryStats).length}</div>
|
|
99
|
+
<div className="text-sm text-gray-600">Categories</div>
|
|
100
|
+
</div>
|
|
101
|
+
<div className="w-px h-12 bg-gray-300"></div>
|
|
102
|
+
<div className="text-center">
|
|
103
|
+
<div className="text-3xl font-bold text-primary">15+</div>
|
|
104
|
+
<div className="text-sm text-gray-600">Frameworks</div>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<div className="container mx-auto max-w-7xl px-4 py-12">
|
|
111
|
+
<Suspense fallback={
|
|
112
|
+
<div className="text-center py-12">
|
|
113
|
+
<div className="animate-spin rounded-full h-12 w-12 border-b-2 border-primary mx-auto"></div>
|
|
114
|
+
<p className="mt-4 text-gray-600">Loading examples...</p>
|
|
115
|
+
</div>
|
|
116
|
+
}>
|
|
117
|
+
<ExamplesViewer examples={examples} />
|
|
118
|
+
</Suspense>
|
|
119
|
+
</div>
|
|
120
|
+
</>
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
@tailwind base;
|
|
2
|
+
@tailwind components;
|
|
3
|
+
@tailwind utilities;
|
|
4
|
+
|
|
5
|
+
@layer base {
|
|
6
|
+
:root {
|
|
7
|
+
/* OSSA Brand Colors - from logo design */
|
|
8
|
+
--ossa-primary: #0066CC; /* Main blue - OSSA hub/standard */
|
|
9
|
+
--ossa-secondary: #00B8D4; /* Cyan - Agent nodes */
|
|
10
|
+
--ossa-accent: #0099E6; /* Light blue accent */
|
|
11
|
+
--ossa-success: #28a745;
|
|
12
|
+
--ossa-warning: #ffc107;
|
|
13
|
+
--ossa-error: #dc3545;
|
|
14
|
+
--ossa-info: #17a2b8;
|
|
15
|
+
--ossa-dark: #212529;
|
|
16
|
+
--ossa-gray-900: #343a40;
|
|
17
|
+
--ossa-gray-700: #495057;
|
|
18
|
+
--ossa-gray-500: #6c757d;
|
|
19
|
+
--ossa-gray-300: #dee2e6;
|
|
20
|
+
--ossa-gray-100: #f8f9fa;
|
|
21
|
+
--ossa-white: #ffffff;
|
|
22
|
+
|
|
23
|
+
/* Brand gradients */
|
|
24
|
+
--gradient-brand: linear-gradient(135deg, #0066CC 0%, #00B8D4 100%);
|
|
25
|
+
--gradient-hero: linear-gradient(135deg, #0052A3 0%, #0066CC 50%, #00B8D4 100%);
|
|
26
|
+
|
|
27
|
+
/* Code syntax highlighting */
|
|
28
|
+
--code-bg: #1e1e1e;
|
|
29
|
+
--code-text: #d4d4d4;
|
|
30
|
+
--code-keyword: #569cd6;
|
|
31
|
+
--code-string: #ce9178;
|
|
32
|
+
--code-comment: #6a9955;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
html {
|
|
36
|
+
scroll-behavior: smooth;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
body {
|
|
40
|
+
@apply font-sans text-gray-900 bg-white antialiased;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
h1, h2, h3, h4, h5, h6 {
|
|
44
|
+
@apply font-sans font-semibold;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
code {
|
|
48
|
+
@apply font-mono;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
pre {
|
|
52
|
+
@apply bg-code-bg text-code-text rounded-lg p-4 overflow-x-auto;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
pre code {
|
|
56
|
+
@apply text-code-text;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
a {
|
|
60
|
+
cursor: pointer;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.sr-only {
|
|
64
|
+
position: absolute;
|
|
65
|
+
width: 1px;
|
|
66
|
+
height: 1px;
|
|
67
|
+
padding: 0;
|
|
68
|
+
margin: -1px;
|
|
69
|
+
overflow: hidden;
|
|
70
|
+
clip: rect(0, 0, 0, 0);
|
|
71
|
+
white-space: nowrap;
|
|
72
|
+
border-width: 0;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.focus\:not-sr-only:focus {
|
|
76
|
+
position: static;
|
|
77
|
+
width: auto;
|
|
78
|
+
height: auto;
|
|
79
|
+
padding: inherit;
|
|
80
|
+
margin: inherit;
|
|
81
|
+
overflow: visible;
|
|
82
|
+
clip: auto;
|
|
83
|
+
white-space: normal;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@layer components {
|
|
88
|
+
.btn-primary {
|
|
89
|
+
@apply bg-primary text-white px-6 py-3 rounded-lg font-medium hover:bg-primary-dark transition-colors focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.btn-secondary {
|
|
93
|
+
@apply bg-secondary text-white px-6 py-3 rounded-lg font-medium hover:opacity-90 transition-opacity focus:outline-none focus:ring-2 focus:ring-secondary focus:ring-offset-2;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.btn-outline {
|
|
97
|
+
@apply border-2 border-primary text-primary px-6 py-3 rounded-lg font-medium hover:bg-primary hover:text-white transition-colors focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.card {
|
|
101
|
+
@apply bg-white rounded-lg shadow-md p-6 border border-gray-300;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.card-hover {
|
|
105
|
+
@apply card hover:shadow-lg transition-shadow;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|