agentic-qe 3.3.4 → 3.4.0
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/.claude/agents/v3/qe-queen-coordinator.md +332 -166
- package/.claude/helpers/statusline-v3.cjs +85 -42
- package/.claude/skills/qcsd-ideation-swarm/SKILL.md +7 -4
- package/README.md +71 -2
- package/package.json +1 -1
- package/scripts/cloud-db-config.json +10 -5
- package/scripts/merge-v3-to-root.sql +48 -0
- package/v3/CHANGELOG.md +156 -0
- package/v3/README.md +118 -1
- package/v3/assets/agents/v3/qe-queen-coordinator.md +332 -166
- package/v3/assets/skills/qcsd-ideation-swarm/SKILL.md +7 -4
- package/v3/dist/adapters/a2a/agent-cards/generator.d.ts +153 -0
- package/v3/dist/adapters/a2a/agent-cards/generator.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/agent-cards/generator.js +478 -0
- package/v3/dist/adapters/a2a/agent-cards/generator.js.map +1 -0
- package/v3/dist/adapters/a2a/agent-cards/schema.d.ts +274 -0
- package/v3/dist/adapters/a2a/agent-cards/schema.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/agent-cards/schema.js +135 -0
- package/v3/dist/adapters/a2a/agent-cards/schema.js.map +1 -0
- package/v3/dist/adapters/a2a/agent-cards/validator.d.ts +514 -0
- package/v3/dist/adapters/a2a/agent-cards/validator.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/agent-cards/validator.js +555 -0
- package/v3/dist/adapters/a2a/agent-cards/validator.js.map +1 -0
- package/v3/dist/adapters/a2a/auth/index.d.ts +23 -0
- package/v3/dist/adapters/a2a/auth/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/auth/index.js +85 -0
- package/v3/dist/adapters/a2a/auth/index.js.map +1 -0
- package/v3/dist/adapters/a2a/auth/jwt-utils.d.ts +215 -0
- package/v3/dist/adapters/a2a/auth/jwt-utils.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/auth/jwt-utils.js +314 -0
- package/v3/dist/adapters/a2a/auth/jwt-utils.js.map +1 -0
- package/v3/dist/adapters/a2a/auth/middleware.d.ts +173 -0
- package/v3/dist/adapters/a2a/auth/middleware.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/auth/middleware.js +300 -0
- package/v3/dist/adapters/a2a/auth/middleware.js.map +1 -0
- package/v3/dist/adapters/a2a/auth/oauth-provider.d.ts +308 -0
- package/v3/dist/adapters/a2a/auth/oauth-provider.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/auth/oauth-provider.js +573 -0
- package/v3/dist/adapters/a2a/auth/oauth-provider.js.map +1 -0
- package/v3/dist/adapters/a2a/auth/routes.d.ts +244 -0
- package/v3/dist/adapters/a2a/auth/routes.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/auth/routes.js +496 -0
- package/v3/dist/adapters/a2a/auth/routes.js.map +1 -0
- package/v3/dist/adapters/a2a/auth/scopes.d.ts +219 -0
- package/v3/dist/adapters/a2a/auth/scopes.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/auth/scopes.js +292 -0
- package/v3/dist/adapters/a2a/auth/scopes.js.map +1 -0
- package/v3/dist/adapters/a2a/auth/token-store.d.ts +278 -0
- package/v3/dist/adapters/a2a/auth/token-store.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/auth/token-store.js +453 -0
- package/v3/dist/adapters/a2a/auth/token-store.js.map +1 -0
- package/v3/dist/adapters/a2a/discovery/agent-health.d.ts +226 -0
- package/v3/dist/adapters/a2a/discovery/agent-health.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/discovery/agent-health.js +426 -0
- package/v3/dist/adapters/a2a/discovery/agent-health.js.map +1 -0
- package/v3/dist/adapters/a2a/discovery/discovery-service.d.ts +296 -0
- package/v3/dist/adapters/a2a/discovery/discovery-service.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/discovery/discovery-service.js +520 -0
- package/v3/dist/adapters/a2a/discovery/discovery-service.js.map +1 -0
- package/v3/dist/adapters/a2a/discovery/file-watcher.d.ts +166 -0
- package/v3/dist/adapters/a2a/discovery/file-watcher.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/discovery/file-watcher.js +385 -0
- package/v3/dist/adapters/a2a/discovery/file-watcher.js.map +1 -0
- package/v3/dist/adapters/a2a/discovery/hot-reload-service.d.ts +226 -0
- package/v3/dist/adapters/a2a/discovery/hot-reload-service.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/discovery/hot-reload-service.js +433 -0
- package/v3/dist/adapters/a2a/discovery/hot-reload-service.js.map +1 -0
- package/v3/dist/adapters/a2a/discovery/index.d.ts +18 -0
- package/v3/dist/adapters/a2a/discovery/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/discovery/index.js +54 -0
- package/v3/dist/adapters/a2a/discovery/index.js.map +1 -0
- package/v3/dist/adapters/a2a/discovery/metrics.d.ts +200 -0
- package/v3/dist/adapters/a2a/discovery/metrics.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/discovery/metrics.js +371 -0
- package/v3/dist/adapters/a2a/discovery/metrics.js.map +1 -0
- package/v3/dist/adapters/a2a/discovery/routes.d.ts +184 -0
- package/v3/dist/adapters/a2a/discovery/routes.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/discovery/routes.js +453 -0
- package/v3/dist/adapters/a2a/discovery/routes.js.map +1 -0
- package/v3/dist/adapters/a2a/index.d.ts +18 -0
- package/v3/dist/adapters/a2a/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/index.js +139 -0
- package/v3/dist/adapters/a2a/index.js.map +1 -0
- package/v3/dist/adapters/a2a/jsonrpc/envelope.d.ts +312 -0
- package/v3/dist/adapters/a2a/jsonrpc/envelope.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/jsonrpc/envelope.js +554 -0
- package/v3/dist/adapters/a2a/jsonrpc/envelope.js.map +1 -0
- package/v3/dist/adapters/a2a/jsonrpc/errors.d.ts +244 -0
- package/v3/dist/adapters/a2a/jsonrpc/errors.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/jsonrpc/errors.js +365 -0
- package/v3/dist/adapters/a2a/jsonrpc/errors.js.map +1 -0
- package/v3/dist/adapters/a2a/jsonrpc/index.d.ts +14 -0
- package/v3/dist/adapters/a2a/jsonrpc/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/jsonrpc/index.js +59 -0
- package/v3/dist/adapters/a2a/jsonrpc/index.js.map +1 -0
- package/v3/dist/adapters/a2a/jsonrpc/methods.d.ts +400 -0
- package/v3/dist/adapters/a2a/jsonrpc/methods.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/jsonrpc/methods.js +249 -0
- package/v3/dist/adapters/a2a/jsonrpc/methods.js.map +1 -0
- package/v3/dist/adapters/a2a/notifications/index.d.ts +60 -0
- package/v3/dist/adapters/a2a/notifications/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/notifications/index.js +99 -0
- package/v3/dist/adapters/a2a/notifications/index.js.map +1 -0
- package/v3/dist/adapters/a2a/notifications/retry-queue.d.ts +225 -0
- package/v3/dist/adapters/a2a/notifications/retry-queue.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/notifications/retry-queue.js +449 -0
- package/v3/dist/adapters/a2a/notifications/retry-queue.js.map +1 -0
- package/v3/dist/adapters/a2a/notifications/signature.d.ts +133 -0
- package/v3/dist/adapters/a2a/notifications/signature.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/notifications/signature.js +244 -0
- package/v3/dist/adapters/a2a/notifications/signature.js.map +1 -0
- package/v3/dist/adapters/a2a/notifications/subscription-store.d.ts +243 -0
- package/v3/dist/adapters/a2a/notifications/subscription-store.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/notifications/subscription-store.js +486 -0
- package/v3/dist/adapters/a2a/notifications/subscription-store.js.map +1 -0
- package/v3/dist/adapters/a2a/notifications/webhook-service.d.ts +257 -0
- package/v3/dist/adapters/a2a/notifications/webhook-service.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/notifications/webhook-service.js +542 -0
- package/v3/dist/adapters/a2a/notifications/webhook-service.js.map +1 -0
- package/v3/dist/adapters/a2a/tasks/index.d.ts +16 -0
- package/v3/dist/adapters/a2a/tasks/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/tasks/index.js +33 -0
- package/v3/dist/adapters/a2a/tasks/index.js.map +1 -0
- package/v3/dist/adapters/a2a/tasks/task-manager.d.ts +306 -0
- package/v3/dist/adapters/a2a/tasks/task-manager.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/tasks/task-manager.js +562 -0
- package/v3/dist/adapters/a2a/tasks/task-manager.js.map +1 -0
- package/v3/dist/adapters/a2a/tasks/task-router.d.ts +270 -0
- package/v3/dist/adapters/a2a/tasks/task-router.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/tasks/task-router.js +574 -0
- package/v3/dist/adapters/a2a/tasks/task-router.js.map +1 -0
- package/v3/dist/adapters/a2a/tasks/task-store.d.ts +251 -0
- package/v3/dist/adapters/a2a/tasks/task-store.d.ts.map +1 -0
- package/v3/dist/adapters/a2a/tasks/task-store.js +468 -0
- package/v3/dist/adapters/a2a/tasks/task-store.js.map +1 -0
- package/v3/dist/adapters/a2ui/accessibility/aria-attributes.d.ts +294 -0
- package/v3/dist/adapters/a2ui/accessibility/aria-attributes.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/accessibility/aria-attributes.js +447 -0
- package/v3/dist/adapters/a2ui/accessibility/aria-attributes.js.map +1 -0
- package/v3/dist/adapters/a2ui/accessibility/index.d.ts +83 -0
- package/v3/dist/adapters/a2ui/accessibility/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/accessibility/index.js +155 -0
- package/v3/dist/adapters/a2ui/accessibility/index.js.map +1 -0
- package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.d.ts +177 -0
- package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.js +638 -0
- package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.js.map +1 -0
- package/v3/dist/adapters/a2ui/accessibility/wcag-validator.d.ts +186 -0
- package/v3/dist/adapters/a2ui/accessibility/wcag-validator.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/accessibility/wcag-validator.js +816 -0
- package/v3/dist/adapters/a2ui/accessibility/wcag-validator.js.map +1 -0
- package/v3/dist/adapters/a2ui/catalog/component-schemas.d.ts +227 -0
- package/v3/dist/adapters/a2ui/catalog/component-schemas.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/catalog/component-schemas.js +1090 -0
- package/v3/dist/adapters/a2ui/catalog/component-schemas.js.map +1 -0
- package/v3/dist/adapters/a2ui/catalog/index.d.ts +55 -0
- package/v3/dist/adapters/a2ui/catalog/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/catalog/index.js +100 -0
- package/v3/dist/adapters/a2ui/catalog/index.js.map +1 -0
- package/v3/dist/adapters/a2ui/catalog/qe-catalog.d.ts +456 -0
- package/v3/dist/adapters/a2ui/catalog/qe-catalog.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/catalog/qe-catalog.js +413 -0
- package/v3/dist/adapters/a2ui/catalog/qe-catalog.js.map +1 -0
- package/v3/dist/adapters/a2ui/catalog/standard-catalog.d.ts +581 -0
- package/v3/dist/adapters/a2ui/catalog/standard-catalog.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/catalog/standard-catalog.js +409 -0
- package/v3/dist/adapters/a2ui/catalog/standard-catalog.js.map +1 -0
- package/v3/dist/adapters/a2ui/data/bound-value.d.ts +252 -0
- package/v3/dist/adapters/a2ui/data/bound-value.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/data/bound-value.js +403 -0
- package/v3/dist/adapters/a2ui/data/bound-value.js.map +1 -0
- package/v3/dist/adapters/a2ui/data/index.d.ts +14 -0
- package/v3/dist/adapters/a2ui/data/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/data/index.js +41 -0
- package/v3/dist/adapters/a2ui/data/index.js.map +1 -0
- package/v3/dist/adapters/a2ui/data/json-pointer-resolver.d.ts +187 -0
- package/v3/dist/adapters/a2ui/data/json-pointer-resolver.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/data/json-pointer-resolver.js +425 -0
- package/v3/dist/adapters/a2ui/data/json-pointer-resolver.js.map +1 -0
- package/v3/dist/adapters/a2ui/data/reactive-store.d.ts +241 -0
- package/v3/dist/adapters/a2ui/data/reactive-store.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/data/reactive-store.js +461 -0
- package/v3/dist/adapters/a2ui/data/reactive-store.js.map +1 -0
- package/v3/dist/adapters/a2ui/index.d.ts +17 -0
- package/v3/dist/adapters/a2ui/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/index.js +119 -0
- package/v3/dist/adapters/a2ui/index.js.map +1 -0
- package/v3/dist/adapters/a2ui/integration/agui-sync.d.ts +259 -0
- package/v3/dist/adapters/a2ui/integration/agui-sync.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/integration/agui-sync.js +559 -0
- package/v3/dist/adapters/a2ui/integration/agui-sync.js.map +1 -0
- package/v3/dist/adapters/a2ui/integration/index.d.ts +11 -0
- package/v3/dist/adapters/a2ui/integration/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/integration/index.js +23 -0
- package/v3/dist/adapters/a2ui/integration/index.js.map +1 -0
- package/v3/dist/adapters/a2ui/integration/surface-state-bridge.d.ts +209 -0
- package/v3/dist/adapters/a2ui/integration/surface-state-bridge.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/integration/surface-state-bridge.js +545 -0
- package/v3/dist/adapters/a2ui/integration/surface-state-bridge.js.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/component-builder.d.ts +227 -0
- package/v3/dist/adapters/a2ui/renderer/component-builder.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/component-builder.js +488 -0
- package/v3/dist/adapters/a2ui/renderer/component-builder.js.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/index.d.ts +16 -0
- package/v3/dist/adapters/a2ui/renderer/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/index.js +50 -0
- package/v3/dist/adapters/a2ui/renderer/index.js.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/message-types.d.ts +299 -0
- package/v3/dist/adapters/a2ui/renderer/message-types.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/message-types.js +187 -0
- package/v3/dist/adapters/a2ui/renderer/message-types.js.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/surface-generator.d.ts +210 -0
- package/v3/dist/adapters/a2ui/renderer/surface-generator.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/surface-generator.js +586 -0
- package/v3/dist/adapters/a2ui/renderer/surface-generator.js.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.d.ts +149 -0
- package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.js +414 -0
- package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.js.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.d.ts +95 -0
- package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.js +231 -0
- package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.js.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/index.d.ts +12 -0
- package/v3/dist/adapters/a2ui/renderer/templates/index.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/index.js +16 -0
- package/v3/dist/adapters/a2ui/renderer/templates/index.js.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/security-surface.d.ts +121 -0
- package/v3/dist/adapters/a2ui/renderer/templates/security-surface.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/security-surface.js +367 -0
- package/v3/dist/adapters/a2ui/renderer/templates/security-surface.js.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.d.ts +104 -0
- package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.d.ts.map +1 -0
- package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.js +294 -0
- package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.js.map +1 -0
- package/v3/dist/adapters/ag-ui/backpressure-handler.d.ts +201 -0
- package/v3/dist/adapters/ag-ui/backpressure-handler.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/backpressure-handler.js +399 -0
- package/v3/dist/adapters/ag-ui/backpressure-handler.js.map +1 -0
- package/v3/dist/adapters/ag-ui/event-adapter.d.ts +360 -0
- package/v3/dist/adapters/ag-ui/event-adapter.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/event-adapter.js +1083 -0
- package/v3/dist/adapters/ag-ui/event-adapter.js.map +1 -0
- package/v3/dist/adapters/ag-ui/event-batcher.d.ts +242 -0
- package/v3/dist/adapters/ag-ui/event-batcher.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/event-batcher.js +444 -0
- package/v3/dist/adapters/ag-ui/event-batcher.js.map +1 -0
- package/v3/dist/adapters/ag-ui/event-types.d.ts +450 -0
- package/v3/dist/adapters/ag-ui/event-types.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/event-types.js +173 -0
- package/v3/dist/adapters/ag-ui/event-types.js.map +1 -0
- package/v3/dist/adapters/ag-ui/index.d.ts +17 -0
- package/v3/dist/adapters/ag-ui/index.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/index.js +47 -0
- package/v3/dist/adapters/ag-ui/index.js.map +1 -0
- package/v3/dist/adapters/ag-ui/json-patch-utils.d.ts +136 -0
- package/v3/dist/adapters/ag-ui/json-patch-utils.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/json-patch-utils.js +574 -0
- package/v3/dist/adapters/ag-ui/json-patch-utils.js.map +1 -0
- package/v3/dist/adapters/ag-ui/json-patch.d.ts +241 -0
- package/v3/dist/adapters/ag-ui/json-patch.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/json-patch.js +726 -0
- package/v3/dist/adapters/ag-ui/json-patch.js.map +1 -0
- package/v3/dist/adapters/ag-ui/state-delta-cache.d.ts +218 -0
- package/v3/dist/adapters/ag-ui/state-delta-cache.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/state-delta-cache.js +422 -0
- package/v3/dist/adapters/ag-ui/state-delta-cache.js.map +1 -0
- package/v3/dist/adapters/ag-ui/state-manager.d.ts +249 -0
- package/v3/dist/adapters/ag-ui/state-manager.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/state-manager.js +511 -0
- package/v3/dist/adapters/ag-ui/state-manager.js.map +1 -0
- package/v3/dist/adapters/ag-ui/stream-controller.d.ts +195 -0
- package/v3/dist/adapters/ag-ui/stream-controller.d.ts.map +1 -0
- package/v3/dist/adapters/ag-ui/stream-controller.js +481 -0
- package/v3/dist/adapters/ag-ui/stream-controller.js.map +1 -0
- package/v3/dist/adapters/index.d.ts +4 -0
- package/v3/dist/adapters/index.d.ts.map +1 -1
- package/v3/dist/adapters/index.js +89 -0
- package/v3/dist/adapters/index.js.map +1 -1
- package/v3/dist/cli/bundle.js +1507 -425
- package/v3/dist/coordination/consensus/providers/claude-provider.js +1 -1
- package/v3/dist/coordination/consensus/providers/gemini-provider.js +1 -1
- package/v3/dist/coordination/consensus/providers/openai-provider.js +1 -1
- package/v3/dist/init/init-wizard.d.ts.map +1 -1
- package/v3/dist/init/init-wizard.js +19 -4
- package/v3/dist/init/init-wizard.js.map +1 -1
- package/v3/dist/init/migration/config-migrator.d.ts.map +1 -1
- package/v3/dist/init/migration/config-migrator.js +15 -1
- package/v3/dist/init/migration/config-migrator.js.map +1 -1
- package/v3/dist/init/phases/05-learning.js +1 -1
- package/v3/dist/init/phases/05-learning.js.map +1 -1
- package/v3/dist/init/self-configurator.d.ts +7 -0
- package/v3/dist/init/self-configurator.d.ts.map +1 -1
- package/v3/dist/init/self-configurator.js +23 -27
- package/v3/dist/init/self-configurator.js.map +1 -1
- package/v3/dist/integrations/ruvector/interfaces.js +1 -1
- package/v3/dist/integrations/ruvector/interfaces.js.map +1 -1
- package/v3/dist/kernel/index.d.ts +1 -1
- package/v3/dist/kernel/index.d.ts.map +1 -1
- package/v3/dist/kernel/index.js +3 -1
- package/v3/dist/kernel/index.js.map +1 -1
- package/v3/dist/kernel/plugin-loader.d.ts.map +1 -1
- package/v3/dist/kernel/plugin-loader.js +6 -1
- package/v3/dist/kernel/plugin-loader.js.map +1 -1
- package/v3/dist/kernel/unified-memory.d.ts +123 -0
- package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
- package/v3/dist/kernel/unified-memory.js +258 -2
- package/v3/dist/kernel/unified-memory.js.map +1 -1
- package/v3/dist/learning/qe-unified-memory.js +1 -1
- package/v3/dist/learning/qe-unified-memory.js.map +1 -1
- package/v3/dist/learning/real-qe-reasoning-bank.js +2 -2
- package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
- package/v3/dist/learning/sqlite-persistence.d.ts +1 -1
- package/v3/dist/learning/sqlite-persistence.js +1 -1
- package/v3/dist/learning/sqlite-persistence.js.map +1 -1
- package/v3/dist/learning/v2-to-v3-migration.d.ts +2 -2
- package/v3/dist/learning/v2-to-v3-migration.d.ts.map +1 -1
- package/v3/dist/learning/v2-to-v3-migration.js +2 -2
- package/v3/dist/learning/v2-to-v3-migration.js.map +1 -1
- package/v3/dist/mcp/bundle.js +63075 -53304
- package/v3/dist/mcp/entry.d.ts +5 -0
- package/v3/dist/mcp/entry.d.ts.map +1 -1
- package/v3/dist/mcp/entry.js +36 -0
- package/v3/dist/mcp/entry.js.map +1 -1
- package/v3/dist/mcp/http-server.d.ts +95 -0
- package/v3/dist/mcp/http-server.d.ts.map +1 -0
- package/v3/dist/mcp/http-server.js +833 -0
- package/v3/dist/mcp/http-server.js.map +1 -0
- package/v3/dist/mcp/protocol-server.d.ts +6 -0
- package/v3/dist/mcp/protocol-server.d.ts.map +1 -1
- package/v3/dist/mcp/protocol-server.js +40 -0
- package/v3/dist/mcp/protocol-server.js.map +1 -1
- package/v3/dist/mcp/transport/index.d.ts +25 -3
- package/v3/dist/mcp/transport/index.d.ts.map +1 -1
- package/v3/dist/mcp/transport/index.js +22 -4
- package/v3/dist/mcp/transport/index.js.map +1 -1
- package/v3/dist/mcp/transport/sse/connection-manager.d.ts +84 -0
- package/v3/dist/mcp/transport/sse/connection-manager.d.ts.map +1 -0
- package/v3/dist/mcp/transport/sse/connection-manager.js +271 -0
- package/v3/dist/mcp/transport/sse/connection-manager.js.map +1 -0
- package/v3/dist/mcp/transport/sse/index.d.ts +10 -0
- package/v3/dist/mcp/transport/sse/index.d.ts.map +1 -0
- package/v3/dist/mcp/transport/sse/index.js +15 -0
- package/v3/dist/mcp/transport/sse/index.js.map +1 -0
- package/v3/dist/mcp/transport/sse/sse-transport.d.ts +56 -0
- package/v3/dist/mcp/transport/sse/sse-transport.d.ts.map +1 -0
- package/v3/dist/mcp/transport/sse/sse-transport.js +381 -0
- package/v3/dist/mcp/transport/sse/sse-transport.js.map +1 -0
- package/v3/dist/mcp/transport/sse/types.d.ts +237 -0
- package/v3/dist/mcp/transport/sse/types.d.ts.map +1 -0
- package/v3/dist/mcp/transport/sse/types.js +37 -0
- package/v3/dist/mcp/transport/sse/types.js.map +1 -0
- package/v3/dist/mcp/transport/websocket/connection-manager.d.ts +143 -0
- package/v3/dist/mcp/transport/websocket/connection-manager.d.ts.map +1 -0
- package/v3/dist/mcp/transport/websocket/connection-manager.js +522 -0
- package/v3/dist/mcp/transport/websocket/connection-manager.js.map +1 -0
- package/v3/dist/mcp/transport/websocket/index.d.ts +10 -0
- package/v3/dist/mcp/transport/websocket/index.d.ts.map +1 -0
- package/v3/dist/mcp/transport/websocket/index.js +19 -0
- package/v3/dist/mcp/transport/websocket/index.js.map +1 -0
- package/v3/dist/mcp/transport/websocket/types.d.ts +354 -0
- package/v3/dist/mcp/transport/websocket/types.d.ts.map +1 -0
- package/v3/dist/mcp/transport/websocket/types.js +49 -0
- package/v3/dist/mcp/transport/websocket/types.js.map +1 -0
- package/v3/dist/mcp/transport/websocket/websocket-transport.d.ts +77 -0
- package/v3/dist/mcp/transport/websocket/websocket-transport.d.ts.map +1 -0
- package/v3/dist/mcp/transport/websocket/websocket-transport.js +622 -0
- package/v3/dist/mcp/transport/websocket/websocket-transport.js.map +1 -0
- package/v3/dist/memory/crdt/convergence-tracker.d.ts +59 -0
- package/v3/dist/memory/crdt/convergence-tracker.d.ts.map +1 -0
- package/v3/dist/memory/crdt/convergence-tracker.js +325 -0
- package/v3/dist/memory/crdt/convergence-tracker.js.map +1 -0
- package/v3/dist/memory/crdt/crdt-store.d.ts +55 -0
- package/v3/dist/memory/crdt/crdt-store.d.ts.map +1 -0
- package/v3/dist/memory/crdt/crdt-store.js +582 -0
- package/v3/dist/memory/crdt/crdt-store.js.map +1 -0
- package/v3/dist/memory/crdt/g-counter.d.ts +47 -0
- package/v3/dist/memory/crdt/g-counter.d.ts.map +1 -0
- package/v3/dist/memory/crdt/g-counter.js +134 -0
- package/v3/dist/memory/crdt/g-counter.js.map +1 -0
- package/v3/dist/memory/crdt/index.d.ts +52 -0
- package/v3/dist/memory/crdt/index.d.ts.map +1 -0
- package/v3/dist/memory/crdt/index.js +66 -0
- package/v3/dist/memory/crdt/index.js.map +1 -0
- package/v3/dist/memory/crdt/lww-register.d.ts +40 -0
- package/v3/dist/memory/crdt/lww-register.d.ts.map +1 -0
- package/v3/dist/memory/crdt/lww-register.js +133 -0
- package/v3/dist/memory/crdt/lww-register.js.map +1 -0
- package/v3/dist/memory/crdt/or-set.d.ts +62 -0
- package/v3/dist/memory/crdt/or-set.d.ts.map +1 -0
- package/v3/dist/memory/crdt/or-set.js +336 -0
- package/v3/dist/memory/crdt/or-set.js.map +1 -0
- package/v3/dist/memory/crdt/pn-counter.d.ts +53 -0
- package/v3/dist/memory/crdt/pn-counter.d.ts.map +1 -0
- package/v3/dist/memory/crdt/pn-counter.js +147 -0
- package/v3/dist/memory/crdt/pn-counter.js.map +1 -0
- package/v3/dist/memory/crdt/types.d.ts +397 -0
- package/v3/dist/memory/crdt/types.d.ts.map +1 -0
- package/v3/dist/memory/crdt/types.js +12 -0
- package/v3/dist/memory/crdt/types.js.map +1 -0
- package/v3/dist/memory/index.d.ts +5 -2
- package/v3/dist/memory/index.d.ts.map +1 -1
- package/v3/dist/memory/index.js +5 -2
- package/v3/dist/memory/index.js.map +1 -1
- package/v3/dist/performance/benchmarks.d.ts +215 -0
- package/v3/dist/performance/benchmarks.d.ts.map +1 -0
- package/v3/dist/performance/benchmarks.js +516 -0
- package/v3/dist/performance/benchmarks.js.map +1 -0
- package/v3/dist/performance/ci-gates.d.ts +149 -0
- package/v3/dist/performance/ci-gates.d.ts.map +1 -0
- package/v3/dist/performance/ci-gates.js +425 -0
- package/v3/dist/performance/ci-gates.js.map +1 -0
- package/v3/dist/performance/index.d.ts +18 -0
- package/v3/dist/performance/index.d.ts.map +1 -0
- package/v3/dist/performance/index.js +26 -0
- package/v3/dist/performance/index.js.map +1 -0
- package/v3/dist/performance/optimizer.d.ts +323 -0
- package/v3/dist/performance/optimizer.d.ts.map +1 -0
- package/v3/dist/performance/optimizer.js +592 -0
- package/v3/dist/performance/optimizer.js.map +1 -0
- package/v3/dist/performance/profiler.d.ts +195 -0
- package/v3/dist/performance/profiler.d.ts.map +1 -0
- package/v3/dist/performance/profiler.js +369 -0
- package/v3/dist/performance/profiler.js.map +1 -0
- package/v3/dist/performance/run-gates.d.ts +23 -0
- package/v3/dist/performance/run-gates.d.ts.map +1 -0
- package/v3/dist/performance/run-gates.js +122 -0
- package/v3/dist/performance/run-gates.js.map +1 -0
- package/v3/dist/sync/claude-flow-bridge.d.ts +1 -1
- package/v3/dist/sync/claude-flow-bridge.js +1 -1
- package/v3/dist/sync/interfaces.d.ts +6 -0
- package/v3/dist/sync/interfaces.d.ts.map +1 -1
- package/v3/dist/sync/interfaces.js +34 -47
- package/v3/dist/sync/interfaces.js.map +1 -1
- package/v3/dist/sync/readers/sqlite-reader.d.ts +1 -1
- package/v3/dist/sync/readers/sqlite-reader.js +1 -1
- package/v3/dist/testing/index.d.ts +6 -0
- package/v3/dist/testing/index.d.ts.map +1 -0
- package/v3/dist/testing/index.js +7 -0
- package/v3/dist/testing/index.js.map +1 -0
- package/v3/dist/testing/load/agent-load-tester.d.ts +221 -0
- package/v3/dist/testing/load/agent-load-tester.d.ts.map +1 -0
- package/v3/dist/testing/load/agent-load-tester.js +566 -0
- package/v3/dist/testing/load/agent-load-tester.js.map +1 -0
- package/v3/dist/testing/load/bottleneck-analyzer.d.ts +150 -0
- package/v3/dist/testing/load/bottleneck-analyzer.d.ts.map +1 -0
- package/v3/dist/testing/load/bottleneck-analyzer.js +442 -0
- package/v3/dist/testing/load/bottleneck-analyzer.js.map +1 -0
- package/v3/dist/testing/load/index.d.ts +17 -0
- package/v3/dist/testing/load/index.d.ts.map +1 -0
- package/v3/dist/testing/load/index.js +23 -0
- package/v3/dist/testing/load/index.js.map +1 -0
- package/v3/dist/testing/load/metrics-collector.d.ts +275 -0
- package/v3/dist/testing/load/metrics-collector.d.ts.map +1 -0
- package/v3/dist/testing/load/metrics-collector.js +475 -0
- package/v3/dist/testing/load/metrics-collector.js.map +1 -0
- package/v3/package.json +5 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Agent Card Generator
|
|
3
|
+
*
|
|
4
|
+
* Parses agent markdown files and generates A2A v0.3 compatible Agent Cards.
|
|
5
|
+
* Supports batch generation for all QE agents.
|
|
6
|
+
*
|
|
7
|
+
* @module adapters/a2a/agent-cards/generator
|
|
8
|
+
*/
|
|
9
|
+
import { AgentSkill, QEAgentCard, AgentCapabilities, AgentProvider, InputMode, OutputMode } from './schema.js';
|
|
10
|
+
/**
|
|
11
|
+
* Configuration for the Agent Card Generator
|
|
12
|
+
*/
|
|
13
|
+
export interface AgentCardGeneratorConfig {
|
|
14
|
+
/** Base URL for agent endpoints */
|
|
15
|
+
readonly baseUrl: string;
|
|
16
|
+
/** Default agent version if not specified in markdown */
|
|
17
|
+
readonly defaultVersion?: string;
|
|
18
|
+
/** Default provider information */
|
|
19
|
+
readonly provider?: AgentProvider;
|
|
20
|
+
/** Default capabilities */
|
|
21
|
+
readonly defaultCapabilities?: AgentCapabilities;
|
|
22
|
+
/** Default input modes */
|
|
23
|
+
readonly defaultInputModes?: InputMode[];
|
|
24
|
+
/** Default output modes */
|
|
25
|
+
readonly defaultOutputModes?: OutputMode[];
|
|
26
|
+
/** Whether to include QE-specific metadata */
|
|
27
|
+
readonly includeQEMetadata?: boolean;
|
|
28
|
+
/** Custom skill extractor function */
|
|
29
|
+
readonly skillExtractor?: (markdown: string, parsedData: ParsedAgentMarkdown) => AgentSkill[];
|
|
30
|
+
/** Custom tag extractor function */
|
|
31
|
+
readonly tagExtractor?: (markdown: string, parsedData: ParsedAgentMarkdown) => string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Default generator configuration
|
|
35
|
+
*/
|
|
36
|
+
export declare const DEFAULT_GENERATOR_CONFIG: Required<AgentCardGeneratorConfig>;
|
|
37
|
+
/**
|
|
38
|
+
* YAML frontmatter data from agent markdown
|
|
39
|
+
*/
|
|
40
|
+
export interface AgentFrontmatter {
|
|
41
|
+
readonly name?: string;
|
|
42
|
+
readonly version?: string;
|
|
43
|
+
readonly updated?: string;
|
|
44
|
+
readonly description?: string;
|
|
45
|
+
readonly domain?: string;
|
|
46
|
+
readonly v2_compat?: {
|
|
47
|
+
readonly name?: string;
|
|
48
|
+
readonly deprecated_in?: string;
|
|
49
|
+
readonly removed_in?: string;
|
|
50
|
+
} | string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Parsed agent markdown data
|
|
54
|
+
*/
|
|
55
|
+
export interface ParsedAgentMarkdown {
|
|
56
|
+
/** Frontmatter data */
|
|
57
|
+
readonly frontmatter: AgentFrontmatter;
|
|
58
|
+
/** Agent identity section */
|
|
59
|
+
readonly identity?: string;
|
|
60
|
+
/** Capabilities section */
|
|
61
|
+
readonly capabilities?: string;
|
|
62
|
+
/** Implementation status section */
|
|
63
|
+
readonly implementationStatus?: string;
|
|
64
|
+
/** Skills available section */
|
|
65
|
+
readonly skillsAvailable?: string;
|
|
66
|
+
/** Memory namespace section */
|
|
67
|
+
readonly memoryNamespace?: string;
|
|
68
|
+
/** Examples section */
|
|
69
|
+
readonly examples?: string;
|
|
70
|
+
/** Output format section */
|
|
71
|
+
readonly outputFormat?: string;
|
|
72
|
+
/** Coordination notes section */
|
|
73
|
+
readonly coordinationNotes?: string;
|
|
74
|
+
/** Learning protocol section */
|
|
75
|
+
readonly learningProtocol?: string;
|
|
76
|
+
/** Raw markdown content */
|
|
77
|
+
readonly rawContent: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Result from generating agent cards
|
|
81
|
+
*/
|
|
82
|
+
export interface GenerationResult {
|
|
83
|
+
/** Successfully generated cards */
|
|
84
|
+
readonly cards: Map<string, QEAgentCard>;
|
|
85
|
+
/** Errors encountered during generation */
|
|
86
|
+
readonly errors: Map<string, Error>;
|
|
87
|
+
/** Statistics about the generation */
|
|
88
|
+
readonly stats: {
|
|
89
|
+
readonly total: number;
|
|
90
|
+
readonly success: number;
|
|
91
|
+
readonly failed: number;
|
|
92
|
+
readonly duration: number;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Parse YAML frontmatter from markdown content
|
|
97
|
+
*/
|
|
98
|
+
export declare function parseFrontmatter(markdown: string): AgentFrontmatter;
|
|
99
|
+
/**
|
|
100
|
+
* Extract a section from markdown by header name
|
|
101
|
+
*/
|
|
102
|
+
export declare function extractSection(markdown: string, sectionName: string): string | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Parse agent markdown file content
|
|
105
|
+
*/
|
|
106
|
+
export declare function parseAgentMarkdown(markdown: string): ParsedAgentMarkdown;
|
|
107
|
+
/**
|
|
108
|
+
* Extract examples from markdown content
|
|
109
|
+
*/
|
|
110
|
+
export declare function extractExamples(markdown: string, parsed: ParsedAgentMarkdown): string[];
|
|
111
|
+
/**
|
|
112
|
+
* Extract memory namespaces from markdown
|
|
113
|
+
*/
|
|
114
|
+
export declare function extractMemoryNamespaces(markdown: string, parsed: ParsedAgentMarkdown): {
|
|
115
|
+
reads: string[];
|
|
116
|
+
writes: string[];
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Extract implementation status from markdown
|
|
120
|
+
*/
|
|
121
|
+
export declare function extractImplementationStatus(markdown: string, parsed: ParsedAgentMarkdown): {
|
|
122
|
+
working: string[];
|
|
123
|
+
partial: string[];
|
|
124
|
+
planned: string[];
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Generator for A2A Agent Cards from agent markdown files
|
|
128
|
+
*/
|
|
129
|
+
export declare class AgentCardGenerator {
|
|
130
|
+
private readonly config;
|
|
131
|
+
constructor(config?: Partial<AgentCardGeneratorConfig>);
|
|
132
|
+
/**
|
|
133
|
+
* Generate an agent card from markdown content
|
|
134
|
+
*/
|
|
135
|
+
generateFromMarkdown(markdown: string, agentId?: string): QEAgentCard;
|
|
136
|
+
/**
|
|
137
|
+
* Generate an agent card from a markdown file path
|
|
138
|
+
*/
|
|
139
|
+
generateFromFile(filePath: string): Promise<QEAgentCard>;
|
|
140
|
+
/**
|
|
141
|
+
* Generate cards for all agent markdown files in a directory
|
|
142
|
+
*/
|
|
143
|
+
generateFromDirectory(directoryPath: string, recursive?: boolean): Promise<GenerationResult>;
|
|
144
|
+
/**
|
|
145
|
+
* Generate cards for all 68 QE agents
|
|
146
|
+
*/
|
|
147
|
+
generateAllCards(agentsBasePath: string): Promise<GenerationResult>;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create an Agent Card Generator instance
|
|
151
|
+
*/
|
|
152
|
+
export declare function createAgentCardGenerator(config?: Partial<AgentCardGeneratorConfig>): AgentCardGenerator;
|
|
153
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2a/agent-cards/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,478 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Agent Card Generator
|
|
3
|
+
*
|
|
4
|
+
* Parses agent markdown files and generates A2A v0.3 compatible Agent Cards.
|
|
5
|
+
* Supports batch generation for all QE agents.
|
|
6
|
+
*
|
|
7
|
+
* @module adapters/a2a/agent-cards/generator
|
|
8
|
+
*/
|
|
9
|
+
import { readFile, readdir, stat } from 'fs/promises';
|
|
10
|
+
import { join, basename } from 'path';
|
|
11
|
+
import { DEFAULT_CAPABILITIES, DEFAULT_INPUT_MODES, DEFAULT_OUTPUT_MODES, DEFAULT_QE_PROVIDER, createAgentSkill, createQEAgentCard, } from './schema.js';
|
|
12
|
+
/**
|
|
13
|
+
* Default generator configuration
|
|
14
|
+
*/
|
|
15
|
+
export const DEFAULT_GENERATOR_CONFIG = {
|
|
16
|
+
baseUrl: 'http://localhost:8080',
|
|
17
|
+
defaultVersion: '3.0.0',
|
|
18
|
+
provider: DEFAULT_QE_PROVIDER,
|
|
19
|
+
defaultCapabilities: DEFAULT_CAPABILITIES,
|
|
20
|
+
defaultInputModes: DEFAULT_INPUT_MODES,
|
|
21
|
+
defaultOutputModes: DEFAULT_OUTPUT_MODES,
|
|
22
|
+
includeQEMetadata: true,
|
|
23
|
+
skillExtractor: defaultSkillExtractor,
|
|
24
|
+
tagExtractor: defaultTagExtractor,
|
|
25
|
+
};
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// Markdown Parsing
|
|
28
|
+
// ============================================================================
|
|
29
|
+
/**
|
|
30
|
+
* Parse YAML frontmatter from markdown content
|
|
31
|
+
*/
|
|
32
|
+
export function parseFrontmatter(markdown) {
|
|
33
|
+
const frontmatterMatch = markdown.match(/^---\n([\s\S]*?)\n---/);
|
|
34
|
+
if (!frontmatterMatch) {
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
const frontmatterText = frontmatterMatch[1];
|
|
38
|
+
const result = {};
|
|
39
|
+
// Simple YAML parser for common patterns
|
|
40
|
+
const lines = frontmatterText.split('\n');
|
|
41
|
+
let currentKey = '';
|
|
42
|
+
let indentLevel = 0;
|
|
43
|
+
let nestedObj = {};
|
|
44
|
+
for (const line of lines) {
|
|
45
|
+
// Skip empty lines
|
|
46
|
+
if (line.trim() === '')
|
|
47
|
+
continue;
|
|
48
|
+
// Check indent level
|
|
49
|
+
const leadingSpaces = line.match(/^(\s*)/)?.[1].length ?? 0;
|
|
50
|
+
// Parse key-value pairs
|
|
51
|
+
const keyValueMatch = line.match(/^(\s*)(\w+):\s*(.*)$/);
|
|
52
|
+
if (keyValueMatch) {
|
|
53
|
+
const [, indent, key, value] = keyValueMatch;
|
|
54
|
+
const currentIndent = indent.length;
|
|
55
|
+
if (currentIndent === 0) {
|
|
56
|
+
// Top-level key
|
|
57
|
+
if (currentKey && indentLevel > 0) {
|
|
58
|
+
result[currentKey] = nestedObj;
|
|
59
|
+
nestedObj = {};
|
|
60
|
+
}
|
|
61
|
+
currentKey = key;
|
|
62
|
+
indentLevel = 0;
|
|
63
|
+
if (value.trim()) {
|
|
64
|
+
// Clean up quoted values
|
|
65
|
+
result[key] = value.replace(/^["']|["']$/g, '');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if (currentIndent > 0 && currentKey) {
|
|
69
|
+
// Nested key
|
|
70
|
+
indentLevel = currentIndent;
|
|
71
|
+
if (value.trim()) {
|
|
72
|
+
nestedObj[key] = value.replace(/^["']|["']$/g, '');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Don't forget the last nested object
|
|
78
|
+
if (currentKey && Object.keys(nestedObj).length > 0) {
|
|
79
|
+
result[currentKey] = nestedObj;
|
|
80
|
+
}
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Extract a section from markdown by header name
|
|
85
|
+
*/
|
|
86
|
+
export function extractSection(markdown, sectionName) {
|
|
87
|
+
// Try XML-style tags first (used in agent definitions)
|
|
88
|
+
const xmlTagPattern = new RegExp(`<${sectionName}>([\\s\\S]*?)</${sectionName}>`, 'i');
|
|
89
|
+
const xmlMatch = markdown.match(xmlTagPattern);
|
|
90
|
+
if (xmlMatch) {
|
|
91
|
+
return xmlMatch[1].trim();
|
|
92
|
+
}
|
|
93
|
+
// Try markdown headers
|
|
94
|
+
const headerPattern = new RegExp(`(?:^|\\n)##?\\s*${sectionName}[\\s\\S]*?\\n([\\s\\S]*?)(?=\\n##|$)`, 'i');
|
|
95
|
+
const headerMatch = markdown.match(headerPattern);
|
|
96
|
+
if (headerMatch) {
|
|
97
|
+
return headerMatch[1].trim();
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Parse agent markdown file content
|
|
103
|
+
*/
|
|
104
|
+
export function parseAgentMarkdown(markdown) {
|
|
105
|
+
const frontmatter = parseFrontmatter(markdown);
|
|
106
|
+
return {
|
|
107
|
+
frontmatter,
|
|
108
|
+
identity: extractSection(markdown, 'identity'),
|
|
109
|
+
capabilities: extractSection(markdown, 'capabilities'),
|
|
110
|
+
implementationStatus: extractSection(markdown, 'implementation_status'),
|
|
111
|
+
skillsAvailable: extractSection(markdown, 'skills_available'),
|
|
112
|
+
memoryNamespace: extractSection(markdown, 'memory_namespace'),
|
|
113
|
+
examples: extractSection(markdown, 'examples'),
|
|
114
|
+
outputFormat: extractSection(markdown, 'output_format'),
|
|
115
|
+
coordinationNotes: extractSection(markdown, 'coordination_notes'),
|
|
116
|
+
learningProtocol: extractSection(markdown, 'learning_protocol'),
|
|
117
|
+
rawContent: markdown,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// ============================================================================
|
|
121
|
+
// Skill Extraction
|
|
122
|
+
// ============================================================================
|
|
123
|
+
/**
|
|
124
|
+
* Default skill extractor from markdown content
|
|
125
|
+
*/
|
|
126
|
+
function defaultSkillExtractor(markdown, parsed) {
|
|
127
|
+
const skills = [];
|
|
128
|
+
// Extract capabilities section
|
|
129
|
+
const capabilitiesSection = parsed.capabilities ?? '';
|
|
130
|
+
// Parse bullet points as skills
|
|
131
|
+
const bulletPattern = /-\s*\*\*([^*]+)\*\*:\s*([^\n]+)/g;
|
|
132
|
+
let match;
|
|
133
|
+
while ((match = bulletPattern.exec(capabilitiesSection)) !== null) {
|
|
134
|
+
const [, name, description] = match;
|
|
135
|
+
const id = name
|
|
136
|
+
.toLowerCase()
|
|
137
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
138
|
+
.replace(/^-|-$/g, '');
|
|
139
|
+
skills.push(createAgentSkill(id, name.trim(), description.trim(), {
|
|
140
|
+
tags: extractSkillTags(name, description, parsed.frontmatter.domain),
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
// If no skills found from capabilities section, try skills_available section
|
|
144
|
+
if (skills.length === 0 && parsed.skillsAvailable) {
|
|
145
|
+
const skillLines = parsed.skillsAvailable.split('\n');
|
|
146
|
+
for (const line of skillLines) {
|
|
147
|
+
const skillMatch = line.match(/-\s*([^:]+):\s*(.+)/);
|
|
148
|
+
if (skillMatch) {
|
|
149
|
+
const [, name, description] = skillMatch;
|
|
150
|
+
const id = name
|
|
151
|
+
.toLowerCase()
|
|
152
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
153
|
+
.replace(/^-|-$/g, '');
|
|
154
|
+
skills.push(createAgentSkill(id, name.trim(), description.trim(), {
|
|
155
|
+
tags: extractSkillTags(name, description, parsed.frontmatter.domain),
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Generate a primary skill from the agent's main purpose if no skills found
|
|
161
|
+
if (skills.length === 0 && parsed.frontmatter.name && parsed.frontmatter.description) {
|
|
162
|
+
// Remove qe- prefix to get the skill ID (e.g., "qe-test-architect" -> "test-architect")
|
|
163
|
+
const primaryId = parsed.frontmatter.name.replace(/^qe-/, '');
|
|
164
|
+
skills.push(createAgentSkill(primaryId, formatSkillName(parsed.frontmatter.name), parsed.frontmatter.description, {
|
|
165
|
+
tags: extractSkillTags(parsed.frontmatter.name, parsed.frontmatter.description, parsed.frontmatter.domain),
|
|
166
|
+
}));
|
|
167
|
+
}
|
|
168
|
+
return skills;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Extract tags from skill name and description
|
|
172
|
+
*/
|
|
173
|
+
function extractSkillTags(name, description, domain) {
|
|
174
|
+
const tags = [];
|
|
175
|
+
// Add domain as tag
|
|
176
|
+
if (domain) {
|
|
177
|
+
tags.push(domain);
|
|
178
|
+
}
|
|
179
|
+
// Extract common keywords
|
|
180
|
+
const keywords = [
|
|
181
|
+
'test', 'testing', 'security', 'coverage', 'performance', 'accessibility',
|
|
182
|
+
'generation', 'analysis', 'scanning', 'validation', 'ai', 'ml', 'learning',
|
|
183
|
+
'quality', 'automation', 'integration', 'e2e', 'unit', 'api', 'tdd', 'bdd',
|
|
184
|
+
'mutation', 'flaky', 'chaos', 'resilience', 'compliance', 'owasp', 'wcag',
|
|
185
|
+
];
|
|
186
|
+
const combinedText = `${name} ${description}`.toLowerCase();
|
|
187
|
+
for (const keyword of keywords) {
|
|
188
|
+
if (combinedText.includes(keyword) && !tags.includes(keyword)) {
|
|
189
|
+
tags.push(keyword);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return tags;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Format agent name to human-readable skill name
|
|
196
|
+
*/
|
|
197
|
+
function formatSkillName(agentName) {
|
|
198
|
+
return agentName
|
|
199
|
+
.replace(/^qe-/, '')
|
|
200
|
+
.split('-')
|
|
201
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
202
|
+
.join(' ');
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Default tag extractor
|
|
206
|
+
*/
|
|
207
|
+
function defaultTagExtractor(markdown, parsed) {
|
|
208
|
+
const tags = [];
|
|
209
|
+
// Add domain
|
|
210
|
+
if (parsed.frontmatter.domain) {
|
|
211
|
+
tags.push(parsed.frontmatter.domain);
|
|
212
|
+
}
|
|
213
|
+
// Extract from skills
|
|
214
|
+
const skills = defaultSkillExtractor(markdown, parsed);
|
|
215
|
+
for (const skill of skills) {
|
|
216
|
+
if (skill.tags) {
|
|
217
|
+
for (const tag of skill.tags) {
|
|
218
|
+
if (!tags.includes(tag)) {
|
|
219
|
+
tags.push(tag);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return tags;
|
|
225
|
+
}
|
|
226
|
+
// ============================================================================
|
|
227
|
+
// Example Extraction
|
|
228
|
+
// ============================================================================
|
|
229
|
+
/**
|
|
230
|
+
* Extract examples from markdown content
|
|
231
|
+
*/
|
|
232
|
+
export function extractExamples(markdown, parsed) {
|
|
233
|
+
const examples = [];
|
|
234
|
+
// Try examples section
|
|
235
|
+
if (parsed.examples) {
|
|
236
|
+
// Extract code blocks
|
|
237
|
+
const codeBlockPattern = /```[\s\S]*?Input:\s*([^\n]+)/g;
|
|
238
|
+
let match;
|
|
239
|
+
while ((match = codeBlockPattern.exec(parsed.examples)) !== null) {
|
|
240
|
+
examples.push(match[1].trim());
|
|
241
|
+
}
|
|
242
|
+
// Extract quoted examples
|
|
243
|
+
const quotedPattern = /-\s*"([^"]+)"/g;
|
|
244
|
+
while ((match = quotedPattern.exec(parsed.examples)) !== null) {
|
|
245
|
+
examples.push(match[1].trim());
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Try skills_available section
|
|
249
|
+
if (parsed.skillsAvailable) {
|
|
250
|
+
const quotedPattern = /-\s*"([^"]+)"/g;
|
|
251
|
+
let match;
|
|
252
|
+
while ((match = quotedPattern.exec(parsed.skillsAvailable)) !== null) {
|
|
253
|
+
if (!examples.includes(match[1])) {
|
|
254
|
+
examples.push(match[1].trim());
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return examples;
|
|
259
|
+
}
|
|
260
|
+
// ============================================================================
|
|
261
|
+
// Memory Namespace Extraction
|
|
262
|
+
// ============================================================================
|
|
263
|
+
/**
|
|
264
|
+
* Extract memory namespaces from markdown
|
|
265
|
+
*/
|
|
266
|
+
export function extractMemoryNamespaces(markdown, parsed) {
|
|
267
|
+
const reads = [];
|
|
268
|
+
const writes = [];
|
|
269
|
+
if (!parsed.memoryNamespace) {
|
|
270
|
+
return { reads, writes };
|
|
271
|
+
}
|
|
272
|
+
const lines = parsed.memoryNamespace.split('\n');
|
|
273
|
+
let currentSection = null;
|
|
274
|
+
for (const line of lines) {
|
|
275
|
+
const trimmed = line.trim();
|
|
276
|
+
if (trimmed.toLowerCase().startsWith('reads:')) {
|
|
277
|
+
currentSection = 'reads';
|
|
278
|
+
}
|
|
279
|
+
else if (trimmed.toLowerCase().startsWith('writes:')) {
|
|
280
|
+
currentSection = 'writes';
|
|
281
|
+
}
|
|
282
|
+
else if (trimmed.startsWith('-')) {
|
|
283
|
+
const namespace = trimmed.replace(/^-\s*/, '').split(' ')[0];
|
|
284
|
+
if (currentSection === 'reads') {
|
|
285
|
+
reads.push(namespace);
|
|
286
|
+
}
|
|
287
|
+
else if (currentSection === 'writes') {
|
|
288
|
+
writes.push(namespace);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
return { reads, writes };
|
|
293
|
+
}
|
|
294
|
+
// ============================================================================
|
|
295
|
+
// Implementation Status Extraction
|
|
296
|
+
// ============================================================================
|
|
297
|
+
/**
|
|
298
|
+
* Extract implementation status from markdown
|
|
299
|
+
*/
|
|
300
|
+
export function extractImplementationStatus(markdown, parsed) {
|
|
301
|
+
const working = [];
|
|
302
|
+
const partial = [];
|
|
303
|
+
const planned = [];
|
|
304
|
+
if (!parsed.implementationStatus) {
|
|
305
|
+
return { working, partial, planned };
|
|
306
|
+
}
|
|
307
|
+
const lines = parsed.implementationStatus.split('\n');
|
|
308
|
+
let currentSection = null;
|
|
309
|
+
for (const line of lines) {
|
|
310
|
+
const trimmed = line.trim();
|
|
311
|
+
if (trimmed.toLowerCase().startsWith('working:')) {
|
|
312
|
+
currentSection = 'working';
|
|
313
|
+
}
|
|
314
|
+
else if (trimmed.toLowerCase().startsWith('partial:')) {
|
|
315
|
+
currentSection = 'partial';
|
|
316
|
+
}
|
|
317
|
+
else if (trimmed.toLowerCase().startsWith('planned:')) {
|
|
318
|
+
currentSection = 'planned';
|
|
319
|
+
}
|
|
320
|
+
else if (trimmed.startsWith('-')) {
|
|
321
|
+
const item = trimmed.replace(/^-\s*/, '');
|
|
322
|
+
if (currentSection === 'working') {
|
|
323
|
+
working.push(item);
|
|
324
|
+
}
|
|
325
|
+
else if (currentSection === 'partial') {
|
|
326
|
+
partial.push(item);
|
|
327
|
+
}
|
|
328
|
+
else if (currentSection === 'planned') {
|
|
329
|
+
planned.push(item);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return { working, partial, planned };
|
|
334
|
+
}
|
|
335
|
+
// ============================================================================
|
|
336
|
+
// Agent Card Generator Class
|
|
337
|
+
// ============================================================================
|
|
338
|
+
/**
|
|
339
|
+
* Generator for A2A Agent Cards from agent markdown files
|
|
340
|
+
*/
|
|
341
|
+
export class AgentCardGenerator {
|
|
342
|
+
config;
|
|
343
|
+
constructor(config = {}) {
|
|
344
|
+
this.config = {
|
|
345
|
+
...DEFAULT_GENERATOR_CONFIG,
|
|
346
|
+
...config,
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Generate an agent card from markdown content
|
|
351
|
+
*/
|
|
352
|
+
generateFromMarkdown(markdown, agentId) {
|
|
353
|
+
const parsed = parseAgentMarkdown(markdown);
|
|
354
|
+
const frontmatter = parsed.frontmatter;
|
|
355
|
+
// Determine agent name
|
|
356
|
+
const name = frontmatter.name ?? agentId ?? 'unknown-agent';
|
|
357
|
+
// Extract description
|
|
358
|
+
let description = frontmatter.description ?? '';
|
|
359
|
+
if (!description && parsed.identity) {
|
|
360
|
+
// Try to extract from identity section
|
|
361
|
+
const missionMatch = parsed.identity.match(/Mission:\s*([^\n]+)/);
|
|
362
|
+
if (missionMatch) {
|
|
363
|
+
description = missionMatch[1].trim();
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
// Extract skills
|
|
367
|
+
const skills = this.config.skillExtractor(markdown, parsed);
|
|
368
|
+
// Add examples to skills
|
|
369
|
+
const examples = extractExamples(markdown, parsed);
|
|
370
|
+
if (examples.length > 0 && skills.length > 0) {
|
|
371
|
+
// Add examples to the first (primary) skill
|
|
372
|
+
const primarySkill = skills[0];
|
|
373
|
+
skills[0] = {
|
|
374
|
+
...primarySkill,
|
|
375
|
+
examples: [...(primarySkill.examples ?? []), ...examples],
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
// Extract memory namespaces
|
|
379
|
+
const memoryNamespaces = extractMemoryNamespaces(markdown, parsed);
|
|
380
|
+
// Extract implementation status
|
|
381
|
+
const implementationStatus = extractImplementationStatus(markdown, parsed);
|
|
382
|
+
// Extract v2 compatibility
|
|
383
|
+
let v2Compat;
|
|
384
|
+
if (frontmatter.v2_compat) {
|
|
385
|
+
if (typeof frontmatter.v2_compat === 'string') {
|
|
386
|
+
v2Compat = { name: frontmatter.v2_compat };
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
v2Compat = {
|
|
390
|
+
name: frontmatter.v2_compat.name,
|
|
391
|
+
deprecatedIn: frontmatter.v2_compat.deprecated_in,
|
|
392
|
+
removedIn: frontmatter.v2_compat.removed_in,
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
// Build QE metadata
|
|
397
|
+
const qeMetadata = this.config.includeQEMetadata
|
|
398
|
+
? {
|
|
399
|
+
domain: frontmatter.domain,
|
|
400
|
+
v2Compatibility: v2Compat,
|
|
401
|
+
memoryReads: memoryNamespaces.reads,
|
|
402
|
+
memoryWrites: memoryNamespaces.writes,
|
|
403
|
+
implementationStatus,
|
|
404
|
+
}
|
|
405
|
+
: undefined;
|
|
406
|
+
// Build the agent card
|
|
407
|
+
return createQEAgentCard(name, description, `${this.config.baseUrl}/a2a/${name}`, frontmatter.version ?? this.config.defaultVersion, skills, qeMetadata, {
|
|
408
|
+
provider: this.config.provider,
|
|
409
|
+
capabilities: this.config.defaultCapabilities,
|
|
410
|
+
defaultInputModes: this.config.defaultInputModes,
|
|
411
|
+
defaultOutputModes: this.config.defaultOutputModes,
|
|
412
|
+
supportsAuthenticatedExtendedCard: true,
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Generate an agent card from a markdown file path
|
|
417
|
+
*/
|
|
418
|
+
async generateFromFile(filePath) {
|
|
419
|
+
const markdown = await readFile(filePath, 'utf-8');
|
|
420
|
+
const agentId = basename(filePath, '.md');
|
|
421
|
+
return this.generateFromMarkdown(markdown, agentId);
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Generate cards for all agent markdown files in a directory
|
|
425
|
+
*/
|
|
426
|
+
async generateFromDirectory(directoryPath, recursive = true) {
|
|
427
|
+
const startTime = Date.now();
|
|
428
|
+
const cards = new Map();
|
|
429
|
+
const errors = new Map();
|
|
430
|
+
const processDirectory = async (dirPath) => {
|
|
431
|
+
const entries = await readdir(dirPath);
|
|
432
|
+
for (const entry of entries) {
|
|
433
|
+
const fullPath = join(dirPath, entry);
|
|
434
|
+
const stats = await stat(fullPath);
|
|
435
|
+
if (stats.isDirectory() && recursive) {
|
|
436
|
+
await processDirectory(fullPath);
|
|
437
|
+
}
|
|
438
|
+
else if (stats.isFile() && entry.endsWith('.md') && entry !== 'README.md') {
|
|
439
|
+
try {
|
|
440
|
+
const card = await this.generateFromFile(fullPath);
|
|
441
|
+
cards.set(card.name, card);
|
|
442
|
+
}
|
|
443
|
+
catch (error) {
|
|
444
|
+
errors.set(fullPath, error instanceof Error ? error : new Error(String(error)));
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
};
|
|
449
|
+
await processDirectory(directoryPath);
|
|
450
|
+
const duration = Date.now() - startTime;
|
|
451
|
+
return {
|
|
452
|
+
cards,
|
|
453
|
+
errors,
|
|
454
|
+
stats: {
|
|
455
|
+
total: cards.size + errors.size,
|
|
456
|
+
success: cards.size,
|
|
457
|
+
failed: errors.size,
|
|
458
|
+
duration,
|
|
459
|
+
},
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Generate cards for all 68 QE agents
|
|
464
|
+
*/
|
|
465
|
+
async generateAllCards(agentsBasePath) {
|
|
466
|
+
return this.generateFromDirectory(agentsBasePath, true);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
// ============================================================================
|
|
470
|
+
// Factory Function
|
|
471
|
+
// ============================================================================
|
|
472
|
+
/**
|
|
473
|
+
* Create an Agent Card Generator instance
|
|
474
|
+
*/
|
|
475
|
+
export function createAgentCardGenerator(config = {}) {
|
|
476
|
+
return new AgentCardGenerator(config);
|
|
477
|
+
}
|
|
478
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/adapters/a2a/agent-cards/generator.ts"],"names":[],"mappings":"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"}
|