@bluefly/openstandardagents 0.3.1 → 0.3.2
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 +87 -0
- package/.gitlab-ci-trigger +1 -0
- package/.wiki-config.json +24 -0
- package/CHANGELOG.md +212 -1
- package/README.md +31 -56
- package/dist/adapters/anthropic/runtime.js +2 -2
- package/dist/adapters/anthropic/runtime.js.map +1 -1
- package/dist/bot/architecture-validator-bot.d.ts +8 -0
- package/dist/bot/architecture-validator-bot.d.ts.map +1 -0
- package/dist/bot/architecture-validator-bot.js +15 -0
- package/dist/bot/architecture-validator-bot.js.map +1 -0
- package/dist/bot/ci-pipeline-bot.d.ts +7 -0
- package/dist/bot/ci-pipeline-bot.d.ts.map +1 -0
- package/dist/bot/ci-pipeline-bot.js +7 -0
- package/dist/bot/ci-pipeline-bot.js.map +1 -0
- package/dist/bot/compliance-bot.d.ts +56 -0
- package/dist/bot/compliance-bot.d.ts.map +1 -0
- package/dist/bot/compliance-bot.js +203 -0
- package/dist/bot/compliance-bot.js.map +1 -0
- package/dist/bot/dependency-updater-bot.d.ts +9 -0
- package/dist/bot/dependency-updater-bot.d.ts.map +1 -0
- package/dist/bot/dependency-updater-bot.js +9 -0
- package/dist/bot/dependency-updater-bot.js.map +1 -0
- package/dist/bot/security-scanner-bot.d.ts +11 -0
- package/dist/bot/security-scanner-bot.d.ts.map +1 -0
- package/dist/bot/security-scanner-bot.js +21 -0
- package/dist/bot/security-scanner-bot.js.map +1 -0
- package/dist/cli/commands/agent-card.command.d.ts +11 -0
- package/dist/cli/commands/agent-card.command.d.ts.map +1 -0
- package/dist/cli/commands/agent-card.command.js +285 -0
- package/dist/cli/commands/agent-card.command.js.map +1 -0
- package/dist/cli/commands/agents.command.d.ts +11 -0
- package/dist/cli/commands/agents.command.d.ts.map +1 -0
- package/dist/cli/commands/agents.command.js +326 -0
- package/dist/cli/commands/agents.command.js.map +1 -0
- package/dist/cli/commands/generate.command.d.ts +13 -2
- package/dist/cli/commands/generate.command.d.ts.map +1 -1
- package/dist/cli/commands/generate.command.js +204 -29
- package/dist/cli/commands/generate.command.js.map +1 -1
- package/dist/cli/commands/registry.command.d.ts +14 -0
- package/dist/cli/commands/registry.command.d.ts.map +1 -0
- package/dist/cli/commands/registry.command.js +428 -0
- package/dist/cli/commands/registry.command.js.map +1 -0
- package/dist/cli/commands/workspace.command.d.ts +14 -0
- package/dist/cli/commands/workspace.command.d.ts.map +1 -0
- package/dist/cli/commands/workspace.command.js +467 -0
- package/dist/cli/commands/workspace.command.js.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/di-container.d.ts.map +1 -1
- package/dist/di-container.js +20 -0
- package/dist/di-container.js.map +1 -1
- package/dist/services/codegen/codegen.service.d.ts +75 -0
- package/dist/services/codegen/codegen.service.d.ts.map +1 -0
- package/dist/services/codegen/codegen.service.js +136 -0
- package/dist/services/codegen/codegen.service.js.map +1 -0
- package/dist/services/codegen/generators/manifest.generator.d.ts +41 -0
- package/dist/services/codegen/generators/manifest.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/manifest.generator.js +178 -0
- package/dist/services/codegen/generators/manifest.generator.js.map +1 -0
- package/dist/services/codegen/generators/openapi.generator.d.ts +46 -0
- package/dist/services/codegen/generators/openapi.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/openapi.generator.js +157 -0
- package/dist/services/codegen/generators/openapi.generator.js.map +1 -0
- package/dist/services/codegen/generators/types.generator.d.ts +27 -0
- package/dist/services/codegen/generators/types.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/types.generator.js +97 -0
- package/dist/services/codegen/generators/types.generator.js.map +1 -0
- package/dist/services/codegen/generators/vscode.generator.d.ts +43 -0
- package/dist/services/codegen/generators/vscode.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/vscode.generator.js +163 -0
- package/dist/services/codegen/generators/vscode.generator.js.map +1 -0
- package/dist/services/codegen/generators/zod.generator.d.ts +31 -0
- package/dist/services/codegen/generators/zod.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/zod.generator.js +134 -0
- package/dist/services/codegen/generators/zod.generator.js.map +1 -0
- package/dist/services/codegen/index.d.ts +33 -0
- package/dist/services/codegen/index.d.ts.map +1 -0
- package/dist/services/codegen/index.js +36 -0
- package/dist/services/codegen/index.js.map +1 -0
- package/dist/spec/extensions/openapi/ossa-openapi-extensions.schema.json +804 -0
- package/dist/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +1 -1
- package/dist/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +1 -1
- package/dist/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
- package/dist/spec/v0.3.0/runtime-bindings/anthropic.yaml +209 -0
- package/dist/spec/v0.3.1/examples/agent-with-identity.ossa.yaml +68 -0
- package/dist/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +1 -1
- package/dist/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +1 -1
- package/dist/spec/v0.3.1/examples/multi-provider-identity.ossa.yaml +236 -0
- package/dist/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
- package/dist/spec/v0.3.1/extensions/agent-identity.yaml +594 -0
- package/dist/spec/v0.3.1/ossa-0.3.1.schema.json +300 -21
- package/dist/spec/v0.3.2/MIGRATION-v0.3.1-to-v0.3.2.md +293 -0
- package/dist/spec/v0.3.2/UNIFIED-SCHEMA.md +120 -0
- package/dist/spec/v0.3.2/access_tiers.yaml +375 -0
- package/dist/spec/v0.3.2/adapters/drupal.md +541 -0
- package/dist/spec/v0.3.2/adapters/symfony.md +659 -0
- package/dist/spec/v0.3.2/agent-test.schema.json +75 -0
- package/dist/spec/v0.3.2/examples/access-tiers/README.md +106 -0
- package/dist/spec/v0.3.2/examples/access-tiers/code-critic.ossa.yaml +119 -0
- package/dist/spec/v0.3.2/examples/access-tiers/compliance-governor.ossa.yaml +234 -0
- package/dist/spec/v0.3.2/examples/access-tiers/deployment-operator.ossa.yaml +201 -0
- package/dist/spec/v0.3.2/examples/access-tiers/doc-generator.ossa.yaml +117 -0
- package/dist/spec/v0.3.2/examples/access-tiers/security-scanner.ossa.yaml +133 -0
- package/dist/spec/v0.3.2/examples/agent-with-identity.ossa.yaml +68 -0
- package/dist/spec/v0.3.2/examples/drupal-content-writer.ossa.yaml +110 -0
- package/dist/spec/v0.3.2/examples/drupal-moderation-assistant.ossa.yaml +96 -0
- package/dist/spec/v0.3.2/examples/multi-provider-identity.ossa.yaml +236 -0
- package/dist/spec/v0.3.2/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
- package/dist/spec/v0.3.2/examples/tasks/data-transform.ossa.yaml +147 -0
- package/dist/spec/v0.3.2/examples/tasks/publish-content.ossa.yaml +125 -0
- package/dist/spec/v0.3.2/examples/workflows/content-publishing.ossa.yaml +190 -0
- package/dist/spec/v0.3.2/examples/workflows/deployment-pipeline.ossa.yaml +247 -0
- package/dist/spec/v0.3.2/extensions/agent-identity.yaml +594 -0
- package/dist/spec/v0.3.2/extensions/drupal.md +417 -0
- package/dist/spec/v0.3.2/infrastructure/service-ports.yaml +324 -0
- package/dist/spec/{v0.3.1/ossa-0.3.0.schema.json → v0.3.2/ossa-0.3.2.schema.json} +563 -34
- package/dist/spec/v0.3.2/protocols/delegation.yaml +239 -0
- package/dist/spec/v0.3.2/protocols/sse.md +494 -0
- package/dist/spec/v0.3.2/protocols/webrtc.md +600 -0
- package/dist/spec/v0.3.2/protocols/websocket.md +362 -0
- package/dist/spec/v0.3.2/runtime/RUNTIME.md +457 -0
- package/dist/spec/v0.3.2/runtime/memory-model.yaml +871 -0
- package/dist/spec/v0.3.2/runtime/runtime.yaml +926 -0
- package/dist/spec/v0.3.2/schemas/agent-unified.yaml +165 -0
- package/dist/spec/v0.3.2/schemas/capabilities.yaml +102 -0
- package/dist/spec/v0.3.2/schemas/functions.yaml +75 -0
- package/dist/spec/v0.3.2/schemas/messaging/channel.schema.json +245 -0
- package/dist/spec/v0.3.2/schemas/messaging/delivery-receipt.schema.json +192 -0
- package/dist/spec/v0.3.2/schemas/messaging/message.schema.json +205 -0
- package/dist/spec/v0.3.2/schemas/messaging/subscription.schema.json +214 -0
- package/dist/spec/v0.3.2/schemas/runtime.yaml +102 -0
- package/dist/spec/v0.3.2/schemas/taxonomy.yaml +533 -0
- package/dist/spec/v0.3.2/schemas/unified-llm.yaml +91 -0
- package/dist/spec/v0.3.2/taxonomy.yaml +363 -0
- package/dist/types/generated/ossa-0.3.2.types.d.ts +367 -0
- package/dist/types/generated/ossa-0.3.2.types.d.ts.map +1 -0
- package/dist/types/generated/ossa-0.3.2.types.js +10 -0
- package/dist/types/generated/ossa-0.3.2.types.js.map +1 -0
- package/dist/types/generated/ossa-0.3.2.zod.d.ts +36 -0
- package/dist/types/generated/ossa-0.3.2.zod.d.ts.map +1 -0
- package/dist/types/generated/ossa-0.3.2.zod.js +25 -0
- package/dist/types/generated/ossa-0.3.2.zod.js.map +1 -0
- package/examples/adapters/drupal-eca-mapping.yaml +1 -1
- package/examples/adapters/drupal-eca-task.yaml +1 -1
- package/examples/adapters/drupal-flowdrop-mapping.yaml +1 -1
- package/examples/adapters/drupal-maestro-mapping.yaml +1 -1
- package/examples/adapters/mistral-agent.yaml +1 -1
- package/examples/adapters/symfony-messenger-task.yaml +1 -1
- package/examples/adapters/symfony-messenger-workflow.yaml +1 -1
- 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 +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/agents/architecture-healer-enterprise.yaml +1 -1
- package/examples/agents/dependency-healer-npm.yaml +1 -1
- package/examples/agents/spec-healer-openapi.yaml +1 -1
- package/examples/agents/wiki-healer-production.yaml +1 -1
- package/examples/agents-md/code-agent.ossa.json +36 -11
- package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
- package/examples/anthropic/claude-assistant.ossa.json +4 -4
- package/examples/autogen/multi-agent.ossa.json +2 -2
- package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +1 -1
- package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
- package/examples/claude-code/ossa-validator.ossa.yaml +1 -1
- package/examples/common_npm/agent-router.ossa.yaml +1 -1
- package/examples/contracts/data-consumer.ossa.yaml +1 -1
- package/examples/contracts/data-producer-v2.ossa.yaml +1 -1
- package/examples/contracts/data-producer.ossa.yaml +1 -1
- package/examples/crewai/research-team.ossa.json +2 -2
- package/examples/cursor/code-review-agent.ossa.json +2 -2
- package/examples/drupal/ai_agents_ossa-module/.agents/example-agent/agent.ossa.yaml +1 -1
- package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
- package/examples/extensions/agents-md-advanced.yml +1 -1
- package/examples/extensions/agents-md-basic.yml +1 -1
- package/examples/extensions/agents-md-sync.yml +1 -1
- package/examples/extensions/agents-md-v1.yml +1 -1
- package/examples/extensions/drupal-v1.yml +1 -1
- package/examples/extensions/encryption-multi-provider.yaml +4 -4
- package/examples/extensions/kagent-v1.yml +1 -1
- package/examples/extensions/knowledge-sources.yaml +1 -1
- package/examples/extensions/mcp-full-featured.yaml +1 -1
- package/examples/getting-started/01-minimal-agent.ossa.yaml +3 -3
- package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
- package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
- package/examples/getting-started/04-agent-with-messaging.ossa.yaml +2 -2
- package/examples/getting-started/05-workflow-composition.ossa.yaml +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 -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 +2 -2
- package/examples/langflow/workflow-agent.ossa.json +2 -2
- package/examples/langgraph/state-machine-agent.ossa.json +2 -2
- package/examples/llamaindex/rag-agent.ossa.json +2 -2
- package/examples/messaging/dependency-healer.ossa.yaml +1 -1
- package/examples/messaging/incident-responder.ossa.yaml +1 -1
- package/examples/messaging/routing-rules.ossa.yaml +3 -3
- package/examples/messaging/security-scanner.ossa.yaml +1 -1
- package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
- package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
- package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
- package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
- package/examples/observability/activity-stream-full.yaml +1 -1
- package/examples/openai/basic-agent.ossa.yaml +1 -1
- package/examples/openai/multi-tool-agent.ossa.json +2 -2
- package/examples/openai/swarm-agent.ossa.json +2 -2
- package/examples/production/document-analyzer-openai.yml +1 -1
- package/examples/quickstart/support-agent.ossa.yaml +1 -1
- package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +1 -1
- package/examples/real-world/rag-documentation-assistant.ossa.yaml +1 -1
- package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +1 -1
- package/examples/schema/reusable-components.yaml +1 -1
- package/examples/showcase/ci-pipeline.ossa.yaml +59 -0
- package/examples/showcase/code-assistant.ossa.yaml +118 -0
- package/examples/showcase/code-reviewer.ossa.yaml +61 -0
- package/examples/showcase/compliance-validator.ossa.yaml +62 -0
- package/examples/showcase/content-writer.ossa.yaml +67 -0
- package/examples/showcase/data-transformer.ossa.yaml +78 -0
- package/examples/showcase/doc-generator.ossa.yaml +68 -0
- package/examples/showcase/security-scanner.ossa.yaml +65 -0
- package/examples/showcase/test-generator.ossa.yaml +63 -0
- package/examples/showcase/workflow-orchestrator.ossa.yaml +129 -0
- package/examples/tasks/batch-email-sender.yaml +1 -1
- package/examples/tasks/data-transform.yaml +1 -1
- package/examples/tasks/publish-content.yaml +1 -1
- package/examples/templates/ossa-compliance.yaml +1 -1
- package/examples/unified/security-scanner.ossa.yaml +1 -1
- package/examples/vercel/edge-agent.ossa.json +2 -2
- package/examples/workflows/batch-email-campaign.yaml +1 -1
- package/examples/workflows/content-review-publish.yaml +1 -1
- package/examples/workflows/simple-etl.yaml +1 -1
- package/llms-ctx-full.txt +39 -0
- package/llms-ctx.txt +39 -0
- package/openapi/agent-communication.yaml +1 -1
- package/openapi/agent-crud.yaml +8 -8
- package/openapi/agent-discovery.yaml +2 -2
- package/openapi/agent-identity.yaml +8 -8
- package/openapi/cli-commands.openapi.yaml +231 -0
- package/openapi/core/ossa-core-api.openapi.yaml +1 -1
- package/openapi/core/ossa-registry-api.openapi.yaml +1 -1
- package/openapi/core/ossa-registry.openapi.yaml +1 -1
- package/openapi/core/unified-agent-gateway.openapi.yaml +1 -1
- package/openapi/github-sync.yaml +1 -1
- package/openapi/protocols/sse-streams.yaml +1 -1
- package/openapi/protocols/websocket-events.yaml +2 -2
- package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/critic-agent-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/governor-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/helm-generator.openapi.yaml +1 -1
- package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/judge-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +1 -1
- package/openapi/reference-implementations/worker-agent-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +1 -1
- package/package.json +13 -3
- package/spec/extensions/openapi/ossa-openapi-extensions.schema.json +804 -0
- package/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +1 -1
- package/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +1 -1
- package/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
- package/spec/v0.3.0/runtime-bindings/anthropic.yaml +209 -0
- package/spec/v0.3.1/examples/agent-with-identity.ossa.yaml +68 -0
- package/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +1 -1
- package/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +1 -1
- package/spec/v0.3.1/examples/multi-provider-identity.ossa.yaml +236 -0
- package/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
- package/spec/v0.3.1/extensions/agent-identity.yaml +594 -0
- package/spec/v0.3.1/ossa-0.3.1.schema.json +300 -21
- package/spec/v0.3.2/MIGRATION-v0.3.1-to-v0.3.2.md +293 -0
- package/spec/v0.3.2/UNIFIED-SCHEMA.md +120 -0
- package/spec/v0.3.2/access_tiers.yaml +375 -0
- package/spec/v0.3.2/adapters/drupal.md +541 -0
- package/spec/v0.3.2/adapters/symfony.md +659 -0
- package/spec/v0.3.2/agent-test.schema.json +75 -0
- package/spec/v0.3.2/examples/access-tiers/README.md +106 -0
- package/spec/v0.3.2/examples/access-tiers/code-critic.ossa.yaml +119 -0
- package/spec/v0.3.2/examples/access-tiers/compliance-governor.ossa.yaml +234 -0
- package/spec/v0.3.2/examples/access-tiers/deployment-operator.ossa.yaml +201 -0
- package/spec/v0.3.2/examples/access-tiers/doc-generator.ossa.yaml +117 -0
- package/spec/v0.3.2/examples/access-tiers/security-scanner.ossa.yaml +133 -0
- package/spec/v0.3.2/examples/agent-with-identity.ossa.yaml +68 -0
- package/spec/v0.3.2/examples/drupal-content-writer.ossa.yaml +110 -0
- package/spec/v0.3.2/examples/drupal-moderation-assistant.ossa.yaml +96 -0
- package/spec/v0.3.2/examples/multi-provider-identity.ossa.yaml +236 -0
- package/spec/v0.3.2/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
- package/spec/v0.3.2/examples/tasks/data-transform.ossa.yaml +147 -0
- package/spec/v0.3.2/examples/tasks/publish-content.ossa.yaml +125 -0
- package/spec/v0.3.2/examples/workflows/content-publishing.ossa.yaml +190 -0
- package/spec/v0.3.2/examples/workflows/deployment-pipeline.ossa.yaml +247 -0
- package/spec/v0.3.2/extensions/agent-identity.yaml +594 -0
- package/spec/v0.3.2/extensions/drupal.md +417 -0
- package/spec/v0.3.2/infrastructure/service-ports.yaml +324 -0
- package/spec/{v0.3.1/ossa-0.3.0.schema.json → v0.3.2/ossa-0.3.2.schema.json} +563 -34
- package/spec/v0.3.2/protocols/delegation.yaml +239 -0
- package/spec/v0.3.2/protocols/sse.md +494 -0
- package/spec/v0.3.2/protocols/webrtc.md +600 -0
- package/spec/v0.3.2/protocols/websocket.md +362 -0
- package/spec/v0.3.2/runtime/RUNTIME.md +457 -0
- package/spec/v0.3.2/runtime/memory-model.yaml +871 -0
- package/spec/v0.3.2/runtime/runtime.yaml +926 -0
- package/spec/v0.3.2/schemas/agent-unified.yaml +165 -0
- package/spec/v0.3.2/schemas/capabilities.yaml +102 -0
- package/spec/v0.3.2/schemas/functions.yaml +75 -0
- package/spec/v0.3.2/schemas/messaging/channel.schema.json +245 -0
- package/spec/v0.3.2/schemas/messaging/delivery-receipt.schema.json +192 -0
- package/spec/v0.3.2/schemas/messaging/message.schema.json +205 -0
- package/spec/v0.3.2/schemas/messaging/subscription.schema.json +214 -0
- package/spec/v0.3.2/schemas/runtime.yaml +102 -0
- package/spec/v0.3.2/schemas/taxonomy.yaml +533 -0
- package/spec/v0.3.2/schemas/unified-llm.yaml +91 -0
- package/spec/v0.3.2/taxonomy.yaml +363 -0
- package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +0 -60
- package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +0 -68
- package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +0 -106
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codegen Service - CI-Based Schema/Version Generation
|
|
3
|
+
*
|
|
4
|
+
* CRUD Operations:
|
|
5
|
+
* - generate: Create/update generated files
|
|
6
|
+
* - list: Show what would be generated
|
|
7
|
+
* - validate: Check for version drift
|
|
8
|
+
* - sync: Update all files to current version
|
|
9
|
+
*
|
|
10
|
+
* Single Source of Truth: package.json version
|
|
11
|
+
*
|
|
12
|
+
* @see src/utils/version.ts for getVersion(), getApiVersion()
|
|
13
|
+
*/
|
|
14
|
+
import { ManifestGenerator } from './generators/manifest.generator.js';
|
|
15
|
+
import { VSCodeGenerator } from './generators/vscode.generator.js';
|
|
16
|
+
import { OpenAPIGenerator } from './generators/openapi.generator.js';
|
|
17
|
+
import { TypesGenerator } from './generators/types.generator.js';
|
|
18
|
+
import { ZodGenerator } from './generators/zod.generator.js';
|
|
19
|
+
export interface GenerateResult {
|
|
20
|
+
generator: string;
|
|
21
|
+
filesUpdated: number;
|
|
22
|
+
filesCreated: number;
|
|
23
|
+
errors: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface DriftReport {
|
|
26
|
+
hasDrift: boolean;
|
|
27
|
+
currentVersion: string;
|
|
28
|
+
filesWithOldVersion: Array<{
|
|
29
|
+
path: string;
|
|
30
|
+
foundVersion: string;
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
export type GeneratorType = 'types' | 'zod' | 'manifests' | 'vscode' | 'openapi' | 'all';
|
|
34
|
+
export declare class CodegenService {
|
|
35
|
+
private manifestGenerator;
|
|
36
|
+
private vscodeGenerator;
|
|
37
|
+
private openapiGenerator;
|
|
38
|
+
private typesGenerator;
|
|
39
|
+
private zodGenerator;
|
|
40
|
+
constructor(manifestGenerator: ManifestGenerator, vscodeGenerator: VSCodeGenerator, openapiGenerator: OpenAPIGenerator, typesGenerator: TypesGenerator, zodGenerator: ZodGenerator);
|
|
41
|
+
/**
|
|
42
|
+
* Get current version info
|
|
43
|
+
*/
|
|
44
|
+
getVersionInfo(): {
|
|
45
|
+
version: string;
|
|
46
|
+
apiVersion: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* CRUD: CREATE/UPDATE - Generate files
|
|
50
|
+
*/
|
|
51
|
+
generate(type: GeneratorType, dryRun?: boolean): Promise<GenerateResult[]>;
|
|
52
|
+
/**
|
|
53
|
+
* CRUD: READ - List files that would be generated
|
|
54
|
+
*/
|
|
55
|
+
list(type: GeneratorType): Promise<string[]>;
|
|
56
|
+
/**
|
|
57
|
+
* CRUD: VALIDATE - Check for version drift
|
|
58
|
+
*/
|
|
59
|
+
validate(): Promise<DriftReport>;
|
|
60
|
+
/**
|
|
61
|
+
* CRUD: UPDATE - Sync all files to current version
|
|
62
|
+
*/
|
|
63
|
+
sync(dryRun?: boolean): Promise<GenerateResult[]>;
|
|
64
|
+
private getGenerators;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Base interface for all generators
|
|
68
|
+
*/
|
|
69
|
+
export interface Generator {
|
|
70
|
+
name: string;
|
|
71
|
+
generate(dryRun: boolean): Promise<GenerateResult>;
|
|
72
|
+
listTargetFiles(): Promise<string[]>;
|
|
73
|
+
checkDrift(version: string, apiVersion: string): Promise<DriftReport['filesWithOldVersion']>;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=codegen.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen.service.d.ts","sourceRoot":"","sources":["../../../src/services/codegen/codegen.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,KAAK,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAEzF,qBACa,cAAc;IAEI,OAAO,CAAC,iBAAiB;IAC3B,OAAO,CAAC,eAAe;IACtB,OAAO,CAAC,gBAAgB;IAC1B,OAAO,CAAC,cAAc;IACxB,OAAO,CAAC,YAAY;gBAJP,iBAAiB,EAAE,iBAAiB,EACtC,eAAe,EAAE,eAAe,EAC/B,gBAAgB,EAAE,gBAAgB,EACpC,cAAc,EAAE,cAAc,EAChC,YAAY,EAAE,YAAY;IAG1D;;OAEG;IACH,cAAc,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAOzD;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAY9E;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAYlD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAmBtC;;OAEG;IACG,IAAI,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIrD,OAAO,CAAC,aAAa;CAoBtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACnD,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC;CAC9F"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codegen Service - CI-Based Schema/Version Generation
|
|
3
|
+
*
|
|
4
|
+
* CRUD Operations:
|
|
5
|
+
* - generate: Create/update generated files
|
|
6
|
+
* - list: Show what would be generated
|
|
7
|
+
* - validate: Check for version drift
|
|
8
|
+
* - sync: Update all files to current version
|
|
9
|
+
*
|
|
10
|
+
* Single Source of Truth: package.json version
|
|
11
|
+
*
|
|
12
|
+
* @see src/utils/version.ts for getVersion(), getApiVersion()
|
|
13
|
+
*/
|
|
14
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
15
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
17
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
18
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
|
+
};
|
|
20
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
21
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
22
|
+
};
|
|
23
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
24
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
25
|
+
};
|
|
26
|
+
import { injectable, inject } from 'inversify';
|
|
27
|
+
import { getVersion, getApiVersion } from '../../utils/version.js';
|
|
28
|
+
import { ManifestGenerator } from './generators/manifest.generator.js';
|
|
29
|
+
import { VSCodeGenerator } from './generators/vscode.generator.js';
|
|
30
|
+
import { OpenAPIGenerator } from './generators/openapi.generator.js';
|
|
31
|
+
import { TypesGenerator } from './generators/types.generator.js';
|
|
32
|
+
import { ZodGenerator } from './generators/zod.generator.js';
|
|
33
|
+
let CodegenService = class CodegenService {
|
|
34
|
+
manifestGenerator;
|
|
35
|
+
vscodeGenerator;
|
|
36
|
+
openapiGenerator;
|
|
37
|
+
typesGenerator;
|
|
38
|
+
zodGenerator;
|
|
39
|
+
constructor(manifestGenerator, vscodeGenerator, openapiGenerator, typesGenerator, zodGenerator) {
|
|
40
|
+
this.manifestGenerator = manifestGenerator;
|
|
41
|
+
this.vscodeGenerator = vscodeGenerator;
|
|
42
|
+
this.openapiGenerator = openapiGenerator;
|
|
43
|
+
this.typesGenerator = typesGenerator;
|
|
44
|
+
this.zodGenerator = zodGenerator;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get current version info
|
|
48
|
+
*/
|
|
49
|
+
getVersionInfo() {
|
|
50
|
+
return {
|
|
51
|
+
version: getVersion(),
|
|
52
|
+
apiVersion: getApiVersion(),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* CRUD: CREATE/UPDATE - Generate files
|
|
57
|
+
*/
|
|
58
|
+
async generate(type, dryRun = false) {
|
|
59
|
+
const results = [];
|
|
60
|
+
const generators = this.getGenerators(type);
|
|
61
|
+
for (const gen of generators) {
|
|
62
|
+
const result = await gen.generate(dryRun);
|
|
63
|
+
results.push(result);
|
|
64
|
+
}
|
|
65
|
+
return results;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* CRUD: READ - List files that would be generated
|
|
69
|
+
*/
|
|
70
|
+
async list(type) {
|
|
71
|
+
const generators = this.getGenerators(type);
|
|
72
|
+
const files = [];
|
|
73
|
+
for (const gen of generators) {
|
|
74
|
+
const genFiles = await gen.listTargetFiles();
|
|
75
|
+
files.push(...genFiles);
|
|
76
|
+
}
|
|
77
|
+
return files;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* CRUD: VALIDATE - Check for version drift
|
|
81
|
+
*/
|
|
82
|
+
async validate() {
|
|
83
|
+
const currentVersion = getVersion();
|
|
84
|
+
const apiVersion = getApiVersion();
|
|
85
|
+
const filesWithOldVersion = [];
|
|
86
|
+
// Check all generators for drift
|
|
87
|
+
const generators = this.getGenerators('all');
|
|
88
|
+
for (const gen of generators) {
|
|
89
|
+
const drift = await gen.checkDrift(currentVersion, apiVersion);
|
|
90
|
+
filesWithOldVersion.push(...drift);
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
hasDrift: filesWithOldVersion.length > 0,
|
|
94
|
+
currentVersion,
|
|
95
|
+
filesWithOldVersion,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* CRUD: UPDATE - Sync all files to current version
|
|
100
|
+
*/
|
|
101
|
+
async sync(dryRun = false) {
|
|
102
|
+
return this.generate('all', dryRun);
|
|
103
|
+
}
|
|
104
|
+
getGenerators(type) {
|
|
105
|
+
const generatorMap = {
|
|
106
|
+
types: this.typesGenerator,
|
|
107
|
+
zod: this.zodGenerator,
|
|
108
|
+
manifests: this.manifestGenerator,
|
|
109
|
+
vscode: this.vscodeGenerator,
|
|
110
|
+
openapi: this.openapiGenerator,
|
|
111
|
+
};
|
|
112
|
+
if (type === 'all') {
|
|
113
|
+
return Object.values(generatorMap);
|
|
114
|
+
}
|
|
115
|
+
const generator = generatorMap[type];
|
|
116
|
+
if (!generator) {
|
|
117
|
+
throw new Error(`Unknown generator type: ${type}`);
|
|
118
|
+
}
|
|
119
|
+
return [generator];
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
CodegenService = __decorate([
|
|
123
|
+
injectable(),
|
|
124
|
+
__param(0, inject(ManifestGenerator)),
|
|
125
|
+
__param(1, inject(VSCodeGenerator)),
|
|
126
|
+
__param(2, inject(OpenAPIGenerator)),
|
|
127
|
+
__param(3, inject(TypesGenerator)),
|
|
128
|
+
__param(4, inject(ZodGenerator)),
|
|
129
|
+
__metadata("design:paramtypes", [ManifestGenerator,
|
|
130
|
+
VSCodeGenerator,
|
|
131
|
+
OpenAPIGenerator,
|
|
132
|
+
TypesGenerator,
|
|
133
|
+
ZodGenerator])
|
|
134
|
+
], CodegenService);
|
|
135
|
+
export { CodegenService };
|
|
136
|
+
//# sourceMappingURL=codegen.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen.service.js","sourceRoot":"","sources":["../../../src/services/codegen/codegen.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest Generator - Update apiVersion in all OSSA manifests
|
|
3
|
+
*
|
|
4
|
+
* Fixes 161+ .ossa.yaml files with hardcoded versions.
|
|
5
|
+
* Uses single source of truth: package.json version
|
|
6
|
+
*/
|
|
7
|
+
import type { Generator, GenerateResult, DriftReport } from '../codegen.service.js';
|
|
8
|
+
export declare class ManifestGenerator implements Generator {
|
|
9
|
+
name: string;
|
|
10
|
+
private readonly patterns;
|
|
11
|
+
private readonly excludePatterns;
|
|
12
|
+
/**
|
|
13
|
+
* Generate: Update apiVersion in all manifests
|
|
14
|
+
*/
|
|
15
|
+
generate(dryRun: boolean): Promise<GenerateResult>;
|
|
16
|
+
/**
|
|
17
|
+
* List all manifest files
|
|
18
|
+
*/
|
|
19
|
+
listTargetFiles(): Promise<string[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Check for version drift in manifests
|
|
22
|
+
*/
|
|
23
|
+
checkDrift(version: string, apiVersion: string): Promise<DriftReport['filesWithOldVersion']>;
|
|
24
|
+
/**
|
|
25
|
+
* Update a single manifest file
|
|
26
|
+
*/
|
|
27
|
+
private updateManifest;
|
|
28
|
+
/**
|
|
29
|
+
* Update YAML manifest apiVersion
|
|
30
|
+
*/
|
|
31
|
+
private updateYamlManifest;
|
|
32
|
+
/**
|
|
33
|
+
* Update JSON manifest apiVersion
|
|
34
|
+
*/
|
|
35
|
+
private updateJsonManifest;
|
|
36
|
+
/**
|
|
37
|
+
* Extract apiVersion from file content
|
|
38
|
+
*/
|
|
39
|
+
private extractApiVersion;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=manifest.generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.generator.d.ts","sourceRoot":"","sources":["../../../../src/services/codegen/generators/manifest.generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpF,qBACa,iBAAkB,YAAW,SAAS;IACjD,IAAI,SAAe;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAIvB;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK9B;IAEF;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBxD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAe1C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAuBlG;;OAEG;YACW,cAAc;IA4B5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAgB1B"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest Generator - Update apiVersion in all OSSA manifests
|
|
3
|
+
*
|
|
4
|
+
* Fixes 161+ .ossa.yaml files with hardcoded versions.
|
|
5
|
+
* Uses single source of truth: package.json version
|
|
6
|
+
*/
|
|
7
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
8
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
10
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
11
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
12
|
+
};
|
|
13
|
+
import { injectable } from 'inversify';
|
|
14
|
+
import * as fs from 'fs';
|
|
15
|
+
import * as path from 'path';
|
|
16
|
+
import { glob } from 'glob';
|
|
17
|
+
import { getApiVersion } from '../../../utils/version.js';
|
|
18
|
+
let ManifestGenerator = class ManifestGenerator {
|
|
19
|
+
name = 'manifests';
|
|
20
|
+
patterns = [
|
|
21
|
+
'**/*.ossa.yaml',
|
|
22
|
+
'**/*.ossa.yml',
|
|
23
|
+
'**/*.ossa.json',
|
|
24
|
+
];
|
|
25
|
+
excludePatterns = [
|
|
26
|
+
'node_modules/**',
|
|
27
|
+
'dist/**',
|
|
28
|
+
'.git/**',
|
|
29
|
+
'**/*.template.*',
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* Generate: Update apiVersion in all manifests
|
|
33
|
+
*/
|
|
34
|
+
async generate(dryRun) {
|
|
35
|
+
const result = {
|
|
36
|
+
generator: this.name,
|
|
37
|
+
filesUpdated: 0,
|
|
38
|
+
filesCreated: 0,
|
|
39
|
+
errors: [],
|
|
40
|
+
};
|
|
41
|
+
const files = await this.listTargetFiles();
|
|
42
|
+
const targetApiVersion = getApiVersion();
|
|
43
|
+
for (const file of files) {
|
|
44
|
+
try {
|
|
45
|
+
const updated = await this.updateManifest(file, targetApiVersion, dryRun);
|
|
46
|
+
if (updated) {
|
|
47
|
+
result.filesUpdated++;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
result.errors.push(`${file}: ${error instanceof Error ? error.message : String(error)}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* List all manifest files
|
|
58
|
+
*/
|
|
59
|
+
async listTargetFiles() {
|
|
60
|
+
const allFiles = [];
|
|
61
|
+
for (const pattern of this.patterns) {
|
|
62
|
+
const files = await glob(pattern, {
|
|
63
|
+
ignore: this.excludePatterns,
|
|
64
|
+
cwd: process.cwd(),
|
|
65
|
+
absolute: true,
|
|
66
|
+
});
|
|
67
|
+
allFiles.push(...files);
|
|
68
|
+
}
|
|
69
|
+
return [...new Set(allFiles)].sort();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check for version drift in manifests
|
|
73
|
+
*/
|
|
74
|
+
async checkDrift(version, apiVersion) {
|
|
75
|
+
const drift = [];
|
|
76
|
+
const files = await this.listTargetFiles();
|
|
77
|
+
for (const file of files) {
|
|
78
|
+
try {
|
|
79
|
+
const content = fs.readFileSync(file, 'utf8');
|
|
80
|
+
const foundVersion = this.extractApiVersion(content, file);
|
|
81
|
+
if (foundVersion && foundVersion !== apiVersion) {
|
|
82
|
+
drift.push({
|
|
83
|
+
path: path.relative(process.cwd(), file),
|
|
84
|
+
foundVersion,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Skip files that can't be read
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return drift;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Update a single manifest file
|
|
96
|
+
*/
|
|
97
|
+
async updateManifest(filePath, targetApiVersion, dryRun) {
|
|
98
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
99
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
100
|
+
let updated;
|
|
101
|
+
let changed = false;
|
|
102
|
+
if (ext === '.json') {
|
|
103
|
+
const result = this.updateJsonManifest(content, targetApiVersion);
|
|
104
|
+
updated = result.content;
|
|
105
|
+
changed = result.changed;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
const result = this.updateYamlManifest(content, targetApiVersion);
|
|
109
|
+
updated = result.content;
|
|
110
|
+
changed = result.changed;
|
|
111
|
+
}
|
|
112
|
+
if (changed && !dryRun) {
|
|
113
|
+
fs.writeFileSync(filePath, updated, 'utf8');
|
|
114
|
+
}
|
|
115
|
+
return changed;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Update YAML manifest apiVersion
|
|
119
|
+
*/
|
|
120
|
+
updateYamlManifest(content, targetApiVersion) {
|
|
121
|
+
// Use regex to preserve formatting and comments
|
|
122
|
+
const apiVersionRegex = /^(apiVersion:\s*)ossa\/v[\d.]+(-\w+)?/m;
|
|
123
|
+
const match = content.match(apiVersionRegex);
|
|
124
|
+
if (!match) {
|
|
125
|
+
return { content, changed: false };
|
|
126
|
+
}
|
|
127
|
+
const currentVersion = match[0];
|
|
128
|
+
const targetValue = `apiVersion: ${targetApiVersion}`;
|
|
129
|
+
if (currentVersion === targetValue) {
|
|
130
|
+
return { content, changed: false };
|
|
131
|
+
}
|
|
132
|
+
const updated = content.replace(apiVersionRegex, targetValue);
|
|
133
|
+
return { content: updated, changed: true };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Update JSON manifest apiVersion
|
|
137
|
+
*/
|
|
138
|
+
updateJsonManifest(content, targetApiVersion) {
|
|
139
|
+
try {
|
|
140
|
+
const json = JSON.parse(content);
|
|
141
|
+
if (!json.apiVersion) {
|
|
142
|
+
return { content, changed: false };
|
|
143
|
+
}
|
|
144
|
+
if (json.apiVersion === targetApiVersion) {
|
|
145
|
+
return { content, changed: false };
|
|
146
|
+
}
|
|
147
|
+
json.apiVersion = targetApiVersion;
|
|
148
|
+
const updated = JSON.stringify(json, null, 2) + '\n';
|
|
149
|
+
return { content: updated, changed: true };
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return { content, changed: false };
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Extract apiVersion from file content
|
|
157
|
+
*/
|
|
158
|
+
extractApiVersion(content, filePath) {
|
|
159
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
160
|
+
if (ext === '.json') {
|
|
161
|
+
try {
|
|
162
|
+
const json = JSON.parse(content);
|
|
163
|
+
return json.apiVersion || null;
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// YAML - extract with regex to handle various formats
|
|
170
|
+
const match = content.match(/apiVersion:\s*(ossa\/v[\d.]+(-\w+)?|v[\d.]+)/);
|
|
171
|
+
return match ? match[1] : null;
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
ManifestGenerator = __decorate([
|
|
175
|
+
injectable()
|
|
176
|
+
], ManifestGenerator);
|
|
177
|
+
export { ManifestGenerator };
|
|
178
|
+
//# sourceMappingURL=manifest.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.generator.js","sourceRoot":"","sources":["../../../../src/services/codegen/generators/manifest.generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI Generator - Sync versions in OpenAPI specs
|
|
3
|
+
*
|
|
4
|
+
* Updates:
|
|
5
|
+
* - info.version in all openapi/*.yaml files
|
|
6
|
+
* - Schema URLs to use correct domain
|
|
7
|
+
*
|
|
8
|
+
* Domain Configuration:
|
|
9
|
+
* - OSSA_DOMAIN env var (default: openstandardagents.org)
|
|
10
|
+
* - Local dev: ossa.orb.local
|
|
11
|
+
*/
|
|
12
|
+
import type { Generator, GenerateResult, DriftReport } from '../codegen.service.js';
|
|
13
|
+
export declare class OpenAPIGenerator implements Generator {
|
|
14
|
+
name: string;
|
|
15
|
+
private readonly patterns;
|
|
16
|
+
private readonly excludePatterns;
|
|
17
|
+
/**
|
|
18
|
+
* Generate: Update versions in OpenAPI specs
|
|
19
|
+
*/
|
|
20
|
+
generate(dryRun: boolean): Promise<GenerateResult>;
|
|
21
|
+
/**
|
|
22
|
+
* List target files
|
|
23
|
+
*/
|
|
24
|
+
listTargetFiles(): Promise<string[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Check for version drift
|
|
27
|
+
*/
|
|
28
|
+
checkDrift(version: string, apiVersion: string): Promise<DriftReport['filesWithOldVersion']>;
|
|
29
|
+
/**
|
|
30
|
+
* Update a single OpenAPI spec
|
|
31
|
+
*/
|
|
32
|
+
private updateOpenAPISpec;
|
|
33
|
+
/**
|
|
34
|
+
* Get configured domain
|
|
35
|
+
*/
|
|
36
|
+
private getDomain;
|
|
37
|
+
/**
|
|
38
|
+
* Find old OSSA version patterns (not API versions)
|
|
39
|
+
*
|
|
40
|
+
* Note: OpenAPI specs have their own info.version (e.g., 1.2.0)
|
|
41
|
+
* which is the API version, NOT the OSSA schema version.
|
|
42
|
+
* We only check for ossa/vX.X.X patterns.
|
|
43
|
+
*/
|
|
44
|
+
private findOldVersions;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=openapi.generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.generator.d.ts","sourceRoot":"","sources":["../../../../src/services/codegen/generators/openapi.generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpF,qBACa,gBAAiB,YAAW,SAAS;IAChD,IAAI,SAAa;IAEjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAElE;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IA0BxD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAe1C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAuBlG;;OAEG;YACW,iBAAiB;IAoC/B;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;CAuBxB"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI Generator - Sync versions in OpenAPI specs
|
|
3
|
+
*
|
|
4
|
+
* Updates:
|
|
5
|
+
* - info.version in all openapi/*.yaml files
|
|
6
|
+
* - Schema URLs to use correct domain
|
|
7
|
+
*
|
|
8
|
+
* Domain Configuration:
|
|
9
|
+
* - OSSA_DOMAIN env var (default: openstandardagents.org)
|
|
10
|
+
* - Local dev: ossa.orb.local
|
|
11
|
+
*/
|
|
12
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
13
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
14
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
15
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
16
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
17
|
+
};
|
|
18
|
+
import { injectable } from 'inversify';
|
|
19
|
+
import * as fs from 'fs';
|
|
20
|
+
import * as path from 'path';
|
|
21
|
+
import { glob } from 'glob';
|
|
22
|
+
import { getVersion, getApiVersion } from '../../../utils/version.js';
|
|
23
|
+
// Domain configuration
|
|
24
|
+
const OSSA_DOMAIN = process.env.OSSA_DOMAIN || 'openstandardagents.org';
|
|
25
|
+
const OSSA_LOCAL_DOMAIN = 'ossa.orb.local';
|
|
26
|
+
let OpenAPIGenerator = class OpenAPIGenerator {
|
|
27
|
+
name = 'openapi';
|
|
28
|
+
patterns = ['openapi/**/*.yaml', 'openapi/**/*.yml'];
|
|
29
|
+
excludePatterns = ['node_modules/**', 'dist/**'];
|
|
30
|
+
/**
|
|
31
|
+
* Generate: Update versions in OpenAPI specs
|
|
32
|
+
*/
|
|
33
|
+
async generate(dryRun) {
|
|
34
|
+
const result = {
|
|
35
|
+
generator: this.name,
|
|
36
|
+
filesUpdated: 0,
|
|
37
|
+
filesCreated: 0,
|
|
38
|
+
errors: [],
|
|
39
|
+
};
|
|
40
|
+
const files = await this.listTargetFiles();
|
|
41
|
+
const version = getVersion();
|
|
42
|
+
const apiVersion = getApiVersion();
|
|
43
|
+
for (const file of files) {
|
|
44
|
+
try {
|
|
45
|
+
const updated = await this.updateOpenAPISpec(file, version, apiVersion, dryRun);
|
|
46
|
+
if (updated) {
|
|
47
|
+
result.filesUpdated++;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
result.errors.push(`${file}: ${error instanceof Error ? error.message : String(error)}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* List target files
|
|
58
|
+
*/
|
|
59
|
+
async listTargetFiles() {
|
|
60
|
+
const allFiles = [];
|
|
61
|
+
for (const pattern of this.patterns) {
|
|
62
|
+
const files = await glob(pattern, {
|
|
63
|
+
ignore: this.excludePatterns,
|
|
64
|
+
cwd: process.cwd(),
|
|
65
|
+
absolute: true,
|
|
66
|
+
});
|
|
67
|
+
allFiles.push(...files);
|
|
68
|
+
}
|
|
69
|
+
return [...new Set(allFiles)].sort();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check for version drift
|
|
73
|
+
*/
|
|
74
|
+
async checkDrift(version, apiVersion) {
|
|
75
|
+
const drift = [];
|
|
76
|
+
const files = await this.listTargetFiles();
|
|
77
|
+
for (const file of files) {
|
|
78
|
+
try {
|
|
79
|
+
const content = fs.readFileSync(file, 'utf8');
|
|
80
|
+
const oldVersions = this.findOldVersions(content, version);
|
|
81
|
+
if (oldVersions.length > 0) {
|
|
82
|
+
drift.push({
|
|
83
|
+
path: path.relative(process.cwd(), file),
|
|
84
|
+
foundVersion: oldVersions[0],
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Skip
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return drift;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Update a single OpenAPI spec
|
|
96
|
+
*/
|
|
97
|
+
async updateOpenAPISpec(filePath, version, apiVersion, dryRun) {
|
|
98
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
99
|
+
let updated = content;
|
|
100
|
+
// Update info.version
|
|
101
|
+
updated = updated.replace(/(info:\s*\n(?:[^\n]*\n)*?\s*version:\s*)(['"]?)[\d.]+(-[\w.]+)?(['"]?)/m, `$1$2${version}$4`);
|
|
102
|
+
// Update ossa/vX.X.X patterns
|
|
103
|
+
updated = updated.replace(/ossa\/v\d+\.\d+\.\d+/g, apiVersion);
|
|
104
|
+
// Update schema URLs - use configured domain
|
|
105
|
+
const domain = this.getDomain();
|
|
106
|
+
updated = updated.replace(/https?:\/\/[a-z.-]+\/schemas\/v[\d.]+/g, `https://${domain}/schemas/v${version}`);
|
|
107
|
+
if (updated === content) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
if (!dryRun) {
|
|
111
|
+
fs.writeFileSync(filePath, updated, 'utf8');
|
|
112
|
+
}
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get configured domain
|
|
117
|
+
*/
|
|
118
|
+
getDomain() {
|
|
119
|
+
// Allow override via environment
|
|
120
|
+
if (process.env.OSSA_LOCAL === 'true') {
|
|
121
|
+
return OSSA_LOCAL_DOMAIN;
|
|
122
|
+
}
|
|
123
|
+
return OSSA_DOMAIN;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Find old OSSA version patterns (not API versions)
|
|
127
|
+
*
|
|
128
|
+
* Note: OpenAPI specs have their own info.version (e.g., 1.2.0)
|
|
129
|
+
* which is the API version, NOT the OSSA schema version.
|
|
130
|
+
* We only check for ossa/vX.X.X patterns.
|
|
131
|
+
*/
|
|
132
|
+
findOldVersions(content, currentVersion) {
|
|
133
|
+
const versions = [];
|
|
134
|
+
const apiVersion = `ossa/v${currentVersion}`;
|
|
135
|
+
// Only find ossa/vX.X.X patterns (OSSA schema version)
|
|
136
|
+
const ossaVersionMatches = content.matchAll(/ossa\/v(\d+\.\d+\.\d+)/g);
|
|
137
|
+
for (const match of ossaVersionMatches) {
|
|
138
|
+
const foundVersion = `ossa/v${match[1]}`;
|
|
139
|
+
if (foundVersion !== apiVersion) {
|
|
140
|
+
versions.push(foundVersion);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Find schema URL versions
|
|
144
|
+
const schemaUrlMatches = content.matchAll(/schemas\/v(\d+\.\d+\.\d+)/g);
|
|
145
|
+
for (const match of schemaUrlMatches) {
|
|
146
|
+
if (match[1] !== currentVersion) {
|
|
147
|
+
versions.push(`schemas/v${match[1]}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return [...new Set(versions)];
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
OpenAPIGenerator = __decorate([
|
|
154
|
+
injectable()
|
|
155
|
+
], OpenAPIGenerator);
|
|
156
|
+
export { OpenAPIGenerator };
|
|
157
|
+
//# sourceMappingURL=openapi.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.generator.js","sourceRoot":"","sources":["../../../../src/services/codegen/generators/openapi.generator.ts"],"names":[],"mappings":"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"}
|