@bluefly/openstandardagents 0.2.5-RC → 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.
- package/.devfile.yaml +1 -1
- package/.env.example +1 -1
- package/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
- package/.github/workflows/dependabot-comment.yml +34 -0
- package/.github/workflows/pr-comment.yml +33 -0
- package/.husky/pre-commit +5 -0
- package/.kiro/config.json +21 -0
- package/.kiro/settings/mcp.json +61 -0
- package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
- package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
- package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
- package/.kiro/specs/website-brand-identity/tasks.md +981 -0
- package/.version.json +2 -2
- package/.wiki-config.json +24 -0
- package/CHANGELOG.md +34 -18
- package/CODEOWNERS +75 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +176 -239
- package/bin/ossa-dev +42 -0
- package/bin/ossa-export +32 -0
- package/bin/ossa-generate +60 -0
- package/bin/ossa-health +40 -0
- package/bin/ossa-init +26 -0
- 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 +63 -36
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/github-sync/github-client.d.ts +14 -0
- package/dist/services/github-sync/github-client.d.ts.map +1 -0
- package/dist/services/github-sync/github-client.js +41 -0
- package/dist/services/github-sync/github-client.js.map +1 -0
- package/dist/services/github-sync/gitlab-client.d.ts +17 -0
- package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
- package/dist/services/github-sync/gitlab-client.js +42 -0
- package/dist/services/github-sync/gitlab-client.js.map +1 -0
- package/dist/services/github-sync/schemas.d.ts +46 -0
- package/dist/services/github-sync/schemas.d.ts.map +1 -0
- package/dist/services/github-sync/schemas.js +36 -0
- package/dist/services/github-sync/schemas.js.map +1 -0
- package/dist/services/github-sync/sync.service.d.ts +27 -0
- package/dist/services/github-sync/sync.service.d.ts.map +1 -0
- package/dist/services/github-sync/sync.service.js +99 -0
- package/dist/services/github-sync/sync.service.js.map +1 -0
- 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/runtime/claude/capability-mapper.d.ts +84 -0
- package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
- package/dist/services/runtime/claude/capability-mapper.js +245 -0
- package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.js +287 -0
- package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.js +169 -0
- package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
- package/dist/services/runtime/claude/types.d.ts +115 -0
- package/dist/services/runtime/claude/types.d.ts.map +1 -0
- package/dist/services/runtime/claude/types.js +6 -0
- package/dist/services/runtime/claude/types.js.map +1 -0
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +12 -1
- package/dist/services/validation.service.js.map +1 -1
- package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.6/README.md +72 -0
- package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/dist/spec/{v0.2.4/ossa-0.2.4-dev.schema.json → v0.2.6/ossa-0.2.6.schema.json} +128 -38
- package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/dist/spec/v0.2.6-dev/README.md +75 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
- package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- 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/dist/spec/v0.2.8/ossa-0.2.8.schema.json +3153 -0
- package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- 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/brand-guide/01-brand-overview.md +37 -0
- package/docs/brand-guide/02-logo-usage.md +43 -0
- package/docs/brand-guide/03-color-palette.md +70 -0
- package/docs/brand-guide/04-typography.md +82 -0
- package/docs/brand-guide/05-voice-and-tone.md +108 -0
- package/docs/brand-guide/06-visual-elements.md +137 -0
- package/docs/brand-guide/07-application-examples.md +153 -0
- package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
- package/docs/brand-guide/OssaLogo/brand.af +0 -0
- package/docs/brand-guide/README.md +107 -0
- package/docs/comparison.md +315 -0
- package/docs/operations/automation-roadmap.md +245 -0
- package/docs/operations/github-sync-strategy.md +357 -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/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/anthropic/claude-assistant.ossa.json +5 -4
- package/examples/autogen/multi-agent.ossa.json +6 -4
- 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 +14 -5
- package/examples/cursor/code-review-agent.ossa.json +21 -6
- 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/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 +21 -5
- package/examples/langflow/workflow-agent.ossa.json +2 -3
- package/examples/langgraph/state-machine-agent.ossa.json +2 -3
- package/examples/llamaindex/rag-agent.ossa.json +2 -3
- 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 +33 -10
- package/examples/openai/swarm-agent.ossa.json +18 -5
- 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 +5 -4
- 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/openapi/github-sync.yaml +115 -0
- package/package.json +26 -4
- package/scripts/README.md +103 -0
- package/scripts/auto-rebase-mrs.ts +106 -0
- package/scripts/batch-dependabot.sh +57 -0
- package/scripts/configure-gitlab-branch-protection.ts +95 -0
- package/scripts/create-issue-helper.ts +238 -0
- package/scripts/create-milestone-issue.ts +73 -0
- package/scripts/eslint-to-codequality.cjs +34 -0
- package/scripts/fix-schema-formats.js +82 -0
- package/scripts/generate-agents-catalog.ts +77 -0
- package/scripts/generate-api-docs.ts +218 -0
- package/scripts/generate-cli-docs.ts +410 -0
- package/scripts/generate-config-docs.ts +109 -0
- package/scripts/generate-errors-docs.ts +76 -0
- package/scripts/generate-examples-docs.ts +99 -0
- package/scripts/generate-llms-ctx.sh +17 -0
- package/scripts/generate-schema-docs.ts +317 -0
- package/scripts/generate-types-docs.ts +48 -0
- package/scripts/lowercase-docs.ts +43 -0
- package/scripts/manage-milestone-mrs.ts +279 -0
- package/scripts/rebase-all-mrs.sh +75 -0
- package/scripts/sync-github-pr.sh +48 -0
- package/scripts/sync-version.js +32 -0
- package/scripts/sync-wiki.sh +50 -0
- package/scripts/validate-all.js +127 -0
- package/scripts/validate-schema.ts +2 -1
- package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/spec/v0.2.6/CHANGELOG.md +401 -0
- package/spec/v0.2.6/README.md +72 -0
- package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/spec/{v0.2.4/ossa-0.2.4-dev.schema.json → v0.2.6/ossa-0.2.6.schema.json} +128 -38
- package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/spec/v0.2.6-dev/README.md +75 -0
- package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/spec/v0.2.7/core/agentgraph.md +324 -0
- package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- 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.8/ossa-0.2.8.schema.json +3153 -0
- package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
- package/test-results/junit.xml +299 -0
- package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
- package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
- package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
- package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
- package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
- package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
- package/bin/validate-ossa-0.2.5-RC.ts +0 -244
- package/docs/issue-19-completion-summary.md +0 -648
- package/docs/issue-19-validation.md +0 -351
- 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/Dockerfile +0 -30
- package/website/app/about/page.tsx +0 -295
- 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 -375
- package/website/app/examples/page.tsx +0 -133
- package/website/app/globals.scss +0 -135
- 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 -474
- 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 -168
- package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
- package/website/components/schema/SchemaExplorer.tsx +0 -213
- 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/AIFlow-Framework-Integration-with-OSSA.md +0 -107
- package/website/content/docs/Examples.md +0 -71
- package/website/content/docs/OpenAPI-Extensions.md +0 -934
- package/website/content/docs/adapters/openai-adapter.md +0 -693
- 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/contributing.md +0 -599
- package/website/content/docs/core-concepts/Project-Structure.md +0 -348
- package/website/content/docs/ecosystem/framework-support.md +0 -819
- package/website/content/docs/ecosystem/overview.md +0 -366
- package/website/content/docs/examples/AIFlow-Framework-Integration-with-OSSA.md +0 -107
- package/website/content/docs/examples/Migration-Guides.md +0 -214
- package/website/content/docs/for-audiences/Architects.md +0 -224
- package/website/content/docs/for-audiences/Developers.md +0 -220
- package/website/content/docs/for-audiences/Enterprises.md +0 -256
- package/website/content/docs/for-audiences/Students-Researchers.md +0 -122
- package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
- package/website/content/docs/getting-started/First-Agent.md +0 -196
- package/website/content/docs/getting-started/Hello-World.md +0 -184
- package/website/content/docs/getting-started/Installation.md +0 -155
- package/website/content/docs/getting-started/index.md +0 -92
- 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/00-INDEX.md +0 -76
- package/website/content/docs/migration-guides/README.md +0 -133
- 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/schema-reference/agent-spec.md +0 -406
- 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 -176
- 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/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/lib/version.ts +0 -35
- package/website/lib/versions.json +0 -78
- 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/_variables.scss +0 -36
- package/website/tailwind.config.ts +0 -136
- /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
- /package/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
# Issue #19 Validation Checklist
|
|
2
|
-
|
|
3
|
-
**Issue:** ossa run command - Run agents with OpenAI adapter
|
|
4
|
-
**Milestone:** v0.2.7 - Multi-Agent & Adapters
|
|
5
|
-
**Status:** Implementation Complete, Testing & Documentation Added
|
|
6
|
-
|
|
7
|
-
## Acceptance Criteria Validation
|
|
8
|
-
|
|
9
|
-
### ✅ 1. Create `ossa run` command functionality
|
|
10
|
-
|
|
11
|
-
**Status:** COMPLETE
|
|
12
|
-
|
|
13
|
-
**Implementation:**
|
|
14
|
-
- File: `src/cli/commands/run.command.ts`
|
|
15
|
-
- Command registered in: `src/cli/index.ts`
|
|
16
|
-
- Entry point: `bin/ossa`
|
|
17
|
-
|
|
18
|
-
**Features Implemented:**
|
|
19
|
-
- ✅ Command accepts `<path>` argument for manifest file
|
|
20
|
-
- ✅ Interactive REPL mode for conversations
|
|
21
|
-
- ✅ Single message mode with `-m, --message` flag
|
|
22
|
-
- ✅ Verbose output with `-v, --verbose` flag
|
|
23
|
-
- ✅ Validation toggle with `--no-validate` flag
|
|
24
|
-
- ✅ Max turns configuration with `--max-turns` flag
|
|
25
|
-
- ✅ Runtime selection with `-r, --runtime` flag
|
|
26
|
-
|
|
27
|
-
**Tests:**
|
|
28
|
-
- Unit tests: `tests/unit/cli/commands/run.command.test.ts`
|
|
29
|
-
- Integration tests: `tests/integration/cli/run.test.ts`
|
|
30
|
-
|
|
31
|
-
**Documentation:**
|
|
32
|
-
- CLI Reference: `website/content/docs/cli/run-command.md`
|
|
33
|
-
- Getting Started: `website/content/docs/getting-started/running-agents.md`
|
|
34
|
-
- README.md: Updated with run command examples
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
### ✅ 2. Integrate with OpenAI adapter for agent execution
|
|
39
|
-
|
|
40
|
-
**Status:** COMPLETE
|
|
41
|
-
|
|
42
|
-
**Implementation:**
|
|
43
|
-
- File: `src/services/runtime/openai.adapter.ts`
|
|
44
|
-
- OpenAI SDK version: 6.9.1
|
|
45
|
-
|
|
46
|
-
**Features Implemented:**
|
|
47
|
-
- ✅ OpenAI API integration using official SDK
|
|
48
|
-
- ✅ Function calling support
|
|
49
|
-
- ✅ Tool registration and execution
|
|
50
|
-
- ✅ Conversation history management
|
|
51
|
-
- ✅ Model selection from manifest or extensions
|
|
52
|
-
- ✅ System prompt handling
|
|
53
|
-
- ✅ Tool mapping from OSSA capabilities to OpenAI functions
|
|
54
|
-
- ✅ Custom tool handler registration
|
|
55
|
-
- ✅ Error handling for tool execution
|
|
56
|
-
- ✅ Max turns limit to prevent infinite loops
|
|
57
|
-
|
|
58
|
-
**Tests:**
|
|
59
|
-
- Unit tests: `tests/unit/services/runtime/openai.adapter.test.ts`
|
|
60
|
-
|
|
61
|
-
**Documentation:**
|
|
62
|
-
- Adapter Guide: `website/content/docs/adapters/openai-adapter.md`
|
|
63
|
-
- Examples: `examples/openai/basic-agent.ossa.yaml`, `examples/openai/multi-tool-agent.ossa.json`
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
### ✅ 3. Ensure proper command-line interface and argument handling
|
|
68
|
-
|
|
69
|
-
**Status:** COMPLETE
|
|
70
|
-
|
|
71
|
-
**CLI Options Implemented:**
|
|
72
|
-
|
|
73
|
-
| Option | Type | Default | Description |
|
|
74
|
-
|--------|------|---------|-------------|
|
|
75
|
-
| `<path>` | Argument | Required | Path to OSSA agent manifest |
|
|
76
|
-
| `-r, --runtime` | Option | `openai` | Runtime adapter selection |
|
|
77
|
-
| `-v, --verbose` | Flag | `false` | Verbose output |
|
|
78
|
-
| `-m, --message` | Option | Interactive | Single message mode |
|
|
79
|
-
| `--no-validate` | Flag | Validation on | Skip validation |
|
|
80
|
-
| `--max-turns` | Option | `10` | Max tool call iterations |
|
|
81
|
-
|
|
82
|
-
**Argument Validation:**
|
|
83
|
-
- ✅ Path argument is required
|
|
84
|
-
- ✅ Runtime must be 'openai' (others show error)
|
|
85
|
-
- ✅ Max turns must be a valid number
|
|
86
|
-
- ✅ Message can be any string
|
|
87
|
-
|
|
88
|
-
**Tests:**
|
|
89
|
-
- Integration tests cover all CLI options
|
|
90
|
-
- Error handling tests for invalid arguments
|
|
91
|
-
|
|
92
|
-
**Documentation:**
|
|
93
|
-
- Complete CLI reference with all options documented
|
|
94
|
-
- Examples for each option combination
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
### ✅ 4. Add appropriate error handling and validation
|
|
99
|
-
|
|
100
|
-
**Status:** COMPLETE
|
|
101
|
-
|
|
102
|
-
**Error Handling Implemented:**
|
|
103
|
-
|
|
104
|
-
1. **Manifest Loading Errors:**
|
|
105
|
-
- ✅ File not found
|
|
106
|
-
- ✅ Invalid YAML/JSON syntax
|
|
107
|
-
- ✅ Manifest validation failures
|
|
108
|
-
|
|
109
|
-
2. **API Key Validation:**
|
|
110
|
-
- ✅ Check for OPENAI_API_KEY environment variable
|
|
111
|
-
- ✅ Clear error message with instructions
|
|
112
|
-
|
|
113
|
-
3. **Runtime Errors:**
|
|
114
|
-
- ✅ Unsupported runtime detection
|
|
115
|
-
- ✅ List of available runtimes
|
|
116
|
-
|
|
117
|
-
4. **Tool Execution Errors:**
|
|
118
|
-
- ✅ Unknown tool handling
|
|
119
|
-
- ✅ Tool handler exceptions caught
|
|
120
|
-
- ✅ Error messages returned to agent
|
|
121
|
-
|
|
122
|
-
5. **Conversation Errors:**
|
|
123
|
-
- ✅ API errors caught and displayed
|
|
124
|
-
- ✅ Max turns limit enforcement
|
|
125
|
-
- ✅ Graceful error recovery in REPL mode
|
|
126
|
-
|
|
127
|
-
**Validation:**
|
|
128
|
-
- ✅ Manifest validation before execution (optional)
|
|
129
|
-
- ✅ Schema validation using AJV
|
|
130
|
-
- ✅ Validation errors displayed with details
|
|
131
|
-
- ✅ Verbose mode shows validation details
|
|
132
|
-
|
|
133
|
-
**Tests:**
|
|
134
|
-
- Error handling scenarios covered in unit tests
|
|
135
|
-
- Integration tests for validation failures
|
|
136
|
-
- API key missing tests
|
|
137
|
-
- Invalid manifest tests
|
|
138
|
-
|
|
139
|
-
**Documentation:**
|
|
140
|
-
- Troubleshooting section in running-agents.md
|
|
141
|
-
- Error handling section in run-command.md
|
|
142
|
-
- Common errors and solutions documented
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
### ✅ 5. Include documentation for the new command
|
|
147
|
-
|
|
148
|
-
**Status:** COMPLETE
|
|
149
|
-
|
|
150
|
-
**Documentation Created:**
|
|
151
|
-
|
|
152
|
-
1. **CLI Reference** (`website/content/docs/cli/run-command.md`)
|
|
153
|
-
- ✅ Complete command synopsis
|
|
154
|
-
- ✅ All arguments and options documented
|
|
155
|
-
- ✅ Interactive mode explanation
|
|
156
|
-
- ✅ Single message mode explanation
|
|
157
|
-
- ✅ Environment variables
|
|
158
|
-
- ✅ Exit codes
|
|
159
|
-
- ✅ Examples for all use cases
|
|
160
|
-
- ✅ Error handling guide
|
|
161
|
-
- ✅ Manifest configuration examples
|
|
162
|
-
|
|
163
|
-
2. **Getting Started Guide** (`website/content/docs/getting-started/running-agents.md`)
|
|
164
|
-
- ✅ Quick start instructions
|
|
165
|
-
- ✅ Prerequisites
|
|
166
|
-
- ✅ Installation steps
|
|
167
|
-
- ✅ Basic usage examples
|
|
168
|
-
- ✅ Command options table
|
|
169
|
-
- ✅ Detailed option descriptions
|
|
170
|
-
- ✅ Interactive REPL mode guide
|
|
171
|
-
- ✅ Troubleshooting section
|
|
172
|
-
- ✅ Advanced usage examples
|
|
173
|
-
|
|
174
|
-
3. **OpenAI Adapter Guide** (`website/content/docs/adapters/openai-adapter.md`)
|
|
175
|
-
- ✅ Overview and features
|
|
176
|
-
- ✅ Configuration options
|
|
177
|
-
- ✅ Model selection
|
|
178
|
-
- ✅ System prompt configuration
|
|
179
|
-
- ✅ Tool mapping guide
|
|
180
|
-
- ✅ Conversation management
|
|
181
|
-
- ✅ Tool execution
|
|
182
|
-
- ✅ Advanced features
|
|
183
|
-
- ✅ API integration details
|
|
184
|
-
- ✅ Examples (basic, customer support, code assistant, multi-tool)
|
|
185
|
-
- ✅ Troubleshooting
|
|
186
|
-
- ✅ Best practices
|
|
187
|
-
|
|
188
|
-
4. **README.md Updates**
|
|
189
|
-
- ✅ Quick start with run command
|
|
190
|
-
- ✅ Running agents section
|
|
191
|
-
- ✅ CLI commands list updated
|
|
192
|
-
|
|
193
|
-
5. **Example Agents**
|
|
194
|
-
- ✅ Basic agent: `examples/openai/basic-agent.ossa.yaml`
|
|
195
|
-
- ✅ Multi-tool agent: `examples/openai/multi-tool-agent.ossa.json`
|
|
196
|
-
- ✅ Existing swarm agent: `examples/openai/swarm-agent.ossa.json`
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## Test Coverage Summary
|
|
201
|
-
|
|
202
|
-
### Unit Tests
|
|
203
|
-
|
|
204
|
-
1. **Run Command Tests** (`tests/unit/cli/commands/run.command.test.ts`)
|
|
205
|
-
- Validation scenarios
|
|
206
|
-
- Runtime selection
|
|
207
|
-
- API key validation
|
|
208
|
-
- Single message mode
|
|
209
|
-
- Error handling
|
|
210
|
-
- Agent info display
|
|
211
|
-
|
|
212
|
-
2. **OpenAI Adapter Tests** (`tests/unit/services/runtime/openai.adapter.test.ts`)
|
|
213
|
-
- Constructor and initialization
|
|
214
|
-
- Model selection (extension, LLM config, default)
|
|
215
|
-
- System prompt selection
|
|
216
|
-
- Tool mapping (tools_mapping, spec.tools)
|
|
217
|
-
- Tool handler registration
|
|
218
|
-
- Tool execution (with handler, without handler, errors)
|
|
219
|
-
- Conversation management
|
|
220
|
-
- Chat options (verbose, maxTurns)
|
|
221
|
-
- LLM configuration (temperature, maxTokens)
|
|
222
|
-
- Agent info retrieval
|
|
223
|
-
|
|
224
|
-
### Integration Tests
|
|
225
|
-
|
|
226
|
-
1. **Run Command Integration Tests** (`tests/integration/cli/run.test.ts`)
|
|
227
|
-
- Validation with valid/invalid manifests
|
|
228
|
-
- Skip validation flag
|
|
229
|
-
- API key validation
|
|
230
|
-
- Runtime selection (default, unsupported)
|
|
231
|
-
- Single message mode (-m, --message)
|
|
232
|
-
- Verbose mode (-v, --verbose)
|
|
233
|
-
- Max turns option
|
|
234
|
-
- Error handling (missing file, invalid YAML/JSON)
|
|
235
|
-
- Agent info display
|
|
236
|
-
- Example manifests
|
|
237
|
-
|
|
238
|
-
**Total Test Files Created:** 3
|
|
239
|
-
**Test Scenarios Covered:** 50+
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
## Documentation Summary
|
|
244
|
-
|
|
245
|
-
### Files Created/Updated
|
|
246
|
-
|
|
247
|
-
1. **Created:**
|
|
248
|
-
- `website/content/docs/cli/run-command.md` (comprehensive CLI reference)
|
|
249
|
-
- `website/content/docs/adapters/openai-adapter.md` (adapter guide)
|
|
250
|
-
- `examples/openai/basic-agent.ossa.yaml` (basic example)
|
|
251
|
-
- `examples/openai/multi-tool-agent.ossa.json` (advanced example)
|
|
252
|
-
- `docs/issue-19-validation.md` (this file)
|
|
253
|
-
|
|
254
|
-
2. **Updated:**
|
|
255
|
-
- `website/content/docs/getting-started/running-agents.md` (enhanced guide)
|
|
256
|
-
- `README.md` (added run command examples)
|
|
257
|
-
|
|
258
|
-
**Total Documentation Pages:** 6
|
|
259
|
-
**Total Word Count:** ~15,000+ words
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## Implementation Quality Metrics
|
|
264
|
-
|
|
265
|
-
### Code Quality
|
|
266
|
-
- ✅ TypeScript with strict typing
|
|
267
|
-
- ✅ ES modules
|
|
268
|
-
- ✅ Dependency injection (Inversify)
|
|
269
|
-
- ✅ Error handling throughout
|
|
270
|
-
- ✅ Consistent code style
|
|
271
|
-
- ✅ JSDoc comments (in adapter)
|
|
272
|
-
|
|
273
|
-
### Testing
|
|
274
|
-
- ✅ Unit tests for core functionality
|
|
275
|
-
- ✅ Integration tests for CLI
|
|
276
|
-
- ✅ Mocking for external dependencies
|
|
277
|
-
- ✅ Error scenario coverage
|
|
278
|
-
- ✅ Edge case handling
|
|
279
|
-
|
|
280
|
-
### Documentation
|
|
281
|
-
- ✅ Comprehensive CLI reference
|
|
282
|
-
- ✅ Getting started guide
|
|
283
|
-
- ✅ Adapter documentation
|
|
284
|
-
- ✅ Examples with comments
|
|
285
|
-
- ✅ Troubleshooting guides
|
|
286
|
-
- ✅ Best practices
|
|
287
|
-
|
|
288
|
-
### User Experience
|
|
289
|
-
- ✅ Clear error messages
|
|
290
|
-
- ✅ Helpful usage instructions
|
|
291
|
-
- ✅ Interactive REPL mode
|
|
292
|
-
- ✅ Verbose debugging option
|
|
293
|
-
- ✅ Sensible defaults
|
|
294
|
-
|
|
295
|
-
---
|
|
296
|
-
|
|
297
|
-
## Verification Steps
|
|
298
|
-
|
|
299
|
-
To verify the implementation:
|
|
300
|
-
|
|
301
|
-
### 1. Run Unit Tests
|
|
302
|
-
```bash
|
|
303
|
-
npm run test:unit
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
### 2. Run Integration Tests
|
|
307
|
-
```bash
|
|
308
|
-
npm run test:integration
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
### 3. Test CLI Manually
|
|
312
|
-
```bash
|
|
313
|
-
# Build the project
|
|
314
|
-
npm run build
|
|
315
|
-
|
|
316
|
-
# Test validation
|
|
317
|
-
ossa validate examples/openai/basic-agent.ossa.yaml
|
|
318
|
-
|
|
319
|
-
# Test run command (requires API key)
|
|
320
|
-
export OPENAI_API_KEY=sk-your-key
|
|
321
|
-
ossa run examples/openai/basic-agent.ossa.yaml -m "Hello"
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
### 4. Verify Documentation
|
|
325
|
-
- Browse to https://openstandardagents.org/docs/cli/run-command
|
|
326
|
-
- Browse to https://openstandardagents.org/docs/adapters/openai-adapter
|
|
327
|
-
- Browse to https://openstandardagents.org/docs/getting-started/running-agents
|
|
328
|
-
|
|
329
|
-
---
|
|
330
|
-
|
|
331
|
-
## Conclusion
|
|
332
|
-
|
|
333
|
-
All acceptance criteria for Issue #19 have been **FULLY IMPLEMENTED** with:
|
|
334
|
-
|
|
335
|
-
✅ Complete `ossa run` command functionality
|
|
336
|
-
✅ Full OpenAI adapter integration
|
|
337
|
-
✅ Comprehensive CLI argument handling
|
|
338
|
-
✅ Robust error handling and validation
|
|
339
|
-
✅ Extensive documentation and examples
|
|
340
|
-
|
|
341
|
-
**Additional deliverables:**
|
|
342
|
-
- Comprehensive test suite (unit + integration)
|
|
343
|
-
- Multiple example agents
|
|
344
|
-
- Best practices guide
|
|
345
|
-
- Troubleshooting documentation
|
|
346
|
-
|
|
347
|
-
**Ready for:**
|
|
348
|
-
- Code review
|
|
349
|
-
- QA testing
|
|
350
|
-
- Merge to main branch
|
|
351
|
-
- Release in v0.2.7 milestone
|
package/scripts/lib/exec.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Execution Utilities
|
|
3
|
-
*
|
|
4
|
-
* DRY: Reusable command execution with proper error handling
|
|
5
|
-
* Type-safe: Validates commands and handles errors
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { execSync } from 'child_process';
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
|
|
11
|
-
const CommandSchema = z.string().min(1);
|
|
12
|
-
|
|
13
|
-
interface ExecOptions {
|
|
14
|
-
encoding?: BufferEncoding;
|
|
15
|
-
stdio?: 'inherit' | 'pipe';
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Execute command with validation and error handling
|
|
20
|
-
*/
|
|
21
|
-
export function execCommand(
|
|
22
|
-
command: string,
|
|
23
|
-
options: ExecOptions = {}
|
|
24
|
-
): string {
|
|
25
|
-
const validatedCommand = CommandSchema.parse(command);
|
|
26
|
-
|
|
27
|
-
try {
|
|
28
|
-
const result = execSync(validatedCommand, {
|
|
29
|
-
encoding: options.encoding || 'utf8',
|
|
30
|
-
stdio: options.stdio || 'pipe',
|
|
31
|
-
});
|
|
32
|
-
return result as string;
|
|
33
|
-
} catch (error: any) {
|
|
34
|
-
const message = error?.message || 'Command execution failed';
|
|
35
|
-
throw new Error(`Command failed: ${validatedCommand}\n${message}`);
|
|
36
|
-
}
|
|
37
|
-
}
|
package/scripts/lib/file-ops.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File Operations Utilities
|
|
3
|
-
*
|
|
4
|
-
* DRY: Reusable file operations with proper error handling
|
|
5
|
-
* Type-safe: Validates paths and operations
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
|
|
11
|
-
const FilePathSchema = z.string().min(1);
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Read file with validation
|
|
15
|
-
*/
|
|
16
|
-
export function readFile(filePath: string): string {
|
|
17
|
-
const validatedPath = FilePathSchema.parse(filePath);
|
|
18
|
-
|
|
19
|
-
if (!existsSync(validatedPath)) {
|
|
20
|
-
throw new Error(`File not found: ${validatedPath}`);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
try {
|
|
24
|
-
return readFileSync(validatedPath, 'utf8');
|
|
25
|
-
} catch (error) {
|
|
26
|
-
throw new Error(`Failed to read file ${validatedPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Write file with validation
|
|
32
|
-
*/
|
|
33
|
-
export function writeFile(filePath: string, content: string): void {
|
|
34
|
-
const validatedPath = FilePathSchema.parse(filePath);
|
|
35
|
-
|
|
36
|
-
try {
|
|
37
|
-
writeFileSync(validatedPath, content, 'utf8');
|
|
38
|
-
} catch (error) {
|
|
39
|
-
throw new Error(`Failed to write file ${validatedPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Check if file exists
|
|
45
|
-
*/
|
|
46
|
-
export function fileExists(filePath: string): boolean {
|
|
47
|
-
const validatedPath = FilePathSchema.parse(filePath);
|
|
48
|
-
return existsSync(validatedPath);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Validate file exists or throw
|
|
53
|
-
*/
|
|
54
|
-
export function requireFile(filePath: string, errorMessage?: string): void {
|
|
55
|
-
if (!fileExists(filePath)) {
|
|
56
|
-
throw new Error(errorMessage || `Required file not found: ${filePath}`);
|
|
57
|
-
}
|
|
58
|
-
}
|
package/scripts/lib/version.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Version Management Utilities
|
|
3
|
-
*
|
|
4
|
-
* DRY: Single source of truth for version operations
|
|
5
|
-
* Type-safe: Uses Zod for validation
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { readFileSync } from 'fs';
|
|
9
|
-
import { join, dirname } from 'path';
|
|
10
|
-
import { fileURLToPath } from 'url';
|
|
11
|
-
import { z } from 'zod';
|
|
12
|
-
import {
|
|
13
|
-
PackageJsonSchema,
|
|
14
|
-
VersionSchema,
|
|
15
|
-
type PackageJson,
|
|
16
|
-
type Version,
|
|
17
|
-
} from '../schemas/package.schema.js';
|
|
18
|
-
|
|
19
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
20
|
-
const __dirname = dirname(__filename);
|
|
21
|
-
const ROOT = join(__dirname, '..', '..');
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Get current version from package.json with Zod validation
|
|
25
|
-
*/
|
|
26
|
-
export function getCurrentVersion(): Version {
|
|
27
|
-
const packageJsonPath = join(ROOT, 'package.json');
|
|
28
|
-
const content = readFileSync(packageJsonPath, 'utf8');
|
|
29
|
-
|
|
30
|
-
try {
|
|
31
|
-
const json = JSON.parse(content);
|
|
32
|
-
const pkg = PackageJsonSchema.parse(json);
|
|
33
|
-
return VersionSchema.parse(pkg.version);
|
|
34
|
-
} catch (error) {
|
|
35
|
-
if (error instanceof z.ZodError) {
|
|
36
|
-
throw new Error(
|
|
37
|
-
`Invalid package.json version: ${error.errors.map((e) => e.message).join(', ')}`
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
throw error;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Get package.json with validation
|
|
46
|
-
*/
|
|
47
|
-
export function getPackageJson(): PackageJson {
|
|
48
|
-
const packageJsonPath = join(ROOT, 'package.json');
|
|
49
|
-
const content = readFileSync(packageJsonPath, 'utf8');
|
|
50
|
-
|
|
51
|
-
try {
|
|
52
|
-
const json = JSON.parse(content);
|
|
53
|
-
return PackageJsonSchema.parse(json);
|
|
54
|
-
} catch (error) {
|
|
55
|
-
if (error instanceof z.ZodError) {
|
|
56
|
-
throw new Error(
|
|
57
|
-
`Invalid package.json: ${error.errors.map((e) => e.message).join(', ')}`
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
throw error;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Build schema path from version
|
|
66
|
-
*/
|
|
67
|
-
export function getSchemaPath(version: Version): string {
|
|
68
|
-
return `spec/v${version}/ossa-${version}.schema.json`;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Build output path for generated types
|
|
73
|
-
*/
|
|
74
|
-
export function getTypesOutputPath(version: Version): string {
|
|
75
|
-
return `src/types/generated/ossa-${version}.types.ts`;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Build output path for generated Zod schemas
|
|
80
|
-
*/
|
|
81
|
-
export function getZodOutputPath(version: Version): string {
|
|
82
|
-
return `src/types/generated/ossa-${version}.zod.ts`;
|
|
83
|
-
}
|
package/website/.lighthouserc.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Config } from '@lhci/cli';
|
|
2
|
-
|
|
3
|
-
const config: Config = {
|
|
4
|
-
ci: {
|
|
5
|
-
collect: {
|
|
6
|
-
staticDistDir: './out',
|
|
7
|
-
numberOfRuns: 3,
|
|
8
|
-
},
|
|
9
|
-
assert: {
|
|
10
|
-
assertions: {
|
|
11
|
-
'categories:performance': ['error', { minScore: 0.9 }],
|
|
12
|
-
'categories:accessibility': ['error', { minScore: 0.9 }],
|
|
13
|
-
'categories:best-practices': ['error', { minScore: 0.9 }],
|
|
14
|
-
'categories:seo': ['error', { minScore: 0.9 }],
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
upload: {
|
|
18
|
-
target: 'temporary-public-storage',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export default config;
|
|
24
|
-
|
package/website/.prettierrc
DELETED
package/website/Dockerfile
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# OSSA Website - Next.js Dev Server (for quick deployment)
|
|
2
|
-
# Build from project root to access examples directory
|
|
3
|
-
FROM node:20-alpine
|
|
4
|
-
|
|
5
|
-
WORKDIR /app
|
|
6
|
-
|
|
7
|
-
# Copy package files
|
|
8
|
-
COPY website/package*.json ./website/
|
|
9
|
-
RUN cd website && npm install --legacy-peer-deps
|
|
10
|
-
|
|
11
|
-
# Copy examples directory (needed for generate-examples script)
|
|
12
|
-
COPY examples ./examples
|
|
13
|
-
|
|
14
|
-
# Copy website source code
|
|
15
|
-
COPY website ./website
|
|
16
|
-
|
|
17
|
-
WORKDIR /app/website
|
|
18
|
-
|
|
19
|
-
# Generate examples.json - this MUST succeed
|
|
20
|
-
RUN npm run generate-examples
|
|
21
|
-
|
|
22
|
-
# Verify examples.json was created and has content
|
|
23
|
-
RUN test -f public/examples.json && echo "✅ examples.json created" || (echo "❌ examples.json NOT FOUND" && exit 1)
|
|
24
|
-
RUN test -s public/examples.json && echo "✅ examples.json has content" || (echo "❌ examples.json is empty" && exit 1)
|
|
25
|
-
|
|
26
|
-
# Expose port
|
|
27
|
-
EXPOSE 3000
|
|
28
|
-
|
|
29
|
-
# Start Next.js dev server
|
|
30
|
-
CMD ["npm", "run", "dev"]
|