@bluefly/openstandardagents 0.2.7 → 0.2.9

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.
Files changed (327) hide show
  1. package/.devfile.yaml +1 -1
  2. package/.env.example +1 -1
  3. package/.github/AGENTS.md +245 -0
  4. package/.github/agents/github-issue-triage.ossa.yaml +99 -0
  5. package/.github/agents/github-pr-triage.ossa.yaml +137 -0
  6. package/.github/workflows/issue-sync-to-gitlab.yml +138 -0
  7. package/.github/workflows/pr-triage-to-gitlab.yml +164 -0
  8. package/.version.json +2 -2
  9. package/.wiki-config.json +24 -0
  10. package/CHANGELOG.md +44 -18
  11. package/CODEOWNERS +75 -0
  12. package/CONTRIBUTING.md +103 -4
  13. package/README.md +178 -243
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/repositories/schema.repository.d.ts +6 -1
  19. package/dist/repositories/schema.repository.d.ts.map +1 -1
  20. package/dist/repositories/schema.repository.js +49 -27
  21. package/dist/repositories/schema.repository.js.map +1 -1
  22. package/dist/services/migration.service.d.ts +4 -3
  23. package/dist/services/migration.service.d.ts.map +1 -1
  24. package/dist/services/migration.service.js +11 -10
  25. package/dist/services/migration.service.js.map +1 -1
  26. package/dist/services/release-automation/release.service.js +1 -1
  27. package/dist/services/release-automation/release.service.js.map +1 -1
  28. package/dist/services/release-automation/schemas/release.schema.js +1 -1
  29. package/dist/services/release-automation/webhook.service.js +3 -3
  30. package/dist/services/release-automation/webhook.service.js.map +1 -1
  31. package/dist/services/runtime/claude/claude-adapter.d.ts +1 -1
  32. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
  33. package/dist/services/runtime/claude/claude-adapter.js +2 -2
  34. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  35. package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
  36. package/dist/spec/v0.2.8/README.md +72 -0
  37. package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  38. package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  39. package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  40. package/{spec/v0.2.6-dev/ossa-0.2.5.schema.json → dist/spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  41. package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  42. package/dist/spec/v0.2.9/a2a-protocol.md +1337 -0
  43. package/dist/spec/v0.2.9/agent.md +1946 -0
  44. package/dist/spec/v0.2.9/capabilities/index.yaml +25 -0
  45. package/dist/spec/v0.2.9/capabilities/memory.yaml +251 -0
  46. package/dist/spec/v0.2.9/capability-schema.md +576 -0
  47. package/dist/spec/v0.2.9/compliance-profiles.md +533 -0
  48. package/dist/spec/v0.2.9/conformance-testing.md +1527 -0
  49. package/dist/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  50. package/dist/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  51. package/dist/spec/v0.2.9/runtime-semantics.md +464 -0
  52. package/dist/spec/v0.2.9/security-model.md +1245 -0
  53. package/dist/spec/v0.2.9/semantic-conventions.md +347 -0
  54. package/dist/spec/v0.2.9/types.ts +522 -0
  55. package/dist/types/index.d.ts +3 -2
  56. package/dist/types/index.d.ts.map +1 -1
  57. package/dist/types/policy.d.ts +377 -0
  58. package/dist/types/policy.d.ts.map +1 -0
  59. package/dist/types/policy.js +84 -0
  60. package/dist/types/policy.js.map +1 -0
  61. package/dist/utils/index.d.ts +6 -0
  62. package/dist/utils/index.d.ts.map +1 -0
  63. package/dist/utils/index.js +6 -0
  64. package/dist/utils/index.js.map +1 -0
  65. package/dist/utils/version.d.ts +68 -0
  66. package/dist/utils/version.d.ts.map +1 -0
  67. package/dist/utils/version.js +156 -0
  68. package/dist/utils/version.js.map +1 -0
  69. package/docs/specs/policy-dsl.md +925 -0
  70. package/eslint-report.json +1 -0
  71. package/examples/adk-integration/code-review-workflow.yml +1 -1
  72. package/examples/adk-integration/customer-support.yml +1 -1
  73. package/examples/adk-integration/data-pipeline.yml +1 -1
  74. package/examples/advanced/reasoning-agent.yaml +136 -0
  75. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  76. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  77. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  78. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  79. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  80. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  81. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  82. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  83. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  84. package/examples/agents-md/code-agent.ossa.json +100 -0
  85. package/examples/agents-md/monorepo-agent.ossa.yaml +180 -0
  86. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  87. package/examples/autogen/multi-agent.ossa.json +1 -1
  88. package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
  89. package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
  90. package/examples/common_npm/agent-router.ossa.yaml +1 -0
  91. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  92. package/examples/crewai/research-team.ossa.json +1 -1
  93. package/examples/cursor/code-review-agent.ossa.json +1 -1
  94. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
  95. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  96. package/examples/extensions/agents-md-v1.yml +175 -0
  97. package/examples/extensions/drupal-v1.yml +1 -1
  98. package/examples/extensions/kagent-v1.yml +1 -1
  99. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  100. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  101. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  102. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  103. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  104. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
  105. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  106. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  107. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  108. package/examples/langchain/chain-agent.ossa.json +1 -1
  109. package/examples/langflow/workflow-agent.ossa.json +1 -1
  110. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  111. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  112. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  113. package/examples/multi-agent/README.md +74 -0
  114. package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
  115. package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
  116. package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
  117. package/examples/openai/basic-agent.ossa.yaml +1 -1
  118. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  119. package/examples/openai/swarm-agent.ossa.json +1 -1
  120. package/examples/production/document-analyzer-openai.yml +1 -1
  121. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  122. package/examples/spec-examples/audit-agent.yml +1 -1
  123. package/examples/spec-examples/chat-agent.yml +1 -1
  124. package/examples/spec-examples/compliance-agent.yml +1 -1
  125. package/examples/spec-examples/monitoring-agent.yml +1 -1
  126. package/examples/spec-examples/workflow-agent.yml +1 -1
  127. package/examples/templates/ossa-compliance.yaml +1 -1
  128. package/examples/vercel/edge-agent.ossa.json +1 -1
  129. package/gl-code-quality-report.json +62 -0
  130. package/llms-ctx-full.txt +39 -0
  131. package/llms-ctx.txt +39 -0
  132. package/llms.txt +47 -0
  133. package/package.json +6 -3
  134. package/scripts/README.md +25 -0
  135. package/scripts/compliance-audit.ts +796 -0
  136. package/scripts/eslint-to-codequality.cjs +34 -0
  137. package/scripts/generate-agents-catalog.ts +2 -1
  138. package/scripts/generate-api-docs.ts +2 -1
  139. package/scripts/generate-examples-docs.ts +2 -1
  140. package/scripts/generate-llms-ctx.sh +17 -0
  141. package/scripts/generate-schema-docs.ts +31 -10
  142. package/scripts/sync-version.js +4 -12
  143. package/scripts/validate-schema.ts +2 -1
  144. package/spec/v0.2.8/CHANGELOG.md +401 -0
  145. package/spec/v0.2.8/README.md +72 -0
  146. package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  147. package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  148. package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  149. package/spec/{v0.2.6-dev/ossa-0.2.6-dev.schema.json → v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  150. package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  151. package/spec/v0.2.9/a2a-protocol.md +1337 -0
  152. package/spec/v0.2.9/agent.md +1946 -0
  153. package/spec/v0.2.9/capabilities/index.yaml +25 -0
  154. package/spec/v0.2.9/capabilities/memory.yaml +251 -0
  155. package/spec/v0.2.9/capability-schema.md +576 -0
  156. package/spec/v0.2.9/compliance-profiles.md +533 -0
  157. package/spec/v0.2.9/conformance-testing.md +1527 -0
  158. package/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  159. package/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  160. package/spec/v0.2.9/runtime-semantics.md +464 -0
  161. package/spec/v0.2.9/security-model.md +1245 -0
  162. package/spec/v0.2.9/semantic-conventions.md +347 -0
  163. package/spec/v0.2.9/types.ts +522 -0
  164. package/test-results/junit.xml +337 -0
  165. package/.github/workflows/pr-comment.yml +0 -33
  166. package/bin/validate-ossa-0.2.5-RC.ts +0 -244
  167. package/dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json +0 -1696
  168. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  169. package/scripts/lib/exec.ts +0 -37
  170. package/scripts/lib/file-ops.ts +0 -58
  171. package/scripts/lib/version.ts +0 -83
  172. package/website/.lighthouserc.ts +0 -24
  173. package/website/.prettierrc +0 -10
  174. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
  175. package/website/Dockerfile +0 -30
  176. package/website/app/about/page.tsx +0 -304
  177. package/website/app/blog/[slug]/page.tsx +0 -208
  178. package/website/app/blog/page.tsx +0 -249
  179. package/website/app/design-guide/page.tsx +0 -511
  180. package/website/app/docs/[[...slug]]/page.tsx +0 -847
  181. package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
  182. package/website/app/ecosystem/page.tsx +0 -410
  183. package/website/app/examples/page.tsx +0 -133
  184. package/website/app/globals.scss +0 -370
  185. package/website/app/layout.tsx +0 -106
  186. package/website/app/license/page.tsx +0 -183
  187. package/website/app/not-found.tsx +0 -18
  188. package/website/app/page.tsx +0 -686
  189. package/website/app/page.tsx.bak +0 -679
  190. package/website/app/page.tsx.bak2 +0 -649
  191. package/website/app/playground/page.tsx +0 -487
  192. package/website/app/robots.ts +0 -19
  193. package/website/app/rss.xml/route.ts +0 -74
  194. package/website/app/schema/page.tsx +0 -1001
  195. package/website/app/sitemap.ts +0 -56
  196. package/website/app/specification/page.tsx +0 -287
  197. package/website/components/InstallCommand.tsx +0 -96
  198. package/website/components/Logo.tsx +0 -97
  199. package/website/components/StructuredData.tsx +0 -65
  200. package/website/components/docs/DocsSearch.tsx +0 -104
  201. package/website/components/docs/DocsSidebar.tsx +0 -155
  202. package/website/components/docs/MarkdownContent.tsx +0 -401
  203. package/website/components/docs/VersionSelector.tsx +0 -105
  204. package/website/components/examples/ExamplesViewer.tsx +0 -293
  205. package/website/components/layout/Footer.tsx +0 -116
  206. package/website/components/layout/Header.tsx +0 -172
  207. package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
  208. package/website/components/schema/SchemaExplorer.tsx +0 -213
  209. package/website/components/ui/Badge.tsx +0 -82
  210. package/website/components/ui/Button.tsx +0 -116
  211. package/website/components/ui/Card.tsx +0 -167
  212. package/website/components/ui/Checkbox.tsx +0 -141
  213. package/website/components/ui/Input.tsx +0 -169
  214. package/website/components/ui/Radio.tsx +0 -141
  215. package/website/components/ui/Select.tsx +0 -182
  216. package/website/components/ui/Tag.tsx +0 -158
  217. package/website/components/ui/Textarea.tsx +0 -195
  218. package/website/components/ui/index.ts +0 -11
  219. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
  220. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
  221. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
  222. package/website/content/blog/introducing-ossa-framework.md +0 -328
  223. package/website/content/blog/ossa-production-results.md +0 -279
  224. package/website/content/blog/welcome-to-ossa.md +0 -43
  225. package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
  226. package/website/content/docs/00-home.md +0 -153
  227. package/website/content/docs/adapters/openai-adapter.md +0 -693
  228. package/website/content/docs/agents/catalog.md +0 -28
  229. package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
  230. package/website/content/docs/api-reference/index.md +0 -38
  231. package/website/content/docs/api-reference/ossa-core-api.md +0 -634
  232. package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
  233. package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
  234. package/website/content/docs/architecture/execution-flow.md +0 -335
  235. package/website/content/docs/architecture/multi-agent-systems.md +0 -737
  236. package/website/content/docs/architecture/overview.md +0 -121
  237. package/website/content/docs/architecture/stack-integration.md +0 -461
  238. package/website/content/docs/changelog.md +0 -246
  239. package/website/content/docs/cli-reference/index.md +0 -111
  240. package/website/content/docs/cli-reference/ossa-agents.md +0 -70
  241. package/website/content/docs/cli-reference/ossa-export.md +0 -56
  242. package/website/content/docs/cli-reference/ossa-generate.md +0 -66
  243. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
  244. package/website/content/docs/cli-reference/ossa-import.md +0 -56
  245. package/website/content/docs/cli-reference/ossa-init.md +0 -57
  246. package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
  247. package/website/content/docs/cli-reference/ossa-run.md +0 -66
  248. package/website/content/docs/cli-reference/ossa-schema.md +0 -57
  249. package/website/content/docs/cli-reference/ossa-setup.md +0 -57
  250. package/website/content/docs/cli-reference/ossa-validate.md +0 -66
  251. package/website/content/docs/configuration/index.md +0 -97
  252. package/website/content/docs/contributing.md +0 -599
  253. package/website/content/docs/deployment/github-mirroring.md +0 -924
  254. package/website/content/docs/documentation.md +0 -100
  255. package/website/content/docs/ecosystem/framework-support.md +0 -1361
  256. package/website/content/docs/ecosystem/overview.md +0 -366
  257. package/website/content/docs/errors/index.md +0 -10
  258. package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
  259. package/website/content/docs/examples/catalog.md +0 -300
  260. package/website/content/docs/for-audiences/students-researchers.md +0 -122
  261. package/website/content/docs/getting-started/index.md +0 -92
  262. package/website/content/docs/getting-started/installation.md +0 -155
  263. package/website/content/docs/getting-started/running-agents.md +0 -309
  264. package/website/content/docs/getting-started.md +0 -91
  265. package/website/content/docs/integrations/aiflow.md +0 -104
  266. package/website/content/docs/integrations/drupal.md +0 -105
  267. package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
  268. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
  269. package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
  270. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
  271. package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
  272. package/website/content/docs/migration-guides/index.md +0 -133
  273. package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
  274. package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
  275. package/website/content/docs/migration-guides/migration-manifest.json +0 -64
  276. package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
  277. package/website/content/docs/openapi-extensions/examples.md +0 -550
  278. package/website/content/docs/openapi-extensions/index.md +0 -551
  279. package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
  280. package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
  281. package/website/content/docs/ossa-compliant-badge.md +0 -251
  282. package/website/content/docs/pre-release/index.md +0 -175
  283. package/website/content/docs/quick-reference.md +0 -17
  284. package/website/content/docs/readme.md +0 -35
  285. package/website/content/docs/releases/v0.2.6.md +0 -99
  286. package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
  287. package/website/content/docs/schema-reference/agent-id.md +0 -52
  288. package/website/content/docs/schema-reference/agent-name.md +0 -50
  289. package/website/content/docs/schema-reference/agent-role.md +0 -54
  290. package/website/content/docs/schema-reference/agent-spec.md +0 -406
  291. package/website/content/docs/schema-reference/agent-version.md +0 -50
  292. package/website/content/docs/schema-reference/autonomy.md +0 -568
  293. package/website/content/docs/schema-reference/constraints.md +0 -543
  294. package/website/content/docs/schema-reference/index.md +0 -45
  295. package/website/content/docs/schema-reference/llm-config.md +0 -445
  296. package/website/content/docs/schema-reference/observability.md +0 -654
  297. package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
  298. package/website/content/docs/schema-reference/taxonomy.md +0 -509
  299. package/website/content/docs/schema-reference/tools.md +0 -628
  300. package/website/content/docs/templates/blog-post.md +0 -43
  301. package/website/content/docs/types-reference/index.md +0 -105
  302. package/website/content/docs/use-cases/00-index.md +0 -395
  303. package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
  304. package/website/content/docs/use-cases/customer-support.md +0 -1234
  305. package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
  306. package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
  307. package/website/content/docs/versioning.md +0 -288
  308. package/website/dev.sh +0 -53
  309. package/website/docker-compose.dev.yml +0 -36
  310. package/website/lib/version.ts +0 -35
  311. package/website/lib/versions.json +0 -103
  312. package/website/next.config.ts +0 -18
  313. package/website/nginx.conf +0 -32
  314. package/website/package-lock.json +0 -9679
  315. package/website/package.json +0 -59
  316. package/website/postcss.config.mjs +0 -9
  317. package/website/scripts/fetch-versions.js +0 -166
  318. package/website/scripts/generate-examples-index.js +0 -163
  319. package/website/scripts/merge-docs-to-wiki.ts +0 -207
  320. package/website/scripts/sync-version.js +0 -72
  321. package/website/scripts/sync-wiki.ts +0 -322
  322. package/website/scripts/upload-wiki.ts +0 -199
  323. package/website/styles/_spacing.scss +0 -453
  324. package/website/styles/_tokens.scss +0 -245
  325. package/website/styles/_typography.scss +0 -361
  326. package/website/styles/_variables.scss +0 -287
  327. package/website/tailwind.config.ts +0 -170
@@ -1,1001 +0,0 @@
1
- import Link from 'next/link';
2
- import { SchemaExplorer } from '@/components/schema/SchemaExplorer';
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.6';
16
- }
17
- } catch (error) {
18
- console.error('Error reading versions.json:', error);
19
- }
20
- // Fallback to 0.2.6 if versions.json not available
21
- return '0.2.6';
22
- }
23
-
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
- }
51
- }
52
-
53
- export default function SchemaPage() {
54
- const stableVersion = getStableVersion();
55
- const schema = loadSchema(stableVersion);
56
-
57
- if (!schema) {
58
- return (
59
- <div className="container mx-auto max-w-7xl px-4 py-8">
60
- <h1 className="text-4xl font-bold mb-4">Schema Explorer</h1>
61
- <p className="text-lg text-gray-600">
62
- Schema file not found. Please ensure the OSSA schema is available.
63
- </p>
64
- </div>
65
- );
66
- }
67
-
68
- return (
69
- <>
70
- {/* Hero Section */}
71
- <div className="bg-gradient-to-br from-secondary via-primary to-accent text-white py-16 px-4">
72
- <div className="container mx-auto max-w-6xl text-center">
73
- <div className="inline-flex items-center justify-center w-20 h-20 bg-white/20 backdrop-blur-sm rounded-full mb-6">
74
- <svg className="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24">
75
- <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="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" />
76
- </svg>
77
- </div>
78
- <h1 className="text-5xl font-bold mb-4">OSSA Schema Reference</h1>
79
- <p className="text-xl text-white/90 mb-2">
80
- Complete JSON Schema for defining portable, framework-agnostic AI agents
81
- </p>
82
- <p className="text-lg text-white/80">
83
- Version v{stableVersion} • The OpenAPI for AI Agents
84
- </p>
85
- </div>
86
- </div>
87
-
88
- <div className="container mx-auto max-w-7xl px-4 py-12">
89
- {/* Schema Architecture Diagram - MOVED TO TOP */}
90
- <section className="mb-16">
91
- <div className="bg-gradient-to-br from-amber-50 via-orange-50 to-yellow-50 rounded-2xl p-8 mb-8">
92
- <div className="flex items-start mb-6">
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">
94
- <svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
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" />
96
- </svg>
97
- </div>
98
- <div>
99
- <h2 className="text-3xl font-bold mb-4 text-gray-900">Why This Schema?</h2>
100
- <div className="space-y-4 text-lg text-gray-700">
101
- <p>
102
- <strong className="text-primary">The Problem:</strong> Every AI framework defines agents differently.
103
- LangChain has "chains," CrewAI has "crews," OpenAI has "assistants," Anthropic has different tools.
104
- This creates <span className="text-red-600 font-semibold">vendor lock-in</span> and makes it impossible to share agents between teams or frameworks.
105
- </p>
106
- <p>
107
- <strong className="text-secondary">The Solution:</strong> OSSA provides a single, standard way to describe agents that works everywhere.
108
- Like OpenAPI revolutionized REST APIs, OSSA revolutionizes AI agents.
109
- </p>
110
- <p>
111
- <strong className="text-primary">The Result:</strong> Write your agent definition once, deploy it to any framework.
112
- Switch providers without rewriting code. Share agents across organizations. True portability.
113
- </p>
114
- </div>
115
- </div>
116
- </div>
117
- </div>
118
- </section>
119
-
120
- {/* Schema Architecture Diagram */}
121
- <section className="mb-16">
122
- <div className="flex items-center mb-8">
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">
124
- <svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
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" />
126
- </svg>
127
- </div>
128
- <h2 className="text-3xl font-bold text-primary">Schema Architecture</h2>
129
- </div>
130
-
131
- {/* Visual Structure Diagram with HTML/CSS */}
132
- <div className="bg-white rounded-2xl shadow-lg p-8 mb-8 border-2 border-gray-300">
133
- <h3 className="text-2xl font-bold mb-4 text-center text-gray-900">OSSA Agent Manifest Structure</h3>
134
- <p className="text-center text-gray-600 mb-8 text-base">
135
- Complete breakdown of all manifest components and their relationships
136
- </p>
137
-
138
- <div className="space-y-6">
139
- {/* Root */}
140
- <div className="bg-gradient-to-r from-secondary via-primary to-accent text-white rounded-xl p-6 text-center shadow-md">
141
- <div className="font-bold text-2xl mb-2">OSSA Agent Manifest</div>
142
- <div className="text-base opacity-90">agent.yaml / agent.json</div>
143
- </div>
144
-
145
- {/* Top Level Fields */}
146
- <div className="grid md:grid-cols-3 gap-6">
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>
166
- </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>
176
- </div>
177
- </div>
178
- </div>
179
-
180
- {/* Main Content: spec and extensions - STACKED */}
181
- <div className="space-y-6">
182
- {/* spec */}
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>
186
- <div className="space-y-3">
187
- {/* role */}
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">
192
- type: string (multi-line)
193
- </div>
194
- </div>
195
-
196
- {/* llm */}
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>
204
- </div>
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>
208
- </div>
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>
212
- </div>
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>
216
- </div>
217
- </div>
218
- </div>
219
-
220
- {/* tools */}
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>
228
- </div>
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>
232
- </div>
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>
236
- </div>
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>
240
- </div>
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>
244
- </div>
245
- </div>
246
- </div>
247
-
248
- {/* taxonomy */}
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>
256
- </div>
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>
260
- </div>
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>
264
- </div>
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>
268
- </div>
269
- </div>
270
- </div>
271
-
272
- {/* autonomy */}
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>
280
- </div>
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>
284
- </div>
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>
288
- </div>
289
- </div>
290
- </div>
291
-
292
- {/* observability */}
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>
300
- </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>
304
- </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>
308
- </div>
309
- </div>
310
- </div>
311
-
312
- {/* constraints (additional) */}
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>
317
- </div>
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>
323
- </div>
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>
327
- </div>
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>
331
- </div>
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>
335
- </div>
336
- </div>
337
- </div>
338
- </div>
339
- </div>
340
-
341
- {/* extensions */}
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" />
368
- </div>
369
- </div>
370
- </div>
371
- </div>
372
- </div>
373
- </section>
374
-
375
- {/* Data Flow Diagram */}
376
- <section className="mb-16">
377
- <div className="flex items-center mb-8">
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">
379
- <svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
380
- <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
381
- </svg>
382
- </div>
383
- <h2 className="text-3xl font-bold text-secondary">Data Flow: How OSSA Works</h2>
384
- </div>
385
-
386
- <div className="grid md:grid-cols-2 gap-6 mb-8">
387
- {/* Flow 1: Agent Definition to Execution */}
388
- <div className="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
389
- <h3 className="text-lg font-bold mb-4 text-primary">1. Definition → Execution</h3>
390
- <div className="bg-gray-50 rounded-lg p-4 font-mono text-xs space-y-2">
391
- <div className="flex items-center">
392
- <div className="w-8 h-8 bg-primary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">1</div>
393
- <div>
394
- <div className="font-semibold">Write agent.yaml</div>
395
- <div className="text-gray-600">Define role, LLM, tools</div>
396
- </div>
397
- </div>
398
- <div className="ml-4 border-l-2 border-primary h-4"></div>
399
- <div className="flex items-center">
400
- <div className="w-8 h-8 bg-secondary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">2</div>
401
- <div>
402
- <div className="font-semibold">Validate schema</div>
403
- <div className="text-gray-600">JSON Schema validation</div>
404
- </div>
405
- </div>
406
- <div className="ml-4 border-l-2 border-secondary h-4"></div>
407
- <div className="flex items-center">
408
- <div className="w-8 h-8 bg-primary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">3</div>
409
- <div>
410
- <div className="font-semibold">Load into runtime</div>
411
- <div className="text-gray-600">kAgent / LangChain / etc</div>
412
- </div>
413
- </div>
414
- <div className="ml-4 border-l-2 border-primary h-4"></div>
415
- <div className="flex items-center">
416
- <div className="w-8 h-8 bg-secondary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">4</div>
417
- <div>
418
- <div className="font-semibold">Execute agent</div>
419
- <div className="text-gray-600">Run tasks, call LLM, use tools</div>
420
- </div>
421
- </div>
422
- </div>
423
- </div>
424
-
425
- {/* Flow 2: Cross-Framework Portability */}
426
- <div className="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
427
- <h3 className="text-lg font-bold mb-4 text-secondary">2. Cross-Framework Portability</h3>
428
- <div className="bg-gray-50 rounded-lg p-4 font-mono text-xs space-y-2">
429
- <div className="flex items-center">
430
- <div className="w-8 h-8 bg-primary text-white rounded-full flex items-center justify-center mr-3 flex-shrink-0">A</div>
431
- <div>
432
- <div className="font-semibold">agent.yaml (OSSA)</div>
433
- <div className="text-gray-600">Framework-agnostic definition</div>
434
- </div>
435
- </div>
436
- <div className="ml-4 border-l-2 border-dashed border-primary h-4"></div>
437
- <div className="text-center text-gray-500 font-bold">↓ Export to ↓</div>
438
- <div className="ml-4 border-l-2 border-dashed border-primary h-4"></div>
439
- <div className="space-y-2">
440
- <div className="bg-blue-50 p-2 rounded border-l-2 border-blue-500">
441
- <strong>LangChain</strong>: chains.json
442
- </div>
443
- <div className="bg-purple-50 p-2 rounded border-l-2 border-purple-500">
444
- <strong>CrewAI</strong>: crew_config.yaml
445
- </div>
446
- <div className="bg-green-50 p-2 rounded border-l-2 border-green-500">
447
- <strong>OpenAI</strong>: assistant_config.json
448
- </div>
449
- <div className="bg-orange-50 p-2 rounded border-l-2 border-orange-500">
450
- <strong>Anthropic</strong>: claude_tools.json
451
- </div>
452
- </div>
453
- </div>
454
- </div>
455
- </div>
456
-
457
- {/* Visual Data Flow Diagram - Clean HTML/CSS Version */}
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>
461
-
462
- <div className="space-y-6">
463
- {/* Step 1: Developer */}
464
- <div className="flex flex-col items-center">
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>
469
- </div>
470
- <div className="w-0.5 h-12 bg-gray-300"></div>
471
- </div>
472
-
473
- {/* Step 2: Validation */}
474
- <div className="flex flex-col items-center">
475
- <div className="grid md:grid-cols-2 gap-4 w-full max-w-4xl">
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>
478
- <div className="text-sm opacity-90">JSON Schema validation engine</div>
479
- </div>
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>
499
- </div>
500
- </div>
501
- </div>
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
505
- </div>
506
- <div className="w-0.5 h-12 bg-gray-300"></div>
507
- </div>
508
-
509
- {/* Step 3: Framework Adapter Layer */}
510
- <div className="flex flex-col items-center">
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>
513
- <div className="text-base opacity-90">Converts OSSA → Framework-Specific Config</div>
514
- </div>
515
- <div className="flex space-x-2 mt-4">
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>
520
- </div>
521
- </div>
522
-
523
- {/* Step 4: Runtimes */}
524
- <div className="flex flex-col items-center">
525
- <div className="grid md:grid-cols-4 gap-4 w-full max-w-5xl">
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>
529
- </div>
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>
533
- </div>
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>
537
- </div>
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>
541
- </div>
542
- </div>
543
- <div className="flex justify-center mt-4 space-x-2">
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>
548
- </div>
549
- </div>
550
-
551
- {/* Step 5: Agent Execution */}
552
- <div className="flex flex-col items-center">
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>
559
- </div>
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>
563
- </div>
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>
567
- </div>
568
- </div>
569
- </div>
570
- <div className="w-0.5 h-12 bg-gray-300"></div>
571
- </div>
572
-
573
- {/* Step 6: Observability */}
574
- <div className="flex flex-col items-center">
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>
581
- </div>
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>
585
- </div>
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>
589
- </div>
590
- </div>
591
- </div>
592
- </div>
593
- </div>
594
- </div>
595
- </section>
596
-
597
- {/* Core Components Breakdown */}
598
- <section className="mb-16">
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">
601
- <svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
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" />
603
- </svg>
604
- </div>
605
- <h2 className="text-3xl font-bold text-primary">Schema Components</h2>
606
- </div>
607
-
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">
622
- <div>
623
- <p className="font-semibold text-gray-900 mb-2">WHAT:</p>
624
- <p className="text-gray-700">Version identifier and resource type for the manifest.</p>
625
- </div>
626
- <div>
627
- <p className="font-semibold text-gray-900 mb-2">WHY:</p>
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>
629
- </div>
630
- <div>
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}
634
- kind: Agent`}</code></pre>
635
- </div>
636
- </div>
637
- </div>
638
- ),
639
- },
640
- {
641
- id: 'metadata',
642
- title: 'metadata',
643
- borderColor: 'border-secondary',
644
- content: (
645
- <div className="space-y-4">
646
- <div>
647
- <p className="font-semibold text-gray-900 mb-2">WHAT:</p>
648
- <p className="text-gray-700">Identification and classification information: name, version, description, labels, annotations.</p>
649
- </div>
650
- <div>
651
- <p className="font-semibold text-gray-900 mb-2">WHY:</p>
652
- <p className="text-gray-700">
653
- <strong>Discovery:</strong> Find agents by name/labels in catalogs.<br/>
654
- <strong>Versioning:</strong> Track changes over time.<br/>
655
- <strong>Organization:</strong> Group agents by team, project, environment.<br/>
656
- <strong>Documentation:</strong> Human-readable descriptions and URLs.
657
- </p>
658
- </div>
659
- <div>
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:
663
- name: customer-support-agent
664
- version: 2.1.0
665
- description: Handles tier-1 support tickets with sentiment analysis
666
- labels:
667
- team: support
668
- environment: production
669
- annotations:
670
- docs: https://docs.example.com/agents/support
671
- owner: support-team@example.com`}</code></pre>
672
- </div>
673
- </div>
674
- </div>
675
- ),
676
- },
677
- {
678
- id: 'spec-role',
679
- title: 'spec.role',
680
- borderColor: 'border-primary',
681
- content: (
682
- <div className="space-y-4">
683
- <div>
684
- <p className="font-semibold text-gray-900 mb-2">WHAT:</p>
685
- <p className="text-gray-700">The system prompt / role definition that guides the agent's behavior and personality.</p>
686
- </div>
687
- <div>
688
- <p className="font-semibold text-gray-900 mb-2">WHY:</p>
689
- <p className="text-gray-700">
690
- Defines <strong>who</strong> the agent is, <strong>what</strong> it can do, and <strong>how</strong> it should behave.
691
- This is the agent's identity and primary instruction set that shapes all interactions.
692
- </p>
693
- </div>
694
- <div>
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:
698
- role: |
699
- You are a senior software architect specializing in distributed systems.
700
- Your role is to review code for scalability, security, and best practices.
701
- You provide constructive feedback with specific examples and recommendations.
702
- You communicate in a professional but friendly tone.`}</code></pre>
703
- </div>
704
- </div>
705
- </div>
706
- ),
707
- },
708
- {
709
- id: 'spec-llm',
710
- title: 'spec.llm',
711
- borderColor: 'border-secondary',
712
- content: (
713
- <div className="space-y-4">
714
- <div>
715
- <p className="font-semibold text-gray-900 mb-2">WHAT:</p>
716
- <p className="text-gray-700">LLM provider configuration: model, temperature, max_tokens, top_p, and other parameters.</p>
717
- </div>
718
- <div>
719
- <p className="font-semibold text-gray-900 mb-2">WHY:</p>
720
- <p className="text-gray-700">
721
- <strong>Portability:</strong> Switch from OpenAI to Anthropic without changing agent logic.<br/>
722
- <strong>Optimization:</strong> Tune temperature for creativity vs consistency.<br/>
723
- <strong>Cost Control:</strong> Set token limits and choose appropriate model sizes.<br/>
724
- <strong>Quality:</strong> Configure sampling parameters for best results.
725
- </p>
726
- </div>
727
- <div>
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:
731
- llm:
732
- provider: openai
733
- model: gpt-4-turbo
734
- temperature: 0.7
735
- max_tokens: 2000
736
- top_p: 0.9
737
- frequency_penalty: 0.0
738
- presence_penalty: 0.6`}</code></pre>
739
- </div>
740
- </div>
741
- </div>
742
- ),
743
- },
744
- {
745
- id: 'spec-tools',
746
- title: 'spec.tools',
747
- borderColor: 'border-primary',
748
- content: (
749
- <div className="space-y-4">
750
- <div>
751
- <p className="font-semibold text-gray-900 mb-2">WHAT:</p>
752
- <p className="text-gray-700">Array of tools/functions the agent can call: HTTP APIs, code execution, database queries, file operations, etc.</p>
753
- </div>
754
- <div>
755
- <p className="font-semibold text-gray-900 mb-2">WHY:</p>
756
- <p className="text-gray-700">
757
- Agents need to <strong>take action</strong>, not just respond with text. Tools enable agents to:
758
- interact with APIs, query databases, run code, search the web, manipulate files, and integrate with external systems.
759
- Standardizing tool definitions ensures portability across frameworks.
760
- </p>
761
- </div>
762
- <div>
763
- <p className="font-semibold text-gray-900 mb-2">TYPES:</p>
764
- <ul className="list-disc list-inside text-gray-700 space-y-1 ml-4">
765
- <li><strong>http:</strong> REST API calls</li>
766
- <li><strong>code:</strong> Execute Python/JS/etc</li>
767
- <li><strong>database:</strong> SQL queries</li>
768
- <li><strong>file:</strong> Read/write files</li>
769
- <li><strong>search:</strong> Web/vector search</li>
770
- <li><strong>custom:</strong> Framework-specific tools</li>
771
- </ul>
772
- </div>
773
- <div>
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:
777
- tools:
778
- - type: http
779
- name: search_issues
780
- endpoint: https://api.github.com/search/issues
781
- method: GET
782
- auth:
783
- type: bearer
784
- token: \${GITHUB_TOKEN}
785
-
786
- - type: code
787
- name: analyze_logs
788
- language: python
789
- allowed_libraries: [pandas, numpy]`}</code></pre>
790
- </div>
791
- </div>
792
- </div>
793
- ),
794
- },
795
- {
796
- id: 'spec-taxonomy',
797
- title: 'spec.taxonomy',
798
- borderColor: 'border-secondary',
799
- content: (
800
- <div className="space-y-4">
801
- <div>
802
- <p className="font-semibold text-gray-900 mb-2">WHAT:</p>
803
- <p className="text-gray-700">Classification of agent purpose: domain, subdomain, use_case, and industry.</p>
804
- </div>
805
- <div>
806
- <p className="font-semibold text-gray-900 mb-2">WHY:</p>
807
- <p className="text-gray-700">
808
- <strong>Discoverability:</strong> Find agents for specific use cases in catalogs.<br/>
809
- <strong>Organization:</strong> Group similar agents together.<br/>
810
- <strong>Routing:</strong> Automatically route tasks to appropriate agents.<br/>
811
- <strong>Analytics:</strong> Track agent usage by domain/industry.
812
- </p>
813
- </div>
814
- <div>
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:
818
- taxonomy:
819
- domain: customer_service
820
- subdomain: technical_support
821
- use_case: troubleshooting
822
- industry: saas
823
- tags: [support, automation, tier1]`}</code></pre>
824
- </div>
825
- </div>
826
- </div>
827
- ),
828
- },
829
- {
830
- id: 'spec-autonomy',
831
- title: 'spec.autonomy',
832
- borderColor: 'border-primary',
833
- content: (
834
- <div className="space-y-4">
835
- <div>
836
- <p className="font-semibold text-gray-900 mb-2">WHAT:</p>
837
- <p className="text-gray-700">Defines how much independence the agent has: level (L0-L5), approval_required, human_in_loop settings.</p>
838
- </div>
839
- <div>
840
- <p className="font-semibold text-gray-900 mb-2">WHY:</p>
841
- <p className="text-gray-700">
842
- <strong>Safety:</strong> Prevent agents from taking destructive actions without oversight.<br/>
843
- <strong>Compliance:</strong> Require approvals for regulated operations.<br/>
844
- <strong>Trust:</strong> Gradually increase autonomy as agents prove reliable.<br/>
845
- <strong>Audit:</strong> Track which actions required human approval.
846
- </p>
847
- </div>
848
- <div>
849
- <p className="font-semibold text-gray-900 mb-2">LEVELS:</p>
850
- <ul className="list-disc list-inside text-gray-700 space-y-1 ml-4">
851
- <li><strong>L0:</strong> No autonomy (human controls everything)</li>
852
- <li><strong>L1:</strong> Suggestions only (human approves all actions)</li>
853
- <li><strong>L2:</strong> Conditional autonomy (human approves risky actions)</li>
854
- <li><strong>L3:</strong> High autonomy (human approves critical actions)</li>
855
- <li><strong>L4:</strong> Full autonomy (human notified of actions)</li>
856
- <li><strong>L5:</strong> Complete autonomy (no human oversight)</li>
857
- </ul>
858
- </div>
859
- <div>
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:
863
- autonomy:
864
- level: L2
865
- approval_required:
866
- - delete_operations
867
- - financial_transactions
868
- - user_data_access
869
- human_in_loop:
870
- notification_channels: [slack, email]
871
- timeout_seconds: 300`}</code></pre>
872
- </div>
873
- </div>
874
- </div>
875
- ),
876
- },
877
- {
878
- id: 'spec-observability',
879
- title: 'spec.observability',
880
- borderColor: 'border-secondary',
881
- content: (
882
- <div className="space-y-4">
883
- <div>
884
- <p className="font-semibold text-gray-900 mb-2">WHAT:</p>
885
- <p className="text-gray-700">Logging, metrics, and tracing configuration for monitoring agent behavior.</p>
886
- </div>
887
- <div>
888
- <p className="font-semibold text-gray-900 mb-2">WHY:</p>
889
- <p className="text-gray-700">
890
- <strong>Debugging:</strong> Understand what went wrong when agents fail.<br/>
891
- <strong>Performance:</strong> Track response times, token usage, costs.<br/>
892
- <strong>Quality:</strong> Monitor success rates and user satisfaction.<br/>
893
- <strong>Compliance:</strong> Audit trails for regulated industries.
894
- </p>
895
- </div>
896
- <div>
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:
900
- observability:
901
- logging:
902
- level: info
903
- include_prompts: true
904
- include_responses: true
905
- metrics:
906
- enabled: true
907
- export_to: prometheus
908
- tracing:
909
- enabled: true
910
- provider: opentelemetry
911
- sample_rate: 1.0`}</code></pre>
912
- </div>
913
- </div>
914
- </div>
915
- ),
916
- },
917
- {
918
- id: 'extensions',
919
- title: 'extensions',
920
- borderColor: 'border-primary',
921
- content: (
922
- <div className="space-y-4">
923
- <div>
924
- <p className="font-semibold text-gray-900 mb-2">WHAT:</p>
925
- <p className="text-gray-700">Framework-specific configuration blocks: kagent, buildkit, langchain, crewai, openai, anthropic, cursor, langflow, autogen, etc.</p>
926
- </div>
927
- <div>
928
- <p className="font-semibold text-gray-900 mb-2">WHY:</p>
929
- <p className="text-gray-700">
930
- While OSSA provides a <strong>common core</strong>, each framework has unique features. Extensions allow you to:
931
- leverage framework-specific capabilities, maintain compatibility with existing code, and gradually migrate from proprietary formats.
932
- <strong className="block mt-2">The core spec ensures portability. Extensions provide power.</strong>
933
- </p>
934
- </div>
935
- <div>
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:
939
- kagent:
940
- mesh_discovery: true
941
- routing_strategy: round_robin
942
-
943
- langchain:
944
- memory_type: conversation_buffer_window
945
- memory_window_size: 5
946
-
947
- openai_agents:
948
- code_interpreter: true
949
- file_search: true`}</code></pre>
950
- </div>
951
- </div>
952
- </div>
953
- ),
954
- },
955
- ]}
956
- />
957
- </section>
958
-
959
- {/* Interactive Schema Explorer */}
960
- <section className="mb-16">
961
- <div className="flex items-center mb-8">
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">
963
- <svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
964
- <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
965
- </svg>
966
- </div>
967
- <h2 className="text-3xl font-bold text-primary">Interactive Schema Explorer</h2>
968
- </div>
969
- <p className="text-lg text-gray-700 mb-6">
970
- Explore the complete JSON Schema interactively. Click on any property to see its type, description, and validation rules.
971
- </p>
972
- <SchemaExplorer schema={schema} />
973
- </section>
974
-
975
- {/* Next Steps */}
976
- <section className="mb-8">
977
- <div className="bg-gradient-to-br from-primary/10 via-accent/10 to-secondary/10 rounded-2xl p-8">
978
- <h2 className="text-3xl font-bold mb-6 text-center">Ready to Build Agents?</h2>
979
- <div className="grid md:grid-cols-3 gap-4">
980
- <Link href="/playground" className="card-hover p-6 text-center border-l-4 border-primary hover:-translate-y-1 transition-all duration-300">
981
- <div className="text-4xl mb-3">🎮</div>
982
- <h3 className="text-xl font-semibold text-primary mb-2">Try the Playground</h3>
983
- <p className="text-gray-700">Write and validate your first agent manifest</p>
984
- </Link>
985
- <Link href="/examples" className="card-hover p-6 text-center border-l-4 border-secondary hover:-translate-y-1 transition-all duration-300">
986
- <div className="text-4xl mb-3">📚</div>
987
- <h3 className="text-xl font-semibold text-secondary mb-2">Browse Examples</h3>
988
- <p className="text-gray-700">See 58+ real-world agent definitions</p>
989
- </Link>
990
- <Link href="/docs" className="card-hover p-6 text-center border-l-4 border-primary hover:-translate-y-1 transition-all duration-300">
991
- <div className="text-4xl mb-3">📖</div>
992
- <h3 className="text-xl font-semibold text-primary mb-2">Read the Docs</h3>
993
- <p className="text-gray-700">Comprehensive guides and tutorials</p>
994
- </Link>
995
- </div>
996
- </div>
997
- </section>
998
- </div>
999
- </>
1000
- );
1001
- }