@bluefly/openstandardagents 0.2.7 → 0.2.9
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.
- package/.devfile.yaml +1 -1
- package/.env.example +1 -1
- package/.github/AGENTS.md +245 -0
- package/.github/agents/github-issue-triage.ossa.yaml +99 -0
- package/.github/agents/github-pr-triage.ossa.yaml +137 -0
- package/.github/workflows/issue-sync-to-gitlab.yml +138 -0
- package/.github/workflows/pr-triage-to-gitlab.yml +164 -0
- package/.version.json +2 -2
- package/.wiki-config.json +24 -0
- package/CHANGELOG.md +44 -18
- package/CODEOWNERS +75 -0
- package/CONTRIBUTING.md +103 -4
- package/README.md +178 -243
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/repositories/schema.repository.d.ts +6 -1
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +49 -27
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/migration.service.d.ts +4 -3
- package/dist/services/migration.service.d.ts.map +1 -1
- package/dist/services/migration.service.js +11 -10
- package/dist/services/migration.service.js.map +1 -1
- package/dist/services/release-automation/release.service.js +1 -1
- package/dist/services/release-automation/release.service.js.map +1 -1
- package/dist/services/release-automation/schemas/release.schema.js +1 -1
- package/dist/services/release-automation/webhook.service.js +3 -3
- package/dist/services/release-automation/webhook.service.js.map +1 -1
- package/dist/services/runtime/claude/claude-adapter.d.ts +1 -1
- package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
- package/dist/services/runtime/claude/claude-adapter.js +2 -2
- package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
- package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.8/README.md +72 -0
- package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
- 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
- package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
- package/dist/spec/v0.2.9/a2a-protocol.md +1337 -0
- package/dist/spec/v0.2.9/agent.md +1946 -0
- package/dist/spec/v0.2.9/capabilities/index.yaml +25 -0
- package/dist/spec/v0.2.9/capabilities/memory.yaml +251 -0
- package/dist/spec/v0.2.9/capability-schema.md +576 -0
- package/dist/spec/v0.2.9/compliance-profiles.md +533 -0
- package/dist/spec/v0.2.9/conformance-testing.md +1527 -0
- package/dist/spec/v0.2.9/gitlab-duo-integration.md +621 -0
- package/dist/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
- package/dist/spec/v0.2.9/runtime-semantics.md +464 -0
- package/dist/spec/v0.2.9/security-model.md +1245 -0
- package/dist/spec/v0.2.9/semantic-conventions.md +347 -0
- package/dist/spec/v0.2.9/types.ts +522 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/policy.d.ts +377 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/policy.js +84 -0
- package/dist/types/policy.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/version.d.ts +68 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +156 -0
- package/dist/utils/version.js.map +1 -0
- package/docs/specs/policy-dsl.md +925 -0
- package/eslint-report.json +1 -0
- package/examples/adk-integration/code-review-workflow.yml +1 -1
- package/examples/adk-integration/customer-support.yml +1 -1
- package/examples/adk-integration/data-pipeline.yml +1 -1
- package/examples/advanced/reasoning-agent.yaml +136 -0
- package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
- package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
- package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
- package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
- package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
- package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
- package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
- package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
- package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
- package/examples/agents-md/code-agent.ossa.json +100 -0
- package/examples/agents-md/monorepo-agent.ossa.yaml +180 -0
- package/examples/anthropic/claude-assistant.ossa.json +1 -1
- package/examples/autogen/multi-agent.ossa.json +1 -1
- package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
- package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
- package/examples/common_npm/agent-router.ossa.yaml +1 -0
- package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
- package/examples/crewai/research-team.ossa.json +1 -1
- package/examples/cursor/code-review-agent.ossa.json +1 -1
- package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
- package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
- package/examples/extensions/agents-md-v1.yml +175 -0
- package/examples/extensions/drupal-v1.yml +1 -1
- package/examples/extensions/kagent-v1.yml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
- package/examples/kagent/compliance-validator.ossa.yaml +1 -1
- package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
- package/examples/kagent/documentation-agent.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
- package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
- package/examples/kagent/security-scanner.ossa.yaml +1 -1
- package/examples/langchain/chain-agent.ossa.json +1 -1
- package/examples/langflow/workflow-agent.ossa.json +1 -1
- package/examples/langgraph/state-machine-agent.ossa.json +1 -1
- package/examples/llamaindex/rag-agent.ossa.json +1 -1
- package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
- package/examples/multi-agent/README.md +74 -0
- package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
- package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
- package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
- package/examples/openai/basic-agent.ossa.yaml +1 -1
- package/examples/openai/multi-tool-agent.ossa.json +1 -1
- package/examples/openai/swarm-agent.ossa.json +1 -1
- package/examples/production/document-analyzer-openai.yml +1 -1
- package/examples/quickstart/support-agent.ossa.yaml +1 -1
- package/examples/spec-examples/audit-agent.yml +1 -1
- package/examples/spec-examples/chat-agent.yml +1 -1
- package/examples/spec-examples/compliance-agent.yml +1 -1
- package/examples/spec-examples/monitoring-agent.yml +1 -1
- package/examples/spec-examples/workflow-agent.yml +1 -1
- package/examples/templates/ossa-compliance.yaml +1 -1
- package/examples/vercel/edge-agent.ossa.json +1 -1
- package/gl-code-quality-report.json +62 -0
- package/llms-ctx-full.txt +39 -0
- package/llms-ctx.txt +39 -0
- package/llms.txt +47 -0
- package/package.json +6 -3
- package/scripts/README.md +25 -0
- package/scripts/compliance-audit.ts +796 -0
- package/scripts/eslint-to-codequality.cjs +34 -0
- package/scripts/generate-agents-catalog.ts +2 -1
- package/scripts/generate-api-docs.ts +2 -1
- package/scripts/generate-examples-docs.ts +2 -1
- package/scripts/generate-llms-ctx.sh +17 -0
- package/scripts/generate-schema-docs.ts +31 -10
- package/scripts/sync-version.js +4 -12
- package/scripts/validate-schema.ts +2 -1
- package/spec/v0.2.8/CHANGELOG.md +401 -0
- package/spec/v0.2.8/README.md +72 -0
- package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
- package/spec/{v0.2.6-dev/ossa-0.2.6-dev.schema.json → v0.2.8/ossa-0.2.8.schema.json} +1509 -52
- package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
- package/spec/v0.2.9/a2a-protocol.md +1337 -0
- package/spec/v0.2.9/agent.md +1946 -0
- package/spec/v0.2.9/capabilities/index.yaml +25 -0
- package/spec/v0.2.9/capabilities/memory.yaml +251 -0
- package/spec/v0.2.9/capability-schema.md +576 -0
- package/spec/v0.2.9/compliance-profiles.md +533 -0
- package/spec/v0.2.9/conformance-testing.md +1527 -0
- package/spec/v0.2.9/gitlab-duo-integration.md +621 -0
- package/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
- package/spec/v0.2.9/runtime-semantics.md +464 -0
- package/spec/v0.2.9/security-model.md +1245 -0
- package/spec/v0.2.9/semantic-conventions.md +347 -0
- package/spec/v0.2.9/types.ts +522 -0
- package/test-results/junit.xml +337 -0
- package/.github/workflows/pr-comment.yml +0 -33
- package/bin/validate-ossa-0.2.5-RC.ts +0 -244
- package/dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json +0 -1696
- package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
- package/scripts/lib/exec.ts +0 -37
- package/scripts/lib/file-ops.ts +0 -58
- package/scripts/lib/version.ts +0 -83
- package/website/.lighthouserc.ts +0 -24
- package/website/.prettierrc +0 -10
- package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
- package/website/Dockerfile +0 -30
- package/website/app/about/page.tsx +0 -304
- package/website/app/blog/[slug]/page.tsx +0 -208
- package/website/app/blog/page.tsx +0 -249
- package/website/app/design-guide/page.tsx +0 -511
- package/website/app/docs/[[...slug]]/page.tsx +0 -847
- package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
- package/website/app/ecosystem/page.tsx +0 -410
- package/website/app/examples/page.tsx +0 -133
- package/website/app/globals.scss +0 -370
- package/website/app/layout.tsx +0 -106
- package/website/app/license/page.tsx +0 -183
- package/website/app/not-found.tsx +0 -18
- package/website/app/page.tsx +0 -686
- package/website/app/page.tsx.bak +0 -679
- package/website/app/page.tsx.bak2 +0 -649
- package/website/app/playground/page.tsx +0 -487
- package/website/app/robots.ts +0 -19
- package/website/app/rss.xml/route.ts +0 -74
- package/website/app/schema/page.tsx +0 -1001
- package/website/app/sitemap.ts +0 -56
- package/website/app/specification/page.tsx +0 -287
- package/website/components/InstallCommand.tsx +0 -96
- package/website/components/Logo.tsx +0 -97
- package/website/components/StructuredData.tsx +0 -65
- package/website/components/docs/DocsSearch.tsx +0 -104
- package/website/components/docs/DocsSidebar.tsx +0 -155
- package/website/components/docs/MarkdownContent.tsx +0 -401
- package/website/components/docs/VersionSelector.tsx +0 -105
- package/website/components/examples/ExamplesViewer.tsx +0 -293
- package/website/components/layout/Footer.tsx +0 -116
- package/website/components/layout/Header.tsx +0 -172
- package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
- package/website/components/schema/SchemaExplorer.tsx +0 -213
- package/website/components/ui/Badge.tsx +0 -82
- package/website/components/ui/Button.tsx +0 -116
- package/website/components/ui/Card.tsx +0 -167
- package/website/components/ui/Checkbox.tsx +0 -141
- package/website/components/ui/Input.tsx +0 -169
- package/website/components/ui/Radio.tsx +0 -141
- package/website/components/ui/Select.tsx +0 -182
- package/website/components/ui/Tag.tsx +0 -158
- package/website/components/ui/Textarea.tsx +0 -195
- package/website/components/ui/index.ts +0 -11
- package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
- package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
- package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
- package/website/content/blog/introducing-ossa-framework.md +0 -328
- package/website/content/blog/ossa-production-results.md +0 -279
- package/website/content/blog/welcome-to-ossa.md +0 -43
- package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
- package/website/content/docs/00-home.md +0 -153
- package/website/content/docs/adapters/openai-adapter.md +0 -693
- package/website/content/docs/agents/catalog.md +0 -28
- package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
- package/website/content/docs/api-reference/index.md +0 -38
- package/website/content/docs/api-reference/ossa-core-api.md +0 -634
- package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
- package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
- package/website/content/docs/architecture/execution-flow.md +0 -335
- package/website/content/docs/architecture/multi-agent-systems.md +0 -737
- package/website/content/docs/architecture/overview.md +0 -121
- package/website/content/docs/architecture/stack-integration.md +0 -461
- package/website/content/docs/changelog.md +0 -246
- package/website/content/docs/cli-reference/index.md +0 -111
- package/website/content/docs/cli-reference/ossa-agents.md +0 -70
- package/website/content/docs/cli-reference/ossa-export.md +0 -56
- package/website/content/docs/cli-reference/ossa-generate.md +0 -66
- package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
- package/website/content/docs/cli-reference/ossa-import.md +0 -56
- package/website/content/docs/cli-reference/ossa-init.md +0 -57
- package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
- package/website/content/docs/cli-reference/ossa-run.md +0 -66
- package/website/content/docs/cli-reference/ossa-schema.md +0 -57
- package/website/content/docs/cli-reference/ossa-setup.md +0 -57
- package/website/content/docs/cli-reference/ossa-validate.md +0 -66
- package/website/content/docs/configuration/index.md +0 -97
- package/website/content/docs/contributing.md +0 -599
- package/website/content/docs/deployment/github-mirroring.md +0 -924
- package/website/content/docs/documentation.md +0 -100
- package/website/content/docs/ecosystem/framework-support.md +0 -1361
- package/website/content/docs/ecosystem/overview.md +0 -366
- package/website/content/docs/errors/index.md +0 -10
- package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
- package/website/content/docs/examples/catalog.md +0 -300
- package/website/content/docs/for-audiences/students-researchers.md +0 -122
- package/website/content/docs/getting-started/index.md +0 -92
- package/website/content/docs/getting-started/installation.md +0 -155
- package/website/content/docs/getting-started/running-agents.md +0 -309
- package/website/content/docs/getting-started.md +0 -91
- package/website/content/docs/integrations/aiflow.md +0 -104
- package/website/content/docs/integrations/drupal.md +0 -105
- package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
- package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
- package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
- package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
- package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
- package/website/content/docs/migration-guides/index.md +0 -133
- package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
- package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
- package/website/content/docs/migration-guides/migration-manifest.json +0 -64
- package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
- package/website/content/docs/openapi-extensions/examples.md +0 -550
- package/website/content/docs/openapi-extensions/index.md +0 -551
- package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
- package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
- package/website/content/docs/ossa-compliant-badge.md +0 -251
- package/website/content/docs/pre-release/index.md +0 -175
- package/website/content/docs/quick-reference.md +0 -17
- package/website/content/docs/readme.md +0 -35
- package/website/content/docs/releases/v0.2.6.md +0 -99
- package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
- package/website/content/docs/schema-reference/agent-id.md +0 -52
- package/website/content/docs/schema-reference/agent-name.md +0 -50
- package/website/content/docs/schema-reference/agent-role.md +0 -54
- package/website/content/docs/schema-reference/agent-spec.md +0 -406
- package/website/content/docs/schema-reference/agent-version.md +0 -50
- package/website/content/docs/schema-reference/autonomy.md +0 -568
- package/website/content/docs/schema-reference/constraints.md +0 -543
- package/website/content/docs/schema-reference/index.md +0 -45
- package/website/content/docs/schema-reference/llm-config.md +0 -445
- package/website/content/docs/schema-reference/observability.md +0 -654
- package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
- package/website/content/docs/schema-reference/taxonomy.md +0 -509
- package/website/content/docs/schema-reference/tools.md +0 -628
- package/website/content/docs/templates/blog-post.md +0 -43
- package/website/content/docs/types-reference/index.md +0 -105
- package/website/content/docs/use-cases/00-index.md +0 -395
- package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
- package/website/content/docs/use-cases/customer-support.md +0 -1234
- package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
- package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
- package/website/content/docs/versioning.md +0 -288
- package/website/dev.sh +0 -53
- package/website/docker-compose.dev.yml +0 -36
- package/website/lib/version.ts +0 -35
- package/website/lib/versions.json +0 -103
- package/website/next.config.ts +0 -18
- package/website/nginx.conf +0 -32
- package/website/package-lock.json +0 -9679
- package/website/package.json +0 -59
- package/website/postcss.config.mjs +0 -9
- package/website/scripts/fetch-versions.js +0 -166
- package/website/scripts/generate-examples-index.js +0 -163
- package/website/scripts/merge-docs-to-wiki.ts +0 -207
- package/website/scripts/sync-version.js +0 -72
- package/website/scripts/sync-wiki.ts +0 -322
- package/website/scripts/upload-wiki.ts +0 -199
- package/website/styles/_spacing.scss +0 -453
- package/website/styles/_tokens.scss +0 -245
- package/website/styles/_typography.scss +0 -361
- package/website/styles/_variables.scss +0 -287
- package/website/tailwind.config.ts +0 -170
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<testsuites name="jest tests" tests="145" failures="0" errors="0" time="8.295">
|
|
3
|
+
<testsuite name="CrewAIValidator" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.487" tests="8">
|
|
4
|
+
<testcase classname="CrewAIValidator" name="should validate valid CrewAI extension" time="0.008">
|
|
5
|
+
</testcase>
|
|
6
|
+
<testcase classname="CrewAIValidator" name="should reject missing role" time="0">
|
|
7
|
+
</testcase>
|
|
8
|
+
<testcase classname="CrewAIValidator" name="should reject missing goal" time="0">
|
|
9
|
+
</testcase>
|
|
10
|
+
<testcase classname="CrewAIValidator" name="should validate all agent types" time="0">
|
|
11
|
+
</testcase>
|
|
12
|
+
<testcase classname="CrewAIValidator" name="should reject invalid agent_type" time="0.001">
|
|
13
|
+
</testcase>
|
|
14
|
+
<testcase classname="CrewAIValidator" name="should validate max_iterations" time="0">
|
|
15
|
+
</testcase>
|
|
16
|
+
<testcase classname="CrewAIValidator" name="should reject invalid max_iterations" time="0">
|
|
17
|
+
</testcase>
|
|
18
|
+
<testcase classname="CrewAIValidator" name="should return warnings for missing backstory" time="0">
|
|
19
|
+
</testcase>
|
|
20
|
+
</testsuite>
|
|
21
|
+
<testsuite name="MigrationService" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.48" tests="9">
|
|
22
|
+
<testcase classname="MigrationService › migrate" name="should handle v0.2.2 format" time="0.004">
|
|
23
|
+
</testcase>
|
|
24
|
+
<testcase classname="MigrationService › migrate" name="should migrate v1.0 to v0.2.2 with full metadata" time="0.003">
|
|
25
|
+
</testcase>
|
|
26
|
+
<testcase classname="MigrationService › migrate" name="should handle v1.0 with auto provider" time="0">
|
|
27
|
+
</testcase>
|
|
28
|
+
<testcase classname="MigrationService › migrate" name="should handle v1.0 with monitoring instead of observability" time="0.001">
|
|
29
|
+
</testcase>
|
|
30
|
+
<testcase classname="MigrationService › migrate" name="should handle v1.0 with deployment config" time="0.001">
|
|
31
|
+
</testcase>
|
|
32
|
+
<testcase classname="MigrationService › migrate" name="should handle v1.0 with runtime config" time="0">
|
|
33
|
+
</testcase>
|
|
34
|
+
<testcase classname="MigrationService › migrate" name="should handle v1.0 without version" time="0">
|
|
35
|
+
</testcase>
|
|
36
|
+
<testcase classname="MigrationService › migrate" name="should handle existing v0.2.2 format with all fields" time="0">
|
|
37
|
+
</testcase>
|
|
38
|
+
<testcase classname="MigrationService › migrate" name="should throw for unsupported format" time="0.01">
|
|
39
|
+
</testcase>
|
|
40
|
+
</testsuite>
|
|
41
|
+
<testsuite name="ManifestRepository" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.509" tests="5">
|
|
42
|
+
<testcase classname="ManifestRepository › load" name="should load YAML manifest" time="0.01">
|
|
43
|
+
</testcase>
|
|
44
|
+
<testcase classname="ManifestRepository › load" name="should load JSON manifest" time="0.003">
|
|
45
|
+
</testcase>
|
|
46
|
+
<testcase classname="ManifestRepository › load" name="should throw for missing file" time="0.007">
|
|
47
|
+
</testcase>
|
|
48
|
+
<testcase classname="ManifestRepository › save" name="should save as YAML" time="0.003">
|
|
49
|
+
</testcase>
|
|
50
|
+
<testcase classname="ManifestRepository › save" name="should save as JSON" time="0.001">
|
|
51
|
+
</testcase>
|
|
52
|
+
</testsuite>
|
|
53
|
+
<testsuite name="Platform Export Integration" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.591" tests="6">
|
|
54
|
+
<testcase classname="Platform Export Integration" name="should export to Cursor format" time="0.005">
|
|
55
|
+
</testcase>
|
|
56
|
+
<testcase classname="Platform Export Integration" name="should export to OpenAI format" time="0">
|
|
57
|
+
</testcase>
|
|
58
|
+
<testcase classname="Platform Export Integration" name="should export to CrewAI format" time="0">
|
|
59
|
+
</testcase>
|
|
60
|
+
<testcase classname="Platform Export Integration" name="should export to Anthropic format" time="0.001">
|
|
61
|
+
</testcase>
|
|
62
|
+
<testcase classname="Platform Export Integration" name="should export to LangChain format" time="0">
|
|
63
|
+
</testcase>
|
|
64
|
+
<testcase classname="Platform Export Integration" name="should handle missing extensions gracefully" time="0">
|
|
65
|
+
</testcase>
|
|
66
|
+
</testsuite>
|
|
67
|
+
<testsuite name="Platform Import Integration" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.617" tests="5">
|
|
68
|
+
<testcase classname="Platform Import Integration" name="should import from Cursor format" time="0.015">
|
|
69
|
+
</testcase>
|
|
70
|
+
<testcase classname="Platform Import Integration" name="should import from OpenAI format" time="0">
|
|
71
|
+
</testcase>
|
|
72
|
+
<testcase classname="Platform Import Integration" name="should import from CrewAI format" time="0">
|
|
73
|
+
</testcase>
|
|
74
|
+
<testcase classname="Platform Import Integration" name="should import from Anthropic format" time="0.001">
|
|
75
|
+
</testcase>
|
|
76
|
+
<testcase classname="Platform Import Integration" name="should handle missing optional fields" time="0">
|
|
77
|
+
</testcase>
|
|
78
|
+
</testsuite>
|
|
79
|
+
<testsuite name="GenerationService" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.116" tests="3">
|
|
80
|
+
<testcase classname="GenerationService › generate" name="should generate manifest from template" time="0.001">
|
|
81
|
+
</testcase>
|
|
82
|
+
<testcase classname="GenerationService › generate" name="should normalize agent ID" time="0">
|
|
83
|
+
</testcase>
|
|
84
|
+
<testcase classname="GenerationService › generate" name="should generate with capabilities" time="0">
|
|
85
|
+
</testcase>
|
|
86
|
+
</testsuite>
|
|
87
|
+
<testsuite name="All Examples Validation" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.718" tests="5">
|
|
88
|
+
<testcase classname="All Examples Validation › kAgent examples" name="should validate all kAgent examples" time="0.094">
|
|
89
|
+
</testcase>
|
|
90
|
+
<testcase classname="All Examples Validation › Generated manifests" name="should validate generated chat agent" time="0.045">
|
|
91
|
+
</testcase>
|
|
92
|
+
<testcase classname="All Examples Validation › Example directory structure" name="should have examples directory" time="0">
|
|
93
|
+
</testcase>
|
|
94
|
+
<testcase classname="All Examples Validation › Example directory structure" name="should have kagent examples" time="0">
|
|
95
|
+
</testcase>
|
|
96
|
+
<testcase classname="All Examples Validation › Example directory structure" name="should have kagent example files" time="0.001">
|
|
97
|
+
</testcase>
|
|
98
|
+
</testsuite>
|
|
99
|
+
<testsuite name="GitHubSyncService" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.204" tests="2">
|
|
100
|
+
<testcase classname="GitHubSyncService" name="should validate config with Zod" time="0.002">
|
|
101
|
+
</testcase>
|
|
102
|
+
<testcase classname="GitHubSyncService" name="should reject invalid config" time="0.025">
|
|
103
|
+
</testcase>
|
|
104
|
+
</testsuite>
|
|
105
|
+
<testsuite name="Schema Validation Integration" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.715" tests="4">
|
|
106
|
+
<testcase classname="Schema Validation Integration" name="should validate all example agents" time="0.134">
|
|
107
|
+
</testcase>
|
|
108
|
+
<testcase classname="Schema Validation Integration" name="should validate platform extensions" time="0">
|
|
109
|
+
</testcase>
|
|
110
|
+
<testcase classname="Schema Validation Integration" name="should catch platform-specific validation errors" time="0.001">
|
|
111
|
+
</testcase>
|
|
112
|
+
<testcase classname="Schema Validation Integration" name="should validate cross-platform compatibility" time="0">
|
|
113
|
+
</testcase>
|
|
114
|
+
</testsuite>
|
|
115
|
+
<testsuite name="AutoGenValidator" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.067" tests="3">
|
|
116
|
+
<testcase classname="AutoGenValidator › validate" name="should validate manifest without autogen extension" time="0">
|
|
117
|
+
</testcase>
|
|
118
|
+
<testcase classname="AutoGenValidator › validate" name="should validate with disabled autogen" time="0">
|
|
119
|
+
</testcase>
|
|
120
|
+
<testcase classname="AutoGenValidator › validate" name="should validate with valid autogen config" time="0">
|
|
121
|
+
</testcase>
|
|
122
|
+
</testsuite>
|
|
123
|
+
<testsuite name="OpenAIAdapter" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.21" tests="5">
|
|
124
|
+
<testcase classname="OpenAIAdapter › initialize" name="should initialize without error" time="0.001">
|
|
125
|
+
</testcase>
|
|
126
|
+
<testcase classname="OpenAIAdapter › registerToolHandler" name="should register tool handler" time="0">
|
|
127
|
+
</testcase>
|
|
128
|
+
<testcase classname="OpenAIAdapter › registerToolHandler" name="should register multiple handlers" time="0">
|
|
129
|
+
</testcase>
|
|
130
|
+
<testcase classname="OpenAIAdapter › getAgentInfo" name="should return agent info" time="0.001">
|
|
131
|
+
</testcase>
|
|
132
|
+
<testcase classname="OpenAIAdapter › getAgentInfo" name="should return empty tools array when no tools configured" time="0">
|
|
133
|
+
</testcase>
|
|
134
|
+
</testsuite>
|
|
135
|
+
<testsuite name="OpenAIValidator" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.073" tests="6">
|
|
136
|
+
<testcase classname="OpenAIValidator" name="should validate valid OpenAI extension" time="0.001">
|
|
137
|
+
</testcase>
|
|
138
|
+
<testcase classname="OpenAIValidator" name="should reject invalid model" time="0">
|
|
139
|
+
</testcase>
|
|
140
|
+
<testcase classname="OpenAIValidator" name="should validate all valid models" time="0">
|
|
141
|
+
</testcase>
|
|
142
|
+
<testcase classname="OpenAIValidator" name="should reject invalid guardrails values" time="0">
|
|
143
|
+
</testcase>
|
|
144
|
+
<testcase classname="OpenAIValidator" name="should validate memory configuration" time="0">
|
|
145
|
+
</testcase>
|
|
146
|
+
<testcase classname="OpenAIValidator" name="should reject invalid memory type" time="0">
|
|
147
|
+
</testcase>
|
|
148
|
+
</testsuite>
|
|
149
|
+
<testsuite name="SchemaRepository" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.065" tests="8">
|
|
150
|
+
<testcase classname="SchemaRepository › getAvailableVersions" name="should return array of versions" time="0.002">
|
|
151
|
+
</testcase>
|
|
152
|
+
<testcase classname="SchemaRepository › getAvailableVersions" name="should cache versions on subsequent calls" time="0.001">
|
|
153
|
+
</testcase>
|
|
154
|
+
<testcase classname="SchemaRepository › getCurrentVersion" name="should return current version" time="0.001">
|
|
155
|
+
</testcase>
|
|
156
|
+
<testcase classname="SchemaRepository › getSchema" name="should load schema for valid version" time="0.001">
|
|
157
|
+
</testcase>
|
|
158
|
+
<testcase classname="SchemaRepository › getSchema" name="should cache schema after first load" time="0">
|
|
159
|
+
</testcase>
|
|
160
|
+
<testcase classname="SchemaRepository › getSchema" name="should load different versions" time="0.001">
|
|
161
|
+
</testcase>
|
|
162
|
+
<testcase classname="SchemaRepository › getSchema" name="should throw for invalid version" time="0.01">
|
|
163
|
+
</testcase>
|
|
164
|
+
<testcase classname="SchemaRepository › clearCache" name="should clear cached schemas" time="0.002">
|
|
165
|
+
</testcase>
|
|
166
|
+
</testsuite>
|
|
167
|
+
<testsuite name="Run Command" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:16" time="0.024" tests="15">
|
|
168
|
+
<testcase classname="Run Command › Validation" name="should validate manifest by default" time="0">
|
|
169
|
+
</testcase>
|
|
170
|
+
<testcase classname="Run Command › Validation" name="should exit with error code 1 when validation fails" time="0">
|
|
171
|
+
</testcase>
|
|
172
|
+
<testcase classname="Run Command › Validation" name="should skip validation when --no-validate is used" time="0">
|
|
173
|
+
</testcase>
|
|
174
|
+
<testcase classname="Run Command › Runtime Selection" name="should use openai runtime by default" time="0.001">
|
|
175
|
+
</testcase>
|
|
176
|
+
<testcase classname="Run Command › Runtime Selection" name="should exit with error for unsupported runtime" time="0">
|
|
177
|
+
</testcase>
|
|
178
|
+
<testcase classname="Run Command › API Key Validation" name="should exit with error when OPENAI_API_KEY is not set" time="0">
|
|
179
|
+
</testcase>
|
|
180
|
+
<testcase classname="Run Command › API Key Validation" name="should proceed when OPENAI_API_KEY is set" time="0">
|
|
181
|
+
</testcase>
|
|
182
|
+
<testcase classname="Run Command › Single Message Mode" name="should execute single message and exit" time="0">
|
|
183
|
+
</testcase>
|
|
184
|
+
<testcase classname="Run Command › Single Message Mode" name="should pass verbose option to chat" time="0.001">
|
|
185
|
+
</testcase>
|
|
186
|
+
<testcase classname="Run Command › Single Message Mode" name="should pass maxTurns option to chat" time="0">
|
|
187
|
+
</testcase>
|
|
188
|
+
<testcase classname="Run Command › Error Handling" name="should handle manifest loading errors" time="0">
|
|
189
|
+
</testcase>
|
|
190
|
+
<testcase classname="Run Command › Error Handling" name="should handle chat errors gracefully" time="0">
|
|
191
|
+
</testcase>
|
|
192
|
+
<testcase classname="Run Command › Error Handling" name="should show stack trace in verbose mode" time="0">
|
|
193
|
+
</testcase>
|
|
194
|
+
<testcase classname="Run Command › Agent Info Display" name="should display agent name and model" time="0">
|
|
195
|
+
</testcase>
|
|
196
|
+
<testcase classname="Run Command › Agent Info Display" name="should display available tools" time="0.001">
|
|
197
|
+
</testcase>
|
|
198
|
+
</testsuite>
|
|
199
|
+
<testsuite name="AgentsMdExtension Schema" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:16" time="0.025" tests="11">
|
|
200
|
+
<testcase classname="AgentsMdExtension Schema" name="should accept valid agents_md extension" time="0">
|
|
201
|
+
</testcase>
|
|
202
|
+
<testcase classname="AgentsMdExtension Schema" name="should accept full agents_md configuration" time="0">
|
|
203
|
+
</testcase>
|
|
204
|
+
<testcase classname="AgentsMdExtension Schema" name="should support section source mappings" time="0">
|
|
205
|
+
</testcase>
|
|
206
|
+
<testcase classname="AgentsMdExtension Schema" name="should support custom output paths" time="0">
|
|
207
|
+
</testcase>
|
|
208
|
+
<testcase classname="AgentsMdExtension Schema" name="should support nested files for monorepos" time="0">
|
|
209
|
+
</testcase>
|
|
210
|
+
<testcase classname="AgentsMdExtension Schema" name="should support Cursor integration flag" time="0">
|
|
211
|
+
</testcase>
|
|
212
|
+
<testcase classname="AgentsMdSection Schema" name="should accept all section properties" time="0">
|
|
213
|
+
</testcase>
|
|
214
|
+
<testcase classname="AgentsMdSection Schema" name="should allow section with only custom content" time="0.001">
|
|
215
|
+
</testcase>
|
|
216
|
+
<testcase classname="AgentsMdSection Schema" name="should allow section with only source mapping" time="0">
|
|
217
|
+
</testcase>
|
|
218
|
+
<testcase classname="Bidirectional Mapping" name="should define OSSA to agents.md mappings" time="0">
|
|
219
|
+
</testcase>
|
|
220
|
+
<testcase classname="Bidirectional Mapping" name="should support agents.md to OSSA parsing" time="0">
|
|
221
|
+
</testcase>
|
|
222
|
+
</testsuite>
|
|
223
|
+
<testsuite name="LangChainValidator" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.046" tests="8">
|
|
224
|
+
<testcase classname="LangChainValidator" name="should validate valid LangChain extension" time="0">
|
|
225
|
+
</testcase>
|
|
226
|
+
<testcase classname="LangChainValidator" name="should validate all chain types" time="0">
|
|
227
|
+
</testcase>
|
|
228
|
+
<testcase classname="LangChainValidator" name="should reject invalid chain_type" time="0">
|
|
229
|
+
</testcase>
|
|
230
|
+
<testcase classname="LangChainValidator" name="should validate memory types" time="0.001">
|
|
231
|
+
</testcase>
|
|
232
|
+
<testcase classname="LangChainValidator" name="should reject invalid memory type" time="0">
|
|
233
|
+
</testcase>
|
|
234
|
+
<testcase classname="LangChainValidator" name="should validate callbacks array" time="0">
|
|
235
|
+
</testcase>
|
|
236
|
+
<testcase classname="LangChainValidator" name="should reject invalid callbacks type" time="0">
|
|
237
|
+
</testcase>
|
|
238
|
+
<testcase classname="LangChainValidator" name="should return warnings for missing memory" time="0">
|
|
239
|
+
</testcase>
|
|
240
|
+
</testsuite>
|
|
241
|
+
<testsuite name="agents.md Extension Integration" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.757" tests="6">
|
|
242
|
+
<testcase classname="agents.md Extension Integration" name="should validate agents_md extension in manifest" time="0.158">
|
|
243
|
+
</testcase>
|
|
244
|
+
<testcase classname="agents.md Extension Integration" name="should validate agents_md with Cursor extension integration" time="0">
|
|
245
|
+
</testcase>
|
|
246
|
+
<testcase classname="agents.md Extension Integration" name="should validate agents_md with nested files for monorepo" time="0">
|
|
247
|
+
</testcase>
|
|
248
|
+
<testcase classname="agents.md Extension Integration" name="should validate agents_md with bidirectional mapping" time="0.001">
|
|
249
|
+
</testcase>
|
|
250
|
+
<testcase classname="agents.md Extension Integration" name="should validate agents_md example manifests" time="0.009">
|
|
251
|
+
</testcase>
|
|
252
|
+
<testcase classname="agents.md Extension Integration" name="should validate custom sections array" time="0">
|
|
253
|
+
</testcase>
|
|
254
|
+
</testsuite>
|
|
255
|
+
<testsuite name="ValidationService" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="0.929" tests="8">
|
|
256
|
+
<testcase classname="ValidationService › validate" name="should validate valid manifest" time="0.112">
|
|
257
|
+
</testcase>
|
|
258
|
+
<testcase classname="ValidationService › validate" name="should reject invalid manifest" time="0.106">
|
|
259
|
+
</testcase>
|
|
260
|
+
<testcase classname="ValidationService › validate" name="should validate with specific version" time="0.042">
|
|
261
|
+
</testcase>
|
|
262
|
+
<testcase classname="ValidationService › validate" name="should use current version when not specified" time="0.033">
|
|
263
|
+
</testcase>
|
|
264
|
+
<testcase classname="ValidationService › validateMany" name="should validate multiple manifests" time="0.045">
|
|
265
|
+
</testcase>
|
|
266
|
+
<testcase classname="ValidationService › validateMany" name="should handle mixed valid and invalid manifests" time="0.032">
|
|
267
|
+
</testcase>
|
|
268
|
+
<testcase classname="ValidationService › validateMany" name="should handle empty array" time="0.001">
|
|
269
|
+
</testcase>
|
|
270
|
+
<testcase classname="ValidationService › validateMany" name="should use specified version" time="0.03">
|
|
271
|
+
</testcase>
|
|
272
|
+
</testsuite>
|
|
273
|
+
<testsuite name="ossa validate command" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="1.508" tests="4">
|
|
274
|
+
<testcase classname="ossa validate command" name="should validate a correct v1.0 manifest" time="0.512">
|
|
275
|
+
</testcase>
|
|
276
|
+
<testcase classname="ossa validate command" name="should report validation errors for invalid manifest" time="0.233">
|
|
277
|
+
</testcase>
|
|
278
|
+
<testcase classname="ossa validate command" name="should show verbose output when requested" time="0.228">
|
|
279
|
+
</testcase>
|
|
280
|
+
<testcase classname="ossa validate command" name="should show warnings for missing best practices" time="0.227">
|
|
281
|
+
</testcase>
|
|
282
|
+
</testsuite>
|
|
283
|
+
<testsuite name="ossa generate command" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="1.586" tests="6">
|
|
284
|
+
<testcase classname="ossa generate command" name="should generate a chat agent" time="0.389">
|
|
285
|
+
</testcase>
|
|
286
|
+
<testcase classname="ossa generate command" name="should generate workflow agent with correct capabilities" time="0.178">
|
|
287
|
+
</testcase>
|
|
288
|
+
<testcase classname="ossa generate command" name="should generate compliance agent with low temperature" time="0.165">
|
|
289
|
+
</testcase>
|
|
290
|
+
<testcase classname="ossa generate command" name="should use custom runtime type" time="0.163">
|
|
291
|
+
</testcase>
|
|
292
|
+
<testcase classname="ossa generate command" name="should normalize agent ID" time="0.165">
|
|
293
|
+
</testcase>
|
|
294
|
+
<testcase classname="ossa generate command" name="should create output directory if it does not exist" time="0.157">
|
|
295
|
+
</testcase>
|
|
296
|
+
</testsuite>
|
|
297
|
+
<testsuite name="Full Workflow E2E" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="2.468" tests="3">
|
|
298
|
+
<testcase classname="Full Workflow E2E" name="should complete workflow: generate → validate" time="0.7">
|
|
299
|
+
</testcase>
|
|
300
|
+
<testcase classname="Full Workflow E2E" name="should complete workflow: generate multiple → validate all" time="1.123">
|
|
301
|
+
</testcase>
|
|
302
|
+
<testcase classname="Full Workflow E2E" name="should handle full development cycle" time="0.345">
|
|
303
|
+
</testcase>
|
|
304
|
+
</testsuite>
|
|
305
|
+
<testsuite name="ossa run command" errors="0" failures="0" skipped="0" timestamp="2025-12-06T01:17:15" time="7.869" tests="15">
|
|
306
|
+
<testcase classname="ossa run command › Validation" name="should validate manifest before running" time="0.896">
|
|
307
|
+
</testcase>
|
|
308
|
+
<testcase classname="ossa run command › Validation" name="should skip validation with --no-validate flag" time="0.525">
|
|
309
|
+
</testcase>
|
|
310
|
+
<testcase classname="ossa run command › API Key Validation" name="should exit with error when OPENAI_API_KEY is not set" time="0.206">
|
|
311
|
+
</testcase>
|
|
312
|
+
<testcase classname="ossa run command › Runtime Selection" name="should use openai runtime by default" time="0.531">
|
|
313
|
+
</testcase>
|
|
314
|
+
<testcase classname="ossa run command › Runtime Selection" name="should reject unsupported runtime" time="0.199">
|
|
315
|
+
</testcase>
|
|
316
|
+
<testcase classname="ossa run command › Single Message Mode" name="should accept -m flag for single message" time="1.706">
|
|
317
|
+
</testcase>
|
|
318
|
+
<testcase classname="ossa run command › Single Message Mode" name="should accept --message flag for single message" time="0.51">
|
|
319
|
+
</testcase>
|
|
320
|
+
<testcase classname="ossa run command › Verbose Mode" name="should accept -v flag for verbose output" time="0.529">
|
|
321
|
+
</testcase>
|
|
322
|
+
<testcase classname="ossa run command › Verbose Mode" name="should accept --verbose flag" time="0.522">
|
|
323
|
+
</testcase>
|
|
324
|
+
<testcase classname="ossa run command › Max Turns Option" name="should accept --max-turns flag" time="0.534">
|
|
325
|
+
</testcase>
|
|
326
|
+
<testcase classname="ossa run command › Error Handling" name="should handle missing manifest file" time="0.142">
|
|
327
|
+
</testcase>
|
|
328
|
+
<testcase classname="ossa run command › Error Handling" name="should handle invalid YAML" time="0.143">
|
|
329
|
+
</testcase>
|
|
330
|
+
<testcase classname="ossa run command › Error Handling" name="should handle invalid JSON" time="0.142">
|
|
331
|
+
</testcase>
|
|
332
|
+
<testcase classname="ossa run command › Agent Info Display" name="should display agent name when loading" time="0.49">
|
|
333
|
+
</testcase>
|
|
334
|
+
<testcase classname="ossa run command › Example Manifests" name="should run with example OpenAI agent" time="0.487">
|
|
335
|
+
</testcase>
|
|
336
|
+
</testsuite>
|
|
337
|
+
</testsuites>
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
name: PR Comment
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
types: [opened]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
comment:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
steps:
|
|
11
|
-
- name: Comment on PR
|
|
12
|
-
uses: actions/github-script@v7
|
|
13
|
-
with:
|
|
14
|
-
script: |
|
|
15
|
-
github.rest.issues.createComment({
|
|
16
|
-
issue_number: context.issue.number,
|
|
17
|
-
owner: context.repo.owner,
|
|
18
|
-
repo: context.repo.repo,
|
|
19
|
-
body: `👋 Thanks for your contribution!
|
|
20
|
-
|
|
21
|
-
**Review Process:**
|
|
22
|
-
1. We'll review your PR here on GitHub
|
|
23
|
-
2. If approved, we'll sync it to our internal GitLab for final testing
|
|
24
|
-
3. Once merged on GitLab, changes will automatically sync back here
|
|
25
|
-
4. Your PR will auto-close when the changes appear in main
|
|
26
|
-
|
|
27
|
-
**Timeline:** We aim to review within 48 hours.
|
|
28
|
-
|
|
29
|
-
**Questions?** Feel free to ask in the comments or join our [Discord](https://discord.gg/ossa).
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
*This is a public mirror of our GitLab repository. Development happens at [gitlab.com/blueflyio/openstandardagents](https://gitlab.com/blueflyio/openstandardagents).*`
|
|
33
|
-
})
|
|
@@ -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
|
-
|