@bluefly/openstandardagents 0.2.5-RC → 0.2.7
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/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
- package/.github/workflows/dependabot-comment.yml +34 -0
- package/.github/workflows/pr-comment.yml +33 -0
- package/.husky/pre-commit +5 -0
- package/.kiro/config.json +21 -0
- package/.kiro/settings/mcp.json +61 -0
- package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
- package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
- package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
- package/.kiro/specs/website-brand-identity/tasks.md +981 -0
- package/CHANGELOG.md +23 -0
- package/README.md +12 -3
- package/bin/ossa-dev +42 -0
- package/bin/ossa-export +32 -0
- package/bin/ossa-generate +60 -0
- package/bin/ossa-health +40 -0
- package/bin/ossa-init +26 -0
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +15 -10
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/github-sync/github-client.d.ts +14 -0
- package/dist/services/github-sync/github-client.d.ts.map +1 -0
- package/dist/services/github-sync/github-client.js +41 -0
- package/dist/services/github-sync/github-client.js.map +1 -0
- package/dist/services/github-sync/gitlab-client.d.ts +17 -0
- package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
- package/dist/services/github-sync/gitlab-client.js +42 -0
- package/dist/services/github-sync/gitlab-client.js.map +1 -0
- package/dist/services/github-sync/schemas.d.ts +46 -0
- package/dist/services/github-sync/schemas.d.ts.map +1 -0
- package/dist/services/github-sync/schemas.js +36 -0
- package/dist/services/github-sync/schemas.js.map +1 -0
- package/dist/services/github-sync/sync.service.d.ts +27 -0
- package/dist/services/github-sync/sync.service.d.ts.map +1 -0
- package/dist/services/github-sync/sync.service.js +99 -0
- package/dist/services/github-sync/sync.service.js.map +1 -0
- package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
- package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
- package/dist/services/runtime/claude/capability-mapper.js +245 -0
- package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.js +287 -0
- package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.js +169 -0
- package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
- package/dist/services/runtime/claude/types.d.ts +115 -0
- package/dist/services/runtime/claude/types.d.ts.map +1 -0
- package/dist/services/runtime/claude/types.js +6 -0
- package/dist/services/runtime/claude/types.js.map +1 -0
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +12 -1
- package/dist/services/validation.service.js.map +1 -1
- package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.6/README.md +72 -0
- package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
- package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/dist/spec/v0.2.6-dev/README.md +75 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/{v0.2.4/ossa-0.2.4-dev.schema.json → v0.2.6-dev/ossa-0.2.5.schema.json} +9 -9
- package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- package/{spec/v0.2.4/ossa-0.2.4-dev.schema.json → dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json} +9 -9
- package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
- package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- package/docs/brand-guide/01-brand-overview.md +37 -0
- package/docs/brand-guide/02-logo-usage.md +43 -0
- package/docs/brand-guide/03-color-palette.md +70 -0
- package/docs/brand-guide/04-typography.md +82 -0
- package/docs/brand-guide/05-voice-and-tone.md +108 -0
- package/docs/brand-guide/06-visual-elements.md +137 -0
- package/docs/brand-guide/07-application-examples.md +153 -0
- package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
- package/docs/brand-guide/OssaLogo/brand.af +0 -0
- package/docs/brand-guide/README.md +107 -0
- package/docs/comparison.md +315 -0
- package/docs/operations/automation-roadmap.md +245 -0
- package/docs/operations/github-sync-strategy.md +357 -0
- package/examples/anthropic/claude-assistant.ossa.json +5 -4
- package/examples/autogen/multi-agent.ossa.json +6 -4
- package/examples/crewai/research-team.ossa.json +14 -5
- package/examples/cursor/code-review-agent.ossa.json +21 -6
- package/examples/langchain/chain-agent.ossa.json +21 -5
- package/examples/langflow/workflow-agent.ossa.json +2 -3
- package/examples/langgraph/state-machine-agent.ossa.json +2 -3
- package/examples/llamaindex/rag-agent.ossa.json +2 -3
- package/examples/openai/multi-tool-agent.ossa.json +32 -9
- package/examples/openai/swarm-agent.ossa.json +18 -5
- package/examples/vercel/edge-agent.ossa.json +5 -4
- package/openapi/github-sync.yaml +115 -0
- package/package.json +25 -4
- package/scripts/README.md +103 -0
- package/scripts/auto-rebase-mrs.ts +106 -0
- package/scripts/batch-dependabot.sh +57 -0
- package/scripts/configure-gitlab-branch-protection.ts +95 -0
- package/scripts/create-issue-helper.ts +238 -0
- package/scripts/create-milestone-issue.ts +73 -0
- package/scripts/fix-schema-formats.js +82 -0
- package/scripts/generate-agents-catalog.ts +77 -0
- package/scripts/generate-api-docs.ts +218 -0
- package/scripts/generate-cli-docs.ts +410 -0
- package/scripts/generate-config-docs.ts +109 -0
- package/scripts/generate-errors-docs.ts +76 -0
- package/scripts/generate-examples-docs.ts +99 -0
- package/scripts/generate-schema-docs.ts +296 -0
- package/scripts/generate-types-docs.ts +48 -0
- package/scripts/lowercase-docs.ts +43 -0
- package/scripts/manage-milestone-mrs.ts +279 -0
- package/scripts/rebase-all-mrs.sh +75 -0
- package/scripts/sync-github-pr.sh +48 -0
- package/scripts/sync-version.js +40 -0
- package/scripts/sync-wiki.sh +50 -0
- package/scripts/validate-all.js +127 -0
- package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/spec/v0.2.6/CHANGELOG.md +401 -0
- package/spec/v0.2.6/README.md +72 -0
- package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
- package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/spec/v0.2.6-dev/README.md +75 -0
- package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
- package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +1696 -0
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/spec/v0.2.7/core/agentgraph.md +324 -0
- package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
- package/website/app/about/page.tsx +53 -44
- package/website/app/ecosystem/page.tsx +146 -111
- package/website/app/globals.scss +256 -21
- package/website/app/page.tsx +394 -182
- package/website/app/page.tsx.bak +679 -0
- package/website/app/page.tsx.bak2 +649 -0
- package/website/app/schema/page.tsx +3 -3
- package/website/app/specification/page.tsx +1 -1
- package/website/components/layout/Header.tsx +27 -23
- package/website/components/ui/Badge.tsx +82 -0
- package/website/components/ui/Button.tsx +116 -0
- package/website/components/ui/Card.tsx +167 -0
- package/website/components/ui/Checkbox.tsx +141 -0
- package/website/components/ui/Input.tsx +169 -0
- package/website/components/ui/Radio.tsx +141 -0
- package/website/components/ui/Select.tsx +182 -0
- package/website/components/ui/Tag.tsx +158 -0
- package/website/components/ui/Textarea.tsx +195 -0
- package/website/components/ui/index.ts +11 -0
- package/website/content/docs/{00-HOME.md → 00-home.md} +1 -1
- package/website/content/docs/agents/catalog.md +28 -0
- package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
- package/website/content/docs/api-reference/index.md +38 -0
- package/website/content/docs/api-reference/ossa-core-api.md +634 -0
- package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
- package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
- package/website/content/docs/cli-reference/index.md +111 -0
- package/website/content/docs/cli-reference/ossa-agents.md +70 -0
- package/website/content/docs/cli-reference/ossa-export.md +56 -0
- package/website/content/docs/cli-reference/ossa-generate.md +66 -0
- package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
- package/website/content/docs/cli-reference/ossa-import.md +56 -0
- package/website/content/docs/cli-reference/ossa-init.md +57 -0
- package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
- package/website/content/docs/cli-reference/ossa-run.md +66 -0
- package/website/content/docs/cli-reference/ossa-schema.md +57 -0
- package/website/content/docs/cli-reference/ossa-setup.md +57 -0
- package/website/content/docs/cli-reference/ossa-validate.md +66 -0
- package/website/content/docs/configuration/index.md +97 -0
- package/website/content/docs/deployment/github-mirroring.md +924 -0
- package/website/content/docs/documentation.md +100 -0
- package/website/content/docs/ecosystem/framework-support.md +551 -9
- package/website/content/docs/errors/index.md +10 -0
- package/website/content/docs/examples/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
- package/website/content/docs/examples/catalog.md +300 -0
- package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
- package/website/content/docs/getting-started/{Installation.md → installation.md} +1 -1
- package/website/content/docs/getting-started.md +1 -1
- package/website/content/docs/integrations/aiflow.md +2 -2
- 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 +7 -7
- package/website/content/docs/migration-guides/langchain-to-ossa.md +4 -4
- package/website/content/docs/openapi-extensions/index.md +1 -1
- package/website/content/docs/ossa-compliant-badge.md +1 -1
- package/website/content/docs/pre-release/index.md +5 -5
- package/website/content/docs/releases/v0.2.6.md +99 -0
- package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
- package/website/content/docs/schema-reference/agent-id.md +52 -0
- package/website/content/docs/schema-reference/agent-name.md +50 -0
- package/website/content/docs/schema-reference/agent-role.md +54 -0
- package/website/content/docs/schema-reference/agent-version.md +50 -0
- package/website/content/docs/schema-reference/index.md +26 -157
- package/website/content/docs/types-reference/index.md +105 -0
- package/website/content/docs/versioning.md +3 -3
- package/website/dev.sh +53 -0
- package/website/docker-compose.dev.yml +36 -0
- package/website/lib/version.ts +1 -1
- package/website/lib/versions.json +45 -20
- package/website/package.json +1 -1
- package/website/styles/_spacing.scss +453 -0
- package/website/styles/_tokens.scss +245 -0
- package/website/styles/_typography.scss +361 -0
- package/website/styles/_variables.scss +270 -19
- package/website/tailwind.config.ts +113 -79
- package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
- package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
- package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
- package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
- package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
- package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
- package/docs/issue-19-completion-summary.md +0 -648
- package/docs/issue-19-validation.md +0 -351
- package/website/content/docs/Examples.md +0 -71
- package/website/content/docs/OpenAPI-Extensions.md +0 -934
- package/website/content/docs/core-concepts/Project-Structure.md +0 -348
- package/website/content/docs/examples/Migration-Guides.md +0 -214
- package/website/content/docs/for-audiences/Architects.md +0 -224
- package/website/content/docs/for-audiences/Developers.md +0 -220
- package/website/content/docs/for-audiences/Enterprises.md +0 -256
- package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
- package/website/content/docs/getting-started/First-Agent.md +0 -196
- package/website/content/docs/getting-started/Hello-World.md +0 -184
- package/website/content/docs/migration-guides/00-INDEX.md +0 -76
- package/website/content/docs/migration-guides/README.md +0 -133
- /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
- /package/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
package/website/app/page.tsx
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import Link from 'next/link';
|
|
2
2
|
import type { Metadata } from 'next';
|
|
3
3
|
import { Logo } from '@/components/Logo';
|
|
4
|
+
import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/Card';
|
|
5
|
+
import fs from 'fs';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
|
|
8
|
+
// Get version dynamically
|
|
9
|
+
function getVersion(): string {
|
|
10
|
+
try {
|
|
11
|
+
const pkgPath = path.join(process.cwd(), '../package.json');
|
|
12
|
+
if (fs.existsSync(pkgPath)) {
|
|
13
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
14
|
+
return pkg.version;
|
|
15
|
+
}
|
|
16
|
+
} catch (error) {
|
|
17
|
+
console.error('Failed to load version:', error);
|
|
18
|
+
}
|
|
19
|
+
return '0.2.6';
|
|
20
|
+
}
|
|
4
21
|
|
|
5
22
|
export const metadata: Metadata = {
|
|
6
23
|
title: 'Open Standard Agents - Industry Standard for Agent Orchestration',
|
|
@@ -8,31 +25,52 @@ export const metadata: Metadata = {
|
|
|
8
25
|
};
|
|
9
26
|
|
|
10
27
|
export default function HomePage() {
|
|
28
|
+
const version = getVersion();
|
|
29
|
+
|
|
11
30
|
return (
|
|
12
31
|
<div className="flex flex-col">
|
|
13
32
|
{/* Hero Section */}
|
|
14
33
|
<section className="bg-gradient-to-br from-secondary via-primary to-accent text-white py-24 px-4">
|
|
15
|
-
<div className="container mx-auto max-w-
|
|
34
|
+
<div className="container mx-auto max-w-[1440px] text-center">
|
|
16
35
|
<div className="mb-6 flex flex-col items-center">
|
|
17
36
|
<span className="inline-block px-4 py-2 bg-white/20 backdrop-blur-sm rounded-full text-sm font-medium mb-4">
|
|
18
|
-
The OpenAPI for AI Agents
|
|
37
|
+
The OpenAPI for AI Agents (v{version})
|
|
19
38
|
</span>
|
|
20
39
|
</div>
|
|
21
|
-
<h1 className="text-
|
|
22
|
-
Open Standard for
|
|
40
|
+
<h1 className="text-4xl md:text-6xl lg:text-7xl font-bold mb-6 leading-tight">
|
|
41
|
+
Open Standard for AI Agents
|
|
23
42
|
</h1>
|
|
24
|
-
<p className="text-
|
|
25
|
-
|
|
26
|
-
</p>
|
|
27
|
-
<p className="text-xl md:text-2xl mb-4 text-gray-200 max-w-4xl mx-auto">
|
|
28
|
-
A vendor-neutral, open specification for defining, deploying, and managing AI agents.
|
|
29
|
-
</p>
|
|
30
|
-
<p className="text-lg mb-8 text-white max-w-4xl mx-auto">
|
|
31
|
-
Just as OpenAPI standardizes REST APIs, Open Standard Agents standardizes agent interoperability
|
|
32
|
-
across frameworks, runtimes, and organizations.
|
|
43
|
+
<p className="text-2xl md:text-3xl lg:text-4xl mb-6 font-bold">
|
|
44
|
+
Vendor-neutral, compliance-ready, enterprise-grade
|
|
33
45
|
</p>
|
|
46
|
+
<div className="max-w-4xl mx-auto mb-8 space-y-3">
|
|
47
|
+
<p className="text-lg md:text-xl text-gray-100 flex items-center justify-center gap-2">
|
|
48
|
+
<svg className="w-5 h-5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
|
49
|
+
<path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
|
|
50
|
+
</svg>
|
|
51
|
+
Switch between AI providers without code changes
|
|
52
|
+
</p>
|
|
53
|
+
<p className="text-lg md:text-xl text-gray-100 flex items-center justify-center gap-2">
|
|
54
|
+
<svg className="w-5 h-5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
|
55
|
+
<path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
|
|
56
|
+
</svg>
|
|
57
|
+
Built-in compliance and security frameworks
|
|
58
|
+
</p>
|
|
59
|
+
<p className="text-lg md:text-xl text-gray-100 flex items-center justify-center gap-2">
|
|
60
|
+
<svg className="w-5 h-5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
|
61
|
+
<path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
|
|
62
|
+
</svg>
|
|
63
|
+
Standardized agent lifecycle and governance
|
|
64
|
+
</p>
|
|
65
|
+
<p className="text-lg md:text-xl text-gray-100 flex items-center justify-center gap-2">
|
|
66
|
+
<svg className="w-5 h-5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
|
67
|
+
<path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
|
|
68
|
+
</svg>
|
|
69
|
+
Multi-runtime support (Node.js, Python, more)
|
|
70
|
+
</p>
|
|
71
|
+
</div>
|
|
34
72
|
<div className="flex flex-col sm:flex-row gap-4 justify-center mb-12">
|
|
35
|
-
<Link href="#get-started" className="
|
|
73
|
+
<Link href="#get-started" className="text-lg px-8 py-4 bg-[#3224c9] text-white font-bold rounded-lg shadow-xl hover:shadow-2xl transform hover:scale-105 transition-all border-2 border-white hover:bg-white hover:text-[#3224c9]">
|
|
36
74
|
Get Started
|
|
37
75
|
</Link>
|
|
38
76
|
<Link href="https://github.com/blueflyio/openstandardagents" className="btn-outline border-white text-white hover:bg-white hover:text-primary text-lg px-8 py-4" target="_blank" rel="noopener noreferrer">
|
|
@@ -47,62 +85,25 @@ export default function HomePage() {
|
|
|
47
85
|
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
48
86
|
<path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
|
|
49
87
|
</svg>
|
|
50
|
-
<span>Vendor-Neutral</span>
|
|
88
|
+
<span className="font-bold">Vendor-Neutral</span>
|
|
51
89
|
</div>
|
|
52
90
|
<div className="flex items-center gap-2">
|
|
53
91
|
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
54
92
|
<path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
|
|
55
93
|
</svg>
|
|
56
|
-
<span>Framework-Agnostic</span>
|
|
94
|
+
<span className="font-bold">Framework-Agnostic</span>
|
|
57
95
|
</div>
|
|
58
96
|
<div className="flex items-center gap-2">
|
|
59
97
|
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
60
98
|
<path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
|
|
61
99
|
</svg>
|
|
62
|
-
<span>Open Source</span>
|
|
100
|
+
<span className="font-bold">Open Source</span>
|
|
63
101
|
</div>
|
|
64
102
|
<div className="flex items-center gap-2">
|
|
65
103
|
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
66
104
|
<path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
|
|
67
105
|
</svg>
|
|
68
|
-
<span>JSON Schema Validated</span>
|
|
69
|
-
</div>
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
</section>
|
|
73
|
-
|
|
74
|
-
{/* Why OSSA - The Problem Section */}
|
|
75
|
-
<section className="py-16 px-4 bg-gradient-to-br from-amber-50 via-orange-50 to-yellow-50">
|
|
76
|
-
<div className="container mx-auto max-w-5xl">
|
|
77
|
-
<div className="text-center mb-8">
|
|
78
|
-
<h2 className="text-4xl font-bold mb-6 text-gray-900">Why Does This Matter?</h2>
|
|
79
|
-
</div>
|
|
80
|
-
<div className="prose prose-lg max-w-none">
|
|
81
|
-
<p className="text-xl text-gray-700 mb-6 leading-relaxed">
|
|
82
|
-
In the world of AI agents, <strong className="text-gray-900">everyone calls an agent something different</strong>.
|
|
83
|
-
LangChain has "chains," CrewAI has "crews," OpenAI has "assistants," Anthropic has Claude with "tools."
|
|
84
|
-
Every framework invents its own terminology, its own configuration format, its own orchestration model.
|
|
85
|
-
</p>
|
|
86
|
-
<p className="text-xl text-gray-700 mb-6 leading-relaxed">
|
|
87
|
-
This fragmentation creates <strong className="text-red-600">vendor lock-in</strong>, makes agents impossible
|
|
88
|
-
to share between teams, and forces developers to rewrite everything when switching frameworks. Want to move
|
|
89
|
-
your LangChain agent to CrewAI? Complete rewrite. Need to deploy the same agent logic across multiple
|
|
90
|
-
frameworks? Maintain separate implementations.
|
|
91
|
-
</p>
|
|
92
|
-
<p className="text-xl text-gray-700 mb-6 leading-relaxed">
|
|
93
|
-
Imagine if every API framework required its own documentation format—that was the world before OpenAPI.
|
|
94
|
-
Every API provider wrote docs differently, integration was chaos, and tooling couldn't be shared.
|
|
95
|
-
<strong className="text-gray-900"> OpenAPI solved this by creating one standard that every API could follow</strong>.
|
|
96
|
-
</p>
|
|
97
|
-
<div className="bg-white rounded-xl p-8 shadow-lg border-2 border-blue-200">
|
|
98
|
-
<p className="text-2xl text-gray-900 font-bold mb-4">
|
|
99
|
-
OSSA solves this for AI agents.
|
|
100
|
-
</p>
|
|
101
|
-
<p className="text-xl text-gray-700">
|
|
102
|
-
<strong>One standard. Any framework. True portability.</strong> Define your agent once in OSSA format,
|
|
103
|
-
then deploy it with LangChain, CrewAI, Anthropic, OpenAI, or any other framework. Just like OpenAPI
|
|
104
|
-
unified REST APIs, OSSA unifies AI agents.
|
|
105
|
-
</p>
|
|
106
|
+
<span className="font-bold">JSON Schema Validated</span>
|
|
106
107
|
</div>
|
|
107
108
|
</div>
|
|
108
109
|
</div>
|
|
@@ -110,7 +111,7 @@ export default function HomePage() {
|
|
|
110
111
|
|
|
111
112
|
{/* What is OSSA Section */}
|
|
112
113
|
<section className="py-20 px-4 bg-white">
|
|
113
|
-
<div className="container mx-auto max-w-
|
|
114
|
+
<div className="container mx-auto max-w-[1440px]">
|
|
114
115
|
<div className="text-center mb-16">
|
|
115
116
|
<h2 className="text-5xl font-bold mb-6">What is Open Standard Agents?</h2>
|
|
116
117
|
<p className="text-xl text-gray-600 max-w-3xl mx-auto">
|
|
@@ -121,37 +122,49 @@ export default function HomePage() {
|
|
|
121
122
|
</div>
|
|
122
123
|
|
|
123
124
|
<div className="grid md:grid-cols-3 gap-8 mb-12">
|
|
124
|
-
<
|
|
125
|
-
<
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
125
|
+
<Card variant="default" padding="lg" elevation={1} hover>
|
|
126
|
+
<CardHeader>
|
|
127
|
+
<CardTitle className="text-primary">Specification Standard</CardTitle>
|
|
128
|
+
</CardHeader>
|
|
129
|
+
<CardContent>
|
|
130
|
+
<p className="text-gray-700 mb-4">
|
|
131
|
+
OSSA is <strong>NOT a framework</strong> - it's a specification that defines the contract
|
|
132
|
+
for agent definition, deployment, and management.
|
|
133
|
+
</p>
|
|
134
|
+
<p className="text-gray-700">
|
|
135
|
+
Just like OpenAPI doesn't implement APIs, OSSA doesn't implement agents.
|
|
136
|
+
It provides the standard that implementations follow.
|
|
137
|
+
</p>
|
|
138
|
+
</CardContent>
|
|
139
|
+
</Card>
|
|
140
|
+
<Card variant="default" padding="lg" elevation={1} hover>
|
|
141
|
+
<CardHeader>
|
|
142
|
+
<CardTitle className="text-primary">Framework-Agnostic</CardTitle>
|
|
143
|
+
</CardHeader>
|
|
144
|
+
<CardContent>
|
|
145
|
+
<p className="text-gray-700 mb-4">
|
|
146
|
+
Works seamlessly with any LLM framework or SDK - LangChain, Anthropic, OpenAI,
|
|
147
|
+
CrewAI, Langflow, AutoGen, and more.
|
|
148
|
+
</p>
|
|
149
|
+
<p className="text-gray-700">
|
|
150
|
+
Deploy to Kubernetes, Docker, serverless, or on-premise. OSSA is infrastructure-agnostic.
|
|
151
|
+
</p>
|
|
152
|
+
</CardContent>
|
|
153
|
+
</Card>
|
|
154
|
+
<Card variant="default" padding="lg" elevation={1} hover>
|
|
155
|
+
<CardHeader>
|
|
156
|
+
<CardTitle className="text-primary">Vendor-Neutral</CardTitle>
|
|
157
|
+
</CardHeader>
|
|
158
|
+
<CardContent>
|
|
159
|
+
<p className="text-gray-700 mb-4">
|
|
160
|
+
No vendor lock-in. Write once, deploy anywhere. Move agents between teams,
|
|
161
|
+
organizations, and infrastructures without rewriting code.
|
|
162
|
+
</p>
|
|
163
|
+
<p className="text-gray-700">
|
|
164
|
+
Maintained by the open source community, ensuring long-term viability and innovation.
|
|
165
|
+
</p>
|
|
166
|
+
</CardContent>
|
|
167
|
+
</Card>
|
|
155
168
|
</div>
|
|
156
169
|
|
|
157
170
|
{/* OpenAPI Comparison */}
|
|
@@ -162,9 +175,9 @@ export default function HomePage() {
|
|
|
162
175
|
</h3>
|
|
163
176
|
<div className="w-24 h-1 bg-gradient-to-r from-primary to-secondary mx-auto rounded-full"></div>
|
|
164
177
|
</div>
|
|
165
|
-
<div className="grid md:grid-cols-2 lg:grid-cols-4 gap-6 max-w-
|
|
166
|
-
<
|
|
167
|
-
<h4 className="text-xl font-bold mb-5 text-primary pb-3 border-b-2 border-blue-100">OpenAPI for REST
|
|
178
|
+
<div className="grid md:grid-cols-2 lg:grid-cols-4 gap-6 max-w-[1440px] mx-auto">
|
|
179
|
+
<Card variant="default" padding="md" elevation={2} hover className="border-2 border-blue-100">
|
|
180
|
+
<h4 className="text-xl font-bold mb-5 text-primary pb-3 border-b-2 border-blue-100">OpenAPI for REST</h4>
|
|
168
181
|
<ul className="space-y-3 text-gray-700">
|
|
169
182
|
<li className="flex items-start gap-3">
|
|
170
183
|
<svg className="w-5 h-5 text-primary mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
|
|
@@ -191,8 +204,8 @@ export default function HomePage() {
|
|
|
191
204
|
<span className="font-medium">JSON Schema validation</span>
|
|
192
205
|
</li>
|
|
193
206
|
</ul>
|
|
194
|
-
</
|
|
195
|
-
<
|
|
207
|
+
</Card>
|
|
208
|
+
<Card variant="default" padding="md" elevation={2} hover className="border-2 border-blue-100">
|
|
196
209
|
<h4 className="text-xl font-bold mb-5 text-secondary pb-3 border-b-2 border-cyan-100">OSSA for AI Agents</h4>
|
|
197
210
|
<ul className="space-y-3 text-gray-700">
|
|
198
211
|
<li className="flex items-start gap-3">
|
|
@@ -220,8 +233,8 @@ export default function HomePage() {
|
|
|
220
233
|
<span className="font-medium">JSON Schema validation</span>
|
|
221
234
|
</li>
|
|
222
235
|
</ul>
|
|
223
|
-
</
|
|
224
|
-
<
|
|
236
|
+
</Card>
|
|
237
|
+
<Card variant="default" padding="md" elevation={2} hover className="border-2 border-blue-100">
|
|
225
238
|
<h4 className="text-xl font-bold mb-5 text-primary pb-3 border-b-2 border-blue-100">OpenAPI Integration</h4>
|
|
226
239
|
<ul className="space-y-3 text-gray-700">
|
|
227
240
|
<li className="flex items-start gap-3">
|
|
@@ -249,8 +262,8 @@ export default function HomePage() {
|
|
|
249
262
|
<span className="font-medium">Unified API and agent standards</span>
|
|
250
263
|
</li>
|
|
251
264
|
</ul>
|
|
252
|
-
</
|
|
253
|
-
<
|
|
265
|
+
</Card>
|
|
266
|
+
<Card variant="default" padding="md" elevation={2} hover className="border-2 border-blue-100">
|
|
254
267
|
<h4 className="text-xl font-bold mb-5 text-secondary pb-3 border-b-2 border-cyan-100">API-to-Agent Bridge</h4>
|
|
255
268
|
<ul className="space-y-3 text-gray-700">
|
|
256
269
|
<li className="flex items-start gap-3">
|
|
@@ -278,57 +291,123 @@ export default function HomePage() {
|
|
|
278
291
|
<span className="font-medium">Bidirectional integration</span>
|
|
279
292
|
</li>
|
|
280
293
|
</ul>
|
|
281
|
-
</
|
|
294
|
+
</Card>
|
|
282
295
|
</div>
|
|
283
296
|
</div>
|
|
284
297
|
</div>
|
|
285
298
|
</section>
|
|
286
299
|
|
|
300
|
+
{/* Why OSSA - The Problem Section */}
|
|
301
|
+
<section className="py-16 px-4 bg-white">
|
|
302
|
+
<div className="container mx-auto max-w-5xl">
|
|
303
|
+
<div className="text-center mb-12">
|
|
304
|
+
<h2 className="text-4xl md:text-5xl font-bold mb-4 text-gray-900">Why Does This Matter?</h2>
|
|
305
|
+
<p className="text-xl text-gray-600">Leading with portability, regulatory compliance, and vendor independence</p>
|
|
306
|
+
</div>
|
|
307
|
+
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
|
|
308
|
+
<Card variant="default" padding="lg" elevation={1}>
|
|
309
|
+
<h3 className="text-2xl font-bold mb-3 text-gray-900">Portability: Avoid Vendor Lock-in</h3>
|
|
310
|
+
<p className="text-lg text-gray-700 leading-relaxed">
|
|
311
|
+
Switch between AI providers (OpenAI, Anthropic, Azure) without rewriting code. Define your agent once in OSSA format,
|
|
312
|
+
deploy anywhere. No more complete rewrites when changing frameworks.
|
|
313
|
+
</p>
|
|
314
|
+
</Card>
|
|
315
|
+
<Card variant="default" padding="lg" elevation={1}>
|
|
316
|
+
<h3 className="text-2xl font-bold mb-3 text-gray-900">Regulatory Compliance: Built-in Frameworks</h3>
|
|
317
|
+
<p className="text-lg text-gray-700 leading-relaxed">
|
|
318
|
+
Meet SOC2, FedRAMP, HIPAA, and GDPR requirements with standardized security models, audit trails,
|
|
319
|
+
and data boundary controls. Compliance-ready from day one.
|
|
320
|
+
</p>
|
|
321
|
+
</Card>
|
|
322
|
+
<Card variant="default" padding="lg" elevation={1}>
|
|
323
|
+
<h3 className="text-2xl font-bold mb-3 text-gray-900">Vendor Independence: True Interoperability</h3>
|
|
324
|
+
<p className="text-lg text-gray-700 leading-relaxed">
|
|
325
|
+
Community-driven standard, not controlled by any single company. Works with LangChain, CrewAI, AutoGen,
|
|
326
|
+
and any framework. Your agents, your choice.
|
|
327
|
+
</p>
|
|
328
|
+
</Card>
|
|
329
|
+
</div>
|
|
330
|
+
<Card variant="featured" padding="lg" elevation={3}>
|
|
331
|
+
<p className="text-2xl text-gray-900 font-bold mb-4">
|
|
332
|
+
OSSA solves this for AI agents.
|
|
333
|
+
</p>
|
|
334
|
+
<p className="text-xl text-gray-700">
|
|
335
|
+
<strong>One standard. Any framework. True portability.</strong> Define your agent once in OSSA format,
|
|
336
|
+
then deploy it with LangChain, CrewAI, Anthropic, OpenAI, or any other framework. Just like OpenAPI
|
|
337
|
+
unified REST APIs, OSSA unifies AI agents.
|
|
338
|
+
</p>
|
|
339
|
+
</Card>
|
|
340
|
+
</div>
|
|
341
|
+
</section>
|
|
342
|
+
|
|
287
343
|
{/* Quick Start Section */}
|
|
288
344
|
<section id="get-started" className="py-20 px-4 bg-gray-50 scroll-mt-20">
|
|
289
|
-
<div className="container mx-auto max-w-
|
|
345
|
+
<div className="container mx-auto max-w-[1440px]">
|
|
290
346
|
<div className="text-center mb-12">
|
|
291
|
-
<
|
|
347
|
+
<div className="flex items-center justify-center mb-6">
|
|
348
|
+
<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">
|
|
349
|
+
<svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
350
|
+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
|
|
351
|
+
</svg>
|
|
352
|
+
</div>
|
|
353
|
+
<h2 className="text-5xl font-bold text-primary">Get Started in Minutes</h2>
|
|
354
|
+
</div>
|
|
292
355
|
<p className="text-xl text-gray-600 max-w-3xl mx-auto">
|
|
293
356
|
Install the CLI, create your first agent, and start building with Open Standard Agents.
|
|
294
357
|
</p>
|
|
295
358
|
</div>
|
|
296
359
|
|
|
297
360
|
<div className="grid md:grid-cols-2 gap-8 max-w-5xl mx-auto mb-12">
|
|
298
|
-
<
|
|
299
|
-
<
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
361
|
+
<Card variant="default" padding="lg" elevation={2}>
|
|
362
|
+
<CardHeader>
|
|
363
|
+
<CardTitle className="text-primary">1. Install CLI</CardTitle>
|
|
364
|
+
</CardHeader>
|
|
365
|
+
<CardContent>
|
|
366
|
+
<div className="bg-code-bg rounded-lg p-3 sm:p-4 overflow-x-auto">
|
|
367
|
+
<pre className="text-code-text text-xs sm:text-sm whitespace-pre-wrap break-all sm:break-normal sm:whitespace-pre">
|
|
368
|
+
<code>npm install -g @bluefly/openstandardagents</code>
|
|
369
|
+
</pre>
|
|
370
|
+
</div>
|
|
371
|
+
</CardContent>
|
|
372
|
+
</Card>
|
|
373
|
+
<Card variant="default" padding="lg" elevation={2}>
|
|
374
|
+
<CardHeader>
|
|
375
|
+
<CardTitle className="text-primary">2. Create Agent</CardTitle>
|
|
376
|
+
</CardHeader>
|
|
377
|
+
<CardContent>
|
|
378
|
+
<div className="bg-code-bg rounded-lg p-3 sm:p-4 overflow-x-auto">
|
|
379
|
+
<pre className="text-code-text text-xs sm:text-sm whitespace-pre-wrap break-all sm:break-normal sm:whitespace-pre">
|
|
380
|
+
<code>{`osa init my-agent
|
|
311
381
|
cd my-agent`}</code>
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
<
|
|
318
|
-
<
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
382
|
+
</pre>
|
|
383
|
+
</div>
|
|
384
|
+
</CardContent>
|
|
385
|
+
</Card>
|
|
386
|
+
<Card variant="default" padding="lg" elevation={2}>
|
|
387
|
+
<CardHeader>
|
|
388
|
+
<CardTitle className="text-primary">3. Validate</CardTitle>
|
|
389
|
+
</CardHeader>
|
|
390
|
+
<CardContent>
|
|
391
|
+
<div className="bg-code-bg rounded-lg p-3 sm:p-4 overflow-x-auto">
|
|
392
|
+
<pre className="text-code-text text-xs sm:text-sm whitespace-pre-wrap break-all sm:break-normal sm:whitespace-pre">
|
|
393
|
+
<code>osa validate my-agent.ossa.yaml</code>
|
|
394
|
+
</pre>
|
|
395
|
+
</div>
|
|
396
|
+
</CardContent>
|
|
397
|
+
</Card>
|
|
398
|
+
<Card variant="default" padding="lg" elevation={2}>
|
|
399
|
+
<CardHeader>
|
|
400
|
+
<CardTitle className="text-primary">4. Export</CardTitle>
|
|
401
|
+
</CardHeader>
|
|
402
|
+
<CardContent>
|
|
403
|
+
<div className="bg-code-bg rounded-lg p-3 sm:p-4 overflow-x-auto">
|
|
404
|
+
<pre className="text-code-text text-xs sm:text-sm whitespace-pre-wrap break-all sm:break-normal sm:whitespace-pre">
|
|
405
|
+
<code>{`osa export --to cursor
|
|
328
406
|
osa export --to langchain`}</code>
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
407
|
+
</pre>
|
|
408
|
+
</div>
|
|
409
|
+
</CardContent>
|
|
410
|
+
</Card>
|
|
332
411
|
</div>
|
|
333
412
|
|
|
334
413
|
<div className="text-center">
|
|
@@ -339,9 +418,110 @@ osa export --to langchain`}</code>
|
|
|
339
418
|
</div>
|
|
340
419
|
</section>
|
|
341
420
|
|
|
421
|
+
{/* Comparison Matrix Section */}
|
|
422
|
+
<section className="py-20 px-4 bg-gradient-to-br from-gray-50 to-blue-50">
|
|
423
|
+
<div className="container mx-auto max-w-[1440px]">
|
|
424
|
+
<div className="text-center mb-12">
|
|
425
|
+
<h2 className="text-4xl md:text-5xl font-bold mb-4">How OSSA Compares</h2>
|
|
426
|
+
<p className="text-xl text-gray-600 max-w-3xl mx-auto">
|
|
427
|
+
OSSA is a specification standard, not a framework. See how it enables true interoperability.
|
|
428
|
+
</p>
|
|
429
|
+
</div>
|
|
430
|
+
|
|
431
|
+
{/* Desktop Table */}
|
|
432
|
+
<div className="hidden lg:block overflow-x-auto">
|
|
433
|
+
<table className="w-full bg-white rounded-lg shadow-lg overflow-hidden">
|
|
434
|
+
<thead className="bg-gradient-to-r from-primary to-secondary text-white">
|
|
435
|
+
<tr>
|
|
436
|
+
<th className="px-6 py-4 text-left font-bold">Feature</th>
|
|
437
|
+
<th className="px-6 py-4 text-center font-bold">OSSA</th>
|
|
438
|
+
<th className="px-6 py-4 text-center font-bold">LangChain</th>
|
|
439
|
+
<th className="px-6 py-4 text-center font-bold">AutoGen</th>
|
|
440
|
+
<th className="px-6 py-4 text-center font-bold">MCP</th>
|
|
441
|
+
<th className="px-6 py-4 text-center font-bold">Semantic Kernel</th>
|
|
442
|
+
</tr>
|
|
443
|
+
</thead>
|
|
444
|
+
<tbody className="divide-y divide-gray-200">
|
|
445
|
+
<tr className="hover:bg-gray-50">
|
|
446
|
+
<td className="px-6 py-4 font-medium text-gray-900">Vendor Neutral<br/><span className="text-sm font-normal text-gray-600">Not controlled by any single company</span></td>
|
|
447
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
448
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
449
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
450
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
451
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
452
|
+
</tr>
|
|
453
|
+
<tr className="hover:bg-gray-50 bg-blue-50">
|
|
454
|
+
<td className="px-6 py-4 font-medium text-gray-900">Formal Standard<br/><span className="text-sm font-normal text-gray-600">JSON Schema validated specification</span></td>
|
|
455
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
456
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
457
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
458
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
459
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
460
|
+
</tr>
|
|
461
|
+
<tr className="hover:bg-gray-50">
|
|
462
|
+
<td className="px-6 py-4 font-medium text-gray-900">Multi-runtime<br/><span className="text-sm font-normal text-gray-600">Works across Node.js, Python, and more</span></td>
|
|
463
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
464
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
465
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
466
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
467
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
468
|
+
</tr>
|
|
469
|
+
<tr className="hover:bg-gray-50 bg-blue-50">
|
|
470
|
+
<td className="px-6 py-4 font-medium text-gray-900">Enterprise Governance<br/><span className="text-sm font-normal text-gray-600">Built-in audit trails and policy controls</span></td>
|
|
471
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
472
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
473
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
474
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
475
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
476
|
+
</tr>
|
|
477
|
+
<tr className="hover:bg-gray-50">
|
|
478
|
+
<td className="px-6 py-4 font-medium text-gray-900">Compliance Ready<br/><span className="text-sm font-normal text-gray-600">SOC2, FedRAMP, HIPAA, GDPR frameworks</span></td>
|
|
479
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
480
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
481
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
482
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
483
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-red-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" /></svg></td>
|
|
484
|
+
</tr>
|
|
485
|
+
<tr className="hover:bg-gray-50 bg-blue-50">
|
|
486
|
+
<td className="px-6 py-4 font-medium text-gray-900">Open Source<br/><span className="text-sm font-normal text-gray-600">Community-driven development</span></td>
|
|
487
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
488
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
489
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
490
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
491
|
+
<td className="px-6 py-4 text-center"><svg className="w-6 h-6 mx-auto text-green-600" fill="currentColor" viewBox="0 0 20 20"><path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" /></svg></td>
|
|
492
|
+
</tr>
|
|
493
|
+
</tbody>
|
|
494
|
+
</table>
|
|
495
|
+
</div>
|
|
496
|
+
|
|
497
|
+
{/* Mobile Cards */}
|
|
498
|
+
<div className="lg:hidden space-y-4">
|
|
499
|
+
<Card variant="featured" padding="lg" elevation={2}>
|
|
500
|
+
<h3 className="text-xl font-bold mb-4 text-primary">OSSA</h3>
|
|
501
|
+
<div className="space-y-2 text-sm">
|
|
502
|
+
<div className="flex justify-between"><span>Vendor Neutral</span><span className="text-xl">✅</span></div>
|
|
503
|
+
<div className="flex justify-between"><span>Formal Standard</span><span className="text-xl">✅</span></div>
|
|
504
|
+
<div className="flex justify-between"><span>Multi-runtime</span><span className="text-xl">✅</span></div>
|
|
505
|
+
<div className="flex justify-between"><span>Enterprise Governance</span><span className="text-xl">✅</span></div>
|
|
506
|
+
<div className="flex justify-between"><span>Compliance Ready</span><span className="text-xl">✅</span></div>
|
|
507
|
+
<div className="flex justify-between"><span>Open Source</span><span className="text-xl">✅</span></div>
|
|
508
|
+
</div>
|
|
509
|
+
</Card>
|
|
510
|
+
<Card variant="default" padding="md" elevation={1}>
|
|
511
|
+
<h3 className="text-lg font-bold mb-3">LangChain / AutoGen / Semantic Kernel</h3>
|
|
512
|
+
<p className="text-sm text-gray-600">Framework-specific implementations. Open source but vendor-controlled.</p>
|
|
513
|
+
</Card>
|
|
514
|
+
<Card variant="default" padding="md" elevation={1}>
|
|
515
|
+
<h3 className="text-lg font-bold mb-3">MCP (Model Context Protocol)</h3>
|
|
516
|
+
<p className="text-sm text-gray-600">Formal standard with multi-runtime support. Focused on context, not full agent lifecycle.</p>
|
|
517
|
+
</Card>
|
|
518
|
+
</div>
|
|
519
|
+
</div>
|
|
520
|
+
</section>
|
|
521
|
+
|
|
342
522
|
{/* Integrations & Adoption Section */}
|
|
343
523
|
<section className="py-16 px-4 bg-gray-50">
|
|
344
|
-
<div className="container mx-auto max-w-
|
|
524
|
+
<div className="container mx-auto max-w-[1440px]">
|
|
345
525
|
<div className="text-center mb-12">
|
|
346
526
|
<h2 className="text-4xl font-bold mb-4">Works With Your Favorite Tools</h2>
|
|
347
527
|
<p className="text-xl text-gray-600 max-w-3xl mx-auto">
|
|
@@ -389,7 +569,7 @@ osa export --to langchain`}</code>
|
|
|
389
569
|
|
|
390
570
|
{/* Features Section */}
|
|
391
571
|
<section className="py-20 px-4 bg-white">
|
|
392
|
-
<div className="container mx-auto max-w-
|
|
572
|
+
<div className="container mx-auto max-w-[1440px]">
|
|
393
573
|
<div className="text-center mb-16">
|
|
394
574
|
<h2 className="text-5xl font-bold mb-6">Why Open Standard Agents?</h2>
|
|
395
575
|
<p className="text-xl text-gray-600 max-w-3xl mx-auto">
|
|
@@ -399,55 +579,87 @@ osa export --to langchain`}</code>
|
|
|
399
579
|
</div>
|
|
400
580
|
|
|
401
581
|
<div className="grid md:grid-cols-2 lg:grid-cols-4 gap-8">
|
|
402
|
-
<
|
|
403
|
-
<
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
<
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
</
|
|
432
|
-
</
|
|
433
|
-
<
|
|
434
|
-
<
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
<
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
582
|
+
<Card variant="default" padding="md" elevation={1} hover className="text-center">
|
|
583
|
+
<CardHeader>
|
|
584
|
+
<CardTitle className="text-xl">Framework-Agnostic</CardTitle>
|
|
585
|
+
</CardHeader>
|
|
586
|
+
<CardContent>
|
|
587
|
+
<p className="text-gray-700">
|
|
588
|
+
Works with LangChain, Anthropic, OpenAI, CrewAI, Langflow, AutoGen, and more.
|
|
589
|
+
No vendor lock-in.
|
|
590
|
+
</p>
|
|
591
|
+
</CardContent>
|
|
592
|
+
</Card>
|
|
593
|
+
<Card variant="default" padding="md" elevation={1} hover className="text-center">
|
|
594
|
+
<CardHeader>
|
|
595
|
+
<CardTitle className="text-xl">Portable</CardTitle>
|
|
596
|
+
</CardHeader>
|
|
597
|
+
<CardContent>
|
|
598
|
+
<p className="text-gray-700">
|
|
599
|
+
Move agents between teams, organizations, and infrastructures without rewriting code.
|
|
600
|
+
</p>
|
|
601
|
+
</CardContent>
|
|
602
|
+
</Card>
|
|
603
|
+
<Card variant="default" padding="md" elevation={1} hover className="text-center">
|
|
604
|
+
<CardHeader>
|
|
605
|
+
<CardTitle className="text-xl">Validatable</CardTitle>
|
|
606
|
+
</CardHeader>
|
|
607
|
+
<CardContent>
|
|
608
|
+
<p className="text-gray-700">
|
|
609
|
+
JSON Schema validation ensures correctness before deployment. Catch errors early.
|
|
610
|
+
</p>
|
|
611
|
+
</CardContent>
|
|
612
|
+
</Card>
|
|
613
|
+
<Card variant="default" padding="md" elevation={1} hover className="text-center">
|
|
614
|
+
<CardHeader>
|
|
615
|
+
<CardTitle className="text-xl">Well-Documented</CardTitle>
|
|
616
|
+
</CardHeader>
|
|
617
|
+
<CardContent>
|
|
618
|
+
<p className="text-gray-700">
|
|
619
|
+
Comprehensive documentation, examples, and tooling. Built for developers, by developers.
|
|
620
|
+
</p>
|
|
621
|
+
</CardContent>
|
|
622
|
+
</Card>
|
|
623
|
+
<Card variant="default" padding="md" elevation={1} hover className="text-center">
|
|
624
|
+
<CardHeader>
|
|
625
|
+
<CardTitle className="text-xl">Open Source</CardTitle>
|
|
626
|
+
</CardHeader>
|
|
627
|
+
<CardContent>
|
|
628
|
+
<p className="text-gray-700">
|
|
629
|
+
Apache 2.0 licensed. Community-driven. Transparent development process.
|
|
630
|
+
</p>
|
|
631
|
+
</CardContent>
|
|
632
|
+
</Card>
|
|
633
|
+
<Card variant="default" padding="md" elevation={1} hover className="text-center">
|
|
634
|
+
<CardHeader>
|
|
635
|
+
<CardTitle className="text-xl">Fast Integration</CardTitle>
|
|
636
|
+
</CardHeader>
|
|
637
|
+
<CardContent>
|
|
638
|
+
<p className="text-gray-700">
|
|
639
|
+
Export to any framework format. Import existing agents. Seamless migration paths.
|
|
640
|
+
</p>
|
|
641
|
+
</CardContent>
|
|
642
|
+
</Card>
|
|
643
|
+
<Card variant="default" padding="md" elevation={1} hover className="text-center">
|
|
644
|
+
<CardHeader>
|
|
645
|
+
<CardTitle className="text-xl">Secure by Design</CardTitle>
|
|
646
|
+
</CardHeader>
|
|
647
|
+
<CardContent>
|
|
648
|
+
<p className="text-gray-700">
|
|
649
|
+
Built-in security patterns, authentication, and compliance features.
|
|
650
|
+
</p>
|
|
651
|
+
</CardContent>
|
|
652
|
+
</Card>
|
|
653
|
+
<Card variant="default" padding="md" elevation={1} hover className="text-center">
|
|
654
|
+
<CardHeader>
|
|
655
|
+
<CardTitle className="text-xl">Observable</CardTitle>
|
|
656
|
+
</CardHeader>
|
|
657
|
+
<CardContent>
|
|
658
|
+
<p className="text-gray-700">
|
|
659
|
+
Built-in observability, logging, and monitoring. Track agent performance and behavior.
|
|
660
|
+
</p>
|
|
661
|
+
</CardContent>
|
|
662
|
+
</Card>
|
|
451
663
|
</div>
|
|
452
664
|
</div>
|
|
453
665
|
</section>
|