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,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Protocol Method Definitions
|
|
3
|
+
*
|
|
4
|
+
* Defines all A2A JSON-RPC methods, their parameters, and return types.
|
|
5
|
+
* Methods follow the A2A v0.3 specification.
|
|
6
|
+
*
|
|
7
|
+
* @module adapters/a2a/jsonrpc/methods
|
|
8
|
+
* @see https://a2a-protocol.org/latest/specification/
|
|
9
|
+
*/
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Method Names
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* A2A method names as defined in the specification.
|
|
15
|
+
*/
|
|
16
|
+
export const A2A_METHODS = {
|
|
17
|
+
// Messaging methods
|
|
18
|
+
/** Send a message to the agent and receive a complete response. */
|
|
19
|
+
MESSAGE_SEND: 'message/send',
|
|
20
|
+
/** Send a message to the agent and stream responses via SSE. */
|
|
21
|
+
MESSAGE_STREAM: 'message/stream',
|
|
22
|
+
// Task management methods
|
|
23
|
+
/** Get task status and artifacts by ID. */
|
|
24
|
+
TASKS_GET: 'tasks/get',
|
|
25
|
+
/** List tasks with optional filtering. */
|
|
26
|
+
TASKS_LIST: 'tasks/list',
|
|
27
|
+
/** Cancel a running task. */
|
|
28
|
+
TASKS_CANCEL: 'tasks/cancel',
|
|
29
|
+
/** Resubmit a failed or canceled task. */
|
|
30
|
+
TASKS_RESUBMIT: 'tasks/resubmit',
|
|
31
|
+
// Push notification methods
|
|
32
|
+
/** Configure push notification settings for a task. */
|
|
33
|
+
TASKS_PUSH_NOTIFICATION_SET: 'tasks/pushNotification/set',
|
|
34
|
+
/** Get current push notification configuration. */
|
|
35
|
+
TASKS_PUSH_NOTIFICATION_GET: 'tasks/pushNotification/get',
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Method descriptions for documentation and validation.
|
|
39
|
+
*/
|
|
40
|
+
export const A2A_METHOD_DESCRIPTIONS = {
|
|
41
|
+
[A2A_METHODS.MESSAGE_SEND]: 'Send a message to the agent and receive a complete response',
|
|
42
|
+
[A2A_METHODS.MESSAGE_STREAM]: 'Send a message to the agent and stream responses via SSE',
|
|
43
|
+
[A2A_METHODS.TASKS_GET]: 'Get task status and artifacts by ID',
|
|
44
|
+
[A2A_METHODS.TASKS_LIST]: 'List tasks with optional filtering',
|
|
45
|
+
[A2A_METHODS.TASKS_CANCEL]: 'Cancel a running task',
|
|
46
|
+
[A2A_METHODS.TASKS_RESUBMIT]: 'Resubmit a failed or canceled task',
|
|
47
|
+
[A2A_METHODS.TASKS_PUSH_NOTIFICATION_SET]: 'Configure push notification settings for a task',
|
|
48
|
+
[A2A_METHODS.TASKS_PUSH_NOTIFICATION_GET]: 'Get current push notification configuration',
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Terminal task statuses (task cannot change from these).
|
|
52
|
+
*/
|
|
53
|
+
export const TERMINAL_STATUSES = ['completed', 'failed', 'canceled', 'rejected'];
|
|
54
|
+
/**
|
|
55
|
+
* Complete method metadata registry.
|
|
56
|
+
*/
|
|
57
|
+
export const METHOD_METADATA = {
|
|
58
|
+
[A2A_METHODS.MESSAGE_SEND]: {
|
|
59
|
+
name: A2A_METHODS.MESSAGE_SEND,
|
|
60
|
+
description: A2A_METHOD_DESCRIPTIONS[A2A_METHODS.MESSAGE_SEND],
|
|
61
|
+
paramsRequired: true,
|
|
62
|
+
streaming: false,
|
|
63
|
+
authRequired: false,
|
|
64
|
+
},
|
|
65
|
+
[A2A_METHODS.MESSAGE_STREAM]: {
|
|
66
|
+
name: A2A_METHODS.MESSAGE_STREAM,
|
|
67
|
+
description: A2A_METHOD_DESCRIPTIONS[A2A_METHODS.MESSAGE_STREAM],
|
|
68
|
+
paramsRequired: true,
|
|
69
|
+
streaming: true,
|
|
70
|
+
authRequired: false,
|
|
71
|
+
requiredCapabilities: ['streaming'],
|
|
72
|
+
},
|
|
73
|
+
[A2A_METHODS.TASKS_GET]: {
|
|
74
|
+
name: A2A_METHODS.TASKS_GET,
|
|
75
|
+
description: A2A_METHOD_DESCRIPTIONS[A2A_METHODS.TASKS_GET],
|
|
76
|
+
paramsRequired: true,
|
|
77
|
+
streaming: false,
|
|
78
|
+
authRequired: false,
|
|
79
|
+
},
|
|
80
|
+
[A2A_METHODS.TASKS_LIST]: {
|
|
81
|
+
name: A2A_METHODS.TASKS_LIST,
|
|
82
|
+
description: A2A_METHOD_DESCRIPTIONS[A2A_METHODS.TASKS_LIST],
|
|
83
|
+
paramsRequired: false,
|
|
84
|
+
streaming: false,
|
|
85
|
+
authRequired: false,
|
|
86
|
+
},
|
|
87
|
+
[A2A_METHODS.TASKS_CANCEL]: {
|
|
88
|
+
name: A2A_METHODS.TASKS_CANCEL,
|
|
89
|
+
description: A2A_METHOD_DESCRIPTIONS[A2A_METHODS.TASKS_CANCEL],
|
|
90
|
+
paramsRequired: true,
|
|
91
|
+
streaming: false,
|
|
92
|
+
authRequired: false,
|
|
93
|
+
},
|
|
94
|
+
[A2A_METHODS.TASKS_RESUBMIT]: {
|
|
95
|
+
name: A2A_METHODS.TASKS_RESUBMIT,
|
|
96
|
+
description: A2A_METHOD_DESCRIPTIONS[A2A_METHODS.TASKS_RESUBMIT],
|
|
97
|
+
paramsRequired: true,
|
|
98
|
+
streaming: false,
|
|
99
|
+
authRequired: false,
|
|
100
|
+
},
|
|
101
|
+
[A2A_METHODS.TASKS_PUSH_NOTIFICATION_SET]: {
|
|
102
|
+
name: A2A_METHODS.TASKS_PUSH_NOTIFICATION_SET,
|
|
103
|
+
description: A2A_METHOD_DESCRIPTIONS[A2A_METHODS.TASKS_PUSH_NOTIFICATION_SET],
|
|
104
|
+
paramsRequired: true,
|
|
105
|
+
streaming: false,
|
|
106
|
+
authRequired: false,
|
|
107
|
+
requiredCapabilities: ['pushNotifications'],
|
|
108
|
+
},
|
|
109
|
+
[A2A_METHODS.TASKS_PUSH_NOTIFICATION_GET]: {
|
|
110
|
+
name: A2A_METHODS.TASKS_PUSH_NOTIFICATION_GET,
|
|
111
|
+
description: A2A_METHOD_DESCRIPTIONS[A2A_METHODS.TASKS_PUSH_NOTIFICATION_GET],
|
|
112
|
+
paramsRequired: true,
|
|
113
|
+
streaming: false,
|
|
114
|
+
authRequired: false,
|
|
115
|
+
requiredCapabilities: ['pushNotifications'],
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
// ============================================================================
|
|
119
|
+
// Validation Utilities
|
|
120
|
+
// ============================================================================
|
|
121
|
+
/**
|
|
122
|
+
* Check if a string is a valid A2A method name.
|
|
123
|
+
*/
|
|
124
|
+
export function isValidMethod(method) {
|
|
125
|
+
return Object.values(A2A_METHODS).includes(method);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get method metadata by name.
|
|
129
|
+
*/
|
|
130
|
+
export function getMethodMetadata(method) {
|
|
131
|
+
if (!isValidMethod(method)) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
return METHOD_METADATA[method];
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Check if a method requires parameters.
|
|
138
|
+
*/
|
|
139
|
+
export function methodRequiresParams(method) {
|
|
140
|
+
const metadata = getMethodMetadata(method);
|
|
141
|
+
return metadata?.paramsRequired ?? true;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Check if a method supports streaming.
|
|
145
|
+
*/
|
|
146
|
+
export function isStreamingMethod(method) {
|
|
147
|
+
const metadata = getMethodMetadata(method);
|
|
148
|
+
return metadata?.streaming ?? false;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get all available method names.
|
|
152
|
+
*/
|
|
153
|
+
export function getAllMethods() {
|
|
154
|
+
return Object.values(A2A_METHODS);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get methods by category.
|
|
158
|
+
*/
|
|
159
|
+
export function getMethodsByCategory(category) {
|
|
160
|
+
switch (category) {
|
|
161
|
+
case 'messaging':
|
|
162
|
+
return [A2A_METHODS.MESSAGE_SEND, A2A_METHODS.MESSAGE_STREAM];
|
|
163
|
+
case 'tasks':
|
|
164
|
+
return [
|
|
165
|
+
A2A_METHODS.TASKS_GET,
|
|
166
|
+
A2A_METHODS.TASKS_LIST,
|
|
167
|
+
A2A_METHODS.TASKS_CANCEL,
|
|
168
|
+
A2A_METHODS.TASKS_RESUBMIT,
|
|
169
|
+
];
|
|
170
|
+
case 'notifications':
|
|
171
|
+
return [A2A_METHODS.TASKS_PUSH_NOTIFICATION_SET, A2A_METHODS.TASKS_PUSH_NOTIFICATION_GET];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Check if a task status is terminal (cannot change).
|
|
176
|
+
*/
|
|
177
|
+
export function isTerminalStatus(status) {
|
|
178
|
+
return TERMINAL_STATUSES.includes(status);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Validate task status transition.
|
|
182
|
+
*/
|
|
183
|
+
export function isValidStatusTransition(from, to) {
|
|
184
|
+
// Terminal states cannot transition
|
|
185
|
+
if (isTerminalStatus(from)) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
// Valid transitions
|
|
189
|
+
const validTransitions = {
|
|
190
|
+
submitted: ['working', 'rejected', 'canceled'],
|
|
191
|
+
working: ['completed', 'failed', 'canceled', 'input_required', 'auth_required'],
|
|
192
|
+
input_required: ['working', 'canceled', 'failed'],
|
|
193
|
+
auth_required: ['working', 'canceled', 'failed'],
|
|
194
|
+
completed: [],
|
|
195
|
+
failed: [],
|
|
196
|
+
canceled: [],
|
|
197
|
+
rejected: [],
|
|
198
|
+
};
|
|
199
|
+
return validTransitions[from]?.includes(to) ?? false;
|
|
200
|
+
}
|
|
201
|
+
// ============================================================================
|
|
202
|
+
// Type Guards
|
|
203
|
+
// ============================================================================
|
|
204
|
+
/**
|
|
205
|
+
* Type guard for TextPart.
|
|
206
|
+
*/
|
|
207
|
+
export function isTextPart(part) {
|
|
208
|
+
return part.type === 'text';
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Type guard for FilePart.
|
|
212
|
+
*/
|
|
213
|
+
export function isFilePart(part) {
|
|
214
|
+
return part.type === 'file';
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Type guard for DataPart.
|
|
218
|
+
*/
|
|
219
|
+
export function isDataPart(part) {
|
|
220
|
+
return part.type === 'data';
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Extract text content from message parts.
|
|
224
|
+
*/
|
|
225
|
+
export function extractTextFromParts(parts) {
|
|
226
|
+
return parts
|
|
227
|
+
.filter(isTextPart)
|
|
228
|
+
.map((p) => p.text)
|
|
229
|
+
.join('\n');
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Create a simple text message.
|
|
233
|
+
*/
|
|
234
|
+
export function createTextMessage(text, role = 'user') {
|
|
235
|
+
return {
|
|
236
|
+
role,
|
|
237
|
+
parts: [{ type: 'text', text }],
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Create a data message.
|
|
242
|
+
*/
|
|
243
|
+
export function createDataMessage(data, role = 'user') {
|
|
244
|
+
return {
|
|
245
|
+
role,
|
|
246
|
+
parts: [{ type: 'data', data }],
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=methods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../../src/adapters/a2a/jsonrpc/methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Push Notifications Module
|
|
3
|
+
*
|
|
4
|
+
* Provides webhook-based push notifications for A2A task events.
|
|
5
|
+
* Implements the A2A protocol's pushNotifications capability.
|
|
6
|
+
*
|
|
7
|
+
* @module adapters/a2a/notifications
|
|
8
|
+
* @see https://a2a-protocol.org/latest/specification/
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import {
|
|
13
|
+
* createWebhookService,
|
|
14
|
+
* generateSignatureHeader,
|
|
15
|
+
* verifySignature,
|
|
16
|
+
* } from './notifications';
|
|
17
|
+
*
|
|
18
|
+
* // Create webhook service
|
|
19
|
+
* const webhookService = createWebhookService();
|
|
20
|
+
*
|
|
21
|
+
* // Subscribe to task notifications
|
|
22
|
+
* webhookService.subscribe('task-123', {
|
|
23
|
+
* url: 'https://example.com/webhooks/a2a',
|
|
24
|
+
* secret: 'webhook-secret',
|
|
25
|
+
* events: ['task.completed', 'task.failed'],
|
|
26
|
+
* timeout: 30000,
|
|
27
|
+
* maxRetries: 5,
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Notify on state change
|
|
31
|
+
* await webhookService.notifyStateChange('task-123', 'completed', 'working');
|
|
32
|
+
*
|
|
33
|
+
* // Verify incoming webhook signature (on receiver side)
|
|
34
|
+
* const result = verifySignature(
|
|
35
|
+
* requestBody,
|
|
36
|
+
* request.headers['X-A2A-Signature'],
|
|
37
|
+
* 'webhook-secret'
|
|
38
|
+
* );
|
|
39
|
+
* if (!result.valid) {
|
|
40
|
+
* throw new Error(result.error);
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export { SIGNATURE_HEADER, SIGNATURE_VERSION, DEFAULT_MAX_AGE_MS, MIN_TIMESTAMP, type ParsedSignature, type VerificationResult, generateSignature, generateSignatureHeader, parseSignatureHeader, verifySignature, isValidSignature, } from './signature.js';
|
|
45
|
+
export { type SubscriptionStatus, type Subscription, type CreateSubscriptionOptions, type UpdateSubscriptionOptions, type SubscriptionQueryOptions, type SubscriptionStats, type SubscriptionStoreConfig, DEFAULT_SUBSCRIPTION_STORE_CONFIG, SubscriptionStore, createSubscriptionStore, } from './subscription-store.js';
|
|
46
|
+
export { type RetryConfig, type PendingDelivery, type DeliveryAttemptResult, type QueueStats, type RetryQueueConfig, DEFAULT_RETRY_CONFIG, DEFAULT_QUEUE_CONFIG, RetryQueue, createRetryQueue, } from './retry-queue.js';
|
|
47
|
+
export { type WebhookEvent, type WebhookConfig, type WebhookPayload, type WebhookEventData, type DeliveryResult, type WebhookServiceConfig, type HttpClient, type HttpResponse, type WebhookMetrics, DEFAULT_WEBHOOK_CONFIG, DEFAULT_SERVICE_CONFIG, statusToEvent, WebhookService, createWebhookService, } from './webhook-service.js';
|
|
48
|
+
/**
|
|
49
|
+
* All webhook event types
|
|
50
|
+
*/
|
|
51
|
+
export declare const WEBHOOK_EVENTS: readonly ["task.submitted", "task.working", "task.completed", "task.failed", "task.canceled", "task.input_required", "task.auth_required", "task.rejected", "task.artifact_created"];
|
|
52
|
+
/**
|
|
53
|
+
* Task state change events
|
|
54
|
+
*/
|
|
55
|
+
export declare const STATE_CHANGE_EVENTS: readonly ["task.submitted", "task.working", "task.completed", "task.failed", "task.canceled", "task.input_required", "task.auth_required", "task.rejected"];
|
|
56
|
+
/**
|
|
57
|
+
* Terminal state events (task is complete)
|
|
58
|
+
*/
|
|
59
|
+
export declare const TERMINAL_EVENTS: readonly ["task.completed", "task.failed", "task.canceled", "task.rejected"];
|
|
60
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2a/notifications/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAMH,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,iCAAiC,EACjC,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAM9B;;GAEG;AACH,eAAO,MAAM,cAAc,sLAUjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,6JAStB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe,8EAKlB,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Push Notifications Module
|
|
3
|
+
*
|
|
4
|
+
* Provides webhook-based push notifications for A2A task events.
|
|
5
|
+
* Implements the A2A protocol's pushNotifications capability.
|
|
6
|
+
*
|
|
7
|
+
* @module adapters/a2a/notifications
|
|
8
|
+
* @see https://a2a-protocol.org/latest/specification/
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import {
|
|
13
|
+
* createWebhookService,
|
|
14
|
+
* generateSignatureHeader,
|
|
15
|
+
* verifySignature,
|
|
16
|
+
* } from './notifications';
|
|
17
|
+
*
|
|
18
|
+
* // Create webhook service
|
|
19
|
+
* const webhookService = createWebhookService();
|
|
20
|
+
*
|
|
21
|
+
* // Subscribe to task notifications
|
|
22
|
+
* webhookService.subscribe('task-123', {
|
|
23
|
+
* url: 'https://example.com/webhooks/a2a',
|
|
24
|
+
* secret: 'webhook-secret',
|
|
25
|
+
* events: ['task.completed', 'task.failed'],
|
|
26
|
+
* timeout: 30000,
|
|
27
|
+
* maxRetries: 5,
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Notify on state change
|
|
31
|
+
* await webhookService.notifyStateChange('task-123', 'completed', 'working');
|
|
32
|
+
*
|
|
33
|
+
* // Verify incoming webhook signature (on receiver side)
|
|
34
|
+
* const result = verifySignature(
|
|
35
|
+
* requestBody,
|
|
36
|
+
* request.headers['X-A2A-Signature'],
|
|
37
|
+
* 'webhook-secret'
|
|
38
|
+
* );
|
|
39
|
+
* if (!result.valid) {
|
|
40
|
+
* throw new Error(result.error);
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// Signature Utilities
|
|
46
|
+
// ============================================================================
|
|
47
|
+
export { SIGNATURE_HEADER, SIGNATURE_VERSION, DEFAULT_MAX_AGE_MS, MIN_TIMESTAMP, generateSignature, generateSignatureHeader, parseSignatureHeader, verifySignature, isValidSignature, } from './signature.js';
|
|
48
|
+
// ============================================================================
|
|
49
|
+
// Subscription Store
|
|
50
|
+
// ============================================================================
|
|
51
|
+
export { DEFAULT_SUBSCRIPTION_STORE_CONFIG, SubscriptionStore, createSubscriptionStore, } from './subscription-store.js';
|
|
52
|
+
// ============================================================================
|
|
53
|
+
// Retry Queue
|
|
54
|
+
// ============================================================================
|
|
55
|
+
export { DEFAULT_RETRY_CONFIG, DEFAULT_QUEUE_CONFIG, RetryQueue, createRetryQueue, } from './retry-queue.js';
|
|
56
|
+
// ============================================================================
|
|
57
|
+
// Webhook Service
|
|
58
|
+
// ============================================================================
|
|
59
|
+
export { DEFAULT_WEBHOOK_CONFIG, DEFAULT_SERVICE_CONFIG, statusToEvent, WebhookService, createWebhookService, } from './webhook-service.js';
|
|
60
|
+
// ============================================================================
|
|
61
|
+
// Convenience Types
|
|
62
|
+
// ============================================================================
|
|
63
|
+
/**
|
|
64
|
+
* All webhook event types
|
|
65
|
+
*/
|
|
66
|
+
export const WEBHOOK_EVENTS = [
|
|
67
|
+
'task.submitted',
|
|
68
|
+
'task.working',
|
|
69
|
+
'task.completed',
|
|
70
|
+
'task.failed',
|
|
71
|
+
'task.canceled',
|
|
72
|
+
'task.input_required',
|
|
73
|
+
'task.auth_required',
|
|
74
|
+
'task.rejected',
|
|
75
|
+
'task.artifact_created',
|
|
76
|
+
];
|
|
77
|
+
/**
|
|
78
|
+
* Task state change events
|
|
79
|
+
*/
|
|
80
|
+
export const STATE_CHANGE_EVENTS = [
|
|
81
|
+
'task.submitted',
|
|
82
|
+
'task.working',
|
|
83
|
+
'task.completed',
|
|
84
|
+
'task.failed',
|
|
85
|
+
'task.canceled',
|
|
86
|
+
'task.input_required',
|
|
87
|
+
'task.auth_required',
|
|
88
|
+
'task.rejected',
|
|
89
|
+
];
|
|
90
|
+
/**
|
|
91
|
+
* Terminal state events (task is complete)
|
|
92
|
+
*/
|
|
93
|
+
export const TERMINAL_EVENTS = [
|
|
94
|
+
'task.completed',
|
|
95
|
+
'task.failed',
|
|
96
|
+
'task.canceled',
|
|
97
|
+
'task.rejected',
|
|
98
|
+
];
|
|
99
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/a2a/notifications/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EAGb,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAQL,iCAAiC,EACjC,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EAML,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO,EAUL,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;IACf,uBAAuB;CACf,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;CACP,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,eAAe;CACP,CAAC"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Webhook Retry Queue
|
|
3
|
+
*
|
|
4
|
+
* Implements exponential backoff retry logic for failed webhook deliveries.
|
|
5
|
+
* Supports configurable retry strategies and queue persistence.
|
|
6
|
+
*
|
|
7
|
+
* @module adapters/a2a/notifications/retry-queue
|
|
8
|
+
* @see https://a2a-protocol.org/latest/specification/
|
|
9
|
+
*/
|
|
10
|
+
import { EventEmitter } from 'events';
|
|
11
|
+
/**
|
|
12
|
+
* Retry configuration options
|
|
13
|
+
*/
|
|
14
|
+
export interface RetryConfig {
|
|
15
|
+
/** Maximum number of retry attempts */
|
|
16
|
+
maxAttempts: number;
|
|
17
|
+
/** Base delay between retries in milliseconds */
|
|
18
|
+
baseDelayMs: number;
|
|
19
|
+
/** Maximum delay between retries in milliseconds */
|
|
20
|
+
maxDelayMs: number;
|
|
21
|
+
/** Multiplier for exponential backoff */
|
|
22
|
+
backoffMultiplier: number;
|
|
23
|
+
/** Add random jitter to prevent thundering herd */
|
|
24
|
+
jitterEnabled?: boolean;
|
|
25
|
+
/** Maximum jitter as percentage of delay (0-1) */
|
|
26
|
+
jitterRatio?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Pending delivery in the retry queue
|
|
30
|
+
*/
|
|
31
|
+
export interface PendingDelivery {
|
|
32
|
+
/** Unique delivery ID */
|
|
33
|
+
id: string;
|
|
34
|
+
/** Subscription ID for this delivery */
|
|
35
|
+
subscriptionId: string;
|
|
36
|
+
/** Task ID associated with this delivery */
|
|
37
|
+
taskId: string;
|
|
38
|
+
/** Webhook URL */
|
|
39
|
+
url: string;
|
|
40
|
+
/** Webhook secret for signing */
|
|
41
|
+
secret: string;
|
|
42
|
+
/** Payload to deliver */
|
|
43
|
+
payload: string;
|
|
44
|
+
/** Original timestamp when first attempted */
|
|
45
|
+
originalTimestamp: Date;
|
|
46
|
+
/** Current attempt number (1-based) */
|
|
47
|
+
attempt: number;
|
|
48
|
+
/** Last error message */
|
|
49
|
+
lastError?: string;
|
|
50
|
+
/** Last HTTP status code */
|
|
51
|
+
lastStatusCode?: number;
|
|
52
|
+
/** Scheduled retry time */
|
|
53
|
+
scheduledAt: Date;
|
|
54
|
+
/** Retry configuration */
|
|
55
|
+
retryConfig: RetryConfig;
|
|
56
|
+
/** Additional metadata */
|
|
57
|
+
metadata?: Record<string, unknown>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Delivery result from the retry processor
|
|
61
|
+
*/
|
|
62
|
+
export interface DeliveryAttemptResult {
|
|
63
|
+
/** Whether the delivery was successful */
|
|
64
|
+
success: boolean;
|
|
65
|
+
/** HTTP status code */
|
|
66
|
+
statusCode?: number;
|
|
67
|
+
/** Error message if failed */
|
|
68
|
+
error?: string;
|
|
69
|
+
/** Response time in milliseconds */
|
|
70
|
+
responseTimeMs?: number;
|
|
71
|
+
/** Whether to retry (false if max attempts reached or non-retryable error) */
|
|
72
|
+
shouldRetry: boolean;
|
|
73
|
+
/** Next attempt time if should retry */
|
|
74
|
+
nextAttemptAt?: Date;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Queue statistics
|
|
78
|
+
*/
|
|
79
|
+
export interface QueueStats {
|
|
80
|
+
/** Total items in queue */
|
|
81
|
+
totalItems: number;
|
|
82
|
+
/** Items by attempt count */
|
|
83
|
+
byAttempt: Record<number, number>;
|
|
84
|
+
/** Oldest item age in milliseconds */
|
|
85
|
+
oldestItemAgeMs: number;
|
|
86
|
+
/** Items ready to process (scheduled time passed) */
|
|
87
|
+
readyToProcess: number;
|
|
88
|
+
/** Items scheduled for future */
|
|
89
|
+
scheduledForLater: number;
|
|
90
|
+
/** Total processed items */
|
|
91
|
+
totalProcessed: number;
|
|
92
|
+
/** Total successful deliveries */
|
|
93
|
+
totalSuccess: number;
|
|
94
|
+
/** Total failed deliveries (gave up) */
|
|
95
|
+
totalFailed: number;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Queue configuration
|
|
99
|
+
*/
|
|
100
|
+
export interface RetryQueueConfig {
|
|
101
|
+
/** Maximum queue size */
|
|
102
|
+
maxQueueSize?: number;
|
|
103
|
+
/** Processing interval in milliseconds */
|
|
104
|
+
processingIntervalMs?: number;
|
|
105
|
+
/** Maximum concurrent deliveries */
|
|
106
|
+
maxConcurrent?: number;
|
|
107
|
+
/** Default retry configuration */
|
|
108
|
+
defaultRetryConfig?: Partial<RetryConfig>;
|
|
109
|
+
/** Enable automatic processing */
|
|
110
|
+
enableAutoProcessing?: boolean;
|
|
111
|
+
}
|
|
112
|
+
export declare const DEFAULT_RETRY_CONFIG: RetryConfig;
|
|
113
|
+
export declare const DEFAULT_QUEUE_CONFIG: Required<RetryQueueConfig>;
|
|
114
|
+
/**
|
|
115
|
+
* Retry queue for failed webhook deliveries
|
|
116
|
+
*
|
|
117
|
+
* Implements exponential backoff with jitter for reliable delivery.
|
|
118
|
+
*/
|
|
119
|
+
export declare class RetryQueue extends EventEmitter {
|
|
120
|
+
private readonly config;
|
|
121
|
+
private readonly queue;
|
|
122
|
+
private readonly scheduledIndex;
|
|
123
|
+
private processingTimer?;
|
|
124
|
+
private isProcessing;
|
|
125
|
+
private currentlyProcessing;
|
|
126
|
+
private stats;
|
|
127
|
+
private deliveryFn?;
|
|
128
|
+
constructor(config?: RetryQueueConfig);
|
|
129
|
+
/**
|
|
130
|
+
* Add a delivery to the retry queue
|
|
131
|
+
*/
|
|
132
|
+
enqueue(delivery: PendingDelivery): void;
|
|
133
|
+
/**
|
|
134
|
+
* Create and enqueue a new delivery
|
|
135
|
+
*/
|
|
136
|
+
enqueueNew(params: {
|
|
137
|
+
subscriptionId: string;
|
|
138
|
+
taskId: string;
|
|
139
|
+
url: string;
|
|
140
|
+
secret: string;
|
|
141
|
+
payload: string;
|
|
142
|
+
retryConfig?: Partial<RetryConfig>;
|
|
143
|
+
metadata?: Record<string, unknown>;
|
|
144
|
+
}): PendingDelivery;
|
|
145
|
+
/**
|
|
146
|
+
* Get a delivery by ID
|
|
147
|
+
*/
|
|
148
|
+
get(id: string): PendingDelivery | undefined;
|
|
149
|
+
/**
|
|
150
|
+
* Check if a delivery is in the queue
|
|
151
|
+
*/
|
|
152
|
+
has(id: string): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Remove a delivery from the queue
|
|
155
|
+
*/
|
|
156
|
+
remove(id: string): boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Remove all deliveries for a subscription
|
|
159
|
+
*/
|
|
160
|
+
removeBySubscription(subscriptionId: string): number;
|
|
161
|
+
/**
|
|
162
|
+
* Remove all deliveries for a task
|
|
163
|
+
*/
|
|
164
|
+
removeByTask(taskId: string): number;
|
|
165
|
+
/**
|
|
166
|
+
* Set the delivery function for processing
|
|
167
|
+
*/
|
|
168
|
+
setDeliveryFunction(fn: (delivery: PendingDelivery) => Promise<DeliveryAttemptResult>): void;
|
|
169
|
+
/**
|
|
170
|
+
* Process the queue (call pending deliveries)
|
|
171
|
+
*/
|
|
172
|
+
processQueue(): Promise<void>;
|
|
173
|
+
/**
|
|
174
|
+
* Process a single delivery
|
|
175
|
+
*/
|
|
176
|
+
private processDelivery;
|
|
177
|
+
/**
|
|
178
|
+
* Reschedule a delivery for retry
|
|
179
|
+
*/
|
|
180
|
+
private rescheduleDelivery;
|
|
181
|
+
/**
|
|
182
|
+
* Calculate the next retry time using exponential backoff
|
|
183
|
+
*/
|
|
184
|
+
private calculateNextRetryTime;
|
|
185
|
+
/**
|
|
186
|
+
* Get deliveries ready to process
|
|
187
|
+
*/
|
|
188
|
+
private getReadyDeliveries;
|
|
189
|
+
/**
|
|
190
|
+
* Start automatic processing
|
|
191
|
+
*/
|
|
192
|
+
startProcessing(): void;
|
|
193
|
+
/**
|
|
194
|
+
* Stop automatic processing
|
|
195
|
+
*/
|
|
196
|
+
stopProcessing(): void;
|
|
197
|
+
/**
|
|
198
|
+
* Get queue statistics
|
|
199
|
+
*/
|
|
200
|
+
getStats(): QueueStats;
|
|
201
|
+
/**
|
|
202
|
+
* Get queue size
|
|
203
|
+
*/
|
|
204
|
+
get size(): number;
|
|
205
|
+
/**
|
|
206
|
+
* Clear all failed retries (items that have reached max attempts)
|
|
207
|
+
*/
|
|
208
|
+
clearFailed(): number;
|
|
209
|
+
/**
|
|
210
|
+
* Clear all items in the queue
|
|
211
|
+
*/
|
|
212
|
+
clear(): void;
|
|
213
|
+
/**
|
|
214
|
+
* Destroy the queue
|
|
215
|
+
*/
|
|
216
|
+
destroy(): void;
|
|
217
|
+
private addToScheduleIndex;
|
|
218
|
+
private removeFromScheduleIndex;
|
|
219
|
+
private evictOldest;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Create a new retry queue
|
|
223
|
+
*/
|
|
224
|
+
export declare function createRetryQueue(config?: RetryQueueConfig): RetryQueue;
|
|
225
|
+
//# sourceMappingURL=retry-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry-queue.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2a/notifications/retry-queue.ts"],"names":[],"mappings":"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"}
|