@bluefly/openstandardagents 0.4.3 → 0.4.4
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/.version.json +2 -2
- package/CHANGELOG.md +475 -0
- package/README.md +106 -417
- package/bin/ossa +3 -0
- package/dist/adapters/agent-skills/exporter.d.ts +98 -0
- package/dist/adapters/agent-skills/exporter.d.ts.map +1 -0
- package/dist/adapters/agent-skills/exporter.js +453 -0
- package/dist/adapters/agent-skills/exporter.js.map +1 -0
- package/dist/adapters/agent-skills/index.d.ts +7 -0
- package/dist/adapters/agent-skills/index.d.ts.map +1 -0
- package/dist/adapters/agent-skills/index.js +6 -0
- package/dist/adapters/agent-skills/index.js.map +1 -0
- package/dist/adapters/anthropic/claude-optimizations.d.ts +44 -0
- package/dist/adapters/anthropic/claude-optimizations.d.ts.map +1 -0
- package/dist/adapters/anthropic/claude-optimizations.js +180 -0
- package/dist/adapters/anthropic/claude-optimizations.js.map +1 -0
- package/dist/adapters/base/adapter.interface.d.ts +4 -0
- package/dist/adapters/base/adapter.interface.d.ts.map +1 -1
- package/dist/adapters/base/adapter.interface.js +7 -0
- package/dist/adapters/base/adapter.interface.js.map +1 -1
- package/dist/adapters/base/common-file-generator.d.ts +160 -0
- package/dist/adapters/base/common-file-generator.d.ts.map +1 -0
- package/dist/adapters/base/common-file-generator.js +584 -0
- package/dist/adapters/base/common-file-generator.js.map +1 -0
- package/dist/adapters/base/index.d.ts +21 -0
- package/dist/adapters/base/index.d.ts.map +1 -0
- package/dist/adapters/base/index.js +25 -0
- package/dist/adapters/base/index.js.map +1 -0
- package/dist/adapters/base/manifest-validator.d.ts +84 -0
- package/dist/adapters/base/manifest-validator.d.ts.map +1 -0
- package/dist/adapters/base/manifest-validator.js +266 -0
- package/dist/adapters/base/manifest-validator.js.map +1 -0
- package/dist/adapters/base/template-engine.d.ts +52 -0
- package/dist/adapters/base/template-engine.d.ts.map +1 -0
- package/dist/adapters/base/template-engine.js +157 -0
- package/dist/adapters/base/template-engine.js.map +1 -0
- package/dist/adapters/crewai/adapter.d.ts +53 -1
- package/dist/adapters/crewai/adapter.d.ts.map +1 -1
- package/dist/adapters/crewai/adapter.js +1457 -31
- package/dist/adapters/crewai/adapter.js.map +1 -1
- package/dist/adapters/crewai/converter.d.ts +8 -0
- package/dist/adapters/crewai/converter.d.ts.map +1 -1
- package/dist/adapters/crewai/converter.js +56 -24
- package/dist/adapters/crewai/converter.js.map +1 -1
- package/dist/adapters/docker/docker-exporter.d.ts +38 -0
- package/dist/adapters/docker/docker-exporter.d.ts.map +1 -0
- package/dist/adapters/docker/docker-exporter.js +648 -0
- package/dist/adapters/docker/docker-exporter.js.map +1 -0
- package/dist/adapters/docker/generators.d.ts +73 -7
- package/dist/adapters/docker/generators.d.ts.map +1 -1
- package/dist/adapters/docker/generators.js +728 -43
- package/dist/adapters/docker/generators.js.map +1 -1
- package/dist/adapters/docker/index.d.ts +4 -3
- package/dist/adapters/docker/index.d.ts.map +1 -1
- package/dist/adapters/docker/index.js +3 -2
- package/dist/adapters/docker/index.js.map +1 -1
- package/dist/adapters/docker/types.d.ts +70 -0
- package/dist/adapters/docker/types.d.ts.map +1 -1
- package/dist/adapters/drupal/adapter.d.ts.map +1 -1
- package/dist/adapters/drupal/adapter.js +2 -2
- package/dist/adapters/drupal/adapter.js.map +1 -1
- package/dist/adapters/drupal/generator.d.ts.map +1 -1
- package/dist/adapters/drupal/generator.js +14 -9
- package/dist/adapters/drupal/generator.js.map +1 -1
- package/dist/adapters/drupal/index.d.ts +3 -1
- package/dist/adapters/drupal/index.d.ts.map +1 -1
- package/dist/adapters/drupal/index.js +5 -1
- package/dist/adapters/drupal/index.js.map +1 -1
- package/dist/adapters/drupal/manifest-exporter.d.ts +77 -0
- package/dist/adapters/drupal/manifest-exporter.d.ts.map +1 -0
- package/dist/adapters/drupal/manifest-exporter.js +360 -0
- package/dist/adapters/drupal/manifest-exporter.js.map +1 -0
- package/dist/adapters/drupal/production-exporter.legacy.d.ts +131 -0
- package/dist/adapters/drupal/production-exporter.legacy.d.ts.map +1 -0
- package/dist/adapters/drupal/production-exporter.legacy.js +2537 -0
- package/dist/adapters/drupal/production-exporter.legacy.js.map +1 -0
- package/dist/adapters/gitlab/agent-generator.d.ts +103 -0
- package/dist/adapters/gitlab/agent-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/agent-generator.js +898 -0
- package/dist/adapters/gitlab/agent-generator.js.map +1 -0
- package/dist/adapters/gitlab/converter.d.ts +12 -2
- package/dist/adapters/gitlab/converter.d.ts.map +1 -1
- package/dist/adapters/gitlab/converter.js +19 -2
- package/dist/adapters/gitlab/converter.js.map +1 -1
- package/dist/adapters/gitlab/external-agent-generator.d.ts +70 -0
- package/dist/adapters/gitlab/external-agent-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/external-agent-generator.js +338 -0
- package/dist/adapters/gitlab/external-agent-generator.js.map +1 -0
- package/dist/adapters/gitlab/flow-generator.d.ts +73 -0
- package/dist/adapters/gitlab/flow-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/flow-generator.js +669 -0
- package/dist/adapters/gitlab/flow-generator.js.map +1 -0
- package/dist/adapters/gitlab/index.d.ts +10 -2
- package/dist/adapters/gitlab/index.d.ts.map +1 -1
- package/dist/adapters/gitlab/index.js +6 -1
- package/dist/adapters/gitlab/index.js.map +1 -1
- package/dist/adapters/gitlab/package-generator.d.ts +167 -0
- package/dist/adapters/gitlab/package-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/package-generator.js +2426 -0
- package/dist/adapters/gitlab/package-generator.js.map +1 -0
- package/dist/adapters/gitlab/router-generator.d.ts +113 -0
- package/dist/adapters/gitlab/router-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/router-generator.js +541 -0
- package/dist/adapters/gitlab/router-generator.js.map +1 -0
- package/dist/adapters/gitlab/trigger-generator.d.ts +154 -0
- package/dist/adapters/gitlab/trigger-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/trigger-generator.js +279 -0
- package/dist/adapters/gitlab/trigger-generator.js.map +1 -0
- package/dist/adapters/gitlab/types.d.ts +98 -0
- package/dist/adapters/gitlab/types.d.ts.map +1 -1
- package/dist/adapters/kubernetes/generator.d.ts +93 -5
- package/dist/adapters/kubernetes/generator.d.ts.map +1 -1
- package/dist/adapters/kubernetes/generator.js +1292 -33
- package/dist/adapters/kubernetes/generator.js.map +1 -1
- package/dist/adapters/kubernetes/index.d.ts +2 -2
- package/dist/adapters/kubernetes/index.d.ts.map +1 -1
- package/dist/adapters/kubernetes/index.js +1 -1
- package/dist/adapters/kubernetes/kagent-crd-generator.d.ts +72 -0
- package/dist/adapters/kubernetes/kagent-crd-generator.d.ts.map +1 -0
- package/dist/adapters/kubernetes/kagent-crd-generator.js +237 -0
- package/dist/adapters/kubernetes/kagent-crd-generator.js.map +1 -0
- package/dist/adapters/kubernetes/types.d.ts +45 -0
- package/dist/adapters/kubernetes/types.d.ts.map +1 -1
- package/dist/adapters/langchain/adapter.d.ts +1 -9
- package/dist/adapters/langchain/adapter.d.ts.map +1 -1
- package/dist/adapters/langchain/adapter.js +35 -131
- package/dist/adapters/langchain/adapter.js.map +1 -1
- package/dist/adapters/langchain/converter.d.ts.map +1 -1
- package/dist/adapters/langchain/converter.js +16 -4
- package/dist/adapters/langchain/converter.js.map +1 -1
- package/dist/adapters/langfuse.adapter.d.ts +1 -1
- package/dist/adapters/langsmith.adapter.d.ts +1 -1
- package/dist/adapters/mcp/adapter.d.ts.map +1 -1
- package/dist/adapters/mcp/adapter.js +4 -1
- package/dist/adapters/mcp/adapter.js.map +1 -1
- package/dist/adapters/mcp/converter.d.ts.map +1 -1
- package/dist/adapters/mcp/converter.js.map +1 -1
- package/dist/adapters/npm/adapter.d.ts +1 -5
- package/dist/adapters/npm/adapter.d.ts.map +1 -1
- package/dist/adapters/npm/adapter.js +41 -84
- package/dist/adapters/npm/adapter.js.map +1 -1
- package/dist/adapters/npm/converter.d.ts.map +1 -1
- package/dist/adapters/npm/converter.js +28 -15
- package/dist/adapters/npm/converter.js.map +1 -1
- package/dist/adapters/npm/type-aware-dependencies.d.ts +19 -0
- package/dist/adapters/npm/type-aware-dependencies.d.ts.map +1 -0
- package/dist/adapters/npm/type-aware-dependencies.js +158 -0
- package/dist/adapters/npm/type-aware-dependencies.js.map +1 -0
- package/dist/adapters/opentelemetry.adapter.js.map +1 -1
- package/dist/adapters/phoenix.adapter.d.ts +1 -1
- package/dist/cli/banner.d.ts.map +1 -1
- package/dist/cli/banner.js +10 -3
- package/dist/cli/banner.js.map +1 -1
- package/dist/cli/commands/agent-wizard.command.d.ts.map +1 -1
- package/dist/cli/commands/agent-wizard.command.js +6 -1
- package/dist/cli/commands/agent-wizard.command.js.map +1 -1
- package/dist/cli/commands/agents/persona.command.d.ts +10 -0
- package/dist/cli/commands/agents/persona.command.d.ts.map +1 -0
- package/dist/cli/commands/agents/persona.command.js +519 -0
- package/dist/cli/commands/agents/persona.command.js.map +1 -0
- package/dist/cli/commands/agents.command.d.ts.map +1 -1
- package/dist/cli/commands/agents.command.js +6 -0
- package/dist/cli/commands/agents.command.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +26 -9
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/build.command.d.ts.map +1 -1
- package/dist/cli/commands/build.command.js +6 -5
- package/dist/cli/commands/build.command.js.map +1 -1
- package/dist/cli/commands/catalog/pull.command.d.ts.map +1 -1
- package/dist/cli/commands/catalog/pull.command.js +25 -5
- package/dist/cli/commands/catalog/pull.command.js.map +1 -1
- package/dist/cli/commands/catalog/push.command.d.ts.map +1 -1
- package/dist/cli/commands/catalog/push.command.js +29 -7
- package/dist/cli/commands/catalog/push.command.js.map +1 -1
- package/dist/cli/commands/catalog/sync.command.d.ts.map +1 -1
- package/dist/cli/commands/catalog/sync.command.js +23 -6
- package/dist/cli/commands/catalog/sync.command.js.map +1 -1
- package/dist/cli/commands/deploy-enhanced.command.d.ts +15 -0
- package/dist/cli/commands/deploy-enhanced.command.d.ts.map +1 -0
- package/dist/cli/commands/deploy-enhanced.command.js +335 -0
- package/dist/cli/commands/deploy-enhanced.command.js.map +1 -0
- package/dist/cli/commands/deploy.command.d.ts.map +1 -1
- package/dist/cli/commands/deploy.command.js +4 -3
- package/dist/cli/commands/deploy.command.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/deploy.js +6 -5
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/discover.d.ts +15 -0
- package/dist/cli/commands/discover.d.ts.map +1 -0
- package/dist/cli/commands/discover.js +215 -0
- package/dist/cli/commands/discover.js.map +1 -0
- package/dist/cli/commands/estimate.command.js +1 -1
- package/dist/cli/commands/estimate.command.js.map +1 -1
- package/dist/cli/commands/export.command.js +260 -86
- package/dist/cli/commands/export.command.js.map +1 -1
- package/dist/cli/commands/generate-gaid.command.d.ts +14 -0
- package/dist/cli/commands/generate-gaid.command.d.ts.map +1 -0
- package/dist/cli/commands/generate-gaid.command.js +141 -0
- package/dist/cli/commands/generate-gaid.command.js.map +1 -0
- package/dist/cli/commands/governance.command.d.ts +11 -0
- package/dist/cli/commands/governance.command.d.ts.map +1 -0
- package/dist/cli/commands/governance.command.js +166 -0
- package/dist/cli/commands/governance.command.js.map +1 -0
- package/dist/cli/commands/import.command.js.map +1 -1
- package/dist/cli/commands/init.command.d.ts.map +1 -1
- package/dist/cli/commands/init.command.js +11 -13
- package/dist/cli/commands/init.command.js.map +1 -1
- package/dist/cli/commands/lint.command.js +3 -1
- package/dist/cli/commands/lint.command.js.map +1 -1
- package/dist/cli/commands/migrate-langchain.command.js +3 -3
- package/dist/cli/commands/migrate-langchain.command.js.map +1 -1
- package/dist/cli/commands/migrate.command.js.map +1 -1
- package/dist/cli/commands/publish.command.d.ts.map +1 -1
- package/dist/cli/commands/publish.command.js.map +1 -1
- package/dist/cli/commands/quickstart.command.d.ts.map +1 -1
- package/dist/cli/commands/quickstart.command.js +32 -49
- package/dist/cli/commands/quickstart.command.js.map +1 -1
- package/dist/cli/commands/register.d.ts +12 -0
- package/dist/cli/commands/register.d.ts.map +1 -0
- package/dist/cli/commands/register.js +263 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/commands/rollback.command.d.ts +13 -0
- package/dist/cli/commands/rollback.command.d.ts.map +1 -0
- package/dist/cli/commands/rollback.command.js +156 -0
- package/dist/cli/commands/rollback.command.js.map +1 -0
- package/dist/cli/commands/run.command.d.ts.map +1 -1
- package/dist/cli/commands/run.command.js +19 -4
- package/dist/cli/commands/run.command.js.map +1 -1
- package/dist/cli/commands/standardize.command.js +3 -6
- package/dist/cli/commands/standardize.command.js.map +1 -1
- package/dist/cli/commands/test.command.d.ts.map +1 -1
- package/dist/cli/commands/test.command.js +1 -1
- package/dist/cli/commands/test.command.js.map +1 -1
- package/dist/cli/commands/types/wizard-config.types.d.ts.map +1 -1
- package/dist/cli/commands/types/wizard-config.types.js.map +1 -1
- package/dist/cli/commands/upgrade.command.js.map +1 -1
- package/dist/cli/commands/validate.command.js +1 -3
- package/dist/cli/commands/validate.command.js.map +1 -1
- package/dist/cli/commands/verify.d.ts +15 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +274 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/commands/wizard-api-first.command.d.ts.map +1 -1
- package/dist/cli/commands/wizard-api-first.command.js +1 -2
- package/dist/cli/commands/wizard-api-first.command.js.map +1 -1
- package/dist/cli/commands/wizard-interactive.command.d.ts.map +1 -1
- package/dist/cli/commands/wizard-interactive.command.js +1339 -28
- package/dist/cli/commands/wizard-interactive.command.js.map +1 -1
- package/dist/cli/index.js +136 -70
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/schema-driven/schema-loader.d.ts.map +1 -1
- package/dist/cli/schema-driven/schema-loader.js +2 -2
- package/dist/cli/schema-driven/schema-loader.js.map +1 -1
- package/dist/cli/schema-driven/ui-generator.d.ts.map +1 -1
- package/dist/cli/schema-driven/ui-generator.js +13 -4
- package/dist/cli/schema-driven/ui-generator.js.map +1 -1
- package/dist/cli/templates/enhanced-templates.d.ts.map +1 -1
- package/dist/cli/templates/enhanced-templates.js +2 -1
- package/dist/cli/templates/enhanced-templates.js.map +1 -1
- package/dist/cli/utils/index.d.ts +1 -0
- package/dist/cli/utils/index.d.ts.map +1 -1
- package/dist/cli/utils/index.js +2 -0
- package/dist/cli/utils/index.js.map +1 -1
- package/dist/cli/utils/logo.d.ts +10 -0
- package/dist/cli/utils/logo.d.ts.map +1 -0
- package/dist/cli/utils/logo.js +49 -0
- package/dist/cli/utils/logo.js.map +1 -0
- package/dist/cli/utils/standard-options.d.ts +21 -0
- package/dist/cli/utils/standard-options.d.ts.map +1 -1
- package/dist/cli/utils/standard-options.js +31 -0
- package/dist/cli/utils/standard-options.js.map +1 -1
- package/dist/cli/utils/validation-builder.d.ts +121 -0
- package/dist/cli/utils/validation-builder.d.ts.map +1 -0
- package/dist/cli/utils/validation-builder.js +322 -0
- package/dist/cli/utils/validation-builder.js.map +1 -0
- package/dist/cli/wizard/data/taxonomy.d.ts.map +1 -1
- package/dist/cli/wizard/data/taxonomy.js +5 -1
- package/dist/cli/wizard/data/taxonomy.js.map +1 -1
- package/dist/cli/wizard/interactive-wizard.d.ts.map +1 -1
- package/dist/cli/wizard/interactive-wizard.js +24 -11
- package/dist/cli/wizard/interactive-wizard.js.map +1 -1
- package/dist/cli/wizard/steps/04a-persona.d.ts +16 -0
- package/dist/cli/wizard/steps/04a-persona.d.ts.map +1 -0
- package/dist/cli/wizard/steps/04a-persona.js +297 -0
- package/dist/cli/wizard/steps/04a-persona.js.map +1 -0
- package/dist/cli/wizard/steps/05-tools.d.ts.map +1 -1
- package/dist/cli/wizard/steps/05-tools.js +10 -1
- package/dist/cli/wizard/steps/05-tools.js.map +1 -1
- package/dist/cli/wizard/steps/06-autonomy.js +1 -1
- package/dist/cli/wizard/steps/07-observability.js +1 -1
- package/dist/cli/wizard/steps/08-deployment.js +1 -1
- package/dist/cli/wizard/steps/09-advanced.js +1 -1
- package/dist/cli/wizard/steps/09-advanced.js.map +1 -1
- package/dist/cli/wizard/steps/10-review.d.ts.map +1 -1
- package/dist/cli/wizard/steps/10-review.js +6 -4
- package/dist/cli/wizard/steps/10-review.js.map +1 -1
- package/dist/cli/wizard/steps/12-agents-folder.d.ts.map +1 -1
- package/dist/cli/wizard/steps/12-agents-folder.js +14 -10
- package/dist/cli/wizard/steps/12-agents-folder.js.map +1 -1
- package/dist/cli/wizard/steps/13-openapi-generation.d.ts.map +1 -1
- package/dist/cli/wizard/steps/13-openapi-generation.js +10 -2
- package/dist/cli/wizard/steps/13-openapi-generation.js.map +1 -1
- package/dist/cli/wizard/steps/14-workspace-registration.d.ts.map +1 -1
- package/dist/cli/wizard/steps/14-workspace-registration.js +10 -2
- package/dist/cli/wizard/steps/14-workspace-registration.js.map +1 -1
- package/dist/cli/wizard/steps/15-cost-estimation.d.ts.map +1 -1
- package/dist/cli/wizard/steps/15-cost-estimation.js +27 -11
- package/dist/cli/wizard/steps/15-cost-estimation.js.map +1 -1
- package/dist/cli/wizard/steps/16-best-practices.d.ts.map +1 -1
- package/dist/cli/wizard/steps/16-best-practices.js +14 -13
- package/dist/cli/wizard/steps/16-best-practices.js.map +1 -1
- package/dist/cli/wizard/ui/banner.d.ts +20 -0
- package/dist/cli/wizard/ui/banner.d.ts.map +1 -0
- package/dist/cli/wizard/ui/banner.js +66 -0
- package/dist/cli/wizard/ui/banner.js.map +1 -0
- package/dist/cli/wizard/ui/console.d.ts.map +1 -1
- package/dist/cli/wizard/ui/console.js +21 -23
- package/dist/cli/wizard/ui/console.js.map +1 -1
- package/dist/cli/wizard/ui/wizard-ui.d.ts.map +1 -1
- package/dist/cli/wizard/ui/wizard-ui.js +54 -75
- package/dist/cli/wizard/ui/wizard-ui.js.map +1 -1
- package/dist/cli/wizard/use-cases.d.ts.map +1 -1
- package/dist/cli/wizard/use-cases.js.map +1 -1
- package/dist/config/defaults.d.ts +59 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +72 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/deploy/cloud/aws-driver.d.ts +75 -0
- package/dist/deploy/cloud/aws-driver.d.ts.map +1 -0
- package/dist/deploy/cloud/aws-driver.js +344 -0
- package/dist/deploy/cloud/aws-driver.js.map +1 -0
- package/dist/deploy/cloud/azure-driver.d.ts +54 -0
- package/dist/deploy/cloud/azure-driver.d.ts.map +1 -0
- package/dist/deploy/cloud/azure-driver.js +221 -0
- package/dist/deploy/cloud/azure-driver.js.map +1 -0
- package/dist/deploy/cloud/gcp-driver.d.ts +56 -0
- package/dist/deploy/cloud/gcp-driver.d.ts.map +1 -0
- package/dist/deploy/cloud/gcp-driver.js +212 -0
- package/dist/deploy/cloud/gcp-driver.js.map +1 -0
- package/dist/dev-cli/commands/version.command.js +18 -18
- package/dist/dev-cli/commands/version.command.js.map +1 -1
- package/dist/dev-cli/services/version-check.service.d.ts.map +1 -1
- package/dist/dev-cli/services/version-check.service.js +2 -1
- package/dist/dev-cli/services/version-check.service.js.map +1 -1
- package/dist/di-container.d.ts.map +1 -1
- package/dist/di-container.js +13 -5
- package/dist/di-container.js.map +1 -1
- package/dist/errors/index.d.ts +154 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +327 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/generated/types.d.ts +91 -91
- package/dist/generated/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/governance-provider.interface.d.ts +98 -0
- package/dist/interfaces/governance-provider.interface.d.ts.map +1 -0
- package/dist/interfaces/governance-provider.interface.js +20 -0
- package/dist/interfaces/governance-provider.interface.js.map +1 -0
- package/dist/mesh/advanced-routing.d.ts +181 -0
- package/dist/mesh/advanced-routing.d.ts.map +1 -0
- package/dist/mesh/advanced-routing.js +473 -0
- package/dist/mesh/advanced-routing.js.map +1 -0
- package/dist/mesh/agent-graph.d.ts +218 -0
- package/dist/mesh/agent-graph.d.ts.map +1 -0
- package/dist/mesh/agent-graph.js +487 -0
- package/dist/mesh/agent-graph.js.map +1 -0
- package/dist/mesh/discovery-providers.d.ts +162 -0
- package/dist/mesh/discovery-providers.d.ts.map +1 -0
- package/dist/mesh/discovery-providers.js +514 -0
- package/dist/mesh/discovery-providers.js.map +1 -0
- package/dist/mesh/index.d.ts +3 -0
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +6 -0
- package/dist/mesh/index.js.map +1 -1
- package/dist/messenger/Commands/MessengerConsumeCommand.d.ts +57 -0
- package/dist/messenger/Commands/MessengerConsumeCommand.d.ts.map +1 -0
- package/dist/messenger/Commands/MessengerConsumeCommand.js +49 -0
- package/dist/messenger/Commands/MessengerConsumeCommand.js.map +1 -0
- package/dist/messenger/Commands/MessengerFailedCommand.d.ts +76 -0
- package/dist/messenger/Commands/MessengerFailedCommand.d.ts.map +1 -0
- package/dist/messenger/Commands/MessengerFailedCommand.js +120 -0
- package/dist/messenger/Commands/MessengerFailedCommand.js.map +1 -0
- package/dist/messenger/Commands/MessengerStatsCommand.d.ts +61 -0
- package/dist/messenger/Commands/MessengerStatsCommand.d.ts.map +1 -0
- package/dist/messenger/Commands/MessengerStatsCommand.js +80 -0
- package/dist/messenger/Commands/MessengerStatsCommand.js.map +1 -0
- package/dist/messenger/Commands/index.d.ts +10 -0
- package/dist/messenger/Commands/index.d.ts.map +1 -0
- package/dist/messenger/Commands/index.js +10 -0
- package/dist/messenger/Commands/index.js.map +1 -0
- package/dist/messenger/EventSubscriber/FailedMessageSubscriber.d.ts +44 -0
- package/dist/messenger/EventSubscriber/FailedMessageSubscriber.d.ts.map +1 -0
- package/dist/messenger/EventSubscriber/FailedMessageSubscriber.js +64 -0
- package/dist/messenger/EventSubscriber/FailedMessageSubscriber.js.map +1 -0
- package/dist/messenger/Handler/AgentBatchHandler.d.ts +80 -0
- package/dist/messenger/Handler/AgentBatchHandler.d.ts.map +1 -0
- package/dist/messenger/Handler/AgentBatchHandler.js +207 -0
- package/dist/messenger/Handler/AgentBatchHandler.js.map +1 -0
- package/dist/messenger/Handler/AgentExecutionHandler.d.ts +76 -0
- package/dist/messenger/Handler/AgentExecutionHandler.d.ts.map +1 -0
- package/dist/messenger/Handler/AgentExecutionHandler.js +131 -0
- package/dist/messenger/Handler/AgentExecutionHandler.js.map +1 -0
- package/dist/messenger/Handler/index.d.ts +9 -0
- package/dist/messenger/Handler/index.d.ts.map +1 -0
- package/dist/messenger/Handler/index.js +9 -0
- package/dist/messenger/Handler/index.js.map +1 -0
- package/dist/messenger/Message/AgentBatchMessage.d.ts +115 -0
- package/dist/messenger/Message/AgentBatchMessage.d.ts.map +1 -0
- package/dist/messenger/Message/AgentBatchMessage.js +100 -0
- package/dist/messenger/Message/AgentBatchMessage.js.map +1 -0
- package/dist/messenger/Message/AgentExecutionMessage.d.ts +98 -0
- package/dist/messenger/Message/AgentExecutionMessage.d.ts.map +1 -0
- package/dist/messenger/Message/AgentExecutionMessage.js +77 -0
- package/dist/messenger/Message/AgentExecutionMessage.js.map +1 -0
- package/dist/messenger/Message/index.d.ts +9 -0
- package/dist/messenger/Message/index.d.ts.map +1 -0
- package/dist/messenger/Message/index.js +9 -0
- package/dist/messenger/Message/index.js.map +1 -0
- package/dist/messenger/Middleware/AuthenticationMiddleware.d.ts +41 -0
- package/dist/messenger/Middleware/AuthenticationMiddleware.d.ts.map +1 -0
- package/dist/messenger/Middleware/AuthenticationMiddleware.js +85 -0
- package/dist/messenger/Middleware/AuthenticationMiddleware.js.map +1 -0
- package/dist/messenger/Middleware/LoggingMiddleware.d.ts +30 -0
- package/dist/messenger/Middleware/LoggingMiddleware.d.ts.map +1 -0
- package/dist/messenger/Middleware/LoggingMiddleware.js +57 -0
- package/dist/messenger/Middleware/LoggingMiddleware.js.map +1 -0
- package/dist/messenger/Middleware/RateLimitMiddleware.d.ts +67 -0
- package/dist/messenger/Middleware/RateLimitMiddleware.d.ts.map +1 -0
- package/dist/messenger/Middleware/RateLimitMiddleware.js +90 -0
- package/dist/messenger/Middleware/RateLimitMiddleware.js.map +1 -0
- package/dist/messenger/Middleware/ValidationMiddleware.d.ts +39 -0
- package/dist/messenger/Middleware/ValidationMiddleware.d.ts.map +1 -0
- package/dist/messenger/Middleware/ValidationMiddleware.js +91 -0
- package/dist/messenger/Middleware/ValidationMiddleware.js.map +1 -0
- package/dist/messenger/Middleware/index.d.ts +11 -0
- package/dist/messenger/Middleware/index.d.ts.map +1 -0
- package/dist/messenger/Middleware/index.js +11 -0
- package/dist/messenger/Middleware/index.js.map +1 -0
- package/dist/messenger/Monitoring/MetricsCollector.d.ts +107 -0
- package/dist/messenger/Monitoring/MetricsCollector.d.ts.map +1 -0
- package/dist/messenger/Monitoring/MetricsCollector.js +80 -0
- package/dist/messenger/Monitoring/MetricsCollector.js.map +1 -0
- package/dist/messenger/Monitoring/QueueMonitor.d.ts +74 -0
- package/dist/messenger/Monitoring/QueueMonitor.d.ts.map +1 -0
- package/dist/messenger/Monitoring/QueueMonitor.js +157 -0
- package/dist/messenger/Monitoring/QueueMonitor.js.map +1 -0
- package/dist/messenger/Monitoring/index.d.ts +9 -0
- package/dist/messenger/Monitoring/index.d.ts.map +1 -0
- package/dist/messenger/Monitoring/index.js +9 -0
- package/dist/messenger/Monitoring/index.js.map +1 -0
- package/dist/messenger/index.d.ts +38 -0
- package/dist/messenger/index.d.ts.map +1 -0
- package/dist/messenger/index.js +44 -0
- package/dist/messenger/index.js.map +1 -0
- package/dist/observability/index.d.ts +13 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +14 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/metrics.d.ts +131 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +308 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/middleware.d.ts +64 -0
- package/dist/observability/middleware.d.ts.map +1 -0
- package/dist/observability/middleware.js +225 -0
- package/dist/observability/middleware.js.map +1 -0
- package/dist/package.json +14 -11
- package/dist/runtime/agent-runner.d.ts.map +1 -1
- package/dist/runtime/agent-runner.js +23 -23
- package/dist/runtime/agent-runner.js.map +1 -1
- package/dist/sdks/kagent/crd-generator.d.ts +63 -1
- package/dist/sdks/kagent/crd-generator.d.ts.map +1 -1
- package/dist/sdks/kagent/crd-generator.js +769 -20
- package/dist/sdks/kagent/crd-generator.js.map +1 -1
- package/dist/sdks/kagent/index.d.ts +1 -1
- package/dist/sdks/kagent/index.d.ts.map +1 -1
- package/dist/sdks/kagent/k8s-resources-generator.d.ts.map +1 -1
- package/dist/sdks/kagent/k8s-resources-generator.js.map +1 -1
- package/dist/sdks/kagent/types.d.ts +30 -0
- package/dist/sdks/kagent/types.d.ts.map +1 -1
- package/dist/sdks/shared/validation.d.ts +4 -4
- package/dist/services/agent-protocol-client.d.ts +541 -0
- package/dist/services/agent-protocol-client.d.ts.map +1 -0
- package/dist/services/agent-protocol-client.js +166 -0
- package/dist/services/agent-protocol-client.js.map +1 -0
- package/dist/services/ai-architect.service.js.map +1 -1
- package/dist/services/cost-estimation/token-counter.service.js +1 -1
- package/dist/services/cost-estimation/token-counter.service.js.map +1 -1
- package/dist/services/dev-server/websocket-server.d.ts.map +1 -1
- package/dist/services/dev-server/websocket-server.js +2 -1
- package/dist/services/dev-server/websocket-server.js.map +1 -1
- package/dist/services/export/anthropic/anthropic-exporter.d.ts.map +1 -1
- package/dist/services/export/anthropic/anthropic-exporter.js +8 -3
- package/dist/services/export/anthropic/anthropic-exporter.js.map +1 -1
- package/dist/services/export/anthropic/index.d.ts +1 -1
- package/dist/services/export/anthropic/index.d.ts.map +1 -1
- package/dist/services/export/anthropic/index.js +1 -1
- package/dist/services/export/anthropic/index.js.map +1 -1
- package/dist/services/export/langchain/callbacks-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/callbacks-generator.js +16 -8
- package/dist/services/export/langchain/callbacks-generator.js.map +1 -1
- package/dist/services/export/langchain/error-handling-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/error-handling-generator.js +9 -5
- package/dist/services/export/langchain/error-handling-generator.js.map +1 -1
- package/dist/services/export/langchain/langchain-exporter.d.ts.map +1 -1
- package/dist/services/export/langchain/langchain-exporter.js +16 -8
- package/dist/services/export/langchain/langchain-exporter.js.map +1 -1
- package/dist/services/export/langchain/langgraph-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/langgraph-generator.js +34 -20
- package/dist/services/export/langchain/langgraph-generator.js.map +1 -1
- package/dist/services/export/langchain/langserve-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/langserve-generator.js +7 -1
- package/dist/services/export/langchain/langserve-generator.js.map +1 -1
- package/dist/services/export/langchain/memory-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/memory-generator.js.map +1 -1
- package/dist/services/export/langchain/plan-execute-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/plan-execute-generator.js.map +1 -1
- package/dist/services/export/langchain/streaming-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/streaming-generator.js +12 -6
- package/dist/services/export/langchain/streaming-generator.js.map +1 -1
- package/dist/services/export/langchain/tools-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/tools-generator.js.map +1 -1
- package/dist/services/export/npm/npm-exporter.d.ts +40 -0
- package/dist/services/export/npm/npm-exporter.d.ts.map +1 -1
- package/dist/services/export/npm/npm-exporter.js +1294 -1
- package/dist/services/export/npm/npm-exporter.js.map +1 -1
- package/dist/services/export/npm/package-json-generator.js +3 -1
- package/dist/services/export/npm/package-json-generator.js.map +1 -1
- package/dist/services/export/npm/typescript-generator.d.ts.map +1 -1
- package/dist/services/export/npm/typescript-generator.js +7 -3
- package/dist/services/export/npm/typescript-generator.js.map +1 -1
- package/dist/services/export/testing/index.d.ts +1 -1
- package/dist/services/export/testing/index.d.ts.map +1 -1
- package/dist/services/export/testing/test-generator.d.ts.map +1 -1
- package/dist/services/export/testing/test-generator.js +5 -1
- package/dist/services/export/testing/test-generator.js.map +1 -1
- package/dist/services/governance-client.service.d.ts +39 -0
- package/dist/services/governance-client.service.d.ts.map +1 -0
- package/dist/services/governance-client.service.js +124 -0
- package/dist/services/governance-client.service.js.map +1 -0
- package/dist/services/migration/langchain-migration.service.js +2 -2
- package/dist/services/migration/langchain-migration.service.js.map +1 -1
- package/dist/services/release-automation/release.service.d.ts +4 -4
- package/dist/services/release-automation/schemas/release.schema.d.ts +5 -5
- package/dist/services/release-automation/tag.service.d.ts +3 -3
- package/dist/services/taxonomy-service.d.ts +3 -3
- package/dist/services/test-runner/mock-llm.service.d.ts.map +1 -1
- package/dist/services/test-runner/mock-llm.service.js +1 -2
- package/dist/services/test-runner/mock-llm.service.js.map +1 -1
- package/dist/services/test-runner/scenarios.d.ts.map +1 -1
- package/dist/services/test-runner/scenarios.js +9 -3
- package/dist/services/test-runner/scenarios.js.map +1 -1
- package/dist/services/test-runner/test-runner.service.d.ts.map +1 -1
- package/dist/services/test-runner/test-runner.service.js.map +1 -1
- package/dist/services/validation/best-practices-validator.d.ts.map +1 -1
- package/dist/services/validation/best-practices-validator.js.map +1 -1
- package/dist/services/validation/cost-estimator.d.ts.map +1 -1
- package/dist/services/validation/cost-estimator.js +4 -2
- package/dist/services/validation/cost-estimator.js.map +1 -1
- package/dist/services/validation/enhanced-validator.d.ts.map +1 -1
- package/dist/services/validation/enhanced-validator.js +2 -4
- package/dist/services/validation/enhanced-validator.js.map +1 -1
- package/dist/services/validation/security-validator.d.ts.map +1 -1
- package/dist/services/validation/security-validator.js +3 -1
- package/dist/services/validation/security-validator.js.map +1 -1
- package/dist/services/validation-zod.service.js +1 -1
- package/dist/services/validation-zod.service.js.map +1 -1
- package/dist/services/validation.service.d.ts +7 -2
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +7 -4
- package/dist/services/validation.service.js.map +1 -1
- package/dist/services/validators/a2a.validator.js.map +1 -1
- package/dist/services/validators/autogen.validator.js.map +1 -1
- package/dist/services/validators/contract.validator.js.map +1 -1
- package/dist/services/validators/crewai.validator.js.map +1 -1
- package/dist/services/validators/dependencies.validator.d.ts +1 -1
- package/dist/services/validators/dependencies.validator.d.ts.map +1 -1
- package/dist/services/validators/kagent.validator.js.map +1 -1
- package/dist/services/validators/langchain.validator.js.map +1 -1
- package/dist/services/validators/langgraph.validator.js.map +1 -1
- package/dist/services/validators/mcp.validator.js.map +1 -1
- package/dist/services/wizard/prompts.d.ts.map +1 -1
- package/dist/services/wizard/prompts.js +12 -5
- package/dist/services/wizard/prompts.js.map +1 -1
- package/dist/services/wizard/wizard.service.d.ts.map +1 -1
- package/dist/services/wizard/wizard.service.js +9 -4
- package/dist/services/wizard/wizard.service.js.map +1 -1
- package/dist/spec/extensions/knowledge-graph/knowledge-graph.schema.json +386 -0
- package/dist/spec/v0.4/agent.schema.json +154 -1
- package/dist/spec/v0.4/validator.schema.json +282 -0
- package/dist/transports/websocket.d.ts +1 -0
- package/dist/transports/websocket.d.ts.map +1 -1
- package/dist/transports/websocket.js +9 -1
- package/dist/transports/websocket.js.map +1 -1
- package/dist/types/architect.d.ts +2 -2
- package/dist/types/architect.d.ts.map +1 -1
- package/dist/types/identity.zod.d.ts +21 -21
- package/dist/types/index.d.ts +65 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/personality.zod.d.ts +65 -65
- package/dist/types/prompts.zod.d.ts +2 -2
- package/dist/utils/logger.d.ts +82 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +250 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/validation/index.d.ts +3 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +6 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/progressive-scorer.d.ts +123 -0
- package/dist/validation/progressive-scorer.d.ts.map +1 -0
- package/dist/validation/progressive-scorer.js +340 -0
- package/dist/validation/progressive-scorer.js.map +1 -0
- package/dist/validation/validation-context.d.ts +86 -0
- package/dist/validation/validation-context.d.ts.map +1 -0
- package/dist/validation/validation-context.js +138 -0
- package/dist/validation/validation-context.js.map +1 -0
- package/dist/validation/validator-registry.d.ts +158 -0
- package/dist/validation/validator-registry.d.ts.map +1 -0
- package/dist/validation/validator-registry.js +245 -0
- package/dist/validation/validator-registry.js.map +1 -0
- package/dist/version-management/api/server.d.ts.map +1 -1
- package/dist/version-management/api/server.js.map +1 -1
- package/dist/version-management/cli/index.js +8 -1
- package/dist/version-management/cli/index.js.map +1 -1
- package/dist/version-management/core/version-manager.d.ts.map +1 -1
- package/dist/version-management/core/version-manager.js +5 -2
- package/dist/version-management/core/version-manager.js.map +1 -1
- package/dist/version-management/core/version-manager.test.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +4 -6
- package/dist/version.js.map +1 -1
- package/examples/agent-mesh/DISCOVERY.md +679 -0
- package/examples/agent-mesh/discovery-system.ts +670 -0
- package/examples/agent-taxonomy-example.ossa.yaml +89 -0
- package/examples/agents/02-code-review-agent/agent.ossa.yaml +49 -0
- package/examples/agents/03-data-analysis-agent/agent.ossa.yaml +55 -0
- package/examples/agents/06-devops-agent/agent.ossa.yaml +47 -0
- package/examples/agents/07-research-assistant/agent.ossa.yaml +61 -1
- package/examples/agents/09-security-scanner/agent.ossa.yaml +46 -0
- package/examples/deployment-workflow.md +601 -0
- package/examples/gitlab-agents/DEPLOYMENT.md +331 -0
- package/examples/gitlab-agents/daily-code-scan/.env.example +11 -0
- package/examples/gitlab-agents/daily-code-scan/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/daily-code-scan/Dockerfile +18 -0
- package/examples/gitlab-agents/daily-code-scan/README.md +80 -0
- package/examples/gitlab-agents/daily-code-scan/package.json +28 -0
- package/examples/gitlab-agents/daily-code-scan/src/gitlab-client.ts +59 -0
- package/examples/gitlab-agents/daily-code-scan/src/index.ts +50 -0
- package/examples/gitlab-agents/daily-code-scan/src/types.ts +22 -0
- package/examples/gitlab-agents/daily-code-scan/src/workflow.ts +109 -0
- package/examples/gitlab-agents/daily-code-scan/tsconfig.json +24 -0
- package/examples/gitlab-agents/duo-comment-responder/.env.example +14 -0
- package/examples/gitlab-agents/duo-comment-responder/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/duo-comment-responder/Dockerfile +18 -0
- package/examples/gitlab-agents/duo-comment-responder/README.md +98 -0
- package/examples/gitlab-agents/duo-comment-responder/package.json +29 -0
- package/examples/gitlab-agents/duo-comment-responder/src/gitlab-client.ts +56 -0
- package/examples/gitlab-agents/duo-comment-responder/src/index.ts +103 -0
- package/examples/gitlab-agents/duo-comment-responder/src/llm-client.ts +75 -0
- package/examples/gitlab-agents/duo-comment-responder/src/types.ts +22 -0
- package/examples/gitlab-agents/duo-comment-responder/src/workflow.ts +135 -0
- package/examples/gitlab-agents/duo-comment-responder/tsconfig.json +24 -0
- package/examples/gitlab-agents/duo-comment-responder/webhook-config.json +11 -0
- package/examples/gitlab-agents/k8s/deploy-all.yaml +341 -0
- package/examples/gitlab-agents/mr-reviewer/.env.example +14 -0
- package/examples/gitlab-agents/mr-reviewer/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/mr-reviewer/Dockerfile +18 -0
- package/examples/gitlab-agents/mr-reviewer/README.md +98 -0
- package/examples/gitlab-agents/mr-reviewer/package.json +29 -0
- package/examples/gitlab-agents/mr-reviewer/src/gitlab-client.ts +66 -0
- package/examples/gitlab-agents/mr-reviewer/src/index.ts +103 -0
- package/examples/gitlab-agents/mr-reviewer/src/llm-client.ts +95 -0
- package/examples/gitlab-agents/mr-reviewer/src/types.ts +22 -0
- package/examples/gitlab-agents/mr-reviewer/src/workflow.ts +144 -0
- package/examples/gitlab-agents/mr-reviewer/tsconfig.json +24 -0
- package/examples/gitlab-agents/mr-reviewer/webhook-config.json +11 -0
- package/examples/gitlab-agents/pipeline-auto-fix/.env.example +14 -0
- package/examples/gitlab-agents/pipeline-auto-fix/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/pipeline-auto-fix/Dockerfile +18 -0
- package/examples/gitlab-agents/pipeline-auto-fix/README.md +98 -0
- package/examples/gitlab-agents/pipeline-auto-fix/package.json +29 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/gitlab-client.ts +77 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/index.ts +103 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/llm-client.ts +79 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/types.ts +22 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/workflow.ts +146 -0
- package/examples/gitlab-agents/pipeline-auto-fix/tsconfig.json +24 -0
- package/examples/gitlab-agents/pipeline-auto-fix/webhook-config.json +11 -0
- package/examples/gitlab-agents/pre-commit-quality-check/.env.example +11 -0
- package/examples/gitlab-agents/pre-commit-quality-check/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/pre-commit-quality-check/Dockerfile +18 -0
- package/examples/gitlab-agents/pre-commit-quality-check/README.md +80 -0
- package/examples/gitlab-agents/pre-commit-quality-check/package.json +28 -0
- package/examples/gitlab-agents/pre-commit-quality-check/src/gitlab-client.ts +20 -0
- package/examples/gitlab-agents/pre-commit-quality-check/src/index.ts +50 -0
- package/examples/gitlab-agents/pre-commit-quality-check/src/types.ts +22 -0
- package/examples/gitlab-agents/pre-commit-quality-check/src/workflow.ts +63 -0
- package/examples/gitlab-agents/pre-commit-quality-check/tsconfig.json +24 -0
- package/examples/gitlab-agents/pre-push-validation/.env.example +11 -0
- package/examples/gitlab-agents/pre-push-validation/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/pre-push-validation/Dockerfile +18 -0
- package/examples/gitlab-agents/pre-push-validation/README.md +80 -0
- package/examples/gitlab-agents/pre-push-validation/package.json +28 -0
- package/examples/gitlab-agents/pre-push-validation/src/gitlab-client.ts +20 -0
- package/examples/gitlab-agents/pre-push-validation/src/index.ts +50 -0
- package/examples/gitlab-agents/pre-push-validation/src/types.ts +22 -0
- package/examples/gitlab-agents/pre-push-validation/src/workflow.ts +63 -0
- package/examples/gitlab-agents/pre-push-validation/tsconfig.json +24 -0
- package/examples/gitlab-duo/EXTERNAL_AGENTS.md +466 -0
- package/examples/gitlab-duo/README.md +307 -0
- package/examples/gitlab-duo/code-review-flow.yaml +62 -0
- package/examples/gitlab-duo/external-agent-example.ts +192 -0
- package/examples/gitlab-duo/generated/custom-vars-agent.yaml +45 -0
- package/examples/gitlab-duo/generated/go-agent.yaml +41 -0
- package/examples/gitlab-duo/generated/python-agent.yaml +43 -0
- package/examples/gitlab-duo/generated/webhook-agent.yaml +52 -0
- package/examples/infrastructure/token-rotation/README.md +117 -0
- package/examples/infrastructure/token-rotation/manifest.ossa.yaml +73 -0
- package/examples/infrastructure/token-rotation/openapi.yaml +133 -0
- package/examples/knowledge-graph/drupal-agent-with-kg.ossa.yaml +289 -0
- package/examples/mcp/browser-puppeteer.ossa.yaml +234 -0
- package/examples/mr-reviewer-with-governance.ossa.yaml +130 -0
- package/examples/showcase/PRODUCTION_EXAMPLES.md +499 -0
- package/examples/showcase/compliance-checker.ossa.yaml +207 -0
- package/examples/showcase/customer-support.ossa.yaml +344 -0
- package/examples/showcase/data-processing-pipeline.ossa.yaml +254 -0
- package/examples/showcase/security-scanner-enhanced.ossa.yaml +304 -0
- package/examples/showcase/team-leader.ossa.yaml +306 -0
- package/package.json +14 -11
- package/schemas/governance-extension.yaml +161 -0
- package/spec/extensions/knowledge-graph/knowledge-graph.schema.json +386 -0
- package/spec/v0.4/agent.schema.json +154 -1
- package/spec/v0.4/validator.schema.json +282 -0
- package/templates/agent-types/claude-agent.ossa.yaml +83 -0
- package/templates/agent-types/kagent.ossa.yaml +110 -0
- package/templates/agent-types/langchain-agent.ossa.yaml +106 -0
- package/templates/agent-types/openapi-agent.ossa.yaml +121 -0
- package/templates/agent-types/swarm-agents.ossa.yaml +168 -0
- package/templates/ci-cd/github-actions.deploy.yml +272 -0
- package/templates/ci-cd/gitlab-ci.deploy.yml +205 -0
- package/templates/validators/capability-compatibility.ossa.yaml +174 -0
- package/templates/validators/coordination-consistency.ossa.yaml +160 -0
- package/templates/validators/pattern-requirements.ossa.yaml +182 -0
- package/templates/validators/transport-compatibility.ossa.yaml +185 -0
- package/.wiki-config.json +0 -24
- package/DEMO.md +0 -212
- package/junit.xml +0 -1469
- package/llms-ctx-full.txt +0 -41
- package/llms-ctx.txt +0 -41
|
@@ -11,6 +11,7 @@ import { TypeScriptGenerator } from './typescript-generator.js';
|
|
|
11
11
|
import { ExpressGenerator } from './express-generator.js';
|
|
12
12
|
import { OpenAPIGenerator } from './openapi-generator.js';
|
|
13
13
|
import { PackageJsonGenerator } from './package-json-generator.js';
|
|
14
|
+
import { getApiVersion } from '../../../utils/version.js';
|
|
14
15
|
/**
|
|
15
16
|
* NPM Package Exporter
|
|
16
17
|
*
|
|
@@ -147,6 +148,82 @@ export class NPMExporter {
|
|
|
147
148
|
language: 'typescript',
|
|
148
149
|
});
|
|
149
150
|
}
|
|
151
|
+
// 13. CHANGELOG.md
|
|
152
|
+
files.push({
|
|
153
|
+
path: 'CHANGELOG.md',
|
|
154
|
+
content: this.generateChangelog(manifest),
|
|
155
|
+
type: 'documentation',
|
|
156
|
+
language: 'markdown',
|
|
157
|
+
});
|
|
158
|
+
// 14. LICENSE
|
|
159
|
+
files.push({
|
|
160
|
+
path: 'LICENSE',
|
|
161
|
+
content: this.generateLicense(manifest),
|
|
162
|
+
type: 'documentation',
|
|
163
|
+
});
|
|
164
|
+
// 15. CONTRIBUTING.md
|
|
165
|
+
files.push({
|
|
166
|
+
path: 'CONTRIBUTING.md',
|
|
167
|
+
content: this.generateContributing(manifest, packageName),
|
|
168
|
+
type: 'documentation',
|
|
169
|
+
language: 'markdown',
|
|
170
|
+
});
|
|
171
|
+
// 16. SECURITY.md
|
|
172
|
+
files.push({
|
|
173
|
+
path: 'SECURITY.md',
|
|
174
|
+
content: this.generateSecurity(manifest),
|
|
175
|
+
type: 'documentation',
|
|
176
|
+
language: 'markdown',
|
|
177
|
+
});
|
|
178
|
+
// 17. API.md
|
|
179
|
+
files.push({
|
|
180
|
+
path: 'API.md',
|
|
181
|
+
content: this.generateApiDocs(manifest),
|
|
182
|
+
type: 'documentation',
|
|
183
|
+
language: 'markdown',
|
|
184
|
+
});
|
|
185
|
+
// 18. Examples
|
|
186
|
+
const examples = this.generateExamples(manifest, packageName);
|
|
187
|
+
for (const [path, content] of Object.entries(examples)) {
|
|
188
|
+
files.push({
|
|
189
|
+
path: `examples/${path}`,
|
|
190
|
+
content,
|
|
191
|
+
type: 'documentation',
|
|
192
|
+
language: path.endsWith('.ts') ? 'typescript' : 'markdown',
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
// 19. Complete test suite
|
|
196
|
+
if (options.includeTests) {
|
|
197
|
+
const testSuite = this.generateCompletedTestSuite(manifest);
|
|
198
|
+
for (const [path, content] of Object.entries(testSuite)) {
|
|
199
|
+
files.push({
|
|
200
|
+
path: `tests/${path}`,
|
|
201
|
+
content,
|
|
202
|
+
type: 'code',
|
|
203
|
+
language: path.endsWith('.ts') ? 'typescript' : 'json',
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// 20. Enhanced source structure
|
|
208
|
+
const enhancedSource = this.generateEnhancedSource(manifest);
|
|
209
|
+
for (const [path, content] of Object.entries(enhancedSource)) {
|
|
210
|
+
files.push({
|
|
211
|
+
path: `src/${path}`,
|
|
212
|
+
content,
|
|
213
|
+
type: 'code',
|
|
214
|
+
language: 'typescript',
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
// 21. Quality assurance files
|
|
218
|
+
const qaFiles = this.generateQAFiles(options);
|
|
219
|
+
for (const [path, content] of Object.entries(qaFiles)) {
|
|
220
|
+
files.push({
|
|
221
|
+
path,
|
|
222
|
+
content,
|
|
223
|
+
type: 'config',
|
|
224
|
+
language: this.getLanguageFromPath(path),
|
|
225
|
+
});
|
|
226
|
+
}
|
|
150
227
|
return {
|
|
151
228
|
success: true,
|
|
152
229
|
files,
|
|
@@ -308,7 +385,7 @@ ${metadata.license || 'MIT'}
|
|
|
308
385
|
|
|
309
386
|
## Generated from OSSA
|
|
310
387
|
|
|
311
|
-
This package was generated from OSSA v${manifest.apiVersion?.split('/')[1] ||
|
|
388
|
+
This package was generated from OSSA v${manifest.apiVersion?.split('/')[1] || getApiVersion()} manifest.
|
|
312
389
|
|
|
313
390
|
- [OSSA Specification](https://openstandardagents.org)
|
|
314
391
|
- [Documentation](https://docs.openstandardagents.org)
|
|
@@ -476,5 +553,1221 @@ describe('${name}', () => {
|
|
|
476
553
|
});
|
|
477
554
|
`;
|
|
478
555
|
}
|
|
556
|
+
/**
|
|
557
|
+
* Generate CHANGELOG.md
|
|
558
|
+
*/
|
|
559
|
+
generateChangelog(manifest) {
|
|
560
|
+
const version = manifest.metadata?.version || '1.0.0';
|
|
561
|
+
const date = new Date().toISOString().split('T')[0];
|
|
562
|
+
return `# Changelog
|
|
563
|
+
|
|
564
|
+
All notable changes to this project will be documented in this file.
|
|
565
|
+
|
|
566
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
567
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
568
|
+
|
|
569
|
+
## [${version}] - ${date}
|
|
570
|
+
|
|
571
|
+
### Added
|
|
572
|
+
- Initial release
|
|
573
|
+
- Agent implementation with TypeScript
|
|
574
|
+
- Express server with OpenAPI documentation
|
|
575
|
+
- Docker support
|
|
576
|
+
${manifest.spec?.tools ? `- ${manifest.spec.tools.length} tool(s) implementation` : ''}
|
|
577
|
+
|
|
578
|
+
### Changed
|
|
579
|
+
- N/A
|
|
580
|
+
|
|
581
|
+
### Deprecated
|
|
582
|
+
- N/A
|
|
583
|
+
|
|
584
|
+
### Removed
|
|
585
|
+
- N/A
|
|
586
|
+
|
|
587
|
+
### Fixed
|
|
588
|
+
- N/A
|
|
589
|
+
|
|
590
|
+
### Security
|
|
591
|
+
- N/A
|
|
592
|
+
`;
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Generate LICENSE file
|
|
596
|
+
*/
|
|
597
|
+
generateLicense(manifest) {
|
|
598
|
+
const license = manifest.metadata?.license || 'MIT';
|
|
599
|
+
const year = new Date().getFullYear();
|
|
600
|
+
const author = manifest.metadata?.author || 'The Agent Developers';
|
|
601
|
+
if (license === 'MIT') {
|
|
602
|
+
return `MIT License
|
|
603
|
+
|
|
604
|
+
Copyright (c) ${year} ${author}
|
|
605
|
+
|
|
606
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
607
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
608
|
+
in the Software without restriction, including without limitation the rights
|
|
609
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
610
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
611
|
+
furnished to do so, subject to the following conditions:
|
|
612
|
+
|
|
613
|
+
The above copyright notice and this permission notice shall be included in all
|
|
614
|
+
copies or substantial portions of the Software.
|
|
615
|
+
|
|
616
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
617
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
618
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
619
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
620
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
621
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
622
|
+
SOFTWARE.
|
|
623
|
+
`;
|
|
624
|
+
}
|
|
625
|
+
else if (license === 'Apache-2.0') {
|
|
626
|
+
return `Apache License
|
|
627
|
+
Version 2.0, January 2004
|
|
628
|
+
http://www.apache.org/licenses/
|
|
629
|
+
|
|
630
|
+
Copyright ${year} ${author}
|
|
631
|
+
|
|
632
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
633
|
+
you may not use this file except in compliance with the License.
|
|
634
|
+
You may obtain a copy of the License at
|
|
635
|
+
|
|
636
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
637
|
+
|
|
638
|
+
Unless required by applicable law or agreed to in writing, software
|
|
639
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
640
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
641
|
+
See the License for the specific language governing permissions and
|
|
642
|
+
limitations under the License.
|
|
643
|
+
`;
|
|
644
|
+
}
|
|
645
|
+
return `${license} License
|
|
646
|
+
|
|
647
|
+
Copyright (c) ${year} ${author}
|
|
648
|
+
|
|
649
|
+
All rights reserved.
|
|
650
|
+
`;
|
|
651
|
+
}
|
|
652
|
+
/**
|
|
653
|
+
* Generate CONTRIBUTING.md
|
|
654
|
+
*/
|
|
655
|
+
generateContributing(manifest, packageName) {
|
|
656
|
+
return `# Contributing to ${manifest.metadata?.name || 'this project'}
|
|
657
|
+
|
|
658
|
+
Thank you for your interest in contributing! This document provides guidelines for contributing.
|
|
659
|
+
|
|
660
|
+
## Getting Started
|
|
661
|
+
|
|
662
|
+
1. Fork the repository
|
|
663
|
+
2. Clone your fork: \`git clone https://github.com/yourusername/${packageName}.git\`
|
|
664
|
+
3. Install dependencies: \`npm install\`
|
|
665
|
+
4. Create a branch: \`git checkout -b feature/your-feature-name\`
|
|
666
|
+
|
|
667
|
+
## Development Workflow
|
|
668
|
+
|
|
669
|
+
### Building
|
|
670
|
+
|
|
671
|
+
\`\`\`bash
|
|
672
|
+
npm run build
|
|
673
|
+
\`\`\`
|
|
674
|
+
|
|
675
|
+
### Testing
|
|
676
|
+
|
|
677
|
+
\`\`\`bash
|
|
678
|
+
# Run all tests
|
|
679
|
+
npm test
|
|
680
|
+
|
|
681
|
+
# Run tests in watch mode
|
|
682
|
+
npm run test:watch
|
|
683
|
+
|
|
684
|
+
# Generate coverage report
|
|
685
|
+
npm run test:coverage
|
|
686
|
+
\`\`\`
|
|
687
|
+
|
|
688
|
+
### Linting
|
|
689
|
+
|
|
690
|
+
\`\`\`bash
|
|
691
|
+
# Check for linting errors
|
|
692
|
+
npm run lint
|
|
693
|
+
|
|
694
|
+
# Auto-fix linting errors
|
|
695
|
+
npm run lint:fix
|
|
696
|
+
\`\`\`
|
|
697
|
+
|
|
698
|
+
### Code Style
|
|
699
|
+
|
|
700
|
+
This project uses:
|
|
701
|
+
- ESLint for code linting
|
|
702
|
+
- Prettier for code formatting
|
|
703
|
+
- TypeScript for type safety
|
|
704
|
+
|
|
705
|
+
Please ensure your code:
|
|
706
|
+
- Passes all linting checks
|
|
707
|
+
- Follows the existing code style
|
|
708
|
+
- Includes appropriate tests
|
|
709
|
+
- Has clear commit messages
|
|
710
|
+
|
|
711
|
+
## Pull Request Process
|
|
712
|
+
|
|
713
|
+
1. Update documentation if needed
|
|
714
|
+
2. Add tests for new functionality
|
|
715
|
+
3. Ensure all tests pass
|
|
716
|
+
4. Update CHANGELOG.md
|
|
717
|
+
5. Submit pull request with clear description
|
|
718
|
+
|
|
719
|
+
### Commit Messages
|
|
720
|
+
|
|
721
|
+
Follow conventional commits format:
|
|
722
|
+
|
|
723
|
+
- \`feat: Add new feature\`
|
|
724
|
+
- \`fix: Fix bug\`
|
|
725
|
+
- \`docs: Update documentation\`
|
|
726
|
+
- \`test: Add tests\`
|
|
727
|
+
- \`refactor: Refactor code\`
|
|
728
|
+
- \`chore: Update dependencies\`
|
|
729
|
+
|
|
730
|
+
## Code of Conduct
|
|
731
|
+
|
|
732
|
+
- Be respectful and inclusive
|
|
733
|
+
- Focus on constructive feedback
|
|
734
|
+
- Help others learn and grow
|
|
735
|
+
- Follow project guidelines
|
|
736
|
+
|
|
737
|
+
## Questions?
|
|
738
|
+
|
|
739
|
+
Feel free to open an issue for questions or discussions.
|
|
740
|
+
|
|
741
|
+
## License
|
|
742
|
+
|
|
743
|
+
By contributing, you agree that your contributions will be licensed under the ${manifest.metadata?.license || 'MIT'} License.
|
|
744
|
+
`;
|
|
745
|
+
}
|
|
746
|
+
/**
|
|
747
|
+
* Generate SECURITY.md
|
|
748
|
+
*/
|
|
749
|
+
generateSecurity(manifest) {
|
|
750
|
+
return `# Security Policy
|
|
751
|
+
|
|
752
|
+
## Supported Versions
|
|
753
|
+
|
|
754
|
+
| Version | Supported |
|
|
755
|
+
| ------- | ------------------ |
|
|
756
|
+
| ${manifest.metadata?.version || '1.0.0'} | :white_check_mark: |
|
|
757
|
+
|
|
758
|
+
## Reporting a Vulnerability
|
|
759
|
+
|
|
760
|
+
If you discover a security vulnerability, please report it by:
|
|
761
|
+
|
|
762
|
+
1. **DO NOT** open a public issue
|
|
763
|
+
2. Email security contact (if provided in package.json)
|
|
764
|
+
3. Include detailed information:
|
|
765
|
+
- Description of the vulnerability
|
|
766
|
+
- Steps to reproduce
|
|
767
|
+
- Potential impact
|
|
768
|
+
- Suggested fix (if any)
|
|
769
|
+
|
|
770
|
+
## Security Best Practices
|
|
771
|
+
|
|
772
|
+
When using this agent:
|
|
773
|
+
|
|
774
|
+
1. **API Keys**: Never commit API keys or secrets
|
|
775
|
+
2. **Environment Variables**: Use \`.env\` files (not committed)
|
|
776
|
+
3. **Input Validation**: Always validate user inputs
|
|
777
|
+
4. **Dependencies**: Keep dependencies up to date
|
|
778
|
+
5. **HTTPS**: Use HTTPS in production
|
|
779
|
+
6. **Rate Limiting**: Implement rate limiting for APIs
|
|
780
|
+
7. **Error Handling**: Don't expose sensitive information in errors
|
|
781
|
+
|
|
782
|
+
## Security Updates
|
|
783
|
+
|
|
784
|
+
Security updates are released as patch versions. Subscribe to releases to stay informed.
|
|
785
|
+
|
|
786
|
+
## Disclosure Policy
|
|
787
|
+
|
|
788
|
+
- Report received: We acknowledge within 48 hours
|
|
789
|
+
- Assessment: We assess the vulnerability
|
|
790
|
+
- Fix: We develop and test a fix
|
|
791
|
+
- Release: We release a security patch
|
|
792
|
+
- Disclosure: We publicly disclose after users have time to update
|
|
793
|
+
|
|
794
|
+
## Known Security Considerations
|
|
795
|
+
|
|
796
|
+
### LLM Security
|
|
797
|
+
- Input sanitization for prompts
|
|
798
|
+
- Output validation for responses
|
|
799
|
+
- Rate limiting for API calls
|
|
800
|
+
- Cost monitoring for API usage
|
|
801
|
+
|
|
802
|
+
### API Security
|
|
803
|
+
- Authentication required for sensitive endpoints
|
|
804
|
+
- Authorization checks for operations
|
|
805
|
+
- Input validation for all requests
|
|
806
|
+
- Rate limiting for abuse prevention
|
|
807
|
+
|
|
808
|
+
### Data Privacy
|
|
809
|
+
- No sensitive data in logs
|
|
810
|
+
- Secure storage for credentials
|
|
811
|
+
- Encryption in transit (HTTPS)
|
|
812
|
+
- Data retention policies
|
|
813
|
+
|
|
814
|
+
## Dependencies
|
|
815
|
+
|
|
816
|
+
We regularly audit dependencies for security vulnerabilities using:
|
|
817
|
+
- npm audit
|
|
818
|
+
- Snyk
|
|
819
|
+
- Dependabot
|
|
820
|
+
|
|
821
|
+
## Questions?
|
|
822
|
+
|
|
823
|
+
For security questions, contact the maintainers through secure channels.
|
|
824
|
+
`;
|
|
825
|
+
}
|
|
826
|
+
/**
|
|
827
|
+
* Generate API.md documentation
|
|
828
|
+
*/
|
|
829
|
+
generateApiDocs(manifest) {
|
|
830
|
+
const name = manifest.metadata?.name || 'Agent';
|
|
831
|
+
const tools = manifest.spec?.tools || [];
|
|
832
|
+
let toolsDocs = '';
|
|
833
|
+
if (Array.isArray(tools) && tools.length > 0) {
|
|
834
|
+
toolsDocs = `\n## Tools\n\n`;
|
|
835
|
+
for (const tool of tools) {
|
|
836
|
+
if (typeof tool === 'object' && tool !== null && 'name' in tool) {
|
|
837
|
+
toolsDocs += `### ${tool.name}\n\n`;
|
|
838
|
+
if ('description' in tool) {
|
|
839
|
+
toolsDocs += `${tool.description}\n\n`;
|
|
840
|
+
}
|
|
841
|
+
if ('parameters' in tool) {
|
|
842
|
+
toolsDocs += `**Parameters:**\n\n\`\`\`typescript\n${JSON.stringify(tool.parameters, null, 2)}\n\`\`\`\n\n`;
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
return `# API Documentation
|
|
848
|
+
|
|
849
|
+
Complete API reference for ${name}.
|
|
850
|
+
|
|
851
|
+
## Table of Contents
|
|
852
|
+
|
|
853
|
+
- [Installation](#installation)
|
|
854
|
+
- [Agent Class](#agent-class)
|
|
855
|
+
- [Methods](#methods)
|
|
856
|
+
- [Types](#types)
|
|
857
|
+
${tools.length > 0 ? '- [Tools](#tools)' : ''}
|
|
858
|
+
- [Server API](#server-api)
|
|
859
|
+
- [Examples](#examples)
|
|
860
|
+
|
|
861
|
+
## Installation
|
|
862
|
+
|
|
863
|
+
\`\`\`bash
|
|
864
|
+
npm install ${manifest.metadata?.name || 'agent'}
|
|
865
|
+
\`\`\`
|
|
866
|
+
|
|
867
|
+
## Agent Class
|
|
868
|
+
|
|
869
|
+
### Constructor
|
|
870
|
+
|
|
871
|
+
\`\`\`typescript
|
|
872
|
+
import { Agent } from '${manifest.metadata?.name || 'agent'}';
|
|
873
|
+
|
|
874
|
+
const agent = new Agent(options?: AgentOptions);
|
|
875
|
+
\`\`\`
|
|
876
|
+
|
|
877
|
+
**AgentOptions:**
|
|
878
|
+
|
|
879
|
+
\`\`\`typescript
|
|
880
|
+
interface AgentOptions {
|
|
881
|
+
apiKey?: string;
|
|
882
|
+
model?: string;
|
|
883
|
+
temperature?: number;
|
|
884
|
+
maxTokens?: number;
|
|
885
|
+
}
|
|
886
|
+
\`\`\`
|
|
887
|
+
|
|
888
|
+
## Methods
|
|
889
|
+
|
|
890
|
+
### chat()
|
|
891
|
+
|
|
892
|
+
Send a message to the agent and receive a response.
|
|
893
|
+
|
|
894
|
+
\`\`\`typescript
|
|
895
|
+
const response = await agent.chat(request: ChatRequest): Promise<ChatResponse>
|
|
896
|
+
\`\`\`
|
|
897
|
+
|
|
898
|
+
**Parameters:**
|
|
899
|
+
|
|
900
|
+
\`\`\`typescript
|
|
901
|
+
interface ChatRequest {
|
|
902
|
+
message: string;
|
|
903
|
+
context?: Record<string, any>;
|
|
904
|
+
sessionId?: string;
|
|
905
|
+
}
|
|
906
|
+
\`\`\`
|
|
907
|
+
|
|
908
|
+
**Returns:**
|
|
909
|
+
|
|
910
|
+
\`\`\`typescript
|
|
911
|
+
interface ChatResponse {
|
|
912
|
+
message: string;
|
|
913
|
+
context?: Record<string, any>;
|
|
914
|
+
metadata?: {
|
|
915
|
+
model: string;
|
|
916
|
+
tokens: number;
|
|
917
|
+
duration: number;
|
|
918
|
+
};
|
|
919
|
+
}
|
|
920
|
+
\`\`\`
|
|
921
|
+
|
|
922
|
+
**Example:**
|
|
923
|
+
|
|
924
|
+
\`\`\`typescript
|
|
925
|
+
const response = await agent.chat({
|
|
926
|
+
message: 'Hello, how are you?',
|
|
927
|
+
context: { user: 'john' }
|
|
928
|
+
});
|
|
929
|
+
|
|
930
|
+
console.log(response.message);
|
|
931
|
+
\`\`\`
|
|
932
|
+
|
|
933
|
+
### getMetadata()
|
|
934
|
+
|
|
935
|
+
Get agent metadata information.
|
|
936
|
+
|
|
937
|
+
\`\`\`typescript
|
|
938
|
+
const metadata = agent.getMetadata(): AgentMetadata
|
|
939
|
+
\`\`\`
|
|
940
|
+
|
|
941
|
+
**Returns:**
|
|
942
|
+
|
|
943
|
+
\`\`\`typescript
|
|
944
|
+
interface AgentMetadata {
|
|
945
|
+
name: string;
|
|
946
|
+
version: string;
|
|
947
|
+
description?: string;
|
|
948
|
+
author?: string;
|
|
949
|
+
license?: string;
|
|
950
|
+
}
|
|
951
|
+
\`\`\`
|
|
952
|
+
|
|
953
|
+
### getCapabilities()
|
|
954
|
+
|
|
955
|
+
Get agent capabilities and features.
|
|
956
|
+
|
|
957
|
+
\`\`\`typescript
|
|
958
|
+
const capabilities = agent.getCapabilities(): Capabilities
|
|
959
|
+
\`\`\`
|
|
960
|
+
|
|
961
|
+
**Returns:**
|
|
962
|
+
|
|
963
|
+
\`\`\`typescript
|
|
964
|
+
interface Capabilities {
|
|
965
|
+
tools: string[];
|
|
966
|
+
models: string[];
|
|
967
|
+
features: string[];
|
|
968
|
+
}
|
|
969
|
+
\`\`\`
|
|
970
|
+
|
|
971
|
+
## Types
|
|
972
|
+
|
|
973
|
+
### ChatRequest
|
|
974
|
+
|
|
975
|
+
\`\`\`typescript
|
|
976
|
+
interface ChatRequest {
|
|
977
|
+
message: string;
|
|
978
|
+
context?: Record<string, any>;
|
|
979
|
+
sessionId?: string;
|
|
980
|
+
}
|
|
981
|
+
\`\`\`
|
|
982
|
+
|
|
983
|
+
### ChatResponse
|
|
984
|
+
|
|
985
|
+
\`\`\`typescript
|
|
986
|
+
interface ChatResponse {
|
|
987
|
+
message: string;
|
|
988
|
+
context?: Record<string, any>;
|
|
989
|
+
metadata?: ResponseMetadata;
|
|
990
|
+
}
|
|
991
|
+
\`\`\`
|
|
992
|
+
|
|
993
|
+
### AgentOptions
|
|
994
|
+
|
|
995
|
+
\`\`\`typescript
|
|
996
|
+
interface AgentOptions {
|
|
997
|
+
apiKey?: string;
|
|
998
|
+
model?: string;
|
|
999
|
+
temperature?: number;
|
|
1000
|
+
maxTokens?: number;
|
|
1001
|
+
}
|
|
1002
|
+
\`\`\`
|
|
1003
|
+
${toolsDocs}
|
|
1004
|
+
## Server API
|
|
1005
|
+
|
|
1006
|
+
When running as a server, the following REST endpoints are available:
|
|
1007
|
+
|
|
1008
|
+
### POST /chat
|
|
1009
|
+
|
|
1010
|
+
Send a message to the agent.
|
|
1011
|
+
|
|
1012
|
+
**Request:**
|
|
1013
|
+
|
|
1014
|
+
\`\`\`json
|
|
1015
|
+
{
|
|
1016
|
+
"message": "Hello",
|
|
1017
|
+
"context": {},
|
|
1018
|
+
"sessionId": "optional-session-id"
|
|
1019
|
+
}
|
|
1020
|
+
\`\`\`
|
|
1021
|
+
|
|
1022
|
+
**Response:**
|
|
1023
|
+
|
|
1024
|
+
\`\`\`json
|
|
1025
|
+
{
|
|
1026
|
+
"message": "Response from agent",
|
|
1027
|
+
"context": {},
|
|
1028
|
+
"metadata": {
|
|
1029
|
+
"model": "gpt-4",
|
|
1030
|
+
"tokens": 100,
|
|
1031
|
+
"duration": 500
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
\`\`\`
|
|
1035
|
+
|
|
1036
|
+
### GET /health
|
|
1037
|
+
|
|
1038
|
+
Health check endpoint.
|
|
1039
|
+
|
|
1040
|
+
**Response:**
|
|
1041
|
+
|
|
1042
|
+
\`\`\`json
|
|
1043
|
+
{
|
|
1044
|
+
"status": "ok",
|
|
1045
|
+
"uptime": 12345,
|
|
1046
|
+
"version": "1.0.0"
|
|
1047
|
+
}
|
|
1048
|
+
\`\`\`
|
|
1049
|
+
|
|
1050
|
+
### GET /openapi
|
|
1051
|
+
|
|
1052
|
+
Get OpenAPI specification.
|
|
1053
|
+
|
|
1054
|
+
**Response:**
|
|
1055
|
+
|
|
1056
|
+
Returns the OpenAPI 3.0 specification in YAML format.
|
|
1057
|
+
|
|
1058
|
+
## Examples
|
|
1059
|
+
|
|
1060
|
+
See the [examples](./examples/) directory for complete examples:
|
|
1061
|
+
|
|
1062
|
+
- [Basic Usage](./examples/basic-usage.ts)
|
|
1063
|
+
- [With Tools](./examples/with-tools.ts)
|
|
1064
|
+
- [With API](./examples/with-api.ts)
|
|
1065
|
+
- [Advanced Usage](./examples/advanced.ts)
|
|
1066
|
+
|
|
1067
|
+
## Error Handling
|
|
1068
|
+
|
|
1069
|
+
All methods can throw errors. Always use try-catch:
|
|
1070
|
+
|
|
1071
|
+
\`\`\`typescript
|
|
1072
|
+
try {
|
|
1073
|
+
const response = await agent.chat({ message: 'Hello' });
|
|
1074
|
+
console.log(response);
|
|
1075
|
+
} catch (error) {
|
|
1076
|
+
console.error('Error:', error.message);
|
|
1077
|
+
}
|
|
1078
|
+
\`\`\`
|
|
1079
|
+
|
|
1080
|
+
## TypeScript Support
|
|
1081
|
+
|
|
1082
|
+
This package includes TypeScript definitions. Import types:
|
|
1083
|
+
|
|
1084
|
+
\`\`\`typescript
|
|
1085
|
+
import type {
|
|
1086
|
+
ChatRequest,
|
|
1087
|
+
ChatResponse,
|
|
1088
|
+
AgentOptions
|
|
1089
|
+
} from '${manifest.metadata?.name || 'agent'}';
|
|
1090
|
+
\`\`\`
|
|
1091
|
+
|
|
1092
|
+
## Rate Limiting
|
|
1093
|
+
|
|
1094
|
+
The server includes rate limiting:
|
|
1095
|
+
- 100 requests per 15 minutes per IP
|
|
1096
|
+
- 429 status code when limit exceeded
|
|
1097
|
+
|
|
1098
|
+
## Environment Variables
|
|
1099
|
+
|
|
1100
|
+
- \`LLM_API_KEY\` - API key for LLM provider (required)
|
|
1101
|
+
- \`PORT\` - Server port (default: 3000)
|
|
1102
|
+
- \`LOG_LEVEL\` - Logging level (default: info)
|
|
1103
|
+
- \`NODE_ENV\` - Environment (development/production)
|
|
1104
|
+
|
|
1105
|
+
## License
|
|
1106
|
+
|
|
1107
|
+
${manifest.metadata?.license || 'MIT'}
|
|
1108
|
+
`;
|
|
1109
|
+
}
|
|
1110
|
+
/**
|
|
1111
|
+
* Generate examples
|
|
1112
|
+
*/
|
|
1113
|
+
generateExamples(manifest, packageName) {
|
|
1114
|
+
return {
|
|
1115
|
+
'README.md': `# Examples
|
|
1116
|
+
|
|
1117
|
+
This directory contains examples for using ${manifest.metadata?.name || 'the agent'}.
|
|
1118
|
+
|
|
1119
|
+
## Available Examples
|
|
1120
|
+
|
|
1121
|
+
- [basic-usage.ts](./basic-usage.ts) - Simple usage example
|
|
1122
|
+
- [with-tools.ts](./with-tools.ts) - Using agent tools
|
|
1123
|
+
- [with-api.ts](./with-api.ts) - Using the REST API
|
|
1124
|
+
- [advanced.ts](./advanced.ts) - Advanced features
|
|
1125
|
+
|
|
1126
|
+
## Running Examples
|
|
1127
|
+
|
|
1128
|
+
\`\`\`bash
|
|
1129
|
+
# Install dependencies
|
|
1130
|
+
npm install
|
|
1131
|
+
|
|
1132
|
+
# Run an example
|
|
1133
|
+
npx tsx examples/basic-usage.ts
|
|
1134
|
+
\`\`\`
|
|
1135
|
+
|
|
1136
|
+
## Environment Setup
|
|
1137
|
+
|
|
1138
|
+
Copy \`.env.example\` to \`.env\` and configure:
|
|
1139
|
+
|
|
1140
|
+
\`\`\`bash
|
|
1141
|
+
LLM_API_KEY=your-api-key
|
|
1142
|
+
\`\`\`
|
|
1143
|
+
`,
|
|
1144
|
+
'basic-usage.ts': `/**
|
|
1145
|
+
* Basic Usage Example
|
|
1146
|
+
*
|
|
1147
|
+
* Demonstrates simple agent interaction
|
|
1148
|
+
*/
|
|
1149
|
+
|
|
1150
|
+
import { Agent } from '${packageName}';
|
|
1151
|
+
|
|
1152
|
+
async function main() {
|
|
1153
|
+
// Create agent instance
|
|
1154
|
+
const agent = new Agent({
|
|
1155
|
+
apiKey: process.env.LLM_API_KEY,
|
|
1156
|
+
});
|
|
1157
|
+
|
|
1158
|
+
// Send a message
|
|
1159
|
+
const response = await agent.chat({
|
|
1160
|
+
message: 'Hello! Can you help me?',
|
|
1161
|
+
});
|
|
1162
|
+
|
|
1163
|
+
console.log('Agent response:', response.message);
|
|
1164
|
+
|
|
1165
|
+
// Get agent metadata
|
|
1166
|
+
const metadata = agent.getMetadata();
|
|
1167
|
+
console.log('Agent info:', metadata);
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
main().catch(console.error);
|
|
1171
|
+
`,
|
|
1172
|
+
'with-tools.ts': `/**
|
|
1173
|
+
* Tools Example
|
|
1174
|
+
*
|
|
1175
|
+
* Demonstrates using agent tools
|
|
1176
|
+
*/
|
|
1177
|
+
|
|
1178
|
+
import { Agent } from '${packageName}';
|
|
1179
|
+
|
|
1180
|
+
async function main() {
|
|
1181
|
+
const agent = new Agent({
|
|
1182
|
+
apiKey: process.env.LLM_API_KEY,
|
|
1183
|
+
});
|
|
1184
|
+
|
|
1185
|
+
// Get available capabilities
|
|
1186
|
+
const capabilities = agent.getCapabilities();
|
|
1187
|
+
console.log('Available tools:', capabilities.tools);
|
|
1188
|
+
|
|
1189
|
+
// Use agent with tools
|
|
1190
|
+
const response = await agent.chat({
|
|
1191
|
+
message: 'Use your tools to help me',
|
|
1192
|
+
context: {
|
|
1193
|
+
enableTools: true,
|
|
1194
|
+
},
|
|
1195
|
+
});
|
|
1196
|
+
|
|
1197
|
+
console.log('Response:', response.message);
|
|
1198
|
+
console.log('Metadata:', response.metadata);
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
main().catch(console.error);
|
|
1202
|
+
`,
|
|
1203
|
+
'with-api.ts': `/**
|
|
1204
|
+
* REST API Example
|
|
1205
|
+
*
|
|
1206
|
+
* Demonstrates using the agent via REST API
|
|
1207
|
+
*/
|
|
1208
|
+
|
|
1209
|
+
async function main() {
|
|
1210
|
+
const baseUrl = 'http://localhost:3000';
|
|
1211
|
+
|
|
1212
|
+
// Health check
|
|
1213
|
+
const health = await fetch(\`\${baseUrl}/health\`);
|
|
1214
|
+
console.log('Health:', await health.json());
|
|
1215
|
+
|
|
1216
|
+
// Chat with agent
|
|
1217
|
+
const response = await fetch(\`\${baseUrl}/chat\`, {
|
|
1218
|
+
method: 'POST',
|
|
1219
|
+
headers: {
|
|
1220
|
+
'Content-Type': 'application/json',
|
|
1221
|
+
},
|
|
1222
|
+
body: JSON.stringify({
|
|
1223
|
+
message: 'Hello from API!',
|
|
1224
|
+
}),
|
|
1225
|
+
});
|
|
1226
|
+
|
|
1227
|
+
const data = await response.json();
|
|
1228
|
+
console.log('Response:', data);
|
|
1229
|
+
|
|
1230
|
+
// Get OpenAPI spec
|
|
1231
|
+
const openapi = await fetch(\`\${baseUrl}/openapi\`);
|
|
1232
|
+
console.log('OpenAPI spec:', await openapi.text());
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
main().catch(console.error);
|
|
1236
|
+
`,
|
|
1237
|
+
'advanced.ts': `/**
|
|
1238
|
+
* Advanced Usage Example
|
|
1239
|
+
*
|
|
1240
|
+
* Demonstrates advanced features
|
|
1241
|
+
*/
|
|
1242
|
+
|
|
1243
|
+
import { Agent } from '${packageName}';
|
|
1244
|
+
|
|
1245
|
+
async function main() {
|
|
1246
|
+
const agent = new Agent({
|
|
1247
|
+
apiKey: process.env.LLM_API_KEY,
|
|
1248
|
+
temperature: 0.7,
|
|
1249
|
+
maxTokens: 1000,
|
|
1250
|
+
});
|
|
1251
|
+
|
|
1252
|
+
// Multi-turn conversation with context
|
|
1253
|
+
let context = { conversationId: '123' };
|
|
1254
|
+
|
|
1255
|
+
const turn1 = await agent.chat({
|
|
1256
|
+
message: 'Remember my name is Alice',
|
|
1257
|
+
context,
|
|
1258
|
+
});
|
|
1259
|
+
console.log('Turn 1:', turn1.message);
|
|
1260
|
+
context = turn1.context || context;
|
|
1261
|
+
|
|
1262
|
+
const turn2 = await agent.chat({
|
|
1263
|
+
message: 'What is my name?',
|
|
1264
|
+
context,
|
|
1265
|
+
});
|
|
1266
|
+
console.log('Turn 2:', turn2.message);
|
|
1267
|
+
|
|
1268
|
+
// Error handling
|
|
1269
|
+
try {
|
|
1270
|
+
await agent.chat({ message: '' });
|
|
1271
|
+
} catch (error) {
|
|
1272
|
+
console.error('Handled error:', error.message);
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
main().catch(console.error);
|
|
1277
|
+
`,
|
|
1278
|
+
};
|
|
1279
|
+
}
|
|
1280
|
+
/**
|
|
1281
|
+
* Generate complete test suite
|
|
1282
|
+
*/
|
|
1283
|
+
generateCompletedTestSuite(manifest) {
|
|
1284
|
+
const name = manifest.metadata?.name || 'Agent';
|
|
1285
|
+
return {
|
|
1286
|
+
'unit/agent.test.ts': `import { describe, it, expect, beforeEach } from '@jest/globals';
|
|
1287
|
+
import { Agent } from '../../src/index.js';
|
|
1288
|
+
|
|
1289
|
+
describe('${name} - Unit Tests', () => {
|
|
1290
|
+
let agent: Agent;
|
|
1291
|
+
|
|
1292
|
+
beforeEach(() => {
|
|
1293
|
+
agent = new Agent();
|
|
1294
|
+
});
|
|
1295
|
+
|
|
1296
|
+
describe('initialization', () => {
|
|
1297
|
+
it('should create agent instance', () => {
|
|
1298
|
+
expect(agent).toBeDefined();
|
|
1299
|
+
expect(agent).toBeInstanceOf(Agent);
|
|
1300
|
+
});
|
|
1301
|
+
|
|
1302
|
+
it('should accept configuration options', () => {
|
|
1303
|
+
const customAgent = new Agent({
|
|
1304
|
+
apiKey: 'test-key',
|
|
1305
|
+
temperature: 0.5,
|
|
1306
|
+
});
|
|
1307
|
+
expect(customAgent).toBeDefined();
|
|
1308
|
+
});
|
|
1309
|
+
});
|
|
1310
|
+
|
|
1311
|
+
describe('metadata', () => {
|
|
1312
|
+
it('should return agent metadata', () => {
|
|
1313
|
+
const metadata = agent.getMetadata();
|
|
1314
|
+
expect(metadata).toHaveProperty('name');
|
|
1315
|
+
expect(metadata).toHaveProperty('version');
|
|
1316
|
+
expect(metadata.name).toBe('${name}');
|
|
1317
|
+
});
|
|
1318
|
+
});
|
|
1319
|
+
|
|
1320
|
+
describe('capabilities', () => {
|
|
1321
|
+
it('should return agent capabilities', () => {
|
|
1322
|
+
const capabilities = agent.getCapabilities();
|
|
1323
|
+
expect(capabilities).toHaveProperty('tools');
|
|
1324
|
+
expect(capabilities).toHaveProperty('models');
|
|
1325
|
+
expect(Array.isArray(capabilities.tools)).toBe(true);
|
|
1326
|
+
});
|
|
1327
|
+
});
|
|
1328
|
+
});
|
|
1329
|
+
`,
|
|
1330
|
+
'unit/tools.test.ts': `import { describe, it, expect } from '@jest/globals';
|
|
1331
|
+
|
|
1332
|
+
describe('Tools - Unit Tests', () => {
|
|
1333
|
+
it('should have tool implementations', () => {
|
|
1334
|
+
// Add tool-specific tests here
|
|
1335
|
+
expect(true).toBe(true);
|
|
1336
|
+
});
|
|
1337
|
+
});
|
|
1338
|
+
`,
|
|
1339
|
+
'integration/api.test.ts': `import { describe, it, expect, beforeAll, afterAll } from '@jest/globals';
|
|
1340
|
+
import { Agent } from '../../src/index.js';
|
|
1341
|
+
|
|
1342
|
+
describe('API - Integration Tests', () => {
|
|
1343
|
+
let agent: Agent;
|
|
1344
|
+
|
|
1345
|
+
beforeAll(() => {
|
|
1346
|
+
agent = new Agent();
|
|
1347
|
+
});
|
|
1348
|
+
|
|
1349
|
+
afterAll(() => {
|
|
1350
|
+
// Cleanup
|
|
1351
|
+
});
|
|
1352
|
+
|
|
1353
|
+
describe('chat', () => {
|
|
1354
|
+
it('should respond to messages', async () => {
|
|
1355
|
+
const response = await agent.chat({
|
|
1356
|
+
message: 'Hello',
|
|
1357
|
+
});
|
|
1358
|
+
|
|
1359
|
+
expect(response).toHaveProperty('message');
|
|
1360
|
+
expect(typeof response.message).toBe('string');
|
|
1361
|
+
});
|
|
1362
|
+
|
|
1363
|
+
it('should handle context', async () => {
|
|
1364
|
+
const response = await agent.chat({
|
|
1365
|
+
message: 'Test',
|
|
1366
|
+
context: { user: 'test' },
|
|
1367
|
+
});
|
|
1368
|
+
|
|
1369
|
+
expect(response).toHaveProperty('context');
|
|
1370
|
+
});
|
|
1371
|
+
|
|
1372
|
+
it('should handle errors gracefully', async () => {
|
|
1373
|
+
await expect(
|
|
1374
|
+
agent.chat({ message: '' })
|
|
1375
|
+
).rejects.toThrow();
|
|
1376
|
+
});
|
|
1377
|
+
});
|
|
1378
|
+
});
|
|
1379
|
+
`,
|
|
1380
|
+
'e2e/workflow.test.ts': `import { describe, it, expect } from '@jest/globals';
|
|
1381
|
+
import { Agent } from '../../src/index.js';
|
|
1382
|
+
|
|
1383
|
+
describe('Workflow - E2E Tests', () => {
|
|
1384
|
+
it('should complete full conversation workflow', async () => {
|
|
1385
|
+
const agent = new Agent();
|
|
1386
|
+
|
|
1387
|
+
// Step 1: Initial message
|
|
1388
|
+
const response1 = await agent.chat({
|
|
1389
|
+
message: 'Start conversation',
|
|
1390
|
+
});
|
|
1391
|
+
expect(response1.message).toBeDefined();
|
|
1392
|
+
|
|
1393
|
+
// Step 2: Follow-up
|
|
1394
|
+
const response2 = await agent.chat({
|
|
1395
|
+
message: 'Continue',
|
|
1396
|
+
context: response1.context,
|
|
1397
|
+
});
|
|
1398
|
+
expect(response2.message).toBeDefined();
|
|
1399
|
+
});
|
|
1400
|
+
});
|
|
1401
|
+
`,
|
|
1402
|
+
'fixtures/sample-data.json': JSON.stringify({
|
|
1403
|
+
testMessages: [
|
|
1404
|
+
{ message: 'Hello', expectedType: 'greeting' },
|
|
1405
|
+
{ message: 'Help', expectedType: 'request' },
|
|
1406
|
+
{ message: 'Thank you', expectedType: 'gratitude' },
|
|
1407
|
+
],
|
|
1408
|
+
testContext: {
|
|
1409
|
+
user: 'test-user',
|
|
1410
|
+
session: 'test-session',
|
|
1411
|
+
},
|
|
1412
|
+
}, null, 2),
|
|
1413
|
+
'setup.ts': `/**
|
|
1414
|
+
* Test Setup
|
|
1415
|
+
*
|
|
1416
|
+
* Global test configuration and utilities
|
|
1417
|
+
*/
|
|
1418
|
+
|
|
1419
|
+
// Set test environment
|
|
1420
|
+
process.env.NODE_ENV = 'test';
|
|
1421
|
+
|
|
1422
|
+
// Configure test timeout
|
|
1423
|
+
jest.setTimeout(10000);
|
|
1424
|
+
|
|
1425
|
+
// Global setup
|
|
1426
|
+
beforeAll(() => {
|
|
1427
|
+
// Setup code here
|
|
1428
|
+
});
|
|
1429
|
+
|
|
1430
|
+
// Global teardown
|
|
1431
|
+
afterAll(() => {
|
|
1432
|
+
// Cleanup code here
|
|
1433
|
+
});
|
|
1434
|
+
|
|
1435
|
+
// Custom matchers
|
|
1436
|
+
expect.extend({
|
|
1437
|
+
toBeValidResponse(received) {
|
|
1438
|
+
const pass =
|
|
1439
|
+
typeof received === 'object' &&
|
|
1440
|
+
'message' in received &&
|
|
1441
|
+
typeof received.message === 'string';
|
|
1442
|
+
|
|
1443
|
+
return {
|
|
1444
|
+
pass,
|
|
1445
|
+
message: () =>
|
|
1446
|
+
pass
|
|
1447
|
+
? 'Expected not to be valid response'
|
|
1448
|
+
: 'Expected to be valid response',
|
|
1449
|
+
};
|
|
1450
|
+
},
|
|
1451
|
+
});
|
|
1452
|
+
`,
|
|
1453
|
+
};
|
|
1454
|
+
}
|
|
1455
|
+
/**
|
|
1456
|
+
* Generate enhanced source structure
|
|
1457
|
+
*/
|
|
1458
|
+
generateEnhancedSource(manifest) {
|
|
1459
|
+
return {
|
|
1460
|
+
'agent.ts': `/**
|
|
1461
|
+
* Agent Implementation
|
|
1462
|
+
*
|
|
1463
|
+
* Main agent class implementation
|
|
1464
|
+
*/
|
|
1465
|
+
|
|
1466
|
+
import type { ChatRequest, ChatResponse, AgentOptions, AgentMetadata, Capabilities } from './types.js';
|
|
1467
|
+
import { Logger } from './utils/logger.js';
|
|
1468
|
+
import { ValidationError } from './utils/errors.js';
|
|
1469
|
+
import { validateChatRequest } from './utils/validation.js';
|
|
1470
|
+
import { defaultConfig } from './config/defaults.js';
|
|
1471
|
+
|
|
1472
|
+
export class Agent {
|
|
1473
|
+
private config: Required<AgentOptions>;
|
|
1474
|
+
private logger: Logger;
|
|
1475
|
+
|
|
1476
|
+
constructor(options: AgentOptions = {}) {
|
|
1477
|
+
this.config = { ...defaultConfig, ...options };
|
|
1478
|
+
this.logger = new Logger('Agent');
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
async chat(request: ChatRequest): Promise<ChatResponse> {
|
|
1482
|
+
this.logger.debug('Chat request received', request);
|
|
1483
|
+
|
|
1484
|
+
// Validate request
|
|
1485
|
+
const validation = validateChatRequest(request);
|
|
1486
|
+
if (!validation.valid) {
|
|
1487
|
+
throw new ValidationError(validation.error || 'Invalid request');
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
try {
|
|
1491
|
+
// Process request
|
|
1492
|
+
const response: ChatResponse = {
|
|
1493
|
+
message: \`Echo: \${request.message}\`,
|
|
1494
|
+
context: request.context,
|
|
1495
|
+
metadata: {
|
|
1496
|
+
model: this.config.model,
|
|
1497
|
+
tokens: 0,
|
|
1498
|
+
duration: 0,
|
|
1499
|
+
},
|
|
1500
|
+
};
|
|
1501
|
+
|
|
1502
|
+
this.logger.debug('Chat response sent', response);
|
|
1503
|
+
return response;
|
|
1504
|
+
} catch (error) {
|
|
1505
|
+
this.logger.error('Chat error', error);
|
|
1506
|
+
throw error;
|
|
1507
|
+
}
|
|
1508
|
+
}
|
|
1509
|
+
|
|
1510
|
+
getMetadata(): AgentMetadata {
|
|
1511
|
+
return {
|
|
1512
|
+
name: '${manifest.metadata?.name || 'agent'}',
|
|
1513
|
+
version: '${manifest.metadata?.version || '1.0.0'}',
|
|
1514
|
+
description: '${manifest.metadata?.description || 'OSSA agent'}',
|
|
1515
|
+
author: '${manifest.metadata?.author || 'Unknown'}',
|
|
1516
|
+
license: '${manifest.metadata?.license || 'MIT'}',
|
|
1517
|
+
};
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1520
|
+
getCapabilities(): Capabilities {
|
|
1521
|
+
return {
|
|
1522
|
+
tools: [],
|
|
1523
|
+
models: [this.config.model],
|
|
1524
|
+
features: ['chat', 'context'],
|
|
1525
|
+
};
|
|
1526
|
+
}
|
|
1527
|
+
}
|
|
1528
|
+
`,
|
|
1529
|
+
'utils/logger.ts': `/**
|
|
1530
|
+
* Logger Utility
|
|
1531
|
+
*
|
|
1532
|
+
* Structured logging for the agent
|
|
1533
|
+
*/
|
|
1534
|
+
|
|
1535
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
1536
|
+
|
|
1537
|
+
export class Logger {
|
|
1538
|
+
constructor(private context: string) {}
|
|
1539
|
+
|
|
1540
|
+
debug(message: string, data?: any): void {
|
|
1541
|
+
this.log('debug', message, data);
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
info(message: string, data?: any): void {
|
|
1545
|
+
this.log('info', message, data);
|
|
1546
|
+
}
|
|
1547
|
+
|
|
1548
|
+
warn(message: string, data?: any): void {
|
|
1549
|
+
this.log('warn', message, data);
|
|
1550
|
+
}
|
|
1551
|
+
|
|
1552
|
+
error(message: string, error?: any): void {
|
|
1553
|
+
this.log('error', message, error);
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1556
|
+
private log(level: LogLevel, message: string, data?: any): void {
|
|
1557
|
+
const timestamp = new Date().toISOString();
|
|
1558
|
+
const logData = {
|
|
1559
|
+
timestamp,
|
|
1560
|
+
level,
|
|
1561
|
+
context: this.context,
|
|
1562
|
+
message,
|
|
1563
|
+
...(data && { data }),
|
|
1564
|
+
};
|
|
1565
|
+
|
|
1566
|
+
const logLevel = process.env.LOG_LEVEL || 'info';
|
|
1567
|
+
const levels = ['debug', 'info', 'warn', 'error'];
|
|
1568
|
+
|
|
1569
|
+
if (levels.indexOf(level) >= levels.indexOf(logLevel as LogLevel)) {
|
|
1570
|
+
console[level === 'debug' ? 'log' : level](
|
|
1571
|
+
JSON.stringify(logData)
|
|
1572
|
+
);
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
}
|
|
1576
|
+
`,
|
|
1577
|
+
'utils/errors.ts': `/**
|
|
1578
|
+
* Error Classes
|
|
1579
|
+
*
|
|
1580
|
+
* Custom error types for the agent
|
|
1581
|
+
*/
|
|
1582
|
+
|
|
1583
|
+
export class AgentError extends Error {
|
|
1584
|
+
constructor(message: string) {
|
|
1585
|
+
super(message);
|
|
1586
|
+
this.name = 'AgentError';
|
|
1587
|
+
}
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1590
|
+
export class ValidationError extends AgentError {
|
|
1591
|
+
constructor(message: string) {
|
|
1592
|
+
super(message);
|
|
1593
|
+
this.name = 'ValidationError';
|
|
1594
|
+
}
|
|
1595
|
+
}
|
|
1596
|
+
|
|
1597
|
+
export class ConfigurationError extends AgentError {
|
|
1598
|
+
constructor(message: string) {
|
|
1599
|
+
super(message);
|
|
1600
|
+
this.name = 'ConfigurationError';
|
|
1601
|
+
}
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
export class ToolError extends AgentError {
|
|
1605
|
+
constructor(message: string) {
|
|
1606
|
+
super(message);
|
|
1607
|
+
this.name = 'ToolError';
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1610
|
+
`,
|
|
1611
|
+
'utils/validation.ts': `/**
|
|
1612
|
+
* Validation Utilities
|
|
1613
|
+
*
|
|
1614
|
+
* Request and response validation
|
|
1615
|
+
*/
|
|
1616
|
+
|
|
1617
|
+
import type { ChatRequest } from '../types.js';
|
|
1618
|
+
|
|
1619
|
+
export interface ValidationResult {
|
|
1620
|
+
valid: boolean;
|
|
1621
|
+
error?: string;
|
|
1622
|
+
}
|
|
1623
|
+
|
|
1624
|
+
export function validateChatRequest(request: ChatRequest): ValidationResult {
|
|
1625
|
+
if (!request) {
|
|
1626
|
+
return { valid: false, error: 'Request is required' };
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
if (!request.message || typeof request.message !== 'string') {
|
|
1630
|
+
return { valid: false, error: 'Message is required and must be a string' };
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1633
|
+
if (request.message.trim().length === 0) {
|
|
1634
|
+
return { valid: false, error: 'Message cannot be empty' };
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
if (request.context && typeof request.context !== 'object') {
|
|
1638
|
+
return { valid: false, error: 'Context must be an object' };
|
|
1639
|
+
}
|
|
1640
|
+
|
|
1641
|
+
return { valid: true };
|
|
1642
|
+
}
|
|
1643
|
+
`,
|
|
1644
|
+
'config/defaults.ts': `/**
|
|
1645
|
+
* Default Configuration
|
|
1646
|
+
*
|
|
1647
|
+
* Default settings for the agent
|
|
1648
|
+
*/
|
|
1649
|
+
|
|
1650
|
+
import type { AgentOptions } from '../types.js';
|
|
1651
|
+
|
|
1652
|
+
export const defaultConfig: Required<AgentOptions> = {
|
|
1653
|
+
apiKey: process.env.LLM_API_KEY || '',
|
|
1654
|
+
model: 'gpt-4',
|
|
1655
|
+
temperature: 0.7,
|
|
1656
|
+
maxTokens: 2000,
|
|
1657
|
+
};
|
|
1658
|
+
`,
|
|
1659
|
+
};
|
|
1660
|
+
}
|
|
1661
|
+
/**
|
|
1662
|
+
* Generate quality assurance files
|
|
1663
|
+
*/
|
|
1664
|
+
generateQAFiles(options) {
|
|
1665
|
+
return {
|
|
1666
|
+
'.eslintrc.json': JSON.stringify({
|
|
1667
|
+
extends: [
|
|
1668
|
+
'eslint:recommended',
|
|
1669
|
+
'plugin:@typescript-eslint/recommended',
|
|
1670
|
+
'prettier',
|
|
1671
|
+
],
|
|
1672
|
+
parser: '@typescript-eslint/parser',
|
|
1673
|
+
parserOptions: {
|
|
1674
|
+
ecmaVersion: 2022,
|
|
1675
|
+
sourceType: 'module',
|
|
1676
|
+
project: './tsconfig.json',
|
|
1677
|
+
},
|
|
1678
|
+
plugins: ['@typescript-eslint'],
|
|
1679
|
+
rules: {
|
|
1680
|
+
'@typescript-eslint/explicit-function-return-type': 'warn',
|
|
1681
|
+
'@typescript-eslint/no-explicit-any': 'warn',
|
|
1682
|
+
'@typescript-eslint/no-unused-vars': [
|
|
1683
|
+
'error',
|
|
1684
|
+
{ argsIgnorePattern: '^_' },
|
|
1685
|
+
],
|
|
1686
|
+
'no-console': ['warn', { allow: ['warn', 'error'] }],
|
|
1687
|
+
},
|
|
1688
|
+
env: {
|
|
1689
|
+
node: true,
|
|
1690
|
+
es2022: true,
|
|
1691
|
+
},
|
|
1692
|
+
}, null, 2),
|
|
1693
|
+
'.prettierrc': JSON.stringify({
|
|
1694
|
+
semi: true,
|
|
1695
|
+
trailingComma: 'es5',
|
|
1696
|
+
singleQuote: true,
|
|
1697
|
+
printWidth: 80,
|
|
1698
|
+
tabWidth: 2,
|
|
1699
|
+
useTabs: false,
|
|
1700
|
+
arrowParens: 'always',
|
|
1701
|
+
endOfLine: 'lf',
|
|
1702
|
+
}, null, 2),
|
|
1703
|
+
'jest.config.js': `export default {
|
|
1704
|
+
preset: 'ts-jest/presets/default-esm',
|
|
1705
|
+
testEnvironment: 'node',
|
|
1706
|
+
extensionsToTreatAsEsm: ['.ts'],
|
|
1707
|
+
moduleNameMapper: {
|
|
1708
|
+
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
1709
|
+
},
|
|
1710
|
+
transform: {
|
|
1711
|
+
'^.+\\.ts$': [
|
|
1712
|
+
'ts-jest',
|
|
1713
|
+
{
|
|
1714
|
+
useESM: true,
|
|
1715
|
+
},
|
|
1716
|
+
],
|
|
1717
|
+
},
|
|
1718
|
+
testMatch: ['**/tests/**/*.test.ts'],
|
|
1719
|
+
collectCoverageFrom: [
|
|
1720
|
+
'src/**/*.ts',
|
|
1721
|
+
'!src/**/*.d.ts',
|
|
1722
|
+
'!src/types.ts',
|
|
1723
|
+
],
|
|
1724
|
+
coverageThreshold: {
|
|
1725
|
+
global: {
|
|
1726
|
+
branches: 70,
|
|
1727
|
+
functions: 70,
|
|
1728
|
+
lines: 70,
|
|
1729
|
+
statements: 70,
|
|
1730
|
+
},
|
|
1731
|
+
},
|
|
1732
|
+
setupFilesAfterEnv: ['<rootDir>/tests/setup.ts'],
|
|
1733
|
+
};
|
|
1734
|
+
`,
|
|
1735
|
+
'.editorconfig': `root = true
|
|
1736
|
+
|
|
1737
|
+
[*]
|
|
1738
|
+
indent_style = space
|
|
1739
|
+
indent_size = 2
|
|
1740
|
+
end_of_line = lf
|
|
1741
|
+
charset = utf-8
|
|
1742
|
+
trim_trailing_whitespace = true
|
|
1743
|
+
insert_final_newline = true
|
|
1744
|
+
|
|
1745
|
+
[*.md]
|
|
1746
|
+
trim_trailing_whitespace = false
|
|
1747
|
+
|
|
1748
|
+
[*.json]
|
|
1749
|
+
indent_size = 2
|
|
1750
|
+
|
|
1751
|
+
[*.{yml,yaml}]
|
|
1752
|
+
indent_size = 2
|
|
1753
|
+
`,
|
|
1754
|
+
'.nvmrc': options.nodeVersion || '18.0.0',
|
|
1755
|
+
};
|
|
1756
|
+
}
|
|
1757
|
+
/**
|
|
1758
|
+
* Get language from file path
|
|
1759
|
+
*/
|
|
1760
|
+
getLanguageFromPath(path) {
|
|
1761
|
+
const ext = path.split('.').pop();
|
|
1762
|
+
const languageMap = {
|
|
1763
|
+
js: 'javascript',
|
|
1764
|
+
ts: 'typescript',
|
|
1765
|
+
json: 'json',
|
|
1766
|
+
yaml: 'yaml',
|
|
1767
|
+
yml: 'yaml',
|
|
1768
|
+
md: 'markdown',
|
|
1769
|
+
};
|
|
1770
|
+
return ext ? languageMap[ext] : undefined;
|
|
1771
|
+
}
|
|
479
1772
|
}
|
|
480
1773
|
//# sourceMappingURL=npm-exporter.js.map
|