@bluefly/openstandardagents 0.2.9 → 0.3.0

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 (836) hide show
  1. package/CHANGELOG.md +1766 -212
  2. package/README.md +517 -168
  3. package/bin/ossa-generate +9 -16
  4. package/bin/quickstart +514 -0
  5. package/dist/adapters/anthropic/client.d.ts +144 -0
  6. package/dist/adapters/anthropic/client.d.ts.map +1 -0
  7. package/dist/adapters/anthropic/client.js +364 -0
  8. package/dist/adapters/anthropic/client.js.map +1 -0
  9. package/dist/adapters/anthropic/config.d.ts +149 -0
  10. package/dist/adapters/anthropic/config.d.ts.map +1 -0
  11. package/dist/adapters/anthropic/config.js +157 -0
  12. package/dist/adapters/anthropic/config.js.map +1 -0
  13. package/dist/adapters/anthropic/index.d.ts +40 -0
  14. package/dist/adapters/anthropic/index.d.ts.map +1 -0
  15. package/dist/adapters/anthropic/index.js +40 -0
  16. package/dist/adapters/anthropic/index.js.map +1 -0
  17. package/dist/adapters/anthropic/messages.d.ts +93 -0
  18. package/dist/adapters/anthropic/messages.d.ts.map +1 -0
  19. package/dist/adapters/anthropic/messages.js +318 -0
  20. package/dist/adapters/anthropic/messages.js.map +1 -0
  21. package/dist/adapters/anthropic/runtime.d.ts +136 -0
  22. package/dist/adapters/anthropic/runtime.d.ts.map +1 -0
  23. package/dist/adapters/anthropic/runtime.js +287 -0
  24. package/dist/adapters/anthropic/runtime.js.map +1 -0
  25. package/dist/adapters/anthropic/tools.d.ts +126 -0
  26. package/dist/adapters/anthropic/tools.d.ts.map +1 -0
  27. package/dist/adapters/anthropic/tools.js +329 -0
  28. package/dist/adapters/anthropic/tools.js.map +1 -0
  29. package/dist/adapters/crewai-adapter.d.ts +57 -0
  30. package/dist/adapters/crewai-adapter.d.ts.map +1 -0
  31. package/dist/adapters/crewai-adapter.js +164 -0
  32. package/dist/adapters/crewai-adapter.js.map +1 -0
  33. package/dist/adapters/drupal/index.d.ts +109 -0
  34. package/dist/adapters/drupal/index.d.ts.map +1 -0
  35. package/dist/adapters/drupal/index.js +292 -0
  36. package/dist/adapters/drupal/index.js.map +1 -0
  37. package/dist/adapters/langchain-adapter.d.ts +45 -0
  38. package/dist/adapters/langchain-adapter.d.ts.map +1 -0
  39. package/dist/adapters/langchain-adapter.js +133 -0
  40. package/dist/adapters/langchain-adapter.js.map +1 -0
  41. package/dist/adapters/langflow-adapter.d.ts +50 -0
  42. package/dist/adapters/langflow-adapter.d.ts.map +1 -0
  43. package/dist/adapters/langflow-adapter.js +232 -0
  44. package/dist/adapters/langflow-adapter.js.map +1 -0
  45. package/dist/adapters/openapi-adapter.d.ts +93 -0
  46. package/dist/adapters/openapi-adapter.d.ts.map +1 -0
  47. package/dist/adapters/openapi-adapter.js +311 -0
  48. package/dist/adapters/openapi-adapter.js.map +1 -0
  49. package/dist/adapters/symfony/index.d.ts +163 -0
  50. package/dist/adapters/symfony/index.d.ts.map +1 -0
  51. package/dist/adapters/symfony/index.js +271 -0
  52. package/dist/adapters/symfony/index.js.map +1 -0
  53. package/dist/cli/commands/agents-md.command.d.ts +7 -0
  54. package/dist/cli/commands/agents-md.command.d.ts.map +1 -0
  55. package/dist/cli/commands/agents-md.command.js +148 -0
  56. package/dist/cli/commands/agents-md.command.js.map +1 -0
  57. package/dist/cli/commands/contract.command.d.ts +10 -0
  58. package/dist/cli/commands/contract.command.d.ts.map +1 -0
  59. package/dist/cli/commands/contract.command.js +402 -0
  60. package/dist/cli/commands/contract.command.js.map +1 -0
  61. package/dist/cli/commands/dependencies.command.d.ts +10 -0
  62. package/dist/cli/commands/dependencies.command.d.ts.map +1 -0
  63. package/dist/cli/commands/dependencies.command.js +318 -0
  64. package/dist/cli/commands/dependencies.command.js.map +1 -0
  65. package/dist/cli/commands/deploy.command.d.ts +4 -0
  66. package/dist/cli/commands/deploy.command.d.ts.map +1 -0
  67. package/dist/cli/commands/deploy.command.js +172 -0
  68. package/dist/cli/commands/deploy.command.js.map +1 -0
  69. package/dist/cli/commands/deploy.d.ts +22 -0
  70. package/dist/cli/commands/deploy.d.ts.map +1 -0
  71. package/dist/cli/commands/deploy.js +319 -0
  72. package/dist/cli/commands/deploy.js.map +1 -0
  73. package/dist/cli/commands/export.command.d.ts +7 -0
  74. package/dist/cli/commands/export.command.d.ts.map +1 -0
  75. package/dist/cli/commands/export.command.js +56 -0
  76. package/dist/cli/commands/export.command.js.map +1 -0
  77. package/dist/cli/commands/generate.command.d.ts +7 -0
  78. package/dist/cli/commands/generate.command.d.ts.map +1 -0
  79. package/dist/cli/commands/generate.command.js +66 -0
  80. package/dist/cli/commands/generate.command.js.map +1 -0
  81. package/dist/cli/commands/github-sync.command.d.ts +3 -0
  82. package/dist/cli/commands/github-sync.command.d.ts.map +1 -0
  83. package/dist/cli/commands/github-sync.command.js +51 -0
  84. package/dist/cli/commands/github-sync.command.js.map +1 -0
  85. package/dist/cli/commands/gitlab-agent.command.d.ts +8 -0
  86. package/dist/cli/commands/gitlab-agent.command.d.ts.map +1 -0
  87. package/dist/cli/commands/gitlab-agent.command.js +201 -0
  88. package/dist/cli/commands/gitlab-agent.command.js.map +1 -0
  89. package/dist/cli/commands/import.command.d.ts +7 -0
  90. package/dist/cli/commands/import.command.d.ts.map +1 -0
  91. package/dist/cli/commands/import.command.js +36 -0
  92. package/dist/cli/commands/import.command.js.map +1 -0
  93. package/dist/cli/commands/info.command.d.ts +3 -0
  94. package/dist/cli/commands/info.command.d.ts.map +1 -0
  95. package/dist/cli/commands/info.command.js +45 -0
  96. package/dist/cli/commands/info.command.js.map +1 -0
  97. package/dist/cli/commands/init.command.d.ts +7 -0
  98. package/dist/cli/commands/init.command.d.ts.map +1 -0
  99. package/dist/cli/commands/init.command.js +139 -0
  100. package/dist/cli/commands/init.command.js.map +1 -0
  101. package/dist/cli/commands/install.command.d.ts +3 -0
  102. package/dist/cli/commands/install.command.d.ts.map +1 -0
  103. package/dist/cli/commands/install.command.js +44 -0
  104. package/dist/cli/commands/install.command.js.map +1 -0
  105. package/dist/cli/commands/migrate.command.d.ts +22 -0
  106. package/dist/cli/commands/migrate.command.d.ts.map +1 -0
  107. package/dist/cli/commands/migrate.command.js +157 -0
  108. package/dist/cli/commands/migrate.command.js.map +1 -0
  109. package/dist/cli/commands/publish.command.d.ts +3 -0
  110. package/dist/cli/commands/publish.command.d.ts.map +1 -0
  111. package/dist/cli/commands/publish.command.js +76 -0
  112. package/dist/cli/commands/publish.command.js.map +1 -0
  113. package/dist/cli/commands/quickstart.command.d.ts +10 -0
  114. package/dist/cli/commands/quickstart.command.d.ts.map +1 -0
  115. package/dist/cli/commands/quickstart.command.js +257 -0
  116. package/dist/cli/commands/quickstart.command.js.map +1 -0
  117. package/dist/cli/commands/release.command.d.ts +8 -0
  118. package/dist/cli/commands/release.command.d.ts.map +1 -0
  119. package/dist/cli/commands/release.command.js +641 -0
  120. package/dist/cli/commands/release.command.js.map +1 -0
  121. package/dist/cli/commands/run.command.d.ts +7 -0
  122. package/dist/cli/commands/run.command.d.ts.map +1 -0
  123. package/dist/cli/commands/run.command.js +125 -0
  124. package/dist/cli/commands/run.command.js.map +1 -0
  125. package/dist/cli/commands/schema.command.d.ts +7 -0
  126. package/dist/cli/commands/schema.command.d.ts.map +1 -0
  127. package/dist/cli/commands/schema.command.js +76 -0
  128. package/dist/cli/commands/schema.command.js.map +1 -0
  129. package/dist/cli/commands/search.command.d.ts +3 -0
  130. package/dist/cli/commands/search.command.d.ts.map +1 -0
  131. package/dist/cli/commands/search.command.js +45 -0
  132. package/dist/cli/commands/search.command.js.map +1 -0
  133. package/dist/cli/commands/setup.command.d.ts +11 -0
  134. package/dist/cli/commands/setup.command.d.ts.map +1 -0
  135. package/dist/cli/commands/setup.command.js +350 -0
  136. package/dist/cli/commands/setup.command.js.map +1 -0
  137. package/dist/cli/commands/sync.command.d.ts +3 -0
  138. package/dist/cli/commands/sync.command.d.ts.map +1 -0
  139. package/dist/cli/commands/sync.command.js +51 -0
  140. package/dist/cli/commands/sync.command.js.map +1 -0
  141. package/dist/cli/commands/test.command.d.ts +3 -0
  142. package/dist/cli/commands/test.command.d.ts.map +1 -0
  143. package/dist/cli/commands/test.command.js +91 -0
  144. package/dist/cli/commands/test.command.js.map +1 -0
  145. package/dist/cli/commands/validate.command.d.ts +7 -0
  146. package/dist/cli/commands/validate.command.d.ts.map +1 -0
  147. package/dist/cli/commands/validate.command.js +143 -0
  148. package/dist/cli/commands/validate.command.js.map +1 -0
  149. package/dist/cli/index.d.ts +7 -0
  150. package/dist/cli/index.d.ts.map +1 -0
  151. package/dist/cli/index.js +148 -0
  152. package/dist/cli/index.js.map +1 -0
  153. package/dist/cli/utils/error-formatter.d.ts +19 -0
  154. package/dist/cli/utils/error-formatter.d.ts.map +1 -0
  155. package/dist/cli/utils/error-formatter.js +330 -0
  156. package/dist/cli/utils/error-formatter.js.map +1 -0
  157. package/dist/deploy/base-driver.d.ts +39 -0
  158. package/dist/deploy/base-driver.d.ts.map +1 -0
  159. package/dist/deploy/base-driver.js +63 -0
  160. package/dist/deploy/base-driver.js.map +1 -0
  161. package/dist/deploy/docker-driver.d.ts +32 -0
  162. package/dist/deploy/docker-driver.d.ts.map +1 -0
  163. package/dist/deploy/docker-driver.js +246 -0
  164. package/dist/deploy/docker-driver.js.map +1 -0
  165. package/dist/deploy/index.d.ts +15 -0
  166. package/dist/deploy/index.d.ts.map +1 -0
  167. package/dist/deploy/index.js +28 -0
  168. package/dist/deploy/index.js.map +1 -0
  169. package/dist/deploy/k8s-driver.d.ts +40 -0
  170. package/dist/deploy/k8s-driver.d.ts.map +1 -0
  171. package/dist/deploy/k8s-driver.js +372 -0
  172. package/dist/deploy/k8s-driver.js.map +1 -0
  173. package/dist/deploy/local-driver.d.ts +20 -0
  174. package/dist/deploy/local-driver.d.ts.map +1 -0
  175. package/dist/deploy/local-driver.js +150 -0
  176. package/dist/deploy/local-driver.js.map +1 -0
  177. package/dist/deploy/types.d.ts +103 -0
  178. package/dist/deploy/types.d.ts.map +1 -0
  179. package/dist/deploy/types.js +6 -0
  180. package/dist/deploy/types.js.map +1 -0
  181. package/dist/di-container.d.ts.map +1 -1
  182. package/dist/di-container.js +14 -0
  183. package/dist/di-container.js.map +1 -1
  184. package/dist/index.d.ts +2 -1
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +3 -1
  187. package/dist/index.js.map +1 -1
  188. package/dist/mesh/client.d.ts +144 -0
  189. package/dist/mesh/client.d.ts.map +1 -0
  190. package/dist/mesh/client.js +424 -0
  191. package/dist/mesh/client.js.map +1 -0
  192. package/dist/mesh/discovery.d.ts +176 -0
  193. package/dist/mesh/discovery.d.ts.map +1 -0
  194. package/dist/mesh/discovery.js +288 -0
  195. package/dist/mesh/discovery.js.map +1 -0
  196. package/dist/mesh/index.d.ts +89 -0
  197. package/dist/mesh/index.d.ts.map +1 -0
  198. package/dist/mesh/index.js +92 -0
  199. package/dist/mesh/index.js.map +1 -0
  200. package/dist/mesh/routing.d.ts +158 -0
  201. package/dist/mesh/routing.d.ts.map +1 -0
  202. package/dist/mesh/routing.js +360 -0
  203. package/dist/mesh/routing.js.map +1 -0
  204. package/dist/mesh/types.d.ts +439 -0
  205. package/dist/mesh/types.d.ts.map +1 -0
  206. package/dist/mesh/types.js +6 -0
  207. package/dist/mesh/types.js.map +1 -0
  208. package/dist/messaging/broker.d.ts +76 -0
  209. package/dist/messaging/broker.d.ts.map +1 -0
  210. package/dist/messaging/broker.js +145 -0
  211. package/dist/messaging/broker.js.map +1 -0
  212. package/dist/messaging/channels.d.ts +70 -0
  213. package/dist/messaging/channels.d.ts.map +1 -0
  214. package/dist/messaging/channels.js +183 -0
  215. package/dist/messaging/channels.js.map +1 -0
  216. package/dist/messaging/index.d.ts +10 -0
  217. package/dist/messaging/index.d.ts.map +1 -0
  218. package/dist/messaging/index.js +10 -0
  219. package/dist/messaging/index.js.map +1 -0
  220. package/dist/messaging/protocols/memory.d.ts +83 -0
  221. package/dist/messaging/protocols/memory.d.ts.map +1 -0
  222. package/dist/messaging/protocols/memory.js +293 -0
  223. package/dist/messaging/protocols/memory.js.map +1 -0
  224. package/dist/messaging/protocols/redis.d.ts +83 -0
  225. package/dist/messaging/protocols/redis.d.ts.map +1 -0
  226. package/dist/messaging/protocols/redis.js +223 -0
  227. package/dist/messaging/protocols/redis.js.map +1 -0
  228. package/dist/messaging/types.d.ts +180 -0
  229. package/dist/messaging/types.d.ts.map +1 -0
  230. package/dist/messaging/types.js +6 -0
  231. package/dist/messaging/types.js.map +1 -0
  232. package/dist/repositories/manifest.repository.d.ts +1 -1
  233. package/dist/repositories/manifest.repository.d.ts.map +1 -1
  234. package/dist/repositories/manifest.repository.js +7 -6
  235. package/dist/repositories/manifest.repository.js.map +1 -1
  236. package/dist/repositories/schema.repository.d.ts +4 -0
  237. package/dist/repositories/schema.repository.d.ts.map +1 -1
  238. package/dist/repositories/schema.repository.js +10 -3
  239. package/dist/repositories/schema.repository.js.map +1 -1
  240. package/dist/sdk/events/cloudevents-emitter.d.ts +56 -0
  241. package/dist/sdk/events/cloudevents-emitter.d.ts.map +1 -0
  242. package/dist/sdk/events/cloudevents-emitter.js +101 -0
  243. package/dist/sdk/events/cloudevents-emitter.js.map +1 -0
  244. package/dist/sdk/events/index.d.ts +2 -0
  245. package/dist/sdk/events/index.d.ts.map +1 -0
  246. package/dist/sdk/events/index.js +2 -0
  247. package/dist/sdk/events/index.js.map +1 -0
  248. package/dist/sdk/tracing/index.d.ts +2 -0
  249. package/dist/sdk/tracing/index.d.ts.map +1 -0
  250. package/dist/sdk/tracing/index.js +2 -0
  251. package/dist/sdk/tracing/index.js.map +1 -0
  252. package/dist/sdk/tracing/w3c-baggage.d.ts +40 -0
  253. package/dist/sdk/tracing/w3c-baggage.d.ts.map +1 -0
  254. package/dist/sdk/tracing/w3c-baggage.js +148 -0
  255. package/dist/sdk/tracing/w3c-baggage.js.map +1 -0
  256. package/dist/services/agent-services/qdrant.service.d.ts +60 -0
  257. package/dist/services/agent-services/qdrant.service.d.ts.map +1 -0
  258. package/dist/services/agent-services/qdrant.service.js +168 -0
  259. package/dist/services/agent-services/qdrant.service.js.map +1 -0
  260. package/dist/services/agents-md/agents-md.service.d.ts +61 -0
  261. package/dist/services/agents-md/agents-md.service.d.ts.map +1 -0
  262. package/dist/services/agents-md/agents-md.service.js +348 -0
  263. package/dist/services/agents-md/agents-md.service.js.map +1 -0
  264. package/dist/services/deployment/deployment.service.d.ts +19 -0
  265. package/dist/services/deployment/deployment.service.d.ts.map +1 -0
  266. package/dist/services/deployment/deployment.service.js +87 -0
  267. package/dist/services/deployment/deployment.service.js.map +1 -0
  268. package/dist/services/generation.service.d.ts +3 -1
  269. package/dist/services/generation.service.d.ts.map +1 -1
  270. package/dist/services/generation.service.js +34 -68
  271. package/dist/services/generation.service.js.map +1 -1
  272. package/dist/services/github-sync/github-client.js +2 -2
  273. package/dist/services/github-sync/github-client.js.map +1 -1
  274. package/dist/services/github-sync/schemas.d.ts +1 -1
  275. package/dist/services/github-sync/schemas.d.ts.map +1 -1
  276. package/dist/services/github-sync/schemas.js.map +1 -1
  277. package/dist/services/github-sync/sync.service.d.ts.map +1 -1
  278. package/dist/services/github-sync/sync.service.js +4 -2
  279. package/dist/services/github-sync/sync.service.js.map +1 -1
  280. package/dist/services/gitlab-agent.service.d.ts.map +1 -1
  281. package/dist/services/gitlab-agent.service.js +3 -1
  282. package/dist/services/gitlab-agent.service.js.map +1 -1
  283. package/dist/services/messaging/example.d.ts +6 -0
  284. package/dist/services/messaging/example.d.ts.map +1 -0
  285. package/dist/services/messaging/example.js +260 -0
  286. package/dist/services/messaging/example.js.map +1 -0
  287. package/dist/services/messaging/index.d.ts +81 -0
  288. package/dist/services/messaging/index.d.ts.map +1 -0
  289. package/dist/services/messaging/index.js +85 -0
  290. package/dist/services/messaging/index.js.map +1 -0
  291. package/dist/services/messaging/memory-broker.d.ts +103 -0
  292. package/dist/services/messaging/memory-broker.d.ts.map +1 -0
  293. package/dist/services/messaging/memory-broker.js +435 -0
  294. package/dist/services/messaging/memory-broker.js.map +1 -0
  295. package/dist/services/messaging/messaging.service.d.ts +150 -0
  296. package/dist/services/messaging/messaging.service.d.ts.map +1 -0
  297. package/dist/services/messaging/messaging.service.js +456 -0
  298. package/dist/services/messaging/messaging.service.js.map +1 -0
  299. package/dist/services/messaging/messaging.types.d.ts +319 -0
  300. package/dist/services/messaging/messaging.types.d.ts.map +1 -0
  301. package/dist/services/messaging/messaging.types.js +68 -0
  302. package/dist/services/messaging/messaging.types.js.map +1 -0
  303. package/dist/services/migration.service.d.ts +45 -4
  304. package/dist/services/migration.service.d.ts.map +1 -1
  305. package/dist/services/migration.service.js +248 -31
  306. package/dist/services/migration.service.js.map +1 -1
  307. package/dist/services/registry/registry.service.d.ts +39 -0
  308. package/dist/services/registry/registry.service.d.ts.map +1 -0
  309. package/dist/services/registry/registry.service.js +169 -0
  310. package/dist/services/registry/registry.service.js.map +1 -0
  311. package/dist/services/release-automation/base-crud.service.d.ts.map +1 -1
  312. package/dist/services/release-automation/base-crud.service.js.map +1 -1
  313. package/dist/services/release-automation/merge-request.service.d.ts.map +1 -1
  314. package/dist/services/release-automation/merge-request.service.js +4 -4
  315. package/dist/services/release-automation/merge-request.service.js.map +1 -1
  316. package/dist/services/release-automation/milestone.service.d.ts.map +1 -1
  317. package/dist/services/release-automation/milestone.service.js.map +1 -1
  318. package/dist/services/release-automation/release.service.d.ts +4 -4
  319. package/dist/services/release-automation/release.service.d.ts.map +1 -1
  320. package/dist/services/release-automation/release.service.js +1 -3
  321. package/dist/services/release-automation/release.service.js.map +1 -1
  322. package/dist/services/release-automation/schemas/release.schema.d.ts +3 -3
  323. package/dist/services/release-automation/schemas/release.schema.d.ts.map +1 -1
  324. package/dist/services/release-automation/schemas/release.schema.js +11 -23
  325. package/dist/services/release-automation/schemas/release.schema.js.map +1 -1
  326. package/dist/services/release-automation/tag.service.d.ts.map +1 -1
  327. package/dist/services/release-automation/tag.service.js +4 -1
  328. package/dist/services/release-automation/tag.service.js.map +1 -1
  329. package/dist/services/release-automation/webhook.service.d.ts +2 -2
  330. package/dist/services/release-automation/webhook.service.d.ts.map +1 -1
  331. package/dist/services/release-automation/webhook.service.js +27 -14
  332. package/dist/services/release-automation/webhook.service.js.map +1 -1
  333. package/dist/services/runtime/anthropic.adapter.d.ts +145 -0
  334. package/dist/services/runtime/anthropic.adapter.d.ts.map +1 -0
  335. package/dist/services/runtime/anthropic.adapter.js +525 -0
  336. package/dist/services/runtime/anthropic.adapter.js.map +1 -0
  337. package/dist/services/runtime/azure.adapter.d.ts +389 -0
  338. package/dist/services/runtime/azure.adapter.d.ts.map +1 -0
  339. package/dist/services/runtime/azure.adapter.js +515 -0
  340. package/dist/services/runtime/azure.adapter.js.map +1 -0
  341. package/dist/services/runtime/bedrock.adapter.d.ts +170 -0
  342. package/dist/services/runtime/bedrock.adapter.d.ts.map +1 -0
  343. package/dist/services/runtime/bedrock.adapter.js +667 -0
  344. package/dist/services/runtime/bedrock.adapter.js.map +1 -0
  345. package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -1
  346. package/dist/services/runtime/claude/capability-mapper.js.map +1 -1
  347. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
  348. package/dist/services/runtime/claude/claude-adapter.js +3 -7
  349. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  350. package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -1
  351. package/dist/services/runtime/claude/manifest-parser.js +2 -2
  352. package/dist/services/runtime/claude/manifest-parser.js.map +1 -1
  353. package/dist/services/runtime/gemini.adapter.d.ts +190 -0
  354. package/dist/services/runtime/gemini.adapter.d.ts.map +1 -0
  355. package/dist/services/runtime/gemini.adapter.js +603 -0
  356. package/dist/services/runtime/gemini.adapter.js.map +1 -0
  357. package/dist/services/runtime/mistral.adapter.d.ts +201 -0
  358. package/dist/services/runtime/mistral.adapter.d.ts.map +1 -0
  359. package/dist/services/runtime/mistral.adapter.js +654 -0
  360. package/dist/services/runtime/mistral.adapter.js.map +1 -0
  361. package/dist/services/runtime/ollama.adapter.d.ts +187 -0
  362. package/dist/services/runtime/ollama.adapter.d.ts.map +1 -0
  363. package/dist/services/runtime/ollama.adapter.js +525 -0
  364. package/dist/services/runtime/ollama.adapter.js.map +1 -0
  365. package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
  366. package/dist/services/runtime/openai.adapter.js.map +1 -1
  367. package/dist/services/test-runner/test-runner.service.d.ts +21 -0
  368. package/dist/services/test-runner/test-runner.service.d.ts.map +1 -0
  369. package/dist/services/test-runner/test-runner.service.js +91 -0
  370. package/dist/services/test-runner/test-runner.service.js.map +1 -0
  371. package/dist/services/validation.service.d.ts.map +1 -1
  372. package/dist/services/validation.service.js +38 -13
  373. package/dist/services/validation.service.js.map +1 -1
  374. package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
  375. package/dist/services/validators/anthropic.validator.js +2 -5
  376. package/dist/services/validators/anthropic.validator.js.map +1 -1
  377. package/dist/services/validators/autogen.validator.d.ts.map +1 -1
  378. package/dist/services/validators/autogen.validator.js +1 -2
  379. package/dist/services/validators/autogen.validator.js.map +1 -1
  380. package/dist/services/validators/contract.validator.d.ts +90 -0
  381. package/dist/services/validators/contract.validator.d.ts.map +1 -0
  382. package/dist/services/validators/contract.validator.js +508 -0
  383. package/dist/services/validators/contract.validator.js.map +1 -0
  384. package/dist/services/validators/crewai.validator.d.ts.map +1 -1
  385. package/dist/services/validators/crewai.validator.js.map +1 -1
  386. package/dist/services/validators/cursor.validator.d.ts.map +1 -1
  387. package/dist/services/validators/cursor.validator.js.map +1 -1
  388. package/dist/services/validators/dependencies.validator.d.ts +104 -0
  389. package/dist/services/validators/dependencies.validator.d.ts.map +1 -0
  390. package/dist/services/validators/dependencies.validator.js +386 -0
  391. package/dist/services/validators/dependencies.validator.js.map +1 -0
  392. package/dist/services/validators/index.d.ts +1 -0
  393. package/dist/services/validators/index.d.ts.map +1 -1
  394. package/dist/services/validators/index.js +1 -0
  395. package/dist/services/validators/index.js.map +1 -1
  396. package/dist/services/validators/langchain.validator.d.ts.map +1 -1
  397. package/dist/services/validators/langchain.validator.js +4 -13
  398. package/dist/services/validators/langchain.validator.js.map +1 -1
  399. package/dist/services/validators/langflow.validator.d.ts.map +1 -1
  400. package/dist/services/validators/langflow.validator.js +1 -2
  401. package/dist/services/validators/langflow.validator.js.map +1 -1
  402. package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
  403. package/dist/services/validators/langgraph.validator.js +1 -2
  404. package/dist/services/validators/langgraph.validator.js.map +1 -1
  405. package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
  406. package/dist/services/validators/llamaindex.validator.js +4 -13
  407. package/dist/services/validators/llamaindex.validator.js.map +1 -1
  408. package/dist/services/validators/messaging.validator.d.ts +77 -0
  409. package/dist/services/validators/messaging.validator.d.ts.map +1 -0
  410. package/dist/services/validators/messaging.validator.js +296 -0
  411. package/dist/services/validators/messaging.validator.js.map +1 -0
  412. package/dist/services/validators/openai.validator.d.ts.map +1 -1
  413. package/dist/services/validators/openai.validator.js +1 -6
  414. package/dist/services/validators/openai.validator.js.map +1 -1
  415. package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
  416. package/dist/services/validators/vercel-ai.validator.js +1 -3
  417. package/dist/services/validators/vercel-ai.validator.js.map +1 -1
  418. package/dist/spec/extensions/a2a-messaging.md +471 -0
  419. package/dist/spec/extensions/manifest-extensions.md +550 -0
  420. package/dist/spec/registry/README.md +472 -0
  421. package/dist/spec/registry/openapi.yaml +1124 -0
  422. package/dist/spec/registry/registry-api.schema.json +731 -0
  423. package/dist/spec/registry/registry-spec.md +2239 -0
  424. package/dist/spec/schema/agent-test.schema.json +117 -0
  425. package/dist/spec/schema/components/activity-stream.schema.json +94 -0
  426. package/dist/spec/schema/components/constraints.schema.json +84 -0
  427. package/dist/spec/schema/components/dependencies.schema.json +147 -0
  428. package/dist/spec/schema/components/encryption.schema.json +115 -0
  429. package/dist/spec/schema/components/identity.schema.json +48 -0
  430. package/dist/spec/schema/components/index.json +37 -0
  431. package/dist/spec/schema/components/llm-config.schema.json +67 -0
  432. package/dist/spec/schema/components/metadata.schema.json +37 -0
  433. package/dist/spec/schema/components/tool.schema.json +64 -0
  434. package/dist/spec/schema/extensions/a2a.extension.schema.json +127 -0
  435. package/dist/spec/v0.2.8/ossa-0.2.8.schema.json +95 -1
  436. package/dist/spec/v0.3.0/UNIFIED-SCHEMA.md +120 -0
  437. package/dist/spec/v0.3.0/adapters/drupal.md +541 -0
  438. package/dist/spec/v0.3.0/adapters/symfony.md +659 -0
  439. package/dist/spec/v0.3.0/agent-test.schema.json +75 -0
  440. package/dist/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +110 -0
  441. package/dist/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  442. package/dist/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  443. package/dist/spec/v0.3.0/extensions/drupal.md +417 -0
  444. package/dist/spec/v0.3.0/ossa-0.3.0.schema.json +2787 -0
  445. package/dist/spec/v0.3.0/protocols/sse.md +494 -0
  446. package/dist/spec/v0.3.0/protocols/webrtc.md +600 -0
  447. package/dist/spec/v0.3.0/protocols/websocket.md +362 -0
  448. package/dist/spec/v0.3.0/schemas/agent-unified.yaml +165 -0
  449. package/dist/spec/v0.3.0/schemas/capabilities.yaml +102 -0
  450. package/dist/spec/v0.3.0/schemas/functions.yaml +75 -0
  451. package/dist/spec/v0.3.0/schemas/messaging/channel.schema.json +245 -0
  452. package/dist/spec/v0.3.0/schemas/messaging/delivery-receipt.schema.json +192 -0
  453. package/dist/spec/v0.3.0/schemas/messaging/message.schema.json +205 -0
  454. package/dist/spec/v0.3.0/schemas/messaging/subscription.schema.json +214 -0
  455. package/dist/spec/v0.3.0/schemas/runtime.yaml +102 -0
  456. package/dist/spec/v0.3.0/schemas/taxonomy.yaml +533 -0
  457. package/dist/spec/v0.3.0/schemas/unified-llm.yaml +91 -0
  458. package/dist/spec/v0.3.0/taxonomy.yaml +256 -0
  459. package/dist/testing/fixtures.d.ts +61 -0
  460. package/dist/testing/fixtures.d.ts.map +1 -0
  461. package/dist/testing/fixtures.js +291 -0
  462. package/dist/testing/fixtures.js.map +1 -0
  463. package/dist/testing/index.d.ts +10 -0
  464. package/dist/testing/index.d.ts.map +1 -0
  465. package/dist/testing/index.js +10 -0
  466. package/dist/testing/index.js.map +1 -0
  467. package/dist/testing/reporters/base.d.ts +24 -0
  468. package/dist/testing/reporters/base.d.ts.map +1 -0
  469. package/dist/testing/reporters/base.js +5 -0
  470. package/dist/testing/reporters/base.js.map +1 -0
  471. package/dist/testing/reporters/console.d.ts +18 -0
  472. package/dist/testing/reporters/console.d.ts.map +1 -0
  473. package/dist/testing/reporters/console.js +76 -0
  474. package/dist/testing/reporters/console.js.map +1 -0
  475. package/dist/testing/reporters/json.d.ts +29 -0
  476. package/dist/testing/reporters/json.d.ts.map +1 -0
  477. package/dist/testing/reporters/json.js +40 -0
  478. package/dist/testing/reporters/json.js.map +1 -0
  479. package/dist/testing/runner.d.ts +96 -0
  480. package/dist/testing/runner.d.ts.map +1 -0
  481. package/dist/testing/runner.js +401 -0
  482. package/dist/testing/runner.js.map +1 -0
  483. package/dist/transports/index.d.ts +8 -0
  484. package/dist/transports/index.d.ts.map +1 -0
  485. package/dist/transports/index.js +11 -0
  486. package/dist/transports/index.js.map +1 -0
  487. package/dist/transports/sse.d.ts +166 -0
  488. package/dist/transports/sse.d.ts.map +1 -0
  489. package/dist/transports/sse.js +309 -0
  490. package/dist/transports/sse.js.map +1 -0
  491. package/dist/transports/webrtc.d.ts +183 -0
  492. package/dist/transports/webrtc.d.ts.map +1 -0
  493. package/dist/transports/webrtc.js +478 -0
  494. package/dist/transports/webrtc.js.map +1 -0
  495. package/dist/transports/websocket.d.ts +204 -0
  496. package/dist/transports/websocket.d.ts.map +1 -0
  497. package/dist/transports/websocket.js +397 -0
  498. package/dist/transports/websocket.js.map +1 -0
  499. package/dist/types/generated/ossa-0.3.0.types.d.ts +316 -0
  500. package/dist/types/generated/ossa-0.3.0.types.d.ts.map +1 -0
  501. package/dist/types/generated/ossa-0.3.0.types.js +8 -0
  502. package/dist/types/generated/ossa-0.3.0.types.js.map +1 -0
  503. package/dist/types/generated/ossa-0.3.0.zod.d.ts +17 -0
  504. package/dist/types/generated/ossa-0.3.0.zod.d.ts.map +1 -0
  505. package/dist/types/generated/ossa-0.3.0.zod.js +3 -0
  506. package/dist/types/generated/ossa-0.3.0.zod.js.map +1 -0
  507. package/dist/types/index.d.ts +124 -2
  508. package/dist/types/index.d.ts.map +1 -1
  509. package/dist/types/index.js +8 -1
  510. package/dist/types/index.js.map +1 -1
  511. package/dist/types/messaging.d.ts +116 -0
  512. package/dist/types/messaging.d.ts.map +1 -0
  513. package/dist/types/messaging.js +6 -0
  514. package/dist/types/messaging.js.map +1 -0
  515. package/dist/types/policy.d.ts.map +1 -1
  516. package/dist/types/policy.js.map +1 -1
  517. package/dist/types/task.d.ts +222 -0
  518. package/dist/types/task.d.ts.map +1 -0
  519. package/dist/types/task.js +40 -0
  520. package/dist/types/task.js.map +1 -0
  521. package/dist/types/workflow.d.ts +283 -0
  522. package/dist/types/workflow.d.ts.map +1 -0
  523. package/dist/types/workflow.js +51 -0
  524. package/dist/types/workflow.js.map +1 -0
  525. package/dist/utils/path-validator.d.ts +24 -0
  526. package/dist/utils/path-validator.d.ts.map +1 -0
  527. package/dist/utils/path-validator.js +70 -0
  528. package/dist/utils/path-validator.js.map +1 -0
  529. package/dist/utils/version.d.ts +17 -8
  530. package/dist/utils/version.d.ts.map +1 -1
  531. package/dist/utils/version.js +84 -30
  532. package/dist/utils/version.js.map +1 -1
  533. package/dist/utils/yaml-parser.d.ts +23 -0
  534. package/dist/utils/yaml-parser.d.ts.map +1 -0
  535. package/dist/utils/yaml-parser.js +34 -0
  536. package/dist/utils/yaml-parser.js.map +1 -0
  537. package/examples/adapters/drupal-eca-mapping.yaml +153 -0
  538. package/examples/adapters/drupal-eca-task.yaml +48 -0
  539. package/examples/adapters/drupal-flowdrop-mapping.yaml +463 -0
  540. package/examples/adapters/drupal-maestro-mapping.yaml +369 -0
  541. package/examples/adapters/mistral-README.md +367 -0
  542. package/examples/adapters/mistral-agent.yaml +147 -0
  543. package/examples/adapters/symfony-messenger-task.yaml +135 -0
  544. package/examples/adapters/symfony-messenger-workflow.yaml +352 -0
  545. package/examples/adk-integration/code-review-workflow.yml +1 -1
  546. package/examples/adk-integration/customer-support.yml +1 -1
  547. package/examples/adk-integration/data-pipeline.yml +1 -1
  548. package/examples/advanced/reasoning-agent.yaml +1 -1
  549. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -18
  550. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  551. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  552. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  553. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  554. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  555. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  556. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  557. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  558. package/examples/agent-mesh/README.ts +311 -0
  559. package/examples/agent-mesh/basic-usage.ts +461 -0
  560. package/examples/agents/architecture-healer-enterprise.yaml +143 -0
  561. package/examples/agents/dependency-healer-npm.yaml +81 -0
  562. package/examples/agents/spec-healer-openapi.yaml +59 -0
  563. package/examples/agents/wiki-healer-production.yaml +131 -0
  564. package/examples/agents-md/code-agent.ossa.json +1 -1
  565. package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
  566. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  567. package/examples/anthropic-adapter-example.ts +374 -0
  568. package/examples/anthropic-simple.ts +70 -0
  569. package/examples/autogen/multi-agent.ossa.json +1 -1
  570. package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +37 -0
  571. package/examples/bridges/.gitlab-ci.yml +293 -0
  572. package/examples/bridges/k8s/deployment.yaml +14 -14
  573. package/examples/ci/multi-project-release-example.yml +401 -0
  574. package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
  575. package/examples/claude-code/ossa-validator.ossa.yaml +1 -1
  576. package/examples/common_npm/agent-router.ossa.yaml +1 -1
  577. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  578. package/examples/contracts/data-consumer.ossa.yaml +171 -0
  579. package/examples/contracts/data-producer-v2.ossa.yaml +227 -0
  580. package/examples/contracts/data-producer.ossa.yaml +217 -0
  581. package/examples/coordinator-agent/README.md +180 -0
  582. package/examples/coordinator-agent/index.ts +440 -0
  583. package/examples/coordinator-agent/manifest.yaml +41 -0
  584. package/examples/crewai/research-team.ossa.json +1 -1
  585. package/examples/cursor/code-review-agent.ossa.json +1 -1
  586. package/examples/drupal/ai_agents_ossa-module/.agents/example-agent/agent.ossa.yaml +37 -0
  587. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
  588. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  589. package/examples/extensions/agents-md-advanced.yml +177 -0
  590. package/examples/extensions/agents-md-basic.yml +74 -0
  591. package/examples/extensions/agents-md-sync.yml +96 -0
  592. package/examples/extensions/agents-md-v1.yml +1 -1
  593. package/examples/extensions/drupal-v1.yml +1 -1
  594. package/examples/extensions/encryption-multi-provider.yaml +120 -0
  595. package/examples/extensions/kagent-v1.yml +2 -2
  596. package/examples/extensions/knowledge-sources.yaml +59 -0
  597. package/examples/extensions/mcp-full-featured.yaml +150 -0
  598. package/examples/getting-started/01-minimal-agent.ossa.yaml +376 -0
  599. package/examples/getting-started/02-agent-with-tools.ossa.yaml +866 -0
  600. package/examples/getting-started/03-agent-with-safety.ossa.yaml +868 -0
  601. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +829 -0
  602. package/examples/getting-started/05-workflow-composition.ossa.yaml +209 -0
  603. package/examples/getting-started/README.md +69 -0
  604. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  605. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  606. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  607. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  608. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  609. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -1
  610. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  611. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  612. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  613. package/examples/langchain/chain-agent.ossa.json +1 -1
  614. package/examples/langflow/workflow-agent.ossa.json +1 -1
  615. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  616. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  617. package/examples/messaging/dependency-healer.ossa.yaml +354 -0
  618. package/examples/messaging/incident-responder.ossa.yaml +477 -0
  619. package/examples/messaging/routing-rules.ossa.yaml +307 -0
  620. package/examples/messaging/security-scanner.ossa.yaml +328 -0
  621. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  622. package/examples/mistral-adapter-example.ts +435 -0
  623. package/examples/mistral-simple.ts +56 -0
  624. package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
  625. package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
  626. package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
  627. package/examples/observability/activity-stream-full.yaml +133 -0
  628. package/examples/observability/gitlab-ci-template.yml +304 -0
  629. package/examples/openai/basic-agent.ossa.yaml +1 -1
  630. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  631. package/examples/openai/swarm-agent.ossa.json +1 -1
  632. package/examples/production/document-analyzer-openai.yml +1 -1
  633. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  634. package/examples/rag-agent/README.md +136 -0
  635. package/examples/rag-agent/index.ts +272 -0
  636. package/examples/rag-agent/manifest.yaml +45 -0
  637. package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +163 -0
  638. package/examples/real-world/rag-documentation-assistant.ossa.yaml +235 -0
  639. package/examples/reference-implementations/README.md +321 -0
  640. package/examples/reference-implementations/curl-scripts/01-search-agents.sh +72 -0
  641. package/examples/reference-implementations/curl-scripts/02-get-agent-details.sh +74 -0
  642. package/examples/reference-implementations/curl-scripts/03-publish-agent.sh +136 -0
  643. package/examples/reference-implementations/curl-scripts/04-a2a-messaging.sh +178 -0
  644. package/examples/reference-implementations/curl-scripts/05-discovery.sh +98 -0
  645. package/examples/reference-implementations/curl-scripts/README.md +277 -0
  646. package/examples/reference-implementations/python-client/README.md +282 -0
  647. package/examples/reference-implementations/python-client/examples/basic_usage.py +84 -0
  648. package/examples/reference-implementations/python-client/examples/publish_agent.py +137 -0
  649. package/examples/reference-implementations/python-client/ossa_client/__init__.py +80 -0
  650. package/examples/reference-implementations/python-client/ossa_client/agents.py +240 -0
  651. package/examples/reference-implementations/python-client/ossa_client/client.py +164 -0
  652. package/examples/reference-implementations/python-client/ossa_client/discovery.py +153 -0
  653. package/examples/reference-implementations/python-client/ossa_client/messaging.py +227 -0
  654. package/examples/reference-implementations/python-client/requirements.txt +2 -0
  655. package/examples/reference-implementations/python-client/setup.py +40 -0
  656. package/examples/reference-implementations/typescript-client/README.md +227 -0
  657. package/examples/reference-implementations/typescript-client/examples/basic-usage.ts +86 -0
  658. package/examples/reference-implementations/typescript-client/examples/messaging.ts +185 -0
  659. package/examples/reference-implementations/typescript-client/examples/publish-agent.ts +138 -0
  660. package/examples/reference-implementations/typescript-client/package.json +40 -0
  661. package/examples/reference-implementations/typescript-client/src/agents.ts +285 -0
  662. package/examples/reference-implementations/typescript-client/src/client.ts +161 -0
  663. package/examples/reference-implementations/typescript-client/src/discovery.ts +244 -0
  664. package/examples/reference-implementations/typescript-client/src/index.ts +67 -0
  665. package/examples/reference-implementations/typescript-client/src/messaging.ts +385 -0
  666. package/examples/reference-implementations/typescript-client/tsconfig.json +25 -0
  667. package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +465 -0
  668. package/examples/schema/reusable-components.yaml +95 -0
  669. package/examples/tasks/batch-email-sender.yaml +105 -0
  670. package/examples/tasks/data-transform.yaml +82 -0
  671. package/examples/tasks/publish-content.yaml +86 -0
  672. package/examples/templates/ossa-compliance.yaml +1 -1
  673. package/examples/unified/security-scanner.ossa.yaml +311 -0
  674. package/examples/vercel/edge-agent.ossa.json +1 -1
  675. package/examples/workflow-agent/README.md +175 -0
  676. package/examples/workflow-agent/index.ts +408 -0
  677. package/examples/workflow-agent/manifest.yaml +41 -0
  678. package/examples/workflows/batch-email-campaign.yaml +140 -0
  679. package/examples/workflows/content-review-publish.yaml +156 -0
  680. package/examples/workflows/simple-etl.yaml +151 -0
  681. package/openapi/agent-communication.yaml +1113 -0
  682. package/openapi/agent-crud.yaml +1124 -0
  683. package/openapi/agent-discovery.yaml +677 -0
  684. package/openapi/agent-identity.yaml +620 -0
  685. package/openapi/protocols/sse-streams.yaml +479 -0
  686. package/openapi/protocols/websocket-events.yaml +427 -0
  687. package/openapi/schemas/discovery.json +488 -0
  688. package/package.json +91 -33
  689. package/schemas/agent.json +523 -0
  690. package/schemas/communication.json +897 -0
  691. package/schemas/identity.json +482 -0
  692. package/spec/extensions/a2a-messaging.md +471 -0
  693. package/spec/extensions/manifest-extensions.md +550 -0
  694. package/spec/registry/README.md +472 -0
  695. package/spec/registry/openapi.yaml +1124 -0
  696. package/spec/registry/registry-api.schema.json +731 -0
  697. package/spec/registry/registry-spec.md +2239 -0
  698. package/spec/schema/agent-test.schema.json +117 -0
  699. package/spec/schema/components/activity-stream.schema.json +94 -0
  700. package/spec/schema/components/constraints.schema.json +84 -0
  701. package/spec/schema/components/dependencies.schema.json +147 -0
  702. package/spec/schema/components/encryption.schema.json +115 -0
  703. package/spec/schema/components/identity.schema.json +48 -0
  704. package/spec/schema/components/index.json +37 -0
  705. package/spec/schema/components/llm-config.schema.json +67 -0
  706. package/spec/schema/components/metadata.schema.json +37 -0
  707. package/spec/schema/components/tool.schema.json +64 -0
  708. package/spec/schema/extensions/a2a.extension.schema.json +127 -0
  709. package/spec/v0.2.8/ossa-0.2.8.schema.json +95 -1
  710. package/spec/v0.3.0/UNIFIED-SCHEMA.md +120 -0
  711. package/spec/v0.3.0/adapters/drupal.md +541 -0
  712. package/spec/v0.3.0/adapters/symfony.md +659 -0
  713. package/spec/v0.3.0/agent-test.schema.json +75 -0
  714. package/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +110 -0
  715. package/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  716. package/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  717. package/spec/v0.3.0/extensions/drupal.md +417 -0
  718. package/spec/v0.3.0/ossa-0.3.0.schema.json +2787 -0
  719. package/spec/v0.3.0/protocols/sse.md +494 -0
  720. package/spec/v0.3.0/protocols/webrtc.md +600 -0
  721. package/spec/v0.3.0/protocols/websocket.md +362 -0
  722. package/spec/v0.3.0/schemas/agent-unified.yaml +165 -0
  723. package/spec/v0.3.0/schemas/capabilities.yaml +102 -0
  724. package/spec/v0.3.0/schemas/functions.yaml +75 -0
  725. package/spec/v0.3.0/schemas/messaging/channel.schema.json +245 -0
  726. package/spec/v0.3.0/schemas/messaging/delivery-receipt.schema.json +192 -0
  727. package/spec/v0.3.0/schemas/messaging/message.schema.json +205 -0
  728. package/spec/v0.3.0/schemas/messaging/subscription.schema.json +214 -0
  729. package/spec/v0.3.0/schemas/runtime.yaml +102 -0
  730. package/spec/v0.3.0/schemas/taxonomy.yaml +533 -0
  731. package/spec/v0.3.0/schemas/unified-llm.yaml +91 -0
  732. package/spec/v0.3.0/taxonomy.yaml +256 -0
  733. package/.cursorrules +0 -84
  734. package/.devfile.yaml +0 -87
  735. package/.env.example +0 -63
  736. package/.eslintrc.cjs +0 -43
  737. package/.github/AGENTS.md +0 -245
  738. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -63
  739. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -40
  740. package/.github/PULL_REQUEST_TEMPLATE.md +0 -39
  741. package/.github/agents/github-issue-triage.ossa.yaml +0 -99
  742. package/.github/agents/github-pr-triage.ossa.yaml +0 -137
  743. package/.github/dependabot.yml +0 -58
  744. package/.github/workflows/ci.yml +0 -154
  745. package/.github/workflows/codeql.yml +0 -41
  746. package/.github/workflows/dependabot-auto-merge.yml +0 -28
  747. package/.github/workflows/dependabot-comment.yml +0 -34
  748. package/.github/workflows/issue-sync-to-gitlab.yml +0 -138
  749. package/.github/workflows/pr-triage-to-gitlab.yml +0 -164
  750. package/.github/workflows/release.yml +0 -103
  751. package/.husky/pre-commit +0 -5
  752. package/.kiro/config.json +0 -21
  753. package/.kiro/settings/mcp.json +0 -61
  754. package/.kiro/specs/scripts-migration-api-first/design.md +0 -883
  755. package/.kiro/specs/scripts-migration-api-first/requirements.md +0 -165
  756. package/.kiro/specs/scripts-migration-api-first/tasks.md +0 -539
  757. package/.kiro/specs/website-brand-identity/design.md +0 -1060
  758. package/.kiro/specs/website-brand-identity/requirements.md +0 -287
  759. package/.kiro/specs/website-brand-identity/tasks.md +0 -981
  760. package/.prettierignore +0 -7
  761. package/.prettierrc.json +0 -10
  762. package/.redocly.yaml +0 -9
  763. package/.releaserc.json +0 -85
  764. package/.version.json +0 -6
  765. package/.wiki-config.json +0 -24
  766. package/CODEOWNERS +0 -75
  767. package/CONTRIBUTING.md +0 -366
  768. package/bin/validate-ossa-0.2.2.ts +0 -244
  769. package/bin/validate-ossa-0.2.4.ts +0 -244
  770. package/docs/brand-guide/01-brand-overview.md +0 -37
  771. package/docs/brand-guide/02-logo-usage.md +0 -43
  772. package/docs/brand-guide/03-color-palette.md +0 -70
  773. package/docs/brand-guide/04-typography.md +0 -82
  774. package/docs/brand-guide/05-voice-and-tone.md +0 -108
  775. package/docs/brand-guide/06-visual-elements.md +0 -137
  776. package/docs/brand-guide/07-application-examples.md +0 -153
  777. package/docs/brand-guide/OssaLogo/OssA_Logo.svg +0 -21
  778. package/docs/brand-guide/OssaLogo/brand.af +0 -0
  779. package/docs/brand-guide/README.md +0 -107
  780. package/docs/comparison.md +0 -315
  781. package/docs/operations/automation-roadmap.md +0 -245
  782. package/docs/operations/github-sync-strategy.md +0 -357
  783. package/docs/specs/policy-dsl.md +0 -925
  784. package/eslint-report.json +0 -1
  785. package/gl-code-quality-report.json +0 -62
  786. package/infrastructure/docker-compose.yml +0 -33
  787. package/infrastructure/gitlab-agent/rbac.yaml +0 -126
  788. package/infrastructure/gitlab-agent/values.yaml +0 -150
  789. package/infrastructure/k8s/monitoring/00-namespace.yaml +0 -7
  790. package/infrastructure/k8s/monitoring/01-prometheus.yaml +0 -142
  791. package/infrastructure/k8s/monitoring/02-grafana.yaml +0 -63
  792. package/infrastructure/k8s/monitoring/03-lightweight.yaml +0 -121
  793. package/infrastructure/k8s/monitoring/README.md +0 -73
  794. package/infrastructure/k8s/monitoring/deploy.sh +0 -38
  795. package/junit.xml +0 -1
  796. package/llms-ctx-full.txt +0 -39
  797. package/llms-ctx.txt +0 -39
  798. package/llms.txt +0 -47
  799. package/release.config.js +0 -79
  800. package/scripts/README.md +0 -128
  801. package/scripts/auto-rebase-mrs.ts +0 -106
  802. package/scripts/batch-dependabot.sh +0 -57
  803. package/scripts/bump-version.ts +0 -57
  804. package/scripts/compliance-audit.ts +0 -796
  805. package/scripts/configure-gitlab-branch-protection.ts +0 -95
  806. package/scripts/create-issue-helper.ts +0 -238
  807. package/scripts/create-milestone-issue.ts +0 -73
  808. package/scripts/enhanced-version-manager.ts +0 -257
  809. package/scripts/eslint-to-codequality.cjs +0 -34
  810. package/scripts/fix-schema-formats.js +0 -82
  811. package/scripts/gen-types.ts +0 -51
  812. package/scripts/gen-zod.ts +0 -51
  813. package/scripts/generate-agents-catalog.ts +0 -78
  814. package/scripts/generate-api-docs.ts +0 -219
  815. package/scripts/generate-cli-docs.ts +0 -410
  816. package/scripts/generate-config-docs.ts +0 -109
  817. package/scripts/generate-errors-docs.ts +0 -76
  818. package/scripts/generate-examples-docs.ts +0 -100
  819. package/scripts/generate-llms-ctx.sh +0 -17
  820. package/scripts/generate-schema-docs.ts +0 -317
  821. package/scripts/generate-types-docs.ts +0 -48
  822. package/scripts/lowercase-docs.ts +0 -43
  823. package/scripts/manage-milestone-mrs.ts +0 -279
  824. package/scripts/process-doc-templates.ts +0 -37
  825. package/scripts/rebase-all-mrs.sh +0 -75
  826. package/scripts/schemas/package.schema.ts +0 -75
  827. package/scripts/setup-branch-protection.sh +0 -33
  828. package/scripts/sync-github-pr.sh +0 -48
  829. package/scripts/sync-version.js +0 -32
  830. package/scripts/sync-version.ts +0 -39
  831. package/scripts/sync-versions.ts +0 -488
  832. package/scripts/sync-wiki.sh +0 -50
  833. package/scripts/validate-all.js +0 -127
  834. package/scripts/validate-schema.ts +0 -50
  835. package/test-results/junit.xml +0 -337
  836. package/test-results.xml +0 -1
@@ -0,0 +1,868 @@
1
+ # ╔═══════════════════════════════════════════════════════════════════════════════╗
2
+ # ║ ║
3
+ # ║ ██████╗ ███████╗███████╗ █████╗ ██╗ ██╗ ██████╗ ██████╗ ██████╗ ║
4
+ # ║ ██╔═══██╗██╔════╝██╔════╝██╔══██╗ ██║ ██║██╔═████╗ ╚════██╗██╔═████╗ ║
5
+ # ║ ██║ ██║███████╗███████╗███████║ ██║ ██║██║██╔██║ █████╔╝██║██╔██║ ║
6
+ # ║ ██║ ██║╚════██║╚════██║██╔══██║ ╚██╗ ██╔╝████╔╝██║ ╚═══██╗████╔╝██║ ║
7
+ # ║ ╚██████╔╝███████║███████║██║ ██║ ╚████╔╝ ╚██████╔╝██╗██████╔╝╚██████╔╝ ║
8
+ # ║ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝╚═════╝ ╚═════╝ ║
9
+ # ║ ║
10
+ # ║ GETTING STARTED: 03 - PRODUCTION-READY AGENT WITH SAFETY ║
11
+ # ║ ║
12
+ # ╚═══════════════════════════════════════════════════════════════════════════════╝
13
+ #
14
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
15
+ # │ WHAT YOU'LL LEARN │
16
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
17
+ # │ │
18
+ # │ ✓ PII Detection - automatically redact emails, SSNs, API keys, passwords │
19
+ # │ ✓ Content Filtering - block harmful, illegal, or inappropriate content │
20
+ # │ ✓ Rate Limiting - prevent abuse with token bucket algorithm │
21
+ # │ ✓ Guardrails - set boundaries on agent behavior (max tool calls, depth) │
22
+ # │ ✓ Autonomy Levels - control human-in-the-loop requirements │
23
+ # │ ✓ Observability - tracing, metrics, logging for production monitoring │
24
+ # │ ✓ Compliance - SOC2, GDPR, HIPAA considerations │
25
+ # │ │
26
+ # └─────────────────────────────────────────────────────────────────────────────────┘
27
+ #
28
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
29
+ # │ WHY SAFETY MATTERS │
30
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
31
+ # │ │
32
+ # │ Without safety controls, agents can: │
33
+ # │ • Leak sensitive data (customer emails, API keys) in logs or responses │
34
+ # │ • Generate harmful content (hate speech, illegal instructions) │
35
+ # │ • Exhaust budgets with runaway loops (infinite tool calls) │
36
+ # │ • Make destructive decisions without human oversight │
37
+ # │ • Violate compliance requirements (GDPR, HIPAA, SOC2) │
38
+ # │ │
39
+ # │ Real-world incidents: │
40
+ # │ ┌───────────────────────────────────────────────────────────────┐ │
41
+ # │ │ INCIDENT IMPACT PREVENTION │ │
42
+ # │ ├───────────────────────────────────────────────────────────────┤ │
43
+ # │ │ Agent logs customer emails GDPR fine PII redact │ │
44
+ # │ │ Infinite loop: 10K API calls $5000 cost Guardrails │ │
45
+ # │ │ Deleted production database Downtime Autonomy │ │
46
+ # │ │ Generated malware instructions Legal risk Content │ │
47
+ # │ │ Exposed API keys in error msg Security breach PII detect │ │
48
+ # │ └───────────────────────────────────────────────────────────────┘ │
49
+ # │ │
50
+ # │ THE RULE: If an agent touches production data or systems, │
51
+ # │ it MUST have safety controls. No exceptions. │
52
+ # │ │
53
+ # └─────────────────────────────────────────────────────────────────────────────────┘
54
+ #
55
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
56
+ # │ THE FIVE LAYERS OF AGENT SAFETY │
57
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
58
+ # │ │
59
+ # │ 1. PII DETECTION & REDACTION │
60
+ # │ ─────────────────────────── │
61
+ # │ Automatically find and mask sensitive data in inputs and outputs │
62
+ # │ │
63
+ # │ Example: │
64
+ # │ Input: "My email is john@company.com and SSN is 123-45-6789" │
65
+ # │ Output: "My email is [REDACTED_EMAIL] and SSN is [REDACTED_SSN]" │
66
+ # │ │
67
+ # │ Detects: emails, phones, SSNs, credit cards, API keys, passwords, IPs │
68
+ # │ Actions: warn (log but allow), block (reject), redact (mask in-place) │
69
+ # │ │
70
+ # │ 2. CONTENT FILTERING │
71
+ # │ ────────────────── │
72
+ # │ Block harmful or inappropriate content based on categories │
73
+ # │ │
74
+ # │ Categories: hate_speech, violence, self_harm, illegal_activity, │
75
+ # │ adult_content, spam, misinformation │
76
+ # │ Thresholds: low (strict), medium (balanced), high (permissive) │
77
+ # │ Actions: block (reject request), log (allow but record), sanitize (rewrite) │
78
+ # │ │
79
+ # │ 3. RATE LIMITING │
80
+ # │ ────────────── │
81
+ # │ Prevent abuse and control costs with token bucket algorithm │
82
+ # │ │
83
+ # │ Example: 30 requests/minute, burst of 5 │
84
+ # │ • Normal: User makes 1 request/2 seconds → allowed │
85
+ # │ • Burst: User makes 5 requests in 1 second → allowed (uses burst) │
86
+ # │ • Abuse: User makes 100 requests/second → blocked after 5 │
87
+ # │ │
88
+ # │ 4. BEHAVIORAL GUARDRAILS │
89
+ # │ ─────────────────────── │
90
+ # │ Set hard limits on agent behavior to prevent runaway loops │
91
+ # │ │
92
+ # │ • max_tool_calls: 20 → Prevent infinite loops │
93
+ # │ • max_iteration_depth: 5 → Limit reasoning chains │
94
+ # │ • max_tokens_per_turn: 4000 → Control output length (and cost) │
95
+ # │ • require_confirmation_for: [delete, modify_permissions] │
96
+ # │ │
97
+ # │ 5. AUTONOMY CONTROLS │
98
+ # │ ────────────────────── │
99
+ # │ Define when human approval is required │
100
+ # │ │
101
+ # │ Levels: │
102
+ # │ • autonomous: Agent decides and acts (monitoring only) │
103
+ # │ • assisted: Agent proposes, human approves high-risk actions │
104
+ # │ • supervised: Human approves ALL actions before execution │
105
+ # │ │
106
+ # └─────────────────────────────────────────────────────────────────────────────────┘
107
+ #
108
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
109
+ # │ HOW TO RUN THIS EXAMPLE │
110
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
111
+ # │ │
112
+ # │ STEP 1: Set environment variables │
113
+ # │ ──────────────────────────────── │
114
+ # │ $ export ANTHROPIC_API_KEY=sk-ant-... │
115
+ # │ $ export OTEL_ENDPOINT=http://localhost:4317 # Optional: observability │
116
+ # │ │
117
+ # │ STEP 2: Validate safety configuration │
118
+ # │ ───────────────────────────────────── │
119
+ # │ $ ossa validate 03-agent-with-safety.ossa.yaml │
120
+ # │ │
121
+ # │ Expected output: │
122
+ # │ ✓ Schema validation passed │
123
+ # │ ✓ PII detection patterns loaded (7 types) │
124
+ # │ ✓ Content filter initialized (6 categories) │
125
+ # │ ✓ Rate limiting configured (30 req/min, burst 5) │
126
+ # │ ✓ Guardrails validated │
127
+ # │ ✓ Autonomy level: assisted │
128
+ # │ ✓ Ready to run │
129
+ # │ │
130
+ # │ STEP 3: Test PII detection │
131
+ # │ ───────────────────────── │
132
+ # │ $ ossa run 03-agent-with-safety.ossa.yaml --interactive │
133
+ # │ │
134
+ # │ > My email is test@example.com and my API key is sk-1234567890 │
135
+ # │ Agent: I see you provided contact information. [PII REDACTED] │
136
+ # │ │
137
+ # │ Behind the scenes: │
138
+ # │ • PII detector found: email + API key │
139
+ # │ • Input was redacted before sending to LLM │
140
+ # │ • Logs show: "My email is [REDACTED_EMAIL] and my API key is [REDACTED_KEY]" │
141
+ # │ │
142
+ # │ STEP 4: Test content filtering │
143
+ # │ ────────────────────────────── │
144
+ # │ > How do I hack into a database? │
145
+ # │ [BLOCKED] Content filter triggered: illegal_activity (confidence: high) │
146
+ # │ This request violates our usage policy. │
147
+ # │ │
148
+ # │ STEP 5: Test rate limiting │
149
+ # │ ───────────────────────── │
150
+ # │ $ for i in {1..100}; do │
151
+ # │ ossa run 03-agent-with-safety.ossa.yaml --input "Hello" & │
152
+ # │ done │
153
+ # │ │
154
+ # │ Expected: │
155
+ # │ • First 5 requests: Succeed immediately (burst allowance) │
156
+ # │ • Next 30 requests: Succeed at 1 request/2 seconds (rate limit) │
157
+ # │ • Remaining requests: Rejected with 429 Too Many Requests │
158
+ # │ │
159
+ # │ STEP 6: Test guardrails (prevent infinite loops) │
160
+ # │ ──────────────────────────────────────────────── │
161
+ # │ Modify the agent to have a buggy tool that calls itself recursively. │
162
+ # │ The agent will stop after 20 tool calls (max_tool_calls guardrail). │
163
+ # │ │
164
+ # │ STEP 7: Test autonomy controls │
165
+ # │ ────────────────────────────────── │
166
+ # │ > Delete all user data │
167
+ # │ Agent: This action requires human approval. │
168
+ # │ Action: delete_data │
169
+ # │ Reason: Destructive operation on production data │
170
+ # │ Approve? (yes/no): │
171
+ # │ │
172
+ # │ STEP 8: Monitor with observability │
173
+ # │ ────────────────────────────────────── │
174
+ # │ If you have OpenTelemetry collector running: │
175
+ # │ │
176
+ # │ $ docker run -p 4317:4317 otel/opentelemetry-collector │
177
+ # │ $ ossa run 03-agent-with-safety.ossa.yaml --trace │
178
+ # │ │
179
+ # │ View traces in Jaeger/Zipkin to see: │
180
+ # │ • PII detection timings │
181
+ # │ • Content filter decisions │
182
+ # │ • Rate limit calculations │
183
+ # │ • Tool call chains │
184
+ # │ │
185
+ # └─────────────────────────────────────────────────────────────────────────────────┘
186
+ #
187
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
188
+ # │ PII DETECTION: PATTERNS & EXAMPLES │
189
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
190
+ # │ │
191
+ # │ OSSA includes built-in regex patterns for common PII types: │
192
+ # │ │
193
+ # │ EMAIL │
194
+ # │ ───── │
195
+ # │ Pattern: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b │
196
+ # │ Examples: │
197
+ # │ ✓ john.doe@company.com → [REDACTED_EMAIL] │
198
+ # │ ✓ admin+test@example.org → [REDACTED_EMAIL] │
199
+ # │ ✗ not-an-email@ → (not matched) │
200
+ # │ │
201
+ # │ PHONE NUMBER │
202
+ # │ ──────────── │
203
+ # │ Pattern: (\+\d{1,3}[- ]?)?\(?\d{3}\)?[- ]?\d{3}[- ]?\d{4} │
204
+ # │ Examples: │
205
+ # │ ✓ (555) 123-4567 → [REDACTED_PHONE] │
206
+ # │ ✓ +1-555-123-4567 → [REDACTED_PHONE] │
207
+ # │ ✓ 5551234567 → [REDACTED_PHONE] │
208
+ # │ │
209
+ # │ SOCIAL SECURITY NUMBER (US) │
210
+ # │ ─────────────────────────── │
211
+ # │ Pattern: \b\d{3}-\d{2}-\d{4}\b │
212
+ # │ Examples: │
213
+ # │ ✓ 123-45-6789 → [REDACTED_SSN] │
214
+ # │ ✗ 12-345-6789 → (invalid format, not matched) │
215
+ # │ │
216
+ # │ CREDIT CARD │
217
+ # │ ─────────── │
218
+ # │ Pattern: \b(?:\d{4}[- ]?){3}\d{4}\b (Luhn algorithm validation) │
219
+ # │ Examples: │
220
+ # │ ✓ 4532-1234-5678-9010 → [REDACTED_CREDIT_CARD] │
221
+ # │ ✓ 4532123456789010 → [REDACTED_CREDIT_CARD] │
222
+ # │ ✗ 1234-5678-9012-3456 → (invalid Luhn checksum, not matched) │
223
+ # │ │
224
+ # │ API KEY │
225
+ # │ ─────── │
226
+ # │ Pattern: \b(sk|pk|api)[-_]?[A-Za-z0-9]{20,}\b │
227
+ # │ Examples: │
228
+ # │ ✓ sk_live_abcd1234efgh5678 → [REDACTED_API_KEY] │
229
+ # │ ✓ api-key-1234567890abcdef → [REDACTED_API_KEY] │
230
+ # │ ✓ GITHUB_TOKEN=ghp_abc123 → [REDACTED_API_KEY] │
231
+ # │ │
232
+ # │ PASSWORD (in common patterns) │
233
+ # │ ──────────────────────────── │
234
+ # │ Pattern: (password|passwd|pwd)[=:]\s*\S+ │
235
+ # │ Examples: │
236
+ # │ ✓ password=mySecret123 → password=[REDACTED_PASSWORD] │
237
+ # │ ✓ "pwd": "hunter2" → "pwd": "[REDACTED_PASSWORD]" │
238
+ # │ │
239
+ # │ IP ADDRESS │
240
+ # │ ────────── │
241
+ # │ Pattern: \b(?:\d{1,3}\.){3}\d{1,3}\b │
242
+ # │ Examples: │
243
+ # │ ✓ 192.168.1.1 → [REDACTED_IP] │
244
+ # │ ✓ 10.0.0.1 → [REDACTED_IP] │
245
+ # │ ✗ 999.999.999.999 → (invalid range, optional validation) │
246
+ # │ │
247
+ # │ CUSTOM PATTERNS │
248
+ # │ ─────────────── │
249
+ # │ You can add custom PII patterns in safety.pii_detection.custom_patterns: │
250
+ # │ │
251
+ # │ ```yaml │
252
+ # │ custom_patterns: │
253
+ # │ - name: employee_id │
254
+ # │ pattern: "EMP-\\d{6}" │
255
+ # │ replacement: "[REDACTED_EMPLOYEE_ID]" │
256
+ # │ - name: medical_record │
257
+ # │ pattern: "MRN-\\d{8}" │
258
+ # │ replacement: "[REDACTED_MRN]" │
259
+ # │ ``` │
260
+ # │ │
261
+ # └─────────────────────────────────────────────────────────────────────────────────┘
262
+ #
263
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
264
+ # │ RATE LIMITING: TOKEN BUCKET ALGORITHM EXPLAINED │
265
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
266
+ # │ │
267
+ # │ Token Bucket is the industry-standard algorithm for rate limiting. │
268
+ # │ It allows bursts while maintaining a long-term rate limit. │
269
+ # │ │
270
+ # │ CONFIGURATION: │
271
+ # │ requests_per_minute: 30 → Steady-state rate (0.5 requests/second) │
272
+ # │ burst_limit: 5 → Max requests in a burst │
273
+ # │ │
274
+ # │ HOW IT WORKS: │
275
+ # │ │
276
+ # │ 1. BUCKET INITIALIZATION │
277
+ # │ • Bucket capacity: burst_limit (5 tokens) │
278
+ # │ • Refill rate: requests_per_minute / 60 (0.5 tokens/second) │
279
+ # │ • Current tokens: burst_limit (starts full) │
280
+ # │ │
281
+ # │ 2. REQUEST PROCESSING │
282
+ # │ • User makes request → check if bucket has ≥1 token │
283
+ # │ • If yes: consume 1 token, allow request │
284
+ # │ • If no: reject with 429 Too Many Requests │
285
+ # │ │
286
+ # │ 3. TOKEN REFILL │
287
+ # │ • Every 2 seconds: add 1 token to bucket (up to capacity) │
288
+ # │ │
289
+ # │ EXAMPLE TIMELINE: │
290
+ # │ │
291
+ # │ Time Request Tokens Before Action Tokens After │
292
+ # │ ──── ─────── ───────────── ────── ──────────── │
293
+ # │ 0.0s #1 5 Allow 4 │
294
+ # │ 0.1s #2 4 Allow 3 │
295
+ # │ 0.2s #3 3 Allow 2 │
296
+ # │ 0.3s #4 2 Allow 1 │
297
+ # │ 0.4s #5 1 Allow 0 ← burst exhausted │
298
+ # │ 0.5s #6 0 REJECT (429) 0 ← no tokens │
299
+ # │ 2.0s - 0 → 1 (refill) 1 ← +1 token │
300
+ # │ 2.1s #7 1 Allow 0 │
301
+ # │ 4.0s - 0 → 1 (refill) 1 │
302
+ # │ 4.1s #8 1 Allow 0 │
303
+ # │ │
304
+ # │ KEY INSIGHT: │
305
+ # │ • Bursts are allowed (first 5 requests succeed immediately) │
306
+ # │ • Long-term rate is enforced (30 requests/minute = 1 every 2 seconds) │
307
+ # │ • Protects against abuse while allowing normal usage spikes │
308
+ # │ │
309
+ # │ COST CALCULATION: │
310
+ # │ With requests_per_minute: 30 │
311
+ # │ • Max requests per hour: 30 × 60 = 1,800 │
312
+ # │ • Max requests per day: 1,800 × 24 = 43,200 │
313
+ # │ • Max requests per month: 43,200 × 30 = 1,296,000 │
314
+ # │ │
315
+ # │ If average request costs $0.01 (Claude Sonnet): │
316
+ # │ • Max monthly cost: 1,296,000 × $0.01 = $12,960 │
317
+ # │ │
318
+ # │ TUNING GUIDANCE: │
319
+ # │ ┌────────────────────────────────────────────────────────────────┐ │
320
+ # │ │ USE CASE RATE LIMIT BURST RATIONALE │ │
321
+ # │ ├────────────────────────────────────────────────────────────────┤ │
322
+ # │ │ Internal tool 60/min 10 Power users │ │
323
+ # │ │ Customer chatbot 30/min 5 Moderate use │ │
324
+ # │ │ Public API 10/min 2 Prevent abuse │ │
325
+ # │ │ Expensive operations 5/min 1 Cost control │ │
326
+ # │ └────────────────────────────────────────────────────────────────┘ │
327
+ # │ │
328
+ # └─────────────────────────────────────────────────────────────────────────────────┘
329
+ #
330
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
331
+ # │ COMPLIANCE CONSIDERATIONS │
332
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
333
+ # │ │
334
+ # │ GDPR (General Data Protection Regulation) │
335
+ # │ ───────────────────────────────────────── │
336
+ # │ ✓ Enable PII detection with action: redact │
337
+ # │ ✓ Set observability.logging.include_prompts: false │
338
+ # │ ✓ Set observability.logging.include_responses: false │
339
+ # │ ✓ Implement data retention policies (delete logs after N days) │
340
+ # │ ✓ Add audit trail for all PII access (who, when, why) │
341
+ # │ │
342
+ # │ SOC2 (Service Organization Control 2) │
343
+ # │ ────────────────────────────────────────── │
344
+ # │ ✓ Enable observability.tracing and observability.metrics │
345
+ # │ ✓ Set autonomy.level: assisted or supervised │
346
+ # │ ✓ Configure safety.guardrails with strict limits │
347
+ # │ ✓ Enable safety.content_filtering for all categories │
348
+ # │ ✓ Implement access controls (who can run the agent) │
349
+ # │ │
350
+ # │ HIPAA (Health Insurance Portability and Accountability Act) │
351
+ # │ ──────────────────────────────────────────────────────────────── │
352
+ # │ ✓ Enable PII detection with custom patterns for PHI (Protected Health Info) │
353
+ # │ ✓ Encrypt logs and traces (observability.tracing.encryption: true) │
354
+ # │ ✓ Set autonomy.level: supervised (all actions require approval) │
355
+ # │ ✓ Implement audit logging for all agent interactions │
356
+ # │ ✓ Use private LLM deployment (no data sent to third-party APIs) │
357
+ # │ │
358
+ # │ EXAMPLE HIPAA PII PATTERNS: │
359
+ # │ ```yaml │
360
+ # │ pii_detection: │
361
+ # │ custom_patterns: │
362
+ # │ - name: medical_record_number │
363
+ # │ pattern: "MRN[:\s]+\d{6,10}" │
364
+ # │ - name: patient_id │
365
+ # │ pattern: "PT-\d{8}" │
366
+ # │ - name: diagnosis_code │
367
+ # │ pattern: "ICD-10:\s*[A-Z]\d{2}\.\d{1,3}" │
368
+ # │ ``` │
369
+ # │ │
370
+ # └─────────────────────────────────────────────────────────────────────────────────┘
371
+ #
372
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
373
+ # │ NEXT STEPS │
374
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
375
+ # │ │
376
+ # │ 04-agent-with-messaging.ossa.yaml │
377
+ # │ Multi-agent coordination: pub/sub, commands, event-driven architecture │
378
+ # │ Learn: How agents communicate, reliability guarantees, message schemas │
379
+ # │ │
380
+ # │ 05-workflow-composition.ossa.yaml │
381
+ # │ Orchestration: Compose agents and tasks into complex workflows │
382
+ # │ Learn: DAGs, error handling, parallel execution, compensation patterns │
383
+ # │ │
384
+ # └─────────────────────────────────────────────────────────────────────────────────┘
385
+ #
386
+ # ═══════════════════════════════════════════════════════════════════════════════════
387
+ # THE ACTUAL MANIFEST STARTS HERE
388
+ # ═══════════════════════════════════════════════════════════════════════════════════
389
+
390
+ # ──────────────────────────────────────────────────────────────────────────────────
391
+ # API VERSION & KIND
392
+ # ──────────────────────────────────────────────────────────────────────────────────
393
+ apiVersion: ossa/v0.3.0
394
+ kind: Agent
395
+
396
+ # ──────────────────────────────────────────────────────────────────────────────────
397
+ # METADATA
398
+ # ──────────────────────────────────────────────────────────────────────────────────
399
+ metadata:
400
+ name: secure-assistant
401
+ version: 1.0.0
402
+
403
+ description: |
404
+ Production-ready enterprise assistant with comprehensive safety controls:
405
+ - PII detection and redaction (7 types)
406
+ - Content filtering (4 harmful categories)
407
+ - Rate limiting (30 req/min with burst protection)
408
+ - Behavioral guardrails (prevent runaway loops)
409
+ - Autonomy controls (human-in-the-loop for sensitive actions)
410
+ - Full observability (tracing, metrics, structured logging)
411
+
412
+ Compliance: SOC2, GDPR-ready, HIPAA-compatible (with custom PII patterns)
413
+
414
+ labels:
415
+ difficulty: intermediate
416
+ tutorial: "03"
417
+ compliance: soc2
418
+ environment: production
419
+
420
+ # ──────────────────────────────────────────────────────────────────────────────────
421
+ # SPEC
422
+ # ──────────────────────────────────────────────────────────────────────────────────
423
+ spec:
424
+ # ────────────────────────────────────────────────────────────────────────────────
425
+ # ROLE (System Prompt)
426
+ # ────────────────────────────────────────────────────────────────────────────────
427
+ # For production agents, the role should emphasize security and compliance
428
+ # ────────────────────────────────────────────────────────────────────────────────
429
+ role: |
430
+ You are a secure enterprise assistant for internal employee support.
431
+
432
+ Your responsibilities:
433
+ - Help employees find internal documentation and policies
434
+ - Answer workflow and process questions
435
+ - Provide guidance on tools and systems
436
+ - Escalate sensitive questions to human support staff
437
+
438
+ SECURITY REQUIREMENTS (CRITICAL):
439
+ 1. **Confidentiality**: Never share confidential company information externally
440
+ 2. **PII Protection**: All personally identifiable information is automatically
441
+ redacted, but you should still avoid requesting unnecessary PII
442
+ 3. **Data Minimization**: Only request data necessary to answer the question
443
+ 4. **Compliance**: Follow company data handling policies at all times
444
+
445
+ When you detect PII in user input, acknowledge it professionally:
446
+ ✓ "I see you provided contact information. [PII has been redacted]"
447
+ ✗ "Your email is john@company.com" (don't repeat PII)
448
+
449
+ For sensitive operations (delete, permissions changes):
450
+ - Explain the action clearly
451
+ - Explain the risks
452
+ - Request explicit confirmation
453
+ - Document the reason for the action
454
+
455
+ # ────────────────────────────────────────────────────────────────────────────────
456
+ # LLM CONFIGURATION
457
+ # ────────────────────────────────────────────────────────────────────────────────
458
+ llm:
459
+ provider: ${LLM_PROVIDER:-anthropic}
460
+ model: ${LLM_MODEL:-claude-sonnet-4-20250514}
461
+
462
+ # Temperature 0.5 - balanced between consistency and natural responses
463
+ # For compliance/security tasks, consider lowering to 0.2-0.3
464
+ temperature: 0.5
465
+
466
+ # ──────────────────────────────────────────────────────────────────────────────
467
+ # FALLBACK MODELS (High Availability)
468
+ # ──────────────────────────────────────────────────────────────────────────────
469
+ # Production agents should have fallback models to maintain uptime
470
+ # when the primary provider has issues
471
+ # ──────────────────────────────────────────────────────────────────────────────
472
+ fallback_models:
473
+ # Fallback to OpenAI if Anthropic fails
474
+ - provider: openai
475
+ model: gpt-4o
476
+
477
+ # Trigger conditions - when to use this fallback
478
+ trigger:
479
+ # Use fallback on any error from primary provider
480
+ on_error: true
481
+
482
+ # Retry primary provider 2 times before falling back
483
+ # This prevents flipping to fallback for transient errors
484
+ max_retries: 2
485
+
486
+ # Optional: trigger on specific error codes
487
+ # error_codes:
488
+ # - 503 # Service unavailable
489
+ # - 529 # Overloaded
490
+
491
+ # Optional: trigger on high latency
492
+ # latency_threshold_ms: 5000 # 5 seconds
493
+
494
+ # You can add more fallbacks (they're tried in order)
495
+ # - provider: google
496
+ # model: gemini-2.0-flash
497
+ # trigger:
498
+ # on_error: true
499
+
500
+ # ──────────────────────────────────────────────────────────────────────────────
501
+ # COST TRACKING (Budget Management)
502
+ # ──────────────────────────────────────────────────────────────────────────────
503
+ # Track LLM costs and alert when budgets are approached
504
+ # ──────────────────────────────────────────────────────────────────────────────
505
+ cost_tracking:
506
+ enabled: true
507
+
508
+ # Alert threshold in dollars
509
+ # When cumulative costs reach this amount, trigger alert
510
+ # Costs reset monthly or per your billing cycle
511
+ budget_alert_threshold: 50.00
512
+
513
+ # Cost allocation tags - for tracking across teams/environments
514
+ # Appears in cost reports and observability traces
515
+ cost_allocation_tags:
516
+ team: platform
517
+ environment: production
518
+ cost_center: engineering
519
+
520
+ # Optional: hard budget limit (reject requests after this)
521
+ # budget_hard_limit: 100.00
522
+
523
+ # Optional: per-user budgets
524
+ # user_budget_limit: 5.00 # per user per month
525
+
526
+ # ────────────────────────────────────────────────────────────────────────────────
527
+ # AUTONOMY CONFIGURATION (Human-in-the-Loop Controls)
528
+ # ────────────────────────────────────────────────────────────────────────────────
529
+ # Define when human approval is required vs autonomous action
530
+ # ────────────────────────────────────────────────────────────────────────────────
531
+ autonomy:
532
+ # Autonomy level - controls default behavior
533
+ # ┌──────────────┬──────────────────────────────────────────────────────────┐
534
+ # │ LEVEL │ BEHAVIOR │
535
+ # ├──────────────┼──────────────────────────────────────────────────────────┤
536
+ # │ autonomous │ Agent acts independently (monitoring only) │
537
+ # │ assisted │ Agent proposes, human approves high-risk actions │
538
+ # │ supervised │ Human approves ALL actions before execution │
539
+ # └──────────────┴──────────────────────────────────────────────────────────┘
540
+ level: assisted
541
+
542
+ # Actions that ALWAYS require human approval
543
+ # Even in autonomous mode, these will block and request confirmation
544
+ approval_required:
545
+ - delete_data # Any data deletion
546
+ - modify_permissions # Permission/access changes
547
+ - external_api_calls # Calls to external services
548
+ - deploy_code # Code deployments
549
+ - modify_production # Production system changes
550
+
551
+ # Actions that are ALLOWED without approval (whitelist)
552
+ # In assisted mode, these run automatically
553
+ allowed_actions:
554
+ - read_documents # Reading files, docs, wikis
555
+ - search_knowledge_base # Searching internal KB
556
+ - generate_reports # Creating reports/summaries
557
+ - send_notifications # Sending alerts/emails
558
+
559
+ # Actions that are BLOCKED entirely (blacklist)
560
+ # Agent will refuse these actions even if approved
561
+ blocked_actions:
562
+ - access_production_database # Direct DB access forbidden
563
+ - modify_security_settings # Security changes forbidden
564
+ - access_secrets_directly # Must use secrets manager
565
+
566
+ # Escalation policy - when to alert humans
567
+ escalation_policy:
568
+ # Conditions that trigger escalation
569
+ triggers:
570
+ - confidence_below_80_percent # LLM confidence too low
571
+ - sensitive_topic_detected # Content filter flagged input
572
+ - multiple_approval_requests # Agent asking repeatedly
573
+ - unusual_access_pattern # Anomaly detection
574
+
575
+ # Where to send escalation notifications
576
+ notify:
577
+ - slack:#security-alerts # Slack channel
578
+ - email:security@company.com # Email address
579
+ - pagerduty:agent-alerts # PagerDuty integration
580
+
581
+ # Optional: escalation SLA
582
+ # response_timeout_minutes: 15 # Human must respond within 15min
583
+
584
+ # ────────────────────────────────────────────────────────────────────────────────
585
+ # SAFETY CONFIGURATION (Production-Critical)
586
+ # ────────────────────────────────────────────────────────────────────────────────
587
+ # Multi-layered safety controls for enterprise deployment
588
+ # ────────────────────────────────────────────────────────────────────────────────
589
+ safety:
590
+ # ──────────────────────────────────────────────────────────────────────────────
591
+ # CONTENT FILTERING (Harmful Content Detection)
592
+ # ──────────────────────────────────────────────────────────────────────────────
593
+ # Uses ML models to detect harmful categories in inputs and outputs
594
+ # ──────────────────────────────────────────────────────────────────────────────
595
+ content_filtering:
596
+ enabled: true
597
+
598
+ # Categories to filter
599
+ # Each uses a specialized ML classifier (typically BERT-based)
600
+ categories:
601
+ - hate_speech # Discriminatory language, slurs
602
+ - violence # Violent content, threats
603
+ - self_harm # Self-injury instructions
604
+ - illegal_activity # Hacking, fraud, illegal instructions
605
+ # - adult_content # Sexually explicit (optional)
606
+ # - spam # Spam/promotional content (optional)
607
+
608
+ # Detection threshold
609
+ # ┌────────┬──────────────┬─────────────────────────────────────────┐
610
+ # │ LEVEL │ CONFIDENCE │ TRADE-OFF │
611
+ # ├────────┼──────────────┼─────────────────────────────────────────┤
612
+ # │ low │ >0.3 (30%) │ Strict: catches more, more false pos │
613
+ # │ medium │ >0.6 (60%) │ Balanced: good precision/recall │
614
+ # │ high │ >0.9 (90%) │ Permissive: very confident violations │
615
+ # └────────┴──────────────┴─────────────────────────────────────────┘
616
+ threshold: medium
617
+
618
+ # Action when harmful content detected
619
+ # • block: Reject request, return error
620
+ # • log: Allow but log incident for review
621
+ # • sanitize: Attempt to rewrite content (experimental)
622
+ action: block
623
+
624
+ # Optional: Custom filter messages
625
+ # block_message: "This request violates our content policy."
626
+
627
+ # Optional: Apply to inputs, outputs, or both
628
+ # apply_to: [input, output] # Default: both
629
+
630
+ # ──────────────────────────────────────────────────────────────────────────────
631
+ # PII DETECTION (Privacy Protection)
632
+ # ──────────────────────────────────────────────────────────────────────────────
633
+ # Automatically detect and redact personally identifiable information
634
+ # Uses regex patterns + NER models for high accuracy
635
+ # ──────────────────────────────────────────────────────────────────────────────
636
+ pii_detection:
637
+ enabled: true
638
+
639
+ # Built-in PII types (see documentation header for regex patterns)
640
+ types:
641
+ - email # Email addresses
642
+ - phone # Phone numbers (US + international)
643
+ - ssn # Social Security Numbers (US)
644
+ - credit_card # Credit card numbers (Luhn-validated)
645
+ - api_key # API keys (sk-, pk-, ghp-, etc.)
646
+ - password # Passwords in common patterns
647
+ - ip_address # IP addresses (IPv4/IPv6)
648
+
649
+ # Action when PII detected
650
+ # • warn: Log detection but allow (for monitoring)
651
+ # • block: Reject request with PII
652
+ # • redact: Replace PII with placeholder (RECOMMENDED)
653
+ action: redact
654
+
655
+ # Redaction format
656
+ # When action=redact, PII is replaced with these placeholders
657
+ # redaction_format: "[REDACTED_{TYPE}]" # Default
658
+
659
+ # Optional: Custom PII patterns (for your domain)
660
+ # See documentation header for examples (employee IDs, medical records, etc.)
661
+ # custom_patterns:
662
+ # - name: employee_id
663
+ # pattern: "EMP-\\d{6}"
664
+ # replacement: "[REDACTED_EMPLOYEE_ID]"
665
+
666
+ # Optional: Exceptions (allow specific patterns)
667
+ # exceptions:
668
+ # - "support@company.com" # Company support email OK
669
+ # - "demo@example.com" # Example emails OK
670
+
671
+ # Optional: Apply to prompts, responses, or both
672
+ # apply_to: [prompt, response] # Default: both
673
+
674
+ # ──────────────────────────────────────────────────────────────────────────────
675
+ # RATE LIMITING (Abuse Prevention)
676
+ # ──────────────────────────────────────────────────────────────────────────────
677
+ # Token bucket algorithm - see documentation header for details
678
+ # ──────────────────────────────────────────────────────────────────────────────
679
+ rate_limiting:
680
+ enabled: true
681
+
682
+ # Steady-state rate: requests per minute
683
+ # This is the LONG-TERM average rate allowed
684
+ # 30 req/min = 1 request every 2 seconds
685
+ requests_per_minute: 30
686
+
687
+ # Burst allowance: number of requests allowed in a burst
688
+ # Allows temporary spikes in usage
689
+ # First 5 requests can happen immediately, then rate limit kicks in
690
+ burst_limit: 5
691
+
692
+ # Optional: Rate limit scope
693
+ # • global: Single limit across all users
694
+ # • per_user: Each user gets their own bucket
695
+ # • per_ip: Each IP address gets their own bucket
696
+ # scope: per_user # Default: global
697
+
698
+ # Optional: Custom rate limit by user tier
699
+ # user_tier_limits:
700
+ # free: 10
701
+ # pro: 60
702
+ # enterprise: 300
703
+
704
+ # Optional: Response when rate limited
705
+ # retry_after_header: true # Include Retry-After header
706
+
707
+ # ──────────────────────────────────────────────────────────────────────────────
708
+ # BEHAVIORAL GUARDRAILS (Prevent Runaway Agents)
709
+ # ──────────────────────────────────────────────────────────────────────────────
710
+ # Hard limits on agent behavior to prevent infinite loops and cost overruns
711
+ # ──────────────────────────────────────────────────────────────────────────────
712
+ guardrails:
713
+ enabled: true
714
+
715
+ # Maximum tool calls per request
716
+ # Prevents infinite loops where agent keeps calling tools
717
+ # Example: Agent calls search → read_file → search → read_file → ...
718
+ # After 20 tool calls, agent is forced to return response
719
+ max_tool_calls: 20
720
+
721
+ # Maximum iteration depth for reasoning chains
722
+ # Limits how many times agent can reflect/reconsider
723
+ # Prevents: "Let me think... actually... wait... let me reconsider..."
724
+ max_iteration_depth: 5
725
+
726
+ # Maximum tokens per response
727
+ # Controls output length (and cost)
728
+ # Claude Sonnet max: 8192, but 4000 is usually sufficient
729
+ max_tokens_per_turn: 4000
730
+
731
+ # Actions that require explicit user confirmation
732
+ # Agent will pause and ask "Are you sure?" before these
733
+ require_confirmation_for:
734
+ - destructive_actions # Delete, drop, remove operations
735
+ - external_communications # Emails, API calls outside org
736
+ - data_modifications # Update, modify database records
737
+ - cost_intensive_operations # Large batch jobs
738
+
739
+ # Optional: Timeout limits
740
+ # max_execution_time_seconds: 300 # 5 minutes max per request
741
+ # max_total_cost_per_request: 1.00 # $1 max cost per request
742
+
743
+ # Optional: Loop detection
744
+ # detect_infinite_loops: true
745
+ # loop_detection_window: 5 # Check last 5 tool calls for patterns
746
+
747
+ # ────────────────────────────────────────────────────────────────────────────────
748
+ # OBSERVABILITY (Monitoring & Debugging)
749
+ # ────────────────────────────────────────────────────────────────────────────────
750
+ # Production agents MUST have comprehensive observability
751
+ # ────────────────────────────────────────────────────────────────────────────────
752
+ observability:
753
+ # ──────────────────────────────────────────────────────────────────────────────
754
+ # DISTRIBUTED TRACING (OpenTelemetry)
755
+ # ──────────────────────────────────────────────────────────────────────────────
756
+ # Track agent execution flow through multiple services
757
+ # Compatible with Jaeger, Zipkin, DataDog, New Relic, etc.
758
+ # ──────────────────────────────────────────────────────────────────────────────
759
+ tracing:
760
+ enabled: true
761
+
762
+ # Exporter type
763
+ # • otlp: OpenTelemetry Protocol (standard, recommended)
764
+ # • jaeger: Jaeger-specific format
765
+ # • zipkin: Zipkin-specific format
766
+ exporter: otlp
767
+
768
+ # OTLP endpoint - where to send traces
769
+ # Use environment variable for flexibility across environments:
770
+ # • Dev: http://localhost:4317 (local collector)
771
+ # • Prod: https://otlp.company.com (managed service)
772
+ endpoint: ${OTEL_ENDPOINT:-http://localhost:4317}
773
+
774
+ # Optional: Sampling rate (0.0 to 1.0)
775
+ # In high-traffic environments, sample subset of traces
776
+ # sampling_rate: 0.1 # Sample 10% of requests
777
+
778
+ # Optional: Custom trace attributes
779
+ # attributes:
780
+ # service.version: 1.0.0
781
+ # deployment.environment: production
782
+
783
+ # ──────────────────────────────────────────────────────────────────────────────
784
+ # METRICS (Time Series Data)
785
+ # ──────────────────────────────────────────────────────────────────────────────
786
+ # Emit metrics for monitoring dashboards (Grafana, Datadog, etc.)
787
+ # ──────────────────────────────────────────────────────────────────────────────
788
+ metrics:
789
+ enabled: true
790
+
791
+ # Metrics to collect (automatic):
792
+ # • agent.requests.total (counter)
793
+ # • agent.requests.duration (histogram)
794
+ # • agent.tool.calls.total (counter)
795
+ # • agent.llm.tokens.total (counter)
796
+ # • agent.llm.cost.total (counter)
797
+ # • agent.safety.pii.detected (counter)
798
+ # • agent.safety.content.blocked (counter)
799
+ # • agent.rate_limit.exceeded (counter)
800
+
801
+ # Custom labels added to ALL metrics
802
+ # Use for filtering/grouping in dashboards
803
+ custom_labels:
804
+ service: secure-assistant
805
+ environment: production
806
+ region: us-east-1
807
+
808
+ # Optional: Metrics export interval
809
+ # export_interval_seconds: 60 # Default: 60
810
+
811
+ # ──────────────────────────────────────────────────────────────────────────────
812
+ # LOGGING (Structured Logs)
813
+ # ──────────────────────────────────────────────────────────────────────────────
814
+ # JSON-structured logs for searching/analysis (Elasticsearch, Splunk, etc.)
815
+ # ──────────────────────────────────────────────────────────────────────────────
816
+ logging:
817
+ # Log level
818
+ # debug: Verbose (tool inputs/outputs, reasoning steps)
819
+ # info: Standard (requests, responses, decisions)
820
+ # warn: Warnings (safety triggers, fallbacks)
821
+ # error: Errors only
822
+ level: info
823
+
824
+ # Include full prompts in logs
825
+ # WARNING: Prompts may contain PII - set to false for compliance
826
+ include_prompts: false
827
+
828
+ # Include full responses in logs
829
+ # WARNING: Responses may contain PII - set to false for compliance
830
+ include_responses: false
831
+
832
+ # What IS logged (always):
833
+ # • Request IDs, timestamps
834
+ # • Safety events (PII detected, content blocked)
835
+ # • Autonomy events (approval requested, granted/denied)
836
+ # • Performance metrics (latency, cost)
837
+ # • Error messages and stack traces
838
+
839
+ # Optional: Log retention
840
+ # retention_days: 90 # Keep logs for 90 days (compliance requirement)
841
+
842
+ # Optional: Structured log fields
843
+ # fields:
844
+ # user_id: ${USER_ID}
845
+ # session_id: ${SESSION_ID}
846
+
847
+ # ═══════════════════════════════════════════════════════════════════════════════════
848
+ # SUMMARY: PRODUCTION SAFETY CHECKLIST
849
+ # ═══════════════════════════════════════════════════════════════════════════════════
850
+ #
851
+ # Before deploying this agent to production, verify:
852
+ # ✓ PII detection enabled with action: redact
853
+ # ✓ Content filtering enabled for all relevant categories
854
+ # ✓ Rate limiting configured (prevents cost overruns and abuse)
855
+ # ✓ Guardrails prevent infinite loops (max_tool_calls, max_iteration_depth)
856
+ # ✓ Autonomy level appropriate for your risk tolerance
857
+ # ✓ Observability enabled (tracing, metrics, logging)
858
+ # ✓ Logging doesn't include PII (include_prompts: false)
859
+ # ✓ Fallback models configured (high availability)
860
+ # ✓ Cost tracking enabled with alerts
861
+ # ✓ Escalation policy defined (notify humans on issues)
862
+ #
863
+ # Next example (04-agent-with-messaging.ossa.yaml):
864
+ # → Multi-agent systems: pub/sub, commands, event-driven architecture
865
+ # → Learn how agents coordinate and communicate
866
+ # → Build agent swarms and pipelines
867
+ #
868
+ # ═══════════════════════════════════════════════════════════════════════════════════