@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,970 @@
|
|
|
1
|
+
import Link from 'next/link';
|
|
2
|
+
import { SchemaExplorer } from '@/components/schema/SchemaExplorer';
|
|
3
|
+
import { OSSA_VERSION } from '@/lib/version';
|
|
4
|
+
|
|
5
|
+
// Import schema directly - this is bundled at build time
|
|
6
|
+
const schemaJson = require('../../public/schemas/ossa-0.2.3.schema.json');
|
|
7
|
+
|
|
8
|
+
function loadSchema(): any {
|
|
9
|
+
// Return the imported schema directly
|
|
10
|
+
// This works in both development and production
|
|
11
|
+
return schemaJson;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default function SchemaPage() {
|
|
15
|
+
const schema = loadSchema();
|
|
16
|
+
|
|
17
|
+
if (!schema) {
|
|
18
|
+
return (
|
|
19
|
+
<div className="container mx-auto max-w-7xl px-4 py-8">
|
|
20
|
+
<h1 className="text-4xl font-bold mb-4">Schema Explorer</h1>
|
|
21
|
+
<p className="text-lg text-gray-600">
|
|
22
|
+
Schema file not found. Please ensure the OSSA schema is available.
|
|
23
|
+
</p>
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<>
|
|
30
|
+
{/* Hero Section */}
|
|
31
|
+
<div className="bg-gradient-to-br from-primary via-accent to-secondary text-white py-16 px-4">
|
|
32
|
+
<div className="container mx-auto max-w-6xl text-center">
|
|
33
|
+
<div className="inline-flex items-center justify-center w-20 h-20 bg-white/20 backdrop-blur-sm rounded-full mb-6">
|
|
34
|
+
<svg className="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
35
|
+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" />
|
|
36
|
+
</svg>
|
|
37
|
+
</div>
|
|
38
|
+
<h1 className="text-5xl font-bold mb-4">OSSA Schema Reference</h1>
|
|
39
|
+
<p className="text-xl text-white/90 mb-2">
|
|
40
|
+
Complete JSON Schema for defining portable, framework-agnostic AI agents
|
|
41
|
+
</p>
|
|
42
|
+
<p className="text-lg text-white/80">
|
|
43
|
+
Version v0.2.x • The OpenAPI for AI Agents
|
|
44
|
+
</p>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div className="container mx-auto max-w-7xl px-4 py-12">
|
|
49
|
+
{/* Schema Architecture Diagram - MOVED TO TOP */}
|
|
50
|
+
<section className="mb-16">
|
|
51
|
+
<div className="bg-gradient-to-br from-amber-50 via-orange-50 to-yellow-50 rounded-2xl p-8 mb-8">
|
|
52
|
+
<div className="flex items-start mb-6">
|
|
53
|
+
<div className="w-12 h-12 bg-gradient-to-br from-primary to-secondary rounded-lg flex items-center justify-center mr-4 flex-shrink-0">
|
|
54
|
+
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
55
|
+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
|
56
|
+
</svg>
|
|
57
|
+
</div>
|
|
58
|
+
<div>
|
|
59
|
+
<h2 className="text-3xl font-bold mb-4 text-gray-900">Why This Schema?</h2>
|
|
60
|
+
<div className="space-y-4 text-lg text-gray-700">
|
|
61
|
+
<p>
|
|
62
|
+
<strong className="text-primary">The Problem:</strong> Every AI framework defines agents differently.
|
|
63
|
+
LangChain has "chains," CrewAI has "crews," OpenAI has "assistants," Anthropic has different tools.
|
|
64
|
+
This creates <span className="text-red-600 font-semibold">vendor lock-in</span> and makes it impossible to share agents between teams or frameworks.
|
|
65
|
+
</p>
|
|
66
|
+
<p>
|
|
67
|
+
<strong className="text-secondary">The Solution:</strong> OSSA provides a single, standard way to describe agents that works everywhere.
|
|
68
|
+
Like OpenAPI revolutionized REST APIs, OSSA revolutionizes AI agents.
|
|
69
|
+
</p>
|
|
70
|
+
<p>
|
|
71
|
+
<strong className="text-primary">The Result:</strong> Write your agent definition once, deploy it to any framework.
|
|
72
|
+
Switch providers without rewriting code. Share agents across organizations. True portability.
|
|
73
|
+
</p>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</section>
|
|
79
|
+
|
|
80
|
+
{/* Schema Architecture Diagram */}
|
|
81
|
+
<section className="mb-16">
|
|
82
|
+
<div className="flex items-center mb-8">
|
|
83
|
+
<div className="w-12 h-12 bg-gradient-to-br from-primary to-secondary rounded-lg flex items-center justify-center mr-4">
|
|
84
|
+
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
85
|
+
<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" />
|
|
86
|
+
</svg>
|
|
87
|
+
</div>
|
|
88
|
+
<h2 className="text-3xl font-bold text-primary">Schema Architecture</h2>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
{/* Visual Structure Diagram with HTML/CSS */}
|
|
92
|
+
<div className="bg-white rounded-2xl shadow-lg p-8 mb-8 border-2 border-gray-300">
|
|
93
|
+
<h3 className="text-2xl font-bold mb-4 text-center text-gray-900">OSSA Agent Manifest Structure</h3>
|
|
94
|
+
<p className="text-center text-gray-600 mb-8 text-base">
|
|
95
|
+
Complete breakdown of all manifest components and their relationships
|
|
96
|
+
</p>
|
|
97
|
+
|
|
98
|
+
<div className="space-y-6">
|
|
99
|
+
{/* Root */}
|
|
100
|
+
<div className="bg-gradient-to-r from-primary to-secondary text-white rounded-xl p-6 text-center shadow-md">
|
|
101
|
+
<div className="font-bold text-2xl mb-2">OSSA Agent Manifest</div>
|
|
102
|
+
<div className="text-base opacity-90">agent.yaml / agent.json</div>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
{/* Top Level Fields */}
|
|
106
|
+
<div className="grid md:grid-cols-3 gap-6">
|
|
107
|
+
<div className="bg-blue-50 border-3 border-blue-400 rounded-xl p-6 shadow-sm hover:shadow-md transition-shadow">
|
|
108
|
+
<div className="font-bold text-blue-900 mb-3 text-xl">apiVersion</div>
|
|
109
|
+
<div className="text-base text-gray-700 font-mono">ossa/v0.2.3</div>
|
|
110
|
+
</div>
|
|
111
|
+
<div className="bg-green-50 border-3 border-green-400 rounded-xl p-6 shadow-sm hover:shadow-md transition-shadow">
|
|
112
|
+
<div className="font-bold text-green-900 mb-3 text-xl">kind</div>
|
|
113
|
+
<div className="text-base text-gray-700 font-mono">Agent</div>
|
|
114
|
+
</div>
|
|
115
|
+
<div className="bg-purple-50 border-3 border-purple-400 rounded-xl p-6 shadow-sm hover:shadow-md transition-shadow">
|
|
116
|
+
<div className="font-bold text-purple-900 mb-3 text-xl">metadata</div>
|
|
117
|
+
<div className="text-sm text-gray-700 space-y-2">
|
|
118
|
+
<div>• name</div>
|
|
119
|
+
<div>• version</div>
|
|
120
|
+
<div>• description</div>
|
|
121
|
+
<div>• labels</div>
|
|
122
|
+
<div>• annotations</div>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
{/* Main Content: spec and extensions - STACKED */}
|
|
128
|
+
<div className="space-y-6">
|
|
129
|
+
{/* spec */}
|
|
130
|
+
<div className="bg-gradient-to-br from-primary/5 to-primary/10 border-3 border-primary rounded-xl p-6 shadow-md">
|
|
131
|
+
<div className="font-bold text-primary text-2xl mb-5">spec</div>
|
|
132
|
+
<div className="space-y-3">
|
|
133
|
+
{/* role */}
|
|
134
|
+
<div className="bg-white rounded-lg p-4 border-2 border-primary/30 shadow-sm hover:shadow-md transition-all hover:border-primary/50">
|
|
135
|
+
<div className="font-semibold text-primary text-base mb-2 flex items-center">
|
|
136
|
+
<span className="mr-2">🎭</span> role
|
|
137
|
+
</div>
|
|
138
|
+
<div className="text-sm text-gray-700 mb-2">System prompt / identity</div>
|
|
139
|
+
<div className="text-xs text-gray-600 bg-gray-50 rounded p-2 font-mono">
|
|
140
|
+
type: string (multi-line)
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
{/* llm */}
|
|
145
|
+
<div className="bg-white rounded-lg p-4 border-2 border-primary/30 shadow-sm hover:shadow-md transition-all hover:border-primary/50">
|
|
146
|
+
<div className="font-semibold text-primary text-base mb-3 flex items-center">
|
|
147
|
+
<span className="mr-2">🧠</span> llm
|
|
148
|
+
</div>
|
|
149
|
+
<div className="grid grid-cols-2 gap-2 text-sm text-gray-700">
|
|
150
|
+
<div className="bg-blue-50 rounded p-2">
|
|
151
|
+
<strong>provider</strong>: openai | anthropic | azure
|
|
152
|
+
</div>
|
|
153
|
+
<div className="bg-blue-50 rounded p-2">
|
|
154
|
+
<strong>model</strong>: gpt-4, claude-3, etc.
|
|
155
|
+
</div>
|
|
156
|
+
<div className="bg-blue-50 rounded p-2">
|
|
157
|
+
<strong>temperature</strong>: 0.0 - 2.0
|
|
158
|
+
</div>
|
|
159
|
+
<div className="bg-blue-50 rounded p-2">
|
|
160
|
+
<strong>max_tokens</strong>: integer
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
{/* tools */}
|
|
166
|
+
<div className="bg-white rounded-lg p-4 border-2 border-primary/30 shadow-sm hover:shadow-md transition-all hover:border-primary/50">
|
|
167
|
+
<div className="font-semibold text-primary text-base mb-3 flex items-center">
|
|
168
|
+
<span className="mr-2">🔧</span> tools
|
|
169
|
+
</div>
|
|
170
|
+
<div className="text-sm text-gray-700 space-y-2">
|
|
171
|
+
<div className="bg-purple-50 border border-purple-200 rounded p-2">
|
|
172
|
+
<strong>http</strong>: REST API calls
|
|
173
|
+
</div>
|
|
174
|
+
<div className="bg-green-50 border border-green-200 rounded p-2">
|
|
175
|
+
<strong>code</strong>: Execute Python/JS/Shell
|
|
176
|
+
</div>
|
|
177
|
+
<div className="bg-yellow-50 border border-yellow-200 rounded p-2">
|
|
178
|
+
<strong>database</strong>: SQL queries
|
|
179
|
+
</div>
|
|
180
|
+
<div className="bg-pink-50 border border-pink-200 rounded p-2">
|
|
181
|
+
<strong>file</strong>: Read/write operations
|
|
182
|
+
</div>
|
|
183
|
+
<div className="bg-cyan-50 border border-cyan-200 rounded p-2">
|
|
184
|
+
<strong>search</strong>: Web/vector search
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
|
|
189
|
+
{/* taxonomy */}
|
|
190
|
+
<div className="bg-white rounded-lg p-4 border-2 border-primary/30 shadow-sm hover:shadow-md transition-all hover:border-primary/50">
|
|
191
|
+
<div className="font-semibold text-primary text-base mb-3 flex items-center">
|
|
192
|
+
<span className="mr-2">🏷️</span> taxonomy
|
|
193
|
+
</div>
|
|
194
|
+
<div className="grid grid-cols-2 gap-2 text-xs">
|
|
195
|
+
<div className="bg-orange-50 rounded p-2">
|
|
196
|
+
<strong>domain</strong>: customer_service, engineering, etc.
|
|
197
|
+
</div>
|
|
198
|
+
<div className="bg-orange-50 rounded p-2">
|
|
199
|
+
<strong>subdomain</strong>: technical_support, devops, etc.
|
|
200
|
+
</div>
|
|
201
|
+
<div className="bg-orange-50 rounded p-2">
|
|
202
|
+
<strong>use_case</strong>: troubleshooting, automation
|
|
203
|
+
</div>
|
|
204
|
+
<div className="bg-orange-50 rounded p-2">
|
|
205
|
+
<strong>industry</strong>: saas, healthcare, finance
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
</div>
|
|
209
|
+
|
|
210
|
+
{/* autonomy */}
|
|
211
|
+
<div className="bg-white rounded-lg p-4 border-2 border-primary/30 shadow-sm hover:shadow-md transition-all hover:border-primary/50">
|
|
212
|
+
<div className="font-semibold text-primary text-base mb-3 flex items-center">
|
|
213
|
+
<span className="mr-2">🎯</span> autonomy
|
|
214
|
+
</div>
|
|
215
|
+
<div className="space-y-2 text-sm">
|
|
216
|
+
<div className="bg-red-50 border border-red-200 rounded p-2">
|
|
217
|
+
<strong>level</strong>: L0 (no autonomy) → L5 (full autonomy)
|
|
218
|
+
</div>
|
|
219
|
+
<div className="bg-yellow-50 border border-yellow-200 rounded p-2">
|
|
220
|
+
<strong>approval_required</strong>: Actions needing approval
|
|
221
|
+
</div>
|
|
222
|
+
<div className="bg-green-50 border border-green-200 rounded p-2">
|
|
223
|
+
<strong>human_in_loop</strong>: Notification settings
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
|
|
228
|
+
{/* observability */}
|
|
229
|
+
<div className="bg-white rounded-lg p-4 border-2 border-primary/30 shadow-sm hover:shadow-md transition-all hover:border-primary/50">
|
|
230
|
+
<div className="font-semibold text-primary text-base mb-3 flex items-center">
|
|
231
|
+
<span className="mr-2">📊</span> observability
|
|
232
|
+
</div>
|
|
233
|
+
<div className="grid grid-cols-3 gap-2 text-xs">
|
|
234
|
+
<div className="bg-indigo-50 rounded p-2 text-center">
|
|
235
|
+
<div className="font-bold">logging</div>
|
|
236
|
+
<div className="text-gray-600">Logs & audit</div>
|
|
237
|
+
</div>
|
|
238
|
+
<div className="bg-purple-50 rounded p-2 text-center">
|
|
239
|
+
<div className="font-bold">metrics</div>
|
|
240
|
+
<div className="text-gray-600">Performance</div>
|
|
241
|
+
</div>
|
|
242
|
+
<div className="bg-pink-50 rounded p-2 text-center">
|
|
243
|
+
<div className="font-bold">tracing</div>
|
|
244
|
+
<div className="text-gray-600">Execution paths</div>
|
|
245
|
+
</div>
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
|
|
249
|
+
{/* constraints (additional) */}
|
|
250
|
+
<div className="bg-white rounded-lg p-4 border-2 border-primary/30 shadow-sm hover:shadow-md transition-all hover:border-primary/50">
|
|
251
|
+
<div className="font-semibold text-primary text-base mb-3 flex items-center">
|
|
252
|
+
<span className="mr-2">⚠️</span> constraints
|
|
253
|
+
<span className="ml-2 text-xs bg-gray-200 text-gray-700 px-2 py-0.5 rounded">Optional</span>
|
|
254
|
+
</div>
|
|
255
|
+
<div className="grid grid-cols-2 gap-2 text-xs">
|
|
256
|
+
<div className="bg-red-50 rounded p-2">
|
|
257
|
+
<strong>cost</strong>: Budget limits
|
|
258
|
+
</div>
|
|
259
|
+
<div className="bg-yellow-50 rounded p-2">
|
|
260
|
+
<strong>performance</strong>: Timeout, rate limits
|
|
261
|
+
</div>
|
|
262
|
+
<div className="bg-blue-50 rounded p-2">
|
|
263
|
+
<strong>resources</strong>: Memory, CPU caps
|
|
264
|
+
</div>
|
|
265
|
+
<div className="bg-green-50 rounded p-2">
|
|
266
|
+
<strong>security</strong>: Access controls
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
</div>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
|
|
273
|
+
{/* extensions */}
|
|
274
|
+
<div className="bg-gradient-to-br from-secondary/5 to-secondary/10 border-3 border-secondary rounded-xl p-6 shadow-md">
|
|
275
|
+
<div className="font-bold text-secondary text-2xl mb-4">extensions</div>
|
|
276
|
+
<div className="text-base text-gray-800 mb-4 font-semibold">Framework-specific configs:</div>
|
|
277
|
+
<div className="grid grid-cols-2 gap-3 text-sm">
|
|
278
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• kAgent</div>
|
|
279
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• BuildKit</div>
|
|
280
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• LangChain</div>
|
|
281
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• CrewAI</div>
|
|
282
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• OpenAI</div>
|
|
283
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• Anthropic</div>
|
|
284
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• Cursor</div>
|
|
285
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• Langflow</div>
|
|
286
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• AutoGen</div>
|
|
287
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• Vercel AI</div>
|
|
288
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• LlamaIndex</div>
|
|
289
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• LangGraph</div>
|
|
290
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• Drupal</div>
|
|
291
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• LibreChat</div>
|
|
292
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow">• MCP</div>
|
|
293
|
+
<div className="bg-white rounded-lg px-3 py-2.5 border-2 border-secondary/30 shadow-sm hover:shadow-md transition-shadow text-center col-span-2 font-semibold">+ 10 more frameworks</div>
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
</div>
|
|
298
|
+
</div>
|
|
299
|
+
</section>
|
|
300
|
+
|
|
301
|
+
{/* Data Flow Diagram */}
|
|
302
|
+
<section className="mb-16">
|
|
303
|
+
<div className="flex items-center mb-8">
|
|
304
|
+
<div className="w-12 h-12 bg-gradient-to-br from-secondary to-primary rounded-lg flex items-center justify-center mr-4">
|
|
305
|
+
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
306
|
+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
|
|
307
|
+
</svg>
|
|
308
|
+
</div>
|
|
309
|
+
<h2 className="text-3xl font-bold text-secondary">Data Flow: How OSSA Works</h2>
|
|
310
|
+
</div>
|
|
311
|
+
|
|
312
|
+
<div className="grid md:grid-cols-2 gap-6 mb-8">
|
|
313
|
+
{/* Flow 1: Agent Definition to Execution */}
|
|
314
|
+
<div className="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
|
|
315
|
+
<h3 className="text-lg font-bold mb-4 text-primary">1. Definition → Execution</h3>
|
|
316
|
+
<div className="bg-gray-50 rounded-lg p-4 font-mono text-xs space-y-2">
|
|
317
|
+
<div className="flex items-center">
|
|
318
|
+
<div className="w-8 h-8 bg-primary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">1</div>
|
|
319
|
+
<div>
|
|
320
|
+
<div className="font-semibold">Write agent.yaml</div>
|
|
321
|
+
<div className="text-gray-600">Define role, LLM, tools</div>
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
<div className="ml-4 border-l-2 border-primary h-4"></div>
|
|
325
|
+
<div className="flex items-center">
|
|
326
|
+
<div className="w-8 h-8 bg-secondary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">2</div>
|
|
327
|
+
<div>
|
|
328
|
+
<div className="font-semibold">Validate schema</div>
|
|
329
|
+
<div className="text-gray-600">JSON Schema validation</div>
|
|
330
|
+
</div>
|
|
331
|
+
</div>
|
|
332
|
+
<div className="ml-4 border-l-2 border-secondary h-4"></div>
|
|
333
|
+
<div className="flex items-center">
|
|
334
|
+
<div className="w-8 h-8 bg-primary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">3</div>
|
|
335
|
+
<div>
|
|
336
|
+
<div className="font-semibold">Load into runtime</div>
|
|
337
|
+
<div className="text-gray-600">kAgent / LangChain / etc</div>
|
|
338
|
+
</div>
|
|
339
|
+
</div>
|
|
340
|
+
<div className="ml-4 border-l-2 border-primary h-4"></div>
|
|
341
|
+
<div className="flex items-center">
|
|
342
|
+
<div className="w-8 h-8 bg-secondary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">4</div>
|
|
343
|
+
<div>
|
|
344
|
+
<div className="font-semibold">Execute agent</div>
|
|
345
|
+
<div className="text-gray-600">Run tasks, call LLM, use tools</div>
|
|
346
|
+
</div>
|
|
347
|
+
</div>
|
|
348
|
+
</div>
|
|
349
|
+
</div>
|
|
350
|
+
|
|
351
|
+
{/* Flow 2: Cross-Framework Portability */}
|
|
352
|
+
<div className="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
|
|
353
|
+
<h3 className="text-lg font-bold mb-4 text-secondary">2. Cross-Framework Portability</h3>
|
|
354
|
+
<div className="bg-gray-50 rounded-lg p-4 font-mono text-xs space-y-2">
|
|
355
|
+
<div className="flex items-center">
|
|
356
|
+
<div className="w-8 h-8 bg-primary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">A</div>
|
|
357
|
+
<div>
|
|
358
|
+
<div className="font-semibold">agent.yaml (OSSA)</div>
|
|
359
|
+
<div className="text-gray-600">Framework-agnostic definition</div>
|
|
360
|
+
</div>
|
|
361
|
+
</div>
|
|
362
|
+
<div className="ml-4 border-l-2 border-dashed border-primary h-4"></div>
|
|
363
|
+
<div className="text-center text-gray-500 font-bold">↓ Export to ↓</div>
|
|
364
|
+
<div className="ml-4 border-l-2 border-dashed border-primary h-4"></div>
|
|
365
|
+
<div className="space-y-2">
|
|
366
|
+
<div className="bg-blue-50 p-2 rounded border-l-2 border-blue-500">
|
|
367
|
+
<strong>LangChain</strong>: chains.json
|
|
368
|
+
</div>
|
|
369
|
+
<div className="bg-purple-50 p-2 rounded border-l-2 border-purple-500">
|
|
370
|
+
<strong>CrewAI</strong>: crew_config.yaml
|
|
371
|
+
</div>
|
|
372
|
+
<div className="bg-green-50 p-2 rounded border-l-2 border-green-500">
|
|
373
|
+
<strong>OpenAI</strong>: assistant_config.json
|
|
374
|
+
</div>
|
|
375
|
+
<div className="bg-orange-50 p-2 rounded border-l-2 border-orange-500">
|
|
376
|
+
<strong>Anthropic</strong>: claude_tools.json
|
|
377
|
+
</div>
|
|
378
|
+
</div>
|
|
379
|
+
</div>
|
|
380
|
+
</div>
|
|
381
|
+
</div>
|
|
382
|
+
|
|
383
|
+
{/* Visual Data Flow Diagram - Clean HTML/CSS Version */}
|
|
384
|
+
<div className="bg-gradient-to-br from-blue-50 to-cyan-50 rounded-2xl p-8 border-2 border-blue-300">
|
|
385
|
+
<h3 className="text-2xl font-bold mb-8 text-center text-gray-900">Complete Agent Lifecycle</h3>
|
|
386
|
+
|
|
387
|
+
<div className="space-y-6">
|
|
388
|
+
{/* Step 1: Developer */}
|
|
389
|
+
<div className="flex flex-col items-center">
|
|
390
|
+
<div className="bg-gradient-to-r from-purple-500 to-purple-600 text-white rounded-xl p-6 shadow-lg w-full max-w-md text-center">
|
|
391
|
+
<div className="text-lg font-bold mb-2">👨💻 Developer</div>
|
|
392
|
+
<div className="text-base">Writes OSSA Manifest</div>
|
|
393
|
+
<div className="text-sm mt-2 opacity-90">agent.yaml</div>
|
|
394
|
+
</div>
|
|
395
|
+
<div className="w-1 h-12 bg-gradient-to-b from-purple-500 to-blue-500"></div>
|
|
396
|
+
</div>
|
|
397
|
+
|
|
398
|
+
{/* Step 2: Validation */}
|
|
399
|
+
<div className="flex flex-col items-center">
|
|
400
|
+
<div className="grid md:grid-cols-2 gap-4 w-full max-w-4xl">
|
|
401
|
+
<div className="bg-gradient-to-r from-blue-500 to-blue-600 text-white rounded-xl p-6 shadow-lg">
|
|
402
|
+
<div className="text-lg font-bold mb-2">🔍 OSSA Schema Validator</div>
|
|
403
|
+
<div className="text-sm opacity-90">JSON Schema validation engine</div>
|
|
404
|
+
</div>
|
|
405
|
+
<div className="bg-white border-2 border-blue-400 rounded-xl p-6 shadow-md">
|
|
406
|
+
<div className="text-base font-bold text-blue-900 mb-3">Validation Checks:</div>
|
|
407
|
+
<div className="space-y-1 text-sm text-gray-700">
|
|
408
|
+
<div>✓ Required fields present</div>
|
|
409
|
+
<div>✓ Correct types</div>
|
|
410
|
+
<div>✓ Value constraints</div>
|
|
411
|
+
<div>✓ Schema compliance</div>
|
|
412
|
+
</div>
|
|
413
|
+
</div>
|
|
414
|
+
</div>
|
|
415
|
+
<div className="w-1 h-12 bg-gradient-to-b from-blue-500 to-green-500"></div>
|
|
416
|
+
<div className="bg-green-500 text-white px-6 py-2 rounded-full font-bold shadow-md">
|
|
417
|
+
✓ Valid Manifest
|
|
418
|
+
</div>
|
|
419
|
+
<div className="w-1 h-12 bg-gradient-to-b from-green-500 to-orange-500"></div>
|
|
420
|
+
</div>
|
|
421
|
+
|
|
422
|
+
{/* Step 3: Framework Adapter Layer */}
|
|
423
|
+
<div className="flex flex-col items-center">
|
|
424
|
+
<div className="bg-gradient-to-r from-orange-500 to-orange-600 text-white rounded-xl p-6 shadow-lg w-full max-w-3xl text-center">
|
|
425
|
+
<div className="text-xl font-bold mb-2">⚙️ Framework Adapter Layer</div>
|
|
426
|
+
<div className="text-base opacity-90">Converts OSSA → Framework-Specific Config</div>
|
|
427
|
+
</div>
|
|
428
|
+
<div className="flex space-x-2 mt-4">
|
|
429
|
+
<div className="w-1 h-12 bg-gradient-to-b from-orange-500 to-indigo-500"></div>
|
|
430
|
+
<div className="w-1 h-12 bg-gradient-to-b from-orange-500 to-purple-500"></div>
|
|
431
|
+
<div className="w-1 h-12 bg-gradient-to-b from-orange-500 to-pink-500"></div>
|
|
432
|
+
<div className="w-1 h-12 bg-gradient-to-b from-orange-500 to-cyan-500"></div>
|
|
433
|
+
</div>
|
|
434
|
+
</div>
|
|
435
|
+
|
|
436
|
+
{/* Step 4: Runtimes */}
|
|
437
|
+
<div className="flex flex-col items-center">
|
|
438
|
+
<div className="grid md:grid-cols-4 gap-4 w-full max-w-5xl">
|
|
439
|
+
<div className="bg-gradient-to-br from-indigo-500 to-indigo-600 text-white rounded-xl p-5 shadow-lg text-center">
|
|
440
|
+
<div className="text-base font-bold mb-2">🚀 kAgent</div>
|
|
441
|
+
<div className="text-xs opacity-90">Runtime</div>
|
|
442
|
+
</div>
|
|
443
|
+
<div className="bg-gradient-to-br from-purple-500 to-purple-600 text-white rounded-xl p-5 shadow-lg text-center">
|
|
444
|
+
<div className="text-base font-bold mb-2">🔗 LangChain</div>
|
|
445
|
+
<div className="text-xs opacity-90">Runtime</div>
|
|
446
|
+
</div>
|
|
447
|
+
<div className="bg-gradient-to-br from-pink-500 to-pink-600 text-white rounded-xl p-5 shadow-lg text-center">
|
|
448
|
+
<div className="text-base font-bold mb-2">👥 CrewAI</div>
|
|
449
|
+
<div className="text-xs opacity-90">Runtime</div>
|
|
450
|
+
</div>
|
|
451
|
+
<div className="bg-gradient-to-br from-cyan-500 to-cyan-600 text-white rounded-xl p-5 shadow-lg text-center">
|
|
452
|
+
<div className="text-base font-bold mb-2">🤖 OpenAI</div>
|
|
453
|
+
<div className="text-xs opacity-90">Runtime</div>
|
|
454
|
+
</div>
|
|
455
|
+
</div>
|
|
456
|
+
<div className="flex justify-center mt-4 space-x-2">
|
|
457
|
+
<div className="w-1 h-12 bg-gradient-to-b from-indigo-500 to-teal-500"></div>
|
|
458
|
+
<div className="w-1 h-12 bg-gradient-to-b from-purple-500 to-teal-500"></div>
|
|
459
|
+
<div className="w-1 h-12 bg-gradient-to-b from-pink-500 to-teal-500"></div>
|
|
460
|
+
<div className="w-1 h-12 bg-gradient-to-b from-cyan-500 to-teal-500"></div>
|
|
461
|
+
</div>
|
|
462
|
+
</div>
|
|
463
|
+
|
|
464
|
+
{/* Step 5: Agent Execution */}
|
|
465
|
+
<div className="flex flex-col items-center">
|
|
466
|
+
<div className="bg-gradient-to-r from-teal-500 to-teal-600 text-white rounded-xl p-6 shadow-lg w-full max-w-2xl">
|
|
467
|
+
<div className="text-xl font-bold mb-4 text-center">⚡ Agent Execution</div>
|
|
468
|
+
<div className="grid grid-cols-3 gap-3 text-sm">
|
|
469
|
+
<div className="bg-white/20 backdrop-blur-sm rounded-lg p-3 text-center">
|
|
470
|
+
<div className="font-bold mb-1">🧠 LLM Calls</div>
|
|
471
|
+
<div className="text-xs opacity-90">GPT-4, Claude, etc.</div>
|
|
472
|
+
</div>
|
|
473
|
+
<div className="bg-white/20 backdrop-blur-sm rounded-lg p-3 text-center">
|
|
474
|
+
<div className="font-bold mb-1">🔧 Tool Usage</div>
|
|
475
|
+
<div className="text-xs opacity-90">APIs, Code, DB</div>
|
|
476
|
+
</div>
|
|
477
|
+
<div className="bg-white/20 backdrop-blur-sm rounded-lg p-3 text-center">
|
|
478
|
+
<div className="font-bold mb-1">📋 Task Processing</div>
|
|
479
|
+
<div className="text-xs opacity-90">Execute workflows</div>
|
|
480
|
+
</div>
|
|
481
|
+
</div>
|
|
482
|
+
</div>
|
|
483
|
+
<div className="w-1 h-12 bg-gradient-to-b from-teal-500 to-amber-500"></div>
|
|
484
|
+
</div>
|
|
485
|
+
|
|
486
|
+
{/* Step 6: Observability */}
|
|
487
|
+
<div className="flex flex-col items-center">
|
|
488
|
+
<div className="bg-gradient-to-r from-amber-500 to-amber-600 text-white rounded-xl p-6 shadow-lg w-full max-w-2xl">
|
|
489
|
+
<div className="text-xl font-bold mb-4 text-center">📊 Observability</div>
|
|
490
|
+
<div className="grid grid-cols-3 gap-3 text-sm">
|
|
491
|
+
<div className="bg-white/20 backdrop-blur-sm rounded-lg p-3 text-center">
|
|
492
|
+
<div className="font-bold mb-1">📝 Logs</div>
|
|
493
|
+
<div className="text-xs opacity-90">Debug & audit</div>
|
|
494
|
+
</div>
|
|
495
|
+
<div className="bg-white/20 backdrop-blur-sm rounded-lg p-3 text-center">
|
|
496
|
+
<div className="font-bold mb-1">📈 Metrics</div>
|
|
497
|
+
<div className="text-xs opacity-90">Performance data</div>
|
|
498
|
+
</div>
|
|
499
|
+
<div className="bg-white/20 backdrop-blur-sm rounded-lg p-3 text-center">
|
|
500
|
+
<div className="font-bold mb-1">🔍 Traces</div>
|
|
501
|
+
<div className="text-xs opacity-90">Execution paths</div>
|
|
502
|
+
</div>
|
|
503
|
+
</div>
|
|
504
|
+
</div>
|
|
505
|
+
</div>
|
|
506
|
+
</div>
|
|
507
|
+
</div>
|
|
508
|
+
</section>
|
|
509
|
+
|
|
510
|
+
{/* Core Components Breakdown */}
|
|
511
|
+
<section className="mb-16">
|
|
512
|
+
<div className="flex items-center mb-8">
|
|
513
|
+
<div className="w-12 h-12 bg-gradient-to-br from-primary to-secondary rounded-lg flex items-center justify-center mr-4">
|
|
514
|
+
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
515
|
+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z" />
|
|
516
|
+
</svg>
|
|
517
|
+
</div>
|
|
518
|
+
<h2 className="text-3xl font-bold text-primary">Schema Components</h2>
|
|
519
|
+
</div>
|
|
520
|
+
|
|
521
|
+
<div className="grid gap-6">
|
|
522
|
+
{/* apiVersion & kind */}
|
|
523
|
+
<div className="card p-6 border-l-4 border-primary hover:shadow-xl transition-shadow">
|
|
524
|
+
<div className="flex items-start">
|
|
525
|
+
<div className="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0 mt-1">
|
|
526
|
+
<span className="text-2xl">🔖</span>
|
|
527
|
+
</div>
|
|
528
|
+
<div className="flex-1">
|
|
529
|
+
<h3 className="text-2xl font-bold text-primary mb-3">apiVersion & kind</h3>
|
|
530
|
+
<div className="space-y-3">
|
|
531
|
+
<div>
|
|
532
|
+
<p className="font-semibold text-gray-900 mb-1">WHAT:</p>
|
|
533
|
+
<p className="text-gray-700">Version identifier and resource type for the manifest.</p>
|
|
534
|
+
</div>
|
|
535
|
+
<div>
|
|
536
|
+
<p className="font-semibold text-gray-900 mb-1">WHY:</p>
|
|
537
|
+
<p className="text-gray-700">Enables schema evolution while maintaining backward compatibility. Like Kubernetes resources or OpenAPI specs, agents can evolve without breaking existing definitions.</p>
|
|
538
|
+
</div>
|
|
539
|
+
<div>
|
|
540
|
+
<p className="font-semibold text-gray-900 mb-1">EXAMPLE:</p>
|
|
541
|
+
<div className="bg-code-bg rounded-lg p-3 mt-2">
|
|
542
|
+
<pre className="text-code-text text-sm"><code>{`apiVersion: ossa/v0.2.3
|
|
543
|
+
kind: Agent`}</code></pre>
|
|
544
|
+
</div>
|
|
545
|
+
</div>
|
|
546
|
+
</div>
|
|
547
|
+
</div>
|
|
548
|
+
</div>
|
|
549
|
+
</div>
|
|
550
|
+
|
|
551
|
+
{/* metadata */}
|
|
552
|
+
<div className="card p-6 border-l-4 border-secondary hover:shadow-xl transition-shadow">
|
|
553
|
+
<div className="flex items-start">
|
|
554
|
+
<div className="w-10 h-10 bg-secondary/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0 mt-1">
|
|
555
|
+
<span className="text-2xl">📋</span>
|
|
556
|
+
</div>
|
|
557
|
+
<div className="flex-1">
|
|
558
|
+
<h3 className="text-2xl font-bold text-secondary mb-3">metadata</h3>
|
|
559
|
+
<div className="space-y-3">
|
|
560
|
+
<div>
|
|
561
|
+
<p className="font-semibold text-gray-900 mb-1">WHAT:</p>
|
|
562
|
+
<p className="text-gray-700">Identification and classification information: name, version, description, labels, annotations.</p>
|
|
563
|
+
</div>
|
|
564
|
+
<div>
|
|
565
|
+
<p className="font-semibold text-gray-900 mb-1">WHY:</p>
|
|
566
|
+
<p className="text-gray-700">
|
|
567
|
+
<strong>Discovery:</strong> Find agents by name/labels in catalogs.<br/>
|
|
568
|
+
<strong>Versioning:</strong> Track changes over time.<br/>
|
|
569
|
+
<strong>Organization:</strong> Group agents by team, project, environment.<br/>
|
|
570
|
+
<strong>Documentation:</strong> Human-readable descriptions and URLs.
|
|
571
|
+
</p>
|
|
572
|
+
</div>
|
|
573
|
+
<div>
|
|
574
|
+
<p className="font-semibold text-gray-900 mb-1">EXAMPLE:</p>
|
|
575
|
+
<div className="bg-code-bg rounded-lg p-3 mt-2">
|
|
576
|
+
<pre className="text-code-text text-sm"><code>{`metadata:
|
|
577
|
+
name: customer-support-agent
|
|
578
|
+
version: 2.1.0
|
|
579
|
+
description: Handles tier-1 support tickets with sentiment analysis
|
|
580
|
+
labels:
|
|
581
|
+
team: support
|
|
582
|
+
environment: production
|
|
583
|
+
annotations:
|
|
584
|
+
docs: https://docs.example.com/agents/support
|
|
585
|
+
owner: support-team@example.com`}</code></pre>
|
|
586
|
+
</div>
|
|
587
|
+
</div>
|
|
588
|
+
</div>
|
|
589
|
+
</div>
|
|
590
|
+
</div>
|
|
591
|
+
</div>
|
|
592
|
+
|
|
593
|
+
{/* spec.role */}
|
|
594
|
+
<div className="card p-6 border-l-4 border-primary hover:shadow-xl transition-shadow">
|
|
595
|
+
<div className="flex items-start">
|
|
596
|
+
<div className="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0 mt-1">
|
|
597
|
+
<span className="text-2xl">🎭</span>
|
|
598
|
+
</div>
|
|
599
|
+
<div className="flex-1">
|
|
600
|
+
<h3 className="text-2xl font-bold text-primary mb-3">spec.role</h3>
|
|
601
|
+
<div className="space-y-3">
|
|
602
|
+
<div>
|
|
603
|
+
<p className="font-semibold text-gray-900 mb-1">WHAT:</p>
|
|
604
|
+
<p className="text-gray-700">The system prompt / role definition that guides the agent's behavior and personality.</p>
|
|
605
|
+
</div>
|
|
606
|
+
<div>
|
|
607
|
+
<p className="font-semibold text-gray-900 mb-1">WHY:</p>
|
|
608
|
+
<p className="text-gray-700">
|
|
609
|
+
Defines <strong>who</strong> the agent is, <strong>what</strong> it can do, and <strong>how</strong> it should behave.
|
|
610
|
+
This is the agent's identity and primary instruction set that shapes all interactions.
|
|
611
|
+
</p>
|
|
612
|
+
</div>
|
|
613
|
+
<div>
|
|
614
|
+
<p className="font-semibold text-gray-900 mb-1">EXAMPLE:</p>
|
|
615
|
+
<div className="bg-code-bg rounded-lg p-3 mt-2">
|
|
616
|
+
<pre className="text-code-text text-sm"><code>{`spec:
|
|
617
|
+
role: |
|
|
618
|
+
You are a senior software architect specializing in distributed systems.
|
|
619
|
+
Your role is to review code for scalability, security, and best practices.
|
|
620
|
+
You provide constructive feedback with specific examples and recommendations.
|
|
621
|
+
You communicate in a professional but friendly tone.`}</code></pre>
|
|
622
|
+
</div>
|
|
623
|
+
</div>
|
|
624
|
+
</div>
|
|
625
|
+
</div>
|
|
626
|
+
</div>
|
|
627
|
+
</div>
|
|
628
|
+
|
|
629
|
+
{/* spec.llm */}
|
|
630
|
+
<div className="card p-6 border-l-4 border-secondary hover:shadow-xl transition-shadow">
|
|
631
|
+
<div className="flex items-start">
|
|
632
|
+
<div className="w-10 h-10 bg-secondary/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0 mt-1">
|
|
633
|
+
<span className="text-2xl">🧠</span>
|
|
634
|
+
</div>
|
|
635
|
+
<div className="flex-1">
|
|
636
|
+
<h3 className="text-2xl font-bold text-secondary mb-3">spec.llm</h3>
|
|
637
|
+
<div className="space-y-3">
|
|
638
|
+
<div>
|
|
639
|
+
<p className="font-semibold text-gray-900 mb-1">WHAT:</p>
|
|
640
|
+
<p className="text-gray-700">LLM provider configuration: model, temperature, max_tokens, top_p, and other parameters.</p>
|
|
641
|
+
</div>
|
|
642
|
+
<div>
|
|
643
|
+
<p className="font-semibold text-gray-900 mb-1">WHY:</p>
|
|
644
|
+
<p className="text-gray-700">
|
|
645
|
+
<strong>Portability:</strong> Switch from OpenAI to Anthropic without changing agent logic.<br/>
|
|
646
|
+
<strong>Optimization:</strong> Tune temperature for creativity vs consistency.<br/>
|
|
647
|
+
<strong>Cost Control:</strong> Set token limits and choose appropriate model sizes.<br/>
|
|
648
|
+
<strong>Quality:</strong> Configure sampling parameters for best results.
|
|
649
|
+
</p>
|
|
650
|
+
</div>
|
|
651
|
+
<div>
|
|
652
|
+
<p className="font-semibold text-gray-900 mb-1">EXAMPLE:</p>
|
|
653
|
+
<div className="bg-code-bg rounded-lg p-3 mt-2">
|
|
654
|
+
<pre className="text-code-text text-sm"><code>{`spec:
|
|
655
|
+
llm:
|
|
656
|
+
provider: openai
|
|
657
|
+
model: gpt-4-turbo
|
|
658
|
+
temperature: 0.7
|
|
659
|
+
max_tokens: 2000
|
|
660
|
+
top_p: 0.9
|
|
661
|
+
frequency_penalty: 0.0
|
|
662
|
+
presence_penalty: 0.6`}</code></pre>
|
|
663
|
+
</div>
|
|
664
|
+
</div>
|
|
665
|
+
</div>
|
|
666
|
+
</div>
|
|
667
|
+
</div>
|
|
668
|
+
</div>
|
|
669
|
+
|
|
670
|
+
{/* spec.tools */}
|
|
671
|
+
<div className="card p-6 border-l-4 border-primary hover:shadow-xl transition-shadow">
|
|
672
|
+
<div className="flex items-start">
|
|
673
|
+
<div className="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0 mt-1">
|
|
674
|
+
<span className="text-2xl">🔧</span>
|
|
675
|
+
</div>
|
|
676
|
+
<div className="flex-1">
|
|
677
|
+
<h3 className="text-2xl font-bold text-primary mb-3">spec.tools</h3>
|
|
678
|
+
<div className="space-y-3">
|
|
679
|
+
<div>
|
|
680
|
+
<p className="font-semibold text-gray-900 mb-1">WHAT:</p>
|
|
681
|
+
<p className="text-gray-700">Array of tools/functions the agent can call: HTTP APIs, code execution, database queries, file operations, etc.</p>
|
|
682
|
+
</div>
|
|
683
|
+
<div>
|
|
684
|
+
<p className="font-semibold text-gray-900 mb-1">WHY:</p>
|
|
685
|
+
<p className="text-gray-700">
|
|
686
|
+
Agents need to <strong>take action</strong>, not just respond with text. Tools enable agents to:
|
|
687
|
+
interact with APIs, query databases, run code, search the web, manipulate files, and integrate with external systems.
|
|
688
|
+
Standardizing tool definitions ensures portability across frameworks.
|
|
689
|
+
</p>
|
|
690
|
+
</div>
|
|
691
|
+
<div>
|
|
692
|
+
<p className="font-semibold text-gray-900 mb-1">TYPES:</p>
|
|
693
|
+
<ul className="list-disc list-inside text-gray-700 space-y-1 ml-4">
|
|
694
|
+
<li><strong>http:</strong> REST API calls</li>
|
|
695
|
+
<li><strong>code:</strong> Execute Python/JS/etc</li>
|
|
696
|
+
<li><strong>database:</strong> SQL queries</li>
|
|
697
|
+
<li><strong>file:</strong> Read/write files</li>
|
|
698
|
+
<li><strong>search:</strong> Web/vector search</li>
|
|
699
|
+
<li><strong>custom:</strong> Framework-specific tools</li>
|
|
700
|
+
</ul>
|
|
701
|
+
</div>
|
|
702
|
+
<div>
|
|
703
|
+
<p className="font-semibold text-gray-900 mb-1">EXAMPLE:</p>
|
|
704
|
+
<div className="bg-code-bg rounded-lg p-3 mt-2">
|
|
705
|
+
<pre className="text-code-text text-sm"><code>{`spec:
|
|
706
|
+
tools:
|
|
707
|
+
- type: http
|
|
708
|
+
name: search_issues
|
|
709
|
+
endpoint: https://api.github.com/search/issues
|
|
710
|
+
method: GET
|
|
711
|
+
auth:
|
|
712
|
+
type: bearer
|
|
713
|
+
token: \${GITHUB_TOKEN}
|
|
714
|
+
|
|
715
|
+
- type: code
|
|
716
|
+
name: analyze_logs
|
|
717
|
+
language: python
|
|
718
|
+
allowed_libraries: [pandas, numpy]`}</code></pre>
|
|
719
|
+
</div>
|
|
720
|
+
</div>
|
|
721
|
+
</div>
|
|
722
|
+
</div>
|
|
723
|
+
</div>
|
|
724
|
+
</div>
|
|
725
|
+
|
|
726
|
+
{/* spec.taxonomy */}
|
|
727
|
+
<div className="card p-6 border-l-4 border-secondary hover:shadow-xl transition-shadow">
|
|
728
|
+
<div className="flex items-start">
|
|
729
|
+
<div className="w-10 h-10 bg-secondary/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0 mt-1">
|
|
730
|
+
<span className="text-2xl">🏷️</span>
|
|
731
|
+
</div>
|
|
732
|
+
<div className="flex-1">
|
|
733
|
+
<h3 className="text-2xl font-bold text-secondary mb-3">spec.taxonomy</h3>
|
|
734
|
+
<div className="space-y-3">
|
|
735
|
+
<div>
|
|
736
|
+
<p className="font-semibold text-gray-900 mb-1">WHAT:</p>
|
|
737
|
+
<p className="text-gray-700">Classification of agent purpose: domain, subdomain, use_case, and industry.</p>
|
|
738
|
+
</div>
|
|
739
|
+
<div>
|
|
740
|
+
<p className="font-semibold text-gray-900 mb-1">WHY:</p>
|
|
741
|
+
<p className="text-gray-700">
|
|
742
|
+
<strong>Discoverability:</strong> Find agents for specific use cases in catalogs.<br/>
|
|
743
|
+
<strong>Organization:</strong> Group similar agents together.<br/>
|
|
744
|
+
<strong>Routing:</strong> Automatically route tasks to appropriate agents.<br/>
|
|
745
|
+
<strong>Analytics:</strong> Track agent usage by domain/industry.
|
|
746
|
+
</p>
|
|
747
|
+
</div>
|
|
748
|
+
<div>
|
|
749
|
+
<p className="font-semibold text-gray-900 mb-1">EXAMPLE:</p>
|
|
750
|
+
<div className="bg-code-bg rounded-lg p-3 mt-2">
|
|
751
|
+
<pre className="text-code-text text-sm"><code>{`spec:
|
|
752
|
+
taxonomy:
|
|
753
|
+
domain: customer_service
|
|
754
|
+
subdomain: technical_support
|
|
755
|
+
use_case: troubleshooting
|
|
756
|
+
industry: saas
|
|
757
|
+
tags: [support, automation, tier1]`}</code></pre>
|
|
758
|
+
</div>
|
|
759
|
+
</div>
|
|
760
|
+
</div>
|
|
761
|
+
</div>
|
|
762
|
+
</div>
|
|
763
|
+
</div>
|
|
764
|
+
|
|
765
|
+
{/* spec.autonomy */}
|
|
766
|
+
<div className="card p-6 border-l-4 border-primary hover:shadow-xl transition-shadow">
|
|
767
|
+
<div className="flex items-start">
|
|
768
|
+
<div className="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0 mt-1">
|
|
769
|
+
<span className="text-2xl">🎯</span>
|
|
770
|
+
</div>
|
|
771
|
+
<div className="flex-1">
|
|
772
|
+
<h3 className="text-2xl font-bold text-primary mb-3">spec.autonomy</h3>
|
|
773
|
+
<div className="space-y-3">
|
|
774
|
+
<div>
|
|
775
|
+
<p className="font-semibold text-gray-900 mb-1">WHAT:</p>
|
|
776
|
+
<p className="text-gray-700">Defines how much independence the agent has: level (L0-L5), approval_required, human_in_loop settings.</p>
|
|
777
|
+
</div>
|
|
778
|
+
<div>
|
|
779
|
+
<p className="font-semibold text-gray-900 mb-1">WHY:</p>
|
|
780
|
+
<p className="text-gray-700">
|
|
781
|
+
<strong>Safety:</strong> Prevent agents from taking destructive actions without oversight.<br/>
|
|
782
|
+
<strong>Compliance:</strong> Require approvals for regulated operations.<br/>
|
|
783
|
+
<strong>Trust:</strong> Gradually increase autonomy as agents prove reliable.<br/>
|
|
784
|
+
<strong>Audit:</strong> Track which actions required human approval.
|
|
785
|
+
</p>
|
|
786
|
+
</div>
|
|
787
|
+
<div>
|
|
788
|
+
<p className="font-semibold text-gray-900 mb-1">LEVELS:</p>
|
|
789
|
+
<ul className="list-disc list-inside text-gray-700 space-y-1 ml-4">
|
|
790
|
+
<li><strong>L0:</strong> No autonomy (human controls everything)</li>
|
|
791
|
+
<li><strong>L1:</strong> Suggestions only (human approves all actions)</li>
|
|
792
|
+
<li><strong>L2:</strong> Conditional autonomy (human approves risky actions)</li>
|
|
793
|
+
<li><strong>L3:</strong> High autonomy (human approves critical actions)</li>
|
|
794
|
+
<li><strong>L4:</strong> Full autonomy (human notified of actions)</li>
|
|
795
|
+
<li><strong>L5:</strong> Complete autonomy (no human oversight)</li>
|
|
796
|
+
</ul>
|
|
797
|
+
</div>
|
|
798
|
+
<div>
|
|
799
|
+
<p className="font-semibold text-gray-900 mb-1">EXAMPLE:</p>
|
|
800
|
+
<div className="bg-code-bg rounded-lg p-3 mt-2">
|
|
801
|
+
<pre className="text-code-text text-sm"><code>{`spec:
|
|
802
|
+
autonomy:
|
|
803
|
+
level: L2
|
|
804
|
+
approval_required:
|
|
805
|
+
- delete_operations
|
|
806
|
+
- financial_transactions
|
|
807
|
+
- user_data_access
|
|
808
|
+
human_in_loop:
|
|
809
|
+
notification_channels: [slack, email]
|
|
810
|
+
timeout_seconds: 300`}</code></pre>
|
|
811
|
+
</div>
|
|
812
|
+
</div>
|
|
813
|
+
</div>
|
|
814
|
+
</div>
|
|
815
|
+
</div>
|
|
816
|
+
</div>
|
|
817
|
+
|
|
818
|
+
{/* spec.observability */}
|
|
819
|
+
<div className="card p-6 border-l-4 border-secondary hover:shadow-xl transition-shadow">
|
|
820
|
+
<div className="flex items-start">
|
|
821
|
+
<div className="w-10 h-10 bg-secondary/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0 mt-1">
|
|
822
|
+
<span className="text-2xl">📊</span>
|
|
823
|
+
</div>
|
|
824
|
+
<div className="flex-1">
|
|
825
|
+
<h3 className="text-2xl font-bold text-secondary mb-3">spec.observability</h3>
|
|
826
|
+
<div className="space-y-3">
|
|
827
|
+
<div>
|
|
828
|
+
<p className="font-semibold text-gray-900 mb-1">WHAT:</p>
|
|
829
|
+
<p className="text-gray-700">Logging, metrics, and tracing configuration for monitoring agent behavior.</p>
|
|
830
|
+
</div>
|
|
831
|
+
<div>
|
|
832
|
+
<p className="font-semibold text-gray-900 mb-1">WHY:</p>
|
|
833
|
+
<p className="text-gray-700">
|
|
834
|
+
<strong>Debugging:</strong> Understand what went wrong when agents fail.<br/>
|
|
835
|
+
<strong>Performance:</strong> Track response times, token usage, costs.<br/>
|
|
836
|
+
<strong>Quality:</strong> Monitor success rates and user satisfaction.<br/>
|
|
837
|
+
<strong>Compliance:</strong> Audit trails for regulated industries.
|
|
838
|
+
</p>
|
|
839
|
+
</div>
|
|
840
|
+
<div>
|
|
841
|
+
<p className="font-semibold text-gray-900 mb-1">EXAMPLE:</p>
|
|
842
|
+
<div className="bg-code-bg rounded-lg p-3 mt-2">
|
|
843
|
+
<pre className="text-code-text text-sm"><code>{`spec:
|
|
844
|
+
observability:
|
|
845
|
+
logging:
|
|
846
|
+
level: info
|
|
847
|
+
include_prompts: true
|
|
848
|
+
include_responses: true
|
|
849
|
+
metrics:
|
|
850
|
+
enabled: true
|
|
851
|
+
export_to: prometheus
|
|
852
|
+
tracing:
|
|
853
|
+
enabled: true
|
|
854
|
+
provider: opentelemetry
|
|
855
|
+
sample_rate: 1.0`}</code></pre>
|
|
856
|
+
</div>
|
|
857
|
+
</div>
|
|
858
|
+
</div>
|
|
859
|
+
</div>
|
|
860
|
+
</div>
|
|
861
|
+
</div>
|
|
862
|
+
|
|
863
|
+
{/* extensions */}
|
|
864
|
+
<div className="card p-6 border-l-4 border-primary hover:shadow-xl transition-shadow">
|
|
865
|
+
<div className="flex items-start">
|
|
866
|
+
<div className="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0 mt-1">
|
|
867
|
+
<span className="text-2xl">🔌</span>
|
|
868
|
+
</div>
|
|
869
|
+
<div className="flex-1">
|
|
870
|
+
<h3 className="text-2xl font-bold text-primary mb-3">extensions</h3>
|
|
871
|
+
<div className="space-y-3">
|
|
872
|
+
<div>
|
|
873
|
+
<p className="font-semibold text-gray-900 mb-1">WHAT:</p>
|
|
874
|
+
<p className="text-gray-700">Framework-specific configuration blocks: kagent, buildkit, langchain, crewai, openai, anthropic, cursor, langflow, autogen, etc.</p>
|
|
875
|
+
</div>
|
|
876
|
+
<div>
|
|
877
|
+
<p className="font-semibold text-gray-900 mb-1">WHY:</p>
|
|
878
|
+
<p className="text-gray-700">
|
|
879
|
+
While OSSA provides a <strong>common core</strong>, each framework has unique features. Extensions allow you to:
|
|
880
|
+
leverage framework-specific capabilities, maintain compatibility with existing code, and gradually migrate from proprietary formats.
|
|
881
|
+
<strong className="block mt-2">The core spec ensures portability. Extensions provide power.</strong>
|
|
882
|
+
</p>
|
|
883
|
+
</div>
|
|
884
|
+
<div>
|
|
885
|
+
<p className="font-semibold text-gray-900 mb-1">SUPPORTED FRAMEWORKS (15+):</p>
|
|
886
|
+
<div className="grid grid-cols-2 gap-2 mt-2">
|
|
887
|
+
<div className="bg-blue-50 p-2 rounded text-sm">• kAgent</div>
|
|
888
|
+
<div className="bg-purple-50 p-2 rounded text-sm">• LangChain</div>
|
|
889
|
+
<div className="bg-green-50 p-2 rounded text-sm">• CrewAI</div>
|
|
890
|
+
<div className="bg-orange-50 p-2 rounded text-sm">• OpenAI Agents</div>
|
|
891
|
+
<div className="bg-pink-50 p-2 rounded text-sm">• Anthropic Claude</div>
|
|
892
|
+
<div className="bg-yellow-50 p-2 rounded text-sm">• Cursor</div>
|
|
893
|
+
<div className="bg-red-50 p-2 rounded text-sm">• Langflow</div>
|
|
894
|
+
<div className="bg-indigo-50 p-2 rounded text-sm">• AutoGen</div>
|
|
895
|
+
<div className="bg-teal-50 p-2 rounded text-sm">• Vercel AI</div>
|
|
896
|
+
<div className="bg-cyan-50 p-2 rounded text-sm">• LlamaIndex</div>
|
|
897
|
+
<div className="bg-lime-50 p-2 rounded text-sm">• LangGraph</div>
|
|
898
|
+
<div className="bg-amber-50 p-2 rounded text-sm">• BuildKit</div>
|
|
899
|
+
<div className="bg-blue-100 p-2 rounded text-sm">• Drupal</div>
|
|
900
|
+
<div className="bg-purple-100 p-2 rounded text-sm">• LibreChat</div>
|
|
901
|
+
<div className="bg-green-100 p-2 rounded text-sm">• MCP</div>
|
|
902
|
+
</div>
|
|
903
|
+
</div>
|
|
904
|
+
<div>
|
|
905
|
+
<p className="font-semibold text-gray-900 mb-1">EXAMPLE:</p>
|
|
906
|
+
<div className="bg-code-bg rounded-lg p-3 mt-2">
|
|
907
|
+
<pre className="text-code-text text-sm"><code>{`extensions:
|
|
908
|
+
kagent:
|
|
909
|
+
mesh_discovery: true
|
|
910
|
+
routing_strategy: round_robin
|
|
911
|
+
|
|
912
|
+
langchain:
|
|
913
|
+
memory_type: conversation_buffer_window
|
|
914
|
+
memory_window_size: 5
|
|
915
|
+
|
|
916
|
+
openai_agents:
|
|
917
|
+
code_interpreter: true
|
|
918
|
+
file_search: true`}</code></pre>
|
|
919
|
+
</div>
|
|
920
|
+
</div>
|
|
921
|
+
</div>
|
|
922
|
+
</div>
|
|
923
|
+
</div>
|
|
924
|
+
</div>
|
|
925
|
+
</div>
|
|
926
|
+
</section>
|
|
927
|
+
|
|
928
|
+
{/* Interactive Schema Explorer */}
|
|
929
|
+
<section className="mb-16">
|
|
930
|
+
<div className="flex items-center mb-8">
|
|
931
|
+
<div className="w-12 h-12 bg-gradient-to-br from-primary to-secondary rounded-lg flex items-center justify-center mr-4">
|
|
932
|
+
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
933
|
+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
|
|
934
|
+
</svg>
|
|
935
|
+
</div>
|
|
936
|
+
<h2 className="text-3xl font-bold text-primary">Interactive Schema Explorer</h2>
|
|
937
|
+
</div>
|
|
938
|
+
<p className="text-lg text-gray-700 mb-6">
|
|
939
|
+
Explore the complete JSON Schema interactively. Click on any property to see its type, description, and validation rules.
|
|
940
|
+
</p>
|
|
941
|
+
<SchemaExplorer schema={schema} />
|
|
942
|
+
</section>
|
|
943
|
+
|
|
944
|
+
{/* Next Steps */}
|
|
945
|
+
<section className="mb-8">
|
|
946
|
+
<div className="bg-gradient-to-br from-primary/10 via-accent/10 to-secondary/10 rounded-2xl p-8">
|
|
947
|
+
<h2 className="text-3xl font-bold mb-6 text-center">Ready to Build Agents?</h2>
|
|
948
|
+
<div className="grid md:grid-cols-3 gap-4">
|
|
949
|
+
<Link href="/playground" className="card-hover p-6 text-center border-l-4 border-primary hover:-translate-y-1 transition-all duration-300">
|
|
950
|
+
<div className="text-4xl mb-3">🎮</div>
|
|
951
|
+
<h3 className="text-xl font-semibold text-primary mb-2">Try the Playground</h3>
|
|
952
|
+
<p className="text-gray-700">Write and validate your first agent manifest</p>
|
|
953
|
+
</Link>
|
|
954
|
+
<Link href="/examples" className="card-hover p-6 text-center border-l-4 border-secondary hover:-translate-y-1 transition-all duration-300">
|
|
955
|
+
<div className="text-4xl mb-3">📚</div>
|
|
956
|
+
<h3 className="text-xl font-semibold text-secondary mb-2">Browse Examples</h3>
|
|
957
|
+
<p className="text-gray-700">See 58+ real-world agent definitions</p>
|
|
958
|
+
</Link>
|
|
959
|
+
<Link href="/docs" className="card-hover p-6 text-center border-l-4 border-primary hover:-translate-y-1 transition-all duration-300">
|
|
960
|
+
<div className="text-4xl mb-3">📖</div>
|
|
961
|
+
<h3 className="text-xl font-semibold text-primary mb-2">Read the Docs</h3>
|
|
962
|
+
<p className="text-gray-700">Comprehensive guides and tutorials</p>
|
|
963
|
+
</Link>
|
|
964
|
+
</div>
|
|
965
|
+
</div>
|
|
966
|
+
</section>
|
|
967
|
+
</div>
|
|
968
|
+
</>
|
|
969
|
+
);
|
|
970
|
+
}
|