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,425 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Pointer Resolver (RFC 6901)
|
|
3
|
+
*
|
|
4
|
+
* Implements RFC 6901 JSON Pointer specification for resolving,
|
|
5
|
+
* setting, and manipulating data within nested objects.
|
|
6
|
+
*
|
|
7
|
+
* @see https://www.rfc-editor.org/rfc/rfc6901
|
|
8
|
+
* @module adapters/a2ui/data/json-pointer-resolver
|
|
9
|
+
*/
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Types
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Error thrown for invalid JSON Pointer operations
|
|
15
|
+
*/
|
|
16
|
+
export class JsonPointerError extends Error {
|
|
17
|
+
pointer;
|
|
18
|
+
code;
|
|
19
|
+
constructor(message, pointer, code) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.pointer = pointer;
|
|
22
|
+
this.code = code;
|
|
23
|
+
this.name = 'JsonPointerError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// Core Functions
|
|
28
|
+
// ============================================================================
|
|
29
|
+
/**
|
|
30
|
+
* Escape a JSON Pointer segment according to RFC 6901
|
|
31
|
+
*
|
|
32
|
+
* ~ -> ~0
|
|
33
|
+
* / -> ~1
|
|
34
|
+
*
|
|
35
|
+
* @param segment - The segment to escape
|
|
36
|
+
* @returns Escaped segment
|
|
37
|
+
*/
|
|
38
|
+
export function escapeSegment(segment) {
|
|
39
|
+
return segment.replace(/~/g, '~0').replace(/\//g, '~1');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Unescape a JSON Pointer segment according to RFC 6901
|
|
43
|
+
*
|
|
44
|
+
* ~0 -> ~
|
|
45
|
+
* ~1 -> /
|
|
46
|
+
*
|
|
47
|
+
* @param segment - The escaped segment
|
|
48
|
+
* @returns Unescaped segment
|
|
49
|
+
*/
|
|
50
|
+
export function unescapeSegment(segment) {
|
|
51
|
+
// Must process ~1 before ~0 to avoid double-unescaping
|
|
52
|
+
return segment.replace(/~1/g, '/').replace(/~0/g, '~');
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Parse a JSON Pointer string into path segments
|
|
56
|
+
*
|
|
57
|
+
* @param pointer - JSON Pointer string (must start with '/' or be empty)
|
|
58
|
+
* @returns Array of path segments
|
|
59
|
+
* @throws {JsonPointerError} If pointer format is invalid
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* parseJsonPointer('/metrics/coverage/line') -> ['metrics', 'coverage', 'line']
|
|
63
|
+
* parseJsonPointer('/users/0/name') -> ['users', '0', 'name']
|
|
64
|
+
* parseJsonPointer('') -> []
|
|
65
|
+
*/
|
|
66
|
+
export function parseJsonPointer(pointer) {
|
|
67
|
+
// Empty pointer refers to the root document
|
|
68
|
+
if (pointer === '') {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
// Non-empty pointer must start with '/'
|
|
72
|
+
if (!pointer.startsWith('/')) {
|
|
73
|
+
throw new JsonPointerError(`JSON Pointer must start with '/' or be empty, got: "${pointer}"`, pointer, 'INVALID_POINTER_FORMAT');
|
|
74
|
+
}
|
|
75
|
+
// Split and unescape segments (skip the first empty segment from split)
|
|
76
|
+
const segments = pointer.slice(1).split('/');
|
|
77
|
+
return segments.map(unescapeSegment);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Build a JSON Pointer string from path segments
|
|
81
|
+
*
|
|
82
|
+
* @param segments - Array of path segments
|
|
83
|
+
* @returns JSON Pointer string
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* buildJsonPointer(['metrics', 'coverage']) -> '/metrics/coverage'
|
|
87
|
+
* buildJsonPointer([]) -> ''
|
|
88
|
+
*/
|
|
89
|
+
export function buildJsonPointer(segments) {
|
|
90
|
+
if (segments.length === 0) {
|
|
91
|
+
return '';
|
|
92
|
+
}
|
|
93
|
+
return '/' + segments.map(escapeSegment).join('/');
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Validate a JSON Pointer string format
|
|
97
|
+
*
|
|
98
|
+
* @param pointer - String to validate
|
|
99
|
+
* @returns True if valid JSON Pointer format
|
|
100
|
+
*/
|
|
101
|
+
export function isValidPointer(pointer) {
|
|
102
|
+
if (pointer === '') {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
if (!pointer.startsWith('/')) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
// Check for invalid escape sequences
|
|
109
|
+
// Valid: ~0 and ~1, Invalid: ~ followed by anything else
|
|
110
|
+
const invalidEscapePattern = /~(?![01])/;
|
|
111
|
+
return !invalidEscapePattern.test(pointer);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Resolve a JSON Pointer against a data object
|
|
115
|
+
*
|
|
116
|
+
* @param data - The data object to resolve against
|
|
117
|
+
* @param pointer - JSON Pointer string
|
|
118
|
+
* @returns The resolved value, or undefined if not found
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* const data = { metrics: { coverage: { line: 85 } } };
|
|
122
|
+
* resolvePointer(data, '/metrics/coverage/line') -> 85
|
|
123
|
+
* resolvePointer(data, '/metrics/unknown') -> undefined
|
|
124
|
+
*/
|
|
125
|
+
export function resolvePointer(data, pointer) {
|
|
126
|
+
const result = resolvePointerWithInfo(data, pointer);
|
|
127
|
+
return result.value;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Resolve a JSON Pointer with additional information about the resolution
|
|
131
|
+
*
|
|
132
|
+
* @param data - The data object to resolve against
|
|
133
|
+
* @param pointer - JSON Pointer string
|
|
134
|
+
* @returns Resolution result with found flag, value, parent, and key
|
|
135
|
+
*/
|
|
136
|
+
export function resolvePointerWithInfo(data, pointer) {
|
|
137
|
+
// Validate pointer format
|
|
138
|
+
if (!isValidPointer(pointer)) {
|
|
139
|
+
return { found: false, value: undefined };
|
|
140
|
+
}
|
|
141
|
+
const segments = parseJsonPointer(pointer);
|
|
142
|
+
// Empty pointer returns the root
|
|
143
|
+
if (segments.length === 0) {
|
|
144
|
+
return { found: true, value: data };
|
|
145
|
+
}
|
|
146
|
+
let current = data;
|
|
147
|
+
let parent = undefined;
|
|
148
|
+
let lastKey = undefined;
|
|
149
|
+
for (let i = 0; i < segments.length; i++) {
|
|
150
|
+
const segment = segments[i];
|
|
151
|
+
// Cannot navigate into null or primitives
|
|
152
|
+
if (current === null || current === undefined) {
|
|
153
|
+
return { found: false, value: undefined };
|
|
154
|
+
}
|
|
155
|
+
if (typeof current !== 'object') {
|
|
156
|
+
return { found: false, value: undefined };
|
|
157
|
+
}
|
|
158
|
+
parent = current;
|
|
159
|
+
if (Array.isArray(current)) {
|
|
160
|
+
// Array access - segment must be a valid array index or '-'
|
|
161
|
+
if (segment === '-') {
|
|
162
|
+
// '-' refers to the element after the last (for appending)
|
|
163
|
+
// For resolution, treat as not found
|
|
164
|
+
return { found: false, value: undefined };
|
|
165
|
+
}
|
|
166
|
+
const index = parseInt(segment, 10);
|
|
167
|
+
if (isNaN(index) || index < 0 || index.toString() !== segment) {
|
|
168
|
+
return { found: false, value: undefined };
|
|
169
|
+
}
|
|
170
|
+
if (index >= current.length) {
|
|
171
|
+
return { found: false, value: undefined };
|
|
172
|
+
}
|
|
173
|
+
lastKey = index;
|
|
174
|
+
current = current[index];
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// Object access
|
|
178
|
+
const obj = current;
|
|
179
|
+
if (!(segment in obj)) {
|
|
180
|
+
return { found: false, value: undefined };
|
|
181
|
+
}
|
|
182
|
+
lastKey = segment;
|
|
183
|
+
current = obj[segment];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
found: true,
|
|
188
|
+
value: current,
|
|
189
|
+
parent,
|
|
190
|
+
key: lastKey,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Check if a JSON Pointer path exists in the data
|
|
195
|
+
*
|
|
196
|
+
* @param data - The data object to check
|
|
197
|
+
* @param pointer - JSON Pointer string
|
|
198
|
+
* @returns True if the path exists
|
|
199
|
+
*/
|
|
200
|
+
export function pointerExists(data, pointer) {
|
|
201
|
+
const result = resolvePointerWithInfo(data, pointer);
|
|
202
|
+
return result.found;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Set a value at a JSON Pointer location
|
|
206
|
+
*
|
|
207
|
+
* @param data - The data object to modify (must be an object or array)
|
|
208
|
+
* @param pointer - JSON Pointer string
|
|
209
|
+
* @param value - The value to set
|
|
210
|
+
* @throws {JsonPointerError} If the path cannot be set
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* const data = { metrics: { coverage: 75 } };
|
|
214
|
+
* setAtPointer(data, '/metrics/coverage', 85);
|
|
215
|
+
* // data.metrics.coverage is now 85
|
|
216
|
+
*/
|
|
217
|
+
export function setAtPointer(data, pointer, value) {
|
|
218
|
+
if (!isValidPointer(pointer)) {
|
|
219
|
+
throw new JsonPointerError(`Invalid JSON Pointer format: "${pointer}"`, pointer, 'INVALID_POINTER_FORMAT');
|
|
220
|
+
}
|
|
221
|
+
const segments = parseJsonPointer(pointer);
|
|
222
|
+
// Cannot set the root
|
|
223
|
+
if (segments.length === 0) {
|
|
224
|
+
throw new JsonPointerError('Cannot replace the root document', pointer, 'CANNOT_SET_ON_PRIMITIVE');
|
|
225
|
+
}
|
|
226
|
+
// Navigate to the parent
|
|
227
|
+
let current = data;
|
|
228
|
+
for (let i = 0; i < segments.length - 1; i++) {
|
|
229
|
+
const segment = segments[i];
|
|
230
|
+
if (current === null || current === undefined || typeof current !== 'object') {
|
|
231
|
+
throw new JsonPointerError(`Cannot navigate through non-object at segment "${segment}"`, pointer, 'PATH_NOT_FOUND');
|
|
232
|
+
}
|
|
233
|
+
if (Array.isArray(current)) {
|
|
234
|
+
const index = parseInt(segment, 10);
|
|
235
|
+
if (isNaN(index) || index < 0 || index >= current.length) {
|
|
236
|
+
throw new JsonPointerError(`Invalid array index "${segment}"`, pointer, 'INVALID_ARRAY_INDEX');
|
|
237
|
+
}
|
|
238
|
+
current = current[index];
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
const obj = current;
|
|
242
|
+
if (!(segment in obj)) {
|
|
243
|
+
// Auto-create intermediate objects
|
|
244
|
+
obj[segment] = {};
|
|
245
|
+
}
|
|
246
|
+
current = obj[segment];
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// Set the final value
|
|
250
|
+
const lastSegment = segments[segments.length - 1];
|
|
251
|
+
if (current === null || current === undefined || typeof current !== 'object') {
|
|
252
|
+
throw new JsonPointerError('Cannot set property on non-object', pointer, 'CANNOT_SET_ON_PRIMITIVE');
|
|
253
|
+
}
|
|
254
|
+
if (Array.isArray(current)) {
|
|
255
|
+
if (lastSegment === '-') {
|
|
256
|
+
// '-' means append to array
|
|
257
|
+
current.push(value);
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
const index = parseInt(lastSegment, 10);
|
|
261
|
+
if (isNaN(index) || index < 0) {
|
|
262
|
+
throw new JsonPointerError(`Invalid array index "${lastSegment}"`, pointer, 'INVALID_ARRAY_INDEX');
|
|
263
|
+
}
|
|
264
|
+
// Allow setting at index equal to length (append)
|
|
265
|
+
if (index > current.length) {
|
|
266
|
+
throw new JsonPointerError(`Array index ${index} out of bounds (length: ${current.length})`, pointer, 'INVALID_ARRAY_INDEX');
|
|
267
|
+
}
|
|
268
|
+
current[index] = value;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
current[lastSegment] = value;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Delete a value at a JSON Pointer location
|
|
277
|
+
*
|
|
278
|
+
* @param data - The data object to modify
|
|
279
|
+
* @param pointer - JSON Pointer string
|
|
280
|
+
* @returns True if the value was deleted, false if it didn't exist
|
|
281
|
+
*/
|
|
282
|
+
export function deleteAtPointer(data, pointer) {
|
|
283
|
+
if (!isValidPointer(pointer)) {
|
|
284
|
+
return false;
|
|
285
|
+
}
|
|
286
|
+
const segments = parseJsonPointer(pointer);
|
|
287
|
+
// Cannot delete the root
|
|
288
|
+
if (segments.length === 0) {
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
291
|
+
const result = resolvePointerWithInfo(data, buildJsonPointer(segments.slice(0, -1)));
|
|
292
|
+
if (!result.found || result.value === null || typeof result.value !== 'object') {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
const lastSegment = segments[segments.length - 1];
|
|
296
|
+
const parent = result.value;
|
|
297
|
+
if (Array.isArray(parent)) {
|
|
298
|
+
const index = parseInt(lastSegment, 10);
|
|
299
|
+
if (isNaN(index) || index < 0 || index >= parent.length) {
|
|
300
|
+
return false;
|
|
301
|
+
}
|
|
302
|
+
parent.splice(index, 1);
|
|
303
|
+
return true;
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
const obj = parent;
|
|
307
|
+
if (!(lastSegment in obj)) {
|
|
308
|
+
return false;
|
|
309
|
+
}
|
|
310
|
+
delete obj[lastSegment];
|
|
311
|
+
return true;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Get all paths in a data object as JSON Pointers
|
|
316
|
+
*
|
|
317
|
+
* @param data - The data object to traverse
|
|
318
|
+
* @param maxDepth - Maximum depth to traverse (default: 10)
|
|
319
|
+
* @returns Array of JSON Pointer strings
|
|
320
|
+
*/
|
|
321
|
+
export function getAllPaths(data, maxDepth = 10) {
|
|
322
|
+
const paths = [];
|
|
323
|
+
function traverse(current, segments, depth) {
|
|
324
|
+
// Add current path
|
|
325
|
+
if (segments.length > 0) {
|
|
326
|
+
paths.push(buildJsonPointer(segments));
|
|
327
|
+
}
|
|
328
|
+
// Stop at max depth or non-object
|
|
329
|
+
if (depth >= maxDepth || current === null || typeof current !== 'object') {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
if (Array.isArray(current)) {
|
|
333
|
+
for (let i = 0; i < current.length; i++) {
|
|
334
|
+
traverse(current[i], [...segments, i.toString()], depth + 1);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
for (const key of Object.keys(current)) {
|
|
339
|
+
traverse(current[key], [...segments, key], depth + 1);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
traverse(data, [], 0);
|
|
344
|
+
return paths;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Check if a pointer is a parent of another pointer
|
|
348
|
+
*
|
|
349
|
+
* @param parent - Potential parent pointer
|
|
350
|
+
* @param child - Potential child pointer
|
|
351
|
+
* @returns True if parent is an ancestor of child
|
|
352
|
+
*
|
|
353
|
+
* @example
|
|
354
|
+
* isParentPointer('/metrics', '/metrics/coverage') -> true
|
|
355
|
+
* isParentPointer('/metrics/coverage', '/metrics') -> false
|
|
356
|
+
*/
|
|
357
|
+
export function isParentPointer(parent, child) {
|
|
358
|
+
if (parent === '') {
|
|
359
|
+
return child !== '';
|
|
360
|
+
}
|
|
361
|
+
if (!child.startsWith(parent)) {
|
|
362
|
+
return false;
|
|
363
|
+
}
|
|
364
|
+
// Must be followed by '/' or be exact match
|
|
365
|
+
const remaining = child.slice(parent.length);
|
|
366
|
+
return remaining.startsWith('/');
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Get the parent pointer of a given pointer
|
|
370
|
+
*
|
|
371
|
+
* @param pointer - JSON Pointer string
|
|
372
|
+
* @returns Parent pointer, or undefined for root
|
|
373
|
+
*/
|
|
374
|
+
export function getParentPointer(pointer) {
|
|
375
|
+
const segments = parseJsonPointer(pointer);
|
|
376
|
+
if (segments.length === 0) {
|
|
377
|
+
return undefined;
|
|
378
|
+
}
|
|
379
|
+
return buildJsonPointer(segments.slice(0, -1));
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Get the last segment (key) of a pointer
|
|
383
|
+
*
|
|
384
|
+
* @param pointer - JSON Pointer string
|
|
385
|
+
* @returns The last segment, or undefined for root
|
|
386
|
+
*/
|
|
387
|
+
export function getPointerKey(pointer) {
|
|
388
|
+
const segments = parseJsonPointer(pointer);
|
|
389
|
+
if (segments.length === 0) {
|
|
390
|
+
return undefined;
|
|
391
|
+
}
|
|
392
|
+
return segments[segments.length - 1];
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Join two pointers together
|
|
396
|
+
*
|
|
397
|
+
* @param base - Base pointer
|
|
398
|
+
* @param relative - Relative pointer to append
|
|
399
|
+
* @returns Combined pointer
|
|
400
|
+
*/
|
|
401
|
+
export function joinPointers(base, relative) {
|
|
402
|
+
const baseSegments = parseJsonPointer(base);
|
|
403
|
+
const relativeSegments = parseJsonPointer(relative);
|
|
404
|
+
return buildJsonPointer([...baseSegments, ...relativeSegments]);
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Create a relative pointer from an absolute pointer to another
|
|
408
|
+
*
|
|
409
|
+
* @param from - Starting pointer
|
|
410
|
+
* @param to - Target pointer
|
|
411
|
+
* @returns Relative segments needed to go from 'from' to 'to'
|
|
412
|
+
*/
|
|
413
|
+
export function getRelativePath(from, to) {
|
|
414
|
+
const fromSegments = parseJsonPointer(from);
|
|
415
|
+
const toSegments = parseJsonPointer(to);
|
|
416
|
+
// Find common prefix
|
|
417
|
+
let commonLength = 0;
|
|
418
|
+
while (commonLength < fromSegments.length &&
|
|
419
|
+
commonLength < toSegments.length &&
|
|
420
|
+
fromSegments[commonLength] === toSegments[commonLength]) {
|
|
421
|
+
commonLength++;
|
|
422
|
+
}
|
|
423
|
+
return toSegments.slice(commonLength);
|
|
424
|
+
}
|
|
425
|
+
//# sourceMappingURL=json-pointer-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-pointer-resolver.js","sourceRoot":"","sources":["../../../../src/adapters/a2ui/data/json-pointer-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reactive Data Store
|
|
3
|
+
*
|
|
4
|
+
* Provides a reactive data store with path-specific subscriptions,
|
|
5
|
+
* change detection, and batch updates for A2UI data binding.
|
|
6
|
+
*
|
|
7
|
+
* @module adapters/a2ui/data/reactive-store
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Callback for store change notifications
|
|
11
|
+
*/
|
|
12
|
+
export type ChangeCallback<T = unknown> = (value: T, previousValue: T | undefined) => void;
|
|
13
|
+
/**
|
|
14
|
+
* Callback for global change notifications
|
|
15
|
+
*/
|
|
16
|
+
export type GlobalChangeCallback = (data: Record<string, unknown>, changes: StoreChange[]) => void;
|
|
17
|
+
/**
|
|
18
|
+
* Store change record
|
|
19
|
+
*/
|
|
20
|
+
export interface StoreChange {
|
|
21
|
+
/** The JSON Pointer path that changed */
|
|
22
|
+
readonly path: string;
|
|
23
|
+
/** The new value */
|
|
24
|
+
readonly newValue: unknown;
|
|
25
|
+
/** The previous value */
|
|
26
|
+
readonly previousValue: unknown;
|
|
27
|
+
/** Type of change */
|
|
28
|
+
readonly type: 'set' | 'delete' | 'batch';
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Batch update operation
|
|
32
|
+
*/
|
|
33
|
+
export interface BatchUpdate {
|
|
34
|
+
/** JSON Pointer path */
|
|
35
|
+
readonly pointer: string;
|
|
36
|
+
/** Value to set (undefined for delete) */
|
|
37
|
+
readonly value: unknown;
|
|
38
|
+
/** Operation type */
|
|
39
|
+
readonly operation?: 'set' | 'delete';
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Subscription handle for unsubscribing
|
|
43
|
+
*/
|
|
44
|
+
export interface Subscription {
|
|
45
|
+
/** Unsubscribe from changes */
|
|
46
|
+
unsubscribe: () => void;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Reactive store configuration
|
|
50
|
+
*/
|
|
51
|
+
export interface ReactiveStoreConfig {
|
|
52
|
+
/** Initial data */
|
|
53
|
+
readonly initialData?: Record<string, unknown>;
|
|
54
|
+
/** Whether to deep clone data on get/set (default: true) */
|
|
55
|
+
readonly deepClone?: boolean;
|
|
56
|
+
/** Whether to emit changes synchronously (default: true) */
|
|
57
|
+
readonly synchronous?: boolean;
|
|
58
|
+
/** Debounce time for async notifications (ms) */
|
|
59
|
+
readonly debounceMs?: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Interface for reactive data store
|
|
63
|
+
*/
|
|
64
|
+
export interface IReactiveStore {
|
|
65
|
+
/** Get entire data object */
|
|
66
|
+
getData(): Record<string, unknown>;
|
|
67
|
+
/** Set entire data object */
|
|
68
|
+
setData(data: Record<string, unknown>): void;
|
|
69
|
+
/** Get value at path */
|
|
70
|
+
getAt<T>(pointer: string): T | undefined;
|
|
71
|
+
/** Set value at path */
|
|
72
|
+
setAt(pointer: string, value: unknown): void;
|
|
73
|
+
/** Delete value at path */
|
|
74
|
+
deleteAt(pointer: string): boolean;
|
|
75
|
+
/** Check if path exists */
|
|
76
|
+
has(pointer: string): boolean;
|
|
77
|
+
/** Subscribe to changes at path */
|
|
78
|
+
subscribe<T>(pointer: string, callback: ChangeCallback<T>): Subscription;
|
|
79
|
+
/** Subscribe to any change */
|
|
80
|
+
subscribeAll(callback: GlobalChangeCallback): Subscription;
|
|
81
|
+
/** Batch multiple updates with single notification */
|
|
82
|
+
batch(updates: BatchUpdate[]): void;
|
|
83
|
+
/** Get current subscription count */
|
|
84
|
+
getSubscriptionCount(): number;
|
|
85
|
+
/** Clear all data and subscriptions */
|
|
86
|
+
clear(): void;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Reactive Data Store
|
|
90
|
+
*
|
|
91
|
+
* Provides a reactive store with:
|
|
92
|
+
* - Path-specific subscriptions using JSON Pointers
|
|
93
|
+
* - Change detection and notification
|
|
94
|
+
* - Batch updates for performance
|
|
95
|
+
* - Global change subscriptions
|
|
96
|
+
*/
|
|
97
|
+
export declare class ReactiveStore implements IReactiveStore {
|
|
98
|
+
private data;
|
|
99
|
+
private readonly config;
|
|
100
|
+
private readonly pathSubscriptions;
|
|
101
|
+
private readonly globalSubscriptions;
|
|
102
|
+
private subscriptionIdCounter;
|
|
103
|
+
private pendingNotifications;
|
|
104
|
+
private notificationTimeout;
|
|
105
|
+
constructor(config?: ReactiveStoreConfig);
|
|
106
|
+
/**
|
|
107
|
+
* Get the entire data object
|
|
108
|
+
*
|
|
109
|
+
* @returns Copy of the data object (or reference if deepClone is false)
|
|
110
|
+
*/
|
|
111
|
+
getData(): Record<string, unknown>;
|
|
112
|
+
/**
|
|
113
|
+
* Set the entire data object
|
|
114
|
+
*
|
|
115
|
+
* @param data - New data object
|
|
116
|
+
*/
|
|
117
|
+
setData(data: Record<string, unknown>): void;
|
|
118
|
+
/**
|
|
119
|
+
* Get value at a specific path
|
|
120
|
+
*
|
|
121
|
+
* @param pointer - JSON Pointer path
|
|
122
|
+
* @returns Value at path, or undefined if not found
|
|
123
|
+
*/
|
|
124
|
+
getAt<T>(pointer: string): T | undefined;
|
|
125
|
+
/**
|
|
126
|
+
* Set value at a specific path
|
|
127
|
+
*
|
|
128
|
+
* @param pointer - JSON Pointer path
|
|
129
|
+
* @param value - Value to set
|
|
130
|
+
*/
|
|
131
|
+
setAt(pointer: string, value: unknown): void;
|
|
132
|
+
/**
|
|
133
|
+
* Delete value at a specific path
|
|
134
|
+
*
|
|
135
|
+
* @param pointer - JSON Pointer path
|
|
136
|
+
* @returns True if value was deleted
|
|
137
|
+
*/
|
|
138
|
+
deleteAt(pointer: string): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Check if a path exists in the data
|
|
141
|
+
*
|
|
142
|
+
* @param pointer - JSON Pointer path
|
|
143
|
+
* @returns True if path exists
|
|
144
|
+
*/
|
|
145
|
+
has(pointer: string): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Subscribe to changes at a specific path
|
|
148
|
+
*
|
|
149
|
+
* The callback will be invoked when:
|
|
150
|
+
* - The exact path changes
|
|
151
|
+
* - A parent path changes (which affects this path)
|
|
152
|
+
* - A child path changes (if watching an object/array)
|
|
153
|
+
*
|
|
154
|
+
* @param pointer - JSON Pointer path to watch
|
|
155
|
+
* @param callback - Callback invoked on change
|
|
156
|
+
* @returns Subscription handle with unsubscribe method
|
|
157
|
+
*/
|
|
158
|
+
subscribe<T>(pointer: string, callback: ChangeCallback<T>): Subscription;
|
|
159
|
+
/**
|
|
160
|
+
* Subscribe to any change in the store
|
|
161
|
+
*
|
|
162
|
+
* @param callback - Callback invoked on any change
|
|
163
|
+
* @returns Subscription handle with unsubscribe method
|
|
164
|
+
*/
|
|
165
|
+
subscribeAll(callback: GlobalChangeCallback): Subscription;
|
|
166
|
+
/**
|
|
167
|
+
* Batch multiple updates with a single notification
|
|
168
|
+
*
|
|
169
|
+
* Updates are applied in order, and subscribers are notified once
|
|
170
|
+
* after all updates are complete.
|
|
171
|
+
*
|
|
172
|
+
* @param updates - Array of updates to apply
|
|
173
|
+
*/
|
|
174
|
+
batch(updates: BatchUpdate[]): void;
|
|
175
|
+
/**
|
|
176
|
+
* Get the current number of subscriptions
|
|
177
|
+
*/
|
|
178
|
+
getSubscriptionCount(): number;
|
|
179
|
+
/**
|
|
180
|
+
* Clear all data and subscriptions
|
|
181
|
+
*/
|
|
182
|
+
clear(): void;
|
|
183
|
+
/**
|
|
184
|
+
* Notify subscribers of changes
|
|
185
|
+
*/
|
|
186
|
+
private notifyChanges;
|
|
187
|
+
/**
|
|
188
|
+
* Schedule asynchronous notifications
|
|
189
|
+
*/
|
|
190
|
+
private scheduleNotifications;
|
|
191
|
+
/**
|
|
192
|
+
* Process and dispatch notifications
|
|
193
|
+
*/
|
|
194
|
+
private processNotifications;
|
|
195
|
+
/**
|
|
196
|
+
* Check if a subscribed path should be notified for a change at a given path
|
|
197
|
+
*/
|
|
198
|
+
private shouldNotifyPath;
|
|
199
|
+
/**
|
|
200
|
+
* Deep clone a value
|
|
201
|
+
*/
|
|
202
|
+
private deepClone;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Create a reactive store with the given configuration
|
|
206
|
+
*/
|
|
207
|
+
export declare function createReactiveStore(config?: ReactiveStoreConfig): ReactiveStore;
|
|
208
|
+
/**
|
|
209
|
+
* Create a computed value that updates when dependencies change
|
|
210
|
+
*
|
|
211
|
+
* @param store - Reactive store
|
|
212
|
+
* @param dependencies - Array of paths this computation depends on
|
|
213
|
+
* @param compute - Function to compute the value
|
|
214
|
+
* @param callback - Callback to invoke when computed value changes
|
|
215
|
+
* @returns Subscription handle
|
|
216
|
+
*/
|
|
217
|
+
export declare function createComputed<T>(store: IReactiveStore, dependencies: string[], compute: (data: Record<string, unknown>) => T, callback: (value: T) => void): Subscription;
|
|
218
|
+
/**
|
|
219
|
+
* Create a selector that extracts and transforms data
|
|
220
|
+
*
|
|
221
|
+
* @param store - Reactive store
|
|
222
|
+
* @param path - Path to select from
|
|
223
|
+
* @param transform - Transform function (optional)
|
|
224
|
+
* @returns Current transformed value and subscribe function
|
|
225
|
+
*/
|
|
226
|
+
export declare function createSelector<T, R = T>(store: IReactiveStore, path: string, transform?: (value: T | undefined) => R): {
|
|
227
|
+
getValue: () => R;
|
|
228
|
+
subscribe: (callback: (value: R) => void) => Subscription;
|
|
229
|
+
};
|
|
230
|
+
/**
|
|
231
|
+
* Merge multiple stores into a single namespace
|
|
232
|
+
*
|
|
233
|
+
* @param stores - Map of namespace to store
|
|
234
|
+
* @returns Combined store interface
|
|
235
|
+
*/
|
|
236
|
+
export declare function combineStores(stores: Map<string, IReactiveStore>): {
|
|
237
|
+
getAt: <T>(namespace: string, pointer: string) => T | undefined;
|
|
238
|
+
setAt: (namespace: string, pointer: string, value: unknown) => void;
|
|
239
|
+
subscribe: <T>(namespace: string, pointer: string, callback: ChangeCallback<T>) => Subscription;
|
|
240
|
+
};
|
|
241
|
+
//# sourceMappingURL=reactive-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-store.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2ui/data/reactive-store.ts"],"names":[],"mappings":"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"}
|