@bluefly/openstandardagents 0.1.9 → 0.2.5-RC

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1074) hide show
  1. package/.cursorrules +84 -0
  2. package/.devfile.yaml +87 -0
  3. package/.env.example +25 -3
  4. package/.eslintrc.cjs +43 -0
  5. package/.github/PULL_REQUEST_TEMPLATE.md +39 -0
  6. package/.github/dependabot.yml +58 -0
  7. package/.github/workflows/ci.yml +154 -0
  8. package/.github/workflows/codeql.yml +41 -0
  9. package/.github/workflows/dependabot-auto-merge.yml +28 -0
  10. package/.github/workflows/release.yml +103 -0
  11. package/.kiro/specs/agent-buildkit-templates/design.md +495 -0
  12. package/.kiro/specs/agent-buildkit-templates/requirements.md +165 -0
  13. package/.kiro/specs/kiro-ide-supercharger/README.md +202 -0
  14. package/.kiro/specs/kiro-ide-supercharger/design.md +1005 -0
  15. package/.kiro/specs/kiro-ide-supercharger/requirements.md +141 -0
  16. package/.kiro/specs/kiro-ide-supercharger/tasks.md +507 -0
  17. package/.kiro/specs/website-design-audit/design.md +679 -0
  18. package/.kiro/specs/website-design-audit/requirements.md +199 -0
  19. package/.prettierignore +7 -0
  20. package/.prettierrc.json +10 -0
  21. package/.redocly.yaml +8 -62
  22. package/.releaserc.json +85 -0
  23. package/.version.json +6 -0
  24. package/CHANGELOG.md +196 -0
  25. package/CONTRIBUTING.md +267 -0
  26. package/LICENSE +190 -0
  27. package/README.md +253 -454
  28. package/bin/ossa +29 -0
  29. package/bin/ossa-validate-all +55 -0
  30. package/bin/ossa-version +23 -0
  31. package/bin/validate-ossa-0.2.2.ts +244 -0
  32. package/bin/validate-ossa-0.2.4.ts +244 -0
  33. package/bin/validate-ossa-0.2.5-RC.ts +244 -0
  34. package/bin/validate-ossa.ts +273 -0
  35. package/dist/di-container.d.ts +1 -1
  36. package/dist/di-container.d.ts.map +1 -1
  37. package/dist/di-container.js +0 -3
  38. package/dist/di-container.js.map +1 -1
  39. package/dist/index.d.ts +9 -27
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +13 -33
  42. package/dist/index.js.map +1 -1
  43. package/dist/repositories/schema.repository.d.ts +16 -1
  44. package/dist/repositories/schema.repository.d.ts.map +1 -1
  45. package/dist/repositories/schema.repository.js +94 -17
  46. package/dist/repositories/schema.repository.js.map +1 -1
  47. package/dist/services/generation.service.d.ts +7 -5
  48. package/dist/services/generation.service.d.ts.map +1 -1
  49. package/dist/services/generation.service.js +93 -45
  50. package/dist/services/generation.service.js.map +1 -1
  51. package/dist/services/gitlab-agent.service.d.ts.map +1 -1
  52. package/dist/services/gitlab-agent.service.js +12 -8
  53. package/dist/services/gitlab-agent.service.js.map +1 -1
  54. package/dist/services/migration.service.d.ts +3 -3
  55. package/dist/services/migration.service.d.ts.map +1 -1
  56. package/dist/services/migration.service.js +108 -61
  57. package/dist/services/migration.service.js.map +1 -1
  58. package/dist/services/release-automation/base-crud.service.d.ts +93 -0
  59. package/dist/services/release-automation/base-crud.service.d.ts.map +1 -0
  60. package/dist/services/release-automation/base-crud.service.js +68 -0
  61. package/dist/services/release-automation/base-crud.service.js.map +1 -0
  62. package/dist/services/release-automation/index.d.ts +12 -0
  63. package/dist/services/release-automation/index.d.ts.map +1 -0
  64. package/dist/services/release-automation/index.js +12 -0
  65. package/dist/services/release-automation/index.js.map +1 -0
  66. package/dist/services/release-automation/merge-request.service.d.ts +119 -0
  67. package/dist/services/release-automation/merge-request.service.d.ts.map +1 -0
  68. package/dist/services/release-automation/merge-request.service.js +212 -0
  69. package/dist/services/release-automation/merge-request.service.js.map +1 -0
  70. package/dist/services/release-automation/milestone.service.d.ts +104 -0
  71. package/dist/services/release-automation/milestone.service.d.ts.map +1 -0
  72. package/dist/services/release-automation/milestone.service.js +207 -0
  73. package/dist/services/release-automation/milestone.service.js.map +1 -0
  74. package/dist/services/release-automation/release.service.d.ts +118 -0
  75. package/dist/services/release-automation/release.service.d.ts.map +1 -0
  76. package/dist/services/release-automation/release.service.js +207 -0
  77. package/dist/services/release-automation/release.service.js.map +1 -0
  78. package/dist/services/release-automation/schemas/release.schema.d.ts +299 -0
  79. package/dist/services/release-automation/schemas/release.schema.d.ts.map +1 -0
  80. package/dist/services/release-automation/schemas/release.schema.js +269 -0
  81. package/dist/services/release-automation/schemas/release.schema.js.map +1 -0
  82. package/dist/services/release-automation/tag.service.d.ts +99 -0
  83. package/dist/services/release-automation/tag.service.d.ts.map +1 -0
  84. package/dist/services/release-automation/tag.service.js +180 -0
  85. package/dist/services/release-automation/tag.service.js.map +1 -0
  86. package/dist/services/release-automation/webhook.service.d.ts +37 -0
  87. package/dist/services/release-automation/webhook.service.d.ts.map +1 -0
  88. package/dist/services/release-automation/webhook.service.js +173 -0
  89. package/dist/services/release-automation/webhook.service.js.map +1 -0
  90. package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
  91. package/dist/services/runtime/openai.adapter.js.map +1 -1
  92. package/dist/services/validation.service.d.ts.map +1 -1
  93. package/dist/services/validation.service.js +24 -11
  94. package/dist/services/validation.service.js.map +1 -1
  95. package/dist/services/validators/anthropic.validator.d.ts +2 -2
  96. package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
  97. package/dist/services/validators/anthropic.validator.js +14 -9
  98. package/dist/services/validators/anthropic.validator.js.map +1 -1
  99. package/dist/services/validators/autogen.validator.d.ts +2 -2
  100. package/dist/services/validators/autogen.validator.d.ts.map +1 -1
  101. package/dist/services/validators/autogen.validator.js +18 -15
  102. package/dist/services/validators/autogen.validator.js.map +1 -1
  103. package/dist/services/validators/crewai.validator.d.ts +2 -2
  104. package/dist/services/validators/crewai.validator.d.ts.map +1 -1
  105. package/dist/services/validators/crewai.validator.js +18 -17
  106. package/dist/services/validators/crewai.validator.js.map +1 -1
  107. package/dist/services/validators/cursor.validator.d.ts +2 -2
  108. package/dist/services/validators/cursor.validator.d.ts.map +1 -1
  109. package/dist/services/validators/cursor.validator.js +15 -11
  110. package/dist/services/validators/cursor.validator.js.map +1 -1
  111. package/dist/services/validators/langchain.validator.d.ts +2 -2
  112. package/dist/services/validators/langchain.validator.d.ts.map +1 -1
  113. package/dist/services/validators/langchain.validator.js +14 -11
  114. package/dist/services/validators/langchain.validator.js.map +1 -1
  115. package/dist/services/validators/langflow.validator.d.ts +2 -2
  116. package/dist/services/validators/langflow.validator.d.ts.map +1 -1
  117. package/dist/services/validators/langflow.validator.js +14 -9
  118. package/dist/services/validators/langflow.validator.js.map +1 -1
  119. package/dist/services/validators/langgraph.validator.d.ts +2 -2
  120. package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
  121. package/dist/services/validators/langgraph.validator.js +23 -18
  122. package/dist/services/validators/langgraph.validator.js.map +1 -1
  123. package/dist/services/validators/llamaindex.validator.d.ts +2 -2
  124. package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
  125. package/dist/services/validators/llamaindex.validator.js +19 -16
  126. package/dist/services/validators/llamaindex.validator.js.map +1 -1
  127. package/dist/services/validators/openai.validator.d.ts +2 -2
  128. package/dist/services/validators/openai.validator.d.ts.map +1 -1
  129. package/dist/services/validators/openai.validator.js +20 -16
  130. package/dist/services/validators/openai.validator.js.map +1 -1
  131. package/dist/services/validators/vercel-ai.validator.d.ts +2 -2
  132. package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
  133. package/dist/services/validators/vercel-ai.validator.js +16 -15
  134. package/dist/services/validators/vercel-ai.validator.js.map +1 -1
  135. package/dist/spec/v0.2.3/CHANGELOG.md +176 -0
  136. package/dist/spec/v0.2.3/README.md +4 -4
  137. package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +7 -7
  138. package/dist/spec/v0.2.4/CHANGELOG.md +403 -0
  139. package/dist/spec/v0.2.4/migrations/v0.2.3-to-v0.2.4.md +599 -0
  140. package/dist/spec/v0.2.4/ossa-0.2.4-dev.schema.json +1696 -0
  141. package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
  142. package/dist/spec/v0.2.5/CHANGELOG.md +401 -0
  143. package/dist/spec/v0.2.5/README.md +72 -0
  144. package/dist/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
  145. package/dist/spec/v0.2.5/ossa-0.2.5.schema.json +1696 -0
  146. package/dist/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
  147. package/dist/spec/v0.2.5-RC/CHANGELOG.md +401 -0
  148. package/dist/spec/v0.2.5-RC/README.md +72 -0
  149. package/dist/spec/v0.2.5-RC/migrations/v0.2.3-to-v0.2.4.md +599 -0
  150. package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
  151. package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
  152. package/dist/types/index.d.ts +164 -260
  153. package/dist/types/index.d.ts.map +1 -1
  154. package/dist/types/index.js +3 -65
  155. package/dist/types/index.js.map +1 -1
  156. package/docs/issue-19-completion-summary.md +648 -0
  157. package/docs/issue-19-validation.md +351 -0
  158. package/examples/adk-integration/code-review-workflow.yml +136 -0
  159. package/examples/adk-integration/customer-support.yml +263 -0
  160. package/examples/adk-integration/data-pipeline.yml +173 -0
  161. package/examples/advanced/patterns/compliance-context-production.json +53 -0
  162. package/examples/advanced/patterns/model-router.ts +274 -0
  163. package/examples/advanced/patterns/smart-model-routing.ts +248 -0
  164. package/examples/advanced/workflows/hybrid-model-strategy.yaml +232 -0
  165. package/examples/agent-manifests/critics/critic-agent.yaml +149 -0
  166. package/examples/agent-manifests/governors/governor-agent.yaml +128 -0
  167. package/examples/agent-manifests/integrators/integrator-agent.yaml +103 -0
  168. package/examples/agent-manifests/judges/judge-agent.yaml +153 -0
  169. package/examples/agent-manifests/monitors/monitor-agent.yaml +122 -0
  170. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +247 -0
  171. package/examples/agent-manifests/sample-compliant-agent.yaml +147 -0
  172. package/examples/agent-manifests/workers/worker-agent.yaml +82 -0
  173. package/examples/anthropic/claude-assistant.ossa.json +45 -0
  174. package/examples/architecture/model-configuration/ollama-integration.ts +110 -0
  175. package/examples/autogen/multi-agent.ossa.json +37 -0
  176. package/examples/bridge-configurations.yaml +346 -0
  177. package/examples/bridges/Dockerfile.production +87 -0
  178. package/examples/bridges/__pycache__/aiflow-bridge-enhanced.cpython-313.pyc +0 -0
  179. package/examples/bridges/__pycache__/aiflow-phoenix-tracing.cpython-313.pyc +0 -0
  180. package/examples/bridges/__pycache__/test_aiflow_integration.cpython-313.pyc +0 -0
  181. package/examples/bridges/aiflow-bridge-enhanced.py +462 -0
  182. package/examples/bridges/aiflow-bridge-example.yml +310 -0
  183. package/examples/bridges/aiflow-phoenix-tracing.py +310 -0
  184. package/examples/bridges/aiflow-registration-api.openapi.yml +439 -0
  185. package/examples/bridges/k8s/configmap.yaml +121 -0
  186. package/examples/bridges/k8s/deployment-simple.yaml +34 -0
  187. package/examples/bridges/k8s/deployment.yaml +275 -0
  188. package/examples/bridges/k8s/hpa.yaml +126 -0
  189. package/examples/bridges/k8s/ingress.yaml +155 -0
  190. package/examples/bridges/kagent-bridge-example.yml +94 -0
  191. package/examples/bridges/load-tests/Dockerfile +28 -0
  192. package/examples/bridges/load-tests/k6-load-test.js +302 -0
  193. package/examples/bridges/load-tests/requirements.txt +20 -0
  194. package/examples/bridges/loadtest/k6-scenarios.js +270 -0
  195. package/examples/bridges/phase4/SLO-SLA.yaml +249 -0
  196. package/examples/bridges/phase4/chaos-tests.yaml +226 -0
  197. package/examples/bridges/requirements.txt +24 -0
  198. package/examples/bridges/test_aiflow_integration.py +341 -0
  199. package/examples/common_npm/agent-router.ossa.yaml +182 -0
  200. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +60 -0
  201. package/examples/compliance-agent.yml +155 -0
  202. package/examples/crewai/research-team.ossa.json +36 -0
  203. package/examples/cursor/code-review-agent.ossa.json +47 -0
  204. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +609 -0
  205. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +68 -0
  206. package/examples/enterprise/agent.yml +452 -0
  207. package/examples/extensions/drupal-v1.yml +266 -0
  208. package/examples/extensions/kagent-v1.yml +167 -0
  209. package/examples/getting-started/hello-world-complete.ossa.yaml +266 -0
  210. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +376 -0
  211. package/examples/kagent/README.md +31 -0
  212. package/examples/kagent/compliance-validator.ossa.yaml +111 -0
  213. package/examples/kagent/cost-optimizer.ossa.yaml +93 -0
  214. package/examples/kagent/documentation-agent.ossa.yaml +91 -0
  215. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +269 -0
  216. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +106 -0
  217. package/examples/kagent/k8s-troubleshooter.ossa.yaml +257 -0
  218. package/examples/kagent/security-scanner.ossa.yaml +140 -0
  219. package/examples/langchain/chain-agent.ossa.json +42 -0
  220. package/examples/langflow/workflow-agent.ossa.json +39 -0
  221. package/examples/langgraph/state-machine-agent.ossa.json +59 -0
  222. package/examples/llamaindex/rag-agent.ossa.json +41 -0
  223. package/examples/migration-guides/from-langchain-to-ossa.yaml +309 -0
  224. package/examples/minimal/agent.yml +152 -0
  225. package/examples/minimal/openapi.yaml +95 -0
  226. package/examples/openai/basic-agent.ossa.yaml +61 -0
  227. package/examples/openai/multi-tool-agent.ossa.json +165 -0
  228. package/examples/openai/swarm-agent.ossa.json +59 -0
  229. package/examples/openapi-extensions/README.md +87 -0
  230. package/examples/openapi-extensions/minimal-agent-api.openapi.yml +288 -0
  231. package/examples/openapi-extensions/orchestrator-agent-api.openapi.yml +633 -0
  232. package/examples/openapi-extensions/worker-agent-api.openapi.yml +533 -0
  233. package/examples/production/agent.yml +713 -0
  234. package/examples/production/document-analyzer-openai.yml +134 -0
  235. package/examples/quickstart/support-agent.ossa.yaml +59 -0
  236. package/examples/service-registry-usage.ts +423 -0
  237. package/examples/spec-examples/audit-agent.yml +147 -0
  238. package/examples/spec-examples/chat-agent.yml +189 -0
  239. package/examples/spec-examples/compliance-agent.yml +204 -0
  240. package/examples/spec-examples/data-processing-agent.yml +132 -0
  241. package/examples/spec-examples/development-agent.yml +138 -0
  242. package/examples/spec-examples/edge-agent.yml +101 -0
  243. package/examples/spec-examples/integration-agent.yml +129 -0
  244. package/examples/spec-examples/monitoring-agent.yml +130 -0
  245. package/examples/spec-examples/serverless-agent.yml +82 -0
  246. package/examples/spec-examples/workflow-agent.yml +223 -0
  247. package/examples/templates/ossa-compliance.yaml +56 -0
  248. package/examples/typescript/advanced/demo-registry.ts +168 -0
  249. package/examples/typescript/mcpb-agent-example.ts +358 -0
  250. package/examples/vercel/edge-agent.ossa.json +43 -0
  251. package/infrastructure/docker-compose.yml +33 -0
  252. package/infrastructure/gitlab-agent/rbac.yaml +126 -0
  253. package/infrastructure/gitlab-agent/values.yaml +150 -0
  254. package/infrastructure/k8s/monitoring/00-namespace.yaml +7 -0
  255. package/infrastructure/k8s/monitoring/01-prometheus.yaml +142 -0
  256. package/infrastructure/k8s/monitoring/02-grafana.yaml +63 -0
  257. package/infrastructure/k8s/monitoring/03-lightweight.yaml +121 -0
  258. package/infrastructure/k8s/monitoring/README.md +73 -0
  259. package/infrastructure/k8s/monitoring/deploy.sh +38 -0
  260. package/openapi/CHANGELOG.md +21 -0
  261. package/openapi/README.md +46 -0
  262. package/openapi/core/ossa-core-api.openapi.yaml +1503 -0
  263. package/openapi/core/ossa-registry-api.openapi.yaml +980 -0
  264. package/openapi/core/ossa-registry.openapi.yaml +855 -0
  265. package/openapi/core/unified-agent-gateway.openapi.yaml +833 -0
  266. package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +136 -0
  267. package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +192 -0
  268. package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +149 -0
  269. package/openapi/reference-implementations/critic-agent-api.openapi.yaml +151 -0
  270. package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +217 -0
  271. package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +348 -0
  272. package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +149 -0
  273. package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +151 -0
  274. package/openapi/reference-implementations/governor-agent-api.openapi.yaml +193 -0
  275. package/openapi/reference-implementations/helm-generator.openapi.yaml +389 -0
  276. package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +165 -0
  277. package/openapi/reference-implementations/judge-agent-api.openapi.yaml +148 -0
  278. package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +167 -0
  279. package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +171 -0
  280. package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +171 -0
  281. package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +242 -0
  282. package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +187 -0
  283. package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +1530 -0
  284. package/openapi/reference-implementations/worker-agent-api.openapi.yaml +208 -0
  285. package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +193 -0
  286. package/package.json +120 -83
  287. package/release.config.js +79 -0
  288. package/scripts/bump-version.ts +57 -0
  289. package/scripts/enhanced-version-manager.ts +257 -0
  290. package/scripts/gen-types.ts +51 -0
  291. package/scripts/gen-zod.ts +51 -0
  292. package/scripts/lib/exec.ts +37 -0
  293. package/scripts/lib/file-ops.ts +58 -0
  294. package/scripts/lib/version.ts +83 -0
  295. package/scripts/process-doc-templates.ts +37 -0
  296. package/scripts/schemas/package.schema.ts +75 -0
  297. package/scripts/setup-branch-protection.sh +33 -0
  298. package/scripts/sync-version.ts +39 -0
  299. package/scripts/sync-versions.ts +488 -0
  300. package/scripts/validate-schema.ts +49 -0
  301. package/spec/v0.1.9/agent-autonomous-extensions.json +234 -0
  302. package/spec/v0.1.9/ecosystem-compliance.json +235 -0
  303. package/spec/v0.1.9/ossa-v0.1.9.schema.json +695 -0
  304. package/spec/v0.1.9/reasoning-compliance.json +654 -0
  305. package/spec/v0.2.2/kagent-enhancements.json +395 -0
  306. package/spec/v0.2.2/ossa-0.2.2.schema.json +906 -0
  307. package/spec/v0.2.2/ossa-0.2.2.yaml +448 -0
  308. package/spec/v0.2.2/ossa-reasoning-compliance-1.0.schema.json +424 -0
  309. package/spec/v0.2.3/CHANGELOG.md +176 -0
  310. package/spec/v0.2.3/README.md +154 -0
  311. package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +343 -0
  312. package/spec/v0.2.3/ossa-0.2.3.schema.json +1397 -0
  313. package/spec/v0.2.3/ossa-0.2.3.yaml +448 -0
  314. package/spec/v0.2.4/CHANGELOG.md +403 -0
  315. package/spec/v0.2.4/migrations/v0.2.3-to-v0.2.4.md +599 -0
  316. package/spec/v0.2.4/ossa-0.2.4-dev.schema.json +1696 -0
  317. package/spec/v0.2.4/ossa-0.2.4.schema.json +170 -68
  318. package/spec/v0.2.5/CHANGELOG.md +401 -0
  319. package/spec/v0.2.5/README.md +72 -0
  320. package/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
  321. package/spec/v0.2.5/ossa-0.2.5.schema.json +1696 -0
  322. package/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
  323. package/spec/v0.2.5-RC/CHANGELOG.md +401 -0
  324. package/spec/v0.2.5-RC/README.md +72 -0
  325. package/spec/v0.2.5-RC/migrations/v0.2.3-to-v0.2.4.md +599 -0
  326. package/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
  327. package/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
  328. package/test-results.xml +1 -0
  329. package/website/.lighthouserc.ts +24 -0
  330. package/website/.prettierrc +10 -0
  331. package/website/Dockerfile +30 -0
  332. package/website/app/about/page.tsx +295 -0
  333. package/website/app/blog/[slug]/page.tsx +208 -0
  334. package/website/app/blog/page.tsx +249 -0
  335. package/website/app/design-guide/page.tsx +511 -0
  336. package/website/app/docs/[[...slug]]/page.tsx +847 -0
  337. package/website/app/docs/core-concepts/project-structure/page.tsx +349 -0
  338. package/website/app/ecosystem/page.tsx +375 -0
  339. package/website/app/examples/page.tsx +133 -0
  340. package/website/app/globals.scss +135 -0
  341. package/website/app/layout.tsx +106 -0
  342. package/website/app/license/page.tsx +183 -0
  343. package/website/app/not-found.tsx +18 -0
  344. package/website/app/page.tsx +474 -0
  345. package/website/app/playground/page.tsx +487 -0
  346. package/website/app/robots.ts +19 -0
  347. package/website/app/rss.xml/route.ts +74 -0
  348. package/website/app/schema/page.tsx +1001 -0
  349. package/website/app/sitemap.ts +56 -0
  350. package/website/app/specification/page.tsx +287 -0
  351. package/website/components/InstallCommand.tsx +96 -0
  352. package/website/components/Logo.tsx +97 -0
  353. package/website/components/StructuredData.tsx +65 -0
  354. package/website/components/docs/DocsSearch.tsx +104 -0
  355. package/website/components/docs/DocsSidebar.tsx +155 -0
  356. package/website/components/docs/MarkdownContent.tsx +401 -0
  357. package/website/components/docs/VersionSelector.tsx +105 -0
  358. package/website/components/examples/ExamplesViewer.tsx +293 -0
  359. package/website/components/layout/Footer.tsx +116 -0
  360. package/website/components/layout/Header.tsx +168 -0
  361. package/website/components/schema/SchemaComponentsAccordion.tsx +84 -0
  362. package/website/components/schema/SchemaExplorer.tsx +213 -0
  363. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +285 -0
  364. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +198 -0
  365. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +286 -0
  366. package/website/content/blog/introducing-ossa-framework.md +328 -0
  367. package/website/content/blog/ossa-production-results.md +279 -0
  368. package/website/content/blog/welcome-to-ossa.md +43 -0
  369. package/website/content/blog/why-ai-agents-need-open-standard.md +98 -0
  370. package/website/content/docs/00-HOME.md +153 -0
  371. package/website/content/docs/AIFlow-Framework-Integration-with-OSSA.md +107 -0
  372. package/website/content/docs/Examples.md +71 -0
  373. package/website/content/docs/OpenAPI-Extensions.md +934 -0
  374. package/website/content/docs/adapters/openai-adapter.md +693 -0
  375. package/website/content/docs/architecture/execution-flow.md +335 -0
  376. package/website/content/docs/architecture/multi-agent-systems.md +737 -0
  377. package/website/content/docs/architecture/overview.md +121 -0
  378. package/website/content/docs/architecture/stack-integration.md +461 -0
  379. package/website/content/docs/changelog.md +246 -0
  380. package/website/content/docs/contributing.md +599 -0
  381. package/website/content/docs/core-concepts/Project-Structure.md +348 -0
  382. package/website/content/docs/ecosystem/framework-support.md +819 -0
  383. package/website/content/docs/ecosystem/overview.md +366 -0
  384. package/website/content/docs/examples/AIFlow-Framework-Integration-with-OSSA.md +107 -0
  385. package/website/content/docs/examples/Migration-Guides.md +214 -0
  386. package/website/content/docs/for-audiences/Architects.md +224 -0
  387. package/website/content/docs/for-audiences/Developers.md +220 -0
  388. package/website/content/docs/for-audiences/Enterprises.md +256 -0
  389. package/website/content/docs/for-audiences/Students-Researchers.md +122 -0
  390. package/website/content/docs/getting-started/5-Minute-Overview.md +85 -0
  391. package/website/content/docs/getting-started/First-Agent.md +196 -0
  392. package/website/content/docs/getting-started/Hello-World.md +184 -0
  393. package/website/content/docs/getting-started/Installation.md +155 -0
  394. package/website/content/docs/getting-started/index.md +92 -0
  395. package/website/content/docs/getting-started/running-agents.md +309 -0
  396. package/website/content/docs/getting-started.md +91 -0
  397. package/website/content/docs/integrations/aiflow.md +104 -0
  398. package/website/content/docs/integrations/drupal.md +105 -0
  399. package/website/content/docs/migration-guides/00-INDEX.md +76 -0
  400. package/website/content/docs/migration-guides/README.md +133 -0
  401. package/website/content/docs/migration-guides/agent-schema-comparison.md +232 -0
  402. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +1750 -0
  403. package/website/content/docs/migration-guides/crewai-to-ossa.md +274 -0
  404. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +2017 -0
  405. package/website/content/docs/migration-guides/general-agent-schema.yml +247 -0
  406. package/website/content/docs/migration-guides/index.md +133 -0
  407. package/website/content/docs/migration-guides/langchain-to-ossa.md +1714 -0
  408. package/website/content/docs/migration-guides/langflow-to-ossa.md +2075 -0
  409. package/website/content/docs/migration-guides/migration-manifest.json +64 -0
  410. package/website/content/docs/migration-guides/openai-to-ossa.md +1202 -0
  411. package/website/content/docs/openapi-extensions/examples.md +550 -0
  412. package/website/content/docs/openapi-extensions/index.md +551 -0
  413. package/website/content/docs/openapi-extensions/operation-extensions.md +457 -0
  414. package/website/content/docs/openapi-extensions/root-extensions.md +410 -0
  415. package/website/content/docs/ossa-compliant-badge.md +251 -0
  416. package/website/content/docs/pre-release/index.md +175 -0
  417. package/website/content/docs/quick-reference.md +17 -0
  418. package/website/content/docs/readme.md +35 -0
  419. package/website/content/docs/schema-reference/agent-spec.md +406 -0
  420. package/website/content/docs/schema-reference/autonomy.md +568 -0
  421. package/website/content/docs/schema-reference/constraints.md +543 -0
  422. package/website/content/docs/schema-reference/index.md +176 -0
  423. package/website/content/docs/schema-reference/llm-config.md +445 -0
  424. package/website/content/docs/schema-reference/observability.md +654 -0
  425. package/website/content/docs/schema-reference/ossa-manifest.md +309 -0
  426. package/website/content/docs/schema-reference/taxonomy.md +509 -0
  427. package/website/content/docs/schema-reference/tools.md +628 -0
  428. package/website/content/docs/templates/blog-post.md +43 -0
  429. package/website/content/docs/use-cases/00-index.md +395 -0
  430. package/website/content/docs/use-cases/cicd-code-review.md +1236 -0
  431. package/website/content/docs/use-cases/customer-support.md +1234 -0
  432. package/website/content/docs/use-cases/enterprise-compliance.md +1208 -0
  433. package/website/content/docs/use-cases/research-multi-agent.md +1161 -0
  434. package/website/content/docs/versioning.md +288 -0
  435. package/website/lib/version.ts +35 -0
  436. package/website/lib/versions.json +18 -17
  437. package/website/next.config.ts +18 -0
  438. package/website/nginx.conf +32 -0
  439. package/website/package-lock.json +9679 -0
  440. package/website/package.json +59 -0
  441. package/website/postcss.config.mjs +9 -0
  442. package/website/scripts/fetch-versions.js +166 -0
  443. package/website/scripts/generate-examples-index.js +163 -0
  444. package/website/scripts/merge-docs-to-wiki.ts +207 -0
  445. package/website/scripts/sync-version.js +72 -0
  446. package/website/scripts/sync-wiki.ts +322 -0
  447. package/website/scripts/upload-wiki.ts +199 -0
  448. package/website/styles/_variables.scss +36 -0
  449. package/website/tailwind.config.ts +136 -0
  450. package/.buildkit/agent-first-policy.sh +0 -65
  451. package/.buildkit/branching-workflow.json +0 -41
  452. package/.buildkit/hooks.yaml +0 -23
  453. package/.buildkit/install-buildkit-setup.cjs +0 -483
  454. package/.cursor/plans/ossa-comprehensive-enhancement-issue-audit-plan.plan.md +0 -735
  455. package/.cursor/plans/ossa-enterprise-transformation-plan-0ccaf09b.plan.md +0 -373
  456. package/.cursor/plans/ossa-milestone-organization-and-v0-2-4-release-6dafa4ec.plan.md +0 -214
  457. package/.cursor/rules/problems.json +0 -483
  458. package/.cursor/settings.json +0 -29
  459. package/.cursor/worktrees.json +0 -95
  460. package/.env.local +0 -31
  461. package/.github/ISSUE_TEMPLATE/README.md +0 -33
  462. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -61
  463. package/.github/ISSUE_TEMPLATE/config.yml +0 -12
  464. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -75
  465. package/.github/wiki_templates/home.md +0 -39
  466. package/.gitignore.bak +0 -489
  467. package/.gitlab-ci-trigger +0 -1
  468. package/.husky/pre-commit +0 -31
  469. package/.lintstagedrc.json +0 -16
  470. package/.vscode/extensions.json +0 -6
  471. package/.vscode/settings.json +0 -3
  472. package/AUDIT_FIXES.md +0 -139
  473. package/AUDIT_REPORT.md +0 -308
  474. package/BUILDKIT_INTEGRATION.md +0 -146
  475. package/Dockerfile +0 -35
  476. package/dist/adk/adapters/index.d.ts +0 -64
  477. package/dist/adk/adapters/index.d.ts.map +0 -1
  478. package/dist/adk/adapters/index.js +0 -257
  479. package/dist/adk/adapters/index.js.map +0 -1
  480. package/dist/adk/agents/custom-agent.d.ts +0 -55
  481. package/dist/adk/agents/custom-agent.d.ts.map +0 -1
  482. package/dist/adk/agents/custom-agent.js +0 -167
  483. package/dist/adk/agents/custom-agent.js.map +0 -1
  484. package/dist/adk/agents/index.d.ts +0 -64
  485. package/dist/adk/agents/index.d.ts.map +0 -1
  486. package/dist/adk/agents/index.js +0 -125
  487. package/dist/adk/agents/index.js.map +0 -1
  488. package/dist/adk/agents/llm-agent.d.ts +0 -27
  489. package/dist/adk/agents/llm-agent.d.ts.map +0 -1
  490. package/dist/adk/agents/llm-agent.js +0 -63
  491. package/dist/adk/agents/llm-agent.js.map +0 -1
  492. package/dist/adk/agents/workflow-agent.d.ts +0 -42
  493. package/dist/adk/agents/workflow-agent.d.ts.map +0 -1
  494. package/dist/adk/agents/workflow-agent.js +0 -144
  495. package/dist/adk/agents/workflow-agent.js.map +0 -1
  496. package/dist/adk/index.d.ts +0 -10
  497. package/dist/adk/index.d.ts.map +0 -1
  498. package/dist/adk/index.js +0 -10
  499. package/dist/adk/index.js.map +0 -1
  500. package/dist/adk/orchestration/index.d.ts +0 -63
  501. package/dist/adk/orchestration/index.d.ts.map +0 -1
  502. package/dist/adk/orchestration/index.js +0 -264
  503. package/dist/adk/orchestration/index.js.map +0 -1
  504. package/dist/adk/state/index.d.ts +0 -73
  505. package/dist/adk/state/index.d.ts.map +0 -1
  506. package/dist/adk/state/index.js +0 -177
  507. package/dist/adk/state/index.js.map +0 -1
  508. package/dist/adk/tools/index.d.ts +0 -65
  509. package/dist/adk/tools/index.d.ts.map +0 -1
  510. package/dist/adk/tools/index.js +0 -252
  511. package/dist/adk/tools/index.js.map +0 -1
  512. package/dist/cli/agent-deployment.d.ts +0 -34
  513. package/dist/cli/agent-deployment.d.ts.map +0 -1
  514. package/dist/cli/agent-deployment.js +0 -396
  515. package/dist/cli/agent-deployment.js.map +0 -1
  516. package/dist/cli/commands/discover.command.d.ts +0 -7
  517. package/dist/cli/commands/discover.command.d.ts.map +0 -1
  518. package/dist/cli/commands/discover.command.js +0 -80
  519. package/dist/cli/commands/discover.command.js.map +0 -1
  520. package/dist/cli/commands/export.command.d.ts +0 -7
  521. package/dist/cli/commands/export.command.d.ts.map +0 -1
  522. package/dist/cli/commands/export.command.js +0 -56
  523. package/dist/cli/commands/export.command.js.map +0 -1
  524. package/dist/cli/commands/generate.command.d.ts +0 -7
  525. package/dist/cli/commands/generate.command.d.ts.map +0 -1
  526. package/dist/cli/commands/generate.command.js +0 -66
  527. package/dist/cli/commands/generate.command.js.map +0 -1
  528. package/dist/cli/commands/gitlab-agent.command.d.ts +0 -8
  529. package/dist/cli/commands/gitlab-agent.command.d.ts.map +0 -1
  530. package/dist/cli/commands/gitlab-agent.command.js +0 -201
  531. package/dist/cli/commands/gitlab-agent.command.js.map +0 -1
  532. package/dist/cli/commands/import.command.d.ts +0 -7
  533. package/dist/cli/commands/import.command.d.ts.map +0 -1
  534. package/dist/cli/commands/import.command.js +0 -36
  535. package/dist/cli/commands/import.command.js.map +0 -1
  536. package/dist/cli/commands/init.command.d.ts +0 -7
  537. package/dist/cli/commands/init.command.d.ts.map +0 -1
  538. package/dist/cli/commands/init.command.js +0 -146
  539. package/dist/cli/commands/init.command.js.map +0 -1
  540. package/dist/cli/commands/migrate.command.d.ts +0 -7
  541. package/dist/cli/commands/migrate.command.d.ts.map +0 -1
  542. package/dist/cli/commands/migrate.command.js +0 -110
  543. package/dist/cli/commands/migrate.command.js.map +0 -1
  544. package/dist/cli/commands/ossa.d.ts +0 -9
  545. package/dist/cli/commands/ossa.d.ts.map +0 -1
  546. package/dist/cli/commands/ossa.js +0 -234
  547. package/dist/cli/commands/ossa.js.map +0 -1
  548. package/dist/cli/commands/run.command.d.ts +0 -7
  549. package/dist/cli/commands/run.command.d.ts.map +0 -1
  550. package/dist/cli/commands/run.command.js +0 -114
  551. package/dist/cli/commands/run.command.js.map +0 -1
  552. package/dist/cli/commands/schema.command.d.ts +0 -7
  553. package/dist/cli/commands/schema.command.d.ts.map +0 -1
  554. package/dist/cli/commands/schema.command.js +0 -72
  555. package/dist/cli/commands/schema.command.js.map +0 -1
  556. package/dist/cli/commands/validate.command.d.ts +0 -7
  557. package/dist/cli/commands/validate.command.d.ts.map +0 -1
  558. package/dist/cli/commands/validate.command.js +0 -125
  559. package/dist/cli/commands/validate.command.js.map +0 -1
  560. package/dist/cli/commands/worktree.d.ts +0 -7
  561. package/dist/cli/commands/worktree.d.ts.map +0 -1
  562. package/dist/cli/commands/worktree.js +0 -509
  563. package/dist/cli/commands/worktree.js.map +0 -1
  564. package/dist/cli/index.d.ts +0 -7
  565. package/dist/cli/index.d.ts.map +0 -1
  566. package/dist/cli/index.js +0 -50
  567. package/dist/cli/index.js.map +0 -1
  568. package/dist/cli/ossa-cli.d.ts +0 -52
  569. package/dist/cli/ossa-cli.d.ts.map +0 -1
  570. package/dist/cli/ossa-cli.js +0 -1061
  571. package/dist/cli/ossa-cli.js.map +0 -1
  572. package/dist/core/index.d.ts +0 -31
  573. package/dist/core/index.d.ts.map +0 -1
  574. package/dist/core/index.js +0 -37
  575. package/dist/core/index.js.map +0 -1
  576. package/dist/core/mcp-server-implementation.d.ts +0 -39
  577. package/dist/core/mcp-server-implementation.d.ts.map +0 -1
  578. package/dist/core/mcp-server-implementation.js +0 -1262
  579. package/dist/core/mcp-server-implementation.js.map +0 -1
  580. package/dist/core/orchestrator/index.d.ts +0 -156
  581. package/dist/core/orchestrator/index.d.ts.map +0 -1
  582. package/dist/core/orchestrator/index.js +0 -446
  583. package/dist/core/orchestrator/index.js.map +0 -1
  584. package/dist/core/orchestrator/ossa-orchestrator.d.ts +0 -106
  585. package/dist/core/orchestrator/ossa-orchestrator.d.ts.map +0 -1
  586. package/dist/core/orchestrator/ossa-orchestrator.js +0 -396
  587. package/dist/core/orchestrator/ossa-orchestrator.js.map +0 -1
  588. package/dist/protocols/acap.d.ts +0 -61
  589. package/dist/protocols/acap.d.ts.map +0 -1
  590. package/dist/protocols/acap.js +0 -92
  591. package/dist/protocols/acap.js.map +0 -1
  592. package/dist/protocols/index.d.ts +0 -8
  593. package/dist/protocols/index.d.ts.map +0 -1
  594. package/dist/protocols/index.js +0 -8
  595. package/dist/protocols/index.js.map +0 -1
  596. package/dist/protocols/rasp.d.ts +0 -58
  597. package/dist/protocols/rasp.d.ts.map +0 -1
  598. package/dist/protocols/rasp.js +0 -212
  599. package/dist/protocols/rasp.js.map +0 -1
  600. package/dist/server/simple-app.d.ts +0 -18
  601. package/dist/server/simple-app.d.ts.map +0 -1
  602. package/dist/server/simple-app.js +0 -155
  603. package/dist/server/simple-app.js.map +0 -1
  604. package/dist/server/types/agent.d.ts +0 -498
  605. package/dist/server/types/agent.d.ts.map +0 -1
  606. package/dist/server/types/agent.js +0 -37
  607. package/dist/server/types/agent.js.map +0 -1
  608. package/dist/server/types/server.d.ts +0 -370
  609. package/dist/server/types/server.d.ts.map +0 -1
  610. package/dist/server/types/server.js +0 -68
  611. package/dist/server/types/server.js.map +0 -1
  612. package/dist/services/discovery.service.d.ts +0 -78
  613. package/dist/services/discovery.service.d.ts.map +0 -1
  614. package/dist/services/discovery.service.js +0 -212
  615. package/dist/services/discovery.service.js.map +0 -1
  616. package/dist/services/orchestration/worktree-orchestrator.d.ts +0 -146
  617. package/dist/services/orchestration/worktree-orchestrator.d.ts.map +0 -1
  618. package/dist/services/orchestration/worktree-orchestrator.js +0 -591
  619. package/dist/services/orchestration/worktree-orchestrator.js.map +0 -1
  620. package/dist/services/worktree/branching-strategy.d.ts +0 -17
  621. package/dist/services/worktree/branching-strategy.d.ts.map +0 -1
  622. package/dist/services/worktree/branching-strategy.js +0 -66
  623. package/dist/services/worktree/branching-strategy.js.map +0 -1
  624. package/dist/services/worktree/git-worktree-manager.d.ts +0 -32
  625. package/dist/services/worktree/git-worktree-manager.d.ts.map +0 -1
  626. package/dist/services/worktree/git-worktree-manager.js +0 -61
  627. package/dist/services/worktree/git-worktree-manager.js.map +0 -1
  628. package/dist/spec/v0.2.4-dev/README.md +0 -61
  629. package/dist/spec/v0.2.4-dev/RELEASE-PROCESS.md +0 -130
  630. package/dist/spec/v0.2.4-dev/migrations/v0.2.3-to-v0.2.4.md +0 -599
  631. package/dist/spec/v0.2.4-dev/openapi/CHANGELOG-0.2.4.md +0 -177
  632. package/dist/spec/v0.2.4-dev/openapi/README-0.2.4.md +0 -51
  633. package/dist/spec/v0.2.4-dev/openapi/VERIFICATION-0.2.4.md +0 -147
  634. package/dist/spec/v0.2.4-dev/ossa-0.2.4-dev.schema.json +0 -1717
  635. package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
  636. package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.schema.json +0 -1732
  637. package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
  638. package/dist/specification/validator.d.ts +0 -82
  639. package/dist/specification/validator.d.ts.map +0 -1
  640. package/dist/specification/validator.js +0 -562
  641. package/dist/specification/validator.js.map +0 -1
  642. package/dist/types/acdl-api.d.ts +0 -335
  643. package/dist/types/acdl-api.d.ts.map +0 -1
  644. package/dist/types/acdl-api.js +0 -6
  645. package/dist/types/acdl-api.js.map +0 -1
  646. package/dist/types/agents/index.d.ts +0 -53
  647. package/dist/types/agents/index.d.ts.map +0 -1
  648. package/dist/types/agents/index.js +0 -5
  649. package/dist/types/agents/index.js.map +0 -1
  650. package/dist/types/api.d.ts +0 -225
  651. package/dist/types/api.d.ts.map +0 -1
  652. package/dist/types/api.js +0 -6
  653. package/dist/types/api.js.map +0 -1
  654. package/dist/types/architecture/index.d.ts +0 -530
  655. package/dist/types/architecture/index.d.ts.map +0 -1
  656. package/dist/types/architecture/index.js +0 -258
  657. package/dist/types/architecture/index.js.map +0 -1
  658. package/dist/types/policies/index.d.ts +0 -35
  659. package/dist/types/policies/index.d.ts.map +0 -1
  660. package/dist/types/policies/index.js +0 -5
  661. package/dist/types/policies/index.js.map +0 -1
  662. package/dist/types/workflows/index.d.ts +0 -40
  663. package/dist/types/workflows/index.d.ts.map +0 -1
  664. package/dist/types/workflows/index.js +0 -5
  665. package/dist/types/workflows/index.js.map +0 -1
  666. package/dist/utils/version-resolver.d.ts +0 -28
  667. package/dist/utils/version-resolver.d.ts.map +0 -1
  668. package/dist/utils/version-resolver.js +0 -110
  669. package/dist/utils/version-resolver.js.map +0 -1
  670. package/docker-compose.yml +0 -160
  671. package/public/api-docs.html +0 -206
  672. package/public/assets/favicon.svg +0 -8
  673. package/public/assets/script.js +0 -279
  674. package/public/assets/style.css +0 -632
  675. package/public/index.html +0 -307
  676. package/public/redocly-config.yaml +0 -80
  677. package/public/src/api/acdl-specification.yml +0 -531
  678. package/public/src/api/clean-architecture.openapi.yml +0 -1435
  679. package/public/src/api/context7-mcp.openapi.yml +0 -313
  680. package/public/src/api/magic-mcp.openapi.yml +0 -647
  681. package/public/src/api/mcp-infrastructure.openapi.yml +0 -904
  682. package/public/src/api/orchestration.openapi.yml +0 -444
  683. package/public/src/api/ossa-complete.openapi.yml +0 -2250
  684. package/public/src/api/project-discovery.openapi.yml +0 -1293
  685. package/public/src/api/rebuild-audit.openapi.yml +0 -800
  686. package/public/src/api/specification.openapi.yml +0 -498
  687. package/public/src/api/voice-agent-specification.yml +0 -640
  688. package/public/src/api/web-eval-mcp.openapi.yml +0 -426
  689. package/pyrightconfig.json +0 -13
  690. package/redocly.yaml +0 -56
  691. package/specs/README.md +0 -31
  692. package/specs/acdl-specification.yml +0 -531
  693. package/specs/clean-architecture.openapi.yml +0 -1435
  694. package/specs/context7-mcp.openapi.yml +0 -313
  695. package/specs/magic-mcp.openapi.yml +0 -647
  696. package/specs/mcp-infrastructure.openapi.yml +0 -904
  697. package/specs/orchestration.openapi.yml +0 -444
  698. package/specs/ossa-complete.openapi.yml +0 -2250
  699. package/specs/project-discovery.openapi.yml +0 -1293
  700. package/specs/rebuild-audit.openapi.yml +0 -800
  701. package/specs/specification.openapi.yml +0 -498
  702. package/specs/test-api.openapi.yml +0 -20
  703. package/specs/voice-agent-specification.yml +0 -640
  704. package/specs/web-eval-mcp.openapi.yml +0 -426
  705. package/src/adk/adapters/index.ts +0 -310
  706. package/src/adk/agents/custom-agent.ts +0 -206
  707. package/src/adk/agents/index.ts +0 -158
  708. package/src/adk/agents/llm-agent.ts +0 -76
  709. package/src/adk/agents/workflow-agent.ts +0 -191
  710. package/src/adk/index.ts +0 -10
  711. package/src/adk/orchestration/index.ts +0 -352
  712. package/src/adk/state/index.ts +0 -217
  713. package/src/adk/tools/index.ts +0 -291
  714. package/src/api/acdl-specification.yml +0 -531
  715. package/src/api/agent-manifest.schema.json +0 -859
  716. package/src/api/agent-worktree-schema.json +0 -320
  717. package/src/api/clean-architecture.openapi.yml +0 -1435
  718. package/src/api/context7-mcp.openapi.yml +0 -313
  719. package/src/api/magic-mcp.openapi.yml +0 -647
  720. package/src/api/mcp-infrastructure.openapi.yml +0 -904
  721. package/src/api/openapi.redoc.config.json +0 -6
  722. package/src/api/orchestration.openapi.yml +0 -444
  723. package/src/api/ossa-complete.openapi.yml +0 -2250
  724. package/src/api/project-discovery.openapi.yml +0 -1293
  725. package/src/api/rebuild-audit.openapi.yml +0 -800
  726. package/src/api/specification.openapi.yml +0 -498
  727. package/src/api/test-api.openapi.yml +0 -20
  728. package/src/api/voice-agent-specification.yml +0 -640
  729. package/src/api/web-eval-mcp.openapi.yml +0 -426
  730. package/src/api/workflow.schema.json +0 -524
  731. package/src/cli/agent-deployment.ts +0 -452
  732. package/src/cli/commands/ossa.ts +0 -272
  733. package/src/cli/commands/worktree.ts +0 -603
  734. package/src/cli/ossa-cli.ts +0 -1176
  735. package/src/core/index.ts +0 -42
  736. package/src/core/mcp-server-implementation.ts +0 -1409
  737. package/src/core/orchestrator/index.ts +0 -611
  738. package/src/core/orchestrator/ossa-orchestrator.ts +0 -504
  739. package/src/mcp/simple-server.ts +0 -322
  740. package/src/protocols/acap.ts +0 -146
  741. package/src/protocols/index.ts +0 -8
  742. package/src/protocols/rasp.ts +0 -263
  743. package/src/server/app.ts +0 -472
  744. package/src/server/middleware/agentAccess.ts +0 -10
  745. package/src/server/middleware/asyncHandler.ts +0 -10
  746. package/src/server/middleware/auth.ts +0 -10
  747. package/src/server/middleware/errorHandler.ts +0 -9
  748. package/src/server/middleware/logging.ts +0 -10
  749. package/src/server/middleware/metrics.ts +0 -10
  750. package/src/server/middleware/validation.ts +0 -10
  751. package/src/server/routes/agents.ts +0 -632
  752. package/src/server/routes/monitoring.ts +0 -13
  753. package/src/server/routes/orchestration.ts +0 -13
  754. package/src/server/routes/specifications.ts +0 -13
  755. package/src/server/services/AgentService.ts +0 -46
  756. package/src/server/services/ExecutionService.ts +0 -51
  757. package/src/server/services/SpecificationService.ts +0 -22
  758. package/src/server/services/WebhookService.ts +0 -24
  759. package/src/server/simple-app.ts +0 -174
  760. package/src/server/types/agent.ts +0 -612
  761. package/src/server/types/server.ts +0 -465
  762. package/src/services/orchestration/worktree-orchestrator.ts +0 -779
  763. package/src/services/worktree/branching-strategy.ts +0 -76
  764. package/src/services/worktree/git-worktree-manager.ts +0 -86
  765. package/website/.next/BUILD_ID +0 -1
  766. package/website/.next/app-build-manifest.json +0 -151
  767. package/website/.next/app-path-routes-manifest.json +0 -19
  768. package/website/.next/build-manifest.json +0 -33
  769. package/website/.next/cache/.previewinfo +0 -1
  770. package/website/.next/cache/.rscinfo +0 -1
  771. package/website/.next/cache/.tsbuildinfo +0 -1
  772. package/website/.next/cache/fetch-cache/920aec34c288eefa97c5efba3baf95a846a0beb0c48a5064980a2c24b83e941c +0 -1
  773. package/website/.next/cache/fetch-cache/c2ad7a72b43463a0daaa85ca926a8af38defd17ecb64f1fdd2dd4fe2293e8b26 +0 -1
  774. package/website/.next/cache/fetch-cache/d10eb963d5980c8a50ee9ed24472339ee6da054ead33e00676e61e8b8e62cc83 +0 -1
  775. package/website/.next/cache/fetch-cache/f243d84640477f3205b74a85013018acd63b692144675630a74d1af8a3e9eab5 +0 -1
  776. package/website/.next/cache/webpack/client-production/0.pack +0 -0
  777. package/website/.next/cache/webpack/client-production/1.pack +0 -0
  778. package/website/.next/cache/webpack/client-production/10.pack +0 -0
  779. package/website/.next/cache/webpack/client-production/11.pack +0 -0
  780. package/website/.next/cache/webpack/client-production/12.pack +0 -0
  781. package/website/.next/cache/webpack/client-production/13.pack +0 -0
  782. package/website/.next/cache/webpack/client-production/14.pack +0 -0
  783. package/website/.next/cache/webpack/client-production/15.pack +0 -0
  784. package/website/.next/cache/webpack/client-production/16.pack +0 -0
  785. package/website/.next/cache/webpack/client-production/17.pack +0 -0
  786. package/website/.next/cache/webpack/client-production/18.pack +0 -0
  787. package/website/.next/cache/webpack/client-production/2.pack +0 -0
  788. package/website/.next/cache/webpack/client-production/3.pack +0 -0
  789. package/website/.next/cache/webpack/client-production/4.pack +0 -0
  790. package/website/.next/cache/webpack/client-production/5.pack +0 -0
  791. package/website/.next/cache/webpack/client-production/6.pack +0 -0
  792. package/website/.next/cache/webpack/client-production/7.pack +0 -0
  793. package/website/.next/cache/webpack/client-production/8.pack +0 -0
  794. package/website/.next/cache/webpack/client-production/9.pack +0 -0
  795. package/website/.next/cache/webpack/client-production/index.pack +0 -0
  796. package/website/.next/cache/webpack/client-production/index.pack.old +0 -0
  797. package/website/.next/cache/webpack/edge-server-production/0.pack +0 -0
  798. package/website/.next/cache/webpack/edge-server-production/index.pack +0 -0
  799. package/website/.next/cache/webpack/server-production/0.pack +0 -0
  800. package/website/.next/cache/webpack/server-production/1.pack +0 -0
  801. package/website/.next/cache/webpack/server-production/10.pack +0 -0
  802. package/website/.next/cache/webpack/server-production/11.pack +0 -0
  803. package/website/.next/cache/webpack/server-production/12.pack +0 -0
  804. package/website/.next/cache/webpack/server-production/2.pack +0 -0
  805. package/website/.next/cache/webpack/server-production/3.pack +0 -0
  806. package/website/.next/cache/webpack/server-production/4.pack +0 -0
  807. package/website/.next/cache/webpack/server-production/5.pack +0 -0
  808. package/website/.next/cache/webpack/server-production/6.pack +0 -0
  809. package/website/.next/cache/webpack/server-production/7.pack +0 -0
  810. package/website/.next/cache/webpack/server-production/8.pack +0 -0
  811. package/website/.next/cache/webpack/server-production/9.pack +0 -0
  812. package/website/.next/cache/webpack/server-production/index.pack +0 -0
  813. package/website/.next/cache/webpack/server-production/index.pack.old +0 -0
  814. package/website/.next/diagnostics/build-diagnostics.json +0 -6
  815. package/website/.next/diagnostics/framework.json +0 -1
  816. package/website/.next/export-detail.json +0 -5
  817. package/website/.next/export-marker.json +0 -6
  818. package/website/.next/images-manifest.json +0 -57
  819. package/website/.next/next-minimal-server.js.nft.json +0 -1
  820. package/website/.next/next-server.js.nft.json +0 -1
  821. package/website/.next/package.json +0 -1
  822. package/website/.next/prerender-manifest.json +0 -2143
  823. package/website/.next/react-loadable-manifest.json +0 -1898
  824. package/website/.next/required-server-files.json +0 -320
  825. package/website/.next/routes-manifest.json +0 -161
  826. package/website/.next/server/app/_not-found/page.js +0 -2
  827. package/website/.next/server/app/_not-found/page.js.nft.json +0 -1
  828. package/website/.next/server/app/_not-found/page_client-reference-manifest.js +0 -1
  829. package/website/.next/server/app/_not-found.html +0 -1
  830. package/website/.next/server/app/_not-found.meta +0 -8
  831. package/website/.next/server/app/_not-found.rsc +0 -23
  832. package/website/.next/server/app/about/page.js +0 -2
  833. package/website/.next/server/app/about/page.js.nft.json +0 -1
  834. package/website/.next/server/app/about/page_client-reference-manifest.js +0 -1
  835. package/website/.next/server/app/about.html +0 -1
  836. package/website/.next/server/app/about.meta +0 -7
  837. package/website/.next/server/app/about.rsc +0 -40
  838. package/website/.next/server/app/blog/OpenAPI-AI-Agents-Standard.html +0 -217
  839. package/website/.next/server/app/blog/OpenAPI-AI-Agents-Standard.meta +0 -7
  840. package/website/.next/server/app/blog/OpenAPI-AI-Agents-Standard.rsc +0 -308
  841. package/website/.next/server/app/blog/Why-Formal-Standards-Matter-Now.html +0 -180
  842. package/website/.next/server/app/blog/Why-Formal-Standards-Matter-Now.meta +0 -7
  843. package/website/.next/server/app/blog/Why-Formal-Standards-Matter-Now.rsc +0 -232
  844. package/website/.next/server/app/blog/[slug]/page.js +0 -2
  845. package/website/.next/server/app/blog/[slug]/page.js.nft.json +0 -1
  846. package/website/.next/server/app/blog/[slug]/page_client-reference-manifest.js +0 -1
  847. package/website/.next/server/app/blog/introducing-ossa-framework.html +0 -263
  848. package/website/.next/server/app/blog/introducing-ossa-framework.meta +0 -7
  849. package/website/.next/server/app/blog/introducing-ossa-framework.rsc +0 -351
  850. package/website/.next/server/app/blog/ossa-production-results.html +0 -198
  851. package/website/.next/server/app/blog/ossa-production-results.meta +0 -7
  852. package/website/.next/server/app/blog/ossa-production-results.rsc +0 -302
  853. package/website/.next/server/app/blog/page.js +0 -2
  854. package/website/.next/server/app/blog/page.js.nft.json +0 -1
  855. package/website/.next/server/app/blog/page_client-reference-manifest.js +0 -1
  856. package/website/.next/server/app/blog/welcome-to-ossa.html +0 -22
  857. package/website/.next/server/app/blog/welcome-to-ossa.meta +0 -7
  858. package/website/.next/server/app/blog/welcome-to-ossa.rsc +0 -31
  859. package/website/.next/server/app/blog/why-ai-agents-need-open-standard.html +0 -63
  860. package/website/.next/server/app/blog/why-ai-agents-need-open-standard.meta +0 -7
  861. package/website/.next/server/app/blog/why-ai-agents-need-open-standard.rsc +0 -121
  862. package/website/.next/server/app/blog.html +0 -1
  863. package/website/.next/server/app/blog.meta +0 -7
  864. package/website/.next/server/app/blog.rsc +0 -35
  865. package/website/.next/server/app/design-guide/page.js +0 -12
  866. package/website/.next/server/app/design-guide/page.js.nft.json +0 -1
  867. package/website/.next/server/app/design-guide/page_client-reference-manifest.js +0 -1
  868. package/website/.next/server/app/design-guide.html +0 -11
  869. package/website/.next/server/app/design-guide.meta +0 -7
  870. package/website/.next/server/app/design-guide.rsc +0 -41
  871. package/website/.next/server/app/docs.html +0 -1
  872. package/website/.next/server/app/docs.meta +0 -7
  873. package/website/.next/server/app/docs.rsc +0 -42
  874. package/website/.next/server/app/ecosystem/page.js +0 -2
  875. package/website/.next/server/app/ecosystem/page.js.nft.json +0 -1
  876. package/website/.next/server/app/ecosystem/page_client-reference-manifest.js +0 -1
  877. package/website/.next/server/app/ecosystem.html +0 -1
  878. package/website/.next/server/app/ecosystem.meta +0 -7
  879. package/website/.next/server/app/ecosystem.rsc +0 -40
  880. package/website/.next/server/app/examples.html +0 -1
  881. package/website/.next/server/app/examples.meta +0 -7
  882. package/website/.next/server/app/examples.rsc +0 -14559
  883. package/website/.next/server/app/index.html +0 -3
  884. package/website/.next/server/app/index.meta +0 -7
  885. package/website/.next/server/app/index.rsc +0 -40
  886. package/website/.next/server/app/license/page.js +0 -2
  887. package/website/.next/server/app/license/page.js.nft.json +0 -1
  888. package/website/.next/server/app/license/page_client-reference-manifest.js +0 -1
  889. package/website/.next/server/app/license.html +0 -191
  890. package/website/.next/server/app/license.meta +0 -7
  891. package/website/.next/server/app/license.rsc +0 -222
  892. package/website/.next/server/app/page.js +0 -4
  893. package/website/.next/server/app/page.js.nft.json +0 -1
  894. package/website/.next/server/app/page_client-reference-manifest.js +0 -1
  895. package/website/.next/server/app/playground/page.js +0 -111
  896. package/website/.next/server/app/playground/page.js.nft.json +0 -1
  897. package/website/.next/server/app/playground/page_client-reference-manifest.js +0 -1
  898. package/website/.next/server/app/playground.html +0 -1
  899. package/website/.next/server/app/playground.meta +0 -7
  900. package/website/.next/server/app/playground.rsc +0 -30
  901. package/website/.next/server/app/robots.txt/route.js +0 -1
  902. package/website/.next/server/app/robots.txt/route.js.nft.json +0 -1
  903. package/website/.next/server/app/robots.txt/route_client-reference-manifest.js +0 -1
  904. package/website/.next/server/app/robots.txt.body +0 -6
  905. package/website/.next/server/app/robots.txt.meta +0 -1
  906. package/website/.next/server/app/rss.xml/route.js +0 -18
  907. package/website/.next/server/app/rss.xml/route.js.nft.json +0 -1
  908. package/website/.next/server/app/rss.xml/route_client-reference-manifest.js +0 -1
  909. package/website/.next/server/app/rss.xml.body +0 -11
  910. package/website/.next/server/app/rss.xml.meta +0 -1
  911. package/website/.next/server/app/schema/page.js +0 -76
  912. package/website/.next/server/app/schema/page.js.nft.json +0 -1
  913. package/website/.next/server/app/schema/page_client-reference-manifest.js +0 -1
  914. package/website/.next/server/app/schema.html +0 -1
  915. package/website/.next/server/app/schema.meta +0 -7
  916. package/website/.next/server/app/schema.rsc +0 -26
  917. package/website/.next/server/app/sitemap.xml/route.js +0 -1
  918. package/website/.next/server/app/sitemap.xml/route.js.nft.json +0 -1
  919. package/website/.next/server/app/sitemap.xml/route_client-reference-manifest.js +0 -1
  920. package/website/.next/server/app/sitemap.xml.body +0 -39
  921. package/website/.next/server/app/sitemap.xml.meta +0 -1
  922. package/website/.next/server/app/specification/page.js +0 -10
  923. package/website/.next/server/app/specification/page.js.nft.json +0 -1
  924. package/website/.next/server/app/specification/page_client-reference-manifest.js +0 -1
  925. package/website/.next/server/app/specification.html +0 -9
  926. package/website/.next/server/app/specification.meta +0 -7
  927. package/website/.next/server/app/specification.rsc +0 -32
  928. package/website/.next/server/app-paths-manifest.json +0 -19
  929. package/website/.next/server/chunks/18.js +0 -1
  930. package/website/.next/server/chunks/227.js +0 -9
  931. package/website/.next/server/chunks/339.js +0 -25
  932. package/website/.next/server/chunks/49.js +0 -1
  933. package/website/.next/server/chunks/51.js +0 -1
  934. package/website/.next/server/chunks/57.js +0 -1
  935. package/website/.next/server/chunks/579.js +0 -16
  936. package/website/.next/server/chunks/611.js +0 -6
  937. package/website/.next/server/chunks/873.js +0 -22
  938. package/website/.next/server/chunks/900.js +0 -1
  939. package/website/.next/server/chunks/97.js +0 -1
  940. package/website/.next/server/functions-config-manifest.json +0 -4
  941. package/website/.next/server/interception-route-rewrite-manifest.js +0 -1
  942. package/website/.next/server/middleware-build-manifest.js +0 -1
  943. package/website/.next/server/middleware-manifest.json +0 -6
  944. package/website/.next/server/middleware-react-loadable-manifest.js +0 -1
  945. package/website/.next/server/next-font-manifest.js +0 -1
  946. package/website/.next/server/next-font-manifest.json +0 -1
  947. package/website/.next/server/pages/404.html +0 -1
  948. package/website/.next/server/pages/500.html +0 -1
  949. package/website/.next/server/pages/_app.js +0 -1
  950. package/website/.next/server/pages/_app.js.nft.json +0 -1
  951. package/website/.next/server/pages/_document.js +0 -1
  952. package/website/.next/server/pages/_document.js.nft.json +0 -1
  953. package/website/.next/server/pages/_error.js +0 -19
  954. package/website/.next/server/pages/_error.js.nft.json +0 -1
  955. package/website/.next/server/pages-manifest.json +0 -6
  956. package/website/.next/server/server-reference-manifest.js +0 -1
  957. package/website/.next/server/server-reference-manifest.json +0 -1
  958. package/website/.next/server/webpack-runtime.js +0 -1
  959. package/website/.next/static/IDhDQiozPwOaA3PpMqvTE/_buildManifest.js +0 -1
  960. package/website/.next/static/IDhDQiozPwOaA3PpMqvTE/_ssgManifest.js +0 -1
  961. package/website/.next/static/chunks/119.05f66060d7798fc9.js +0 -25
  962. package/website/.next/static/chunks/255-bf407b21685f2318.js +0 -1
  963. package/website/.next/static/chunks/451-235273497e501ae9.js +0 -1
  964. package/website/.next/static/chunks/4bd1b696-409494caf8c83275.js +0 -1
  965. package/website/.next/static/chunks/619-f072ac750404f9da.js +0 -1
  966. package/website/.next/static/chunks/651-5cd3c87d43b7eb46.js +0 -1
  967. package/website/.next/static/chunks/778.278ac2aadb2a1105.js +0 -1
  968. package/website/.next/static/chunks/890-ab915e0570e1961b.js +0 -1
  969. package/website/.next/static/chunks/app/_not-found/page-ccdaf9d90b537c5d.js +0 -1
  970. package/website/.next/static/chunks/app/about/page-bd4cb2219b41f933.js +0 -1
  971. package/website/.next/static/chunks/app/blog/[slug]/page-8fd43000c4969233.js +0 -1
  972. package/website/.next/static/chunks/app/blog/page-bd4cb2219b41f933.js +0 -1
  973. package/website/.next/static/chunks/app/design-guide/page-bd4cb2219b41f933.js +0 -1
  974. package/website/.next/static/chunks/app/ecosystem/page-bd4cb2219b41f933.js +0 -1
  975. package/website/.next/static/chunks/app/layout-ccacbd90656baa78.js +0 -1
  976. package/website/.next/static/chunks/app/license/page-bd4cb2219b41f933.js +0 -1
  977. package/website/.next/static/chunks/app/page-31241dc7465f9590.js +0 -1
  978. package/website/.next/static/chunks/app/playground/page-c2af00885374900f.js +0 -1
  979. package/website/.next/static/chunks/app/robots.txt/route-032c05054032342f.js +0 -1
  980. package/website/.next/static/chunks/app/rss.xml/route-032c05054032342f.js +0 -1
  981. package/website/.next/static/chunks/app/schema/page-f7c224b281771083.js +0 -1
  982. package/website/.next/static/chunks/app/sitemap.xml/route-032c05054032342f.js +0 -1
  983. package/website/.next/static/chunks/app/specification/page-bd4cb2219b41f933.js +0 -1
  984. package/website/.next/static/chunks/framework-1ce91eb6f9ecda85.js +0 -1
  985. package/website/.next/static/chunks/main-3099e141650ec47a.js +0 -1
  986. package/website/.next/static/chunks/main-app-a2fc6ac9305e3090.js +0 -1
  987. package/website/.next/static/chunks/pages/_app-5addca2b3b969fde.js +0 -1
  988. package/website/.next/static/chunks/pages/_error-022e4ac7bbb9914f.js +0 -1
  989. package/website/.next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
  990. package/website/.next/static/chunks/webpack-6ecb09e5c6e34cb4.js +0 -1
  991. package/website/.next/static/css/23135390005d4468.css +0 -3
  992. package/website/.next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
  993. package/website/.next/static/media/21350d82a1f187e9-s.woff2 +0 -0
  994. package/website/.next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
  995. package/website/.next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
  996. package/website/.next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
  997. package/website/.next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
  998. package/website/.next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
  999. package/website/.next/trace +0 -3
  1000. package/website/.next/types/app/about/page.ts +0 -84
  1001. package/website/.next/types/app/blog/[slug]/page.ts +0 -84
  1002. package/website/.next/types/app/blog/page.ts +0 -84
  1003. package/website/.next/types/app/design-guide/page.ts +0 -84
  1004. package/website/.next/types/app/ecosystem/page.ts +0 -84
  1005. package/website/.next/types/app/license/page.ts +0 -84
  1006. package/website/.next/types/app/page.ts +0 -84
  1007. package/website/.next/types/app/playground/page.ts +0 -84
  1008. package/website/.next/types/app/rss.xml/route.ts +0 -347
  1009. package/website/.next/types/app/schema/page.ts +0 -84
  1010. package/website/.next/types/app/specification/page.ts +0 -84
  1011. package/website/.next/types/cache-life.d.ts +0 -141
  1012. package/website/.next/types/package.json +0 -1
  1013. package/website/.next/types/routes.d.ts +0 -85
  1014. package/website/.next/types/validator.ts +0 -187
  1015. package/website/.wiki-export/Agent-Folder-Structure.md +0 -215
  1016. package/website/.wiki-export/CI-STATUS.md +0 -66
  1017. package/website/.wiki-export/COMPLETE-IMPLEMENTATION-CHECKLIST.md +0 -74
  1018. package/website/.wiki-export/DRUPAL-MODULE-INTEGRATION.md +0 -103
  1019. package/website/.wiki-export/FINAL-STATUS.md +0 -63
  1020. package/website/.wiki-export/Getting-Started.md +0 -87
  1021. package/website/.wiki-export/INSTRUCTIONS.md +0 -46
  1022. package/website/.wiki-export/INTEGRATION-ANALYSIS.md +0 -216
  1023. package/website/.wiki-export/MANIFEST.json +0 -62
  1024. package/website/.wiki-export/OSSA-COMPLIANT-BADGE.md +0 -247
  1025. package/website/.wiki-export/Openapi-Extensions.md +0 -930
  1026. package/website/.wiki-export/README.md +0 -31
  1027. package/website/.wiki-export/RELEASE-READINESS.md +0 -95
  1028. package/website/.wiki-export/VERSIONING.md +0 -284
  1029. package/website/next-env.d.ts +0 -6
  1030. package/website/out/app-build-manifest.json +0 -3
  1031. package/website/out/build-manifest.json +0 -17
  1032. package/website/out/cache/.rscinfo +0 -1
  1033. package/website/out/cache/next-devtools-config.json +0 -1
  1034. package/website/out/cache/webpack/client-development/0.pack.gz +0 -0
  1035. package/website/out/cache/webpack/client-development/1.pack.gz +0 -0
  1036. package/website/out/cache/webpack/client-development/2.pack.gz +0 -0
  1037. package/website/out/cache/webpack/client-development/3.pack.gz +0 -0
  1038. package/website/out/cache/webpack/client-development/index.pack.gz +0 -0
  1039. package/website/out/cache/webpack/client-development/index.pack.gz.old +0 -0
  1040. package/website/out/cache/webpack/client-development-fallback/0.pack.gz +0 -0
  1041. package/website/out/cache/webpack/client-development-fallback/index.pack.gz +0 -0
  1042. package/website/out/cache/webpack/server-development/0.pack.gz +0 -0
  1043. package/website/out/cache/webpack/server-development/1.pack.gz +0 -0
  1044. package/website/out/cache/webpack/server-development/2.pack.gz +0 -0
  1045. package/website/out/cache/webpack/server-development/3.pack.gz +0 -0
  1046. package/website/out/cache/webpack/server-development/index.pack.gz +0 -0
  1047. package/website/out/cache/webpack/server-development/index.pack.gz.old +0 -0
  1048. package/website/out/package.json +0 -1
  1049. package/website/out/prerender-manifest.json +0 -11
  1050. package/website/out/react-loadable-manifest.json +0 -1
  1051. package/website/out/routes-manifest.json +0 -1
  1052. package/website/out/server/app-paths-manifest.json +0 -1
  1053. package/website/out/server/interception-route-rewrite-manifest.js +0 -1
  1054. package/website/out/server/middleware-build-manifest.js +0 -19
  1055. package/website/out/server/middleware-manifest.json +0 -6
  1056. package/website/out/server/middleware-react-loadable-manifest.js +0 -1
  1057. package/website/out/server/next-font-manifest.js +0 -1
  1058. package/website/out/server/next-font-manifest.json +0 -1
  1059. package/website/out/server/pages-manifest.json +0 -1
  1060. package/website/out/server/server-reference-manifest.js +0 -1
  1061. package/website/out/server/server-reference-manifest.json +0 -5
  1062. package/website/out/static/chunks/polyfills.js +0 -1
  1063. package/website/out/static/development/_buildManifest.js +0 -1
  1064. package/website/out/static/development/_ssgManifest.js +0 -1
  1065. package/website/out/trace +0 -2
  1066. package/website/out/types/cache-life.d.ts +0 -141
  1067. package/website/out/types/package.json +0 -1
  1068. package/website/out/types/routes.d.ts +0 -85
  1069. package/website/out/types/validator.ts +0 -187
  1070. package/website/public/examples.json +0 -476
  1071. package/website/public/schemas/openapi-extensions.schema.json +0 -486
  1072. package/website/tsconfig.tsbuildinfo +0 -1
  1073. /package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +0 -0
  1074. /package/spec/v0.2.4/{ossa-0.2.4.yaml → ossa-0.2.4-dev.yaml} +0 -0
@@ -0,0 +1,1750 @@
1
+ ---
2
+ title: "Anthropic MCP to OSSA"
3
+ ---
4
+
5
+ # Migration Guide: Extending Anthropic MCP with OSSA
6
+
7
+ **Version:** 1.0
8
+ **Last Updated:** 2025-11-10
9
+ **Status:** Production-Ready
10
+
11
+ ---
12
+
13
+ ## 📖 Table of Contents
14
+
15
+ 1. [Overview](#overview)
16
+ 2. [Why Extend MCP with OSSA?](#why-extend-mcp-with-ossa)
17
+ 3. [Key Concepts](#key-concepts)
18
+ 4. [Migration Strategy](#migration-strategy)
19
+ 5. [Example 1: Simple MCP Server → OSSA Agent](#example-1-simple-mcp-server--ossa-agent)
20
+ 6. [Example 2: MCP Tools → OSSA Capabilities](#example-2-mcp-tools--ossa-capabilities)
21
+ 7. [Example 3: MCP Resources → OSSA Data Sources](#example-3-mcp-resources--ossa-data-sources)
22
+ 8. [Integration Patterns](#integration-patterns)
23
+ 9. [Best Practices](#best-practices)
24
+ 10. [Troubleshooting](#troubleshooting)
25
+
26
+ ---
27
+
28
+ ## Overview
29
+
30
+ This guide helps you **extend** your existing Anthropic Model Context Protocol (MCP) servers with the Open Standards for Scalable Agents (OSSA) specification. OSSA is not a replacement for MCP—it's a **superset** that adds:
31
+
32
+ - **Multi-protocol support** (HTTP, gRPC, WebSocket, A2A)
33
+ - **Production features** (monitoring, metrics, policies, compliance)
34
+ - **OpenAPI integration** for REST API exposure
35
+ - **Agent orchestration** capabilities
36
+ - **Kubernetes deployment** support
37
+ - **Enterprise governance** (encryption, audit, RBAC)
38
+
39
+ **Key Insight:** OSSA agents can **natively speak MCP** while also supporting other protocols. You get MCP compatibility + production-ready infrastructure.
40
+
41
+ ---
42
+
43
+ ## Why Extend MCP with OSSA?
44
+
45
+ ### MCP Alone (Good for Claude Desktop)
46
+
47
+ | Feature | MCP Native | Notes |
48
+ |---------|-----------|-------|
49
+ | Claude Desktop Integration | ✅ | Perfect for local use |
50
+ | Stdio Transport | ✅ | Simple, local execution |
51
+ | Tools | ✅ | Function calls |
52
+ | Resources | ✅ | Data access |
53
+ | Prompts | ✅ | Template support |
54
+ | **HTTP/REST API** | ❌ | Limited to MCP protocol |
55
+ | **Kubernetes Deployment** | ❌ | No native support |
56
+ | **Monitoring/Metrics** | ❌ | Manual implementation |
57
+ | **Multi-LLM Support** | ❌ | Claude-specific |
58
+ | **Agent Orchestration** | ❌ | Single-agent only |
59
+ | **Compliance/Audit** | ❌ | No built-in support |
60
+
61
+ ### MCP + OSSA (Production-Ready)
62
+
63
+ | Feature | MCP + OSSA | Notes |
64
+ |---------|-----------|-------|
65
+ | Claude Desktop Integration | ✅ | **Full backward compatibility** |
66
+ | Stdio Transport | ✅ | MCP native support |
67
+ | Tools | ✅ | Via MCP bridge |
68
+ | Resources | ✅ | Via MCP bridge |
69
+ | Prompts | ✅ | Via MCP bridge |
70
+ | **HTTP/REST API** | ✅ | OpenAPI-first design |
71
+ | **Kubernetes Deployment** | ✅ | Native YAML manifests |
72
+ | **Monitoring/Metrics** | ✅ | Prometheus, Grafana, traces |
73
+ | **Multi-LLM Support** | ✅ | OpenAI, Anthropic, etc. |
74
+ | **Agent Orchestration** | ✅ | Multi-agent coordination |
75
+ | **Compliance/Audit** | ✅ | ISO42001, SOC2, GDPR |
76
+
77
+ ---
78
+
79
+ ## Key Concepts
80
+
81
+ ### MCP → OSSA Mapping
82
+
83
+ | MCP Concept | OSSA Equivalent | Relationship |
84
+ |-------------|----------------|--------------|
85
+ | **MCP Server** | **OSSA Agent** | Agent wraps MCP server functionality |
86
+ | **MCP Tool** | **OSSA Capability** | 1:1 mapping via bridge config |
87
+ | **MCP Resource** | **OSSA Data Source** | Exposed via integration endpoints |
88
+ | **Stdio Transport** | **MCP Bridge (stdio)** | Native MCP protocol support |
89
+ | **Tool Parameters** | **Capability Input Schema** | JSON Schema compatible |
90
+ | **Tool Response** | **Capability Output Schema** | Typed responses |
91
+ | N/A | **OpenAPI Bridge** | REST API exposure |
92
+ | N/A | **Monitoring** | Traces, metrics, logs |
93
+ | N/A | **Policies** | Compliance, encryption, audit |
94
+
95
+ ### How OSSA Extends MCP
96
+
97
+ ```
98
+ ┌────────────────────────────────────────────────────────────┐
99
+ │ OSSA Agent │
100
+ │ │
101
+ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
102
+ │ │ │ │ │ │ │ │
103
+ │ │ MCP Bridge │ │ OpenAPI REST │ │ A2A P2P │ │
104
+ │ │ (stdio) │ │ (HTTP) │ │ Protocol │ │
105
+ │ │ │ │ │ │ │ │
106
+ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
107
+ │ │ │ │ │
108
+ │ └──────────────────┼──────────────────┘ │
109
+ │ │ │
110
+ │ ┌─────────▼─────────┐ │
111
+ │ │ │ │
112
+ │ │ Core Runtime │ │
113
+ │ │ (Capabilities) │ │
114
+ │ │ │ │
115
+ │ └─────────┬──────────┘ │
116
+ │ │ │
117
+ │ ┌──────────────────┼──────────────────┐ │
118
+ │ │ │ │ │
119
+ │ ┌──────▼───────┐ ┌──────▼───────┐ ┌──────▼───────┐ │
120
+ │ │ │ │ │ │ │ │
121
+ │ │ Monitoring │ │ Policies │ │ Metrics │ │
122
+ │ │ (Traces) │ │ (Audit) │ │ (Prometheus) │ │
123
+ │ │ │ │ │ │ │ │
124
+ │ └──────────────┘ └──────────────┘ └──────────────┘ │
125
+ │ │
126
+ └────────────────────────────────────────────────────────────┘
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Migration Strategy
132
+
133
+ ### Phase 1: Assessment
134
+
135
+ 1. **Inventory existing MCP servers**
136
+ ```bash
137
+ # List MCP servers in Claude Desktop config
138
+ cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
139
+ ```
140
+
141
+ 2. **Document MCP tools and resources**
142
+ ```bash
143
+ # For each server, document:
144
+ # - Tool names and signatures
145
+ # - Resource URIs and schemas
146
+ # - Transport type (stdio/sse)
147
+ # - Dependencies
148
+ ```
149
+
150
+ 3. **Identify production requirements**
151
+ ```yaml
152
+ # Questions to answer:
153
+ - Need HTTP API access? → OpenAPI bridge
154
+ - Need Kubernetes deployment? → OSSA runtime config
155
+ - Need monitoring/metrics? → OSSA monitoring
156
+ - Need multi-agent coordination? → OSSA orchestration
157
+ - Need compliance tracking? → OSSA policies
158
+ ```
159
+
160
+ ### Phase 2: Create OSSA Agent
161
+
162
+ ```bash
163
+ # Interactive agent creation (recommended)
164
+ buildkit agents create --interactive
165
+
166
+ # Or non-interactive with MCP enabled
167
+ buildkit agents create my-agent \
168
+ --type worker \
169
+ --description "My MCP server as OSSA agent" \
170
+ --mcp \
171
+ --mcp-transport stdio \
172
+ --openapi
173
+ ```
174
+
175
+ ### Phase 3: Migrate Logic
176
+
177
+ 1. **Copy MCP server code** to agent's `src/` directory
178
+ 2. **Map MCP tools** to OSSA capabilities in `agent.yml`
179
+ 3. **Configure MCP bridge** for stdio transport
180
+ 4. **Add OpenAPI spec** for HTTP access (optional)
181
+ 5. **Enable monitoring** (traces, metrics, logs)
182
+
183
+ ### Phase 4: Test Both Modes
184
+
185
+ ```bash
186
+ # Test HTTP mode
187
+ cd .agents/my-agent
188
+ npm install && npm run build
189
+ npm start
190
+ curl http://localhost:3000/health
191
+
192
+ # Test MCP mode (stdio)
193
+ MCP_MODE=stdio npm start
194
+ # (Connect from Claude Desktop)
195
+ ```
196
+
197
+ ### Phase 5: Update Claude Desktop Config
198
+
199
+ ```bash
200
+ # Generate updated config
201
+ buildkit mcpb claude-config
202
+
203
+ # Or manually add to claude_desktop_config.json
204
+ {
205
+ "mcpServers": {
206
+ "my-agent": {
207
+ "command": "node",
208
+ "args": ["/path/to/.agents/my-agent/dist/index.js"],
209
+ "env": {
210
+ "MCP_MODE": "stdio"
211
+ }
212
+ }
213
+ }
214
+ }
215
+ ```
216
+
217
+ ---
218
+
219
+ ## Example 1: Simple MCP Server → OSSA Agent
220
+
221
+ ### Before: Pure MCP Server
222
+
223
+ ```typescript
224
+ // simple-mcp-server.ts
225
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
226
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
227
+ import {
228
+ CallToolRequestSchema,
229
+ ListToolsRequestSchema
230
+ } from '@modelcontextprotocol/sdk/types';
231
+
232
+ const server = new Server(
233
+ {
234
+ name: 'simple-server',
235
+ version: '1.0.0',
236
+ },
237
+ {
238
+ capabilities: {
239
+ tools: {},
240
+ },
241
+ }
242
+ );
243
+
244
+ // List tools
245
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
246
+ return {
247
+ tools: [
248
+ {
249
+ name: 'greet',
250
+ description: 'Greet a user',
251
+ inputSchema: {
252
+ type: 'object',
253
+ properties: {
254
+ name: { type: 'string', description: 'Name to greet' }
255
+ },
256
+ required: ['name']
257
+ }
258
+ }
259
+ ]
260
+ };
261
+ });
262
+
263
+ // Handle tool calls
264
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
265
+ if (request.params.name === 'greet') {
266
+ const { name } = request.params.arguments as { name: string };
267
+ return {
268
+ content: [
269
+ {
270
+ type: 'text',
271
+ text: `Hello, ${name}!`
272
+ }
273
+ ]
274
+ };
275
+ }
276
+ throw new Error(`Unknown tool: ${request.params.name}`);
277
+ });
278
+
279
+ const transport = new StdioServerTransport();
280
+ server.connect(transport);
281
+ console.log('MCP server running on stdio');
282
+ ```
283
+
284
+ **Usage:**
285
+ ```json
286
+ // claude_desktop_config.json
287
+ {
288
+ "mcpServers": {
289
+ "simple-server": {
290
+ "command": "node",
291
+ "args": ["simple-mcp-server.js"]
292
+ }
293
+ }
294
+ }
295
+ ```
296
+
297
+ **Limitations:**
298
+ - ❌ No HTTP API
299
+ - ❌ No monitoring
300
+ - ❌ No metrics
301
+ - ❌ No health checks
302
+ - ❌ Manual deployment
303
+ - ❌ No orchestration
304
+
305
+ ---
306
+
307
+ ### After: OSSA Agent with MCP Bridge
308
+
309
+ **1. Create OSSA Agent:**
310
+ ```bash
311
+ buildkit agents create simple-agent \
312
+ --type worker \
313
+ --description "Simple greeting agent with MCP support" \
314
+ --mcp \
315
+ --openapi
316
+ ```
317
+
318
+ **2. Agent Manifest (`agent.yml`):**
319
+ ```yaml
320
+ ossaVersion: "0.2.5-RC"
321
+ agent:
322
+ id: simple-agent
323
+ name: simple-agent
324
+ version: 1.0.0
325
+ description: Simple greeting agent with MCP support
326
+ role: workflow
327
+ tags:
328
+ - greeting
329
+ - worker
330
+ - mcp
331
+
332
+ runtime:
333
+ type: local
334
+ command: [node, dist/index.js]
335
+ resources:
336
+ cpu: 500m
337
+ memory: 512Mi
338
+
339
+ capabilities:
340
+ - name: greet
341
+ description: Greet a user by name
342
+ input_schema:
343
+ type: object
344
+ properties:
345
+ name:
346
+ type: string
347
+ description: Name to greet
348
+ required: [name]
349
+ output_schema:
350
+ type: object
351
+ properties:
352
+ message:
353
+ type: string
354
+
355
+ integration:
356
+ protocol: http
357
+ endpoints:
358
+ base_url: http://localhost:3000
359
+ health: /health
360
+ metrics: /metrics
361
+
362
+ monitoring:
363
+ traces: true
364
+ metrics: true
365
+ logs: true
366
+
367
+ policies:
368
+ encryption: true
369
+ audit: true
370
+
371
+ bridge:
372
+ # MCP Bridge for Claude Desktop
373
+ mcp:
374
+ enabled: true
375
+ server_type: stdio
376
+ tools:
377
+ - name: greet
378
+ description: Greet a user by name
379
+ capability: greet
380
+ config:
381
+ max_message_size: 1048576
382
+ timeout_ms: 30000
383
+ retry_count: 3
384
+
385
+ # OpenAPI Bridge for REST API
386
+ openapi:
387
+ enabled: true
388
+ spec_url: ./openapi.yaml
389
+ spec_version: "3.1"
390
+ ```
391
+
392
+ **3. Agent Implementation (`src/index.ts`):**
393
+ ```typescript
394
+ import express from 'express';
395
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
396
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
397
+ import {
398
+ CallToolRequestSchema,
399
+ ListToolsRequestSchema,
400
+ } from '@modelcontextprotocol/sdk/types';
401
+
402
+ const app = express();
403
+ const PORT = process.env.PORT || 3000;
404
+
405
+ app.use(express.json());
406
+
407
+ // ========================================
408
+ // HTTP Mode (OpenAPI REST API)
409
+ // ========================================
410
+
411
+ app.get('/health', (req, res) => {
412
+ res.json({
413
+ status: 'healthy',
414
+ agent: 'simple-agent',
415
+ version: '1.0.0',
416
+ timestamp: new Date().toISOString(),
417
+ });
418
+ });
419
+
420
+ app.get('/metrics', (req, res) => {
421
+ // Prometheus metrics
422
+ res.set('Content-Type', 'text/plain');
423
+ res.send(`
424
+ # HELP simple_agent_requests_total Total requests
425
+ # TYPE simple_agent_requests_total counter
426
+ simple_agent_requests_total 42
427
+ `.trim());
428
+ });
429
+
430
+ // Capability: greet
431
+ app.post('/capabilities/greet', async (req, res) => {
432
+ try {
433
+ const { name } = req.body;
434
+ if (!name) {
435
+ return res.status(400).json({ error: 'name is required' });
436
+ }
437
+
438
+ const result = {
439
+ message: `Hello, ${name}!`,
440
+ timestamp: new Date().toISOString(),
441
+ };
442
+
443
+ res.json(result);
444
+ } catch (error: any) {
445
+ res.status(500).json({ error: error.message });
446
+ }
447
+ });
448
+
449
+ // ========================================
450
+ // MCP Mode (stdio transport)
451
+ // ========================================
452
+
453
+ if (process.env.MCP_MODE === 'stdio') {
454
+ const server = new Server(
455
+ {
456
+ name: 'simple-agent',
457
+ version: '1.0.0',
458
+ },
459
+ {
460
+ capabilities: {
461
+ tools: {},
462
+ },
463
+ }
464
+ );
465
+
466
+ // List available tools
467
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
468
+ return {
469
+ tools: [
470
+ {
471
+ name: 'greet',
472
+ description: 'Greet a user by name',
473
+ inputSchema: {
474
+ type: 'object',
475
+ properties: {
476
+ name: {
477
+ type: 'string',
478
+ description: 'Name to greet'
479
+ },
480
+ },
481
+ required: ['name'],
482
+ },
483
+ },
484
+ ],
485
+ };
486
+ });
487
+
488
+ // Handle tool calls
489
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
490
+ const toolName = request.params.name;
491
+
492
+ if (toolName === 'greet') {
493
+ const { name } = request.params.arguments as { name: string };
494
+ return {
495
+ content: [
496
+ {
497
+ type: 'text',
498
+ text: JSON.stringify({
499
+ message: `Hello, ${name}!`,
500
+ timestamp: new Date().toISOString(),
501
+ }),
502
+ },
503
+ ],
504
+ };
505
+ }
506
+
507
+ throw new Error(`Unknown tool: ${toolName}`);
508
+ });
509
+
510
+ const transport = new StdioServerTransport();
511
+ server.connect(transport);
512
+ console.log('MCP server running on stdio');
513
+ } else {
514
+ // HTTP mode
515
+ app.listen(PORT, () => {
516
+ console.log(`Agent listening on port ${PORT} (HTTP mode)`);
517
+ console.log(`Health: http://localhost:${PORT}/health`);
518
+ console.log(`Metrics: http://localhost:${PORT}/metrics`);
519
+ });
520
+ }
521
+ ```
522
+
523
+ **4. OpenAPI Spec (`openapi.yaml`):**
524
+ ```yaml
525
+ openapi: 3.1.0
526
+ info:
527
+ title: simple-agent API
528
+ version: 1.0.0
529
+ description: Simple greeting agent with MCP support
530
+
531
+ servers:
532
+ - url: http://localhost:3000
533
+ description: Local development
534
+
535
+ paths:
536
+ /health:
537
+ get:
538
+ summary: Health check
539
+ responses:
540
+ '200':
541
+ description: Agent is healthy
542
+ content:
543
+ application/json:
544
+ schema:
545
+ type: object
546
+ properties:
547
+ status:
548
+ type: string
549
+ agent:
550
+ type: string
551
+ version:
552
+ type: string
553
+ timestamp:
554
+ type: string
555
+
556
+ /capabilities/greet:
557
+ post:
558
+ summary: Greet a user
559
+ requestBody:
560
+ required: true
561
+ content:
562
+ application/json:
563
+ schema:
564
+ type: object
565
+ properties:
566
+ name:
567
+ type: string
568
+ description: Name to greet
569
+ required: [name]
570
+ responses:
571
+ '200':
572
+ description: Greeting response
573
+ content:
574
+ application/json:
575
+ schema:
576
+ type: object
577
+ properties:
578
+ message:
579
+ type: string
580
+ timestamp:
581
+ type: string
582
+ ```
583
+
584
+ **Benefits:**
585
+ - ✅ **Claude Desktop works** (MCP stdio mode)
586
+ - ✅ **HTTP API available** (curl, Postman, web apps)
587
+ - ✅ **Health checks** (`/health`)
588
+ - ✅ **Metrics** (`/metrics` for Prometheus)
589
+ - ✅ **OpenAPI spec** (auto-generated docs)
590
+ - ✅ **Monitoring ready** (traces, logs)
591
+ - ✅ **Kubernetes ready** (via OSSA runtime config)
592
+
593
+ **Usage:**
594
+
595
+ ```bash
596
+ # HTTP mode
597
+ npm start
598
+ curl -X POST http://localhost:3000/capabilities/greet \
599
+ -H "Content-Type: application/json" \
600
+ -d '{"name": "World"}'
601
+ # → {"message": "Hello, World!", "timestamp": "..."}
602
+
603
+ # MCP mode (Claude Desktop)
604
+ MCP_MODE=stdio npm start
605
+ # → Works in Claude Desktop as before
606
+ ```
607
+
608
+ ---
609
+
610
+ ## Example 2: MCP Tools → OSSA Capabilities
611
+
612
+ ### Before: MCP Server with Multiple Tools
613
+
614
+ ```typescript
615
+ // filesystem-mcp-server.ts
616
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
617
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
618
+ import {
619
+ CallToolRequestSchema,
620
+ ListToolsRequestSchema
621
+ } from '@modelcontextprotocol/sdk/types';
622
+ import fs from 'fs/promises';
623
+
624
+ const server = new Server(
625
+ { name: 'filesystem-server', version: '1.0.0' },
626
+ { capabilities: { tools: {} } }
627
+ );
628
+
629
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
630
+ return {
631
+ tools: [
632
+ {
633
+ name: 'read_file',
634
+ description: 'Read a file from disk',
635
+ inputSchema: {
636
+ type: 'object',
637
+ properties: {
638
+ path: { type: 'string', description: 'File path' }
639
+ },
640
+ required: ['path']
641
+ }
642
+ },
643
+ {
644
+ name: 'write_file',
645
+ description: 'Write content to a file',
646
+ inputSchema: {
647
+ type: 'object',
648
+ properties: {
649
+ path: { type: 'string', description: 'File path' },
650
+ content: { type: 'string', description: 'File content' }
651
+ },
652
+ required: ['path', 'content']
653
+ }
654
+ },
655
+ {
656
+ name: 'list_directory',
657
+ description: 'List files in a directory',
658
+ inputSchema: {
659
+ type: 'object',
660
+ properties: {
661
+ path: { type: 'string', description: 'Directory path' }
662
+ },
663
+ required: ['path']
664
+ }
665
+ }
666
+ ]
667
+ };
668
+ });
669
+
670
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
671
+ const { name, arguments: args } = request.params;
672
+
673
+ switch (name) {
674
+ case 'read_file': {
675
+ const content = await fs.readFile(args.path as string, 'utf-8');
676
+ return {
677
+ content: [{ type: 'text', text: content }]
678
+ };
679
+ }
680
+
681
+ case 'write_file': {
682
+ await fs.writeFile(args.path as string, args.content as string);
683
+ return {
684
+ content: [{ type: 'text', text: 'File written successfully' }]
685
+ };
686
+ }
687
+
688
+ case 'list_directory': {
689
+ const files = await fs.readdir(args.path as string);
690
+ return {
691
+ content: [{ type: 'text', text: JSON.stringify(files) }]
692
+ };
693
+ }
694
+
695
+ default:
696
+ throw new Error(`Unknown tool: ${name}`);
697
+ }
698
+ });
699
+
700
+ const transport = new StdioServerTransport();
701
+ server.connect(transport);
702
+ ```
703
+
704
+ ---
705
+
706
+ ### After: OSSA Agent with Mapped Capabilities
707
+
708
+ **Agent Manifest (`agent.yml`):**
709
+ ```yaml
710
+ ossaVersion: "0.2.5-RC"
711
+ agent:
712
+ id: filesystem-agent
713
+ name: filesystem-agent
714
+ version: 1.0.0
715
+ description: Filesystem operations agent
716
+ role: workflow
717
+ tags: [filesystem, io, worker]
718
+
719
+ runtime:
720
+ type: local
721
+ command: [node, dist/index.js]
722
+ resources:
723
+ cpu: 500m
724
+ memory: 512Mi
725
+
726
+ capabilities:
727
+ # Capability 1: Read File
728
+ - name: read-file
729
+ description: Read a file from disk
730
+ input_schema:
731
+ type: object
732
+ properties:
733
+ path:
734
+ type: string
735
+ description: File path to read
736
+ required: [path]
737
+ output_schema:
738
+ type: object
739
+ properties:
740
+ content:
741
+ type: string
742
+ size:
743
+ type: number
744
+
745
+ # Capability 2: Write File
746
+ - name: write-file
747
+ description: Write content to a file
748
+ input_schema:
749
+ type: object
750
+ properties:
751
+ path:
752
+ type: string
753
+ description: File path to write
754
+ content:
755
+ type: string
756
+ description: Content to write
757
+ required: [path, content]
758
+ output_schema:
759
+ type: object
760
+ properties:
761
+ success:
762
+ type: boolean
763
+ bytes_written:
764
+ type: number
765
+
766
+ # Capability 3: List Directory
767
+ - name: list-directory
768
+ description: List files in a directory
769
+ input_schema:
770
+ type: object
771
+ properties:
772
+ path:
773
+ type: string
774
+ description: Directory path
775
+ required: [path]
776
+ output_schema:
777
+ type: object
778
+ properties:
779
+ files:
780
+ type: array
781
+ items:
782
+ type: string
783
+
784
+ integration:
785
+ protocol: http
786
+ endpoints:
787
+ base_url: http://localhost:3000
788
+ health: /health
789
+ metrics: /metrics
790
+
791
+ monitoring:
792
+ traces: true
793
+ metrics: true
794
+ logs: true
795
+
796
+ policies:
797
+ encryption: true
798
+ audit: true
799
+ # Filesystem access requires audit logging
800
+ compliance: [SOC2, GDPR]
801
+
802
+ bridge:
803
+ mcp:
804
+ enabled: true
805
+ server_type: stdio
806
+ tools:
807
+ # Map OSSA capabilities to MCP tools
808
+ - name: read_file
809
+ description: Read a file from disk
810
+ capability: read-file
811
+
812
+ - name: write_file
813
+ description: Write content to a file
814
+ capability: write-file
815
+
816
+ - name: list_directory
817
+ description: List files in a directory
818
+ capability: list-directory
819
+
820
+ config:
821
+ max_message_size: 10485760 # 10MB for large files
822
+ timeout_ms: 60000 # 60s for large operations
823
+ retry_count: 3
824
+
825
+ openapi:
826
+ enabled: true
827
+ spec_url: ./openapi.yaml
828
+ spec_version: "3.1"
829
+ ```
830
+
831
+ **Implementation (`src/index.ts`):**
832
+ ```typescript
833
+ import express from 'express';
834
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
835
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
836
+ import {
837
+ CallToolRequestSchema,
838
+ ListToolsRequestSchema,
839
+ } from '@modelcontextprotocol/sdk/types';
840
+ import fs from 'fs/promises';
841
+
842
+ const app = express();
843
+ const PORT = process.env.PORT || 3000;
844
+
845
+ app.use(express.json());
846
+
847
+ // ========================================
848
+ // Shared Business Logic
849
+ // ========================================
850
+
851
+ class FilesystemService {
852
+ async readFile(path: string) {
853
+ const content = await fs.readFile(path, 'utf-8');
854
+ const stats = await fs.stat(path);
855
+ return {
856
+ content,
857
+ size: stats.size,
858
+ modified: stats.mtime.toISOString(),
859
+ };
860
+ }
861
+
862
+ async writeFile(path: string, content: string) {
863
+ await fs.writeFile(path, content);
864
+ const stats = await fs.stat(path);
865
+ return {
866
+ success: true,
867
+ bytes_written: stats.size,
868
+ path,
869
+ };
870
+ }
871
+
872
+ async listDirectory(path: string) {
873
+ const entries = await fs.readdir(path, { withFileTypes: true });
874
+ return {
875
+ files: entries.map(e => ({
876
+ name: e.name,
877
+ type: e.isDirectory() ? 'directory' : 'file',
878
+ })),
879
+ count: entries.length,
880
+ };
881
+ }
882
+ }
883
+
884
+ const service = new FilesystemService();
885
+
886
+ // ========================================
887
+ // HTTP Mode (OpenAPI REST API)
888
+ // ========================================
889
+
890
+ app.get('/health', (req, res) => {
891
+ res.json({
892
+ status: 'healthy',
893
+ agent: 'filesystem-agent',
894
+ version: '1.0.0',
895
+ });
896
+ });
897
+
898
+ app.post('/capabilities/read-file', async (req, res) => {
899
+ try {
900
+ const { path } = req.body;
901
+ const result = await service.readFile(path);
902
+ res.json(result);
903
+ } catch (error: any) {
904
+ res.status(500).json({ error: error.message });
905
+ }
906
+ });
907
+
908
+ app.post('/capabilities/write-file', async (req, res) => {
909
+ try {
910
+ const { path, content } = req.body;
911
+ const result = await service.writeFile(path, content);
912
+ res.json(result);
913
+ } catch (error: any) {
914
+ res.status(500).json({ error: error.message });
915
+ }
916
+ });
917
+
918
+ app.post('/capabilities/list-directory', async (req, res) => {
919
+ try {
920
+ const { path } = req.body;
921
+ const result = await service.listDirectory(path);
922
+ res.json(result);
923
+ } catch (error: any) {
924
+ res.status(500).json({ error: error.message });
925
+ }
926
+ });
927
+
928
+ // ========================================
929
+ // MCP Mode (stdio transport)
930
+ // ========================================
931
+
932
+ if (process.env.MCP_MODE === 'stdio') {
933
+ const server = new Server(
934
+ { name: 'filesystem-agent', version: '1.0.0' },
935
+ { capabilities: { tools: {} } }
936
+ );
937
+
938
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
939
+ return {
940
+ tools: [
941
+ {
942
+ name: 'read_file',
943
+ description: 'Read a file from disk',
944
+ inputSchema: {
945
+ type: 'object',
946
+ properties: {
947
+ path: { type: 'string', description: 'File path' },
948
+ },
949
+ required: ['path'],
950
+ },
951
+ },
952
+ {
953
+ name: 'write_file',
954
+ description: 'Write content to a file',
955
+ inputSchema: {
956
+ type: 'object',
957
+ properties: {
958
+ path: { type: 'string', description: 'File path' },
959
+ content: { type: 'string', description: 'Content' },
960
+ },
961
+ required: ['path', 'content'],
962
+ },
963
+ },
964
+ {
965
+ name: 'list_directory',
966
+ description: 'List files in a directory',
967
+ inputSchema: {
968
+ type: 'object',
969
+ properties: {
970
+ path: { type: 'string', description: 'Directory path' },
971
+ },
972
+ required: ['path'],
973
+ },
974
+ },
975
+ ],
976
+ };
977
+ });
978
+
979
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
980
+ const { name, arguments: args } = request.params;
981
+
982
+ try {
983
+ let result;
984
+
985
+ switch (name) {
986
+ case 'read_file':
987
+ result = await service.readFile(args.path as string);
988
+ break;
989
+
990
+ case 'write_file':
991
+ result = await service.writeFile(
992
+ args.path as string,
993
+ args.content as string
994
+ );
995
+ break;
996
+
997
+ case 'list_directory':
998
+ result = await service.listDirectory(args.path as string);
999
+ break;
1000
+
1001
+ default:
1002
+ throw new Error(`Unknown tool: ${name}`);
1003
+ }
1004
+
1005
+ return {
1006
+ content: [
1007
+ {
1008
+ type: 'text',
1009
+ text: JSON.stringify(result),
1010
+ },
1011
+ ],
1012
+ };
1013
+ } catch (error: any) {
1014
+ return {
1015
+ content: [
1016
+ {
1017
+ type: 'text',
1018
+ text: JSON.stringify({ error: error.message }),
1019
+ },
1020
+ ],
1021
+ isError: true,
1022
+ };
1023
+ }
1024
+ });
1025
+
1026
+ const transport = new StdioServerTransport();
1027
+ server.connect(transport);
1028
+ console.log('MCP server running on stdio');
1029
+ } else {
1030
+ app.listen(PORT, () => {
1031
+ console.log(`Filesystem agent listening on port ${PORT}`);
1032
+ });
1033
+ }
1034
+ ```
1035
+
1036
+ **Key Benefits:**
1037
+ - ✅ **Single codebase** serves both MCP and HTTP
1038
+ - ✅ **Shared business logic** (FilesystemService)
1039
+ - ✅ **OpenAPI docs** auto-generated from schema
1040
+ - ✅ **Audit logging** enabled for compliance
1041
+ - ✅ **Metrics tracking** for filesystem operations
1042
+ - ✅ **Error handling** consistent across protocols
1043
+
1044
+ ---
1045
+
1046
+ ## Example 3: MCP Resources → OSSA Data Sources
1047
+
1048
+ ### Before: MCP Server with Resources
1049
+
1050
+ ```typescript
1051
+ // database-mcp-server.ts
1052
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
1053
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
1054
+ import {
1055
+ ListResourcesRequestSchema,
1056
+ ReadResourceRequestSchema
1057
+ } from '@modelcontextprotocol/sdk/types';
1058
+
1059
+ const server = new Server(
1060
+ { name: 'database-server', version: '1.0.0' },
1061
+ { capabilities: { resources: {} } }
1062
+ );
1063
+
1064
+ // List available resources
1065
+ server.setRequestHandler(ListResourcesRequestSchema, async () => {
1066
+ return {
1067
+ resources: [
1068
+ {
1069
+ uri: 'db://users',
1070
+ name: 'Users Table',
1071
+ description: 'All users in the database',
1072
+ mimeType: 'application/json'
1073
+ },
1074
+ {
1075
+ uri: 'db://posts',
1076
+ name: 'Posts Table',
1077
+ description: 'All blog posts',
1078
+ mimeType: 'application/json'
1079
+ }
1080
+ ]
1081
+ };
1082
+ });
1083
+
1084
+ // Read a specific resource
1085
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
1086
+ const uri = request.params.uri;
1087
+
1088
+ if (uri === 'db://users') {
1089
+ const users = await fetchUsers(); // Mock DB query
1090
+ return {
1091
+ contents: [
1092
+ {
1093
+ uri,
1094
+ mimeType: 'application/json',
1095
+ text: JSON.stringify(users)
1096
+ }
1097
+ ]
1098
+ };
1099
+ }
1100
+
1101
+ if (uri === 'db://posts') {
1102
+ const posts = await fetchPosts(); // Mock DB query
1103
+ return {
1104
+ contents: [
1105
+ {
1106
+ uri,
1107
+ mimeType: 'application/json',
1108
+ text: JSON.stringify(posts)
1109
+ }
1110
+ ]
1111
+ };
1112
+ }
1113
+
1114
+ throw new Error(`Unknown resource: ${uri}`);
1115
+ });
1116
+
1117
+ const transport = new StdioServerTransport();
1118
+ server.connect(transport);
1119
+ ```
1120
+
1121
+ ---
1122
+
1123
+ ### After: OSSA Agent with Data Source Integration
1124
+
1125
+ **Agent Manifest (`agent.yml`):**
1126
+ ```yaml
1127
+ ossaVersion: "0.2.5-RC"
1128
+ agent:
1129
+ id: database-agent
1130
+ name: database-agent
1131
+ version: 1.0.0
1132
+ description: Database access agent with MCP resources
1133
+ role: workflow
1134
+ tags: [database, data-source, worker]
1135
+
1136
+ runtime:
1137
+ type: local
1138
+ command: [node, dist/index.js]
1139
+ environment:
1140
+ DATABASE_URL: postgresql://localhost:5432/mydb
1141
+ resources:
1142
+ cpu: 1000m
1143
+ memory: 1Gi
1144
+
1145
+ capabilities:
1146
+ - name: query-users
1147
+ description: Query users table
1148
+ input_schema:
1149
+ type: object
1150
+ properties:
1151
+ filter:
1152
+ type: object
1153
+ limit:
1154
+ type: number
1155
+ default: 100
1156
+ output_schema:
1157
+ type: object
1158
+ properties:
1159
+ users:
1160
+ type: array
1161
+ items:
1162
+ type: object
1163
+
1164
+ - name: query-posts
1165
+ description: Query posts table
1166
+ input_schema:
1167
+ type: object
1168
+ properties:
1169
+ author_id:
1170
+ type: string
1171
+ limit:
1172
+ type: number
1173
+ default: 50
1174
+ output_schema:
1175
+ type: object
1176
+ properties:
1177
+ posts:
1178
+ type: array
1179
+ items:
1180
+ type: object
1181
+
1182
+ integration:
1183
+ protocol: http
1184
+ endpoints:
1185
+ base_url: http://localhost:3000
1186
+ health: /health
1187
+ metrics: /metrics
1188
+ # Data source endpoints
1189
+ data_sources:
1190
+ - uri: /data/users
1191
+ description: Users table resource
1192
+ - uri: /data/posts
1193
+ description: Posts table resource
1194
+
1195
+ monitoring:
1196
+ traces: true
1197
+ metrics: true
1198
+ logs: true
1199
+ alerts:
1200
+ - name: slow_query
1201
+ condition: query_duration_ms > 1000
1202
+ severity: warning
1203
+
1204
+ policies:
1205
+ encryption: true
1206
+ audit: true
1207
+ compliance: [SOC2, GDPR, HIPAA]
1208
+ # Database access requires strict compliance
1209
+ data_retention_days: 90
1210
+ rate_limits:
1211
+ - endpoint: /data/*
1212
+ max_requests_per_minute: 100
1213
+
1214
+ bridge:
1215
+ mcp:
1216
+ enabled: true
1217
+ server_type: stdio
1218
+ # Map resources to OSSA capabilities
1219
+ resources:
1220
+ - uri: db://users
1221
+ name: Users Table
1222
+ description: All users in the database
1223
+ capability: query-users
1224
+
1225
+ - uri: db://posts
1226
+ name: Posts Table
1227
+ description: All blog posts
1228
+ capability: query-posts
1229
+
1230
+ config:
1231
+ max_message_size: 10485760 # 10MB for large datasets
1232
+ timeout_ms: 30000
1233
+ retry_count: 3
1234
+
1235
+ openapi:
1236
+ enabled: true
1237
+ spec_url: ./openapi.yaml
1238
+ spec_version: "3.1"
1239
+ ```
1240
+
1241
+ **Implementation (`src/index.ts`):**
1242
+ ```typescript
1243
+ import express from 'express';
1244
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
1245
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
1246
+ import {
1247
+ ListResourcesRequestSchema,
1248
+ ReadResourceRequestSchema,
1249
+ } from '@modelcontextprotocol/sdk/types';
1250
+
1251
+ const app = express();
1252
+ const PORT = process.env.PORT || 3000;
1253
+
1254
+ app.use(express.json());
1255
+
1256
+ // ========================================
1257
+ // Database Service (Shared Logic)
1258
+ // ========================================
1259
+
1260
+ class DatabaseService {
1261
+ async queryUsers(filter?: any, limit: number = 100) {
1262
+ // Mock implementation - replace with real DB query
1263
+ const users = [
1264
+ { id: 1, name: 'Alice', email: 'alice@example.com' },
1265
+ { id: 2, name: 'Bob', email: 'bob@example.com' },
1266
+ ];
1267
+ return {
1268
+ users: users.slice(0, limit),
1269
+ count: users.length,
1270
+ timestamp: new Date().toISOString(),
1271
+ };
1272
+ }
1273
+
1274
+ async queryPosts(authorId?: string, limit: number = 50) {
1275
+ // Mock implementation - replace with real DB query
1276
+ const posts = [
1277
+ { id: 1, title: 'Hello World', author_id: '1' },
1278
+ { id: 2, title: 'OSSA Guide', author_id: '1' },
1279
+ ];
1280
+ return {
1281
+ posts: posts.slice(0, limit),
1282
+ count: posts.length,
1283
+ timestamp: new Date().toISOString(),
1284
+ };
1285
+ }
1286
+ }
1287
+
1288
+ const db = new DatabaseService();
1289
+
1290
+ // ========================================
1291
+ // HTTP Mode (OpenAPI REST API)
1292
+ // ========================================
1293
+
1294
+ app.get('/health', (req, res) => {
1295
+ res.json({
1296
+ status: 'healthy',
1297
+ agent: 'database-agent',
1298
+ version: '1.0.0',
1299
+ database: 'connected',
1300
+ });
1301
+ });
1302
+
1303
+ app.get('/metrics', (req, res) => {
1304
+ res.set('Content-Type', 'text/plain');
1305
+ res.send(`
1306
+ # HELP db_queries_total Total database queries
1307
+ # TYPE db_queries_total counter
1308
+ db_queries_total{table="users"} 1234
1309
+ db_queries_total{table="posts"} 567
1310
+ `.trim());
1311
+ });
1312
+
1313
+ // Data source endpoints (RESTful resources)
1314
+ app.get('/data/users', async (req, res) => {
1315
+ try {
1316
+ const limit = parseInt(req.query.limit as string) || 100;
1317
+ const result = await db.queryUsers({}, limit);
1318
+ res.json(result);
1319
+ } catch (error: any) {
1320
+ res.status(500).json({ error: error.message });
1321
+ }
1322
+ });
1323
+
1324
+ app.get('/data/posts', async (req, res) => {
1325
+ try {
1326
+ const authorId = req.query.author_id as string;
1327
+ const limit = parseInt(req.query.limit as string) || 50;
1328
+ const result = await db.queryPosts(authorId, limit);
1329
+ res.json(result);
1330
+ } catch (error: any) {
1331
+ res.status(500).json({ error: error.message });
1332
+ }
1333
+ });
1334
+
1335
+ // Capability endpoints
1336
+ app.post('/capabilities/query-users', async (req, res) => {
1337
+ try {
1338
+ const { filter, limit } = req.body;
1339
+ const result = await db.queryUsers(filter, limit);
1340
+ res.json(result);
1341
+ } catch (error: any) {
1342
+ res.status(500).json({ error: error.message });
1343
+ }
1344
+ });
1345
+
1346
+ app.post('/capabilities/query-posts', async (req, res) => {
1347
+ try {
1348
+ const { author_id, limit } = req.body;
1349
+ const result = await db.queryPosts(author_id, limit);
1350
+ res.json(result);
1351
+ } catch (error: any) {
1352
+ res.status(500).json({ error: error.message });
1353
+ }
1354
+ });
1355
+
1356
+ // ========================================
1357
+ // MCP Mode (stdio transport)
1358
+ // ========================================
1359
+
1360
+ if (process.env.MCP_MODE === 'stdio') {
1361
+ const server = new Server(
1362
+ { name: 'database-agent', version: '1.0.0' },
1363
+ { capabilities: { resources: {} } }
1364
+ );
1365
+
1366
+ // List resources
1367
+ server.setRequestHandler(ListResourcesRequestSchema, async () => {
1368
+ return {
1369
+ resources: [
1370
+ {
1371
+ uri: 'db://users',
1372
+ name: 'Users Table',
1373
+ description: 'All users in the database',
1374
+ mimeType: 'application/json',
1375
+ },
1376
+ {
1377
+ uri: 'db://posts',
1378
+ name: 'Posts Table',
1379
+ description: 'All blog posts',
1380
+ mimeType: 'application/json',
1381
+ },
1382
+ ],
1383
+ };
1384
+ });
1385
+
1386
+ // Read resource
1387
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
1388
+ const { uri } = request.params;
1389
+
1390
+ try {
1391
+ let data;
1392
+
1393
+ if (uri === 'db://users') {
1394
+ data = await db.queryUsers();
1395
+ } else if (uri === 'db://posts') {
1396
+ data = await db.queryPosts();
1397
+ } else {
1398
+ throw new Error(`Unknown resource: ${uri}`);
1399
+ }
1400
+
1401
+ return {
1402
+ contents: [
1403
+ {
1404
+ uri,
1405
+ mimeType: 'application/json',
1406
+ text: JSON.stringify(data),
1407
+ },
1408
+ ],
1409
+ };
1410
+ } catch (error: any) {
1411
+ throw new Error(`Failed to read resource ${uri}: ${error.message}`);
1412
+ }
1413
+ });
1414
+
1415
+ const transport = new StdioServerTransport();
1416
+ server.connect(transport);
1417
+ console.log('MCP server running on stdio');
1418
+ } else {
1419
+ app.listen(PORT, () => {
1420
+ console.log(`Database agent listening on port ${PORT}`);
1421
+ });
1422
+ }
1423
+ ```
1424
+
1425
+ **Key Benefits:**
1426
+ - ✅ **MCP resources** mapped to REST endpoints
1427
+ - ✅ **Data source discovery** via OpenAPI
1428
+ - ✅ **Query metrics** tracked (Prometheus)
1429
+ - ✅ **Rate limiting** for data access
1430
+ - ✅ **Compliance tracking** (GDPR, HIPAA)
1431
+ - ✅ **Audit logs** for all queries
1432
+
1433
+ ---
1434
+
1435
+ ## Integration Patterns
1436
+
1437
+ ### Pattern 1: Hybrid Access (MCP + HTTP)
1438
+
1439
+ **Use Case:** Tool accessible from both Claude Desktop and web applications.
1440
+
1441
+ ```yaml
1442
+ # agent.yml
1443
+ bridge:
1444
+ mcp:
1445
+ enabled: true
1446
+ server_type: stdio
1447
+ openapi:
1448
+ enabled: true
1449
+ spec_url: ./openapi.yaml
1450
+ ```
1451
+
1452
+ **Benefits:**
1453
+ - Claude Desktop users get native MCP experience
1454
+ - Web apps can use REST API
1455
+ - Single agent, dual protocols
1456
+
1457
+ ---
1458
+
1459
+ ### Pattern 2: Agent Orchestration
1460
+
1461
+ **Use Case:** OSSA orchestrator coordinates multiple MCP agents.
1462
+
1463
+ ```yaml
1464
+ # orchestrator-agent.yml
1465
+ ossaVersion: "0.2.5-RC"
1466
+ agent:
1467
+ id: orchestrator
1468
+ role: orchestration
1469
+
1470
+ capabilities:
1471
+ - name: coordinate-workflow
1472
+ description: Orchestrate multiple agents
1473
+ input_schema:
1474
+ type: object
1475
+ properties:
1476
+ agents:
1477
+ type: array
1478
+ items:
1479
+ type: string
1480
+
1481
+ bridge:
1482
+ # Orchestrator doesn't need MCP
1483
+ # It coordinates other agents via OSSA A2A protocol
1484
+ a2a:
1485
+ enabled: true
1486
+ discovery:
1487
+ mode: registry
1488
+ registry_url: http://localhost:8080
1489
+ ```
1490
+
1491
+ **Workflow:**
1492
+ 1. Orchestrator receives task via HTTP
1493
+ 2. Discovers available agents (some MCP-enabled)
1494
+ 3. Coordinates execution via A2A protocol
1495
+ 4. Aggregates results
1496
+
1497
+ ---
1498
+
1499
+ ### Pattern 3: MCP Server Gateway
1500
+
1501
+ **Use Case:** Single OSSA agent exposes multiple MCP servers.
1502
+
1503
+ ```yaml
1504
+ # gateway-agent.yml
1505
+ ossaVersion: "0.2.5-RC"
1506
+ agent:
1507
+ id: mcp-gateway
1508
+ role: workflow
1509
+
1510
+ capabilities:
1511
+ - name: route-to-mcp
1512
+ description: Route requests to appropriate MCP server
1513
+ input_schema:
1514
+ type: object
1515
+ properties:
1516
+ server:
1517
+ type: string
1518
+ enum: [filesystem, database, git]
1519
+ operation:
1520
+ type: string
1521
+
1522
+ bridge:
1523
+ mcp:
1524
+ enabled: true
1525
+ server_type: stdio
1526
+ # Multiple MCP backends
1527
+ upstreams:
1528
+ - name: filesystem
1529
+ command: [node, mcp-filesystem.js]
1530
+ - name: database
1531
+ command: [node, mcp-database.js]
1532
+ - name: git
1533
+ command: [node, mcp-git.js]
1534
+ ```
1535
+
1536
+ ---
1537
+
1538
+ ## Best Practices
1539
+
1540
+ ### 1. **Keep MCP Code Portable**
1541
+
1542
+ ```typescript
1543
+ // ✅ GOOD: Shared service layer
1544
+ class FilesystemService {
1545
+ async readFile(path: string) {
1546
+ // Business logic here
1547
+ }
1548
+ }
1549
+
1550
+ // Use in both HTTP and MCP modes
1551
+ const service = new FilesystemService();
1552
+ ```
1553
+
1554
+ ### 2. **Use Environment Variables for Mode Selection**
1555
+
1556
+ ```typescript
1557
+ // ✅ GOOD: Single entry point, mode-aware
1558
+ if (process.env.MCP_MODE === 'stdio') {
1559
+ startMcpServer();
1560
+ } else {
1561
+ startHttpServer();
1562
+ }
1563
+ ```
1564
+
1565
+ ### 3. **Map Tool Names Consistently**
1566
+
1567
+ ```yaml
1568
+ # agent.yml
1569
+ capabilities:
1570
+ - name: read-file # Kebab-case in OSSA
1571
+
1572
+ bridge:
1573
+ mcp:
1574
+ tools:
1575
+ - name: read_file # Snake_case in MCP
1576
+ capability: read-file # Maps to OSSA
1577
+ ```
1578
+
1579
+ ### 4. **Enable Monitoring**
1580
+
1581
+ ```yaml
1582
+ monitoring:
1583
+ traces: true # OpenTelemetry traces
1584
+ metrics: true # Prometheus metrics
1585
+ logs: true # Structured logging
1586
+ ```
1587
+
1588
+ ### 5. **Document Both Protocols**
1589
+
1590
+ ```yaml
1591
+ metadata:
1592
+ documentation_url: https://docs.example.com/agent
1593
+ # Include both MCP and OpenAPI docs
1594
+ ```
1595
+
1596
+ ### 6. **Use JSON Schema for Validation**
1597
+
1598
+ ```yaml
1599
+ capabilities:
1600
+ - name: greet
1601
+ input_schema:
1602
+ type: object
1603
+ properties:
1604
+ name:
1605
+ type: string
1606
+ minLength: 1
1607
+ required: [name]
1608
+ ```
1609
+
1610
+ ### 7. **Test Both Modes**
1611
+
1612
+ ```bash
1613
+ # Test HTTP mode
1614
+ npm start
1615
+ curl http://localhost:3000/health
1616
+
1617
+ # Test MCP mode
1618
+ MCP_MODE=stdio npm start
1619
+ # Connect from Claude Desktop
1620
+ ```
1621
+
1622
+ ---
1623
+
1624
+ ## Troubleshooting
1625
+
1626
+ ### Issue: MCP tools not showing in Claude Desktop
1627
+
1628
+ **Solution:**
1629
+ 1. Verify `bridge.mcp.enabled: true` in `agent.yml`
1630
+ 2. Check `server_type: stdio`
1631
+ 3. Ensure `MCP_MODE=stdio` environment variable
1632
+ 4. Restart Claude Desktop
1633
+ 5. Check logs: `~/Library/Logs/Claude/`
1634
+
1635
+ ```bash
1636
+ # Debug
1637
+ MCP_MODE=stdio node dist/index.js
1638
+ # Should output: "MCP server running on stdio"
1639
+ ```
1640
+
1641
+ ---
1642
+
1643
+ ### Issue: HTTP endpoints return 404
1644
+
1645
+ **Solution:**
1646
+ 1. Verify agent is running in HTTP mode (not stdio)
1647
+ 2. Check `integration.endpoints.base_url` in `agent.yml`
1648
+ 3. Ensure Express routes match capability names
1649
+
1650
+ ```bash
1651
+ # Start in HTTP mode
1652
+ npm start # (no MCP_MODE env var)
1653
+
1654
+ # Test
1655
+ curl http://localhost:3000/health
1656
+ ```
1657
+
1658
+ ---
1659
+
1660
+ ### Issue: Tools work in HTTP but not MCP
1661
+
1662
+ **Solution:**
1663
+ 1. Check tool name mapping (snake_case in MCP)
1664
+ 2. Verify `CallToolRequestSchema` handler
1665
+ 3. Ensure JSON response format:
1666
+
1667
+ ```typescript
1668
+ return {
1669
+ content: [
1670
+ {
1671
+ type: 'text',
1672
+ text: JSON.stringify(result) // Must be stringified
1673
+ }
1674
+ ]
1675
+ };
1676
+ ```
1677
+
1678
+ ---
1679
+
1680
+ ### Issue: Large payloads fail in MCP mode
1681
+
1682
+ **Solution:**
1683
+ Increase `max_message_size` in bridge config:
1684
+
1685
+ ```yaml
1686
+ bridge:
1687
+ mcp:
1688
+ config:
1689
+ max_message_size: 10485760 # 10MB (default: 1MB)
1690
+ ```
1691
+
1692
+ ---
1693
+
1694
+ ### Issue: Metrics not showing in Prometheus
1695
+
1696
+ **Solution:**
1697
+ 1. Ensure `/metrics` endpoint exists
1698
+ 2. Use `text/plain` content type
1699
+ 3. Follow Prometheus format:
1700
+
1701
+ ```typescript
1702
+ app.get('/metrics', (req, res) => {
1703
+ res.set('Content-Type', 'text/plain');
1704
+ res.send(`
1705
+ # HELP my_metric_total Total count
1706
+ # TYPE my_metric_total counter
1707
+ my_metric_total 123
1708
+ `.trim());
1709
+ });
1710
+ ```
1711
+
1712
+ ---
1713
+
1714
+ ## Summary
1715
+
1716
+ | Aspect | MCP Alone | MCP + OSSA |
1717
+ |--------|-----------|-----------|
1718
+ | **Claude Desktop** | ✅ Native | ✅ Native (via bridge) |
1719
+ | **HTTP API** | ❌ Manual | ✅ Auto-generated |
1720
+ | **Monitoring** | ❌ Manual | ✅ Built-in |
1721
+ | **Orchestration** | ❌ N/A | ✅ Multi-agent |
1722
+ | **Compliance** | ❌ Manual | ✅ Policy-driven |
1723
+ | **Kubernetes** | ❌ Manual | ✅ Native support |
1724
+ | **OpenAPI Docs** | ❌ N/A | ✅ Auto-generated |
1725
+ | **Metrics** | ❌ Manual | ✅ Prometheus-ready |
1726
+
1727
+ **Next Steps:**
1728
+
1729
+ 1. **Assess** your existing MCP servers
1730
+ 2. **Create** OSSA agents with MCP bridges
1731
+ 3. **Migrate** business logic to shared services
1732
+ 4. **Test** both MCP (stdio) and HTTP modes
1733
+ 5. **Deploy** with monitoring enabled
1734
+ 6. **Monitor** metrics and traces
1735
+ 7. **Scale** with Kubernetes (optional)
1736
+
1737
+ ---
1738
+
1739
+ **Resources:**
1740
+
1741
+ - **OSSA Specification:** [OSSA Complete Agent Reference](/Users/flux423/Sites/LLM/agent-buildkit/docs/architecture/OSSA_COMPLETE_AGENT_REFERENCE.md)
1742
+ - **MCP Protocol:** https://modelcontextprotocol.io
1743
+ - **BuildKit Commands:** `buildkit agents --help`
1744
+ - **MCPB Quickstart:** [MCPB Quickstart Guide](/Users/flux423/Sites/LLM/agent-buildkit/docs/architecture/MCPB_QUICKSTART.md)
1745
+
1746
+ ---
1747
+
1748
+ **Version:** 1.0
1749
+ **Maintained By:** Agent BuildKit Team
1750
+ **License:** MIT