@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,310 @@
1
+ # ============================================================================
2
+ # OSSA Framework Bridge Example: AIFlow-Agent Integration
3
+ # ============================================================================
4
+ #
5
+ # PURPOSE:
6
+ # Demonstrates OSSA's bridge pattern for integrating with AIFlow-Agent,
7
+ # a social agent framework for autonomous cryptocurrency market analysis
8
+ # and social media presence on Twitter, Telegram, and Discord.
9
+ #
10
+ # KEY FEATURES:
11
+ # - Character-based personality system (CryptoSage persona)
12
+ # - Multi-platform social media integration (Twitter/Telegram/Discord)
13
+ # - BNB Chain on-chain data analysis via web3
14
+ # - Autonomous posting with human approval workflow
15
+ # - Message style guides for consistent voice
16
+ #
17
+ # ARCHITECTURE:
18
+ # OSSA Agent (chat role)
19
+ # ↓ (bridge configuration)
20
+ # AIFlow-Agent Runtime
21
+ # ↓ (social platforms)
22
+ # Twitter API / Telegram Bot / Discord Bot
23
+ # ↓ (blockchain data)
24
+ # BNB Chain RPC (web3)
25
+ #
26
+ # USE CASE:
27
+ # Autonomous crypto analyst agent that:
28
+ # 1. Monitors BNB Chain DeFi protocols and token metrics
29
+ # 2. Analyzes market trends using AI
30
+ # 3. Engages with community via social media
31
+ # 4. Posts educational content and data-driven insights
32
+ #
33
+ # BRIDGE PATTERN:
34
+ # The `bridge.aiflow` extension translates OSSA agent capabilities
35
+ # into AIFlow's character-based configuration, enabling OSSA agents
36
+ # to leverage AIFlow's social agent infrastructure.
37
+ #
38
+ # RELATED DOCUMENTATION:
39
+ # - AIFlow-Agent: https://github.com/aiflowagent/aiflowagent
40
+ # - OSSA Bridge Spec: spec/OSSA_Bridge_Pattern.md
41
+ # - BNB Chain: https://www.bnbchain.org
42
+ # ============================================================================
43
+
44
+ # OSSA specification version
45
+ ossaVersion: "1.0"
46
+
47
+ agent:
48
+ # Unique agent identifier (DNS-compatible)
49
+ id: crypto-analyst-agent
50
+
51
+ # Human-readable name
52
+ name: Crypto Market Analyst
53
+
54
+ # Semantic version
55
+ version: 1.0.0
56
+
57
+ # Description of agent's purpose and capabilities
58
+ description: OSSA agent with AIFlow-Agent bridge for social crypto analysis
59
+
60
+ # Role: "chat" indicates interactive, conversational agent
61
+ # (as opposed to "worker" for task-based or "orchestrator" for coordination)
62
+ role: chat
63
+
64
+ # Tags for discovery and categorization
65
+ tags: ["crypto", "social", "bnb-chain", "twitter", "aiflow"]
66
+
67
+ # Runtime configuration
68
+ runtime:
69
+ # Serverless deployment (AWS Lambda, Cloudflare Workers, etc.)
70
+ type: serverless
71
+
72
+ # Python runtime requirements
73
+ requirements:
74
+ python: ">=3.11" # Python 3.11+ for modern async features
75
+ packages:
76
+ - "aiflow-agent" # AIFlow social agent framework
77
+ - "web3" # Ethereum/BNB Chain interaction
78
+ - "tweepy" # Twitter API v2 client
79
+
80
+ # Capabilities define what this agent can do (contract-first design)
81
+ capabilities:
82
+ # ========================================================================
83
+ # Capability 1: Analyze Market
84
+ # ========================================================================
85
+ # Analyzes cryptocurrency market trends for a specific token and timeframe.
86
+ # Uses on-chain data (BNB Chain) + LLM reasoning to generate sentiment.
87
+ # ========================================================================
88
+ - name: analyze_market
89
+
90
+ description: Analyze cryptocurrency market trends
91
+
92
+ # Input: token symbol and analysis timeframe
93
+ input_schema:
94
+ type: object
95
+ properties:
96
+ token:
97
+ type: string # Token symbol (e.g., "BNB", "CAKE")
98
+ timeframe:
99
+ type: string
100
+ enum: ["1h", "24h", "7d", "30d"] # Analysis window
101
+
102
+ # Output: sentiment analysis with confidence score
103
+ output_schema:
104
+ type: object
105
+ properties:
106
+ sentiment:
107
+ type: string
108
+ enum: ["bullish", "bearish", "neutral"] # Market direction
109
+ confidence:
110
+ type: number # 0.0-1.0 confidence in sentiment
111
+ summary:
112
+ type: string # Human-readable analysis summary
113
+
114
+ # ========================================================================
115
+ # Capability 2: Post Analysis
116
+ # ========================================================================
117
+ # Posts market analysis to social media platforms.
118
+ # Requires manual approval (auto_post: false in bridge config).
119
+ # ========================================================================
120
+ - name: post_analysis
121
+
122
+ description: Post market analysis to social media
123
+
124
+ # Input: target platform and content to post
125
+ input_schema:
126
+ type: object
127
+ properties:
128
+ platform:
129
+ type: string
130
+ enum: ["twitter", "telegram", "discord"] # Target social platform
131
+ content:
132
+ type: string # Post content (character limits apply)
133
+
134
+ # Output: posting result with URL reference
135
+ output_schema:
136
+ type: object
137
+ properties:
138
+ posted:
139
+ type: boolean # Success/failure indicator
140
+ post_url:
141
+ type: string # URL to the posted content
142
+
143
+ # Observability configuration
144
+ monitoring:
145
+ traces: true # Distributed tracing for multi-platform interactions
146
+ metrics: true # Prometheus metrics for engagement analytics
147
+ logs: true # Structured logging for audit trail
148
+
149
+ # ========================================================================
150
+ # AIFlow-Agent Bridge Configuration
151
+ # ========================================================================
152
+ # This section configures the AIFlow-Agent integration, defining the
153
+ # agent's personality, social platform connections, and behavior rules.
154
+ #
155
+ # AIFlow uses a "character" model where agents have:
156
+ # - Personality traits and bio
157
+ # - Lore and background story
158
+ # - Topic expertise areas
159
+ # - Communication style guides
160
+ # - Example messages for few-shot learning
161
+ # ========================================================================
162
+ bridge:
163
+ aiflow:
164
+ # Enable AIFlow bridge (false = use native OSSA runtime)
165
+ enabled: true
166
+
167
+ # Character definition (AIFlow personality system)
168
+ character:
169
+ # Character name (used in responses and attribution)
170
+ name: "CryptoSage"
171
+
172
+ # Social media handle/username
173
+ username: "@CryptoSageAI"
174
+
175
+ # Personality traits define the character's voice and behavior
176
+ # These guide LLM prompting for consistent persona
177
+ personality_traits:
178
+ - "analytical" # Data-driven reasoning
179
+ - "data-driven" # Evidence-based conclusions
180
+ - "cautiously optimistic" # Balanced market perspective
181
+ - "educational" # Teaching-oriented communication
182
+
183
+ # Bio appears on social profiles and in agent descriptions
184
+ bio: "AI-powered crypto analyst on BNB Chain. I analyze markets, share insights, and help you navigate the crypto space. Not financial advice!"
185
+
186
+ # Lore provides background story for character consistency
187
+ # Helps LLM understand the character's context and motivations
188
+ lore:
189
+ - "Created by the OSSA community to democratize crypto analysis"
190
+ - "Trained on millions of blockchain transactions and market data"
191
+ - "Believes in transparent, data-driven investment decisions"
192
+
193
+ # Topics the character is knowledgeable about
194
+ # Used for relevance filtering and topic modeling
195
+ topics:
196
+ - "BNB Chain ecosystem"
197
+ - "DeFi protocols"
198
+ - "Market analysis"
199
+ - "Blockchain technology"
200
+ - "Trading strategies"
201
+
202
+ # Style guides control communication patterns
203
+ # Different contexts (chat vs. posts) have different rules
204
+ style:
205
+ # Rules that apply to all interactions
206
+ all:
207
+ - "Use data and metrics to support claims"
208
+ - "Explain complex concepts simply"
209
+ - "Always include risk disclaimers"
210
+
211
+ # Chat-specific style (1-on-1 conversations)
212
+ chat:
213
+ - "Be helpful and educational"
214
+ - "Ask clarifying questions"
215
+ - "Provide actionable insights"
216
+
217
+ # Post-specific style (public social media)
218
+ post:
219
+ - "Lead with the key insight"
220
+ - "Use emojis sparingly (📊📈)"
221
+ - "Include relevant hashtags"
222
+
223
+ # Adjectives for character description (used in prompts)
224
+ adjectives:
225
+ - "analytical"
226
+ - "transparent"
227
+ - "educational"
228
+ - "data-focused"
229
+
230
+ # Few-shot learning examples for consistent response patterns
231
+ # AIFlow uses these to prime the LLM for character voice
232
+ # Conversation examples (few-shot learning for chat interactions)
233
+ # Format: user query → character response
234
+ message_examples:
235
+ - - user: "CryptoSage"
236
+ content:
237
+ text: "What's your take on BNB's price movement today?"
238
+ - character: "CryptoSage"
239
+ content:
240
+ # Example response demonstrating desired voice:
241
+ # - Starts with data
242
+ # - Uses specific metrics
243
+ # - Includes risk disclaimer (DYOR)
244
+ # - Sparing emoji use
245
+ text: "Looking at the 24h data: BNB is up 3.2% with volume increase of 15%. RSI at 62 suggests moderate bullish momentum. Key resistance at $610. Always DYOR! 📊"
246
+
247
+ # Post examples (few-shot learning for social media posts)
248
+ # These demonstrate the character's posting style and format
249
+ post_examples:
250
+ - "📊 BNB Chain TVL hit $5.2B today (+8% week over week). Pancakeswap leading with $2.1B. DeFi summer on BSC? Data suggests sustained growth. #BNB #DeFi #CryptoAnalysis"
251
+ - "🔍 Analyzing top 100 BNB Chain tokens: 67% showing positive 7d trends, avg volume up 12%. Market sentiment: Cautiously optimistic. Full breakdown 👇"
252
+
253
+ # ======================================================================
254
+ # Blockchain Integration (BNB Chain)
255
+ # ======================================================================
256
+ # Enables on-chain data analysis via web3.py
257
+ # ======================================================================
258
+ blockchain:
259
+ enabled: true
260
+ network: mainnet # mainnet or testnet
261
+ wallet_address: "0x..." # BNB Chain wallet for on-chain analysis
262
+ # (read-only, no private key in manifest)
263
+
264
+ # ======================================================================
265
+ # Social Platform Connections
266
+ # ======================================================================
267
+ # Configures social media integrations for multi-platform presence.
268
+ # Credentials are injected via environment variables (not in manifest).
269
+ # ======================================================================
270
+ social_platforms:
271
+ # Twitter integration (via tweepy)
272
+ twitter:
273
+ enabled: true
274
+ username: "@CryptoSageAI"
275
+ auto_post: false # Requires manual approval for safety
276
+
277
+ # Telegram bot integration
278
+ telegram:
279
+ enabled: true
280
+ bot_token: "${TELEGRAM_BOT_TOKEN}" # Env var substitution
281
+
282
+ # Discord bot integration
283
+ discord:
284
+ enabled: true
285
+ bot_token: "${DISCORD_BOT_TOKEN}" # Env var substitution
286
+
287
+ # ============================================================================
288
+ # End of AIFlow Bridge Example
289
+ # ============================================================================
290
+ #
291
+ # VALIDATION:
292
+ # ossa validate examples/bridges/aiflow-bridge-example.yml
293
+ #
294
+ # DEPLOYMENT:
295
+ # 1. Install AIFlow-Agent: pip install aiflow-agent
296
+ # 2. Set environment variables: TELEGRAM_BOT_TOKEN, DISCORD_BOT_TOKEN
297
+ # 3. Configure social platform API keys in .env file
298
+ # 4. Deploy to serverless: ossa deploy crypto-analyst-agent --platform aws-lambda
299
+ #
300
+ # BRIDGE PATTERN NOTES:
301
+ # - The `bridge.aiflow` section is translated into AIFlow character.json
302
+ # - OSSA capabilities map to AIFlow action handlers
303
+ # - Social platform configs generate AIFlow client configurations
304
+ # - Character personality informs LLM system prompts
305
+ #
306
+ # RELATED EXAMPLES:
307
+ # - examples/drupal/gitlab-ml-recommender.ossa.yaml (Drupal bridge)
308
+ # - examples/openapi-extensions/minimal-agent-api.openapi.yml (OpenAPI)
309
+ # - spec/OSSA_Bridge_Pattern.md (bridge specification)
310
+ # ============================================================================
@@ -0,0 +1,310 @@
1
+ """
2
+ Phoenix Tracing Integration for AIFlow FastAPI Bridge
3
+
4
+ This module adds OpenTelemetry/Phoenix tracing to the AIFlow FastAPI bridge.
5
+ Traces all API calls, LLM interactions, and agent tasks.
6
+
7
+ Usage:
8
+ from aiflow_phoenix_tracing import init_phoenix_tracing, trace_agent_task
9
+
10
+ # Initialize at startup
11
+ init_phoenix_tracing(
12
+ service_name="social-agent-aiflow",
13
+ phoenix_endpoint="http://otel.agent-buildkit.orb.local:4318",
14
+ phoenix_project="aiflow-social-agents"
15
+ )
16
+
17
+ # Trace agent tasks
18
+ @trace_agent_task("generate_post")
19
+ async def generate_post(request):
20
+ # Your code here
21
+ pass
22
+ """
23
+
24
+ import os
25
+ import time
26
+ from typing import Optional, Dict, Any, Callable
27
+ from functools import wraps
28
+
29
+ # OpenTelemetry imports
30
+ from opentelemetry import trace
31
+ from opentelemetry.sdk.trace import TracerProvider
32
+ from opentelemetry.sdk.trace.export import BatchSpanProcessor
33
+ from opentelemetry.sdk.resources import Resource
34
+ from opentelemetry.semconv.resource import ResourceAttributes
35
+ from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
36
+ from opentelemetry.instrumentation.fastapi import FastAPIInstrumentation
37
+ from opentelemetry.instrumentation.requests import RequestsInstrumentation
38
+ from opentelemetry.trace import Status, StatusCode, SpanKind
39
+
40
+
41
+ # Global tracer
42
+ _tracer: Optional[trace.Tracer] = None
43
+ _phoenix_config: Dict[str, Any] = {}
44
+
45
+
46
+ def init_phoenix_tracing(
47
+ service_name: str,
48
+ phoenix_endpoint: Optional[str] = None,
49
+ phoenix_project: Optional[str] = None,
50
+ enable_console_export: bool = False,
51
+ ):
52
+ """
53
+ Initialize Phoenix tracing for the AIFlow agent.
54
+
55
+ Args:
56
+ service_name: Name of the service (e.g., 'social-agent-aiflow')
57
+ phoenix_endpoint: Phoenix OTLP endpoint (default: env PHOENIX_ENDPOINT)
58
+ phoenix_project: Phoenix project name (default: env PHOENIX_PROJECT)
59
+ enable_console_export: Export traces to console for debugging
60
+ """
61
+ global _tracer, _phoenix_config
62
+
63
+ # Get config from environment if not provided
64
+ phoenix_endpoint = phoenix_endpoint or os.getenv(
65
+ 'PHOENIX_ENDPOINT',
66
+ 'http://otel.agent-buildkit.orb.local:4318'
67
+ )
68
+ phoenix_project = phoenix_project or os.getenv(
69
+ 'PHOENIX_PROJECT',
70
+ 'aiflow-social-agents'
71
+ )
72
+
73
+ # Store config
74
+ _phoenix_config = {
75
+ 'service_name': service_name,
76
+ 'phoenix_endpoint': phoenix_endpoint,
77
+ 'phoenix_project': phoenix_project,
78
+ }
79
+
80
+ # Create resource
81
+ resource = Resource.create({
82
+ ResourceAttributes.SERVICE_NAME: service_name,
83
+ ResourceAttributes.SERVICE_VERSION: os.getenv('SERVICE_VERSION', '1.0.0'),
84
+ ResourceAttributes.DEPLOYMENT_ENVIRONMENT: os.getenv('NODE_ENV', 'development'),
85
+ 'phoenix.project': phoenix_project,
86
+ 'agent.type': 'aiflow',
87
+ 'agent.framework': 'fastapi',
88
+ })
89
+
90
+ # Create tracer provider
91
+ provider = TracerProvider(resource=resource)
92
+
93
+ # Add OTLP exporter
94
+ otlp_exporter = OTLPSpanExporter(
95
+ endpoint=f"{phoenix_endpoint}/v1/traces",
96
+ headers={
97
+ 'x-phoenix-project': phoenix_project,
98
+ },
99
+ )
100
+
101
+ provider.add_span_processor(
102
+ BatchSpanProcessor(
103
+ otlp_exporter,
104
+ max_queue_size=1000,
105
+ max_export_batch_size=100,
106
+ schedule_delay_millis=1000,
107
+ )
108
+ )
109
+
110
+ # Set as global tracer provider
111
+ trace.set_tracer_provider(provider)
112
+
113
+ # Get tracer
114
+ _tracer = trace.get_tracer(service_name)
115
+
116
+ # Auto-instrument FastAPI and Requests
117
+ FastAPIInstrumentation().instrument()
118
+ RequestsInstrumentation().instrument()
119
+
120
+ print(f"✅ Phoenix tracing initialized")
121
+ print(f" Service: {service_name}")
122
+ print(f" Project: {phoenix_project}")
123
+ print(f" Endpoint: {phoenix_endpoint}")
124
+ print(f" View traces: http://phoenix.agent-buildkit.orb.local:6006/projects/{phoenix_project}")
125
+
126
+
127
+ def get_tracer() -> trace.Tracer:
128
+ """Get the global tracer instance."""
129
+ if _tracer is None:
130
+ raise RuntimeError("Phoenix tracing not initialized. Call init_phoenix_tracing() first.")
131
+ return _tracer
132
+
133
+
134
+ def trace_agent_task(task_name: str):
135
+ """
136
+ Decorator to trace agent tasks.
137
+
138
+ Usage:
139
+ @trace_agent_task("generate_post")
140
+ async def generate_post(request):
141
+ # Your code here
142
+ pass
143
+ """
144
+ def decorator(func: Callable):
145
+ @wraps(func)
146
+ async def wrapper(*args, **kwargs):
147
+ tracer = get_tracer()
148
+
149
+ with tracer.start_as_current_span(
150
+ f"agent.task.{task_name}",
151
+ kind=SpanKind.INTERNAL,
152
+ attributes={
153
+ 'agent.task': task_name,
154
+ 'agent.type': 'aiflow',
155
+ 'agent.service': _phoenix_config.get('service_name', 'unknown'),
156
+ }
157
+ ) as span:
158
+ try:
159
+ start_time = time.time()
160
+ result = await func(*args, **kwargs)
161
+ duration_ms = (time.time() - start_time) * 1000
162
+
163
+ # Add success attributes
164
+ span.set_attribute('agent.task.duration_ms', duration_ms)
165
+ span.set_attribute('agent.task.status', 'success')
166
+ span.set_status(Status(StatusCode.OK))
167
+
168
+ return result
169
+
170
+ except Exception as e:
171
+ # Add error attributes
172
+ span.set_attribute('agent.task.status', 'error')
173
+ span.set_attribute('agent.task.error', str(e))
174
+ span.set_status(Status(StatusCode.ERROR, str(e)))
175
+ span.record_exception(e)
176
+ raise
177
+
178
+ return wrapper
179
+ return decorator
180
+
181
+
182
+ def trace_llm_call(
183
+ provider: str,
184
+ model: str,
185
+ prompt: str,
186
+ response: Optional[str] = None,
187
+ input_tokens: Optional[int] = None,
188
+ output_tokens: Optional[int] = None,
189
+ cost: Optional[float] = None,
190
+ ):
191
+ """
192
+ Add LLM-specific attributes to current span.
193
+
194
+ Args:
195
+ provider: LLM provider (e.g., 'anthropic', 'openai')
196
+ model: Model name (e.g., 'claude-3-sonnet')
197
+ prompt: Input prompt
198
+ response: Generated response
199
+ input_tokens: Number of input tokens
200
+ output_tokens: Number of output tokens
201
+ cost: Estimated cost in USD
202
+ """
203
+ span = trace.get_current_span()
204
+ if span.is_recording():
205
+ span.set_attribute('llm.provider', provider)
206
+ span.set_attribute('llm.model', model)
207
+ span.set_attribute('llm.prompt', prompt[:500]) # Truncate long prompts
208
+
209
+ if response:
210
+ span.set_attribute('llm.response', response[:500])
211
+
212
+ if input_tokens is not None:
213
+ span.set_attribute('llm.tokens.input', input_tokens)
214
+
215
+ if output_tokens is not None:
216
+ span.set_attribute('llm.tokens.output', output_tokens)
217
+
218
+ if input_tokens and output_tokens:
219
+ span.set_attribute('llm.tokens.total', input_tokens + output_tokens)
220
+
221
+ if cost is not None:
222
+ span.set_attribute('llm.cost', cost)
223
+
224
+
225
+ def trace_character_interaction(
226
+ character_name: str,
227
+ interaction_type: str,
228
+ platform: Optional[str] = None,
229
+ mood: Optional[str] = None,
230
+ ):
231
+ """
232
+ Add AIFlow character-specific attributes to current span.
233
+
234
+ Args:
235
+ character_name: Name of the AIFlow character
236
+ interaction_type: Type of interaction ('post', 'response', 'conversation')
237
+ platform: Social platform ('twitter', 'telegram', etc.)
238
+ mood: Character's current mood
239
+ """
240
+ span = trace.get_current_span()
241
+ if span.is_recording():
242
+ span.set_attribute('aiflow.character', character_name)
243
+ span.set_attribute('aiflow.interaction_type', interaction_type)
244
+
245
+ if platform:
246
+ span.set_attribute('aiflow.platform', platform)
247
+
248
+ if mood:
249
+ span.set_attribute('aiflow.mood', mood)
250
+
251
+
252
+ def create_span(span_name: str, attributes: Optional[Dict[str, Any]] = None) -> trace.Span:
253
+ """
254
+ Create a new span for manual instrumentation.
255
+
256
+ Args:
257
+ span_name: Name of the span
258
+ attributes: Optional attributes to add to the span
259
+
260
+ Returns:
261
+ Span context manager
262
+
263
+ Usage:
264
+ with create_span('my_operation', {'key': 'value'}) as span:
265
+ # Your code here
266
+ pass
267
+ """
268
+ tracer = get_tracer()
269
+ span = tracer.start_span(span_name)
270
+
271
+ if attributes:
272
+ for key, value in attributes.items():
273
+ span.set_attribute(key, value)
274
+
275
+ return span
276
+
277
+
278
+ # Example usage in FastAPI app
279
+ if __name__ == '__main__':
280
+ # This would be called in your FastAPI startup
281
+ init_phoenix_tracing(
282
+ service_name='social-agent-aiflow',
283
+ phoenix_endpoint='http://otel.agent-buildkit.orb.local:4318',
284
+ phoenix_project='aiflow-social-agents'
285
+ )
286
+
287
+ # Example traced function
288
+ @trace_agent_task('generate_social_post')
289
+ async def generate_social_post(platform: str, mood: str):
290
+ # Add character interaction metadata
291
+ trace_character_interaction(
292
+ character_name='AIFlow',
293
+ interaction_type='post',
294
+ platform=platform,
295
+ mood=mood
296
+ )
297
+
298
+ # Simulate LLM call
299
+ trace_llm_call(
300
+ provider='anthropic',
301
+ model='claude-3-sonnet',
302
+ prompt='Generate a social media post',
303
+ response='Hello world!',
304
+ input_tokens=150,
305
+ output_tokens=50,
306
+ cost=0.001
307
+ )
308
+
309
+ return {'content': 'Hello world!', 'platform': platform}
310
+