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,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Bottleneck Analyzer
|
|
3
|
+
* Detects performance bottlenecks during load testing
|
|
4
|
+
*
|
|
5
|
+
* Issue #177 Targets:
|
|
6
|
+
* - 100+ agents coordinated simultaneously
|
|
7
|
+
* - Memory usage < 4GB at scale
|
|
8
|
+
* - No agent starvation or deadlocks
|
|
9
|
+
* - Queen Coordinator handles load
|
|
10
|
+
* - Gossip protocol stable at scale
|
|
11
|
+
*/
|
|
12
|
+
import { MetricsCollector, LoadTestReport } from './metrics-collector.js';
|
|
13
|
+
/**
|
|
14
|
+
* Severity levels for bottleneck detection
|
|
15
|
+
*/
|
|
16
|
+
export type BottleneckSeverity = 'low' | 'medium' | 'high' | 'critical';
|
|
17
|
+
/**
|
|
18
|
+
* Result of a single bottleneck check
|
|
19
|
+
*/
|
|
20
|
+
export interface BottleneckResult {
|
|
21
|
+
/** Whether the bottleneck was detected */
|
|
22
|
+
readonly detected: boolean;
|
|
23
|
+
/** Severity of the bottleneck */
|
|
24
|
+
readonly severity: BottleneckSeverity;
|
|
25
|
+
/** Name of the metric being checked */
|
|
26
|
+
readonly metric: string;
|
|
27
|
+
/** Threshold that was exceeded */
|
|
28
|
+
readonly threshold: number;
|
|
29
|
+
/** Actual measured value */
|
|
30
|
+
readonly actual: number;
|
|
31
|
+
/** Recommendation for addressing the bottleneck */
|
|
32
|
+
readonly recommendation: string;
|
|
33
|
+
/** Additional context */
|
|
34
|
+
readonly context?: Record<string, unknown>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Complete bottleneck analysis report
|
|
38
|
+
*/
|
|
39
|
+
export interface BottleneckReport {
|
|
40
|
+
/** Overall assessment */
|
|
41
|
+
readonly overallSeverity: BottleneckSeverity;
|
|
42
|
+
/** Whether any critical bottlenecks were found */
|
|
43
|
+
readonly hasCritical: boolean;
|
|
44
|
+
/** Individual bottleneck results */
|
|
45
|
+
readonly bottlenecks: BottleneckResult[];
|
|
46
|
+
/** Summary statistics */
|
|
47
|
+
readonly summary: {
|
|
48
|
+
readonly totalChecks: number;
|
|
49
|
+
readonly detected: number;
|
|
50
|
+
readonly critical: number;
|
|
51
|
+
readonly high: number;
|
|
52
|
+
readonly medium: number;
|
|
53
|
+
readonly low: number;
|
|
54
|
+
};
|
|
55
|
+
/** Prioritized recommendations */
|
|
56
|
+
readonly recommendations: string[];
|
|
57
|
+
/** Timestamp of analysis */
|
|
58
|
+
readonly timestamp: Date;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Thresholds for bottleneck detection
|
|
62
|
+
*/
|
|
63
|
+
export interface BottleneckThresholds {
|
|
64
|
+
readonly memoryWarning: number;
|
|
65
|
+
readonly memoryCritical: number;
|
|
66
|
+
readonly latencyP95Warning: number;
|
|
67
|
+
readonly latencyP95Critical: number;
|
|
68
|
+
readonly latencyP99Warning: number;
|
|
69
|
+
readonly latencyP99Critical: number;
|
|
70
|
+
readonly agentStarvationTime: number;
|
|
71
|
+
readonly deadlockTimeout: number;
|
|
72
|
+
readonly minTasksPerSecond: number;
|
|
73
|
+
readonly minAgentUtilization: number;
|
|
74
|
+
readonly gossipConvergenceTime: number;
|
|
75
|
+
readonly gossipMaxPartitions: number;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Configuration for bottleneck analyzer
|
|
79
|
+
*/
|
|
80
|
+
export interface BottleneckAnalyzerConfig {
|
|
81
|
+
readonly thresholds: BottleneckThresholds;
|
|
82
|
+
readonly enableDetailedAnalysis: boolean;
|
|
83
|
+
}
|
|
84
|
+
declare const DEFAULT_THRESHOLDS: BottleneckThresholds;
|
|
85
|
+
declare const DEFAULT_CONFIG: BottleneckAnalyzerConfig;
|
|
86
|
+
/**
|
|
87
|
+
* BottleneckAnalyzer - Detects and analyzes performance bottlenecks
|
|
88
|
+
*
|
|
89
|
+
* Checks for:
|
|
90
|
+
* - Memory pressure
|
|
91
|
+
* - Coordination latency
|
|
92
|
+
* - Agent starvation
|
|
93
|
+
* - Deadlocks
|
|
94
|
+
* - Gossip protocol stability
|
|
95
|
+
* - Throughput issues
|
|
96
|
+
*/
|
|
97
|
+
export declare class BottleneckAnalyzer {
|
|
98
|
+
private readonly config;
|
|
99
|
+
constructor(config?: Partial<BottleneckAnalyzerConfig>);
|
|
100
|
+
/**
|
|
101
|
+
* Perform complete bottleneck analysis on collected metrics
|
|
102
|
+
*/
|
|
103
|
+
analyze(metrics: MetricsCollector): BottleneckReport;
|
|
104
|
+
/**
|
|
105
|
+
* Analyze from a load test report
|
|
106
|
+
*/
|
|
107
|
+
analyzeReport(report: LoadTestReport): BottleneckReport;
|
|
108
|
+
/**
|
|
109
|
+
* Check for memory pressure
|
|
110
|
+
*/
|
|
111
|
+
checkMemoryPressure(metrics?: MetricsCollector): BottleneckResult;
|
|
112
|
+
/**
|
|
113
|
+
* Check coordination latency P95
|
|
114
|
+
*/
|
|
115
|
+
checkCoordinationLatency(): BottleneckResult;
|
|
116
|
+
private checkCoordinationLatencyP95;
|
|
117
|
+
private checkCoordinationLatencyP99;
|
|
118
|
+
/**
|
|
119
|
+
* Check for agent starvation
|
|
120
|
+
*/
|
|
121
|
+
checkAgentStarvation(metrics?: MetricsCollector): BottleneckResult;
|
|
122
|
+
/**
|
|
123
|
+
* Check for deadlocks
|
|
124
|
+
*/
|
|
125
|
+
checkDeadlocks(metrics?: MetricsCollector): BottleneckResult;
|
|
126
|
+
/**
|
|
127
|
+
* Check gossip protocol stability
|
|
128
|
+
*/
|
|
129
|
+
checkGossipStability(): BottleneckResult;
|
|
130
|
+
/**
|
|
131
|
+
* Check throughput
|
|
132
|
+
*/
|
|
133
|
+
private checkThroughput;
|
|
134
|
+
private checkMemoryFromReport;
|
|
135
|
+
private checkLatencyP95FromReport;
|
|
136
|
+
private checkLatencyP99FromReport;
|
|
137
|
+
private checkThroughputFromReport;
|
|
138
|
+
private checkSuccessCriteria;
|
|
139
|
+
private generatePrioritizedRecommendations;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a new BottleneckAnalyzer instance
|
|
143
|
+
*/
|
|
144
|
+
export declare function createBottleneckAnalyzer(config?: Partial<BottleneckAnalyzerConfig>): BottleneckAnalyzer;
|
|
145
|
+
/**
|
|
146
|
+
* Create analyzer with custom thresholds
|
|
147
|
+
*/
|
|
148
|
+
export declare function createBottleneckAnalyzerWithThresholds(thresholds: Partial<BottleneckThresholds>): BottleneckAnalyzer;
|
|
149
|
+
export { DEFAULT_THRESHOLDS, DEFAULT_CONFIG };
|
|
150
|
+
//# sourceMappingURL=bottleneck-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottleneck-analyzer.d.ts","sourceRoot":"","sources":["../../../src/testing/load/bottleneck-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Bottleneck Analyzer
|
|
3
|
+
* Detects performance bottlenecks during load testing
|
|
4
|
+
*
|
|
5
|
+
* Issue #177 Targets:
|
|
6
|
+
* - 100+ agents coordinated simultaneously
|
|
7
|
+
* - Memory usage < 4GB at scale
|
|
8
|
+
* - No agent starvation or deadlocks
|
|
9
|
+
* - Queen Coordinator handles load
|
|
10
|
+
* - Gossip protocol stable at scale
|
|
11
|
+
*/
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Default Configuration
|
|
14
|
+
// ============================================================================
|
|
15
|
+
const DEFAULT_THRESHOLDS = {
|
|
16
|
+
// Memory (Issue #177: <4GB)
|
|
17
|
+
memoryWarning: 3 * 1024 * 1024 * 1024, // 3GB
|
|
18
|
+
memoryCritical: 4 * 1024 * 1024 * 1024, // 4GB
|
|
19
|
+
// Coordination latency (Issue #177: <100ms p95)
|
|
20
|
+
latencyP95Warning: 75,
|
|
21
|
+
latencyP95Critical: 100,
|
|
22
|
+
latencyP99Warning: 150,
|
|
23
|
+
latencyP99Critical: 200,
|
|
24
|
+
// Agent health
|
|
25
|
+
agentStarvationTime: 30000, // 30 seconds
|
|
26
|
+
deadlockTimeout: 60000, // 60 seconds
|
|
27
|
+
// Throughput
|
|
28
|
+
minTasksPerSecond: 5,
|
|
29
|
+
minAgentUtilization: 0.5,
|
|
30
|
+
// Gossip protocol
|
|
31
|
+
gossipConvergenceTime: 5000,
|
|
32
|
+
gossipMaxPartitions: 0,
|
|
33
|
+
};
|
|
34
|
+
const DEFAULT_CONFIG = {
|
|
35
|
+
thresholds: DEFAULT_THRESHOLDS,
|
|
36
|
+
enableDetailedAnalysis: true,
|
|
37
|
+
};
|
|
38
|
+
// ============================================================================
|
|
39
|
+
// Bottleneck Analyzer Implementation
|
|
40
|
+
// ============================================================================
|
|
41
|
+
/**
|
|
42
|
+
* BottleneckAnalyzer - Detects and analyzes performance bottlenecks
|
|
43
|
+
*
|
|
44
|
+
* Checks for:
|
|
45
|
+
* - Memory pressure
|
|
46
|
+
* - Coordination latency
|
|
47
|
+
* - Agent starvation
|
|
48
|
+
* - Deadlocks
|
|
49
|
+
* - Gossip protocol stability
|
|
50
|
+
* - Throughput issues
|
|
51
|
+
*/
|
|
52
|
+
export class BottleneckAnalyzer {
|
|
53
|
+
config;
|
|
54
|
+
constructor(config = {}) {
|
|
55
|
+
this.config = {
|
|
56
|
+
...DEFAULT_CONFIG,
|
|
57
|
+
...config,
|
|
58
|
+
thresholds: {
|
|
59
|
+
...DEFAULT_THRESHOLDS,
|
|
60
|
+
...config.thresholds,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// ============================================================================
|
|
65
|
+
// Main Analysis Methods
|
|
66
|
+
// ============================================================================
|
|
67
|
+
/**
|
|
68
|
+
* Perform complete bottleneck analysis on collected metrics
|
|
69
|
+
*/
|
|
70
|
+
analyze(metrics) {
|
|
71
|
+
const bottlenecks = [];
|
|
72
|
+
// Run all checks
|
|
73
|
+
bottlenecks.push(this.checkMemoryPressure(metrics));
|
|
74
|
+
bottlenecks.push(this.checkCoordinationLatencyP95(metrics));
|
|
75
|
+
bottlenecks.push(this.checkCoordinationLatencyP99(metrics));
|
|
76
|
+
bottlenecks.push(this.checkAgentStarvation(metrics));
|
|
77
|
+
bottlenecks.push(this.checkDeadlocks(metrics));
|
|
78
|
+
bottlenecks.push(this.checkThroughput(metrics));
|
|
79
|
+
// Calculate summary
|
|
80
|
+
const detected = bottlenecks.filter(b => b.detected);
|
|
81
|
+
const summary = {
|
|
82
|
+
totalChecks: bottlenecks.length,
|
|
83
|
+
detected: detected.length,
|
|
84
|
+
critical: detected.filter(b => b.severity === 'critical').length,
|
|
85
|
+
high: detected.filter(b => b.severity === 'high').length,
|
|
86
|
+
medium: detected.filter(b => b.severity === 'medium').length,
|
|
87
|
+
low: detected.filter(b => b.severity === 'low').length,
|
|
88
|
+
};
|
|
89
|
+
// Determine overall severity
|
|
90
|
+
let overallSeverity = 'low';
|
|
91
|
+
if (summary.critical > 0) {
|
|
92
|
+
overallSeverity = 'critical';
|
|
93
|
+
}
|
|
94
|
+
else if (summary.high > 0) {
|
|
95
|
+
overallSeverity = 'high';
|
|
96
|
+
}
|
|
97
|
+
else if (summary.medium > 0) {
|
|
98
|
+
overallSeverity = 'medium';
|
|
99
|
+
}
|
|
100
|
+
// Generate prioritized recommendations
|
|
101
|
+
const recommendations = this.generatePrioritizedRecommendations(detected);
|
|
102
|
+
return {
|
|
103
|
+
overallSeverity,
|
|
104
|
+
hasCritical: summary.critical > 0,
|
|
105
|
+
bottlenecks,
|
|
106
|
+
summary,
|
|
107
|
+
recommendations,
|
|
108
|
+
timestamp: new Date(),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Analyze from a load test report
|
|
113
|
+
*/
|
|
114
|
+
analyzeReport(report) {
|
|
115
|
+
const bottlenecks = [];
|
|
116
|
+
// Memory check
|
|
117
|
+
bottlenecks.push(this.checkMemoryFromReport(report));
|
|
118
|
+
// Latency checks
|
|
119
|
+
bottlenecks.push(this.checkLatencyP95FromReport(report));
|
|
120
|
+
bottlenecks.push(this.checkLatencyP99FromReport(report));
|
|
121
|
+
// Throughput check
|
|
122
|
+
bottlenecks.push(this.checkThroughputFromReport(report));
|
|
123
|
+
// Success criteria checks
|
|
124
|
+
bottlenecks.push(this.checkSuccessCriteria(report));
|
|
125
|
+
// Calculate summary
|
|
126
|
+
const detected = bottlenecks.filter(b => b.detected);
|
|
127
|
+
const summary = {
|
|
128
|
+
totalChecks: bottlenecks.length,
|
|
129
|
+
detected: detected.length,
|
|
130
|
+
critical: detected.filter(b => b.severity === 'critical').length,
|
|
131
|
+
high: detected.filter(b => b.severity === 'high').length,
|
|
132
|
+
medium: detected.filter(b => b.severity === 'medium').length,
|
|
133
|
+
low: detected.filter(b => b.severity === 'low').length,
|
|
134
|
+
};
|
|
135
|
+
let overallSeverity = 'low';
|
|
136
|
+
if (summary.critical > 0) {
|
|
137
|
+
overallSeverity = 'critical';
|
|
138
|
+
}
|
|
139
|
+
else if (summary.high > 0) {
|
|
140
|
+
overallSeverity = 'high';
|
|
141
|
+
}
|
|
142
|
+
else if (summary.medium > 0) {
|
|
143
|
+
overallSeverity = 'medium';
|
|
144
|
+
}
|
|
145
|
+
const recommendations = this.generatePrioritizedRecommendations(detected);
|
|
146
|
+
return {
|
|
147
|
+
overallSeverity,
|
|
148
|
+
hasCritical: summary.critical > 0,
|
|
149
|
+
bottlenecks,
|
|
150
|
+
summary,
|
|
151
|
+
recommendations,
|
|
152
|
+
timestamp: new Date(),
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
// ============================================================================
|
|
156
|
+
// Individual Check Methods
|
|
157
|
+
// ============================================================================
|
|
158
|
+
/**
|
|
159
|
+
* Check for memory pressure
|
|
160
|
+
*/
|
|
161
|
+
checkMemoryPressure(metrics) {
|
|
162
|
+
const actual = metrics?.getMaxMemoryUsage() ?? process.memoryUsage().heapUsed;
|
|
163
|
+
const { memoryWarning, memoryCritical } = this.config.thresholds;
|
|
164
|
+
const detected = actual >= memoryWarning;
|
|
165
|
+
let severity = 'low';
|
|
166
|
+
let recommendation = 'Memory usage is within acceptable limits.';
|
|
167
|
+
if (actual >= memoryCritical) {
|
|
168
|
+
severity = 'critical';
|
|
169
|
+
recommendation =
|
|
170
|
+
'Memory usage exceeds 4GB limit. Implement agent pooling, reduce per-agent state, ' +
|
|
171
|
+
'or decrease concurrent agent count.';
|
|
172
|
+
}
|
|
173
|
+
else if (actual >= memoryWarning) {
|
|
174
|
+
severity = 'high';
|
|
175
|
+
recommendation =
|
|
176
|
+
'Memory usage approaching critical threshold. Consider optimizing agent memory ' +
|
|
177
|
+
'footprint or implementing memory pressure relief mechanisms.';
|
|
178
|
+
}
|
|
179
|
+
return {
|
|
180
|
+
detected,
|
|
181
|
+
severity,
|
|
182
|
+
metric: 'memory_pressure',
|
|
183
|
+
threshold: memoryCritical,
|
|
184
|
+
actual,
|
|
185
|
+
recommendation,
|
|
186
|
+
context: {
|
|
187
|
+
usedGB: actual / 1024 / 1024 / 1024,
|
|
188
|
+
warningThresholdGB: memoryWarning / 1024 / 1024 / 1024,
|
|
189
|
+
criticalThresholdGB: memoryCritical / 1024 / 1024 / 1024,
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Check coordination latency P95
|
|
195
|
+
*/
|
|
196
|
+
checkCoordinationLatency() {
|
|
197
|
+
return this.checkCoordinationLatencyP95();
|
|
198
|
+
}
|
|
199
|
+
checkCoordinationLatencyP95(metrics) {
|
|
200
|
+
const actual = metrics?.getP95CoordinationLatency() ?? 0;
|
|
201
|
+
const { latencyP95Warning, latencyP95Critical } = this.config.thresholds;
|
|
202
|
+
const detected = actual >= latencyP95Warning;
|
|
203
|
+
let severity = 'low';
|
|
204
|
+
let recommendation = 'P95 coordination latency is within acceptable limits.';
|
|
205
|
+
if (actual >= latencyP95Critical) {
|
|
206
|
+
severity = 'critical';
|
|
207
|
+
recommendation =
|
|
208
|
+
'P95 coordination latency exceeds 100ms target. Optimize gossip protocol, ' +
|
|
209
|
+
'reduce message size, or implement batching.';
|
|
210
|
+
}
|
|
211
|
+
else if (actual >= latencyP95Warning) {
|
|
212
|
+
severity = 'medium';
|
|
213
|
+
recommendation =
|
|
214
|
+
'P95 coordination latency approaching target. Monitor closely and consider ' +
|
|
215
|
+
'proactive optimization.';
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
detected,
|
|
219
|
+
severity,
|
|
220
|
+
metric: 'coordination_latency_p95',
|
|
221
|
+
threshold: latencyP95Critical,
|
|
222
|
+
actual,
|
|
223
|
+
recommendation,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
checkCoordinationLatencyP99(metrics) {
|
|
227
|
+
const actual = metrics?.getP99CoordinationLatency() ?? 0;
|
|
228
|
+
const { latencyP99Warning, latencyP99Critical } = this.config.thresholds;
|
|
229
|
+
const detected = actual >= latencyP99Warning;
|
|
230
|
+
let severity = 'low';
|
|
231
|
+
let recommendation = 'P99 coordination latency is within acceptable limits.';
|
|
232
|
+
if (actual >= latencyP99Critical) {
|
|
233
|
+
severity = 'high';
|
|
234
|
+
recommendation =
|
|
235
|
+
'P99 coordination latency indicates outliers. Investigate specific agents ' +
|
|
236
|
+
'or network conditions causing delays.';
|
|
237
|
+
}
|
|
238
|
+
else if (actual >= latencyP99Warning) {
|
|
239
|
+
severity = 'medium';
|
|
240
|
+
recommendation =
|
|
241
|
+
'P99 coordination latency elevated. Some agents may be experiencing delays.';
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
detected,
|
|
245
|
+
severity,
|
|
246
|
+
metric: 'coordination_latency_p99',
|
|
247
|
+
threshold: latencyP99Critical,
|
|
248
|
+
actual,
|
|
249
|
+
recommendation,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Check for agent starvation
|
|
254
|
+
*/
|
|
255
|
+
checkAgentStarvation(metrics) {
|
|
256
|
+
const hasStarvation = metrics?.hasAgentStarvation() ?? false;
|
|
257
|
+
return {
|
|
258
|
+
detected: hasStarvation,
|
|
259
|
+
severity: hasStarvation ? 'high' : 'low',
|
|
260
|
+
metric: 'agent_starvation',
|
|
261
|
+
threshold: this.config.thresholds.agentStarvationTime,
|
|
262
|
+
actual: hasStarvation ? 1 : 0,
|
|
263
|
+
recommendation: hasStarvation
|
|
264
|
+
? 'Agent starvation detected. Agents are idle without tasks. ' +
|
|
265
|
+
'Review task distribution algorithm and work stealing configuration.'
|
|
266
|
+
: 'No agent starvation detected.',
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Check for deadlocks
|
|
271
|
+
*/
|
|
272
|
+
checkDeadlocks(metrics) {
|
|
273
|
+
const hasDeadlocks = metrics?.hasDeadlocks() ?? false;
|
|
274
|
+
return {
|
|
275
|
+
detected: hasDeadlocks,
|
|
276
|
+
severity: hasDeadlocks ? 'critical' : 'low',
|
|
277
|
+
metric: 'deadlock_detection',
|
|
278
|
+
threshold: this.config.thresholds.deadlockTimeout,
|
|
279
|
+
actual: hasDeadlocks ? 1 : 0,
|
|
280
|
+
recommendation: hasDeadlocks
|
|
281
|
+
? 'Potential deadlock detected. Tasks running for extended period. ' +
|
|
282
|
+
'Review lock ordering and add timeout mechanisms.'
|
|
283
|
+
: 'No deadlocks detected.',
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Check gossip protocol stability
|
|
288
|
+
*/
|
|
289
|
+
checkGossipStability() {
|
|
290
|
+
// This would integrate with actual gossip protocol metrics
|
|
291
|
+
// For now, return a placeholder that can be overridden
|
|
292
|
+
return {
|
|
293
|
+
detected: false,
|
|
294
|
+
severity: 'low',
|
|
295
|
+
metric: 'gossip_stability',
|
|
296
|
+
threshold: this.config.thresholds.gossipMaxPartitions,
|
|
297
|
+
actual: 0,
|
|
298
|
+
recommendation: 'Gossip protocol stability check requires integration with gossip metrics.',
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Check throughput
|
|
303
|
+
*/
|
|
304
|
+
checkThroughput(metrics) {
|
|
305
|
+
const throughput = metrics?.getThroughput();
|
|
306
|
+
const actual = throughput?.tasksPerSecond ?? 0;
|
|
307
|
+
const threshold = this.config.thresholds.minTasksPerSecond;
|
|
308
|
+
const detected = actual < threshold && actual > 0;
|
|
309
|
+
return {
|
|
310
|
+
detected,
|
|
311
|
+
severity: detected ? 'medium' : 'low',
|
|
312
|
+
metric: 'throughput',
|
|
313
|
+
threshold,
|
|
314
|
+
actual,
|
|
315
|
+
recommendation: detected
|
|
316
|
+
? `Task throughput (${actual.toFixed(1)}/s) below minimum (${threshold}/s). ` +
|
|
317
|
+
'Consider parallelizing task execution or optimizing task handlers.'
|
|
318
|
+
: 'Task throughput is acceptable.',
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
// ============================================================================
|
|
322
|
+
// Report-based Check Methods
|
|
323
|
+
// ============================================================================
|
|
324
|
+
checkMemoryFromReport(report) {
|
|
325
|
+
const actual = report.resources.memoryPeak;
|
|
326
|
+
const { memoryCritical } = this.config.thresholds;
|
|
327
|
+
return {
|
|
328
|
+
detected: actual >= memoryCritical,
|
|
329
|
+
severity: actual >= memoryCritical ? 'critical' : 'low',
|
|
330
|
+
metric: 'memory_pressure',
|
|
331
|
+
threshold: memoryCritical,
|
|
332
|
+
actual,
|
|
333
|
+
recommendation: actual >= memoryCritical
|
|
334
|
+
? 'Memory exceeded 4GB limit during test.'
|
|
335
|
+
: 'Memory usage within limits.',
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
checkLatencyP95FromReport(report) {
|
|
339
|
+
const actual = report.performance.coordinationLatency.p95;
|
|
340
|
+
const { latencyP95Critical } = this.config.thresholds;
|
|
341
|
+
return {
|
|
342
|
+
detected: actual >= latencyP95Critical,
|
|
343
|
+
severity: actual >= latencyP95Critical ? 'critical' : 'low',
|
|
344
|
+
metric: 'coordination_latency_p95',
|
|
345
|
+
threshold: latencyP95Critical,
|
|
346
|
+
actual,
|
|
347
|
+
recommendation: actual >= latencyP95Critical
|
|
348
|
+
? 'P95 coordination latency exceeded 100ms target.'
|
|
349
|
+
: 'P95 latency within target.',
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
checkLatencyP99FromReport(report) {
|
|
353
|
+
const actual = report.performance.coordinationLatency.p99;
|
|
354
|
+
const { latencyP99Critical } = this.config.thresholds;
|
|
355
|
+
return {
|
|
356
|
+
detected: actual >= latencyP99Critical,
|
|
357
|
+
severity: actual >= latencyP99Critical ? 'high' : 'low',
|
|
358
|
+
metric: 'coordination_latency_p99',
|
|
359
|
+
threshold: latencyP99Critical,
|
|
360
|
+
actual,
|
|
361
|
+
recommendation: actual >= latencyP99Critical
|
|
362
|
+
? 'P99 coordination latency indicates significant outliers.'
|
|
363
|
+
: 'P99 latency acceptable.',
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
checkThroughputFromReport(report) {
|
|
367
|
+
const actual = report.performance.throughput.tasksPerSecond;
|
|
368
|
+
const threshold = this.config.thresholds.minTasksPerSecond;
|
|
369
|
+
return {
|
|
370
|
+
detected: actual < threshold && actual > 0,
|
|
371
|
+
severity: actual < threshold ? 'medium' : 'low',
|
|
372
|
+
metric: 'throughput',
|
|
373
|
+
threshold,
|
|
374
|
+
actual,
|
|
375
|
+
recommendation: actual < threshold
|
|
376
|
+
? 'Throughput below minimum target.'
|
|
377
|
+
: 'Throughput acceptable.',
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
checkSuccessCriteria(report) {
|
|
381
|
+
const criteria = report.summary.successCriteria;
|
|
382
|
+
const failedCriteria = Object.entries(criteria)
|
|
383
|
+
.filter(([_, passed]) => !passed)
|
|
384
|
+
.map(([name]) => name);
|
|
385
|
+
return {
|
|
386
|
+
detected: failedCriteria.length > 0,
|
|
387
|
+
severity: failedCriteria.length > 0 ? 'high' : 'low',
|
|
388
|
+
metric: 'success_criteria',
|
|
389
|
+
threshold: 0,
|
|
390
|
+
actual: failedCriteria.length,
|
|
391
|
+
recommendation: failedCriteria.length > 0
|
|
392
|
+
? `Failed criteria: ${failedCriteria.join(', ')}`
|
|
393
|
+
: 'All success criteria met.',
|
|
394
|
+
context: { failedCriteria },
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
// ============================================================================
|
|
398
|
+
// Private Methods
|
|
399
|
+
// ============================================================================
|
|
400
|
+
generatePrioritizedRecommendations(detectedBottlenecks) {
|
|
401
|
+
// Sort by severity (critical first)
|
|
402
|
+
const priorityMap = {
|
|
403
|
+
critical: 0,
|
|
404
|
+
high: 1,
|
|
405
|
+
medium: 2,
|
|
406
|
+
low: 3,
|
|
407
|
+
};
|
|
408
|
+
const sorted = [...detectedBottlenecks].sort((a, b) => priorityMap[a.severity] - priorityMap[b.severity]);
|
|
409
|
+
// Extract unique recommendations
|
|
410
|
+
const seen = new Set();
|
|
411
|
+
const recommendations = [];
|
|
412
|
+
for (const bottleneck of sorted) {
|
|
413
|
+
if (!seen.has(bottleneck.recommendation)) {
|
|
414
|
+
seen.add(bottleneck.recommendation);
|
|
415
|
+
recommendations.push(`[${bottleneck.severity.toUpperCase()}] ${bottleneck.metric}: ${bottleneck.recommendation}`);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
return recommendations;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
// ============================================================================
|
|
422
|
+
// Factory Functions
|
|
423
|
+
// ============================================================================
|
|
424
|
+
/**
|
|
425
|
+
* Create a new BottleneckAnalyzer instance
|
|
426
|
+
*/
|
|
427
|
+
export function createBottleneckAnalyzer(config) {
|
|
428
|
+
return new BottleneckAnalyzer(config);
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Create analyzer with custom thresholds
|
|
432
|
+
*/
|
|
433
|
+
export function createBottleneckAnalyzerWithThresholds(thresholds) {
|
|
434
|
+
return new BottleneckAnalyzer({
|
|
435
|
+
thresholds: { ...DEFAULT_THRESHOLDS, ...thresholds },
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
// ============================================================================
|
|
439
|
+
// Exports
|
|
440
|
+
// ============================================================================
|
|
441
|
+
export { DEFAULT_THRESHOLDS, DEFAULT_CONFIG };
|
|
442
|
+
//# sourceMappingURL=bottleneck-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottleneck-analyzer.js","sourceRoot":"","sources":["../../../src/testing/load/bottleneck-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Load Testing Framework
|
|
3
|
+
* Barrel export for load testing utilities
|
|
4
|
+
*
|
|
5
|
+
* Issue #177 Targets:
|
|
6
|
+
* - 100+ agents coordinated simultaneously
|
|
7
|
+
* - Memory usage < 4GB at scale
|
|
8
|
+
* - No agent starvation or deadlocks
|
|
9
|
+
* - Coordination latency < 100ms p95
|
|
10
|
+
*/
|
|
11
|
+
export { AgentLoadTester, createAgentLoadTester, createLoadTesterForTarget, DEFAULT_LOAD_TEST_CONFIG, DEFAULT_SUCCESS_CRITERIA, WORKLOAD_PROFILES, SCENARIO_RAMP_UP_100, SCENARIO_BURST_100, SCENARIO_CHURN_100, SCENARIO_STRESS_150, } from './agent-load-tester.js';
|
|
12
|
+
export type { WorkloadProfile, AgentWorkload, LoadTestConfig, LoadTestResult, LoadTestStep, LoadTestScenario, SuccessCriteria, } from './agent-load-tester.js';
|
|
13
|
+
export { MetricsCollector, createMetricsCollector, } from './metrics-collector.js';
|
|
14
|
+
export type { AgentLifecycleEvent, TaskEvent, CoordinationEvent, MemorySnapshot, LatencyPercentiles, ThroughputMetrics, ResourceMetrics, LoadTestReport, MetricsCollectorConfig, } from './metrics-collector.js';
|
|
15
|
+
export { BottleneckAnalyzer, createBottleneckAnalyzer, createBottleneckAnalyzerWithThresholds, DEFAULT_THRESHOLDS, DEFAULT_CONFIG as DEFAULT_ANALYZER_CONFIG, } from './bottleneck-analyzer.js';
|
|
16
|
+
export type { BottleneckSeverity, BottleneckResult, BottleneckReport, BottleneckThresholds, BottleneckAnalyzerConfig, } from './bottleneck-analyzer.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/load/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,sCAAsC,EACtC,kBAAkB,EAClB,cAAc,IAAI,uBAAuB,GAC1C,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Load Testing Framework
|
|
3
|
+
* Barrel export for load testing utilities
|
|
4
|
+
*
|
|
5
|
+
* Issue #177 Targets:
|
|
6
|
+
* - 100+ agents coordinated simultaneously
|
|
7
|
+
* - Memory usage < 4GB at scale
|
|
8
|
+
* - No agent starvation or deadlocks
|
|
9
|
+
* - Coordination latency < 100ms p95
|
|
10
|
+
*/
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Agent Load Tester
|
|
13
|
+
// ============================================================================
|
|
14
|
+
export { AgentLoadTester, createAgentLoadTester, createLoadTesterForTarget, DEFAULT_LOAD_TEST_CONFIG, DEFAULT_SUCCESS_CRITERIA, WORKLOAD_PROFILES, SCENARIO_RAMP_UP_100, SCENARIO_BURST_100, SCENARIO_CHURN_100, SCENARIO_STRESS_150, } from './agent-load-tester.js';
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Metrics Collector
|
|
17
|
+
// ============================================================================
|
|
18
|
+
export { MetricsCollector, createMetricsCollector, } from './metrics-collector.js';
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Bottleneck Analyzer
|
|
21
|
+
// ============================================================================
|
|
22
|
+
export { BottleneckAnalyzer, createBottleneckAnalyzer, createBottleneckAnalyzerWithThresholds, DEFAULT_THRESHOLDS, DEFAULT_CONFIG as DEFAULT_ANALYZER_CONFIG, } from './bottleneck-analyzer.js';
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/load/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAYhC,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAchC,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,sCAAsC,EACtC,kBAAkB,EAClB,cAAc,IAAI,uBAAuB,GAC1C,MAAM,0BAA0B,CAAC"}
|