@bluefly/openstandardagents 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/.env.example +41 -0
  2. package/.eslintrc.cjs +43 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +39 -0
  4. package/.github/dependabot.yml +58 -0
  5. package/.github/workflows/ci.yml +154 -0
  6. package/.github/workflows/codeql.yml +41 -0
  7. package/.github/workflows/dependabot-auto-merge.yml +28 -0
  8. package/.github/workflows/release.yml +103 -0
  9. package/.prettierignore +7 -0
  10. package/.prettierrc.json +10 -0
  11. package/.redocly.yaml +9 -0
  12. package/.releaserc.json +84 -0
  13. package/.releaserc.json.disabled +81 -0
  14. package/CHANGELOG.md +152 -0
  15. package/CONTRIBUTING.md +249 -0
  16. package/LICENSE +190 -0
  17. package/README.md +280 -0
  18. package/bin/ossa +8 -0
  19. package/bin/validate-ossa-0.2.2.ts +244 -0
  20. package/dist/di-container.d.ts +18 -0
  21. package/dist/di-container.d.ts.map +1 -0
  22. package/dist/di-container.js +43 -0
  23. package/dist/di-container.js.map +1 -0
  24. package/dist/index.d.ts +13 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +17 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/repositories/manifest.repository.d.ts +26 -0
  29. package/dist/repositories/manifest.repository.d.ts.map +1 -0
  30. package/dist/repositories/manifest.repository.js +90 -0
  31. package/dist/repositories/manifest.repository.js.map +1 -0
  32. package/dist/repositories/schema.repository.d.ts +30 -0
  33. package/dist/repositories/schema.repository.d.ts.map +1 -0
  34. package/dist/repositories/schema.repository.js +143 -0
  35. package/dist/repositories/schema.repository.js.map +1 -0
  36. package/dist/services/generation.service.d.ts +54 -0
  37. package/dist/services/generation.service.d.ts.map +1 -0
  38. package/dist/services/generation.service.js +298 -0
  39. package/dist/services/generation.service.js.map +1 -0
  40. package/dist/services/migration.service.d.ts +30 -0
  41. package/dist/services/migration.service.d.ts.map +1 -0
  42. package/dist/services/migration.service.js +231 -0
  43. package/dist/services/migration.service.js.map +1 -0
  44. package/dist/services/runtime/openai.adapter.d.ts +94 -0
  45. package/dist/services/runtime/openai.adapter.d.ts.map +1 -0
  46. package/dist/services/runtime/openai.adapter.js +209 -0
  47. package/dist/services/runtime/openai.adapter.js.map +1 -0
  48. package/dist/services/validation.service.d.ts +45 -0
  49. package/dist/services/validation.service.d.ts.map +1 -0
  50. package/dist/services/validation.service.js +362 -0
  51. package/dist/services/validation.service.js.map +1 -0
  52. package/dist/services/validators/anthropic.validator.d.ts +9 -0
  53. package/dist/services/validators/anthropic.validator.d.ts.map +1 -0
  54. package/dist/services/validators/anthropic.validator.js +105 -0
  55. package/dist/services/validators/anthropic.validator.js.map +1 -0
  56. package/dist/services/validators/autogen.validator.d.ts +9 -0
  57. package/dist/services/validators/autogen.validator.d.ts.map +1 -0
  58. package/dist/services/validators/autogen.validator.js +111 -0
  59. package/dist/services/validators/autogen.validator.js.map +1 -0
  60. package/dist/services/validators/crewai.validator.d.ts +9 -0
  61. package/dist/services/validators/crewai.validator.d.ts.map +1 -0
  62. package/dist/services/validators/crewai.validator.js +117 -0
  63. package/dist/services/validators/crewai.validator.js.map +1 -0
  64. package/dist/services/validators/cursor.validator.d.ts +9 -0
  65. package/dist/services/validators/cursor.validator.d.ts.map +1 -0
  66. package/dist/services/validators/cursor.validator.js +88 -0
  67. package/dist/services/validators/cursor.validator.js.map +1 -0
  68. package/dist/services/validators/index.d.ts +15 -0
  69. package/dist/services/validators/index.d.ts.map +1 -0
  70. package/dist/services/validators/index.js +15 -0
  71. package/dist/services/validators/index.js.map +1 -0
  72. package/dist/services/validators/langchain.validator.d.ts +9 -0
  73. package/dist/services/validators/langchain.validator.d.ts.map +1 -0
  74. package/dist/services/validators/langchain.validator.js +103 -0
  75. package/dist/services/validators/langchain.validator.js.map +1 -0
  76. package/dist/services/validators/langflow.validator.d.ts +9 -0
  77. package/dist/services/validators/langflow.validator.d.ts.map +1 -0
  78. package/dist/services/validators/langflow.validator.js +92 -0
  79. package/dist/services/validators/langflow.validator.js.map +1 -0
  80. package/dist/services/validators/langgraph.validator.d.ts +9 -0
  81. package/dist/services/validators/langgraph.validator.d.ts.map +1 -0
  82. package/dist/services/validators/langgraph.validator.js +123 -0
  83. package/dist/services/validators/langgraph.validator.js.map +1 -0
  84. package/dist/services/validators/llamaindex.validator.d.ts +9 -0
  85. package/dist/services/validators/llamaindex.validator.d.ts.map +1 -0
  86. package/dist/services/validators/llamaindex.validator.js +121 -0
  87. package/dist/services/validators/llamaindex.validator.js.map +1 -0
  88. package/dist/services/validators/openai.validator.d.ts +9 -0
  89. package/dist/services/validators/openai.validator.d.ts.map +1 -0
  90. package/dist/services/validators/openai.validator.js +126 -0
  91. package/dist/services/validators/openai.validator.js.map +1 -0
  92. package/dist/services/validators/vercel-ai.validator.d.ts +9 -0
  93. package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -0
  94. package/dist/services/validators/vercel-ai.validator.js +99 -0
  95. package/dist/services/validators/vercel-ai.validator.js.map +1 -0
  96. package/dist/spec/v0.1.9/agent-autonomous-extensions.json +234 -0
  97. package/dist/spec/v0.1.9/ecosystem-compliance.json +235 -0
  98. package/dist/spec/v0.1.9/ossa-v0.1.9.schema.json +695 -0
  99. package/dist/spec/v0.1.9/ossa-v0.1.9.schema.json.backup +695 -0
  100. package/dist/spec/v0.1.9/reasoning-compliance.json +654 -0
  101. package/dist/spec/v0.2.2/kagent-enhancements.json +395 -0
  102. package/dist/spec/v0.2.2/ossa-0.2.2.schema.json +906 -0
  103. package/dist/spec/v0.2.2/ossa-0.2.2.yaml +448 -0
  104. package/dist/spec/v0.2.2/ossa-reasoning-compliance-1.0.schema.json +424 -0
  105. package/dist/spec/v0.2.3/CHANGELOG.md +176 -0
  106. package/dist/spec/v0.2.3/README.md +154 -0
  107. package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +343 -0
  108. package/dist/spec/v0.2.3/ossa-0.2.3.schema.json +1397 -0
  109. package/dist/spec/v0.2.3/ossa-0.2.3.yaml +448 -0
  110. package/dist/spec/v0.2.4-dev/CHANGELOG.md +403 -0
  111. package/dist/spec/v0.2.4-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  112. package/dist/spec/v0.2.4-dev/ossa-0.2.4-dev.schema.json +1696 -0
  113. package/dist/spec/v0.2.4-dev/ossa-0.2.4-dev.yaml +581 -0
  114. package/dist/spec/v0.2.5-dev/CHANGELOG.md +171 -0
  115. package/dist/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +362 -0
  116. package/dist/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +464 -0
  117. package/dist/spec/v0.2.5-dev/examples/research-team.ossa.yaml +440 -0
  118. package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +317 -0
  119. package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.schema.json +1732 -0
  120. package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +409 -0
  121. package/dist/types/index.d.ts +178 -0
  122. package/dist/types/index.d.ts.map +1 -0
  123. package/dist/types/index.js +6 -0
  124. package/dist/types/index.js.map +1 -0
  125. package/dist/types/openapi-extensions.d.ts +164 -0
  126. package/dist/types/openapi-extensions.d.ts.map +1 -0
  127. package/dist/types/openapi-extensions.js +6 -0
  128. package/dist/types/openapi-extensions.js.map +1 -0
  129. package/docs/OSSA-COMPLIANT-BADGE.md +248 -0
  130. package/docs/README.md +31 -0
  131. package/docs/VERSIONING.md +284 -0
  132. package/docs/agent-openapi-spec.yml +942 -0
  133. package/docs/getting-started.md +87 -0
  134. package/docs/migration/general-agent-schema.yml +255 -0
  135. package/docs/migration/migration-manifest.json +64 -0
  136. package/docs/openapi-extensions.md +930 -0
  137. package/docs/schemas/openapi-extensions.schema.json +486 -0
  138. package/examples/adk-integration/code-review-workflow.yml +136 -0
  139. package/examples/adk-integration/customer-support.yml +263 -0
  140. package/examples/adk-integration/data-pipeline.yml +173 -0
  141. package/examples/advanced/patterns/compliance-context-production.json +53 -0
  142. package/examples/advanced/patterns/model-router.ts +274 -0
  143. package/examples/advanced/patterns/smart-model-routing.ts +248 -0
  144. package/examples/advanced/workflows/hybrid-model-strategy.yaml +232 -0
  145. package/examples/agent-manifests/critics/critic-agent.yaml +149 -0
  146. package/examples/agent-manifests/governors/governor-agent.yaml +128 -0
  147. package/examples/agent-manifests/integrators/integrator-agent.yaml +103 -0
  148. package/examples/agent-manifests/judges/judge-agent.yaml +153 -0
  149. package/examples/agent-manifests/monitors/monitor-agent.yaml +122 -0
  150. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +247 -0
  151. package/examples/agent-manifests/sample-compliant-agent.yaml +147 -0
  152. package/examples/agent-manifests/workers/worker-agent.yaml +82 -0
  153. package/examples/anthropic/claude-assistant.ossa.json +45 -0
  154. package/examples/architecture/model-configuration/ollama-integration.ts +110 -0
  155. package/examples/autogen/multi-agent.ossa.json +37 -0
  156. package/examples/bridge-configurations.yaml +346 -0
  157. package/examples/bridges/Dockerfile.production +87 -0
  158. package/examples/bridges/__pycache__/aiflow-bridge-enhanced.cpython-313.pyc +0 -0
  159. package/examples/bridges/__pycache__/aiflow-phoenix-tracing.cpython-313.pyc +0 -0
  160. package/examples/bridges/__pycache__/test_aiflow_integration.cpython-313.pyc +0 -0
  161. package/examples/bridges/aiflow-bridge-enhanced.py +462 -0
  162. package/examples/bridges/aiflow-bridge-example.yml +310 -0
  163. package/examples/bridges/aiflow-phoenix-tracing.py +310 -0
  164. package/examples/bridges/aiflow-registration-api.openapi.yml +439 -0
  165. package/examples/bridges/k8s/configmap.yaml +121 -0
  166. package/examples/bridges/k8s/deployment-simple.yaml +34 -0
  167. package/examples/bridges/k8s/deployment.yaml +275 -0
  168. package/examples/bridges/k8s/hpa.yaml +126 -0
  169. package/examples/bridges/k8s/ingress.yaml +155 -0
  170. package/examples/bridges/kagent-bridge-example.yml +94 -0
  171. package/examples/bridges/load-tests/Dockerfile +28 -0
  172. package/examples/bridges/load-tests/k6-load-test.js +302 -0
  173. package/examples/bridges/load-tests/requirements.txt +20 -0
  174. package/examples/bridges/loadtest/k6-scenarios.js +270 -0
  175. package/examples/bridges/phase4/SLO-SLA.yaml +249 -0
  176. package/examples/bridges/phase4/chaos-tests.yaml +226 -0
  177. package/examples/bridges/requirements.txt +24 -0
  178. package/examples/bridges/test_aiflow_integration.py +341 -0
  179. package/examples/common_npm/agent-router.ossa.yaml +182 -0
  180. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +60 -0
  181. package/examples/compliance-agent.yml +155 -0
  182. package/examples/crewai/research-team.ossa.json +36 -0
  183. package/examples/cursor/code-review-agent.ossa.json +47 -0
  184. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +609 -0
  185. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +68 -0
  186. package/examples/enterprise/agent.yml +452 -0
  187. package/examples/extensions/drupal-v1.yml +266 -0
  188. package/examples/extensions/kagent-v1.yml +167 -0
  189. package/examples/getting-started/hello-world-complete.ossa.yaml +266 -0
  190. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +376 -0
  191. package/examples/kagent/README.md +31 -0
  192. package/examples/kagent/compliance-validator.ossa.yaml +111 -0
  193. package/examples/kagent/cost-optimizer.ossa.yaml +93 -0
  194. package/examples/kagent/documentation-agent.ossa.yaml +91 -0
  195. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +269 -0
  196. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +106 -0
  197. package/examples/kagent/k8s-troubleshooter.ossa.yaml +257 -0
  198. package/examples/kagent/security-scanner.ossa.yaml +140 -0
  199. package/examples/langchain/chain-agent.ossa.json +42 -0
  200. package/examples/langflow/workflow-agent.ossa.json +39 -0
  201. package/examples/langgraph/state-machine-agent.ossa.json +59 -0
  202. package/examples/llamaindex/rag-agent.ossa.json +41 -0
  203. package/examples/migration-guides/from-langchain-to-ossa.yaml +309 -0
  204. package/examples/minimal/agent.yml +152 -0
  205. package/examples/minimal/openapi.yaml +95 -0
  206. package/examples/openai/swarm-agent.ossa.json +59 -0
  207. package/examples/openapi-extensions/README.md +87 -0
  208. package/examples/openapi-extensions/minimal-agent-api.openapi.yml +288 -0
  209. package/examples/openapi-extensions/orchestrator-agent-api.openapi.yml +633 -0
  210. package/examples/openapi-extensions/worker-agent-api.openapi.yml +533 -0
  211. package/examples/production/agent.yml +713 -0
  212. package/examples/production/document-analyzer-openai.yml +134 -0
  213. package/examples/quickstart/support-agent.ossa.yaml +59 -0
  214. package/examples/service-registry-usage.ts +423 -0
  215. package/examples/spec-examples/audit-agent.yml +147 -0
  216. package/examples/spec-examples/chat-agent.yml +189 -0
  217. package/examples/spec-examples/compliance-agent.yml +204 -0
  218. package/examples/spec-examples/data-processing-agent.yml +132 -0
  219. package/examples/spec-examples/development-agent.yml +138 -0
  220. package/examples/spec-examples/edge-agent.yml +101 -0
  221. package/examples/spec-examples/integration-agent.yml +129 -0
  222. package/examples/spec-examples/monitoring-agent.yml +130 -0
  223. package/examples/spec-examples/serverless-agent.yml +82 -0
  224. package/examples/spec-examples/workflow-agent.yml +223 -0
  225. package/examples/templates/ossa-compliance.yaml +56 -0
  226. package/examples/typescript/advanced/demo-registry.ts +168 -0
  227. package/examples/typescript/mcpb-agent-example.ts +358 -0
  228. package/examples/vercel/edge-agent.ossa.json +43 -0
  229. package/infrastructure/docker-compose.yml +33 -0
  230. package/junit.xml +1 -0
  231. package/openapi/drupal-agent-api.openapi.yaml +348 -0
  232. package/openapi/gitlab-orchestrator.openapi.yaml +330 -0
  233. package/openapi/helm-generator.openapi.yaml +389 -0
  234. package/openapi/ossa-core-api.openapi.yaml +1448 -0
  235. package/openapi/ossa-registry-api.openapi.yaml +980 -0
  236. package/openapi/ossa-registry.openapi.yaml +782 -0
  237. package/openapi/self-evolving-ecosystem.openapi.yaml +1530 -0
  238. package/openapi/unified-agent-gateway.openapi.yaml +833 -0
  239. package/ossa-website-swarm-tasks.json +105 -0
  240. package/package.json +132 -0
  241. package/release.config.js +64 -0
  242. package/spec/v0.1.9/agent-autonomous-extensions.json +234 -0
  243. package/spec/v0.1.9/ecosystem-compliance.json +235 -0
  244. package/spec/v0.1.9/ossa-v0.1.9.schema.json +695 -0
  245. package/spec/v0.1.9/ossa-v0.1.9.schema.json.backup +695 -0
  246. package/spec/v0.1.9/reasoning-compliance.json +654 -0
  247. package/spec/v0.2.2/kagent-enhancements.json +395 -0
  248. package/spec/v0.2.2/ossa-0.2.2.schema.json +906 -0
  249. package/spec/v0.2.2/ossa-0.2.2.yaml +448 -0
  250. package/spec/v0.2.2/ossa-reasoning-compliance-1.0.schema.json +424 -0
  251. package/spec/v0.2.3/CHANGELOG.md +176 -0
  252. package/spec/v0.2.3/README.md +154 -0
  253. package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +343 -0
  254. package/spec/v0.2.3/ossa-0.2.3.schema.json +1397 -0
  255. package/spec/v0.2.3/ossa-0.2.3.yaml +448 -0
  256. package/spec/v0.2.4-dev/CHANGELOG.md +403 -0
  257. package/spec/v0.2.4-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  258. package/spec/v0.2.4-dev/ossa-0.2.4-dev.schema.json +1696 -0
  259. package/spec/v0.2.4-dev/ossa-0.2.4-dev.yaml +581 -0
  260. package/spec/v0.2.5-dev/CHANGELOG.md +171 -0
  261. package/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +362 -0
  262. package/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +464 -0
  263. package/spec/v0.2.5-dev/examples/research-team.ossa.yaml +440 -0
  264. package/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +317 -0
  265. package/spec/v0.2.5-dev/ossa-0.2.5-dev.schema.json +1732 -0
  266. package/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +409 -0
  267. package/test-results.xml +1 -0
  268. package/website/.lighthouserc.js +20 -0
  269. package/website/.prettierrc +10 -0
  270. package/website/Dockerfile +17 -0
  271. package/website/app/about/page.tsx +295 -0
  272. package/website/app/api/validate/route.ts +88 -0
  273. package/website/app/blog/[slug]/page.tsx +167 -0
  274. package/website/app/blog/page.tsx +162 -0
  275. package/website/app/docs/[[...slug]]/page.tsx +349 -0
  276. package/website/app/docs/core-concepts/project-structure/page.tsx +349 -0
  277. package/website/app/ecosystem/page.tsx +375 -0
  278. package/website/app/examples/page.tsx +123 -0
  279. package/website/app/globals.css +108 -0
  280. package/website/app/layout.tsx +106 -0
  281. package/website/app/page.tsx +409 -0
  282. package/website/app/playground/page.tsx +507 -0
  283. package/website/app/robots.ts +19 -0
  284. package/website/app/rss.xml/route.ts +74 -0
  285. package/website/app/schema/page.tsx +970 -0
  286. package/website/app/sitemap.ts +56 -0
  287. package/website/app/specification/page.tsx +211 -0
  288. package/website/components/InstallCommand.tsx +96 -0
  289. package/website/components/Logo.tsx +24 -0
  290. package/website/components/StructuredData.tsx +65 -0
  291. package/website/components/docs/DocsSearch.tsx +104 -0
  292. package/website/components/docs/DocsSidebar.tsx +118 -0
  293. package/website/components/docs/MarkdownContent.tsx +183 -0
  294. package/website/components/docs/VersionSelector.tsx +49 -0
  295. package/website/components/examples/ExamplesViewer.tsx +293 -0
  296. package/website/components/layout/Footer.tsx +111 -0
  297. package/website/components/layout/Header.tsx +170 -0
  298. package/website/components/schema/SchemaExplorer.tsx +213 -0
  299. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +285 -0
  300. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +209 -0
  301. package/website/content/blog/introducing-ossa-framework.md +328 -0
  302. package/website/content/blog/ossa-production-results.md +279 -0
  303. package/website/content/blog/welcome-to-ossa.md +43 -0
  304. package/website/content/blog/why-ai-agents-need-open-standard.md +98 -0
  305. package/website/content/docs/00-HOME.md +160 -0
  306. package/website/content/docs/AIFlow-Framework-Integration-with-OSSA.md +107 -0
  307. package/website/content/docs/OpenAPI-Extensions.md +498 -0
  308. package/website/content/docs/architecture/execution-flow.md +335 -0
  309. package/website/content/docs/architecture/multi-agent-systems.md +737 -0
  310. package/website/content/docs/architecture/overview.md +121 -0
  311. package/website/content/docs/architecture/stack-integration.md +461 -0
  312. package/website/content/docs/changelog.md +246 -0
  313. package/website/content/docs/contributing.md +599 -0
  314. package/website/content/docs/core-concepts/project-structure.md +348 -0
  315. package/website/content/docs/ecosystem/framework-support.md +821 -0
  316. package/website/content/docs/ecosystem/overview.md +366 -0
  317. package/website/content/docs/examples/Migration-Guides.md +214 -0
  318. package/website/content/docs/examples.md +71 -0
  319. package/website/content/docs/for-audiences/Enterprises.md +256 -0
  320. package/website/content/docs/for-audiences/Students-Researchers.md +122 -0
  321. package/website/content/docs/for-audiences/architects.md +224 -0
  322. package/website/content/docs/for-audiences/developers.md +220 -0
  323. package/website/content/docs/getting-started/5-minute-overview.md +85 -0
  324. package/website/content/docs/getting-started/Hello-World.md +184 -0
  325. package/website/content/docs/getting-started/first-agent.md +196 -0
  326. package/website/content/docs/getting-started/installation.md +155 -0
  327. package/website/content/docs/getting-started/running-agents.md +107 -0
  328. package/website/content/docs/integrations/aiflow.md +104 -0
  329. package/website/content/docs/integrations/drupal.md +105 -0
  330. package/website/content/docs/migration-guides/00-index.md +76 -0
  331. package/website/content/docs/migration-guides/README.md +133 -0
  332. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +1750 -0
  333. package/website/content/docs/migration-guides/crewai-to-ossa.md +274 -0
  334. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +2017 -0
  335. package/website/content/docs/migration-guides/index.md +133 -0
  336. package/website/content/docs/migration-guides/langchain-to-ossa.md +1714 -0
  337. package/website/content/docs/migration-guides/langflow-to-ossa.md +2075 -0
  338. package/website/content/docs/migration-guides/openai-to-ossa.md +1202 -0
  339. package/website/content/docs/openapi-extensions/examples.md +550 -0
  340. package/website/content/docs/openapi-extensions/index.md +495 -0
  341. package/website/content/docs/openapi-extensions/operation-extensions.md +398 -0
  342. package/website/content/docs/openapi-extensions/root-extensions.md +364 -0
  343. package/website/content/docs/pre-release/index.md +175 -0
  344. package/website/content/docs/quick-reference.md +17 -0
  345. package/website/content/docs/schema-reference/agent-spec.md +406 -0
  346. package/website/content/docs/schema-reference/autonomy.md +568 -0
  347. package/website/content/docs/schema-reference/constraints.md +543 -0
  348. package/website/content/docs/schema-reference/index.md +176 -0
  349. package/website/content/docs/schema-reference/llm-config.md +445 -0
  350. package/website/content/docs/schema-reference/observability.md +654 -0
  351. package/website/content/docs/schema-reference/ossa-manifest.md +309 -0
  352. package/website/content/docs/schema-reference/taxonomy.md +509 -0
  353. package/website/content/docs/schema-reference/tools.md +628 -0
  354. package/website/content/docs/templates/blog-post.md +43 -0
  355. package/website/content/docs/use-cases/00-index.md +395 -0
  356. package/website/content/docs/use-cases/cicd-code-review.md +1236 -0
  357. package/website/content/docs/use-cases/customer-support.md +1234 -0
  358. package/website/content/docs/use-cases/enterprise-compliance.md +1208 -0
  359. package/website/content/docs/use-cases/research-multi-agent.md +1161 -0
  360. package/website/lib/version.ts +18 -0
  361. package/website/next.config.js +17 -0
  362. package/website/next.config.ts +16 -0
  363. package/website/nginx.conf +32 -0
  364. package/website/package-lock.json +9145 -0
  365. package/website/package.json +53 -0
  366. package/website/postcss.config.js +7 -0
  367. package/website/postcss.config.mjs +9 -0
  368. package/website/scripts/sync-version.js +44 -0
  369. package/website/scripts/sync-wiki.ts +261 -0
  370. package/website/tailwind.config.js +58 -0
  371. package/website/tailwind.config.ts +65 -0
@@ -0,0 +1,713 @@
1
+ # ============================================================================
2
+ # OSSA Production Worker Agent Example
3
+ # ============================================================================
4
+ # Purpose: Production-ready worker agent for document analysis with NLP
5
+ #
6
+ # Key Concepts:
7
+ # - Worker Agent: Executes tasks delegated by orchestrator agents
8
+ # - Capability-Based: Registers capabilities for discovery and routing
9
+ # - Production-Grade: Full observability, health checks, and resource limits
10
+ # - Multi-Protocol: Exposes both OpenAPI and MCP bridges for integration
11
+ #
12
+ # Conformance Level: Silver
13
+ # - Production-ready with comprehensive monitoring
14
+ # - Health checks for dependencies (database, Redis)
15
+ # - Structured logging with redaction
16
+ # - Metrics and distributed tracing
17
+ # - Performance optimization (caching, batching)
18
+ #
19
+ # Related Examples:
20
+ # - examples/openapi-extensions/orchestrator-agent-api.openapi.yml (Orchestrator)
21
+ # - examples/openapi-extensions/worker-agent-api.openapi.yml (Worker API)
22
+ # - examples/agent-manifests/orchestrators/orchestrator-agent.yaml (Orchestrator manifest)
23
+ #
24
+ # Integration Pattern:
25
+ # 1. Worker agent registers capabilities in agent-mesh
26
+ # 2. Orchestrator discovers worker via agent-router
27
+ # 3. Orchestrator delegates workflow step to worker
28
+ # 4. Worker executes capability and returns result
29
+ # 5. Orchestrator aggregates results from all workers
30
+ #
31
+ # OSSA Version: 1.0 (Worker profile)
32
+ # ============================================================================
33
+
34
+ # OSSA specification version - defines schema and features
35
+ ossaVersion: "1.0"
36
+
37
+ # ============================================================================
38
+ # AGENT: Core identity, capabilities, and runtime configuration
39
+ # ============================================================================
40
+ agent:
41
+ # Unique identifier for service discovery and routing
42
+ # - Used by agent-router to route requests to this agent
43
+ # - Must be unique within the agent ecosystem
44
+ id: document-analyzer
45
+
46
+ # Human-readable name for UI and documentation
47
+ name: Document Analyzer
48
+
49
+ # Semantic version for compatibility tracking
50
+ # - Breaking changes: Increment major version
51
+ # - New capabilities: Increment minor version
52
+ # - Bug fixes: Increment patch version
53
+ version: 2.1.0
54
+
55
+ # Description for service discovery and documentation
56
+ description: Production document analysis agent with NLP capabilities
57
+
58
+ # Role defines the agent's purpose in multi-agent workflows
59
+ # - data_processing: Transforms or analyzes data
60
+ # - code_generation: Generates or modifies code
61
+ # - quality_assurance: Validates outputs
62
+ # - orchestration: Coordinates other agents
63
+ role: data_processing
64
+
65
+ # Tags enable filtering and discovery
66
+ # - Used by orchestrators to find agents with specific traits
67
+ # - Example: Find all NLP agents, all production agents, etc.
68
+ tags:
69
+ - nlp # Natural Language Processing capability
70
+ - documents # Document processing specialization
71
+ - analysis # Analytical capabilities
72
+ - production # Production-ready deployment
73
+
74
+ # Metadata for governance and compliance
75
+ metadata:
76
+ author: Bluefly.io # Team or organization maintaining this agent
77
+ license: MIT # License for usage and distribution
78
+
79
+ # ============================================================================
80
+ # RUNTIME: Kubernetes deployment configuration
81
+ # ============================================================================
82
+ runtime:
83
+ # Deployment type: k8s (Kubernetes), docker, serverless, etc.
84
+ type: k8s
85
+
86
+ # Container image with version tag
87
+ # - Use semantic versioning for image tags
88
+ # - Avoid 'latest' tag in production
89
+ image: ossa/document-analyzer:2.1.0
90
+
91
+ # Resource requests and limits for Kubernetes
92
+ resources:
93
+ # CPU allocation: 1000m = 1 CPU core
94
+ # - Request: Guaranteed allocation
95
+ # - Limit: Maximum allowed (set in k8s manifest)
96
+ cpu: "1000m"
97
+
98
+ # Memory allocation: 1Gi = 1 gibibyte
99
+ # - Request: Guaranteed allocation
100
+ # - Limit: Maximum allowed (OOM kill if exceeded)
101
+ memory: "1Gi"
102
+
103
+ # Health check configuration for Kubernetes liveness/readiness probes
104
+ health_check:
105
+ # HTTP health check endpoint
106
+ type: http
107
+
108
+ # Health check endpoint path
109
+ # - Should return 200 OK when healthy
110
+ # - Should check all critical dependencies (DB, Redis, etc.)
111
+ endpoint: /health
112
+
113
+ # Port for health check requests
114
+ port: 3000
115
+
116
+ # ============================================================================
117
+ # CAPABILITIES: Functions this worker agent can perform
118
+ # ============================================================================
119
+ # Capabilities are registered in agent-mesh for discovery by orchestrators
120
+ # Each capability defines input/output schemas and timeout constraints
121
+ capabilities:
122
+ # ------------------------------------------------------------------------
123
+ # Capability: analyze_document - Comprehensive NLP analysis
124
+ # ------------------------------------------------------------------------
125
+ - name: analyze_document
126
+ # Description used for capability matching and documentation
127
+ description: Comprehensive document analysis with sentiment and entities
128
+
129
+ # Input schema: JSON Schema for request validation
130
+ input_schema:
131
+ type: object
132
+ required: ["document"] # Document text is required
133
+ properties:
134
+ # Document text to analyze
135
+ document:
136
+ type: string
137
+ description: Document text to analyze
138
+
139
+ # Optional: Include entity extraction in analysis
140
+ # - Named entities: People, organizations, locations, dates
141
+ includeEntities:
142
+ type: boolean
143
+ default: true
144
+
145
+ # Optional: Include sentiment analysis in analysis
146
+ # - Sentiment: Positive, negative, neutral with confidence scores
147
+ includeSentiment:
148
+ type: boolean
149
+ default: true
150
+
151
+ # Output schema: JSON Schema for response validation
152
+ output_schema:
153
+ type: object
154
+ properties:
155
+ # Sentiment analysis results
156
+ # - score: -1.0 (negative) to 1.0 (positive)
157
+ # - label: positive, negative, neutral
158
+ # - confidence: 0.0 to 1.0
159
+ sentiment:
160
+ type: object
161
+
162
+ # Named entities extracted from document
163
+ # - type: PERSON, ORG, GPE, DATE, etc.
164
+ # - text: Entity mention in document
165
+ # - start/end: Character offsets
166
+ entities:
167
+ type: array
168
+
169
+ # Generated summary of document (if requested)
170
+ summary:
171
+ type: string
172
+
173
+ # Maximum execution time: 300 seconds (5 minutes)
174
+ # - Includes NLP model inference time
175
+ # - Should handle large documents (up to 100KB)
176
+ timeout_seconds: 300
177
+
178
+ # ------------------------------------------------------------------------
179
+ # Capability: extract_text - Extract text from binary documents
180
+ # ------------------------------------------------------------------------
181
+ - name: extract_text
182
+ # Extract text from PDF, Word, images (OCR), etc.
183
+ description: Extract text from various document formats
184
+
185
+ input_schema:
186
+ type: object
187
+ required: ["document"]
188
+ properties:
189
+ # Binary document data (base64 encoded)
190
+ # - Supports: PDF, DOCX, PPTX, images (OCR)
191
+ document:
192
+ type: string
193
+ format: binary
194
+
195
+ output_schema:
196
+ type: object
197
+ properties:
198
+ # Extracted plain text from document
199
+ text:
200
+ type: string
201
+
202
+ # Shorter timeout: Text extraction is faster than analysis
203
+ # - 60 seconds should handle most documents
204
+ timeout_seconds: 60
205
+
206
+ # ------------------------------------------------------------------------
207
+ # Capability: summarize_document - Generate document summary
208
+ # ------------------------------------------------------------------------
209
+ - name: summarize_document
210
+ # Generate abstractive or extractive summary
211
+ description: Generate concise document summary
212
+
213
+ input_schema:
214
+ type: object
215
+ required: ["text"]
216
+ properties:
217
+ # Document text to summarize
218
+ text:
219
+ type: string
220
+
221
+ # Maximum summary length in characters
222
+ # - Default: 500 characters (2-3 sentences)
223
+ maxLength:
224
+ type: integer
225
+ default: 500
226
+
227
+ output_schema:
228
+ type: object
229
+ properties:
230
+ # Generated summary
231
+ # - Abstractive: Paraphrased summary
232
+ # - Extractive: Key sentences from original
233
+ summary:
234
+ type: string
235
+
236
+ # Medium timeout: Summarization is moderately expensive
237
+ # - 120 seconds for documents up to 50KB
238
+ timeout_seconds: 120
239
+
240
+ # ------------------------------------------------------------------------
241
+ # Capability: classify_document - Categorize document by type
242
+ # ------------------------------------------------------------------------
243
+ - name: classify_document
244
+ # Classify into predefined categories (e.g., invoice, contract, email)
245
+ description: Classify document into categories
246
+
247
+ input_schema:
248
+ type: object
249
+ required: ["text"]
250
+ properties:
251
+ # Document text to classify
252
+ text:
253
+ type: string
254
+
255
+ output_schema:
256
+ type: object
257
+ properties:
258
+ # Predicted category label
259
+ # - Examples: invoice, contract, email, report, memo
260
+ category:
261
+ type: string
262
+
263
+ # Confidence score for prediction (0.0 to 1.0)
264
+ # - Use threshold (e.g., 0.8) for high-confidence predictions
265
+ confidence:
266
+ type: number
267
+
268
+ # Fast timeout: Classification is quick (single model inference)
269
+ timeout_seconds: 60
270
+
271
+ # ============================================================================
272
+ # INTEGRATION: How orchestrators communicate with this worker agent
273
+ # ============================================================================
274
+ integration:
275
+ # Protocol: HTTP REST API
276
+ # - Alternatives: gRPC, WebSocket, message queue
277
+ protocol: http
278
+
279
+ # Endpoint configuration
280
+ endpoints:
281
+ # Base URL for all API requests
282
+ # - Uses Kubernetes service DNS: <service-name>:<port>
283
+ base_url: "http://document-analyzer:3000"
284
+
285
+ # Health check endpoint (Kubernetes liveness/readiness)
286
+ health: /health
287
+
288
+ # Prometheus metrics endpoint
289
+ metrics: /metrics
290
+
291
+ # OpenAPI specification for capabilities
292
+ # - Auto-generated from capability definitions
293
+ # - Used by clients for request/response validation
294
+ openapi: /api/openapi.json
295
+
296
+ # Authentication: JWT tokens
297
+ # - Orchestrators include JWT in Authorization header
298
+ # - Worker validates token signature and expiration
299
+ auth:
300
+ type: jwt
301
+
302
+ # ============================================================================
303
+ # MONITORING: Observability configuration for production operations
304
+ # ============================================================================
305
+ monitoring:
306
+ # IO-aware monitoring: Track input/output for each capability invocation
307
+ # - Enables debugging of request/response payloads
308
+ # - Supports compliance auditing and traceability
309
+ io_aware: true
310
+
311
+ # ============================================================================
312
+ # LOGS: Structured logging configuration
313
+ # ============================================================================
314
+ logs:
315
+ # JSON Lines format for structured logging
316
+ # - Each log entry is a single JSON object
317
+ # - Easy to parse by log aggregation tools (ELK, Loki, CloudWatch)
318
+ format: jsonl
319
+
320
+ # Log level: trace, debug, info, warn, error, fatal
321
+ # - info: Standard production level (business events)
322
+ # - debug: Troubleshooting (more verbose)
323
+ # - trace: Full request/response payloads (development only)
324
+ level: info
325
+
326
+ # Enable distributed tracing correlation IDs in logs
327
+ # - Links logs to distributed traces (Jaeger, Zipkin)
328
+ # - trace_id and span_id fields in every log entry
329
+ trace: true
330
+
331
+ # Log retention period: 30 days
332
+ # - Comply with data retention policies
333
+ # - Balance storage costs with debugging needs
334
+ retention: 30d
335
+
336
+ # Log outputs: Where to send logs
337
+ outputs:
338
+ # Console output for Kubernetes log collection
339
+ # - Kubernetes captures stdout/stderr
340
+ # - Forwarded to log aggregation system
341
+ - type: console
342
+
343
+ # File output for local debugging and backup
344
+ - type: file
345
+ config:
346
+ # Log file path (persistent volume in Kubernetes)
347
+ path: /var/log/ossa/document-analyzer.log
348
+
349
+ # Daily log rotation to prevent large files
350
+ rotation: daily
351
+
352
+ # Keep last 7 days of logs (7 * 24h = 168h retention)
353
+ max_files: 7
354
+
355
+ # ============================================================================
356
+ # METRICS: Prometheus metrics configuration
357
+ # ============================================================================
358
+ metrics:
359
+ # Enable metrics collection
360
+ enabled: true
361
+
362
+ # Metrics endpoint for Prometheus scraping
363
+ # - Kubernetes ServiceMonitor targets this endpoint
364
+ endpoint: /metrics
365
+
366
+ # Prometheus exposition format
367
+ # - Standard text-based format for Prometheus
368
+ format: prometheus
369
+
370
+ # Scrape interval: 60 seconds
371
+ # - Balance between metric granularity and overhead
372
+ # - Kubernetes typically scrapes every 30-60 seconds
373
+ interval: 60
374
+
375
+ # Custom business metrics (in addition to standard runtime metrics)
376
+ custom_metrics:
377
+ # Counter: Total documents processed
378
+ # - Monotonically increasing count
379
+ # - Labels enable filtering by document type and status
380
+ - name: documents_processed_total
381
+ type: counter
382
+ description: Total documents processed
383
+ labels: [document_type, status]
384
+
385
+ # Histogram: Document analysis duration
386
+ # - Distribution of processing times
387
+ # - Buckets define SLO boundaries (e.g., p50, p95, p99)
388
+ - name: analysis_duration_seconds
389
+ type: histogram
390
+ description: Document analysis duration
391
+ buckets: [0.1, 0.5, 1, 2, 5, 10]
392
+
393
+ # ============================================================================
394
+ # TRACES: Distributed tracing configuration
395
+ # ============================================================================
396
+ traces:
397
+ # Enable distributed tracing
398
+ enabled: true
399
+
400
+ # OpenTelemetry Protocol (OTLP) format
401
+ # - Standard protocol for traces, metrics, and logs
402
+ # - Compatible with Jaeger, Zipkin, Tempo, etc.
403
+ format: otlp
404
+
405
+ # Jaeger collector endpoint
406
+ # - Receives trace spans from agent
407
+ # - Stores traces for querying and visualization
408
+ endpoint: http://jaeger:4317
409
+
410
+ # Sampling configuration: Don't trace every request
411
+ sampling:
412
+ # Probabilistic sampling: Randomly sample requests
413
+ # - Alternatives: always_on, always_off, parent_based
414
+ type: probabilistic
415
+
416
+ # Sample 10% of requests
417
+ # - Reduces overhead while preserving statistical accuracy
418
+ # - Increase rate (e.g., 1.0) for debugging
419
+ rate: 0.1
420
+
421
+ # ============================================================================
422
+ # HEALTH: Health check configuration
423
+ # ============================================================================
424
+ health:
425
+ # Enable health checks
426
+ enabled: true
427
+
428
+ # Health check endpoint
429
+ # - Used by Kubernetes liveness and readiness probes
430
+ # - Should return 200 OK when healthy, 5xx when unhealthy
431
+ endpoint: /health
432
+
433
+ # Health check interval: 30 seconds
434
+ # - Kubernetes probes typically run every 10-30 seconds
435
+ interval: 30
436
+
437
+ # Dependency health checks
438
+ # - Agent is only healthy if all dependencies are reachable
439
+ # - Prevents routing traffic to unhealthy instances
440
+ checks:
441
+ # PostgreSQL database health
442
+ - name: database
443
+ type: tcp # TCP connection test
444
+ config:
445
+ port: 5432 # PostgreSQL default port
446
+ timeout: 5 # Fail after 5 seconds
447
+
448
+ # Redis cache health
449
+ - name: redis
450
+ type: tcp # TCP connection test
451
+ config:
452
+ port: 6379 # Redis default port
453
+ timeout: 5 # Fail after 5 seconds
454
+
455
+ # ============================================================================
456
+ # REDACTION: PII/sensitive data redaction in logs and traces
457
+ # ============================================================================
458
+ redaction:
459
+ # Enable automatic redaction of sensitive data
460
+ # - Prevents PII leaks in logs, traces, and metrics
461
+ # - Required for GDPR, HIPAA, PCI-DSS compliance
462
+ enabled: true
463
+
464
+ # Regex patterns for sensitive data detection
465
+ patterns:
466
+ # Credit card numbers (Luhn algorithm format)
467
+ # - Matches: 4532 1234 5678 9010, GB12 3456 7890 1234 5678
468
+ - pattern: "\\b[A-Z]{2}\\d{2}\\s?\\d{4}\\s?\\d{4}\\s?\\d{4}\\s?\\d{4}\\b"
469
+ name: credit_card
470
+
471
+ # US Social Security Numbers (SSN)
472
+ # - Matches: 123-45-6789
473
+ - pattern: "\\b\\d{3}-\\d{2}-\\d{4}\\b"
474
+ name: ssn
475
+
476
+ # Email addresses
477
+ # - Matches: user@example.com
478
+ - pattern: "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b"
479
+ name: email
480
+
481
+ # Replacement text for redacted data
482
+ # - All matches replaced with this string
483
+ # - Preserves log structure while hiding sensitive data
484
+ replacement: '[REDACTED]'
485
+
486
+ # ============================================================================
487
+ # PERFORMANCE: Optimization strategies for cost and latency
488
+ # ============================================================================
489
+ performance:
490
+ # ============================================================================
491
+ # TOKEN OPTIMIZATION: Reduce LLM token usage (if using LLM for NLP)
492
+ # ============================================================================
493
+ token_optimization:
494
+ # Enable token optimization strategies
495
+ enabled: true
496
+
497
+ # Optimization strategies
498
+ strategies:
499
+ # Sliding window: Process long documents in chunks
500
+ # - Prevents exceeding context window limits
501
+ # - Maintains context across chunks via overlap
502
+ - type: sliding_window
503
+ config:
504
+ # Window size: 4096 tokens (~16KB text)
505
+ # - Fits within most LLM context windows
506
+ # - Allows for overlap between windows
507
+ window_size: 4096
508
+
509
+ # Maximum context length: 32000 tokens
510
+ # - Total context available for processing
511
+ # - Includes prompt, document, and response
512
+ max_context: 32000
513
+
514
+ # ============================================================================
515
+ # CACHE: Multi-layer caching for repeated requests
516
+ # ============================================================================
517
+ cache:
518
+ # Enable caching for performance and cost savings
519
+ # - Reduces redundant NLP processing
520
+ # - Lowers LLM API costs
521
+ enabled: true
522
+
523
+ # Cache layers: L1 (memory) -> L2 (Redis)
524
+ layers:
525
+ # L1 Cache: In-memory cache (fastest, limited capacity)
526
+ - name: memory_cache
527
+ type: memory
528
+ # Cache size: 100MB
529
+ # - Stores ~10,000 document analysis results
530
+ size: 100MB
531
+ # TTL: 300 seconds (5 minutes)
532
+ # - Short TTL for frequently accessed data
533
+ # - Falls through to L2 if expired
534
+ ttl: 300
535
+
536
+ # L2 Cache: Redis cache (slower, larger capacity)
537
+ - name: redis_cache
538
+ type: redis
539
+ # TTL: 3600 seconds (1 hour)
540
+ # - Longer TTL for less frequently accessed data
541
+ # - Persists across agent restarts
542
+ ttl: 3600
543
+ config:
544
+ # Redis connection details
545
+ host: redis
546
+ port: 6379
547
+ db: 0
548
+
549
+ # Cache key strategy: semantic
550
+ # - Keys based on semantic similarity of input
551
+ # - Similar documents share cache entries
552
+ # - Alternatives: exact (exact text match), hash (SHA-256)
553
+ key_strategy: semantic
554
+
555
+ # ============================================================================
556
+ # BATCHING: Batch multiple requests for throughput
557
+ # ============================================================================
558
+ batching:
559
+ # Enable request batching
560
+ # - Processes multiple documents in a single batch
561
+ # - Improves GPU utilization for NLP models
562
+ enabled: true
563
+
564
+ # Dynamic batching: Adjust batch size based on load
565
+ # - Small batches under light load (low latency)
566
+ # - Large batches under heavy load (high throughput)
567
+ dynamic: true
568
+
569
+ # Maximum batch size: 32 documents
570
+ # - Balance between throughput and latency
571
+ # - Larger batches increase latency but improve throughput
572
+ max_batch_size: 32
573
+
574
+ # Batch timeout: 100ms
575
+ # - Maximum time to wait for batch to fill
576
+ # - Prevents indefinite waiting under light load
577
+ timeout_ms: 100
578
+
579
+ # ============================================================================
580
+ # BRIDGE: Protocol bridges for multi-protocol support
581
+ # ============================================================================
582
+ bridge:
583
+ # ============================================================================
584
+ # OPENAPI BRIDGE: REST API for standard HTTP clients
585
+ # ============================================================================
586
+ openapi:
587
+ # Enable OpenAPI bridge
588
+ # - Exposes capabilities as REST endpoints
589
+ # - Auto-generates API from capability definitions
590
+ enabled: true
591
+
592
+ # OpenAPI specification file
593
+ # - Can be manually authored or auto-generated
594
+ # - Used by clients for request/response validation
595
+ spec_url: ./openapi.yaml
596
+
597
+ # Auto-generate OpenAPI spec from capabilities
598
+ # - false: Use manually authored spec (this example)
599
+ # - true: Generate spec from capability definitions
600
+ auto_generate: false
601
+
602
+ # ============================================================================
603
+ # MCP BRIDGE: Model Context Protocol for LLM integration
604
+ # ============================================================================
605
+ # MCP enables LLMs to invoke agent capabilities as tools
606
+ # - LLMs can call analyzeDocument, extractEntities, etc.
607
+ # - Agent capabilities become LLM function calls
608
+ mcp:
609
+ # Enable MCP bridge
610
+ # - Exposes capabilities as MCP tools
611
+ # - Allows LLMs to orchestrate this agent
612
+ enabled: true
613
+
614
+ # Server type: stdio (standard input/output)
615
+ # - Communication via stdin/stdout
616
+ # - Alternative: http (REST API for MCP)
617
+ server_type: stdio
618
+
619
+ # MCP tools: Capabilities exposed to LLMs
620
+ tools:
621
+ # MCP Tool: analyzeDocument
622
+ # - Maps to capability: analyze_document
623
+ # - Simplified interface for LLM consumption
624
+ - name: analyzeDocument
625
+ description: Analyze document with NLP
626
+ input_schema:
627
+ type: object
628
+ required: [document]
629
+ properties:
630
+ # Document text to analyze
631
+ document:
632
+ type: string
633
+ # Optional analysis options
634
+ options:
635
+ type: object
636
+ # Capability this tool invokes
637
+ # - Maps MCP tool call to OSSA capability
638
+ capability: sentiment_analysis
639
+
640
+ # MCP Tool: extractEntities
641
+ # - Maps to capability: analyze_document (with entity extraction)
642
+ # - Focused interface for entity extraction only
643
+ - name: extractEntities
644
+ description: Extract named entities
645
+ input_schema:
646
+ type: object
647
+ required: [text]
648
+ properties:
649
+ # Text to extract entities from
650
+ text:
651
+ type: string
652
+ # Capability this tool invokes
653
+ capability: entity_recognition
654
+
655
+ # ============================================================================
656
+ # END OF MANIFEST
657
+ # ============================================================================
658
+ # Deployment Instructions:
659
+ #
660
+ # 1. Build container image:
661
+ # docker build -t ossa/document-analyzer:2.1.0 .
662
+ #
663
+ # 2. Push to registry:
664
+ # docker push ossa/document-analyzer:2.1.0
665
+ #
666
+ # 3. Deploy to Kubernetes:
667
+ # kubectl apply -f k8s/deployment.yaml
668
+ # kubectl apply -f k8s/service.yaml
669
+ #
670
+ # 4. Register with agent-mesh:
671
+ # curl -X POST http://agent-mesh/api/v1/agents \
672
+ # -H "Content-Type: application/json" \
673
+ # -d @agent.yml
674
+ #
675
+ # 5. Verify registration:
676
+ # curl http://agent-mesh/api/v1/agents/document-analyzer
677
+ #
678
+ # 6. Test capability:
679
+ # curl -X POST http://document-analyzer:3000/api/v1/analyze \
680
+ # -H "Content-Type: application/json" \
681
+ # -d '{"document": "This is a test document."}'
682
+ #
683
+ # Monitoring:
684
+ # - Logs: kubectl logs -f deployment/document-analyzer
685
+ # - Metrics: http://document-analyzer:3000/metrics
686
+ # - Traces: https://jaeger.example.com/search?service=document-analyzer
687
+ # - Health: curl http://document-analyzer:3000/health
688
+ #
689
+ # Related Documentation:
690
+ # - OSSA Spec: https://ossa.ai/spec
691
+ # - Worker Agent Pattern: https://ossa.ai/docs/worker-agents
692
+ # - Capability Registration: https://ossa.ai/docs/capabilities
693
+ # - MCP Integration: https://modelcontextprotocol.io
694
+ #
695
+ # Multi-Agent Workflow:
696
+ # 1. Orchestrator receives workflow request
697
+ # 2. Uses agent-router to discover this worker (by capability)
698
+ # 3. Delegates document analysis task to this worker
699
+ # 4. Worker processes document and returns results
700
+ # 5. Orchestrator aggregates results with other workers
701
+ #
702
+ # Example Workflow Step:
703
+ # {
704
+ # "stepId": "analyze-sentiment",
705
+ # "agentType": "worker",
706
+ # "capability": "sentiment_analysis",
707
+ # "input": {
708
+ # "document": "Customer feedback text...",
709
+ # "includeEntities": true,
710
+ # "includeSentiment": true
711
+ # }
712
+ # }
713
+ # ============================================================================