@bluefly/openstandardagents 0.2.4 → 0.2.5-RC

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/.cursorrules +84 -0
  2. package/.devfile.yaml +87 -0
  3. package/.env.example +25 -3
  4. package/.github/workflows/release.yml +1 -1
  5. package/.kiro/specs/agent-buildkit-templates/design.md +495 -0
  6. package/.kiro/specs/agent-buildkit-templates/requirements.md +165 -0
  7. package/.kiro/specs/kiro-ide-supercharger/README.md +202 -0
  8. package/.kiro/specs/kiro-ide-supercharger/design.md +1005 -0
  9. package/.kiro/specs/kiro-ide-supercharger/requirements.md +141 -0
  10. package/.kiro/specs/kiro-ide-supercharger/tasks.md +507 -0
  11. package/.kiro/specs/website-design-audit/design.md +679 -0
  12. package/.kiro/specs/website-design-audit/requirements.md +199 -0
  13. package/.releaserc.json +5 -4
  14. package/.version.json +6 -0
  15. package/CHANGELOG.md +140 -96
  16. package/CONTRIBUTING.md +23 -5
  17. package/README.md +121 -43
  18. package/bin/ossa +24 -3
  19. package/bin/ossa-validate-all +55 -0
  20. package/bin/ossa-version +23 -0
  21. package/bin/validate-ossa-0.2.4.ts +244 -0
  22. package/bin/validate-ossa-0.2.5-RC.ts +244 -0
  23. package/bin/validate-ossa.ts +273 -0
  24. package/dist/di-container.d.ts +1 -1
  25. package/dist/di-container.d.ts.map +1 -1
  26. package/dist/di-container.js.map +1 -1
  27. package/dist/repositories/schema.repository.d.ts +17 -2
  28. package/dist/repositories/schema.repository.d.ts.map +1 -1
  29. package/dist/repositories/schema.repository.js +96 -18
  30. package/dist/repositories/schema.repository.js.map +1 -1
  31. package/dist/services/generation.service.d.ts +7 -5
  32. package/dist/services/generation.service.d.ts.map +1 -1
  33. package/dist/services/generation.service.js +92 -44
  34. package/dist/services/generation.service.js.map +1 -1
  35. package/dist/services/gitlab-agent.service.d.ts +94 -0
  36. package/dist/services/gitlab-agent.service.d.ts.map +1 -0
  37. package/dist/services/gitlab-agent.service.js +162 -0
  38. package/dist/services/gitlab-agent.service.js.map +1 -0
  39. package/dist/services/migration.service.d.ts +3 -3
  40. package/dist/services/migration.service.d.ts.map +1 -1
  41. package/dist/services/migration.service.js +108 -61
  42. package/dist/services/migration.service.js.map +1 -1
  43. package/dist/services/release-automation/base-crud.service.d.ts +93 -0
  44. package/dist/services/release-automation/base-crud.service.d.ts.map +1 -0
  45. package/dist/services/release-automation/base-crud.service.js +68 -0
  46. package/dist/services/release-automation/base-crud.service.js.map +1 -0
  47. package/dist/services/release-automation/index.d.ts +12 -0
  48. package/dist/services/release-automation/index.d.ts.map +1 -0
  49. package/dist/services/release-automation/index.js +12 -0
  50. package/dist/services/release-automation/index.js.map +1 -0
  51. package/dist/services/release-automation/merge-request.service.d.ts +119 -0
  52. package/dist/services/release-automation/merge-request.service.d.ts.map +1 -0
  53. package/dist/services/release-automation/merge-request.service.js +212 -0
  54. package/dist/services/release-automation/merge-request.service.js.map +1 -0
  55. package/dist/services/release-automation/milestone.service.d.ts +104 -0
  56. package/dist/services/release-automation/milestone.service.d.ts.map +1 -0
  57. package/dist/services/release-automation/milestone.service.js +207 -0
  58. package/dist/services/release-automation/milestone.service.js.map +1 -0
  59. package/dist/services/release-automation/release.service.d.ts +118 -0
  60. package/dist/services/release-automation/release.service.d.ts.map +1 -0
  61. package/dist/services/release-automation/release.service.js +207 -0
  62. package/dist/services/release-automation/release.service.js.map +1 -0
  63. package/dist/services/release-automation/schemas/release.schema.d.ts +299 -0
  64. package/dist/services/release-automation/schemas/release.schema.d.ts.map +1 -0
  65. package/dist/services/release-automation/schemas/release.schema.js +269 -0
  66. package/dist/services/release-automation/schemas/release.schema.js.map +1 -0
  67. package/dist/services/release-automation/tag.service.d.ts +99 -0
  68. package/dist/services/release-automation/tag.service.d.ts.map +1 -0
  69. package/dist/services/release-automation/tag.service.js +180 -0
  70. package/dist/services/release-automation/tag.service.js.map +1 -0
  71. package/dist/services/release-automation/webhook.service.d.ts +37 -0
  72. package/dist/services/release-automation/webhook.service.d.ts.map +1 -0
  73. package/dist/services/release-automation/webhook.service.js +173 -0
  74. package/dist/services/release-automation/webhook.service.js.map +1 -0
  75. package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
  76. package/dist/services/runtime/openai.adapter.js.map +1 -1
  77. package/dist/services/validation.service.d.ts.map +1 -1
  78. package/dist/services/validation.service.js +24 -11
  79. package/dist/services/validation.service.js.map +1 -1
  80. package/dist/services/validators/anthropic.validator.d.ts +2 -2
  81. package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
  82. package/dist/services/validators/anthropic.validator.js +14 -9
  83. package/dist/services/validators/anthropic.validator.js.map +1 -1
  84. package/dist/services/validators/autogen.validator.d.ts +2 -2
  85. package/dist/services/validators/autogen.validator.d.ts.map +1 -1
  86. package/dist/services/validators/autogen.validator.js +18 -15
  87. package/dist/services/validators/autogen.validator.js.map +1 -1
  88. package/dist/services/validators/crewai.validator.d.ts +2 -2
  89. package/dist/services/validators/crewai.validator.d.ts.map +1 -1
  90. package/dist/services/validators/crewai.validator.js +18 -17
  91. package/dist/services/validators/crewai.validator.js.map +1 -1
  92. package/dist/services/validators/cursor.validator.d.ts +2 -2
  93. package/dist/services/validators/cursor.validator.d.ts.map +1 -1
  94. package/dist/services/validators/cursor.validator.js +15 -11
  95. package/dist/services/validators/cursor.validator.js.map +1 -1
  96. package/dist/services/validators/langchain.validator.d.ts +2 -2
  97. package/dist/services/validators/langchain.validator.d.ts.map +1 -1
  98. package/dist/services/validators/langchain.validator.js +14 -11
  99. package/dist/services/validators/langchain.validator.js.map +1 -1
  100. package/dist/services/validators/langflow.validator.d.ts +2 -2
  101. package/dist/services/validators/langflow.validator.d.ts.map +1 -1
  102. package/dist/services/validators/langflow.validator.js +14 -9
  103. package/dist/services/validators/langflow.validator.js.map +1 -1
  104. package/dist/services/validators/langgraph.validator.d.ts +2 -2
  105. package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
  106. package/dist/services/validators/langgraph.validator.js +23 -18
  107. package/dist/services/validators/langgraph.validator.js.map +1 -1
  108. package/dist/services/validators/llamaindex.validator.d.ts +2 -2
  109. package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
  110. package/dist/services/validators/llamaindex.validator.js +19 -16
  111. package/dist/services/validators/llamaindex.validator.js.map +1 -1
  112. package/dist/services/validators/openai.validator.d.ts +2 -2
  113. package/dist/services/validators/openai.validator.d.ts.map +1 -1
  114. package/dist/services/validators/openai.validator.js +20 -16
  115. package/dist/services/validators/openai.validator.js.map +1 -1
  116. package/dist/services/validators/vercel-ai.validator.d.ts +2 -2
  117. package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
  118. package/dist/services/validators/vercel-ai.validator.js +16 -15
  119. package/dist/services/validators/vercel-ai.validator.js.map +1 -1
  120. package/dist/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
  121. package/dist/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
  122. package/dist/spec/v0.2.3/CHANGELOG.md +7 -7
  123. package/dist/spec/v0.2.3/README.md +9 -9
  124. package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
  125. package/{spec/v0.2.4-dev → dist/spec/v0.2.4}/CHANGELOG.md +8 -8
  126. package/dist/spec/{v0.2.4-dev → v0.2.4}/migrations/v0.2.3-to-v0.2.4.md +10 -10
  127. package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
  128. package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
  129. package/dist/spec/v0.2.5/CHANGELOG.md +401 -0
  130. package/dist/spec/v0.2.5/README.md +72 -0
  131. package/dist/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
  132. package/dist/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
  133. package/dist/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
  134. package/dist/spec/v0.2.5-RC/CHANGELOG.md +401 -0
  135. package/dist/spec/v0.2.5-RC/README.md +72 -0
  136. package/{spec/v0.2.4-dev → dist/spec/v0.2.5-RC}/migrations/v0.2.3-to-v0.2.4.md +10 -10
  137. package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
  138. package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
  139. package/dist/types/index.d.ts +6 -1
  140. package/dist/types/index.d.ts.map +1 -1
  141. package/docs/issue-19-completion-summary.md +648 -0
  142. package/docs/issue-19-validation.md +351 -0
  143. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  144. package/examples/autogen/multi-agent.ossa.json +1 -1
  145. package/examples/bridges/Dockerfile.production +1 -1
  146. package/examples/crewai/research-team.ossa.json +1 -1
  147. package/examples/cursor/code-review-agent.ossa.json +1 -1
  148. package/examples/enterprise/agent.yml +1 -1
  149. package/examples/getting-started/hello-world-complete.ossa.yaml +2 -2
  150. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  151. package/examples/langchain/chain-agent.ossa.json +1 -1
  152. package/examples/langflow/workflow-agent.ossa.json +1 -1
  153. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  154. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  155. package/examples/openai/basic-agent.ossa.yaml +61 -0
  156. package/examples/openai/multi-tool-agent.ossa.json +165 -0
  157. package/examples/openai/swarm-agent.ossa.json +1 -1
  158. package/examples/openapi-extensions/README.md +1 -1
  159. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  160. package/examples/vercel/edge-agent.ossa.json +1 -1
  161. package/infrastructure/gitlab-agent/rbac.yaml +126 -0
  162. package/infrastructure/gitlab-agent/values.yaml +150 -0
  163. package/infrastructure/k8s/monitoring/00-namespace.yaml +7 -0
  164. package/infrastructure/k8s/monitoring/01-prometheus.yaml +142 -0
  165. package/infrastructure/k8s/monitoring/02-grafana.yaml +63 -0
  166. package/infrastructure/k8s/monitoring/03-lightweight.yaml +121 -0
  167. package/infrastructure/k8s/monitoring/README.md +73 -0
  168. package/infrastructure/k8s/monitoring/deploy.sh +38 -0
  169. package/openapi/CHANGELOG.md +21 -0
  170. package/openapi/README.md +46 -0
  171. package/openapi/{ossa-core-api.openapi.yaml → core/ossa-core-api.openapi.yaml} +59 -4
  172. package/openapi/{ossa-registry.openapi.yaml → core/ossa-registry.openapi.yaml} +75 -2
  173. package/openapi/{unified-agent-gateway.openapi.yaml → core/unified-agent-gateway.openapi.yaml} +3 -3
  174. package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +136 -0
  175. package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +192 -0
  176. package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +149 -0
  177. package/openapi/reference-implementations/critic-agent-api.openapi.yaml +151 -0
  178. package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +217 -0
  179. package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +149 -0
  180. package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +151 -0
  181. package/openapi/reference-implementations/governor-agent-api.openapi.yaml +193 -0
  182. package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +165 -0
  183. package/openapi/reference-implementations/judge-agent-api.openapi.yaml +148 -0
  184. package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +167 -0
  185. package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +171 -0
  186. package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +171 -0
  187. package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +242 -0
  188. package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +187 -0
  189. package/openapi/{self-evolving-ecosystem.openapi.yaml → reference-implementations/self-evolving-ecosystem.openapi.yaml} +2 -2
  190. package/openapi/reference-implementations/worker-agent-api.openapi.yaml +208 -0
  191. package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +193 -0
  192. package/package.json +31 -21
  193. package/release.config.js +20 -5
  194. package/scripts/bump-version.ts +57 -0
  195. package/scripts/enhanced-version-manager.ts +257 -0
  196. package/scripts/gen-types.ts +51 -0
  197. package/scripts/gen-zod.ts +51 -0
  198. package/scripts/lib/exec.ts +37 -0
  199. package/scripts/lib/file-ops.ts +58 -0
  200. package/scripts/lib/version.ts +83 -0
  201. package/scripts/process-doc-templates.ts +37 -0
  202. package/scripts/schemas/package.schema.ts +75 -0
  203. package/scripts/setup-branch-protection.sh +33 -0
  204. package/scripts/sync-version.ts +39 -0
  205. package/scripts/sync-versions.ts +488 -0
  206. package/scripts/validate-schema.ts +49 -0
  207. package/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
  208. package/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
  209. package/spec/v0.2.3/CHANGELOG.md +7 -7
  210. package/spec/v0.2.3/README.md +9 -9
  211. package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
  212. package/{dist/spec/v0.2.4-dev → spec/v0.2.4}/CHANGELOG.md +8 -8
  213. package/spec/v0.2.4/migrations/v0.2.3-to-v0.2.4.md +599 -0
  214. package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
  215. package/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
  216. package/spec/v0.2.5/CHANGELOG.md +401 -0
  217. package/spec/v0.2.5/README.md +72 -0
  218. package/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
  219. package/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
  220. package/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
  221. package/spec/v0.2.5-RC/CHANGELOG.md +401 -0
  222. package/spec/v0.2.5-RC/README.md +72 -0
  223. package/spec/v0.2.5-RC/migrations/v0.2.3-to-v0.2.4.md +599 -0
  224. package/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
  225. package/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
  226. package/website/{.lighthouserc.js → .lighthouserc.ts} +5 -1
  227. package/website/Dockerfile +18 -5
  228. package/website/app/about/page.tsx +7 -7
  229. package/website/app/blog/[slug]/page.tsx +61 -20
  230. package/website/app/blog/page.tsx +120 -33
  231. package/website/app/design-guide/page.tsx +511 -0
  232. package/website/app/docs/[[...slug]]/page.tsx +641 -143
  233. package/website/app/examples/page.tsx +51 -41
  234. package/website/app/{globals.css → globals.scss} +50 -23
  235. package/website/app/layout.tsx +2 -2
  236. package/website/app/license/page.tsx +183 -0
  237. package/website/app/not-found.tsx +18 -0
  238. package/website/app/page.tsx +144 -79
  239. package/website/app/playground/page.tsx +25 -45
  240. package/website/app/schema/page.tsx +423 -392
  241. package/website/app/specification/page.tsx +245 -169
  242. package/website/components/Logo.tsx +75 -2
  243. package/website/components/docs/DocsSidebar.tsx +40 -3
  244. package/website/components/docs/MarkdownContent.tsx +265 -47
  245. package/website/components/docs/VersionSelector.tsx +64 -8
  246. package/website/components/examples/ExamplesViewer.tsx +2 -2
  247. package/website/components/layout/Footer.tsx +6 -1
  248. package/website/components/layout/Header.tsx +31 -33
  249. package/website/components/schema/SchemaComponentsAccordion.tsx +84 -0
  250. package/website/components/schema/SchemaExplorer.tsx +4 -4
  251. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +276 -276
  252. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +3 -14
  253. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +286 -0
  254. package/website/content/blog/introducing-ossa-framework.md +1 -1
  255. package/website/content/blog/ossa-production-results.md +5 -5
  256. package/website/content/blog/welcome-to-ossa.md +2 -2
  257. package/website/content/blog/why-ai-agents-need-open-standard.md +5 -5
  258. package/website/content/docs/00-HOME.md +18 -25
  259. package/website/content/docs/AIFlow-Framework-Integration-with-OSSA.md +8 -8
  260. package/website/content/docs/OpenAPI-Extensions.md +576 -140
  261. package/website/content/docs/adapters/openai-adapter.md +693 -0
  262. package/website/content/docs/architecture/execution-flow.md +3 -3
  263. package/website/content/docs/architecture/multi-agent-systems.md +4 -4
  264. package/website/content/docs/architecture/overview.md +4 -4
  265. package/website/content/docs/architecture/stack-integration.md +4 -4
  266. package/website/content/docs/changelog.md +4 -4
  267. package/website/content/docs/contributing.md +2 -2
  268. package/website/content/docs/ecosystem/framework-support.md +0 -2
  269. package/website/content/docs/examples/AIFlow-Framework-Integration-with-OSSA.md +107 -0
  270. package/website/content/docs/examples/Migration-Guides.md +2 -2
  271. package/website/content/docs/for-audiences/{architects.md → Architects.md} +1 -1
  272. package/website/content/docs/for-audiences/{developers.md → Developers.md} +3 -3
  273. package/website/content/docs/for-audiences/Enterprises.md +2 -2
  274. package/website/content/docs/for-audiences/Students-Researchers.md +1 -1
  275. package/website/content/docs/getting-started/{5-minute-overview.md → 5-Minute-Overview.md} +2 -2
  276. package/website/content/docs/getting-started/{first-agent.md → First-Agent.md} +1 -1
  277. package/website/content/docs/getting-started/Hello-World.md +3 -3
  278. package/website/content/docs/getting-started/{installation.md → Installation.md} +7 -7
  279. package/website/content/docs/getting-started/index.md +92 -0
  280. package/website/content/docs/getting-started/running-agents.md +215 -13
  281. package/{docs → website/content/docs}/getting-started.md +10 -6
  282. package/website/content/docs/integrations/aiflow.md +2 -2
  283. package/website/content/docs/integrations/drupal.md +2 -2
  284. package/website/content/docs/migration-guides/README.md +1 -1
  285. package/website/content/docs/migration-guides/agent-schema-comparison.md +232 -0
  286. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
  287. package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
  288. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +11 -11
  289. package/{docs/migration → website/content/docs/migration-guides}/general-agent-schema.yml +1 -9
  290. package/website/content/docs/migration-guides/index.md +1 -1
  291. package/website/content/docs/migration-guides/langchain-to-ossa.md +17 -17
  292. package/website/content/docs/migration-guides/langflow-to-ossa.md +3 -3
  293. package/website/content/docs/migration-guides/openai-to-ossa.md +10 -10
  294. package/website/content/docs/openapi-extensions/examples.md +9 -9
  295. package/website/content/docs/openapi-extensions/index.md +59 -3
  296. package/website/content/docs/openapi-extensions/operation-extensions.md +61 -2
  297. package/website/content/docs/openapi-extensions/root-extensions.md +49 -3
  298. package/{docs/OSSA-COMPLIANT-BADGE.md → website/content/docs/ossa-compliant-badge.md} +18 -15
  299. package/website/content/docs/pre-release/index.md +10 -10
  300. package/website/content/docs/readme.md +35 -0
  301. package/website/content/docs/schema-reference/agent-spec.md +2 -2
  302. package/website/content/docs/schema-reference/autonomy.md +5 -5
  303. package/website/content/docs/schema-reference/constraints.md +5 -5
  304. package/website/content/docs/schema-reference/llm-config.md +1 -1
  305. package/website/content/docs/schema-reference/observability.md +5 -5
  306. package/website/content/docs/schema-reference/ossa-manifest.md +6 -6
  307. package/website/content/docs/schema-reference/taxonomy.md +3 -3
  308. package/website/content/docs/use-cases/00-index.md +1 -1
  309. package/{docs/VERSIONING.md → website/content/docs/versioning.md} +9 -5
  310. package/website/lib/version.ts +18 -1
  311. package/website/lib/versions.json +78 -0
  312. package/website/next.config.ts +3 -1
  313. package/website/package-lock.json +552 -18
  314. package/website/package.json +11 -5
  315. package/website/postcss.config.mjs +1 -1
  316. package/website/scripts/fetch-versions.js +166 -0
  317. package/website/scripts/generate-examples-index.js +163 -0
  318. package/website/scripts/merge-docs-to-wiki.ts +207 -0
  319. package/website/scripts/sync-version.js +28 -0
  320. package/website/scripts/sync-wiki.ts +64 -3
  321. package/website/scripts/upload-wiki.ts +199 -0
  322. package/website/styles/_variables.scss +36 -0
  323. package/website/tailwind.config.ts +93 -22
  324. package/.releaserc.json.disabled +0 -81
  325. package/dist/spec/v0.2.5-dev/CHANGELOG.md +0 -171
  326. package/dist/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
  327. package/dist/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
  328. package/dist/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
  329. package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
  330. package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
  331. package/docs/README.md +0 -31
  332. package/docs/agent-openapi-spec.yml +0 -942
  333. package/docs/openapi-extensions.md +0 -930
  334. package/docs/schemas/openapi-extensions.schema.json +0 -486
  335. package/openapi/gitlab-orchestrator.openapi.yaml +0 -330
  336. package/ossa-website-swarm-tasks.json +0 -105
  337. package/spec/v0.2.5-dev/CHANGELOG.md +0 -171
  338. package/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
  339. package/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
  340. package/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
  341. package/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
  342. package/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
  343. package/website/app/api/validate/route.ts +0 -88
  344. package/website/next.config.js +0 -17
  345. package/website/postcss.config.js +0 -7
  346. package/website/tailwind.config.js +0 -58
  347. /package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
  348. /package/openapi/{ossa-registry-api.openapi.yaml → core/ossa-registry-api.openapi.yaml} +0 -0
  349. /package/openapi/{drupal-agent-api.openapi.yaml → reference-implementations/drupal-agent-api.openapi.yaml} +0 -0
  350. /package/openapi/{helm-generator.openapi.yaml → reference-implementations/helm-generator.openapi.yaml} +0 -0
  351. /package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
  352. /package/website/content/docs/{examples.md → Examples.md} +0 -0
  353. /package/website/content/docs/core-concepts/{project-structure.md → Project-Structure.md} +0 -0
  354. /package/website/content/docs/migration-guides/{00-index.md → 00-INDEX.md} +0 -0
  355. /package/{docs/migration → website/content/docs/migration-guides}/migration-manifest.json +0 -0
@@ -0,0 +1,165 @@
1
+ {
2
+ "apiVersion": "ossa/v0.2.4",
3
+ "kind": "Agent",
4
+ "metadata": {
5
+ "name": "multi-tool-agent",
6
+ "version": "1.0.0",
7
+ "description": "Advanced agent demonstrating multiple tools and custom handlers"
8
+ },
9
+ "spec": {
10
+ "role": "You are a versatile AI assistant with multiple capabilities including web search, calculations, weather information, and text translation.",
11
+ "llm": {
12
+ "provider": "openai",
13
+ "model": "gpt-4o",
14
+ "temperature": 0.7,
15
+ "maxTokens": 2000
16
+ }
17
+ },
18
+ "extensions": {
19
+ "openai_agents": {
20
+ "model": "gpt-4o",
21
+ "instructions": "You are a versatile AI assistant with access to multiple tools:\n\n1. Web Search - Find current information online\n2. Calculator - Perform mathematical calculations\n3. Weather - Get weather information for any location\n4. Translator - Translate text between languages\n5. Unit Converter - Convert between different units\n6. Time Zone - Get current time in different time zones\n\nAlways:\n- Use the appropriate tool for each task\n- Explain your reasoning\n- Provide accurate and helpful information\n- Ask for clarification if needed",
22
+ "tools_mapping": [
23
+ {
24
+ "ossa_capability": "web_search",
25
+ "openai_tool_name": "search_web",
26
+ "description": "Search the web for current information on any topic",
27
+ "parameters": {
28
+ "type": "object",
29
+ "properties": {
30
+ "query": {
31
+ "type": "string",
32
+ "description": "The search query"
33
+ },
34
+ "num_results": {
35
+ "type": "number",
36
+ "description": "Number of results to return",
37
+ "default": 5
38
+ }
39
+ },
40
+ "required": ["query"]
41
+ }
42
+ },
43
+ {
44
+ "ossa_capability": "calculator",
45
+ "openai_tool_name": "calculate",
46
+ "description": "Perform mathematical calculations including basic arithmetic, algebra, and common functions",
47
+ "parameters": {
48
+ "type": "object",
49
+ "properties": {
50
+ "expression": {
51
+ "type": "string",
52
+ "description": "Mathematical expression to evaluate (e.g., '2 + 2', 'sqrt(16)', 'sin(pi/2)')"
53
+ }
54
+ },
55
+ "required": ["expression"]
56
+ }
57
+ },
58
+ {
59
+ "ossa_capability": "weather",
60
+ "openai_tool_name": "get_weather",
61
+ "description": "Get current weather information for a specific location",
62
+ "parameters": {
63
+ "type": "object",
64
+ "properties": {
65
+ "location": {
66
+ "type": "string",
67
+ "description": "City name, coordinates, or zip code"
68
+ },
69
+ "units": {
70
+ "type": "string",
71
+ "enum": ["celsius", "fahrenheit", "kelvin"],
72
+ "description": "Temperature units",
73
+ "default": "celsius"
74
+ },
75
+ "include_forecast": {
76
+ "type": "boolean",
77
+ "description": "Include 5-day forecast",
78
+ "default": false
79
+ }
80
+ },
81
+ "required": ["location"]
82
+ }
83
+ },
84
+ {
85
+ "ossa_capability": "translate",
86
+ "openai_tool_name": "translate_text",
87
+ "description": "Translate text from one language to another",
88
+ "parameters": {
89
+ "type": "object",
90
+ "properties": {
91
+ "text": {
92
+ "type": "string",
93
+ "description": "Text to translate"
94
+ },
95
+ "source_language": {
96
+ "type": "string",
97
+ "description": "Source language code (e.g., 'en', 'es', 'fr'). Use 'auto' for automatic detection",
98
+ "default": "auto"
99
+ },
100
+ "target_language": {
101
+ "type": "string",
102
+ "description": "Target language code (e.g., 'en', 'es', 'fr')"
103
+ }
104
+ },
105
+ "required": ["text", "target_language"]
106
+ }
107
+ },
108
+ {
109
+ "ossa_capability": "unit_converter",
110
+ "openai_tool_name": "convert_units",
111
+ "description": "Convert between different units of measurement",
112
+ "parameters": {
113
+ "type": "object",
114
+ "properties": {
115
+ "value": {
116
+ "type": "number",
117
+ "description": "The value to convert"
118
+ },
119
+ "from_unit": {
120
+ "type": "string",
121
+ "description": "Source unit (e.g., 'meters', 'feet', 'celsius', 'pounds')"
122
+ },
123
+ "to_unit": {
124
+ "type": "string",
125
+ "description": "Target unit (e.g., 'meters', 'feet', 'celsius', 'pounds')"
126
+ }
127
+ },
128
+ "required": ["value", "from_unit", "to_unit"]
129
+ }
130
+ },
131
+ {
132
+ "ossa_capability": "timezone",
133
+ "openai_tool_name": "get_time",
134
+ "description": "Get current time in a specific timezone",
135
+ "parameters": {
136
+ "type": "object",
137
+ "properties": {
138
+ "timezone": {
139
+ "type": "string",
140
+ "description": "Timezone name (e.g., 'America/New_York', 'Europe/London', 'Asia/Tokyo')"
141
+ },
142
+ "format": {
143
+ "type": "string",
144
+ "enum": ["12h", "24h", "iso"],
145
+ "description": "Time format",
146
+ "default": "12h"
147
+ }
148
+ },
149
+ "required": ["timezone"]
150
+ }
151
+ }
152
+ ],
153
+ "guardrails": {
154
+ "enabled": true,
155
+ "max_tool_calls": 15,
156
+ "timeout_seconds": 300
157
+ },
158
+ "memory": {
159
+ "enabled": true,
160
+ "type": "session",
161
+ "max_messages": 50
162
+ }
163
+ }
164
+ }
165
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "apiVersion": "ossa/v0.2.3",
2
+ "apiVersion": "ossa/v0.2",
3
3
  "kind": "Agent",
4
4
  "metadata": {
5
5
  "name": "swarm-agent",
@@ -83,5 +83,5 @@ Use any OpenAPI viewer:
83
83
  For complete documentation on OSSA OpenAPI extensions, see:
84
84
  - [OpenAPI Extensions Documentation](../../docs/openapi-extensions.md)
85
85
  - [OSSA Specification](../../spec/v0.2.2/OSSA-SPECIFICATION-v0.2.2.md)
86
- - [GitLab Wiki](https://gitlab.bluefly.io/llm/openapi-ai-agents-standard/-/wikis/home)
86
+ - [GitHub Repository](https://github.com/blueflyio/openstandardagents)
87
87
 
@@ -1,7 +1,7 @@
1
1
  # OSSA Quickstart Example - Customer Support Agent
2
2
  # Run with: ossa run examples/quickstart/support-agent.ossa.yaml
3
3
 
4
- apiVersion: ossa/v0.2.3
4
+ apiVersion: ossa/v0.2
5
5
  kind: Agent
6
6
 
7
7
  metadata:
@@ -1,5 +1,5 @@
1
1
  {
2
- "apiVersion": "ossa/v0.2.3",
2
+ "apiVersion": "ossa/v0.2",
3
3
  "kind": "Agent",
4
4
  "metadata": {
5
5
  "name": "edge-chat-agent",
@@ -0,0 +1,126 @@
1
+ # GitLab Kubernetes Agent RBAC Configuration
2
+ # Production-ready RBAC with least privilege principles
3
+ # This replaces the default cluster-admin role with more restrictive permissions
4
+
5
+ apiVersion: v1
6
+ kind: ServiceAccount
7
+ metadata:
8
+ name: gitlab-agent
9
+ namespace: gitlab-agent
10
+ labels:
11
+ app: gitlab-agent
12
+ component: ossa-agent
13
+ ---
14
+ # ClusterRole with minimal required permissions for GitLab agent
15
+ # Adjust based on your specific needs
16
+ apiVersion: rbac.authorization.k8s.io/v1
17
+ kind: ClusterRole
18
+ metadata:
19
+ name: gitlab-agent
20
+ labels:
21
+ app: gitlab-agent
22
+ component: ossa-agent
23
+ rules:
24
+ # Core API access for agent operations
25
+ - apiGroups: [""]
26
+ resources:
27
+ - namespaces
28
+ - pods
29
+ - pods/exec
30
+ - pods/log
31
+ - pods/portforward
32
+ - services
33
+ - endpoints
34
+ - configmaps
35
+ - secrets
36
+ verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
37
+
38
+ # Deployment and workload management
39
+ - apiGroups: ["apps"]
40
+ resources:
41
+ - deployments
42
+ - replicasets
43
+ - statefulsets
44
+ - daemonsets
45
+ verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
46
+
47
+ # Job and CronJob management
48
+ - apiGroups: ["batch"]
49
+ resources:
50
+ - jobs
51
+ - cronjobs
52
+ verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
53
+
54
+ # Ingress management
55
+ - apiGroups: ["networking.k8s.io"]
56
+ resources:
57
+ - ingresses
58
+ - ingressclasses
59
+ verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
60
+
61
+ # Service account and RBAC (for CI/CD operations)
62
+ - apiGroups: [""]
63
+ resources:
64
+ - serviceaccounts
65
+ verbs: ["get", "list", "watch", "create", "update", "patch"]
66
+
67
+ - apiGroups: ["rbac.authorization.k8s.io"]
68
+ resources:
69
+ - roles
70
+ - rolebindings
71
+ - clusterroles
72
+ - clusterrolebindings
73
+ verbs: ["get", "list", "watch", "create", "update", "patch"]
74
+
75
+ # Events for observability
76
+ - apiGroups: [""]
77
+ resources:
78
+ - events
79
+ verbs: ["get", "list", "watch", "create", "patch"]
80
+
81
+ # Nodes (read-only for cluster info)
82
+ - apiGroups: [""]
83
+ resources:
84
+ - nodes
85
+ verbs: ["get", "list", "watch"]
86
+
87
+ # Persistent volumes (if needed for deployments)
88
+ - apiGroups: [""]
89
+ resources:
90
+ - persistentvolumes
91
+ - persistentvolumeclaims
92
+ verbs: ["get", "list", "watch", "create", "update", "patch"]
93
+
94
+ # Custom resources (for OSSA agents and other CRDs)
95
+ - apiGroups: ["*"]
96
+ resources: ["*"]
97
+ verbs: ["get", "list", "watch"]
98
+
99
+ # Metrics and monitoring
100
+ - apiGroups: ["metrics.k8s.io"]
101
+ resources:
102
+ - nodes
103
+ - pods
104
+ verbs: ["get", "list"]
105
+
106
+ # Health checks
107
+ - nonResourceURLs: ["/healthz", "/readyz", "/livez"]
108
+ verbs: ["get"]
109
+ ---
110
+ # ClusterRoleBinding
111
+ apiVersion: rbac.authorization.k8s.io/v1
112
+ kind: ClusterRoleBinding
113
+ metadata:
114
+ name: gitlab-agent
115
+ labels:
116
+ app: gitlab-agent
117
+ component: ossa-agent
118
+ roleRef:
119
+ apiGroup: rbac.authorization.k8s.io
120
+ kind: ClusterRole
121
+ name: gitlab-agent
122
+ subjects:
123
+ - kind: ServiceAccount
124
+ name: gitlab-agent
125
+ namespace: gitlab-agent
126
+
@@ -0,0 +1,150 @@
1
+ # GitLab Kubernetes Agent Helm Values
2
+ # Production-ready configuration for OSSA agents
3
+
4
+ # Agent configuration
5
+ config:
6
+ # Agent token (set via --set config.token=<token> or from secret)
7
+ # token: ""
8
+
9
+ # KAS address for self-hosted GitLab
10
+ # Replace with your GitLab instance URL
11
+ kasAddress: "wss://your-gitlab-instance.com/-/kubernetes-agent/"
12
+
13
+ # Optional: KAS CA certificate for self-signed certs
14
+ # kasCaCert: ""
15
+
16
+ # Image configuration
17
+ image:
18
+ repository: registry.gitlab.com/gitlab-org/cluster-integration/gitlab-agent/agentk
19
+ tag: "v18.4.0" # Match your GitLab version
20
+ pullPolicy: IfNotPresent
21
+
22
+ # Service account configuration
23
+ serviceAccount:
24
+ create: true
25
+ name: gitlab-agent
26
+ annotations: {}
27
+ # annotations:
28
+ # eks.amazonaws.com/role-arn: "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME"
29
+
30
+ # RBAC configuration
31
+ rbac:
32
+ create: true
33
+ # Use existing role instead of creating cluster-admin
34
+ # useExistingRole: false
35
+ # existingRoleName: ""
36
+
37
+ # Resource limits
38
+ resources:
39
+ requests:
40
+ cpu: 100m
41
+ memory: 128Mi
42
+ limits:
43
+ cpu: 500m
44
+ memory: 512Mi
45
+
46
+ # Pod configuration
47
+ podAnnotations:
48
+ prometheus.io/scrape: "true"
49
+ prometheus.io/port: "8080"
50
+ prometheus.io/path: "/metrics"
51
+
52
+ podLabels:
53
+ app: gitlab-agent
54
+ component: ossa-agent
55
+ managed-by: helm
56
+
57
+ # Security context
58
+ securityContext:
59
+ runAsNonRoot: true
60
+ runAsUser: 65534
61
+ fsGroup: 65534
62
+ seccompProfile:
63
+ type: RuntimeDefault
64
+
65
+ # Node selector (optional)
66
+ nodeSelector: {}
67
+
68
+ # Tolerations (optional)
69
+ tolerations: []
70
+
71
+ # Affinity rules (optional)
72
+ affinity: {}
73
+
74
+ # Extra environment variables
75
+ extraEnv: []
76
+ # Example:
77
+ # extraEnv:
78
+ # - name: LOG_LEVEL
79
+ # value: "debug"
80
+
81
+ # Liveness and readiness probes
82
+ livenessProbe:
83
+ httpGet:
84
+ path: /liveness
85
+ port: 8080
86
+ initialDelaySeconds: 30
87
+ periodSeconds: 30
88
+ timeoutSeconds: 5
89
+ failureThreshold: 3
90
+
91
+ readinessProbe:
92
+ httpGet:
93
+ path: /readiness
94
+ port: 8080
95
+ initialDelaySeconds: 10
96
+ periodSeconds: 10
97
+ timeoutSeconds: 5
98
+ failureThreshold: 3
99
+
100
+ # Pod disruption budget
101
+ podDisruptionBudget:
102
+ enabled: true
103
+ minAvailable: 1
104
+
105
+ # Service monitor for Prometheus (if Prometheus Operator is installed)
106
+ serviceMonitor:
107
+ enabled: false
108
+ interval: 30s
109
+ scrapeTimeout: 10s
110
+ labels: {}
111
+
112
+ # Network policy (if supported)
113
+ networkPolicy:
114
+ enabled: false
115
+
116
+ # Priority class (optional)
117
+ priorityClassName: ""
118
+
119
+ # Extra volumes
120
+ extraVolumes: []
121
+
122
+ # Extra volume mounts
123
+ extraVolumeMounts: []
124
+
125
+ # Init containers
126
+ initContainers: []
127
+
128
+ # Additional containers (sidecars)
129
+ additionalContainers: []
130
+
131
+ # Deployment configuration
132
+ replicaCount: 1
133
+
134
+ # Strategy
135
+ strategy:
136
+ type: RollingUpdate
137
+ rollingUpdate:
138
+ maxSurge: 1
139
+ maxUnavailable: 0
140
+
141
+ # Termination grace period
142
+ terminationGracePeriodSeconds: 30
143
+
144
+ # Namespace configuration
145
+ namespace:
146
+ create: true
147
+ name: gitlab-agent
148
+ annotations: {}
149
+ labels: {}
150
+
@@ -0,0 +1,7 @@
1
+ apiVersion: v1
2
+ kind: Namespace
3
+ metadata:
4
+ name: monitoring
5
+ labels:
6
+ name: monitoring
7
+ app.kubernetes.io/name: monitoring
@@ -0,0 +1,142 @@
1
+ apiVersion: v1
2
+ kind: ConfigMap
3
+ metadata:
4
+ name: prometheus-config
5
+ namespace: monitoring
6
+ data:
7
+ prometheus.yml: |
8
+ global:
9
+ scrape_interval: 15s
10
+ evaluation_interval: 15s
11
+
12
+ scrape_configs:
13
+ - job_name: 'prometheus'
14
+ static_configs:
15
+ - targets: ['localhost:9090']
16
+
17
+ - job_name: 'gitlab-agent'
18
+ kubernetes_sd_configs:
19
+ - role: pod
20
+ namespaces:
21
+ names:
22
+ - gitlab-agent
23
+ relabel_configs:
24
+ - source_labels: [__meta_kubernetes_pod_label_app]
25
+ regex: gitlab-agent
26
+ action: keep
27
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
28
+ action: keep
29
+ regex: true
30
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port]
31
+ action: replace
32
+ target_label: __address__
33
+ regex: ([^:]+)(?::\d+)?;(\d+)
34
+ replacement: $1:$2
35
+
36
+ - job_name: 'ossa-agents'
37
+ kubernetes_sd_configs:
38
+ - role: pod
39
+ namespaces:
40
+ names:
41
+ - ossa-agents
42
+ relabel_configs:
43
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
44
+ action: keep
45
+ regex: true
46
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
47
+ action: replace
48
+ target_label: __metrics_path__
49
+ regex: (.+)
50
+ - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
51
+ action: replace
52
+ regex: ([^:]+)(?::\d+)?;(\d+)
53
+ replacement: $1:$2
54
+ target_label: __address__
55
+ ---
56
+ apiVersion: apps/v1
57
+ kind: Deployment
58
+ metadata:
59
+ name: prometheus
60
+ namespace: monitoring
61
+ spec:
62
+ replicas: 1
63
+ selector:
64
+ matchLabels:
65
+ app: prometheus
66
+ template:
67
+ metadata:
68
+ labels:
69
+ app: prometheus
70
+ spec:
71
+ serviceAccountName: prometheus
72
+ containers:
73
+ - name: prometheus
74
+ image: prom/prometheus:latest
75
+ args:
76
+ - '--config.file=/etc/prometheus/prometheus.yml'
77
+ - '--storage.tsdb.path=/prometheus'
78
+ - '--web.console.libraries=/usr/share/prometheus/console_libraries'
79
+ - '--web.console.templates=/usr/share/prometheus/consoles'
80
+ ports:
81
+ - containerPort: 9090
82
+ volumeMounts:
83
+ - name: config
84
+ mountPath: /etc/prometheus
85
+ - name: storage
86
+ mountPath: /prometheus
87
+ volumes:
88
+ - name: config
89
+ configMap:
90
+ name: prometheus-config
91
+ - name: storage
92
+ emptyDir: {}
93
+ ---
94
+ apiVersion: v1
95
+ kind: Service
96
+ metadata:
97
+ name: prometheus
98
+ namespace: monitoring
99
+ spec:
100
+ selector:
101
+ app: prometheus
102
+ ports:
103
+ - port: 9090
104
+ targetPort: 9090
105
+ ---
106
+ apiVersion: v1
107
+ kind: ServiceAccount
108
+ metadata:
109
+ name: prometheus
110
+ namespace: monitoring
111
+ ---
112
+ apiVersion: rbac.authorization.k8s.io/v1
113
+ kind: ClusterRole
114
+ metadata:
115
+ name: prometheus
116
+ rules:
117
+ - apiGroups: [""]
118
+ resources:
119
+ - nodes
120
+ - nodes/proxy
121
+ - services
122
+ - endpoints
123
+ - pods
124
+ verbs: ["get", "list", "watch"]
125
+ - apiGroups:
126
+ - extensions
127
+ resources:
128
+ - ingresses
129
+ verbs: ["get", "list", "watch"]
130
+ ---
131
+ apiVersion: rbac.authorization.k8s.io/v1
132
+ kind: ClusterRoleBinding
133
+ metadata:
134
+ name: prometheus
135
+ roleRef:
136
+ apiGroup: rbac.authorization.k8s.io
137
+ kind: ClusterRole
138
+ name: prometheus
139
+ subjects:
140
+ - kind: ServiceAccount
141
+ name: prometheus
142
+ namespace: monitoring
@@ -0,0 +1,63 @@
1
+ apiVersion: v1
2
+ kind: ConfigMap
3
+ metadata:
4
+ name: grafana-datasources
5
+ namespace: monitoring
6
+ data:
7
+ prometheus.yaml: |
8
+ apiVersion: 1
9
+ datasources:
10
+ - name: Prometheus
11
+ type: prometheus
12
+ access: proxy
13
+ url: http://prometheus:9090
14
+ isDefault: true
15
+ ---
16
+ apiVersion: apps/v1
17
+ kind: Deployment
18
+ metadata:
19
+ name: grafana
20
+ namespace: monitoring
21
+ spec:
22
+ replicas: 1
23
+ selector:
24
+ matchLabels:
25
+ app: grafana
26
+ template:
27
+ metadata:
28
+ labels:
29
+ app: grafana
30
+ spec:
31
+ containers:
32
+ - name: grafana
33
+ image: grafana/grafana:latest
34
+ ports:
35
+ - containerPort: 3000
36
+ env:
37
+ - name: GF_SECURITY_ADMIN_PASSWORD
38
+ value: "admin"
39
+ - name: GF_USERS_ALLOW_SIGN_UP
40
+ value: "false"
41
+ volumeMounts:
42
+ - name: grafana-storage
43
+ mountPath: /var/lib/grafana
44
+ - name: grafana-datasources
45
+ mountPath: /etc/grafana/provisioning/datasources
46
+ volumes:
47
+ - name: grafana-storage
48
+ emptyDir: {}
49
+ - name: grafana-datasources
50
+ configMap:
51
+ name: grafana-datasources
52
+ ---
53
+ apiVersion: v1
54
+ kind: Service
55
+ metadata:
56
+ name: grafana
57
+ namespace: monitoring
58
+ spec:
59
+ selector:
60
+ app: grafana
61
+ ports:
62
+ - port: 3000
63
+ targetPort: 3000