@bluefly/openstandardagents 0.2.7 → 0.2.8

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 (277) hide show
  1. package/.devfile.yaml +1 -1
  2. package/.env.example +1 -1
  3. package/.version.json +2 -2
  4. package/.wiki-config.json +24 -0
  5. package/CHANGELOG.md +11 -18
  6. package/CODEOWNERS +75 -0
  7. package/CONTRIBUTING.md +1 -1
  8. package/README.md +171 -243
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/repositories/schema.repository.d.ts +6 -1
  14. package/dist/repositories/schema.repository.d.ts.map +1 -1
  15. package/dist/repositories/schema.repository.js +49 -27
  16. package/dist/repositories/schema.repository.js.map +1 -1
  17. package/dist/services/migration.service.d.ts +4 -3
  18. package/dist/services/migration.service.d.ts.map +1 -1
  19. package/dist/services/migration.service.js +11 -10
  20. package/dist/services/migration.service.js.map +1 -1
  21. package/dist/services/release-automation/release.service.js +1 -1
  22. package/dist/services/release-automation/release.service.js.map +1 -1
  23. package/dist/services/release-automation/schemas/release.schema.js +1 -1
  24. package/dist/services/runtime/claude/claude-adapter.js +1 -1
  25. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  26. package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
  27. package/dist/spec/v0.2.8/README.md +72 -0
  28. package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  29. package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  30. package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  31. package/{spec/v0.2.6-dev/ossa-0.2.5.schema.json → dist/spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  32. package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  33. package/dist/types/index.d.ts +3 -2
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/utils/index.d.ts +6 -0
  36. package/dist/utils/index.d.ts.map +1 -0
  37. package/dist/utils/index.js +6 -0
  38. package/dist/utils/index.js.map +1 -0
  39. package/dist/utils/version.d.ts +68 -0
  40. package/dist/utils/version.d.ts.map +1 -0
  41. package/dist/utils/version.js +156 -0
  42. package/dist/utils/version.js.map +1 -0
  43. package/eslint-report.json +1 -0
  44. package/examples/adk-integration/code-review-workflow.yml +1 -1
  45. package/examples/adk-integration/customer-support.yml +1 -1
  46. package/examples/adk-integration/data-pipeline.yml +1 -1
  47. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  48. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  49. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  50. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  51. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  52. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  53. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  54. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  55. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  56. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  57. package/examples/autogen/multi-agent.ossa.json +1 -1
  58. package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
  59. package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
  60. package/examples/common_npm/agent-router.ossa.yaml +1 -0
  61. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  62. package/examples/crewai/research-team.ossa.json +1 -1
  63. package/examples/cursor/code-review-agent.ossa.json +1 -1
  64. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
  65. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  66. package/examples/extensions/drupal-v1.yml +1 -1
  67. package/examples/extensions/kagent-v1.yml +1 -1
  68. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  69. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  70. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  71. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  72. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  73. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
  74. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  75. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  76. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  77. package/examples/langchain/chain-agent.ossa.json +1 -1
  78. package/examples/langflow/workflow-agent.ossa.json +1 -1
  79. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  80. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  81. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  82. package/examples/multi-agent/README.md +74 -0
  83. package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
  84. package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
  85. package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
  86. package/examples/openai/basic-agent.ossa.yaml +1 -1
  87. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  88. package/examples/openai/swarm-agent.ossa.json +1 -1
  89. package/examples/production/document-analyzer-openai.yml +1 -1
  90. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  91. package/examples/spec-examples/audit-agent.yml +1 -1
  92. package/examples/spec-examples/chat-agent.yml +1 -1
  93. package/examples/spec-examples/compliance-agent.yml +1 -1
  94. package/examples/spec-examples/monitoring-agent.yml +1 -1
  95. package/examples/spec-examples/workflow-agent.yml +1 -1
  96. package/examples/templates/ossa-compliance.yaml +1 -1
  97. package/examples/vercel/edge-agent.ossa.json +1 -1
  98. package/gl-code-quality-report.json +62 -0
  99. package/llms-ctx-full.txt +39 -0
  100. package/llms-ctx.txt +39 -0
  101. package/llms.txt +47 -0
  102. package/package.json +3 -2
  103. package/scripts/eslint-to-codequality.cjs +34 -0
  104. package/scripts/generate-llms-ctx.sh +17 -0
  105. package/scripts/generate-schema-docs.ts +31 -10
  106. package/scripts/sync-version.js +4 -12
  107. package/scripts/validate-schema.ts +2 -1
  108. package/spec/v0.2.8/CHANGELOG.md +401 -0
  109. package/spec/v0.2.8/README.md +72 -0
  110. package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  111. package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  112. package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  113. package/{dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json → spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  114. package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  115. package/test-results/junit.xml +299 -0
  116. package/bin/validate-ossa-0.2.5-RC.ts +0 -244
  117. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  118. package/scripts/lib/exec.ts +0 -37
  119. package/scripts/lib/file-ops.ts +0 -58
  120. package/scripts/lib/version.ts +0 -83
  121. package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  122. package/website/.lighthouserc.ts +0 -24
  123. package/website/.prettierrc +0 -10
  124. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
  125. package/website/Dockerfile +0 -30
  126. package/website/app/about/page.tsx +0 -304
  127. package/website/app/blog/[slug]/page.tsx +0 -208
  128. package/website/app/blog/page.tsx +0 -249
  129. package/website/app/design-guide/page.tsx +0 -511
  130. package/website/app/docs/[[...slug]]/page.tsx +0 -847
  131. package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
  132. package/website/app/ecosystem/page.tsx +0 -410
  133. package/website/app/examples/page.tsx +0 -133
  134. package/website/app/globals.scss +0 -370
  135. package/website/app/layout.tsx +0 -106
  136. package/website/app/license/page.tsx +0 -183
  137. package/website/app/not-found.tsx +0 -18
  138. package/website/app/page.tsx +0 -686
  139. package/website/app/page.tsx.bak +0 -679
  140. package/website/app/page.tsx.bak2 +0 -649
  141. package/website/app/playground/page.tsx +0 -487
  142. package/website/app/robots.ts +0 -19
  143. package/website/app/rss.xml/route.ts +0 -74
  144. package/website/app/schema/page.tsx +0 -1001
  145. package/website/app/sitemap.ts +0 -56
  146. package/website/app/specification/page.tsx +0 -287
  147. package/website/components/InstallCommand.tsx +0 -96
  148. package/website/components/Logo.tsx +0 -97
  149. package/website/components/StructuredData.tsx +0 -65
  150. package/website/components/docs/DocsSearch.tsx +0 -104
  151. package/website/components/docs/DocsSidebar.tsx +0 -155
  152. package/website/components/docs/MarkdownContent.tsx +0 -401
  153. package/website/components/docs/VersionSelector.tsx +0 -105
  154. package/website/components/examples/ExamplesViewer.tsx +0 -293
  155. package/website/components/layout/Footer.tsx +0 -116
  156. package/website/components/layout/Header.tsx +0 -172
  157. package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
  158. package/website/components/schema/SchemaExplorer.tsx +0 -213
  159. package/website/components/ui/Badge.tsx +0 -82
  160. package/website/components/ui/Button.tsx +0 -116
  161. package/website/components/ui/Card.tsx +0 -167
  162. package/website/components/ui/Checkbox.tsx +0 -141
  163. package/website/components/ui/Input.tsx +0 -169
  164. package/website/components/ui/Radio.tsx +0 -141
  165. package/website/components/ui/Select.tsx +0 -182
  166. package/website/components/ui/Tag.tsx +0 -158
  167. package/website/components/ui/Textarea.tsx +0 -195
  168. package/website/components/ui/index.ts +0 -11
  169. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
  170. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
  171. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
  172. package/website/content/blog/introducing-ossa-framework.md +0 -328
  173. package/website/content/blog/ossa-production-results.md +0 -279
  174. package/website/content/blog/welcome-to-ossa.md +0 -43
  175. package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
  176. package/website/content/docs/00-home.md +0 -153
  177. package/website/content/docs/adapters/openai-adapter.md +0 -693
  178. package/website/content/docs/agents/catalog.md +0 -28
  179. package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
  180. package/website/content/docs/api-reference/index.md +0 -38
  181. package/website/content/docs/api-reference/ossa-core-api.md +0 -634
  182. package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
  183. package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
  184. package/website/content/docs/architecture/execution-flow.md +0 -335
  185. package/website/content/docs/architecture/multi-agent-systems.md +0 -737
  186. package/website/content/docs/architecture/overview.md +0 -121
  187. package/website/content/docs/architecture/stack-integration.md +0 -461
  188. package/website/content/docs/changelog.md +0 -246
  189. package/website/content/docs/cli-reference/index.md +0 -111
  190. package/website/content/docs/cli-reference/ossa-agents.md +0 -70
  191. package/website/content/docs/cli-reference/ossa-export.md +0 -56
  192. package/website/content/docs/cli-reference/ossa-generate.md +0 -66
  193. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
  194. package/website/content/docs/cli-reference/ossa-import.md +0 -56
  195. package/website/content/docs/cli-reference/ossa-init.md +0 -57
  196. package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
  197. package/website/content/docs/cli-reference/ossa-run.md +0 -66
  198. package/website/content/docs/cli-reference/ossa-schema.md +0 -57
  199. package/website/content/docs/cli-reference/ossa-setup.md +0 -57
  200. package/website/content/docs/cli-reference/ossa-validate.md +0 -66
  201. package/website/content/docs/configuration/index.md +0 -97
  202. package/website/content/docs/contributing.md +0 -599
  203. package/website/content/docs/deployment/github-mirroring.md +0 -924
  204. package/website/content/docs/documentation.md +0 -100
  205. package/website/content/docs/ecosystem/framework-support.md +0 -1361
  206. package/website/content/docs/ecosystem/overview.md +0 -366
  207. package/website/content/docs/errors/index.md +0 -10
  208. package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
  209. package/website/content/docs/examples/catalog.md +0 -300
  210. package/website/content/docs/for-audiences/students-researchers.md +0 -122
  211. package/website/content/docs/getting-started/index.md +0 -92
  212. package/website/content/docs/getting-started/installation.md +0 -155
  213. package/website/content/docs/getting-started/running-agents.md +0 -309
  214. package/website/content/docs/getting-started.md +0 -91
  215. package/website/content/docs/integrations/aiflow.md +0 -104
  216. package/website/content/docs/integrations/drupal.md +0 -105
  217. package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
  218. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
  219. package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
  220. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
  221. package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
  222. package/website/content/docs/migration-guides/index.md +0 -133
  223. package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
  224. package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
  225. package/website/content/docs/migration-guides/migration-manifest.json +0 -64
  226. package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
  227. package/website/content/docs/openapi-extensions/examples.md +0 -550
  228. package/website/content/docs/openapi-extensions/index.md +0 -551
  229. package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
  230. package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
  231. package/website/content/docs/ossa-compliant-badge.md +0 -251
  232. package/website/content/docs/pre-release/index.md +0 -175
  233. package/website/content/docs/quick-reference.md +0 -17
  234. package/website/content/docs/readme.md +0 -35
  235. package/website/content/docs/releases/v0.2.6.md +0 -99
  236. package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
  237. package/website/content/docs/schema-reference/agent-id.md +0 -52
  238. package/website/content/docs/schema-reference/agent-name.md +0 -50
  239. package/website/content/docs/schema-reference/agent-role.md +0 -54
  240. package/website/content/docs/schema-reference/agent-spec.md +0 -406
  241. package/website/content/docs/schema-reference/agent-version.md +0 -50
  242. package/website/content/docs/schema-reference/autonomy.md +0 -568
  243. package/website/content/docs/schema-reference/constraints.md +0 -543
  244. package/website/content/docs/schema-reference/index.md +0 -45
  245. package/website/content/docs/schema-reference/llm-config.md +0 -445
  246. package/website/content/docs/schema-reference/observability.md +0 -654
  247. package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
  248. package/website/content/docs/schema-reference/taxonomy.md +0 -509
  249. package/website/content/docs/schema-reference/tools.md +0 -628
  250. package/website/content/docs/templates/blog-post.md +0 -43
  251. package/website/content/docs/types-reference/index.md +0 -105
  252. package/website/content/docs/use-cases/00-index.md +0 -395
  253. package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
  254. package/website/content/docs/use-cases/customer-support.md +0 -1234
  255. package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
  256. package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
  257. package/website/content/docs/versioning.md +0 -288
  258. package/website/dev.sh +0 -53
  259. package/website/docker-compose.dev.yml +0 -36
  260. package/website/lib/version.ts +0 -35
  261. package/website/lib/versions.json +0 -103
  262. package/website/next.config.ts +0 -18
  263. package/website/nginx.conf +0 -32
  264. package/website/package-lock.json +0 -9679
  265. package/website/package.json +0 -59
  266. package/website/postcss.config.mjs +0 -9
  267. package/website/scripts/fetch-versions.js +0 -166
  268. package/website/scripts/generate-examples-index.js +0 -163
  269. package/website/scripts/merge-docs-to-wiki.ts +0 -207
  270. package/website/scripts/sync-version.js +0 -72
  271. package/website/scripts/sync-wiki.ts +0 -322
  272. package/website/scripts/upload-wiki.ts +0 -199
  273. package/website/styles/_spacing.scss +0 -453
  274. package/website/styles/_tokens.scss +0 -245
  275. package/website/styles/_typography.scss +0 -361
  276. package/website/styles/_variables.scss +0 -287
  277. package/website/tailwind.config.ts +0 -170
@@ -0,0 +1,299 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuites name="jest tests" tests="128" failures="0" errors="0" time="6.683">
3
+ <testsuite name="GitHubSyncService" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.4" tests="2">
4
+ <testcase classname="GitHubSyncService" name="should validate config with Zod" time="0.004">
5
+ </testcase>
6
+ <testcase classname="GitHubSyncService" name="should reject invalid config" time="0.007">
7
+ </testcase>
8
+ </testsuite>
9
+ <testsuite name="CrewAIValidator" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.461" tests="8">
10
+ <testcase classname="CrewAIValidator" name="should validate valid CrewAI extension" time="0.005">
11
+ </testcase>
12
+ <testcase classname="CrewAIValidator" name="should reject missing role" time="0">
13
+ </testcase>
14
+ <testcase classname="CrewAIValidator" name="should reject missing goal" time="0">
15
+ </testcase>
16
+ <testcase classname="CrewAIValidator" name="should validate all agent types" time="0.001">
17
+ </testcase>
18
+ <testcase classname="CrewAIValidator" name="should reject invalid agent_type" time="0">
19
+ </testcase>
20
+ <testcase classname="CrewAIValidator" name="should validate max_iterations" time="0">
21
+ </testcase>
22
+ <testcase classname="CrewAIValidator" name="should reject invalid max_iterations" time="0">
23
+ </testcase>
24
+ <testcase classname="CrewAIValidator" name="should return warnings for missing backstory" time="0">
25
+ </testcase>
26
+ </testsuite>
27
+ <testsuite name="LangChainValidator" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.453" tests="8">
28
+ <testcase classname="LangChainValidator" name="should validate valid LangChain extension" time="0.002">
29
+ </testcase>
30
+ <testcase classname="LangChainValidator" name="should validate all chain types" time="0.001">
31
+ </testcase>
32
+ <testcase classname="LangChainValidator" name="should reject invalid chain_type" time="0">
33
+ </testcase>
34
+ <testcase classname="LangChainValidator" name="should validate memory types" time="0">
35
+ </testcase>
36
+ <testcase classname="LangChainValidator" name="should reject invalid memory type" time="0">
37
+ </testcase>
38
+ <testcase classname="LangChainValidator" name="should validate callbacks array" time="0.001">
39
+ </testcase>
40
+ <testcase classname="LangChainValidator" name="should reject invalid callbacks type" time="0">
41
+ </testcase>
42
+ <testcase classname="LangChainValidator" name="should return warnings for missing memory" time="0">
43
+ </testcase>
44
+ </testsuite>
45
+ <testsuite name="MigrationService" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.476" tests="9">
46
+ <testcase classname="MigrationService › migrate" name="should handle v0.2.2 format" time="0.003">
47
+ </testcase>
48
+ <testcase classname="MigrationService › migrate" name="should migrate v1.0 to v0.2.2 with full metadata" time="0.004">
49
+ </testcase>
50
+ <testcase classname="MigrationService › migrate" name="should handle v1.0 with auto provider" time="0">
51
+ </testcase>
52
+ <testcase classname="MigrationService › migrate" name="should handle v1.0 with monitoring instead of observability" time="0">
53
+ </testcase>
54
+ <testcase classname="MigrationService › migrate" name="should handle v1.0 with deployment config" time="0.001">
55
+ </testcase>
56
+ <testcase classname="MigrationService › migrate" name="should handle v1.0 with runtime config" time="0">
57
+ </testcase>
58
+ <testcase classname="MigrationService › migrate" name="should handle v1.0 without version" time="0">
59
+ </testcase>
60
+ <testcase classname="MigrationService › migrate" name="should handle existing v0.2.2 format with all fields" time="0">
61
+ </testcase>
62
+ <testcase classname="MigrationService › migrate" name="should throw for unsupported format" time="0.009">
63
+ </testcase>
64
+ </testsuite>
65
+ <testsuite name="Run Command" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.061" tests="15">
66
+ <testcase classname="Run Command › Validation" name="should validate manifest by default" time="0.001">
67
+ </testcase>
68
+ <testcase classname="Run Command › Validation" name="should exit with error code 1 when validation fails" time="0">
69
+ </testcase>
70
+ <testcase classname="Run Command › Validation" name="should skip validation when --no-validate is used" time="0">
71
+ </testcase>
72
+ <testcase classname="Run Command › Runtime Selection" name="should use openai runtime by default" time="0">
73
+ </testcase>
74
+ <testcase classname="Run Command › Runtime Selection" name="should exit with error for unsupported runtime" time="0.001">
75
+ </testcase>
76
+ <testcase classname="Run Command › API Key Validation" name="should exit with error when OPENAI_API_KEY is not set" time="0">
77
+ </testcase>
78
+ <testcase classname="Run Command › API Key Validation" name="should proceed when OPENAI_API_KEY is set" time="0">
79
+ </testcase>
80
+ <testcase classname="Run Command › Single Message Mode" name="should execute single message and exit" time="0">
81
+ </testcase>
82
+ <testcase classname="Run Command › Single Message Mode" name="should pass verbose option to chat" time="0">
83
+ </testcase>
84
+ <testcase classname="Run Command › Single Message Mode" name="should pass maxTurns option to chat" time="0">
85
+ </testcase>
86
+ <testcase classname="Run Command › Error Handling" name="should handle manifest loading errors" time="0">
87
+ </testcase>
88
+ <testcase classname="Run Command › Error Handling" name="should handle chat errors gracefully" time="0">
89
+ </testcase>
90
+ <testcase classname="Run Command › Error Handling" name="should show stack trace in verbose mode" time="0.001">
91
+ </testcase>
92
+ <testcase classname="Run Command › Agent Info Display" name="should display agent name and model" time="0">
93
+ </testcase>
94
+ <testcase classname="Run Command › Agent Info Display" name="should display available tools" time="0">
95
+ </testcase>
96
+ </testsuite>
97
+ <testsuite name="AutoGenValidator" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.095" tests="3">
98
+ <testcase classname="AutoGenValidator › validate" name="should validate manifest without autogen extension" time="0.001">
99
+ </testcase>
100
+ <testcase classname="AutoGenValidator › validate" name="should validate with disabled autogen" time="0.001">
101
+ </testcase>
102
+ <testcase classname="AutoGenValidator › validate" name="should validate with valid autogen config" time="0">
103
+ </testcase>
104
+ </testsuite>
105
+ <testsuite name="Platform Import Integration" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.667" tests="5">
106
+ <testcase classname="Platform Import Integration" name="should import from Cursor format" time="0.006">
107
+ </testcase>
108
+ <testcase classname="Platform Import Integration" name="should import from OpenAI format" time="0">
109
+ </testcase>
110
+ <testcase classname="Platform Import Integration" name="should import from CrewAI format" time="0">
111
+ </testcase>
112
+ <testcase classname="Platform Import Integration" name="should import from Anthropic format" time="0">
113
+ </testcase>
114
+ <testcase classname="Platform Import Integration" name="should handle missing optional fields" time="0.001">
115
+ </testcase>
116
+ </testsuite>
117
+ <testsuite name="Platform Export Integration" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.656" tests="6">
118
+ <testcase classname="Platform Export Integration" name="should export to Cursor format" time="0.005">
119
+ </testcase>
120
+ <testcase classname="Platform Export Integration" name="should export to OpenAI format" time="0">
121
+ </testcase>
122
+ <testcase classname="Platform Export Integration" name="should export to CrewAI format" time="0">
123
+ </testcase>
124
+ <testcase classname="Platform Export Integration" name="should export to Anthropic format" time="0.001">
125
+ </testcase>
126
+ <testcase classname="Platform Export Integration" name="should export to LangChain format" time="0">
127
+ </testcase>
128
+ <testcase classname="Platform Export Integration" name="should handle missing extensions gracefully" time="0">
129
+ </testcase>
130
+ </testsuite>
131
+ <testsuite name="GenerationService" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.097" tests="3">
132
+ <testcase classname="GenerationService › generate" name="should generate manifest from template" time="0.002">
133
+ </testcase>
134
+ <testcase classname="GenerationService › generate" name="should normalize agent ID" time="0.001">
135
+ </testcase>
136
+ <testcase classname="GenerationService › generate" name="should generate with capabilities" time="0">
137
+ </testcase>
138
+ </testsuite>
139
+ <testsuite name="ManifestRepository" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.158" tests="5">
140
+ <testcase classname="ManifestRepository › load" name="should load YAML manifest" time="0.006">
141
+ </testcase>
142
+ <testcase classname="ManifestRepository › load" name="should load JSON manifest" time="0.002">
143
+ </testcase>
144
+ <testcase classname="ManifestRepository › load" name="should throw for missing file" time="0.008">
145
+ </testcase>
146
+ <testcase classname="ManifestRepository › save" name="should save as YAML" time="0.004">
147
+ </testcase>
148
+ <testcase classname="ManifestRepository › save" name="should save as JSON" time="0">
149
+ </testcase>
150
+ </testsuite>
151
+ <testsuite name="OpenAIValidator" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.245" tests="6">
152
+ <testcase classname="OpenAIValidator" name="should validate valid OpenAI extension" time="0.001">
153
+ </testcase>
154
+ <testcase classname="OpenAIValidator" name="should reject invalid model" time="0">
155
+ </testcase>
156
+ <testcase classname="OpenAIValidator" name="should validate all valid models" time="0.005">
157
+ </testcase>
158
+ <testcase classname="OpenAIValidator" name="should reject invalid guardrails values" time="0">
159
+ </testcase>
160
+ <testcase classname="OpenAIValidator" name="should validate memory configuration" time="0">
161
+ </testcase>
162
+ <testcase classname="OpenAIValidator" name="should reject invalid memory type" time="0">
163
+ </testcase>
164
+ </testsuite>
165
+ <testsuite name="Schema Validation Integration" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.794" tests="4">
166
+ <testcase classname="Schema Validation Integration" name="should validate all example agents" time="0.114">
167
+ </testcase>
168
+ <testcase classname="Schema Validation Integration" name="should validate platform extensions" time="0.001">
169
+ </testcase>
170
+ <testcase classname="Schema Validation Integration" name="should catch platform-specific validation errors" time="0">
171
+ </testcase>
172
+ <testcase classname="Schema Validation Integration" name="should validate cross-platform compatibility" time="0.001">
173
+ </testcase>
174
+ </testsuite>
175
+ <testsuite name="SchemaRepository" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.097" tests="8">
176
+ <testcase classname="SchemaRepository › getAvailableVersions" name="should return array of versions" time="0.001">
177
+ </testcase>
178
+ <testcase classname="SchemaRepository › getAvailableVersions" name="should cache versions on subsequent calls" time="0">
179
+ </testcase>
180
+ <testcase classname="SchemaRepository › getCurrentVersion" name="should return current version" time="0">
181
+ </testcase>
182
+ <testcase classname="SchemaRepository › getSchema" name="should load schema for valid version" time="0.001">
183
+ </testcase>
184
+ <testcase classname="SchemaRepository › getSchema" name="should cache schema after first load" time="0">
185
+ </testcase>
186
+ <testcase classname="SchemaRepository › getSchema" name="should load different versions" time="0.001">
187
+ </testcase>
188
+ <testcase classname="SchemaRepository › getSchema" name="should throw for invalid version" time="0.009">
189
+ </testcase>
190
+ <testcase classname="SchemaRepository › clearCache" name="should clear cached schemas" time="0.001">
191
+ </testcase>
192
+ </testsuite>
193
+ <testsuite name="OpenAIAdapter" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.143" tests="5">
194
+ <testcase classname="OpenAIAdapter › initialize" name="should initialize without error" time="0.001">
195
+ </testcase>
196
+ <testcase classname="OpenAIAdapter › registerToolHandler" name="should register tool handler" time="0">
197
+ </testcase>
198
+ <testcase classname="OpenAIAdapter › registerToolHandler" name="should register multiple handlers" time="0">
199
+ </testcase>
200
+ <testcase classname="OpenAIAdapter › getAgentInfo" name="should return agent info" time="0">
201
+ </testcase>
202
+ <testcase classname="OpenAIAdapter › getAgentInfo" name="should return empty tools array when no tools configured" time="0">
203
+ </testcase>
204
+ </testsuite>
205
+ <testsuite name="All Examples Validation" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.794" tests="5">
206
+ <testcase classname="All Examples Validation › kAgent examples" name="should validate all kAgent examples" time="0.065">
207
+ </testcase>
208
+ <testcase classname="All Examples Validation › Generated manifests" name="should validate generated chat agent" time="0.03">
209
+ </testcase>
210
+ <testcase classname="All Examples Validation › Example directory structure" name="should have examples directory" time="0">
211
+ </testcase>
212
+ <testcase classname="All Examples Validation › Example directory structure" name="should have kagent examples" time="0">
213
+ </testcase>
214
+ <testcase classname="All Examples Validation › Example directory structure" name="should have kagent example files" time="0.001">
215
+ </testcase>
216
+ </testsuite>
217
+ <testsuite name="ValidationService" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="0.869" tests="8">
218
+ <testcase classname="ValidationService › validate" name="should validate valid manifest" time="0.1">
219
+ </testcase>
220
+ <testcase classname="ValidationService › validate" name="should reject invalid manifest" time="0.041">
221
+ </testcase>
222
+ <testcase classname="ValidationService › validate" name="should validate with specific version" time="0.036">
223
+ </testcase>
224
+ <testcase classname="ValidationService › validate" name="should use current version when not specified" time="0.029">
225
+ </testcase>
226
+ <testcase classname="ValidationService › validateMany" name="should validate multiple manifests" time="0.03">
227
+ </testcase>
228
+ <testcase classname="ValidationService › validateMany" name="should handle mixed valid and invalid manifests" time="0.028">
229
+ </testcase>
230
+ <testcase classname="ValidationService › validateMany" name="should handle empty array" time="0">
231
+ </testcase>
232
+ <testcase classname="ValidationService › validateMany" name="should use specified version" time="0.028">
233
+ </testcase>
234
+ </testsuite>
235
+ <testsuite name="ossa validate command" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="1.494" tests="4">
236
+ <testcase classname="ossa validate command" name="should validate a correct v1.0 manifest" time="0.514">
237
+ </testcase>
238
+ <testcase classname="ossa validate command" name="should report validation errors for invalid manifest" time="0.225">
239
+ </testcase>
240
+ <testcase classname="ossa validate command" name="should show verbose output when requested" time="0.217">
241
+ </testcase>
242
+ <testcase classname="ossa validate command" name="should show warnings for missing best practices" time="0.208">
243
+ </testcase>
244
+ </testsuite>
245
+ <testsuite name="ossa generate command" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="1.555" tests="6">
246
+ <testcase classname="ossa generate command" name="should generate a chat agent" time="0.386">
247
+ </testcase>
248
+ <testcase classname="ossa generate command" name="should generate workflow agent with correct capabilities" time="0.174">
249
+ </testcase>
250
+ <testcase classname="ossa generate command" name="should generate compliance agent with low temperature" time="0.153">
251
+ </testcase>
252
+ <testcase classname="ossa generate command" name="should use custom runtime type" time="0.158">
253
+ </testcase>
254
+ <testcase classname="ossa generate command" name="should normalize agent ID" time="0.156">
255
+ </testcase>
256
+ <testcase classname="ossa generate command" name="should create output directory if it does not exist" time="0.15">
257
+ </testcase>
258
+ </testsuite>
259
+ <testsuite name="Full Workflow E2E" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="2.36" tests="3">
260
+ <testcase classname="Full Workflow E2E" name="should complete workflow: generate → validate" time="0.654">
261
+ </testcase>
262
+ <testcase classname="Full Workflow E2E" name="should complete workflow: generate multiple → validate all" time="1.049">
263
+ </testcase>
264
+ <testcase classname="Full Workflow E2E" name="should handle full development cycle" time="0.329">
265
+ </testcase>
266
+ </testsuite>
267
+ <testsuite name="ossa run command" errors="0" failures="0" skipped="0" timestamp="2025-12-02T19:33:43" time="6.249" tests="15">
268
+ <testcase classname="ossa run command › Validation" name="should validate manifest before running" time="0.741">
269
+ </testcase>
270
+ <testcase classname="ossa run command › Validation" name="should skip validation with --no-validate flag" time="0.432">
271
+ </testcase>
272
+ <testcase classname="ossa run command › API Key Validation" name="should exit with error when OPENAI_API_KEY is not set" time="0.203">
273
+ </testcase>
274
+ <testcase classname="ossa run command › Runtime Selection" name="should use openai runtime by default" time="0.496">
275
+ </testcase>
276
+ <testcase classname="ossa run command › Runtime Selection" name="should reject unsupported runtime" time="0.193">
277
+ </testcase>
278
+ <testcase classname="ossa run command › Single Message Mode" name="should accept -m flag for single message" time="0.458">
279
+ </testcase>
280
+ <testcase classname="ossa run command › Single Message Mode" name="should accept --message flag for single message" time="0.557">
281
+ </testcase>
282
+ <testcase classname="ossa run command › Verbose Mode" name="should accept -v flag for verbose output" time="0.573">
283
+ </testcase>
284
+ <testcase classname="ossa run command › Verbose Mode" name="should accept --verbose flag" time="0.474">
285
+ </testcase>
286
+ <testcase classname="ossa run command › Max Turns Option" name="should accept --max-turns flag" time="0.464">
287
+ </testcase>
288
+ <testcase classname="ossa run command › Error Handling" name="should handle missing manifest file" time="0.176">
289
+ </testcase>
290
+ <testcase classname="ossa run command › Error Handling" name="should handle invalid YAML" time="0.15">
291
+ </testcase>
292
+ <testcase classname="ossa run command › Error Handling" name="should handle invalid JSON" time="0.135">
293
+ </testcase>
294
+ <testcase classname="ossa run command › Agent Info Display" name="should display agent name when loading" time="0.46">
295
+ </testcase>
296
+ <testcase classname="ossa run command › Example Manifests" name="should run with example OpenAI agent" time="0.417">
297
+ </testcase>
298
+ </testsuite>
299
+ </testsuites>
@@ -1,244 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * OSSA 0.2.5-RC Validation Tool
4
- * Validates power-suite modules' ossa.yaml files against OSSA 0.2.5-RC schema
5
- */
6
-
7
- import { readFileSync } from 'fs';
8
- import { resolve, dirname } from 'path';
9
- import { fileURLToPath } from 'url';
10
- import { parse as parseYaml } from 'yaml';
11
- import Ajv from 'ajv';
12
- import addFormats from 'ajv-formats';
13
- import chalk from 'chalk';
14
-
15
- // ES module __dirname equivalent
16
- const __filename = fileURLToPath(import.meta.url);
17
- const __dirname = dirname(__filename);
18
-
19
- // Load OSSA 0.2.5-RC schema
20
- const schemaPath = resolve(__dirname, '../spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json');
21
- const schema = JSON.parse(readFileSync(schemaPath, 'utf-8'));
22
-
23
- // Initialize AJV validator
24
- const ajv = new Ajv({
25
- allErrors: true,
26
- strict: false,
27
- validateFormats: true,
28
- verbose: true,
29
- });
30
-
31
- addFormats(ajv);
32
-
33
- // Note: The power-suite ossa.yaml files use a different format (project config)
34
- // than full agent manifests. This validator checks for OSSA 0.2.5-RC compliance
35
- // in the project configuration format.
36
-
37
- interface PowerSuiteOssaConfig {
38
- ossa?: {
39
- version: string;
40
- project?: {
41
- name: string;
42
- type: string;
43
- version: string;
44
- description: string;
45
- };
46
- metadata?: {
47
- reasoning?: boolean;
48
- compliance?: {
49
- frameworks?: string[];
50
- };
51
- };
52
- ecosystem?: {
53
- mesh_enabled?: boolean;
54
- protocol_enabled?: boolean;
55
- router_enabled?: boolean;
56
- tracer_enabled?: boolean;
57
- brain_enabled?: boolean;
58
- flows_enabled?: boolean;
59
- [key: string]: unknown;
60
- };
61
- [key: string]: unknown;
62
- };
63
- }
64
-
65
- /**
66
- * Validate OSSA 0.2.5-RC configuration format
67
- */
68
- function validatePowerSuiteConfig(config: PowerSuiteOssaConfig): {
69
- valid: boolean;
70
- errors: string[];
71
- warnings: string[];
72
- } {
73
- const errors: string[] = [];
74
- const warnings: string[] = [];
75
-
76
- if (!config.ossa) {
77
- errors.push('Missing top-level "ossa" key');
78
- return { valid: false, errors, warnings };
79
- }
80
-
81
- const { ossa } = config;
82
-
83
- // Check version
84
- if (!ossa.version) {
85
- errors.push('Missing ossa.version');
86
- } else if (!ossa.version.startsWith('0.2.5')) {
87
- errors.push(
88
- `Invalid ossa.version: expected "0.2.5" or "0.2.5-RC" or "0.2.5.x", got "${ossa.version}"`
89
- );
90
- }
91
-
92
- // Check project
93
- if (!ossa.project) {
94
- warnings.push('Missing ossa.project (recommended for identification)');
95
- } else {
96
- if (!ossa.project.name) {
97
- errors.push('Missing ossa.project.name');
98
- }
99
- if (!ossa.project.type) {
100
- warnings.push('Missing ossa.project.type');
101
- }
102
- }
103
-
104
- // Check metadata (OSSA 0.2.5-RC requirement)
105
- if (!ossa.metadata) {
106
- warnings.push(
107
- 'Missing ossa.metadata (OSSA 0.2.5-RC recommends metadata.reasoning)'
108
- );
109
- } else {
110
- if (ossa.metadata.reasoning === undefined) {
111
- warnings.push(
112
- 'OSSA 0.2.5-RC recommends metadata.reasoning: true for AI agents'
113
- );
114
- }
115
- if (!ossa.metadata.compliance?.frameworks) {
116
- warnings.push(
117
- 'OSSA 0.2.5-RC recommends metadata.compliance.frameworks array'
118
- );
119
- }
120
- }
121
-
122
- // Check ecosystem (power-suite integration)
123
- if (!ossa.ecosystem) {
124
- warnings.push(
125
- 'Missing ossa.ecosystem (power-suite integration configuration)'
126
- );
127
- } else {
128
- const ecosystem = ossa.ecosystem;
129
- const requiredModules = [
130
- 'mesh_enabled',
131
- 'protocol_enabled',
132
- 'router_enabled',
133
- 'tracer_enabled',
134
- 'brain_enabled',
135
- 'flows_enabled',
136
- ];
137
-
138
- for (const module of requiredModules) {
139
- if (ecosystem[module] === undefined) {
140
- warnings.push(
141
- `Consider setting ossa.ecosystem.${module} for power-suite integration`
142
- );
143
- }
144
- }
145
- }
146
-
147
- // Check compliance standards array
148
- if (ossa.compliance?.standards) {
149
- const standards = Array.isArray(ossa.compliance.standards)
150
- ? ossa.compliance.standards
151
- : Object.values(ossa.compliance.standards);
152
-
153
- if (!standards.includes('OSSA-0.2.5-RC') && !standards.includes('OSSA-0.2.5')) {
154
- errors.push(
155
- 'compliance.standards must include "OSSA-0.2.5-RC" or "OSSA-0.2.5" for v0.2.5-RC compliance'
156
- );
157
- }
158
- }
159
-
160
- return {
161
- valid: errors.length === 0,
162
- errors,
163
- warnings,
164
- };
165
- }
166
-
167
- /**
168
- * Validate a single ossa.yaml file
169
- */
170
- function validateFile(filePath: string): boolean {
171
- try {
172
- const content = readFileSync(filePath, 'utf-8');
173
- const config = parseYaml(content) as PowerSuiteOssaConfig;
174
-
175
- console.log(chalk.blue(`\nValidating: ${filePath}`));
176
- console.log(chalk.gray('─'.repeat(80)));
177
-
178
- const result = validatePowerSuiteConfig(config);
179
-
180
- if (result.valid) {
181
- console.log(chalk.green('✓ Valid OSSA 0.2.5-RC configuration'));
182
- } else {
183
- console.log(chalk.red('✗ Invalid OSSA 0.2.5-RC configuration'));
184
- result.errors.forEach((error) => {
185
- console.log(chalk.red(` ERROR: ${error}`));
186
- });
187
- }
188
-
189
- if (result.warnings.length > 0) {
190
- result.warnings.forEach((warning) => {
191
- console.log(chalk.yellow(` WARNING: ${warning}`));
192
- });
193
- }
194
-
195
- return result.valid;
196
- } catch (error) {
197
- console.error(chalk.red(`Failed to validate ${filePath}:`));
198
- console.error(error);
199
- return false;
200
- }
201
- }
202
-
203
- /**
204
- * Main validation function
205
- */
206
- function main() {
207
- const args = process.argv.slice(2);
208
-
209
- if (args.length === 0) {
210
- console.log(chalk.blue('OSSA 0.2.5-RC Power-Suite Validation Tool\n'));
211
- console.log('Usage:');
212
- console.log(' validate-ossa-0.2.5-RC.ts <file1.yaml> [file2.yaml] ...\n');
213
- console.log('Or validate all power-suite modules:');
214
- console.log(
215
- ' find ../common_npm -name "ossa.yaml" -o -path "*/config/ossa.yaml" | xargs validate-ossa-0.2.5-RC.ts'
216
- );
217
- process.exit(1);
218
- }
219
-
220
- let allValid = true;
221
- for (const filePath of args) {
222
- const valid = validateFile(resolve(filePath));
223
- if (!valid) {
224
- allValid = false;
225
- }
226
- }
227
-
228
- console.log(chalk.gray('\n' + '─'.repeat(80)));
229
- if (allValid) {
230
- console.log(chalk.green('\n✓ All files are OSSA 0.2.5-RC compliant'));
231
- process.exit(0);
232
- } else {
233
- console.log(chalk.red('\n✗ Some files failed validation'));
234
- process.exit(1);
235
- }
236
- }
237
-
238
- // Run if executed directly
239
- if (import.meta.url === `file://${process.argv[1]}`) {
240
- main();
241
- }
242
-
243
- export { validatePowerSuiteConfig, validateFile };
244
-