agentic-qe 3.3.5 → 3.4.1
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/helpers/statusline-v3.cjs +47 -0
- package/.claude/skills/qcsd-ideation-swarm/SKILL.md +7 -4
- package/CHANGELOG.md +23 -0
- package/README.md +69 -0
- package/package.json +1 -1
- package/v3/CHANGELOG.md +91 -0
- package/v3/README.md +117 -0
- 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 +7412 -3749
- package/v3/dist/init/init-wizard.d.ts.map +1 -1
- package/v3/dist/init/init-wizard.js +16 -1
- 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/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/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 +97 -0
- package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
- package/v3/dist/kernel/unified-memory.js +204 -0
- package/v3/dist/kernel/unified-memory.js.map +1 -1
- package/v3/dist/mcp/bundle.js +121759 -105597
- 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/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,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Discovery Module
|
|
3
|
+
*
|
|
4
|
+
* Provides RFC 8615 compliant agent discovery for A2A Protocol.
|
|
5
|
+
* Includes discovery service, Express-compatible routes, hot-reload,
|
|
6
|
+
* health checking, and metrics collection.
|
|
7
|
+
*
|
|
8
|
+
* @module adapters/a2a/discovery
|
|
9
|
+
* @see https://tools.ietf.org/html/rfc8615
|
|
10
|
+
* @see https://a2a-protocol.org/latest/topics/agent-discovery/
|
|
11
|
+
*/
|
|
12
|
+
export { DiscoveryService, createDiscoveryService, type DiscoveryServiceConfig, DEFAULT_DISCOVERY_CONFIG, type AgentSearchCriteria, type AgentSearchResult, type CardAccessMetrics, type RateLimitInfo, type UsageStats, type ExtendedCardData, } from './discovery-service.js';
|
|
13
|
+
export { createDiscoveryRoutes, getDiscoveryRouteDefinitions, type DiscoveryRoutesConfig, DEFAULT_ROUTES_CONFIG, type HttpRequest, type HttpResponse, type NextFunction, type HttpHandler, type RouteDefinition, type AuthMiddleware, type AuthenticatedRequest, type A2AErrorResponse, createAgentNotFoundResponse, createAuthRequiredResponse, createInternalErrorResponse, createPlatformCardHandler, createAgentCardHandler, createExtendedCardHandler, } from './routes.js';
|
|
14
|
+
export { AgentFileWatcher, createAgentFileWatcher, type FileWatcherConfig, DEFAULT_FILE_WATCHER_CONFIG, type FileEvent, type FileChangeEvent, type WatcherStatus, type FileWatcherEvents, } from './file-watcher.js';
|
|
15
|
+
export { HotReloadService, createHotReloadService, type HotReloadServiceConfig, DEFAULT_HOT_RELOAD_CONFIG, type HotReloadEvent, type HotReloadStatus, type ReloadResult, type HotReloadEvents, } from './hot-reload-service.js';
|
|
16
|
+
export { AgentHealthChecker, createAgentHealthChecker, type HealthCheckConfig, DEFAULT_HEALTH_CHECK_CONFIG, type HealthStatus, type AgentHealthStatus, type HealthCheckResult, type PeriodicCheckConfig, type HealthSummary, type HealthCheckerEvents, } from './agent-health.js';
|
|
17
|
+
export { MetricsCollector, createMetricsCollector, getGlobalMetrics, resetGlobalMetrics, type MetricsCollectorConfig, DEFAULT_METRICS_CONFIG, type MetricType, type MetricLabels, type DiscoveryMetrics, } from './metrics.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAEL,gBAAgB,EAChB,sBAAsB,EAGtB,KAAK,sBAAsB,EAC3B,wBAAwB,EAGxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAGtB,KAAK,iBAAiB,EAGtB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAEL,qBAAqB,EACrB,4BAA4B,EAG5B,KAAK,qBAAqB,EAC1B,qBAAqB,EAGrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EAGpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EAGrB,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAG3B,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEL,gBAAgB,EAChB,sBAAsB,EAGtB,KAAK,iBAAiB,EACtB,2BAA2B,EAG3B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAEL,gBAAgB,EAChB,sBAAsB,EAGtB,KAAK,sBAAsB,EAC3B,yBAAyB,EAGzB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAEL,kBAAkB,EAClB,wBAAwB,EAGxB,KAAK,iBAAiB,EACtB,2BAA2B,EAG3B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAEL,gBAAgB,EAChB,sBAAsB,EAGtB,gBAAgB,EAChB,kBAAkB,EAGlB,KAAK,sBAAsB,EAC3B,sBAAsB,EAGtB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Discovery Module
|
|
3
|
+
*
|
|
4
|
+
* Provides RFC 8615 compliant agent discovery for A2A Protocol.
|
|
5
|
+
* Includes discovery service, Express-compatible routes, hot-reload,
|
|
6
|
+
* health checking, and metrics collection.
|
|
7
|
+
*
|
|
8
|
+
* @module adapters/a2a/discovery
|
|
9
|
+
* @see https://tools.ietf.org/html/rfc8615
|
|
10
|
+
* @see https://a2a-protocol.org/latest/topics/agent-discovery/
|
|
11
|
+
*/
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Discovery Service
|
|
14
|
+
// ============================================================================
|
|
15
|
+
export {
|
|
16
|
+
// Service Class
|
|
17
|
+
DiscoveryService, createDiscoveryService, DEFAULT_DISCOVERY_CONFIG, } from './discovery-service.js';
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Express-Compatible Routes
|
|
20
|
+
// ============================================================================
|
|
21
|
+
export {
|
|
22
|
+
// Route Factory
|
|
23
|
+
createDiscoveryRoutes, getDiscoveryRouteDefinitions, DEFAULT_ROUTES_CONFIG,
|
|
24
|
+
// Error Response Factories
|
|
25
|
+
createAgentNotFoundResponse, createAuthRequiredResponse, createInternalErrorResponse,
|
|
26
|
+
// Standalone Handlers
|
|
27
|
+
createPlatformCardHandler, createAgentCardHandler, createExtendedCardHandler, } from './routes.js';
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// File Watcher
|
|
30
|
+
// ============================================================================
|
|
31
|
+
export {
|
|
32
|
+
// Class
|
|
33
|
+
AgentFileWatcher, createAgentFileWatcher, DEFAULT_FILE_WATCHER_CONFIG, } from './file-watcher.js';
|
|
34
|
+
// ============================================================================
|
|
35
|
+
// Hot Reload Service
|
|
36
|
+
// ============================================================================
|
|
37
|
+
export {
|
|
38
|
+
// Class
|
|
39
|
+
HotReloadService, createHotReloadService, DEFAULT_HOT_RELOAD_CONFIG, } from './hot-reload-service.js';
|
|
40
|
+
// ============================================================================
|
|
41
|
+
// Agent Health Checker
|
|
42
|
+
// ============================================================================
|
|
43
|
+
export {
|
|
44
|
+
// Class
|
|
45
|
+
AgentHealthChecker, createAgentHealthChecker, DEFAULT_HEALTH_CHECK_CONFIG, } from './agent-health.js';
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// Metrics
|
|
48
|
+
// ============================================================================
|
|
49
|
+
export {
|
|
50
|
+
// Class
|
|
51
|
+
MetricsCollector, createMetricsCollector,
|
|
52
|
+
// Global Metrics
|
|
53
|
+
getGlobalMetrics, resetGlobalMetrics, DEFAULT_METRICS_CONFIG, } from './metrics.js';
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,OAAO;AACL,gBAAgB;AAChB,gBAAgB,EAChB,sBAAsB,EAItB,wBAAwB,GAazB,MAAM,wBAAwB,CAAC;AAEhC,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,OAAO;AACL,gBAAgB;AAChB,qBAAqB,EACrB,4BAA4B,EAI5B,qBAAqB;AAcrB,2BAA2B;AAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B;AAE3B,sBAAsB;AACtB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO;AACL,QAAQ;AACR,gBAAgB,EAChB,sBAAsB,EAItB,2BAA2B,GAO5B,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO;AACL,QAAQ;AACR,gBAAgB,EAChB,sBAAsB,EAItB,yBAAyB,GAO1B,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,OAAO;AACL,QAAQ;AACR,kBAAkB,EAClB,wBAAwB,EAIxB,2BAA2B,GAS5B,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,OAAO;AACL,QAAQ;AACR,gBAAgB,EAChB,sBAAsB;AAEtB,iBAAiB;AACjB,gBAAgB,EAChB,kBAAkB,EAIlB,sBAAsB,GAMvB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Discovery Metrics Collector
|
|
3
|
+
*
|
|
4
|
+
* Provides Prometheus-style metrics collection for agent discovery,
|
|
5
|
+
* hot-reload, and health checking operations.
|
|
6
|
+
*
|
|
7
|
+
* @module adapters/a2a/discovery/metrics
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Metric types
|
|
11
|
+
*/
|
|
12
|
+
export type MetricType = 'counter' | 'gauge' | 'histogram';
|
|
13
|
+
/**
|
|
14
|
+
* Labels for metric tagging
|
|
15
|
+
*/
|
|
16
|
+
export type MetricLabels = Record<string, string>;
|
|
17
|
+
/**
|
|
18
|
+
* Discovery metrics interface
|
|
19
|
+
*/
|
|
20
|
+
export interface DiscoveryMetrics {
|
|
21
|
+
/** Number of registered agents */
|
|
22
|
+
readonly agentsRegistered: number;
|
|
23
|
+
/** Agents by domain */
|
|
24
|
+
readonly agentsByDomain: Map<string, number>;
|
|
25
|
+
/** Registration event counts */
|
|
26
|
+
readonly registrationEvents: {
|
|
27
|
+
readonly add: number;
|
|
28
|
+
readonly remove: number;
|
|
29
|
+
readonly update: number;
|
|
30
|
+
};
|
|
31
|
+
/** Cache hit count */
|
|
32
|
+
readonly cacheHits: number;
|
|
33
|
+
/** Cache miss count */
|
|
34
|
+
readonly cacheMisses: number;
|
|
35
|
+
/** File watcher event count */
|
|
36
|
+
readonly fileWatcherEvents: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Histogram bucket
|
|
40
|
+
*/
|
|
41
|
+
interface HistogramBucket {
|
|
42
|
+
le: number;
|
|
43
|
+
count: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Histogram metric data
|
|
47
|
+
*/
|
|
48
|
+
interface HistogramData {
|
|
49
|
+
buckets: HistogramBucket[];
|
|
50
|
+
sum: number;
|
|
51
|
+
count: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Metrics collector configuration
|
|
55
|
+
*/
|
|
56
|
+
export interface MetricsCollectorConfig {
|
|
57
|
+
/** Prefix for all metric names */
|
|
58
|
+
readonly prefix?: string;
|
|
59
|
+
/** Default labels to add to all metrics */
|
|
60
|
+
readonly defaultLabels?: MetricLabels;
|
|
61
|
+
/** Enable timestamps in output */
|
|
62
|
+
readonly includeTimestamps?: boolean;
|
|
63
|
+
/** Histogram buckets for latency metrics */
|
|
64
|
+
readonly histogramBuckets?: number[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Default configuration
|
|
68
|
+
*/
|
|
69
|
+
export declare const DEFAULT_METRICS_CONFIG: Required<MetricsCollectorConfig>;
|
|
70
|
+
/**
|
|
71
|
+
* Metrics Collector
|
|
72
|
+
*
|
|
73
|
+
* Collects and exports Prometheus-style metrics for agent discovery operations.
|
|
74
|
+
* Supports counters, gauges, and histograms with arbitrary labels.
|
|
75
|
+
*/
|
|
76
|
+
export declare class MetricsCollector {
|
|
77
|
+
private readonly config;
|
|
78
|
+
private readonly counters;
|
|
79
|
+
private readonly gauges;
|
|
80
|
+
private readonly histograms;
|
|
81
|
+
private readonly metricHelp;
|
|
82
|
+
constructor(config?: MetricsCollectorConfig);
|
|
83
|
+
/**
|
|
84
|
+
* Increment a counter
|
|
85
|
+
*/
|
|
86
|
+
increment(metric: string, labels?: MetricLabels, value?: number): void;
|
|
87
|
+
/**
|
|
88
|
+
* Set a gauge value
|
|
89
|
+
*/
|
|
90
|
+
gauge(metric: string, value: number, labels?: MetricLabels): void;
|
|
91
|
+
/**
|
|
92
|
+
* Observe a histogram value
|
|
93
|
+
*/
|
|
94
|
+
observe(metric: string, value: number, labels?: MetricLabels): void;
|
|
95
|
+
/**
|
|
96
|
+
* Get the current value of a counter
|
|
97
|
+
*/
|
|
98
|
+
getCounter(metric: string, labels?: MetricLabels): number;
|
|
99
|
+
/**
|
|
100
|
+
* Get the current value of a gauge
|
|
101
|
+
*/
|
|
102
|
+
getGauge(metric: string, labels?: MetricLabels): number;
|
|
103
|
+
/**
|
|
104
|
+
* Get histogram data
|
|
105
|
+
*/
|
|
106
|
+
getHistogram(metric: string, labels?: MetricLabels): HistogramData | null;
|
|
107
|
+
/**
|
|
108
|
+
* Register a metric with help text
|
|
109
|
+
*/
|
|
110
|
+
register(metric: string, help: string): void;
|
|
111
|
+
/**
|
|
112
|
+
* Get all metrics in Prometheus exposition format
|
|
113
|
+
*/
|
|
114
|
+
getMetrics(): string;
|
|
115
|
+
/**
|
|
116
|
+
* Get discovery-specific metrics summary
|
|
117
|
+
*/
|
|
118
|
+
getDiscoveryMetrics(): DiscoveryMetrics;
|
|
119
|
+
/**
|
|
120
|
+
* Reset all metrics
|
|
121
|
+
*/
|
|
122
|
+
reset(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Reset a specific counter
|
|
125
|
+
*/
|
|
126
|
+
resetCounter(metric: string, labels?: MetricLabels): void;
|
|
127
|
+
/**
|
|
128
|
+
* Reset a specific gauge
|
|
129
|
+
*/
|
|
130
|
+
resetGauge(metric: string, labels?: MetricLabels): void;
|
|
131
|
+
/**
|
|
132
|
+
* Get the number of registered metrics
|
|
133
|
+
*/
|
|
134
|
+
getMetricCount(): {
|
|
135
|
+
counters: number;
|
|
136
|
+
gauges: number;
|
|
137
|
+
histograms: number;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Register default metrics
|
|
141
|
+
*/
|
|
142
|
+
private registerDefaultMetrics;
|
|
143
|
+
/**
|
|
144
|
+
* Build a unique key for a metric with labels
|
|
145
|
+
*/
|
|
146
|
+
private buildKey;
|
|
147
|
+
/**
|
|
148
|
+
* Build the full metric name with prefix
|
|
149
|
+
*/
|
|
150
|
+
private buildFullName;
|
|
151
|
+
/**
|
|
152
|
+
* Merge labels with defaults
|
|
153
|
+
*/
|
|
154
|
+
private mergeLabels;
|
|
155
|
+
/**
|
|
156
|
+
* Group metrics by name
|
|
157
|
+
*/
|
|
158
|
+
private groupByName;
|
|
159
|
+
/**
|
|
160
|
+
* Format a metric line in Prometheus format
|
|
161
|
+
*/
|
|
162
|
+
private formatMetricLine;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Create a Metrics Collector instance
|
|
166
|
+
*
|
|
167
|
+
* @param config - Collector configuration
|
|
168
|
+
* @returns Metrics collector instance
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* const metrics = createMetricsCollector({
|
|
173
|
+
* prefix: 'aqe_discovery',
|
|
174
|
+
* defaultLabels: { environment: 'production' },
|
|
175
|
+
* });
|
|
176
|
+
*
|
|
177
|
+
* // Increment counter
|
|
178
|
+
* metrics.increment('registration.add', { domain: 'test-generation' });
|
|
179
|
+
*
|
|
180
|
+
* // Set gauge
|
|
181
|
+
* metrics.gauge('agents.registered', 68);
|
|
182
|
+
*
|
|
183
|
+
* // Observe histogram
|
|
184
|
+
* metrics.observe('health.latency', 0.125);
|
|
185
|
+
*
|
|
186
|
+
* // Get Prometheus format output
|
|
187
|
+
* const output = metrics.getMetrics();
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
export declare function createMetricsCollector(config?: MetricsCollectorConfig): MetricsCollector;
|
|
191
|
+
/**
|
|
192
|
+
* Get or create the global metrics collector
|
|
193
|
+
*/
|
|
194
|
+
export declare function getGlobalMetrics(): MetricsCollector;
|
|
195
|
+
/**
|
|
196
|
+
* Reset the global metrics collector
|
|
197
|
+
*/
|
|
198
|
+
export declare function resetGlobalMetrics(): void;
|
|
199
|
+
export {};
|
|
200
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Discovery Metrics Collector
|
|
3
|
+
*
|
|
4
|
+
* Provides Prometheus-style metrics collection for agent discovery,
|
|
5
|
+
* hot-reload, and health checking operations.
|
|
6
|
+
*
|
|
7
|
+
* @module adapters/a2a/discovery/metrics
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Default configuration
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_METRICS_CONFIG = {
|
|
13
|
+
prefix: 'aqe_discovery',
|
|
14
|
+
defaultLabels: {},
|
|
15
|
+
includeTimestamps: true,
|
|
16
|
+
histogramBuckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10],
|
|
17
|
+
};
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Metrics Collector Class
|
|
20
|
+
// ============================================================================
|
|
21
|
+
/**
|
|
22
|
+
* Metrics Collector
|
|
23
|
+
*
|
|
24
|
+
* Collects and exports Prometheus-style metrics for agent discovery operations.
|
|
25
|
+
* Supports counters, gauges, and histograms with arbitrary labels.
|
|
26
|
+
*/
|
|
27
|
+
export class MetricsCollector {
|
|
28
|
+
config;
|
|
29
|
+
counters = new Map();
|
|
30
|
+
gauges = new Map();
|
|
31
|
+
histograms = new Map();
|
|
32
|
+
metricHelp = new Map();
|
|
33
|
+
constructor(config = {}) {
|
|
34
|
+
this.config = {
|
|
35
|
+
...DEFAULT_METRICS_CONFIG,
|
|
36
|
+
...config,
|
|
37
|
+
};
|
|
38
|
+
// Register default metrics
|
|
39
|
+
this.registerDefaultMetrics();
|
|
40
|
+
}
|
|
41
|
+
// ============================================================================
|
|
42
|
+
// Public API
|
|
43
|
+
// ============================================================================
|
|
44
|
+
/**
|
|
45
|
+
* Increment a counter
|
|
46
|
+
*/
|
|
47
|
+
increment(metric, labels = {}, value = 1) {
|
|
48
|
+
const key = this.buildKey(metric, labels);
|
|
49
|
+
const fullName = this.buildFullName(metric);
|
|
50
|
+
const mergedLabels = this.mergeLabels(labels);
|
|
51
|
+
const existing = this.counters.get(key);
|
|
52
|
+
if (existing) {
|
|
53
|
+
existing.value += value;
|
|
54
|
+
existing.timestamp = Date.now();
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.counters.set(key, {
|
|
58
|
+
name: fullName,
|
|
59
|
+
type: 'counter',
|
|
60
|
+
help: this.metricHelp.get(metric) ?? `Counter for ${metric}`,
|
|
61
|
+
value,
|
|
62
|
+
labels: mergedLabels,
|
|
63
|
+
timestamp: Date.now(),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Set a gauge value
|
|
69
|
+
*/
|
|
70
|
+
gauge(metric, value, labels = {}) {
|
|
71
|
+
const key = this.buildKey(metric, labels);
|
|
72
|
+
const fullName = this.buildFullName(metric);
|
|
73
|
+
const mergedLabels = this.mergeLabels(labels);
|
|
74
|
+
this.gauges.set(key, {
|
|
75
|
+
name: fullName,
|
|
76
|
+
type: 'gauge',
|
|
77
|
+
help: this.metricHelp.get(metric) ?? `Gauge for ${metric}`,
|
|
78
|
+
value,
|
|
79
|
+
labels: mergedLabels,
|
|
80
|
+
timestamp: Date.now(),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Observe a histogram value
|
|
85
|
+
*/
|
|
86
|
+
observe(metric, value, labels = {}) {
|
|
87
|
+
const key = this.buildKey(metric, labels);
|
|
88
|
+
let histogram = this.histograms.get(key);
|
|
89
|
+
if (!histogram) {
|
|
90
|
+
histogram = {
|
|
91
|
+
buckets: this.config.histogramBuckets.map((le) => ({ le, count: 0 })),
|
|
92
|
+
sum: 0,
|
|
93
|
+
count: 0,
|
|
94
|
+
};
|
|
95
|
+
this.histograms.set(key, histogram);
|
|
96
|
+
}
|
|
97
|
+
// Update buckets
|
|
98
|
+
for (const bucket of histogram.buckets) {
|
|
99
|
+
if (value <= bucket.le) {
|
|
100
|
+
bucket.count++;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
histogram.sum += value;
|
|
104
|
+
histogram.count++;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get the current value of a counter
|
|
108
|
+
*/
|
|
109
|
+
getCounter(metric, labels = {}) {
|
|
110
|
+
const key = this.buildKey(metric, labels);
|
|
111
|
+
return this.counters.get(key)?.value ?? 0;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get the current value of a gauge
|
|
115
|
+
*/
|
|
116
|
+
getGauge(metric, labels = {}) {
|
|
117
|
+
const key = this.buildKey(metric, labels);
|
|
118
|
+
return this.gauges.get(key)?.value ?? 0;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get histogram data
|
|
122
|
+
*/
|
|
123
|
+
getHistogram(metric, labels = {}) {
|
|
124
|
+
const key = this.buildKey(metric, labels);
|
|
125
|
+
return this.histograms.get(key) ?? null;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Register a metric with help text
|
|
129
|
+
*/
|
|
130
|
+
register(metric, help) {
|
|
131
|
+
this.metricHelp.set(metric, help);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get all metrics in Prometheus exposition format
|
|
135
|
+
*/
|
|
136
|
+
getMetrics() {
|
|
137
|
+
const lines = [];
|
|
138
|
+
// Output counters
|
|
139
|
+
const countersByName = this.groupByName(this.counters);
|
|
140
|
+
for (const [name, entries] of countersByName) {
|
|
141
|
+
const help = entries[0]?.help ?? '';
|
|
142
|
+
lines.push(`# HELP ${name} ${help}`);
|
|
143
|
+
lines.push(`# TYPE ${name} counter`);
|
|
144
|
+
for (const entry of entries) {
|
|
145
|
+
lines.push(this.formatMetricLine(entry));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// Output gauges
|
|
149
|
+
const gaugesByName = this.groupByName(this.gauges);
|
|
150
|
+
for (const [name, entries] of gaugesByName) {
|
|
151
|
+
const help = entries[0]?.help ?? '';
|
|
152
|
+
lines.push(`# HELP ${name} ${help}`);
|
|
153
|
+
lines.push(`# TYPE ${name} gauge`);
|
|
154
|
+
for (const entry of entries) {
|
|
155
|
+
lines.push(this.formatMetricLine(entry));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Output histograms
|
|
159
|
+
for (const [key, histogram] of this.histograms) {
|
|
160
|
+
const [metric] = key.split('{');
|
|
161
|
+
const fullName = this.buildFullName(metric);
|
|
162
|
+
const help = this.metricHelp.get(metric) ?? `Histogram for ${metric}`;
|
|
163
|
+
lines.push(`# HELP ${fullName} ${help}`);
|
|
164
|
+
lines.push(`# TYPE ${fullName} histogram`);
|
|
165
|
+
for (const bucket of histogram.buckets) {
|
|
166
|
+
lines.push(`${fullName}_bucket{le="${bucket.le}"} ${bucket.count}`);
|
|
167
|
+
}
|
|
168
|
+
lines.push(`${fullName}_bucket{le="+Inf"} ${histogram.count}`);
|
|
169
|
+
lines.push(`${fullName}_sum ${histogram.sum}`);
|
|
170
|
+
lines.push(`${fullName}_count ${histogram.count}`);
|
|
171
|
+
}
|
|
172
|
+
return lines.join('\n');
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get discovery-specific metrics summary
|
|
176
|
+
*/
|
|
177
|
+
getDiscoveryMetrics() {
|
|
178
|
+
const agentsByDomain = new Map();
|
|
179
|
+
// Extract domain counts from gauges
|
|
180
|
+
for (const [key, entry] of this.gauges) {
|
|
181
|
+
if (key.includes('agents_by_domain')) {
|
|
182
|
+
const domain = entry.labels.domain ?? 'unknown';
|
|
183
|
+
agentsByDomain.set(domain, entry.value);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
agentsRegistered: this.getGauge('agents.registered'),
|
|
188
|
+
agentsByDomain,
|
|
189
|
+
registrationEvents: {
|
|
190
|
+
add: this.getCounter('registration.add'),
|
|
191
|
+
remove: this.getCounter('registration.remove'),
|
|
192
|
+
update: this.getCounter('registration.update'),
|
|
193
|
+
},
|
|
194
|
+
cacheHits: this.getCounter('cache.hits'),
|
|
195
|
+
cacheMisses: this.getCounter('cache.misses'),
|
|
196
|
+
fileWatcherEvents: this.getCounter('file-watcher.events'),
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Reset all metrics
|
|
201
|
+
*/
|
|
202
|
+
reset() {
|
|
203
|
+
this.counters.clear();
|
|
204
|
+
this.gauges.clear();
|
|
205
|
+
this.histograms.clear();
|
|
206
|
+
this.registerDefaultMetrics();
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Reset a specific counter
|
|
210
|
+
*/
|
|
211
|
+
resetCounter(metric, labels = {}) {
|
|
212
|
+
const key = this.buildKey(metric, labels);
|
|
213
|
+
this.counters.delete(key);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Reset a specific gauge
|
|
217
|
+
*/
|
|
218
|
+
resetGauge(metric, labels = {}) {
|
|
219
|
+
const key = this.buildKey(metric, labels);
|
|
220
|
+
this.gauges.delete(key);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get the number of registered metrics
|
|
224
|
+
*/
|
|
225
|
+
getMetricCount() {
|
|
226
|
+
return {
|
|
227
|
+
counters: this.counters.size,
|
|
228
|
+
gauges: this.gauges.size,
|
|
229
|
+
histograms: this.histograms.size,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
// ============================================================================
|
|
233
|
+
// Private Methods
|
|
234
|
+
// ============================================================================
|
|
235
|
+
/**
|
|
236
|
+
* Register default metrics
|
|
237
|
+
*/
|
|
238
|
+
registerDefaultMetrics() {
|
|
239
|
+
this.register('agents.registered', 'Total number of registered agents');
|
|
240
|
+
this.register('agents_by_domain', 'Number of agents per domain');
|
|
241
|
+
this.register('registration.add', 'Number of agent registrations');
|
|
242
|
+
this.register('registration.remove', 'Number of agent removals');
|
|
243
|
+
this.register('registration.update', 'Number of agent updates');
|
|
244
|
+
this.register('cache.hits', 'Number of cache hits');
|
|
245
|
+
this.register('cache.misses', 'Number of cache misses');
|
|
246
|
+
this.register('file-watcher.events', 'Number of file watcher events');
|
|
247
|
+
this.register('hot-reload.start', 'Number of hot reload service starts');
|
|
248
|
+
this.register('hot-reload.stop', 'Number of hot reload service stops');
|
|
249
|
+
this.register('hot-reload.file-event', 'Number of file events processed');
|
|
250
|
+
this.register('hot-reload.card-added', 'Number of agent cards added');
|
|
251
|
+
this.register('hot-reload.card-updated', 'Number of agent cards updated');
|
|
252
|
+
this.register('hot-reload.card-removed', 'Number of agent cards removed');
|
|
253
|
+
this.register('hot-reload.platform-card-updated', 'Number of platform card updates');
|
|
254
|
+
this.register('hot-reload.cache-invalidation', 'Number of cache invalidations');
|
|
255
|
+
this.register('hot-reload.failures', 'Number of hot reload failures');
|
|
256
|
+
this.register('hot-reload.errors', 'Number of hot reload errors');
|
|
257
|
+
this.register('hot-reload.last-duration-ms', 'Duration of last hot reload in milliseconds');
|
|
258
|
+
this.register('health.checks', 'Number of health checks performed');
|
|
259
|
+
this.register('health.checks.success', 'Number of successful health checks');
|
|
260
|
+
this.register('health.checks.failure', 'Number of failed health checks');
|
|
261
|
+
this.register('health.latency', 'Health check latency in seconds');
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Build a unique key for a metric with labels
|
|
265
|
+
*/
|
|
266
|
+
buildKey(metric, labels) {
|
|
267
|
+
const sortedLabels = Object.entries(labels)
|
|
268
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
269
|
+
.map(([k, v]) => `${k}="${v}"`)
|
|
270
|
+
.join(',');
|
|
271
|
+
return sortedLabels ? `${metric}{${sortedLabels}}` : metric;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Build the full metric name with prefix
|
|
275
|
+
*/
|
|
276
|
+
buildFullName(metric) {
|
|
277
|
+
const sanitized = metric.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
278
|
+
return `${this.config.prefix}_${sanitized}`;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Merge labels with defaults
|
|
282
|
+
*/
|
|
283
|
+
mergeLabels(labels) {
|
|
284
|
+
return {
|
|
285
|
+
...this.config.defaultLabels,
|
|
286
|
+
...labels,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Group metrics by name
|
|
291
|
+
*/
|
|
292
|
+
groupByName(metrics) {
|
|
293
|
+
const grouped = new Map();
|
|
294
|
+
for (const entry of metrics.values()) {
|
|
295
|
+
const existing = grouped.get(entry.name);
|
|
296
|
+
if (existing) {
|
|
297
|
+
existing.push(entry);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
grouped.set(entry.name, [entry]);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return grouped;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Format a metric line in Prometheus format
|
|
307
|
+
*/
|
|
308
|
+
formatMetricLine(entry) {
|
|
309
|
+
const labelParts = Object.entries(entry.labels)
|
|
310
|
+
.filter(([, v]) => v !== undefined && v !== '')
|
|
311
|
+
.map(([k, v]) => `${k}="${v}"`)
|
|
312
|
+
.join(',');
|
|
313
|
+
const labels = labelParts ? `{${labelParts}}` : '';
|
|
314
|
+
const timestamp = this.config.includeTimestamps ? ` ${entry.timestamp}` : '';
|
|
315
|
+
return `${entry.name}${labels} ${entry.value}${timestamp}`;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
// ============================================================================
|
|
319
|
+
// Factory Function
|
|
320
|
+
// ============================================================================
|
|
321
|
+
/**
|
|
322
|
+
* Create a Metrics Collector instance
|
|
323
|
+
*
|
|
324
|
+
* @param config - Collector configuration
|
|
325
|
+
* @returns Metrics collector instance
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* ```typescript
|
|
329
|
+
* const metrics = createMetricsCollector({
|
|
330
|
+
* prefix: 'aqe_discovery',
|
|
331
|
+
* defaultLabels: { environment: 'production' },
|
|
332
|
+
* });
|
|
333
|
+
*
|
|
334
|
+
* // Increment counter
|
|
335
|
+
* metrics.increment('registration.add', { domain: 'test-generation' });
|
|
336
|
+
*
|
|
337
|
+
* // Set gauge
|
|
338
|
+
* metrics.gauge('agents.registered', 68);
|
|
339
|
+
*
|
|
340
|
+
* // Observe histogram
|
|
341
|
+
* metrics.observe('health.latency', 0.125);
|
|
342
|
+
*
|
|
343
|
+
* // Get Prometheus format output
|
|
344
|
+
* const output = metrics.getMetrics();
|
|
345
|
+
* ```
|
|
346
|
+
*/
|
|
347
|
+
export function createMetricsCollector(config = {}) {
|
|
348
|
+
return new MetricsCollector(config);
|
|
349
|
+
}
|
|
350
|
+
// ============================================================================
|
|
351
|
+
// Singleton for Global Metrics
|
|
352
|
+
// ============================================================================
|
|
353
|
+
let globalMetrics = null;
|
|
354
|
+
/**
|
|
355
|
+
* Get or create the global metrics collector
|
|
356
|
+
*/
|
|
357
|
+
export function getGlobalMetrics() {
|
|
358
|
+
if (!globalMetrics) {
|
|
359
|
+
globalMetrics = createMetricsCollector();
|
|
360
|
+
}
|
|
361
|
+
return globalMetrics;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Reset the global metrics collector
|
|
365
|
+
*/
|
|
366
|
+
export function resetGlobalMetrics() {
|
|
367
|
+
if (globalMetrics) {
|
|
368
|
+
globalMetrics.reset();
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/metrics.ts"],"names":[],"mappings":"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"}
|