@bluefly/openstandardagents 0.2.4 → 0.2.5-RC
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursorrules +84 -0
- package/.devfile.yaml +87 -0
- package/.env.example +25 -3
- package/.github/workflows/release.yml +1 -1
- package/.kiro/specs/agent-buildkit-templates/design.md +495 -0
- package/.kiro/specs/agent-buildkit-templates/requirements.md +165 -0
- package/.kiro/specs/kiro-ide-supercharger/README.md +202 -0
- package/.kiro/specs/kiro-ide-supercharger/design.md +1005 -0
- package/.kiro/specs/kiro-ide-supercharger/requirements.md +141 -0
- package/.kiro/specs/kiro-ide-supercharger/tasks.md +507 -0
- package/.kiro/specs/website-design-audit/design.md +679 -0
- package/.kiro/specs/website-design-audit/requirements.md +199 -0
- package/.releaserc.json +5 -4
- package/.version.json +6 -0
- package/CHANGELOG.md +140 -96
- package/CONTRIBUTING.md +23 -5
- package/README.md +121 -43
- package/bin/ossa +24 -3
- package/bin/ossa-validate-all +55 -0
- package/bin/ossa-version +23 -0
- package/bin/validate-ossa-0.2.4.ts +244 -0
- package/bin/validate-ossa-0.2.5-RC.ts +244 -0
- package/bin/validate-ossa.ts +273 -0
- package/dist/di-container.d.ts +1 -1
- package/dist/di-container.d.ts.map +1 -1
- package/dist/di-container.js.map +1 -1
- package/dist/repositories/schema.repository.d.ts +17 -2
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +96 -18
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/generation.service.d.ts +7 -5
- package/dist/services/generation.service.d.ts.map +1 -1
- package/dist/services/generation.service.js +92 -44
- package/dist/services/generation.service.js.map +1 -1
- package/dist/services/gitlab-agent.service.d.ts +94 -0
- package/dist/services/gitlab-agent.service.d.ts.map +1 -0
- package/dist/services/gitlab-agent.service.js +162 -0
- package/dist/services/gitlab-agent.service.js.map +1 -0
- package/dist/services/migration.service.d.ts +3 -3
- package/dist/services/migration.service.d.ts.map +1 -1
- package/dist/services/migration.service.js +108 -61
- package/dist/services/migration.service.js.map +1 -1
- package/dist/services/release-automation/base-crud.service.d.ts +93 -0
- package/dist/services/release-automation/base-crud.service.d.ts.map +1 -0
- package/dist/services/release-automation/base-crud.service.js +68 -0
- package/dist/services/release-automation/base-crud.service.js.map +1 -0
- package/dist/services/release-automation/index.d.ts +12 -0
- package/dist/services/release-automation/index.d.ts.map +1 -0
- package/dist/services/release-automation/index.js +12 -0
- package/dist/services/release-automation/index.js.map +1 -0
- package/dist/services/release-automation/merge-request.service.d.ts +119 -0
- package/dist/services/release-automation/merge-request.service.d.ts.map +1 -0
- package/dist/services/release-automation/merge-request.service.js +212 -0
- package/dist/services/release-automation/merge-request.service.js.map +1 -0
- package/dist/services/release-automation/milestone.service.d.ts +104 -0
- package/dist/services/release-automation/milestone.service.d.ts.map +1 -0
- package/dist/services/release-automation/milestone.service.js +207 -0
- package/dist/services/release-automation/milestone.service.js.map +1 -0
- package/dist/services/release-automation/release.service.d.ts +118 -0
- package/dist/services/release-automation/release.service.d.ts.map +1 -0
- package/dist/services/release-automation/release.service.js +207 -0
- package/dist/services/release-automation/release.service.js.map +1 -0
- package/dist/services/release-automation/schemas/release.schema.d.ts +299 -0
- package/dist/services/release-automation/schemas/release.schema.d.ts.map +1 -0
- package/dist/services/release-automation/schemas/release.schema.js +269 -0
- package/dist/services/release-automation/schemas/release.schema.js.map +1 -0
- package/dist/services/release-automation/tag.service.d.ts +99 -0
- package/dist/services/release-automation/tag.service.d.ts.map +1 -0
- package/dist/services/release-automation/tag.service.js +180 -0
- package/dist/services/release-automation/tag.service.js.map +1 -0
- package/dist/services/release-automation/webhook.service.d.ts +37 -0
- package/dist/services/release-automation/webhook.service.d.ts.map +1 -0
- package/dist/services/release-automation/webhook.service.js +173 -0
- package/dist/services/release-automation/webhook.service.js.map +1 -0
- package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
- package/dist/services/runtime/openai.adapter.js.map +1 -1
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +24 -11
- package/dist/services/validation.service.js.map +1 -1
- package/dist/services/validators/anthropic.validator.d.ts +2 -2
- package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
- package/dist/services/validators/anthropic.validator.js +14 -9
- package/dist/services/validators/anthropic.validator.js.map +1 -1
- package/dist/services/validators/autogen.validator.d.ts +2 -2
- package/dist/services/validators/autogen.validator.d.ts.map +1 -1
- package/dist/services/validators/autogen.validator.js +18 -15
- package/dist/services/validators/autogen.validator.js.map +1 -1
- package/dist/services/validators/crewai.validator.d.ts +2 -2
- package/dist/services/validators/crewai.validator.d.ts.map +1 -1
- package/dist/services/validators/crewai.validator.js +18 -17
- package/dist/services/validators/crewai.validator.js.map +1 -1
- package/dist/services/validators/cursor.validator.d.ts +2 -2
- package/dist/services/validators/cursor.validator.d.ts.map +1 -1
- package/dist/services/validators/cursor.validator.js +15 -11
- package/dist/services/validators/cursor.validator.js.map +1 -1
- package/dist/services/validators/langchain.validator.d.ts +2 -2
- package/dist/services/validators/langchain.validator.d.ts.map +1 -1
- package/dist/services/validators/langchain.validator.js +14 -11
- package/dist/services/validators/langchain.validator.js.map +1 -1
- package/dist/services/validators/langflow.validator.d.ts +2 -2
- package/dist/services/validators/langflow.validator.d.ts.map +1 -1
- package/dist/services/validators/langflow.validator.js +14 -9
- package/dist/services/validators/langflow.validator.js.map +1 -1
- package/dist/services/validators/langgraph.validator.d.ts +2 -2
- package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
- package/dist/services/validators/langgraph.validator.js +23 -18
- package/dist/services/validators/langgraph.validator.js.map +1 -1
- package/dist/services/validators/llamaindex.validator.d.ts +2 -2
- package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
- package/dist/services/validators/llamaindex.validator.js +19 -16
- package/dist/services/validators/llamaindex.validator.js.map +1 -1
- package/dist/services/validators/openai.validator.d.ts +2 -2
- package/dist/services/validators/openai.validator.d.ts.map +1 -1
- package/dist/services/validators/openai.validator.js +20 -16
- package/dist/services/validators/openai.validator.js.map +1 -1
- package/dist/services/validators/vercel-ai.validator.d.ts +2 -2
- package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
- package/dist/services/validators/vercel-ai.validator.js +16 -15
- package/dist/services/validators/vercel-ai.validator.js.map +1 -1
- package/dist/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
- package/dist/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
- package/dist/spec/v0.2.3/CHANGELOG.md +7 -7
- package/dist/spec/v0.2.3/README.md +9 -9
- package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
- package/{spec/v0.2.4-dev → dist/spec/v0.2.4}/CHANGELOG.md +8 -8
- package/dist/spec/{v0.2.4-dev → v0.2.4}/migrations/v0.2.3-to-v0.2.4.md +10 -10
- package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
- package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
- package/dist/spec/v0.2.5/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.5/README.md +72 -0
- package/dist/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
- package/dist/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
- package/dist/spec/v0.2.5-RC/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.5-RC/README.md +72 -0
- package/{spec/v0.2.4-dev → dist/spec/v0.2.5-RC}/migrations/v0.2.3-to-v0.2.4.md +10 -10
- package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
- package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
- package/dist/types/index.d.ts +6 -1
- package/dist/types/index.d.ts.map +1 -1
- package/docs/issue-19-completion-summary.md +648 -0
- package/docs/issue-19-validation.md +351 -0
- package/examples/anthropic/claude-assistant.ossa.json +1 -1
- package/examples/autogen/multi-agent.ossa.json +1 -1
- package/examples/bridges/Dockerfile.production +1 -1
- package/examples/crewai/research-team.ossa.json +1 -1
- package/examples/cursor/code-review-agent.ossa.json +1 -1
- package/examples/enterprise/agent.yml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +2 -2
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
- package/examples/langchain/chain-agent.ossa.json +1 -1
- package/examples/langflow/workflow-agent.ossa.json +1 -1
- package/examples/langgraph/state-machine-agent.ossa.json +1 -1
- package/examples/llamaindex/rag-agent.ossa.json +1 -1
- package/examples/openai/basic-agent.ossa.yaml +61 -0
- package/examples/openai/multi-tool-agent.ossa.json +165 -0
- package/examples/openai/swarm-agent.ossa.json +1 -1
- package/examples/openapi-extensions/README.md +1 -1
- package/examples/quickstart/support-agent.ossa.yaml +1 -1
- package/examples/vercel/edge-agent.ossa.json +1 -1
- package/infrastructure/gitlab-agent/rbac.yaml +126 -0
- package/infrastructure/gitlab-agent/values.yaml +150 -0
- package/infrastructure/k8s/monitoring/00-namespace.yaml +7 -0
- package/infrastructure/k8s/monitoring/01-prometheus.yaml +142 -0
- package/infrastructure/k8s/monitoring/02-grafana.yaml +63 -0
- package/infrastructure/k8s/monitoring/03-lightweight.yaml +121 -0
- package/infrastructure/k8s/monitoring/README.md +73 -0
- package/infrastructure/k8s/monitoring/deploy.sh +38 -0
- package/openapi/CHANGELOG.md +21 -0
- package/openapi/README.md +46 -0
- package/openapi/{ossa-core-api.openapi.yaml → core/ossa-core-api.openapi.yaml} +59 -4
- package/openapi/{ossa-registry.openapi.yaml → core/ossa-registry.openapi.yaml} +75 -2
- package/openapi/{unified-agent-gateway.openapi.yaml → core/unified-agent-gateway.openapi.yaml} +3 -3
- package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +136 -0
- package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +192 -0
- package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +149 -0
- package/openapi/reference-implementations/critic-agent-api.openapi.yaml +151 -0
- package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +217 -0
- package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +149 -0
- package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +151 -0
- package/openapi/reference-implementations/governor-agent-api.openapi.yaml +193 -0
- package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +165 -0
- package/openapi/reference-implementations/judge-agent-api.openapi.yaml +148 -0
- package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +167 -0
- package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +171 -0
- package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +171 -0
- package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +242 -0
- package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +187 -0
- package/openapi/{self-evolving-ecosystem.openapi.yaml → reference-implementations/self-evolving-ecosystem.openapi.yaml} +2 -2
- package/openapi/reference-implementations/worker-agent-api.openapi.yaml +208 -0
- package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +193 -0
- package/package.json +31 -21
- package/release.config.js +20 -5
- package/scripts/bump-version.ts +57 -0
- package/scripts/enhanced-version-manager.ts +257 -0
- package/scripts/gen-types.ts +51 -0
- package/scripts/gen-zod.ts +51 -0
- package/scripts/lib/exec.ts +37 -0
- package/scripts/lib/file-ops.ts +58 -0
- package/scripts/lib/version.ts +83 -0
- package/scripts/process-doc-templates.ts +37 -0
- package/scripts/schemas/package.schema.ts +75 -0
- package/scripts/setup-branch-protection.sh +33 -0
- package/scripts/sync-version.ts +39 -0
- package/scripts/sync-versions.ts +488 -0
- package/scripts/validate-schema.ts +49 -0
- package/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
- package/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
- package/spec/v0.2.3/CHANGELOG.md +7 -7
- package/spec/v0.2.3/README.md +9 -9
- package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
- package/{dist/spec/v0.2.4-dev → spec/v0.2.4}/CHANGELOG.md +8 -8
- package/spec/v0.2.4/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
- package/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
- package/spec/v0.2.5/CHANGELOG.md +401 -0
- package/spec/v0.2.5/README.md +72 -0
- package/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
- package/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
- package/spec/v0.2.5-RC/CHANGELOG.md +401 -0
- package/spec/v0.2.5-RC/README.md +72 -0
- package/spec/v0.2.5-RC/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
- package/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
- package/website/{.lighthouserc.js → .lighthouserc.ts} +5 -1
- package/website/Dockerfile +18 -5
- package/website/app/about/page.tsx +7 -7
- package/website/app/blog/[slug]/page.tsx +61 -20
- package/website/app/blog/page.tsx +120 -33
- package/website/app/design-guide/page.tsx +511 -0
- package/website/app/docs/[[...slug]]/page.tsx +641 -143
- package/website/app/examples/page.tsx +51 -41
- package/website/app/{globals.css → globals.scss} +50 -23
- package/website/app/layout.tsx +2 -2
- package/website/app/license/page.tsx +183 -0
- package/website/app/not-found.tsx +18 -0
- package/website/app/page.tsx +144 -79
- package/website/app/playground/page.tsx +25 -45
- package/website/app/schema/page.tsx +423 -392
- package/website/app/specification/page.tsx +245 -169
- package/website/components/Logo.tsx +75 -2
- package/website/components/docs/DocsSidebar.tsx +40 -3
- package/website/components/docs/MarkdownContent.tsx +265 -47
- package/website/components/docs/VersionSelector.tsx +64 -8
- package/website/components/examples/ExamplesViewer.tsx +2 -2
- package/website/components/layout/Footer.tsx +6 -1
- package/website/components/layout/Header.tsx +31 -33
- package/website/components/schema/SchemaComponentsAccordion.tsx +84 -0
- package/website/components/schema/SchemaExplorer.tsx +4 -4
- package/website/content/blog/OpenAPI-AI-Agents-Standard.md +276 -276
- package/website/content/blog/Why-Formal-Standards-Matter-Now.md +3 -14
- package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +286 -0
- package/website/content/blog/introducing-ossa-framework.md +1 -1
- package/website/content/blog/ossa-production-results.md +5 -5
- package/website/content/blog/welcome-to-ossa.md +2 -2
- package/website/content/blog/why-ai-agents-need-open-standard.md +5 -5
- package/website/content/docs/00-HOME.md +18 -25
- package/website/content/docs/AIFlow-Framework-Integration-with-OSSA.md +8 -8
- package/website/content/docs/OpenAPI-Extensions.md +576 -140
- package/website/content/docs/adapters/openai-adapter.md +693 -0
- package/website/content/docs/architecture/execution-flow.md +3 -3
- package/website/content/docs/architecture/multi-agent-systems.md +4 -4
- package/website/content/docs/architecture/overview.md +4 -4
- package/website/content/docs/architecture/stack-integration.md +4 -4
- package/website/content/docs/changelog.md +4 -4
- package/website/content/docs/contributing.md +2 -2
- package/website/content/docs/ecosystem/framework-support.md +0 -2
- package/website/content/docs/examples/AIFlow-Framework-Integration-with-OSSA.md +107 -0
- package/website/content/docs/examples/Migration-Guides.md +2 -2
- package/website/content/docs/for-audiences/{architects.md → Architects.md} +1 -1
- package/website/content/docs/for-audiences/{developers.md → Developers.md} +3 -3
- package/website/content/docs/for-audiences/Enterprises.md +2 -2
- package/website/content/docs/for-audiences/Students-Researchers.md +1 -1
- package/website/content/docs/getting-started/{5-minute-overview.md → 5-Minute-Overview.md} +2 -2
- package/website/content/docs/getting-started/{first-agent.md → First-Agent.md} +1 -1
- package/website/content/docs/getting-started/Hello-World.md +3 -3
- package/website/content/docs/getting-started/{installation.md → Installation.md} +7 -7
- package/website/content/docs/getting-started/index.md +92 -0
- package/website/content/docs/getting-started/running-agents.md +215 -13
- package/{docs → website/content/docs}/getting-started.md +10 -6
- package/website/content/docs/integrations/aiflow.md +2 -2
- package/website/content/docs/integrations/drupal.md +2 -2
- package/website/content/docs/migration-guides/README.md +1 -1
- package/website/content/docs/migration-guides/agent-schema-comparison.md +232 -0
- package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
- package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
- package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +11 -11
- package/{docs/migration → website/content/docs/migration-guides}/general-agent-schema.yml +1 -9
- package/website/content/docs/migration-guides/index.md +1 -1
- package/website/content/docs/migration-guides/langchain-to-ossa.md +17 -17
- package/website/content/docs/migration-guides/langflow-to-ossa.md +3 -3
- package/website/content/docs/migration-guides/openai-to-ossa.md +10 -10
- package/website/content/docs/openapi-extensions/examples.md +9 -9
- package/website/content/docs/openapi-extensions/index.md +59 -3
- package/website/content/docs/openapi-extensions/operation-extensions.md +61 -2
- package/website/content/docs/openapi-extensions/root-extensions.md +49 -3
- package/{docs/OSSA-COMPLIANT-BADGE.md → website/content/docs/ossa-compliant-badge.md} +18 -15
- package/website/content/docs/pre-release/index.md +10 -10
- package/website/content/docs/readme.md +35 -0
- package/website/content/docs/schema-reference/agent-spec.md +2 -2
- package/website/content/docs/schema-reference/autonomy.md +5 -5
- package/website/content/docs/schema-reference/constraints.md +5 -5
- package/website/content/docs/schema-reference/llm-config.md +1 -1
- package/website/content/docs/schema-reference/observability.md +5 -5
- package/website/content/docs/schema-reference/ossa-manifest.md +6 -6
- package/website/content/docs/schema-reference/taxonomy.md +3 -3
- package/website/content/docs/use-cases/00-index.md +1 -1
- package/{docs/VERSIONING.md → website/content/docs/versioning.md} +9 -5
- package/website/lib/version.ts +18 -1
- package/website/lib/versions.json +78 -0
- package/website/next.config.ts +3 -1
- package/website/package-lock.json +552 -18
- package/website/package.json +11 -5
- package/website/postcss.config.mjs +1 -1
- package/website/scripts/fetch-versions.js +166 -0
- package/website/scripts/generate-examples-index.js +163 -0
- package/website/scripts/merge-docs-to-wiki.ts +207 -0
- package/website/scripts/sync-version.js +28 -0
- package/website/scripts/sync-wiki.ts +64 -3
- package/website/scripts/upload-wiki.ts +199 -0
- package/website/styles/_variables.scss +36 -0
- package/website/tailwind.config.ts +93 -22
- package/.releaserc.json.disabled +0 -81
- package/dist/spec/v0.2.5-dev/CHANGELOG.md +0 -171
- package/dist/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
- package/dist/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
- package/dist/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
- package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
- package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
- package/docs/README.md +0 -31
- package/docs/agent-openapi-spec.yml +0 -942
- package/docs/openapi-extensions.md +0 -930
- package/docs/schemas/openapi-extensions.schema.json +0 -486
- package/openapi/gitlab-orchestrator.openapi.yaml +0 -330
- package/ossa-website-swarm-tasks.json +0 -105
- package/spec/v0.2.5-dev/CHANGELOG.md +0 -171
- package/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
- package/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
- package/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
- package/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
- package/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
- package/website/app/api/validate/route.ts +0 -88
- package/website/next.config.js +0 -17
- package/website/postcss.config.js +0 -7
- package/website/tailwind.config.js +0 -58
- /package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
- /package/openapi/{ossa-registry-api.openapi.yaml → core/ossa-registry-api.openapi.yaml} +0 -0
- /package/openapi/{drupal-agent-api.openapi.yaml → reference-implementations/drupal-agent-api.openapi.yaml} +0 -0
- /package/openapi/{helm-generator.openapi.yaml → reference-implementations/helm-generator.openapi.yaml} +0 -0
- /package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
- /package/website/content/docs/{examples.md → Examples.md} +0 -0
- /package/website/content/docs/core-concepts/{project-structure.md → Project-Structure.md} +0 -0
- /package/website/content/docs/migration-guides/{00-index.md → 00-INDEX.md} +0 -0
- /package/{docs/migration → website/content/docs/migration-guides}/migration-manifest.json +0 -0
|
@@ -1,18 +1,58 @@
|
|
|
1
1
|
import Link from 'next/link';
|
|
2
2
|
import { SchemaExplorer } from '@/components/schema/SchemaExplorer';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import { SchemaComponentsAccordion } from '@/components/schema/SchemaComponentsAccordion';
|
|
4
|
+
import { STABLE_VERSION, STABLE_VERSION_TAG, getSchemaPath } from '@/lib/version';
|
|
5
|
+
import { Logo } from '@/components/Logo';
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
|
|
9
|
+
// Get actual stable version from versions.json (not website package.json)
|
|
10
|
+
function getStableVersion(): string {
|
|
11
|
+
try {
|
|
12
|
+
const versionsPath = path.join(process.cwd(), 'lib', 'versions.json');
|
|
13
|
+
if (fs.existsSync(versionsPath)) {
|
|
14
|
+
const versions = JSON.parse(fs.readFileSync(versionsPath, 'utf8'));
|
|
15
|
+
return versions.stable || '0.2.4';
|
|
16
|
+
}
|
|
17
|
+
} catch (error) {
|
|
18
|
+
console.error('Error reading versions.json:', error);
|
|
19
|
+
}
|
|
20
|
+
// Fallback to 0.2.4 if versions.json not available
|
|
21
|
+
return '0.2.4';
|
|
22
|
+
}
|
|
7
23
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
24
|
+
// Try to load schema dynamically - fallback to stable version
|
|
25
|
+
function loadSchema(version?: string): any {
|
|
26
|
+
const stableVersion = version || getStableVersion();
|
|
27
|
+
try {
|
|
28
|
+
// Try to load from public/schemas first
|
|
29
|
+
const publicSchemaPath = path.join(process.cwd(), 'public', 'schemas', `ossa-${stableVersion}.schema.json`);
|
|
30
|
+
if (fs.existsSync(publicSchemaPath)) {
|
|
31
|
+
return JSON.parse(fs.readFileSync(publicSchemaPath, 'utf8'));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Fallback to spec directory
|
|
35
|
+
const specSchemaPath = path.join(process.cwd(), '..', 'spec', `v${stableVersion}`, `ossa-${stableVersion}.schema.json`);
|
|
36
|
+
if (fs.existsSync(specSchemaPath)) {
|
|
37
|
+
return JSON.parse(fs.readFileSync(specSchemaPath, 'utf8'));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Final fallback - try to require (for build time)
|
|
41
|
+
try {
|
|
42
|
+
return require(`../../public/schemas/ossa-${stableVersion}.schema.json`);
|
|
43
|
+
} catch {
|
|
44
|
+
// If all else fails, return null
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
} catch (error) {
|
|
48
|
+
console.error('Error loading schema:', error);
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
12
51
|
}
|
|
13
52
|
|
|
14
53
|
export default function SchemaPage() {
|
|
15
|
-
const
|
|
54
|
+
const stableVersion = getStableVersion();
|
|
55
|
+
const schema = loadSchema(stableVersion);
|
|
16
56
|
|
|
17
57
|
if (!schema) {
|
|
18
58
|
return (
|
|
@@ -28,7 +68,7 @@ export default function SchemaPage() {
|
|
|
28
68
|
return (
|
|
29
69
|
<>
|
|
30
70
|
{/* Hero Section */}
|
|
31
|
-
<div className="bg-gradient-to-br from-
|
|
71
|
+
<div className="bg-gradient-to-br from-secondary via-primary to-accent text-white py-16 px-4">
|
|
32
72
|
<div className="container mx-auto max-w-6xl text-center">
|
|
33
73
|
<div className="inline-flex items-center justify-center w-20 h-20 bg-white/20 backdrop-blur-sm rounded-full mb-6">
|
|
34
74
|
<svg className="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
@@ -40,7 +80,7 @@ export default function SchemaPage() {
|
|
|
40
80
|
Complete JSON Schema for defining portable, framework-agnostic AI agents
|
|
41
81
|
</p>
|
|
42
82
|
<p className="text-lg text-white/80">
|
|
43
|
-
Version
|
|
83
|
+
Version v{stableVersion} • The OpenAPI for AI Agents
|
|
44
84
|
</p>
|
|
45
85
|
</div>
|
|
46
86
|
</div>
|
|
@@ -50,7 +90,7 @@ export default function SchemaPage() {
|
|
|
50
90
|
<section className="mb-16">
|
|
51
91
|
<div className="bg-gradient-to-br from-amber-50 via-orange-50 to-yellow-50 rounded-2xl p-8 mb-8">
|
|
52
92
|
<div className="flex items-start mb-6">
|
|
53
|
-
<div className="w-12 h-12 bg-gradient-to-br from-primary to-
|
|
93
|
+
<div className="w-12 h-12 bg-gradient-to-br from-secondary via-primary to-accent rounded-lg flex items-center justify-center mr-4 flex-shrink-0">
|
|
54
94
|
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
55
95
|
<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
96
|
</svg>
|
|
@@ -80,7 +120,7 @@ export default function SchemaPage() {
|
|
|
80
120
|
{/* Schema Architecture Diagram */}
|
|
81
121
|
<section className="mb-16">
|
|
82
122
|
<div className="flex items-center mb-8">
|
|
83
|
-
<div className="w-12 h-12 bg-gradient-to-br from-primary to-
|
|
123
|
+
<div className="w-12 h-12 bg-gradient-to-br from-secondary via-primary to-accent rounded-lg flex items-center justify-center mr-4">
|
|
84
124
|
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
85
125
|
<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
126
|
</svg>
|
|
@@ -97,29 +137,42 @@ export default function SchemaPage() {
|
|
|
97
137
|
|
|
98
138
|
<div className="space-y-6">
|
|
99
139
|
{/* Root */}
|
|
100
|
-
<div className="bg-gradient-to-r from-primary to-
|
|
140
|
+
<div className="bg-gradient-to-r from-secondary via-primary to-accent text-white rounded-xl p-6 text-center shadow-md">
|
|
101
141
|
<div className="font-bold text-2xl mb-2">OSSA Agent Manifest</div>
|
|
102
142
|
<div className="text-base opacity-90">agent.yaml / agent.json</div>
|
|
103
143
|
</div>
|
|
104
144
|
|
|
105
145
|
{/* Top Level Fields */}
|
|
106
146
|
<div className="grid md:grid-cols-3 gap-6">
|
|
107
|
-
<div className="bg-blue-50 border-
|
|
108
|
-
<div className="font-bold text-
|
|
109
|
-
<div className="text-base text-gray-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
<div className="
|
|
147
|
+
<div className="bg-blue-50/50 border-2 border-blue-200 rounded-xl p-6 shadow-sm hover:shadow-md transition-shadow">
|
|
148
|
+
<div className="font-bold text-gray-900 mb-2 text-xl">apiVersion</div>
|
|
149
|
+
<div className="text-base text-gray-600 mb-3">Specifies the OSSA specification version</div>
|
|
150
|
+
<div className="text-lg text-gray-800 font-mono">ossa/v{stableVersion}</div>
|
|
151
|
+
</div>
|
|
152
|
+
<div className="bg-green-50/50 border-2 border-green-200 rounded-xl p-6 shadow-sm hover:shadow-md transition-shadow">
|
|
153
|
+
<div className="font-bold text-gray-900 mb-2 text-xl">kind</div>
|
|
154
|
+
<div className="text-base text-gray-600 mb-3">Resource type identifier that specifies what type of OSSA resource this manifest defines.</div>
|
|
155
|
+
<div className="text-lg text-gray-800 font-mono mb-3">Agent</div>
|
|
156
|
+
<div className="text-sm text-gray-700 space-y-2 pt-3 border-t border-green-200">
|
|
157
|
+
<p><strong className="text-gray-900">Agent</strong> is the primary resource type in OSSA. An Agent represents an autonomous AI system that can:</p>
|
|
158
|
+
<ul className="list-disc list-inside space-y-1 text-gray-600 ml-2">
|
|
159
|
+
<li>Process natural language instructions</li>
|
|
160
|
+
<li>Make decisions and take actions</li>
|
|
161
|
+
<li>Use tools and interact with external systems</li>
|
|
162
|
+
<li>Maintain context and state across interactions</li>
|
|
163
|
+
</ul>
|
|
164
|
+
<p className="text-gray-600">Think of an Agent as a reusable, portable definition of an AI assistant that can be deployed to any framework.</p>
|
|
165
|
+
</div>
|
|
114
166
|
</div>
|
|
115
|
-
<div className="bg-purple-50 border-
|
|
116
|
-
<div className="font-bold text-
|
|
117
|
-
<div className="text-
|
|
118
|
-
|
|
119
|
-
<div>•
|
|
120
|
-
<div>•
|
|
121
|
-
<div>•
|
|
122
|
-
<div>•
|
|
167
|
+
<div className="bg-purple-50/50 border-2 border-purple-200 rounded-xl p-6 shadow-sm hover:shadow-md transition-shadow">
|
|
168
|
+
<div className="font-bold text-gray-900 mb-2 text-xl">metadata</div>
|
|
169
|
+
<div className="text-base text-gray-600 mb-3">Agent identification and labeling</div>
|
|
170
|
+
<div className="text-base text-gray-700 space-y-1.5 mt-3">
|
|
171
|
+
<div>• name - Unique agent identifier</div>
|
|
172
|
+
<div>• version - Agent version number</div>
|
|
173
|
+
<div>• description - Human-readable description</div>
|
|
174
|
+
<div>• labels - Key-value metadata tags</div>
|
|
175
|
+
<div>• annotations - Additional metadata</div>
|
|
123
176
|
</div>
|
|
124
177
|
</div>
|
|
125
178
|
</div>
|
|
@@ -127,143 +180,158 @@ export default function SchemaPage() {
|
|
|
127
180
|
{/* Main Content: spec and extensions - STACKED */}
|
|
128
181
|
<div className="space-y-6">
|
|
129
182
|
{/* spec */}
|
|
130
|
-
<div className="bg-gradient-to-br from-
|
|
131
|
-
<div className="font-bold text-primary text-2xl mb-
|
|
183
|
+
<div className="bg-gradient-to-br from-blue-50/30 to-indigo-50/30 border-2 border-blue-200 rounded-xl p-6 shadow-md">
|
|
184
|
+
<div className="font-bold text-primary text-2xl mb-3">spec</div>
|
|
185
|
+
<div className="text-base text-gray-700 mb-6">Core agent configuration including behavior, capabilities, and operational settings.</div>
|
|
132
186
|
<div className="space-y-3">
|
|
133
187
|
{/* role */}
|
|
134
|
-
<div className="bg-white rounded-lg p-
|
|
135
|
-
<div className="font-
|
|
136
|
-
|
|
137
|
-
|
|
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">
|
|
188
|
+
<div className="bg-white rounded-lg p-5 border-2 border-gray-200 shadow-sm hover:shadow-md transition-all">
|
|
189
|
+
<div className="font-bold text-gray-900 text-lg mb-2">role</div>
|
|
190
|
+
<div className="text-base text-gray-700 mb-3">Defines the agent's system prompt and identity. This is the core instruction that tells the agent who it is and how it should behave.</div>
|
|
191
|
+
<div className="text-sm text-gray-600 bg-gray-50 rounded p-3 font-mono border border-gray-200">
|
|
140
192
|
type: string (multi-line)
|
|
141
193
|
</div>
|
|
142
194
|
</div>
|
|
143
195
|
|
|
144
196
|
{/* llm */}
|
|
145
|
-
<div className="bg-white rounded-lg p-
|
|
146
|
-
<div className="font-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
<
|
|
197
|
+
<div className="bg-white rounded-lg p-5 border-2 border-gray-200 shadow-sm hover:shadow-md transition-all">
|
|
198
|
+
<div className="font-bold text-gray-900 text-lg mb-2">llm</div>
|
|
199
|
+
<div className="text-base text-gray-700 mb-4">Configuration for the Large Language Model that powers the agent's reasoning and responses.</div>
|
|
200
|
+
<div className="grid grid-cols-2 gap-3 text-base text-gray-700">
|
|
201
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
202
|
+
<strong className="text-gray-900">provider</strong>
|
|
203
|
+
<div className="text-sm text-gray-600 mt-1">openai | anthropic | azure</div>
|
|
152
204
|
</div>
|
|
153
|
-
<div className="bg-
|
|
154
|
-
<strong>model</strong
|
|
205
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
206
|
+
<strong className="text-gray-900">model</strong>
|
|
207
|
+
<div className="text-sm text-gray-600 mt-1">gpt-4, claude-3, etc.</div>
|
|
155
208
|
</div>
|
|
156
|
-
<div className="bg-
|
|
157
|
-
<strong>temperature</strong
|
|
209
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
210
|
+
<strong className="text-gray-900">temperature</strong>
|
|
211
|
+
<div className="text-sm text-gray-600 mt-1">0.0 - 2.0 (creativity level)</div>
|
|
158
212
|
</div>
|
|
159
|
-
<div className="bg-
|
|
160
|
-
<strong>max_tokens</strong
|
|
213
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
214
|
+
<strong className="text-gray-900">max_tokens</strong>
|
|
215
|
+
<div className="text-sm text-gray-600 mt-1">Maximum response length</div>
|
|
161
216
|
</div>
|
|
162
217
|
</div>
|
|
163
218
|
</div>
|
|
164
219
|
|
|
165
220
|
{/* tools */}
|
|
166
|
-
<div className="bg-white rounded-lg p-
|
|
167
|
-
<div className="font-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
<
|
|
221
|
+
<div className="bg-white rounded-lg p-5 border-2 border-gray-200 shadow-sm hover:shadow-md transition-all">
|
|
222
|
+
<div className="font-bold text-gray-900 text-lg mb-2">tools</div>
|
|
223
|
+
<div className="text-base text-gray-700 mb-4">Capabilities the agent can use to interact with external systems and perform actions.</div>
|
|
224
|
+
<div className="text-base text-gray-700 space-y-2.5">
|
|
225
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3">
|
|
226
|
+
<strong className="text-gray-900">http</strong>
|
|
227
|
+
<div className="text-sm text-gray-600 mt-1">Make REST API calls to external services</div>
|
|
173
228
|
</div>
|
|
174
|
-
<div className="bg-
|
|
175
|
-
<strong>code</strong
|
|
229
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3">
|
|
230
|
+
<strong className="text-gray-900">code</strong>
|
|
231
|
+
<div className="text-sm text-gray-600 mt-1">Execute Python, JavaScript, or Shell scripts</div>
|
|
176
232
|
</div>
|
|
177
|
-
<div className="bg-
|
|
178
|
-
<strong>database</strong
|
|
233
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3">
|
|
234
|
+
<strong className="text-gray-900">database</strong>
|
|
235
|
+
<div className="text-sm text-gray-600 mt-1">Run SQL queries against databases</div>
|
|
179
236
|
</div>
|
|
180
|
-
<div className="bg-
|
|
181
|
-
<strong>file</strong
|
|
237
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3">
|
|
238
|
+
<strong className="text-gray-900">file</strong>
|
|
239
|
+
<div className="text-sm text-gray-600 mt-1">Read and write file system operations</div>
|
|
182
240
|
</div>
|
|
183
|
-
<div className="bg-
|
|
184
|
-
<strong>search</strong
|
|
241
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3">
|
|
242
|
+
<strong className="text-gray-900">search</strong>
|
|
243
|
+
<div className="text-sm text-gray-600 mt-1">Web search and vector similarity search</div>
|
|
185
244
|
</div>
|
|
186
245
|
</div>
|
|
187
246
|
</div>
|
|
188
247
|
|
|
189
248
|
{/* taxonomy */}
|
|
190
|
-
<div className="bg-white rounded-lg p-
|
|
191
|
-
<div className="font-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
<
|
|
249
|
+
<div className="bg-white rounded-lg p-5 border-2 border-gray-200 shadow-sm hover:shadow-md transition-all">
|
|
250
|
+
<div className="font-bold text-gray-900 text-lg mb-2">taxonomy</div>
|
|
251
|
+
<div className="text-base text-gray-700 mb-4">Categorization metadata for organizing and discovering agents across domains and use cases.</div>
|
|
252
|
+
<div className="grid grid-cols-2 gap-3 text-base">
|
|
253
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
254
|
+
<strong className="text-gray-900">domain</strong>
|
|
255
|
+
<div className="text-sm text-gray-600 mt-1">customer_service, engineering, etc.</div>
|
|
197
256
|
</div>
|
|
198
|
-
<div className="bg-
|
|
199
|
-
<strong>subdomain</strong
|
|
257
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
258
|
+
<strong className="text-gray-900">subdomain</strong>
|
|
259
|
+
<div className="text-sm text-gray-600 mt-1">technical_support, devops, etc.</div>
|
|
200
260
|
</div>
|
|
201
|
-
<div className="bg-
|
|
202
|
-
<strong>use_case</strong
|
|
261
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
262
|
+
<strong className="text-gray-900">use_case</strong>
|
|
263
|
+
<div className="text-sm text-gray-600 mt-1">troubleshooting, automation</div>
|
|
203
264
|
</div>
|
|
204
|
-
<div className="bg-
|
|
205
|
-
<strong>industry</strong
|
|
265
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
266
|
+
<strong className="text-gray-900">industry</strong>
|
|
267
|
+
<div className="text-sm text-gray-600 mt-1">saas, healthcare, finance</div>
|
|
206
268
|
</div>
|
|
207
269
|
</div>
|
|
208
270
|
</div>
|
|
209
271
|
|
|
210
272
|
{/* autonomy */}
|
|
211
|
-
<div className="bg-white rounded-lg p-
|
|
212
|
-
<div className="font-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
<
|
|
273
|
+
<div className="bg-white rounded-lg p-5 border-2 border-gray-200 shadow-sm hover:shadow-md transition-all">
|
|
274
|
+
<div className="font-bold text-gray-900 text-lg mb-2">autonomy</div>
|
|
275
|
+
<div className="text-base text-gray-700 mb-4">Controls how independently the agent can operate, from fully manual (L0) to fully autonomous (L5).</div>
|
|
276
|
+
<div className="space-y-2.5 text-base">
|
|
277
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3">
|
|
278
|
+
<strong className="text-gray-900">level</strong>
|
|
279
|
+
<div className="text-sm text-gray-600 mt-1">L0 (no autonomy) → L5 (full autonomy)</div>
|
|
218
280
|
</div>
|
|
219
|
-
<div className="bg-
|
|
220
|
-
<strong>approval_required</strong
|
|
281
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3">
|
|
282
|
+
<strong className="text-gray-900">approval_required</strong>
|
|
283
|
+
<div className="text-sm text-gray-600 mt-1">List of actions that require human approval before execution</div>
|
|
221
284
|
</div>
|
|
222
|
-
<div className="bg-
|
|
223
|
-
<strong>human_in_loop</strong
|
|
285
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3">
|
|
286
|
+
<strong className="text-gray-900">human_in_loop</strong>
|
|
287
|
+
<div className="text-sm text-gray-600 mt-1">Notification and escalation settings for human oversight</div>
|
|
224
288
|
</div>
|
|
225
289
|
</div>
|
|
226
290
|
</div>
|
|
227
291
|
|
|
228
292
|
{/* observability */}
|
|
229
|
-
<div className="bg-white rounded-lg p-
|
|
230
|
-
<div className="font-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
<div className="
|
|
236
|
-
<div className="text-gray-600">Logs & audit</div>
|
|
293
|
+
<div className="bg-white rounded-lg p-5 border-2 border-gray-200 shadow-sm hover:shadow-md transition-all">
|
|
294
|
+
<div className="font-bold text-gray-900 text-lg mb-2">observability</div>
|
|
295
|
+
<div className="text-base text-gray-700 mb-4">Monitoring and debugging capabilities for tracking agent behavior and performance.</div>
|
|
296
|
+
<div className="grid grid-cols-3 gap-3 text-base">
|
|
297
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200 text-center">
|
|
298
|
+
<div className="font-bold text-gray-900">logging</div>
|
|
299
|
+
<div className="text-sm text-gray-600 mt-1">Logs & audit trails</div>
|
|
237
300
|
</div>
|
|
238
|
-
<div className="bg-
|
|
239
|
-
<div className="font-bold">metrics</div>
|
|
240
|
-
<div className="text-gray-600">Performance</div>
|
|
301
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200 text-center">
|
|
302
|
+
<div className="font-bold text-gray-900">metrics</div>
|
|
303
|
+
<div className="text-sm text-gray-600 mt-1">Performance data</div>
|
|
241
304
|
</div>
|
|
242
|
-
<div className="bg-
|
|
243
|
-
<div className="font-bold">tracing</div>
|
|
244
|
-
<div className="text-gray-600">Execution paths</div>
|
|
305
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200 text-center">
|
|
306
|
+
<div className="font-bold text-gray-900">tracing</div>
|
|
307
|
+
<div className="text-sm text-gray-600 mt-1">Execution paths</div>
|
|
245
308
|
</div>
|
|
246
309
|
</div>
|
|
247
310
|
</div>
|
|
248
311
|
|
|
249
312
|
{/* constraints (additional) */}
|
|
250
|
-
<div className="bg-white rounded-lg p-
|
|
251
|
-
<div className="font-
|
|
252
|
-
|
|
253
|
-
<span className="
|
|
313
|
+
<div className="bg-white rounded-lg p-5 border-2 border-gray-200 shadow-sm hover:shadow-md transition-all">
|
|
314
|
+
<div className="font-bold text-gray-900 text-lg mb-2 flex items-center gap-2">
|
|
315
|
+
constraints
|
|
316
|
+
<span className="text-sm bg-gray-200 text-gray-700 px-2 py-1 rounded font-normal">Optional</span>
|
|
254
317
|
</div>
|
|
255
|
-
<div className="
|
|
256
|
-
|
|
257
|
-
|
|
318
|
+
<div className="text-base text-gray-700 mb-4">Resource limits and operational boundaries to ensure safe and controlled agent execution.</div>
|
|
319
|
+
<div className="grid grid-cols-2 gap-3 text-base">
|
|
320
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
321
|
+
<strong className="text-gray-900">cost</strong>
|
|
322
|
+
<div className="text-sm text-gray-600 mt-1">Budget and spending limits</div>
|
|
258
323
|
</div>
|
|
259
|
-
<div className="bg-
|
|
260
|
-
<strong>performance</strong
|
|
324
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
325
|
+
<strong className="text-gray-900">performance</strong>
|
|
326
|
+
<div className="text-sm text-gray-600 mt-1">Timeout and rate limiting</div>
|
|
261
327
|
</div>
|
|
262
|
-
<div className="bg-
|
|
263
|
-
<strong>resources</strong
|
|
328
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
329
|
+
<strong className="text-gray-900">resources</strong>
|
|
330
|
+
<div className="text-sm text-gray-600 mt-1">Memory and CPU constraints</div>
|
|
264
331
|
</div>
|
|
265
|
-
<div className="bg-
|
|
266
|
-
<strong>security</strong
|
|
332
|
+
<div className="bg-gray-50 rounded-lg p-3 border border-gray-200">
|
|
333
|
+
<strong className="text-gray-900">security</strong>
|
|
334
|
+
<div className="text-sm text-gray-600 mt-1">Access control and permissions</div>
|
|
267
335
|
</div>
|
|
268
336
|
</div>
|
|
269
337
|
</div>
|
|
@@ -271,26 +339,32 @@ export default function SchemaPage() {
|
|
|
271
339
|
</div>
|
|
272
340
|
|
|
273
341
|
{/* extensions */}
|
|
274
|
-
<div className="bg-gradient-to-br from-
|
|
275
|
-
<div className="font-bold text-secondary text-2xl mb-
|
|
276
|
-
<div className="text-base text-gray-
|
|
277
|
-
<div className="
|
|
278
|
-
|
|
279
|
-
<
|
|
280
|
-
<
|
|
281
|
-
<
|
|
282
|
-
<
|
|
283
|
-
<
|
|
284
|
-
<
|
|
285
|
-
<
|
|
286
|
-
<
|
|
287
|
-
<
|
|
288
|
-
<
|
|
289
|
-
<
|
|
290
|
-
<
|
|
291
|
-
<
|
|
292
|
-
<
|
|
293
|
-
<
|
|
342
|
+
<div className="bg-gradient-to-br from-purple-50/30 to-pink-50/30 border-2 border-purple-200 rounded-xl p-6 shadow-md">
|
|
343
|
+
<div className="font-bold text-secondary text-2xl mb-3">extensions</div>
|
|
344
|
+
<div className="text-base text-gray-700 mb-6">Optional framework-specific configurations that extend the core OSSA specification for platform-specific features.</div>
|
|
345
|
+
<div className="text-base text-gray-800 mb-6 font-semibold">Supported frameworks:</div>
|
|
346
|
+
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-6 gap-4">
|
|
347
|
+
<Logo domain="kagent.dev" name="kAgent" />
|
|
348
|
+
<Logo domain="langchain.com" name="LangChain" />
|
|
349
|
+
<Logo domain="crewai.com" name="CrewAI" />
|
|
350
|
+
<Logo domain="openai.com" name="OpenAI" />
|
|
351
|
+
<Logo domain="anthropic.com" name="Anthropic" />
|
|
352
|
+
<Logo domain="cursor.sh" name="Cursor" />
|
|
353
|
+
<Logo domain="langflow.com" name="Langflow" />
|
|
354
|
+
<Logo domain="microsoft.com" name="AutoGen" />
|
|
355
|
+
<Logo domain="vercel.com" name="Vercel AI" />
|
|
356
|
+
<Logo domain="llamaindex.ai" name="LlamaIndex" />
|
|
357
|
+
<Logo domain="langchain.com" name="LangGraph" />
|
|
358
|
+
<Logo domain="drupal.org" name="Drupal" />
|
|
359
|
+
<Logo domain="librechat.com" name="LibreChat" />
|
|
360
|
+
<Logo domain="modelcontextprotocol.io" name="MCP" />
|
|
361
|
+
<Logo domain="huggingface.co" name="Hugging Face" />
|
|
362
|
+
<Logo domain="google.com" name="Google" />
|
|
363
|
+
<Logo domain="aws.amazon.com" name="AWS" />
|
|
364
|
+
<Logo domain="azure.com" name="Azure" />
|
|
365
|
+
<Logo domain="github.com" name="GitHub" />
|
|
366
|
+
<Logo domain="docker.com" name="Docker" />
|
|
367
|
+
<Logo domain="kubernetes.io" name="Kubernetes" />
|
|
294
368
|
</div>
|
|
295
369
|
</div>
|
|
296
370
|
</div>
|
|
@@ -301,7 +375,7 @@ export default function SchemaPage() {
|
|
|
301
375
|
{/* Data Flow Diagram */}
|
|
302
376
|
<section className="mb-16">
|
|
303
377
|
<div className="flex items-center mb-8">
|
|
304
|
-
<div className="w-12 h-12 bg-gradient-to-br from-secondary
|
|
378
|
+
<div className="w-12 h-12 bg-gradient-to-br from-secondary via-primary to-accent rounded-lg flex items-center justify-center mr-4">
|
|
305
379
|
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
306
380
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
|
|
307
381
|
</svg>
|
|
@@ -381,124 +455,137 @@ export default function SchemaPage() {
|
|
|
381
455
|
</div>
|
|
382
456
|
|
|
383
457
|
{/* Visual Data Flow Diagram - Clean HTML/CSS Version */}
|
|
384
|
-
<div className="bg-gradient-to-br from-
|
|
385
|
-
<h3 className="text-2xl font-bold mb-
|
|
458
|
+
<div className="bg-gradient-to-br from-gray-50 to-gray-100 rounded-2xl p-8 border-2 border-gray-300">
|
|
459
|
+
<h3 className="text-2xl font-bold mb-4 text-center text-gray-900">Complete Agent Lifecycle</h3>
|
|
460
|
+
<p className="text-center text-gray-600 mb-8 text-base">From development to deployment across any framework</p>
|
|
386
461
|
|
|
387
462
|
<div className="space-y-6">
|
|
388
463
|
{/* Step 1: Developer */}
|
|
389
464
|
<div className="flex flex-col items-center">
|
|
390
|
-
<div className="bg-
|
|
391
|
-
<div className="text-lg font-bold mb-2"
|
|
392
|
-
<div className="text-base">Writes OSSA Manifest</div>
|
|
393
|
-
<div className="text-sm mt-2
|
|
465
|
+
<div className="bg-white border-2 border-gray-300 rounded-xl p-6 shadow-md w-full max-w-md text-center">
|
|
466
|
+
<div className="text-lg font-bold mb-2 text-gray-900">Developer</div>
|
|
467
|
+
<div className="text-base text-gray-700">Writes OSSA Manifest</div>
|
|
468
|
+
<div className="text-sm mt-2 text-gray-600 font-mono">agent.yaml</div>
|
|
394
469
|
</div>
|
|
395
|
-
<div className="w-
|
|
470
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
396
471
|
</div>
|
|
397
472
|
|
|
398
473
|
{/* Step 2: Validation */}
|
|
399
474
|
<div className="flex flex-col items-center">
|
|
400
475
|
<div className="grid md:grid-cols-2 gap-4 w-full max-w-4xl">
|
|
401
|
-
<div className="bg-
|
|
402
|
-
<div className="text-lg font-bold mb-2"
|
|
476
|
+
<div className="bg-gray-800 text-white rounded-xl p-6 shadow-lg">
|
|
477
|
+
<div className="text-lg font-bold mb-2">OSSA Schema Validator</div>
|
|
403
478
|
<div className="text-sm opacity-90">JSON Schema validation engine</div>
|
|
404
479
|
</div>
|
|
405
|
-
<div className="bg-white border-2 border-
|
|
406
|
-
<div className="text-base font-bold text-
|
|
407
|
-
<div className="space-y-
|
|
408
|
-
<div
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
480
|
+
<div className="bg-white border-2 border-gray-300 rounded-xl p-6 shadow-md">
|
|
481
|
+
<div className="text-base font-bold text-gray-900 mb-3">Validation Checks:</div>
|
|
482
|
+
<div className="space-y-2 text-sm text-gray-700">
|
|
483
|
+
<div className="flex items-center">
|
|
484
|
+
<span className="text-green-600 mr-2">✓</span>
|
|
485
|
+
<span>Required fields present</span>
|
|
486
|
+
</div>
|
|
487
|
+
<div className="flex items-center">
|
|
488
|
+
<span className="text-green-600 mr-2">✓</span>
|
|
489
|
+
<span>Correct types</span>
|
|
490
|
+
</div>
|
|
491
|
+
<div className="flex items-center">
|
|
492
|
+
<span className="text-green-600 mr-2">✓</span>
|
|
493
|
+
<span>Value constraints</span>
|
|
494
|
+
</div>
|
|
495
|
+
<div className="flex items-center">
|
|
496
|
+
<span className="text-green-600 mr-2">✓</span>
|
|
497
|
+
<span>Schema compliance</span>
|
|
498
|
+
</div>
|
|
412
499
|
</div>
|
|
413
500
|
</div>
|
|
414
501
|
</div>
|
|
415
|
-
<div className="w-
|
|
416
|
-
<div className="bg-
|
|
417
|
-
|
|
502
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
503
|
+
<div className="bg-gray-800 text-white px-6 py-2 rounded-full font-bold shadow-md">
|
|
504
|
+
Valid Manifest
|
|
418
505
|
</div>
|
|
419
|
-
<div className="w-
|
|
506
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
420
507
|
</div>
|
|
421
508
|
|
|
422
509
|
{/* Step 3: Framework Adapter Layer */}
|
|
423
510
|
<div className="flex flex-col items-center">
|
|
424
|
-
<div className="bg-
|
|
425
|
-
<div className="text-xl font-bold mb-2"
|
|
511
|
+
<div className="bg-gray-800 text-white rounded-xl p-6 shadow-lg w-full max-w-3xl text-center">
|
|
512
|
+
<div className="text-xl font-bold mb-2">Framework Adapter Layer</div>
|
|
426
513
|
<div className="text-base opacity-90">Converts OSSA → Framework-Specific Config</div>
|
|
427
514
|
</div>
|
|
428
515
|
<div className="flex space-x-2 mt-4">
|
|
429
|
-
<div className="w-
|
|
430
|
-
<div className="w-
|
|
431
|
-
<div className="w-
|
|
432
|
-
<div className="w-
|
|
516
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
517
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
518
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
519
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
433
520
|
</div>
|
|
434
521
|
</div>
|
|
435
522
|
|
|
436
523
|
{/* Step 4: Runtimes */}
|
|
437
524
|
<div className="flex flex-col items-center">
|
|
438
525
|
<div className="grid md:grid-cols-4 gap-4 w-full max-w-5xl">
|
|
439
|
-
<div className="bg-
|
|
440
|
-
<div className="text-base font-bold mb-2"
|
|
441
|
-
<div className="text-xs
|
|
526
|
+
<div className="bg-white border-2 border-gray-300 rounded-xl p-5 shadow-md text-center">
|
|
527
|
+
<div className="text-base font-bold mb-2 text-gray-900">kAgent</div>
|
|
528
|
+
<div className="text-xs text-gray-600">Runtime</div>
|
|
442
529
|
</div>
|
|
443
|
-
<div className="bg-
|
|
444
|
-
<div className="text-base font-bold mb-2"
|
|
445
|
-
<div className="text-xs
|
|
530
|
+
<div className="bg-white border-2 border-gray-300 rounded-xl p-5 shadow-md text-center">
|
|
531
|
+
<div className="text-base font-bold mb-2 text-gray-900">LangChain</div>
|
|
532
|
+
<div className="text-xs text-gray-600">Runtime</div>
|
|
446
533
|
</div>
|
|
447
|
-
<div className="bg-
|
|
448
|
-
<div className="text-base font-bold mb-2"
|
|
449
|
-
<div className="text-xs
|
|
534
|
+
<div className="bg-white border-2 border-gray-300 rounded-xl p-5 shadow-md text-center">
|
|
535
|
+
<div className="text-base font-bold mb-2 text-gray-900">CrewAI</div>
|
|
536
|
+
<div className="text-xs text-gray-600">Runtime</div>
|
|
450
537
|
</div>
|
|
451
|
-
<div className="bg-
|
|
452
|
-
<div className="text-base font-bold mb-2"
|
|
453
|
-
<div className="text-xs
|
|
538
|
+
<div className="bg-white border-2 border-gray-300 rounded-xl p-5 shadow-md text-center">
|
|
539
|
+
<div className="text-base font-bold mb-2 text-gray-900">OpenAI</div>
|
|
540
|
+
<div className="text-xs text-gray-600">Runtime</div>
|
|
454
541
|
</div>
|
|
455
542
|
</div>
|
|
456
543
|
<div className="flex justify-center mt-4 space-x-2">
|
|
457
|
-
<div className="w-
|
|
458
|
-
<div className="w-
|
|
459
|
-
<div className="w-
|
|
460
|
-
<div className="w-
|
|
544
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
545
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
546
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
547
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
461
548
|
</div>
|
|
462
549
|
</div>
|
|
463
550
|
|
|
464
551
|
{/* Step 5: Agent Execution */}
|
|
465
552
|
<div className="flex flex-col items-center">
|
|
466
|
-
<div className="bg-
|
|
467
|
-
<div className="text-xl font-bold mb-4 text-center"
|
|
468
|
-
<div className="grid grid-cols-3 gap-3 text-
|
|
469
|
-
<div className="bg-
|
|
470
|
-
<div className="font-bold mb-1"
|
|
471
|
-
<div className="text-
|
|
553
|
+
<div className="bg-white border-2 border-gray-300 rounded-xl p-6 shadow-md w-full max-w-2xl">
|
|
554
|
+
<div className="text-xl font-bold mb-4 text-center text-gray-900">Agent Execution</div>
|
|
555
|
+
<div className="grid grid-cols-3 gap-3 text-base">
|
|
556
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3 text-center">
|
|
557
|
+
<div className="font-bold mb-1 text-gray-900">LLM Calls</div>
|
|
558
|
+
<div className="text-sm text-gray-600">GPT-4, Claude, etc.</div>
|
|
472
559
|
</div>
|
|
473
|
-
<div className="bg-
|
|
474
|
-
<div className="font-bold mb-1"
|
|
475
|
-
<div className="text-
|
|
560
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3 text-center">
|
|
561
|
+
<div className="font-bold mb-1 text-gray-900">Tool Usage</div>
|
|
562
|
+
<div className="text-sm text-gray-600">APIs, Code, DB</div>
|
|
476
563
|
</div>
|
|
477
|
-
<div className="bg-
|
|
478
|
-
<div className="font-bold mb-1"
|
|
479
|
-
<div className="text-
|
|
564
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3 text-center">
|
|
565
|
+
<div className="font-bold mb-1 text-gray-900">Task Processing</div>
|
|
566
|
+
<div className="text-sm text-gray-600">Execute workflows</div>
|
|
480
567
|
</div>
|
|
481
568
|
</div>
|
|
482
569
|
</div>
|
|
483
|
-
<div className="w-
|
|
570
|
+
<div className="w-0.5 h-12 bg-gray-300"></div>
|
|
484
571
|
</div>
|
|
485
572
|
|
|
486
573
|
{/* Step 6: Observability */}
|
|
487
574
|
<div className="flex flex-col items-center">
|
|
488
|
-
<div className="bg-
|
|
489
|
-
<div className="text-xl font-bold mb-4 text-center"
|
|
490
|
-
<div className="grid grid-cols-3 gap-3 text-
|
|
491
|
-
<div className="bg-
|
|
492
|
-
<div className="font-bold mb-1"
|
|
493
|
-
<div className="text-
|
|
575
|
+
<div className="bg-white border-2 border-gray-300 rounded-xl p-6 shadow-md w-full max-w-2xl">
|
|
576
|
+
<div className="text-xl font-bold mb-4 text-center text-gray-900">Observability</div>
|
|
577
|
+
<div className="grid grid-cols-3 gap-3 text-base">
|
|
578
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3 text-center">
|
|
579
|
+
<div className="font-bold mb-1 text-gray-900">Logs</div>
|
|
580
|
+
<div className="text-sm text-gray-600">Debug & audit</div>
|
|
494
581
|
</div>
|
|
495
|
-
<div className="bg-
|
|
496
|
-
<div className="font-bold mb-1"
|
|
497
|
-
<div className="text-
|
|
582
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3 text-center">
|
|
583
|
+
<div className="font-bold mb-1 text-gray-900">Metrics</div>
|
|
584
|
+
<div className="text-sm text-gray-600">Performance data</div>
|
|
498
585
|
</div>
|
|
499
|
-
<div className="bg-
|
|
500
|
-
<div className="font-bold mb-1"
|
|
501
|
-
<div className="text-
|
|
586
|
+
<div className="bg-gray-50 border border-gray-200 rounded-lg p-3 text-center">
|
|
587
|
+
<div className="font-bold mb-1 text-gray-900">Traces</div>
|
|
588
|
+
<div className="text-sm text-gray-600">Execution paths</div>
|
|
502
589
|
</div>
|
|
503
590
|
</div>
|
|
504
591
|
</div>
|
|
@@ -509,8 +596,8 @@ export default function SchemaPage() {
|
|
|
509
596
|
|
|
510
597
|
{/* Core Components Breakdown */}
|
|
511
598
|
<section className="mb-16">
|
|
512
|
-
<div className="flex items-center mb-
|
|
513
|
-
<div className="w-12 h-12 bg-gradient-to-br from-primary to-
|
|
599
|
+
<div className="flex items-center mb-6">
|
|
600
|
+
<div className="w-12 h-12 bg-gradient-to-br from-secondary via-primary to-accent rounded-lg flex items-center justify-center mr-4">
|
|
514
601
|
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
515
602
|
<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
603
|
</svg>
|
|
@@ -518,51 +605,50 @@ export default function SchemaPage() {
|
|
|
518
605
|
<h2 className="text-3xl font-bold text-primary">Schema Components</h2>
|
|
519
606
|
</div>
|
|
520
607
|
|
|
521
|
-
<
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
608
|
+
<p className="text-lg text-gray-700 mb-8 max-w-4xl">
|
|
609
|
+
The OSSA schema is organized into core components that define every aspect of an AI agent.
|
|
610
|
+
Each component serves a specific purpose in creating portable, framework-agnostic agent definitions.
|
|
611
|
+
Click on any component below to learn more about its structure, purpose, and usage.
|
|
612
|
+
</p>
|
|
613
|
+
|
|
614
|
+
<SchemaComponentsAccordion
|
|
615
|
+
items={[
|
|
616
|
+
{
|
|
617
|
+
id: 'apiversion-kind',
|
|
618
|
+
title: 'apiVersion & kind',
|
|
619
|
+
borderColor: 'border-primary',
|
|
620
|
+
content: (
|
|
621
|
+
<div className="space-y-4">
|
|
531
622
|
<div>
|
|
532
|
-
<p className="font-semibold text-gray-900 mb-
|
|
623
|
+
<p className="font-semibold text-gray-900 mb-2">WHAT:</p>
|
|
533
624
|
<p className="text-gray-700">Version identifier and resource type for the manifest.</p>
|
|
534
625
|
</div>
|
|
535
626
|
<div>
|
|
536
|
-
<p className="font-semibold text-gray-900 mb-
|
|
627
|
+
<p className="font-semibold text-gray-900 mb-2">WHY:</p>
|
|
537
628
|
<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
629
|
</div>
|
|
539
630
|
<div>
|
|
540
|
-
<p className="font-semibold text-gray-900 mb-
|
|
541
|
-
<div className="bg-
|
|
542
|
-
<pre className="text-
|
|
631
|
+
<p className="font-semibold text-gray-900 mb-2">EXAMPLE:</p>
|
|
632
|
+
<div className="bg-gray-900 rounded-lg p-4 mt-2">
|
|
633
|
+
<pre className="text-green-400 text-sm font-mono"><code>{`apiVersion: ossa/v${stableVersion}
|
|
543
634
|
kind: Agent`}</code></pre>
|
|
544
635
|
</div>
|
|
545
636
|
</div>
|
|
546
637
|
</div>
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
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">
|
|
638
|
+
),
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
id: 'metadata',
|
|
642
|
+
title: 'metadata',
|
|
643
|
+
borderColor: 'border-secondary',
|
|
644
|
+
content: (
|
|
645
|
+
<div className="space-y-4">
|
|
560
646
|
<div>
|
|
561
|
-
<p className="font-semibold text-gray-900 mb-
|
|
647
|
+
<p className="font-semibold text-gray-900 mb-2">WHAT:</p>
|
|
562
648
|
<p className="text-gray-700">Identification and classification information: name, version, description, labels, annotations.</p>
|
|
563
649
|
</div>
|
|
564
650
|
<div>
|
|
565
|
-
<p className="font-semibold text-gray-900 mb-
|
|
651
|
+
<p className="font-semibold text-gray-900 mb-2">WHY:</p>
|
|
566
652
|
<p className="text-gray-700">
|
|
567
653
|
<strong>Discovery:</strong> Find agents by name/labels in catalogs.<br/>
|
|
568
654
|
<strong>Versioning:</strong> Track changes over time.<br/>
|
|
@@ -571,9 +657,9 @@ kind: Agent`}</code></pre>
|
|
|
571
657
|
</p>
|
|
572
658
|
</div>
|
|
573
659
|
<div>
|
|
574
|
-
<p className="font-semibold text-gray-900 mb-
|
|
575
|
-
<div className="bg-
|
|
576
|
-
<pre className="text-
|
|
660
|
+
<p className="font-semibold text-gray-900 mb-2">EXAMPLE:</p>
|
|
661
|
+
<div className="bg-gray-900 rounded-lg p-4 mt-2">
|
|
662
|
+
<pre className="text-green-400 text-sm font-mono"><code>{`metadata:
|
|
577
663
|
name: customer-support-agent
|
|
578
664
|
version: 2.1.0
|
|
579
665
|
description: Handles tier-1 support tickets with sentiment analysis
|
|
@@ -586,34 +672,29 @@ kind: Agent`}</code></pre>
|
|
|
586
672
|
</div>
|
|
587
673
|
</div>
|
|
588
674
|
</div>
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
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">
|
|
675
|
+
),
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
id: 'spec-role',
|
|
679
|
+
title: 'spec.role',
|
|
680
|
+
borderColor: 'border-primary',
|
|
681
|
+
content: (
|
|
682
|
+
<div className="space-y-4">
|
|
602
683
|
<div>
|
|
603
|
-
<p className="font-semibold text-gray-900 mb-
|
|
684
|
+
<p className="font-semibold text-gray-900 mb-2">WHAT:</p>
|
|
604
685
|
<p className="text-gray-700">The system prompt / role definition that guides the agent's behavior and personality.</p>
|
|
605
686
|
</div>
|
|
606
687
|
<div>
|
|
607
|
-
<p className="font-semibold text-gray-900 mb-
|
|
688
|
+
<p className="font-semibold text-gray-900 mb-2">WHY:</p>
|
|
608
689
|
<p className="text-gray-700">
|
|
609
690
|
Defines <strong>who</strong> the agent is, <strong>what</strong> it can do, and <strong>how</strong> it should behave.
|
|
610
691
|
This is the agent's identity and primary instruction set that shapes all interactions.
|
|
611
692
|
</p>
|
|
612
693
|
</div>
|
|
613
694
|
<div>
|
|
614
|
-
<p className="font-semibold text-gray-900 mb-
|
|
615
|
-
<div className="bg-
|
|
616
|
-
<pre className="text-
|
|
695
|
+
<p className="font-semibold text-gray-900 mb-2">EXAMPLE:</p>
|
|
696
|
+
<div className="bg-gray-900 rounded-lg p-4 mt-2">
|
|
697
|
+
<pre className="text-green-400 text-sm font-mono"><code>{`spec:
|
|
617
698
|
role: |
|
|
618
699
|
You are a senior software architect specializing in distributed systems.
|
|
619
700
|
Your role is to review code for scalability, security, and best practices.
|
|
@@ -622,25 +703,20 @@ kind: Agent`}</code></pre>
|
|
|
622
703
|
</div>
|
|
623
704
|
</div>
|
|
624
705
|
</div>
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
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">
|
|
706
|
+
),
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
id: 'spec-llm',
|
|
710
|
+
title: 'spec.llm',
|
|
711
|
+
borderColor: 'border-secondary',
|
|
712
|
+
content: (
|
|
713
|
+
<div className="space-y-4">
|
|
638
714
|
<div>
|
|
639
|
-
<p className="font-semibold text-gray-900 mb-
|
|
715
|
+
<p className="font-semibold text-gray-900 mb-2">WHAT:</p>
|
|
640
716
|
<p className="text-gray-700">LLM provider configuration: model, temperature, max_tokens, top_p, and other parameters.</p>
|
|
641
717
|
</div>
|
|
642
718
|
<div>
|
|
643
|
-
<p className="font-semibold text-gray-900 mb-
|
|
719
|
+
<p className="font-semibold text-gray-900 mb-2">WHY:</p>
|
|
644
720
|
<p className="text-gray-700">
|
|
645
721
|
<strong>Portability:</strong> Switch from OpenAI to Anthropic without changing agent logic.<br/>
|
|
646
722
|
<strong>Optimization:</strong> Tune temperature for creativity vs consistency.<br/>
|
|
@@ -649,9 +725,9 @@ kind: Agent`}</code></pre>
|
|
|
649
725
|
</p>
|
|
650
726
|
</div>
|
|
651
727
|
<div>
|
|
652
|
-
<p className="font-semibold text-gray-900 mb-
|
|
653
|
-
<div className="bg-
|
|
654
|
-
<pre className="text-
|
|
728
|
+
<p className="font-semibold text-gray-900 mb-2">EXAMPLE:</p>
|
|
729
|
+
<div className="bg-gray-900 rounded-lg p-4 mt-2">
|
|
730
|
+
<pre className="text-green-400 text-sm font-mono"><code>{`spec:
|
|
655
731
|
llm:
|
|
656
732
|
provider: openai
|
|
657
733
|
model: gpt-4-turbo
|
|
@@ -663,25 +739,20 @@ kind: Agent`}</code></pre>
|
|
|
663
739
|
</div>
|
|
664
740
|
</div>
|
|
665
741
|
</div>
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
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">
|
|
742
|
+
),
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
id: 'spec-tools',
|
|
746
|
+
title: 'spec.tools',
|
|
747
|
+
borderColor: 'border-primary',
|
|
748
|
+
content: (
|
|
749
|
+
<div className="space-y-4">
|
|
679
750
|
<div>
|
|
680
|
-
<p className="font-semibold text-gray-900 mb-
|
|
751
|
+
<p className="font-semibold text-gray-900 mb-2">WHAT:</p>
|
|
681
752
|
<p className="text-gray-700">Array of tools/functions the agent can call: HTTP APIs, code execution, database queries, file operations, etc.</p>
|
|
682
753
|
</div>
|
|
683
754
|
<div>
|
|
684
|
-
<p className="font-semibold text-gray-900 mb-
|
|
755
|
+
<p className="font-semibold text-gray-900 mb-2">WHY:</p>
|
|
685
756
|
<p className="text-gray-700">
|
|
686
757
|
Agents need to <strong>take action</strong>, not just respond with text. Tools enable agents to:
|
|
687
758
|
interact with APIs, query databases, run code, search the web, manipulate files, and integrate with external systems.
|
|
@@ -689,7 +760,7 @@ kind: Agent`}</code></pre>
|
|
|
689
760
|
</p>
|
|
690
761
|
</div>
|
|
691
762
|
<div>
|
|
692
|
-
<p className="font-semibold text-gray-900 mb-
|
|
763
|
+
<p className="font-semibold text-gray-900 mb-2">TYPES:</p>
|
|
693
764
|
<ul className="list-disc list-inside text-gray-700 space-y-1 ml-4">
|
|
694
765
|
<li><strong>http:</strong> REST API calls</li>
|
|
695
766
|
<li><strong>code:</strong> Execute Python/JS/etc</li>
|
|
@@ -700,9 +771,9 @@ kind: Agent`}</code></pre>
|
|
|
700
771
|
</ul>
|
|
701
772
|
</div>
|
|
702
773
|
<div>
|
|
703
|
-
<p className="font-semibold text-gray-900 mb-
|
|
704
|
-
<div className="bg-
|
|
705
|
-
<pre className="text-
|
|
774
|
+
<p className="font-semibold text-gray-900 mb-2">EXAMPLE:</p>
|
|
775
|
+
<div className="bg-gray-900 rounded-lg p-4 mt-2">
|
|
776
|
+
<pre className="text-green-400 text-sm font-mono"><code>{`spec:
|
|
706
777
|
tools:
|
|
707
778
|
- type: http
|
|
708
779
|
name: search_issues
|
|
@@ -719,25 +790,20 @@ kind: Agent`}</code></pre>
|
|
|
719
790
|
</div>
|
|
720
791
|
</div>
|
|
721
792
|
</div>
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
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">
|
|
793
|
+
),
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
id: 'spec-taxonomy',
|
|
797
|
+
title: 'spec.taxonomy',
|
|
798
|
+
borderColor: 'border-secondary',
|
|
799
|
+
content: (
|
|
800
|
+
<div className="space-y-4">
|
|
735
801
|
<div>
|
|
736
|
-
<p className="font-semibold text-gray-900 mb-
|
|
802
|
+
<p className="font-semibold text-gray-900 mb-2">WHAT:</p>
|
|
737
803
|
<p className="text-gray-700">Classification of agent purpose: domain, subdomain, use_case, and industry.</p>
|
|
738
804
|
</div>
|
|
739
805
|
<div>
|
|
740
|
-
<p className="font-semibold text-gray-900 mb-
|
|
806
|
+
<p className="font-semibold text-gray-900 mb-2">WHY:</p>
|
|
741
807
|
<p className="text-gray-700">
|
|
742
808
|
<strong>Discoverability:</strong> Find agents for specific use cases in catalogs.<br/>
|
|
743
809
|
<strong>Organization:</strong> Group similar agents together.<br/>
|
|
@@ -746,9 +812,9 @@ kind: Agent`}</code></pre>
|
|
|
746
812
|
</p>
|
|
747
813
|
</div>
|
|
748
814
|
<div>
|
|
749
|
-
<p className="font-semibold text-gray-900 mb-
|
|
750
|
-
<div className="bg-
|
|
751
|
-
<pre className="text-
|
|
815
|
+
<p className="font-semibold text-gray-900 mb-2">EXAMPLE:</p>
|
|
816
|
+
<div className="bg-gray-900 rounded-lg p-4 mt-2">
|
|
817
|
+
<pre className="text-green-400 text-sm font-mono"><code>{`spec:
|
|
752
818
|
taxonomy:
|
|
753
819
|
domain: customer_service
|
|
754
820
|
subdomain: technical_support
|
|
@@ -758,25 +824,20 @@ kind: Agent`}</code></pre>
|
|
|
758
824
|
</div>
|
|
759
825
|
</div>
|
|
760
826
|
</div>
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
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">
|
|
827
|
+
),
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
id: 'spec-autonomy',
|
|
831
|
+
title: 'spec.autonomy',
|
|
832
|
+
borderColor: 'border-primary',
|
|
833
|
+
content: (
|
|
834
|
+
<div className="space-y-4">
|
|
774
835
|
<div>
|
|
775
|
-
<p className="font-semibold text-gray-900 mb-
|
|
836
|
+
<p className="font-semibold text-gray-900 mb-2">WHAT:</p>
|
|
776
837
|
<p className="text-gray-700">Defines how much independence the agent has: level (L0-L5), approval_required, human_in_loop settings.</p>
|
|
777
838
|
</div>
|
|
778
839
|
<div>
|
|
779
|
-
<p className="font-semibold text-gray-900 mb-
|
|
840
|
+
<p className="font-semibold text-gray-900 mb-2">WHY:</p>
|
|
780
841
|
<p className="text-gray-700">
|
|
781
842
|
<strong>Safety:</strong> Prevent agents from taking destructive actions without oversight.<br/>
|
|
782
843
|
<strong>Compliance:</strong> Require approvals for regulated operations.<br/>
|
|
@@ -785,7 +846,7 @@ kind: Agent`}</code></pre>
|
|
|
785
846
|
</p>
|
|
786
847
|
</div>
|
|
787
848
|
<div>
|
|
788
|
-
<p className="font-semibold text-gray-900 mb-
|
|
849
|
+
<p className="font-semibold text-gray-900 mb-2">LEVELS:</p>
|
|
789
850
|
<ul className="list-disc list-inside text-gray-700 space-y-1 ml-4">
|
|
790
851
|
<li><strong>L0:</strong> No autonomy (human controls everything)</li>
|
|
791
852
|
<li><strong>L1:</strong> Suggestions only (human approves all actions)</li>
|
|
@@ -796,9 +857,9 @@ kind: Agent`}</code></pre>
|
|
|
796
857
|
</ul>
|
|
797
858
|
</div>
|
|
798
859
|
<div>
|
|
799
|
-
<p className="font-semibold text-gray-900 mb-
|
|
800
|
-
<div className="bg-
|
|
801
|
-
<pre className="text-
|
|
860
|
+
<p className="font-semibold text-gray-900 mb-2">EXAMPLE:</p>
|
|
861
|
+
<div className="bg-gray-900 rounded-lg p-4 mt-2">
|
|
862
|
+
<pre className="text-green-400 text-sm font-mono"><code>{`spec:
|
|
802
863
|
autonomy:
|
|
803
864
|
level: L2
|
|
804
865
|
approval_required:
|
|
@@ -811,25 +872,20 @@ kind: Agent`}</code></pre>
|
|
|
811
872
|
</div>
|
|
812
873
|
</div>
|
|
813
874
|
</div>
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
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">
|
|
875
|
+
),
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
id: 'spec-observability',
|
|
879
|
+
title: 'spec.observability',
|
|
880
|
+
borderColor: 'border-secondary',
|
|
881
|
+
content: (
|
|
882
|
+
<div className="space-y-4">
|
|
827
883
|
<div>
|
|
828
|
-
<p className="font-semibold text-gray-900 mb-
|
|
884
|
+
<p className="font-semibold text-gray-900 mb-2">WHAT:</p>
|
|
829
885
|
<p className="text-gray-700">Logging, metrics, and tracing configuration for monitoring agent behavior.</p>
|
|
830
886
|
</div>
|
|
831
887
|
<div>
|
|
832
|
-
<p className="font-semibold text-gray-900 mb-
|
|
888
|
+
<p className="font-semibold text-gray-900 mb-2">WHY:</p>
|
|
833
889
|
<p className="text-gray-700">
|
|
834
890
|
<strong>Debugging:</strong> Understand what went wrong when agents fail.<br/>
|
|
835
891
|
<strong>Performance:</strong> Track response times, token usage, costs.<br/>
|
|
@@ -838,9 +894,9 @@ kind: Agent`}</code></pre>
|
|
|
838
894
|
</p>
|
|
839
895
|
</div>
|
|
840
896
|
<div>
|
|
841
|
-
<p className="font-semibold text-gray-900 mb-
|
|
842
|
-
<div className="bg-
|
|
843
|
-
<pre className="text-
|
|
897
|
+
<p className="font-semibold text-gray-900 mb-2">EXAMPLE:</p>
|
|
898
|
+
<div className="bg-gray-900 rounded-lg p-4 mt-2">
|
|
899
|
+
<pre className="text-green-400 text-sm font-mono"><code>{`spec:
|
|
844
900
|
observability:
|
|
845
901
|
logging:
|
|
846
902
|
level: info
|
|
@@ -856,25 +912,20 @@ kind: Agent`}</code></pre>
|
|
|
856
912
|
</div>
|
|
857
913
|
</div>
|
|
858
914
|
</div>
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
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">
|
|
915
|
+
),
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
id: 'extensions',
|
|
919
|
+
title: 'extensions',
|
|
920
|
+
borderColor: 'border-primary',
|
|
921
|
+
content: (
|
|
922
|
+
<div className="space-y-4">
|
|
872
923
|
<div>
|
|
873
|
-
<p className="font-semibold text-gray-900 mb-
|
|
924
|
+
<p className="font-semibold text-gray-900 mb-2">WHAT:</p>
|
|
874
925
|
<p className="text-gray-700">Framework-specific configuration blocks: kagent, buildkit, langchain, crewai, openai, anthropic, cursor, langflow, autogen, etc.</p>
|
|
875
926
|
</div>
|
|
876
927
|
<div>
|
|
877
|
-
<p className="font-semibold text-gray-900 mb-
|
|
928
|
+
<p className="font-semibold text-gray-900 mb-2">WHY:</p>
|
|
878
929
|
<p className="text-gray-700">
|
|
879
930
|
While OSSA provides a <strong>common core</strong>, each framework has unique features. Extensions allow you to:
|
|
880
931
|
leverage framework-specific capabilities, maintain compatibility with existing code, and gradually migrate from proprietary formats.
|
|
@@ -882,29 +933,9 @@ kind: Agent`}</code></pre>
|
|
|
882
933
|
</p>
|
|
883
934
|
</div>
|
|
884
935
|
<div>
|
|
885
|
-
<p className="font-semibold text-gray-900 mb-
|
|
886
|
-
<div className="
|
|
887
|
-
<
|
|
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:
|
|
936
|
+
<p className="font-semibold text-gray-900 mb-2">EXAMPLE:</p>
|
|
937
|
+
<div className="bg-gray-900 rounded-lg p-4 mt-2">
|
|
938
|
+
<pre className="text-green-400 text-sm font-mono"><code>{`extensions:
|
|
908
939
|
kagent:
|
|
909
940
|
mesh_discovery: true
|
|
910
941
|
routing_strategy: round_robin
|
|
@@ -919,16 +950,16 @@ kind: Agent`}</code></pre>
|
|
|
919
950
|
</div>
|
|
920
951
|
</div>
|
|
921
952
|
</div>
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
953
|
+
),
|
|
954
|
+
},
|
|
955
|
+
]}
|
|
956
|
+
/>
|
|
926
957
|
</section>
|
|
927
958
|
|
|
928
959
|
{/* Interactive Schema Explorer */}
|
|
929
960
|
<section className="mb-16">
|
|
930
961
|
<div className="flex items-center mb-8">
|
|
931
|
-
<div className="w-12 h-12 bg-gradient-to-br from-primary to-
|
|
962
|
+
<div className="w-12 h-12 bg-gradient-to-br from-secondary via-primary to-accent rounded-lg flex items-center justify-center mr-4">
|
|
932
963
|
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
933
964
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
|
|
934
965
|
</svg>
|