@oscharko-dev/keiko 0.2.0-beta.4 → 0.2.0-beta.6
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/README.md +39 -14
- package/dist/ui/csp-hashes.json +16 -21
- package/dist/ui/static/404.html +1 -1
- package/dist/ui/static/__next.__PAGE__.txt +2 -2
- package/dist/ui/static/__next._full.txt +3 -3
- package/dist/ui/static/__next._head.txt +1 -1
- package/dist/ui/static/__next._index.txt +2 -2
- package/dist/ui/static/__next._tree.txt +2 -2
- package/dist/ui/static/_next/static/chunks/0-qhhdvxg2j_y.js +1 -0
- package/dist/ui/static/_next/static/chunks/0ke4ratkgvcxo.css +1 -0
- package/dist/ui/static/_next/static/chunks/0xhu-pfsyvbmx.js +5 -0
- package/dist/ui/static/_next/static/chunks/3vf3oh2-sl2nc.js +1 -0
- package/dist/ui/static/_next/static/chunks/3wmd4-2vznp2g.js +106 -0
- package/dist/ui/static/_next/static/chunks/turbopack-18q50fp2-1qbt.js +1 -0
- package/dist/ui/static/_not-found/__next._full.txt +2 -2
- package/dist/ui/static/_not-found/__next._head.txt +1 -1
- package/dist/ui/static/_not-found/__next._index.txt +2 -2
- package/dist/ui/static/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/ui/static/_not-found/__next._not-found.txt +1 -1
- package/dist/ui/static/_not-found/__next._tree.txt +2 -2
- package/dist/ui/static/_not-found.html +1 -1
- package/dist/ui/static/_not-found.txt +2 -2
- package/dist/ui/static/index.html +1 -1
- package/dist/ui/static/index.txt +3 -3
- package/dist/ui/static/launch/__next._full.txt +3 -3
- package/dist/ui/static/launch/__next._head.txt +1 -1
- package/dist/ui/static/launch/__next._index.txt +2 -2
- package/dist/ui/static/launch/__next._tree.txt +2 -2
- package/dist/ui/static/launch/__next.launch.__PAGE__.txt +2 -2
- package/dist/ui/static/launch/__next.launch.txt +1 -1
- package/dist/ui/static/launch.html +1 -1
- package/dist/ui/static/launch.txt +3 -3
- package/dist/ui/static/local-knowledge/__next._full.txt +3 -3
- package/dist/ui/static/local-knowledge/__next._head.txt +1 -1
- package/dist/ui/static/local-knowledge/__next._index.txt +2 -2
- package/dist/ui/static/local-knowledge/__next._tree.txt +2 -2
- package/dist/ui/static/local-knowledge/__next.local-knowledge.__PAGE__.txt +2 -2
- package/dist/ui/static/local-knowledge/__next.local-knowledge.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule/__next._full.txt +3 -3
- package/dist/ui/static/local-knowledge/capsule/__next._head.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule/__next._index.txt +2 -2
- package/dist/ui/static/local-knowledge/capsule/__next._tree.txt +2 -2
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.__PAGE__.txt +2 -2
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule.html +1 -1
- package/dist/ui/static/local-knowledge/capsule.txt +3 -3
- package/dist/ui/static/local-knowledge.html +1 -1
- package/dist/ui/static/local-knowledge.txt +3 -3
- package/dist/ui/static/memoriaviva/__next._full.txt +6 -6
- package/dist/ui/static/memoriaviva/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +4 -4
- package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +4 -4
- package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation.html +1 -1
- package/dist/ui/static/memoriaviva/consolidation.txt +4 -4
- package/dist/ui/static/memoriaviva/detail/__next._full.txt +6 -6
- package/dist/ui/static/memoriaviva/detail/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +4 -4
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/detail.html +1 -1
- package/dist/ui/static/memoriaviva/detail.txt +6 -6
- package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +4 -4
- package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue.html +1 -1
- package/dist/ui/static/memoriaviva/review-queue.txt +4 -4
- package/dist/ui/static/memoriaviva.html +1 -1
- package/dist/ui/static/memoriaviva.txt +6 -6
- package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/doctor.d.ts +24 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/doctor.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/doctor.js +108 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.js +7 -4
- package/node_modules/@oscharko-dev/keiko-cli/dist/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/index.js +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/init.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-cli/dist/init.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/init.js +4 -4
- package/node_modules/@oscharko-dev/keiko-cli/dist/install-layout.d.ts +6 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/install-layout.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/install-layout.js +24 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/launcher.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/launcher.js +5 -7
- package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.js +75 -30
- package/node_modules/@oscharko-dev/keiko-cli/dist/memory.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/memory.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/memory.js +76 -7
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts +3 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.js +123 -43
- package/node_modules/@oscharko-dev/keiko-cli/dist/runner.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/runner.js +20 -4
- package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/ui.js +17 -14
- package/node_modules/@oscharko-dev/keiko-cli/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.js +1 -2
- package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/gateway.d.ts +12 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/gateway.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +4 -2
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +4 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.d.ts +13 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.js +7 -6
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-internal.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-internal.js +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-operations.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-workflow-port.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-workflow-port.js +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +23 -4
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.js +1 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.js +26 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.d.ts +5 -3
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.js +29 -3
- package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.js +58 -0
- package/node_modules/@oscharko-dev/keiko-contracts/package.json +5 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/dist/surface-parity.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.js +62 -13
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts +3 -3
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.js +31 -11
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +35 -3
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.js +107 -3
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts +15 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.js +248 -36
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts +4 -4
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts +33 -2
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts +34 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.js +95 -22
- package/node_modules/@oscharko-dev/keiko-evidence/dist/side-file.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/side-file.js +17 -5
- package/node_modules/@oscharko-dev/keiko-evidence/dist/store.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/store.js +128 -12
- package/node_modules/@oscharko-dev/keiko-evidence/dist/workflow-evidence.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/workflow-evidence.js +1 -3
- package/node_modules/@oscharko-dev/keiko-evidence/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-harness/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.js +1 -2
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.js +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.js +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.js +7 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.js +2 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.js +45 -21
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/media-type.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/media-type.js +1 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.js +11 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.js +42 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.js +34 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/report.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/report.js +7 -6
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner.js +7 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.js +2 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.js +121 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.js +34 -4
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.js +63 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.js +4 -7
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/html-parser.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/html-parser.js +67 -11
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.js +3 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.js +39 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/null-ocr-adapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/ocr-pipeline-parser.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/ocr-pipeline-parser.js +46 -11
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.js +2 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.js +114 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.js +425 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/retention-applier.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.d.ts +9 -4
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.js +11 -6
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/retrieval-runner.js +15 -2
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.js +220 -7
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/types.d.ts +2 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.js +3 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +4 -2
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.js +17 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/errors.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/errors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.js +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/salience.js +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.js +5 -0
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/consolidate.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/consolidate.js +93 -30
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/stale.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/stale.js +3 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.d.ts +5 -0
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.js +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/forget.js +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/types.js +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/context.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/context.js +61 -18
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.js +3 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.js +26 -4
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts +9 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.js +21 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/migrate-encrypt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/migrate-encrypt.js +24 -4
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.js +27 -4
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.js +21 -4
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts +22 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/validate.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/validate.js +3 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.js +105 -28
- package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.js +83 -69
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.d.ts +3 -2
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.js +20 -16
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/gateway.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/gateway.js +9 -3
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.js +29 -3
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.d.ts +4 -4
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.js +3 -3
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.js +22 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.js +69 -10
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.d.ts +20 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.js +122 -7
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.d.ts +10 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.js +33 -11
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.js +21 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/routing.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/routing.js +2 -13
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.js +18 -2
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/types.d.ts +5 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.d.ts +35 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.js +74 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/deduplication.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/deduplication.js +6 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.js +64 -19
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.js +3 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.d.ts +6 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.js +22 -9
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts +4 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.js +28 -12
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.js +123 -33
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/index.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts +7 -4
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.js +13 -17
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.js +35 -12
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.js +54 -6
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.js +29 -10
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.js +10 -4
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/requirementExcerpt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/requirementExcerpt.js +15 -6
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.js +162 -6
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts +14 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.js +50 -12
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.js +4 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.js +29 -30
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.js +34 -5
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.js +29 -29
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts +2 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.js +40 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/traceability.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/traceability.js +12 -9
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.js +6 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.js +7 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.d.ts +10 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.js +14 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/index.js +3 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.js +97 -50
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.js +35 -7
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.js +2 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-sdk/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.d.ts +11 -0
- package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.js +13 -0
- package/node_modules/@oscharko-dev/keiko-security/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts +6 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.js +12 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +61 -16
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.js +11 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.js +3 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts +4 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/deps.js +44 -69
- package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.js +120 -28
- package/node_modules/@oscharko-dev/keiko-server/dist/governed-workflow.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/governed-workflow.js +4 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts +0 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.js +222 -18
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.js +118 -23
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.js +57 -22
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.js +14 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/index.js +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.js +11 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.js +26 -14
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.js +52 -27
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.d.ts +10 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.js +44 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-handlers.js +79 -57
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-registry.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-registry.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.js +6 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-conversation-context.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-diagnostics.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-diagnostics.js +16 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts +3 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.js +538 -87
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts +6 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.js +17 -38
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-retention.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-retention.js +7 -15
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.js +17 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-scope-sanitizer.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-scope-sanitizer.js +19 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-target-resolver.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-target-resolver.js +4 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.js +108 -27
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.js +3 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.js +11 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.js +62 -7
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.js +98 -33
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConcurrency.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConcurrency.js +2 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts +6 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.js +16 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.js +3 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.js +3 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.d.ts +5 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.js +10 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaReadiness.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaReadiness.js +11 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.js +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.js +71 -10
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.js +86 -23
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaTokenSource.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaTokenSource.js +4 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaUrl.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaUrl.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaCodegenRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaCodegenRoutes.js +60 -20
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts +11 -6
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.js +144 -6
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts +9 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.js +84 -15
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +9 -7
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.js +206 -42
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.js +12 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.js +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.js +41 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts +3 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.js +86 -68
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts +15 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.js +56 -39
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.js +382 -75
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts +5 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.js +70 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.js +20 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts +25 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.js +72 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.d.ts +3 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.js +44 -16
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.js +370 -38
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.js +15 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/traceabilityRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/traceabilityRoutes.js +36 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.js +73 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +20 -6
- package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.js +3 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/run-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/run-handlers.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.d.ts +9 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.js +26 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.js +16 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/store/messages.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.js +4 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/terminal.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/dist/patch-normalize.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/dist/patch-normalize.js +13 -7
- package/node_modules/@oscharko-dev/keiko-tools/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-verification/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.js +16 -18
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/prompt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/prompt.js +6 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/workflow.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/workflow.js +3 -3
- package/node_modules/@oscharko-dev/keiko-workflows/dist/governed-handoff.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.js +68 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/descriptors.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts +18 -2
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.js +209 -54
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts +4 -4
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.js +4 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/unit-tests/target-guard.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.js +34 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.js +2 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.js +1 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.js +2 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +74 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/package.json +1 -1
- package/package.json +23 -6
- package/dist/ui/static/_next/static/chunks/082obv3v03b-9.js +0 -2
- package/dist/ui/static/_next/static/chunks/0uifns067thv8.js +0 -1
- package/dist/ui/static/_next/static/chunks/0x31-j53ab1tt.js +0 -1
- package/dist/ui/static/_next/static/chunks/1t04tfgin0v_g.js +0 -106
- package/dist/ui/static/_next/static/chunks/1v4hrxrm_6_rw.js +0 -1
- package/dist/ui/static/_next/static/chunks/27jktro2p5rq9.js +0 -4
- package/dist/ui/static/_next/static/chunks/2lypy3ewh0r04.js +0 -1
- package/dist/ui/static/_next/static/chunks/32573pyyglqxl.js +0 -1
- package/dist/ui/static/_next/static/chunks/3_t_pzet29qtn.js +0 -1
- package/dist/ui/static/_next/static/chunks/3jgg_oe0iok0l.js +0 -1
- package/dist/ui/static/_next/static/chunks/3o_oia3vsam60.js +0 -1
- package/dist/ui/static/_next/static/chunks/3wr_35f2vg6sd.css +0 -1
- package/dist/ui/static/_next/static/chunks/turbopack-2lg1g6kbsfm0x.js +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts +0 -6
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts.map +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.js +0 -49
- /package/dist/ui/static/_next/static/{Hb6brrvZY2nZtizQlYhVt → fQMXe8UmV01bh25WOoIt3}/_buildManifest.js +0 -0
- /package/dist/ui/static/_next/static/{Hb6brrvZY2nZtizQlYhVt → fQMXe8UmV01bh25WOoIt3}/_clientMiddlewareManifest.js +0 -0
- /package/dist/ui/static/_next/static/{Hb6brrvZY2nZtizQlYhVt → fQMXe8UmV01bh25WOoIt3}/_ssgManifest.js +0 -0
|
@@ -15,17 +15,19 @@
|
|
|
15
15
|
//
|
|
16
16
|
// Both routes go through the central CSRF guard in server.ts (all POSTs do).
|
|
17
17
|
import { randomUUID } from "node:crypto";
|
|
18
|
+
import { isAbsolute } from "node:path";
|
|
18
19
|
import { QualityIntelligence } from "@oscharko-dev/keiko-contracts";
|
|
19
|
-
import { ALL_POLICY_PROFILES, buildAtomCoverageStatuses, buildCoverageMap, compareStaleness, regressionDefault, validateCandidates, } from "@oscharko-dev/keiko-quality-intelligence";
|
|
20
|
+
import { ALL_POLICY_PROFILES, buildAtomCoverageStatuses, buildCoverageMap, compareStaleness, deduplicateCandidates, regressionDefault, validateCandidates, } from "@oscharko-dev/keiko-quality-intelligence";
|
|
20
21
|
import { assertValidRunId, sha256Hex } from "@oscharko-dev/keiko-security";
|
|
21
22
|
import { createInMemoryQualityIntelligenceLocalStore, loadQualityIntelligenceCandidates, loadQualityIntelligenceRun, recordQualityIntelligenceCandidates, recordQualityIntelligenceRun, } from "@oscharko-dev/keiko-evidence";
|
|
22
|
-
import { excerptsByAtomId, runQualityIntelligenceModelRoutedTestDesign, } from "@oscharko-dev/keiko-workflows";
|
|
23
|
+
import { QUALITY_INTELLIGENCE_DEFAULT_WORKFLOW_LIMITS, excerptsByAtomId, runQualityIntelligenceModelRoutedTestDesign, } from "@oscharko-dev/keiko-workflows";
|
|
24
|
+
import { currentRedactionSecrets } from "../deps.js";
|
|
23
25
|
import { makeCapsuleResolver } from "./capsuleAdapter.js";
|
|
24
26
|
import { makeFigmaSnapshotLoader, makeFigmaVisionHintProvider } from "./figmaSnapshotAdapter.js";
|
|
25
27
|
import { createQiGenerationPort, QiGenerationError } from "./generationPort.js";
|
|
26
28
|
import { createQiJudgePort } from "./judgePort.js";
|
|
27
29
|
import { resolveQiTestDesignSelection } from "./modelSelection.js";
|
|
28
|
-
import {
|
|
30
|
+
import { ingestInlineSourcesAsync, QiIngestionError } from "./runIngestion.js";
|
|
29
31
|
const MAX_BODY_BYTES = 2 * 1024 * 1024;
|
|
30
32
|
const REQUIREMENTS_ENVELOPE_PREFIX = "qi-src-req-";
|
|
31
33
|
const errorResult = (status, code, message) => ({
|
|
@@ -49,20 +51,66 @@ const isObject = (value) => typeof value === "object" && value !== null && !Arra
|
|
|
49
51
|
const readBody = (req) => new Promise((resolve, reject) => {
|
|
50
52
|
const chunks = [];
|
|
51
53
|
let total = 0;
|
|
54
|
+
let capped = false;
|
|
52
55
|
req.on("data", (chunk) => {
|
|
53
56
|
total += chunk.length;
|
|
54
57
|
if (total > MAX_BODY_BYTES) {
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
if (!capped) {
|
|
59
|
+
capped = true;
|
|
60
|
+
chunks.length = 0;
|
|
61
|
+
reject(new Error("body too large"));
|
|
62
|
+
req.resume();
|
|
63
|
+
}
|
|
57
64
|
return;
|
|
58
65
|
}
|
|
59
66
|
chunks.push(chunk);
|
|
60
67
|
});
|
|
61
68
|
req.on("end", () => {
|
|
62
|
-
|
|
69
|
+
if (!capped)
|
|
70
|
+
resolve(Buffer.concat(chunks).toString("utf8"));
|
|
63
71
|
});
|
|
64
72
|
req.on("error", reject);
|
|
65
73
|
});
|
|
74
|
+
function cancellationResult(signal) {
|
|
75
|
+
return signal.aborted
|
|
76
|
+
? errorResult(499, "QI_REQUEST_CANCELLED", "Quality Intelligence request was cancelled.")
|
|
77
|
+
: null;
|
|
78
|
+
}
|
|
79
|
+
function requestAbortSignal(ctx) {
|
|
80
|
+
const controller = new AbortController();
|
|
81
|
+
const abort = () => {
|
|
82
|
+
if (!controller.signal.aborted) {
|
|
83
|
+
controller.abort("quality intelligence request cancelled");
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const abortOnIncompleteRequestClose = () => {
|
|
87
|
+
if (!ctx.req.complete)
|
|
88
|
+
abort();
|
|
89
|
+
};
|
|
90
|
+
const abortOnResponseClose = () => {
|
|
91
|
+
if (!ctx.res.writableEnded)
|
|
92
|
+
abort();
|
|
93
|
+
};
|
|
94
|
+
if (ctx.req.destroyed) {
|
|
95
|
+
abort();
|
|
96
|
+
return { signal: controller.signal, dispose: () => undefined };
|
|
97
|
+
}
|
|
98
|
+
ctx.req.once("aborted", abort);
|
|
99
|
+
ctx.req.once("close", abortOnIncompleteRequestClose);
|
|
100
|
+
if (typeof ctx.res.once === "function") {
|
|
101
|
+
ctx.res.once("close", abortOnResponseClose);
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
signal: controller.signal,
|
|
105
|
+
dispose: () => {
|
|
106
|
+
ctx.req.off("aborted", abort);
|
|
107
|
+
ctx.req.off("close", abortOnIncompleteRequestClose);
|
|
108
|
+
if (typeof ctx.res.off === "function") {
|
|
109
|
+
ctx.res.off("close", abortOnResponseClose);
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
66
114
|
function validateCapsuleSource(label, raw) {
|
|
67
115
|
if (typeof raw.capsuleId !== "string" || raw.capsuleId.trim().length === 0)
|
|
68
116
|
return undefined;
|
|
@@ -143,6 +191,12 @@ async function parseSources(req) {
|
|
|
143
191
|
result: errorResult(400, "QI_BAD_SOURCE", "A source entry is malformed."),
|
|
144
192
|
};
|
|
145
193
|
}
|
|
194
|
+
if (source.kind === "file" && !isAbsolute(source.path)) {
|
|
195
|
+
return {
|
|
196
|
+
ok: false,
|
|
197
|
+
result: errorResult(400, "QI_BAD_SOURCE", "File source paths must be absolute local paths."),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
146
200
|
sources.push(source);
|
|
147
201
|
}
|
|
148
202
|
return { ok: true, sources };
|
|
@@ -165,6 +219,12 @@ function mapCurrentAtomFingerprints(ingestedAtoms) {
|
|
|
165
219
|
atomId: String(entry.atom.id),
|
|
166
220
|
envelopeId: String(entry.atom.sourceEnvelopeId),
|
|
167
221
|
canonicalHashSha256Hex: entry.atom.canonicalHashSha256Hex,
|
|
222
|
+
...(entry.replacementGroupId !== undefined
|
|
223
|
+
? { replacementGroupId: entry.replacementGroupId }
|
|
224
|
+
: {}),
|
|
225
|
+
...(entry.replacementOrdinal !== undefined
|
|
226
|
+
? { replacementOrdinal: entry.replacementOrdinal }
|
|
227
|
+
: {}),
|
|
168
228
|
}));
|
|
169
229
|
}
|
|
170
230
|
function mapCurrentSourceFingerprints(ingestion) {
|
|
@@ -260,14 +320,15 @@ function loadManifestForDrift(id, evidenceDir) {
|
|
|
260
320
|
}
|
|
261
321
|
: { ok: true, manifest };
|
|
262
322
|
}
|
|
263
|
-
function ingestSourcesForDrift(sources, ingestRunId, deps) {
|
|
323
|
+
async function ingestSourcesForDrift(sources, ingestRunId, deps) {
|
|
264
324
|
try {
|
|
265
325
|
return {
|
|
266
326
|
ok: true,
|
|
267
|
-
ingestion:
|
|
327
|
+
ingestion: await ingestInlineSourcesAsync({
|
|
268
328
|
request: { sources },
|
|
269
329
|
runId: ingestRunId,
|
|
270
330
|
registeredAt: new Date().toISOString(),
|
|
331
|
+
allowEmpty: true,
|
|
271
332
|
capsuleResolver: makeCapsuleResolver(deps),
|
|
272
333
|
// Drift must see the board's LATEST snapshot, not the pinned immutable record — a pinned
|
|
273
334
|
// write-once runId can never drift under its own identity (#735). Generate keeps pinning.
|
|
@@ -283,8 +344,13 @@ function ingestSourcesForDrift(sources, ingestRunId, deps) {
|
|
|
283
344
|
}
|
|
284
345
|
}
|
|
285
346
|
function buildDriftStaleness(manifest, oldCandidates, ingestion) {
|
|
347
|
+
const oldAtomFingerprints = manifest.atomFingerprints;
|
|
348
|
+
const oldFingerprints = oldAtomFingerprints === undefined ? Object.freeze([]) : (manifest.sourceFingerprints ?? []);
|
|
286
349
|
return compareStaleness({
|
|
287
|
-
|
|
350
|
+
// Newer runs persist atom fingerprints, which are required for exact per-test drift. Older
|
|
351
|
+
// source-only manifests cannot safely distinguish an unchanged workspace path set from edited
|
|
352
|
+
// file content, so fail closed instead of reporting "fresh" from envelope fingerprints alone.
|
|
353
|
+
oldFingerprints,
|
|
288
354
|
evidenceRefs: manifest.evidenceRefs.map((ref) => ({
|
|
289
355
|
envelopeId: ref.envelopeId,
|
|
290
356
|
atomId: ref.atomId,
|
|
@@ -295,9 +361,7 @@ function buildDriftStaleness(manifest, oldCandidates, ingestion) {
|
|
|
295
361
|
})),
|
|
296
362
|
currentFingerprints: mapCurrentSourceFingerprints(ingestion),
|
|
297
363
|
currentAtomFingerprints: mapCurrentAtomFingerprints(ingestion.ingestedAtoms),
|
|
298
|
-
...(
|
|
299
|
-
? { oldAtomFingerprints: manifest.atomFingerprints }
|
|
300
|
-
: {}),
|
|
364
|
+
...(oldAtomFingerprints !== undefined ? { oldAtomFingerprints } : {}),
|
|
301
365
|
});
|
|
302
366
|
}
|
|
303
367
|
function buildDriftContext(sources, manifest, ingestion, oldArtifact) {
|
|
@@ -318,15 +382,24 @@ async function computeDrift(req, evidenceDir, id, ingestRunId, deps) {
|
|
|
318
382
|
const loaded = loadManifestForDrift(id, evidenceDir);
|
|
319
383
|
if (!loaded.ok)
|
|
320
384
|
return { ok: false, result: loaded.result };
|
|
321
|
-
const ingested = ingestSourcesForDrift(parsed.sources, ingestRunId, deps);
|
|
385
|
+
const ingested = await ingestSourcesForDrift(parsed.sources, ingestRunId, deps);
|
|
322
386
|
if (!ingested.ok)
|
|
323
387
|
return { ok: false, result: ingested.result };
|
|
324
388
|
const oldArtifact = loadQualityIntelligenceCandidates(id, { evidenceDir });
|
|
389
|
+
if (oldArtifact === undefined && loaded.manifest.totals.candidates > 0) {
|
|
390
|
+
return {
|
|
391
|
+
ok: false,
|
|
392
|
+
result: errorResult(500, "QI_CANDIDATES_MISSING", "The candidate artifact for this Quality Intelligence run is missing."),
|
|
393
|
+
};
|
|
394
|
+
}
|
|
325
395
|
return {
|
|
326
396
|
ok: true,
|
|
327
397
|
value: buildDriftContext(parsed.sources, loaded.manifest, ingested.ingestion, oldArtifact),
|
|
328
398
|
};
|
|
329
399
|
}
|
|
400
|
+
const ALIGN_INSERT_DELETE_COST = 3;
|
|
401
|
+
const ALIGN_SUBSTITUTE_COST = 4;
|
|
402
|
+
const ALIGN_CROSS_OLD_ATOM_COST = 10;
|
|
330
403
|
function collectStaleIds(staleness) {
|
|
331
404
|
return new Set([
|
|
332
405
|
...staleness.changedStale.map((reason) => reason.candidateId),
|
|
@@ -354,6 +427,7 @@ function looksLikeLegacyRequirementsFallback(drift, staleIds) {
|
|
|
354
427
|
function buildCurrentAtomIndexes(ingestion) {
|
|
355
428
|
const byId = new Map(ingestion.ingestedAtoms.map((entry) => [String(entry.atom.id), entry]));
|
|
356
429
|
const byEnvelope = new Map();
|
|
430
|
+
const replacementEntries = [];
|
|
357
431
|
for (const entry of ingestion.ingestedAtoms) {
|
|
358
432
|
const envelopeId = String(entry.atom.sourceEnvelopeId);
|
|
359
433
|
const current = byEnvelope.get(envelopeId);
|
|
@@ -363,19 +437,39 @@ function buildCurrentAtomIndexes(ingestion) {
|
|
|
363
437
|
else {
|
|
364
438
|
current.push(entry);
|
|
365
439
|
}
|
|
440
|
+
if (entry.replacementGroupId !== undefined && entry.replacementOrdinal !== undefined) {
|
|
441
|
+
replacementEntries.push({
|
|
442
|
+
atomId: String(entry.atom.id),
|
|
443
|
+
canonicalHashSha256Hex: entry.atom.canonicalHashSha256Hex,
|
|
444
|
+
replacementGroupId: entry.replacementGroupId,
|
|
445
|
+
replacementOrdinal: entry.replacementOrdinal,
|
|
446
|
+
});
|
|
447
|
+
}
|
|
366
448
|
}
|
|
367
449
|
return {
|
|
368
450
|
byId,
|
|
369
451
|
byEnvelope,
|
|
452
|
+
replacementEntries,
|
|
370
453
|
envelopeIds: new Set(ingestion.envelopes.map((envelope) => String(envelope.id))),
|
|
371
454
|
};
|
|
372
455
|
}
|
|
373
456
|
function buildOldAtomIndexes(atomFingerprints) {
|
|
374
457
|
const byId = new Map(atomFingerprints.map((fp) => [
|
|
375
458
|
fp.atomId,
|
|
376
|
-
{
|
|
459
|
+
{
|
|
460
|
+
envelopeId: fp.envelopeId,
|
|
461
|
+
canonicalHashSha256Hex: fp.canonicalHashSha256Hex,
|
|
462
|
+
...(fp.replacementGroupId !== undefined
|
|
463
|
+
? { replacementGroupId: fp.replacementGroupId }
|
|
464
|
+
: {}),
|
|
465
|
+
...(fp.replacementOrdinal !== undefined
|
|
466
|
+
? { replacementOrdinal: fp.replacementOrdinal }
|
|
467
|
+
: {}),
|
|
468
|
+
},
|
|
377
469
|
]));
|
|
378
470
|
const idsByEnvelope = new Map();
|
|
471
|
+
const idsInEnvelope = new Map();
|
|
472
|
+
const replacementEntries = [];
|
|
379
473
|
for (const fp of atomFingerprints) {
|
|
380
474
|
const ids = idsByEnvelope.get(fp.envelopeId);
|
|
381
475
|
if (ids === undefined) {
|
|
@@ -384,42 +478,185 @@ function buildOldAtomIndexes(atomFingerprints) {
|
|
|
384
478
|
else {
|
|
385
479
|
ids.add(fp.atomId);
|
|
386
480
|
}
|
|
481
|
+
const orderedIds = idsInEnvelope.get(fp.envelopeId);
|
|
482
|
+
if (orderedIds === undefined) {
|
|
483
|
+
idsInEnvelope.set(fp.envelopeId, [fp.atomId]);
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
orderedIds.push(fp.atomId);
|
|
487
|
+
}
|
|
488
|
+
if (fp.replacementGroupId !== undefined && fp.replacementOrdinal !== undefined) {
|
|
489
|
+
replacementEntries.push({
|
|
490
|
+
atomId: fp.atomId,
|
|
491
|
+
canonicalHashSha256Hex: fp.canonicalHashSha256Hex,
|
|
492
|
+
replacementGroupId: fp.replacementGroupId,
|
|
493
|
+
replacementOrdinal: fp.replacementOrdinal,
|
|
494
|
+
});
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
return { byId, idsByEnvelope, idsInEnvelope, replacementEntries };
|
|
498
|
+
}
|
|
499
|
+
function replacementEntriesByGroup(entries) {
|
|
500
|
+
const groups = new Map();
|
|
501
|
+
for (const entry of entries) {
|
|
502
|
+
const group = groups.get(entry.replacementGroupId);
|
|
503
|
+
if (group === undefined) {
|
|
504
|
+
groups.set(entry.replacementGroupId, [entry]);
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
group.push(entry);
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
for (const group of groups.values()) {
|
|
511
|
+
group.sort((a, b) => a.replacementOrdinal - b.replacementOrdinal);
|
|
512
|
+
}
|
|
513
|
+
return groups;
|
|
514
|
+
}
|
|
515
|
+
function alignmentPairCost(oldEntry, currentEntry, oldAtomIds) {
|
|
516
|
+
if (oldEntry.atomId === currentEntry.atomId)
|
|
517
|
+
return 0;
|
|
518
|
+
if (currentEntry.canonicalHashSha256Hex === oldEntry.canonicalHashSha256Hex)
|
|
519
|
+
return 0;
|
|
520
|
+
return oldAtomIds.has(currentEntry.atomId) ? ALIGN_CROSS_OLD_ATOM_COST : ALIGN_SUBSTITUTE_COST;
|
|
521
|
+
}
|
|
522
|
+
function replacementIndexEntryAt(entries, index) {
|
|
523
|
+
const entry = entries[index];
|
|
524
|
+
if (entry === undefined)
|
|
525
|
+
throw new Error("Replacement alignment index out of bounds.");
|
|
526
|
+
return entry;
|
|
527
|
+
}
|
|
528
|
+
function matrixValue(matrix, row, col) {
|
|
529
|
+
const value = matrix[row]?.[col];
|
|
530
|
+
if (value === undefined)
|
|
531
|
+
throw new Error("Replacement alignment matrix index out of bounds.");
|
|
532
|
+
return value;
|
|
533
|
+
}
|
|
534
|
+
function setMatrixValue(matrix, row, col, value) {
|
|
535
|
+
const rowValues = matrix[row];
|
|
536
|
+
if (rowValues === undefined) {
|
|
537
|
+
throw new Error("Replacement alignment matrix index out of bounds.");
|
|
538
|
+
}
|
|
539
|
+
rowValues[col] = value;
|
|
540
|
+
}
|
|
541
|
+
function buildAlignmentCostMatrix(oldEntries, currentEntries, oldAtomIds) {
|
|
542
|
+
const matrix = Array.from({ length: oldEntries.length + 1 }, () => Array.from({ length: currentEntries.length + 1 }, () => 0));
|
|
543
|
+
for (let oldIndex = 1; oldIndex <= oldEntries.length; oldIndex += 1) {
|
|
544
|
+
setMatrixValue(matrix, oldIndex, 0, oldIndex * ALIGN_INSERT_DELETE_COST);
|
|
545
|
+
}
|
|
546
|
+
for (let currentIndex = 1; currentIndex <= currentEntries.length; currentIndex += 1) {
|
|
547
|
+
setMatrixValue(matrix, 0, currentIndex, currentIndex * ALIGN_INSERT_DELETE_COST);
|
|
548
|
+
}
|
|
549
|
+
for (let oldIndex = 1; oldIndex <= oldEntries.length; oldIndex += 1) {
|
|
550
|
+
for (let currentIndex = 1; currentIndex <= currentEntries.length; currentIndex += 1) {
|
|
551
|
+
const pairCost = alignmentPairCost(replacementIndexEntryAt(oldEntries, oldIndex - 1), replacementIndexEntryAt(currentEntries, currentIndex - 1), oldAtomIds);
|
|
552
|
+
const pair = matrixValue(matrix, oldIndex - 1, currentIndex - 1) + pairCost;
|
|
553
|
+
const deletion = matrixValue(matrix, oldIndex - 1, currentIndex) + ALIGN_INSERT_DELETE_COST;
|
|
554
|
+
const insertion = matrixValue(matrix, oldIndex, currentIndex - 1) + ALIGN_INSERT_DELETE_COST;
|
|
555
|
+
setMatrixValue(matrix, oldIndex, currentIndex, Math.min(pair, deletion, insertion));
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
return matrix;
|
|
559
|
+
}
|
|
560
|
+
function alignReplacementEntries(oldEntries, currentEntries) {
|
|
561
|
+
const mapping = new Map();
|
|
562
|
+
const oldAtomIds = new Set(oldEntries.map((entry) => entry.atomId));
|
|
563
|
+
const costs = buildAlignmentCostMatrix(oldEntries, currentEntries, oldAtomIds);
|
|
564
|
+
let oldIndex = oldEntries.length;
|
|
565
|
+
let currentIndex = currentEntries.length;
|
|
566
|
+
while (oldIndex > 0 && currentIndex > 0) {
|
|
567
|
+
const oldEntry = replacementIndexEntryAt(oldEntries, oldIndex - 1);
|
|
568
|
+
const currentEntry = replacementIndexEntryAt(currentEntries, currentIndex - 1);
|
|
569
|
+
const pairCost = alignmentPairCost(oldEntry, currentEntry, oldAtomIds);
|
|
570
|
+
const currentCost = matrixValue(costs, oldIndex, currentIndex);
|
|
571
|
+
const pair = matrixValue(costs, oldIndex - 1, currentIndex - 1) + pairCost;
|
|
572
|
+
const deletion = matrixValue(costs, oldIndex - 1, currentIndex) + ALIGN_INSERT_DELETE_COST;
|
|
573
|
+
const insertion = matrixValue(costs, oldIndex, currentIndex - 1) + ALIGN_INSERT_DELETE_COST;
|
|
574
|
+
if (pairCost === 0 && currentCost === pair) {
|
|
575
|
+
mapping.set(oldEntry.atomId, currentEntry.atomId);
|
|
576
|
+
oldIndex -= 1;
|
|
577
|
+
currentIndex -= 1;
|
|
578
|
+
}
|
|
579
|
+
else if (currentCost === insertion) {
|
|
580
|
+
currentIndex -= 1;
|
|
581
|
+
}
|
|
582
|
+
else if (currentCost === deletion) {
|
|
583
|
+
oldIndex -= 1;
|
|
584
|
+
}
|
|
585
|
+
else {
|
|
586
|
+
mapping.set(oldEntry.atomId, currentEntry.atomId);
|
|
587
|
+
oldIndex -= 1;
|
|
588
|
+
currentIndex -= 1;
|
|
589
|
+
}
|
|
387
590
|
}
|
|
388
|
-
return
|
|
591
|
+
return mapping;
|
|
389
592
|
}
|
|
390
|
-
function
|
|
593
|
+
function buildReplacementAtomMap(oldEntries, currentEntries) {
|
|
594
|
+
const oldGroups = replacementEntriesByGroup(oldEntries);
|
|
595
|
+
const currentGroups = replacementEntriesByGroup(currentEntries);
|
|
596
|
+
const mapping = new Map();
|
|
597
|
+
for (const [groupId, oldGroup] of oldGroups) {
|
|
598
|
+
const currentGroup = currentGroups.get(groupId);
|
|
599
|
+
if (currentGroup === undefined)
|
|
600
|
+
continue;
|
|
601
|
+
for (const [oldAtomId, currentAtomId] of alignReplacementEntries(oldGroup, currentGroup)) {
|
|
602
|
+
mapping.set(oldAtomId, currentAtomId);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
return mapping;
|
|
606
|
+
}
|
|
607
|
+
function addPositionalReplacementRequirementAtom(atomId, envelopeId, current, old, atomIdsToRegenerate) {
|
|
391
608
|
const oldIds = old.idsByEnvelope.get(envelopeId) ?? new Set();
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
609
|
+
const oldIdsInEnvelope = old.idsInEnvelope.get(envelopeId) ?? [];
|
|
610
|
+
const currentAtomsInEnvelope = current.byEnvelope.get(envelopeId) ?? [];
|
|
611
|
+
const oldIndex = oldIdsInEnvelope.indexOf(atomId);
|
|
612
|
+
const replacement = oldIndex >= 0 ? currentAtomsInEnvelope[oldIndex] : undefined;
|
|
613
|
+
const replacementId = replacement === undefined ? undefined : String(replacement.atom.id);
|
|
614
|
+
if (replacementId !== undefined && !oldIds.has(replacementId)) {
|
|
615
|
+
atomIdsToRegenerate.add(replacementId);
|
|
396
616
|
}
|
|
397
617
|
}
|
|
398
|
-
function
|
|
618
|
+
function addChangedCurrentAtom(oldAtom, currentEntry, atomIdsToRegenerate) {
|
|
619
|
+
if (currentEntry === undefined)
|
|
620
|
+
return false;
|
|
621
|
+
if (currentEntry.atom.canonicalHashSha256Hex === oldAtom.canonicalHashSha256Hex)
|
|
622
|
+
return false;
|
|
623
|
+
atomIdsToRegenerate.add(String(currentEntry.atom.id));
|
|
624
|
+
return true;
|
|
625
|
+
}
|
|
626
|
+
function addMappedReplacementAtom(atomId, current, old, replacementAtomIdsByOldAtomId, atomIdsToRegenerate) {
|
|
627
|
+
const replacementAtomId = replacementAtomIdsByOldAtomId.get(atomId);
|
|
628
|
+
if (replacementAtomId === undefined || replacementAtomId === atomId)
|
|
629
|
+
return false;
|
|
630
|
+
if (old.byId.has(replacementAtomId) || !current.byId.has(replacementAtomId))
|
|
631
|
+
return false;
|
|
632
|
+
atomIdsToRegenerate.add(replacementAtomId);
|
|
633
|
+
return true;
|
|
634
|
+
}
|
|
635
|
+
function addRegenerationAtomsForCandidate(candidate, current, old, replacementAtomIdsByOldAtomId, atomIdsToRegenerate) {
|
|
399
636
|
for (const atomId of candidate.derivedFromAtomIds) {
|
|
400
637
|
const oldAtom = old.byId.get(atomId);
|
|
401
638
|
const currentAtom = current.byId.get(atomId);
|
|
402
|
-
if (oldAtom !== undefined &&
|
|
403
|
-
currentAtom !== undefined &&
|
|
404
|
-
currentAtom.atom.canonicalHashSha256Hex !== oldAtom.canonicalHashSha256Hex) {
|
|
405
|
-
atomIdsToRegenerate.add(String(currentAtom.atom.id));
|
|
406
|
-
continue;
|
|
407
|
-
}
|
|
408
639
|
if (oldAtom === undefined || !current.envelopeIds.has(oldAtom.envelopeId))
|
|
409
640
|
continue;
|
|
641
|
+
if (addChangedCurrentAtom(oldAtom, currentAtom, atomIdsToRegenerate))
|
|
642
|
+
continue;
|
|
643
|
+
if (addMappedReplacementAtom(atomId, current, old, replacementAtomIdsByOldAtomId, atomIdsToRegenerate)) {
|
|
644
|
+
continue;
|
|
645
|
+
}
|
|
410
646
|
if (!oldAtom.envelopeId.startsWith(REQUIREMENTS_ENVELOPE_PREFIX))
|
|
411
647
|
continue;
|
|
412
|
-
|
|
648
|
+
addPositionalReplacementRequirementAtom(atomId, oldAtom.envelopeId, current, old, atomIdsToRegenerate);
|
|
413
649
|
}
|
|
414
650
|
}
|
|
415
651
|
function collectAtomsToRegenerate(drift, staleIds) {
|
|
416
652
|
const current = buildCurrentAtomIndexes(drift.ingestion);
|
|
417
653
|
const old = buildOldAtomIndexes(drift.manifest.atomFingerprints ?? []);
|
|
654
|
+
const replacementAtomIdsByOldAtomId = buildReplacementAtomMap(old.replacementEntries, current.replacementEntries);
|
|
418
655
|
const atomIdsToRegenerate = new Set();
|
|
419
656
|
for (const candidate of drift.oldCandidates) {
|
|
420
657
|
if (!staleIds.has(candidate.id))
|
|
421
658
|
continue;
|
|
422
|
-
addRegenerationAtomsForCandidate(candidate, current, old, atomIdsToRegenerate);
|
|
659
|
+
addRegenerationAtomsForCandidate(candidate, current, old, replacementAtomIdsByOldAtomId, atomIdsToRegenerate);
|
|
423
660
|
}
|
|
424
661
|
return drift.ingestion.ingestedAtoms.filter((entry) => atomIdsToRegenerate.has(String(entry.atom.id)));
|
|
425
662
|
}
|
|
@@ -444,9 +681,10 @@ function narrowRegeneration(drift) {
|
|
|
444
681
|
legacyRequirementsFallback: false,
|
|
445
682
|
};
|
|
446
683
|
}
|
|
447
|
-
function regenWorkflowDeps(deps, target, evidenceStore, capture) {
|
|
684
|
+
function regenWorkflowDeps(deps, target, evidenceStore, capture, signal) {
|
|
448
685
|
return {
|
|
449
686
|
sink: { emit: () => undefined },
|
|
687
|
+
signal,
|
|
450
688
|
evidenceStore,
|
|
451
689
|
candidatesSink: {
|
|
452
690
|
record: (cands, generatedAt) => {
|
|
@@ -454,6 +692,16 @@ function regenWorkflowDeps(deps, target, evidenceStore, capture) {
|
|
|
454
692
|
},
|
|
455
693
|
},
|
|
456
694
|
generate: createQiGenerationPort(deps, target),
|
|
695
|
+
// The regenerate-stale judge deliberately shares the auto-selected generation model id rather than
|
|
696
|
+
// resolving an independent qi:judge-logic model the way the initial run does (runExecution.ts).
|
|
697
|
+
// This is safe because the regen target comes from resolveQiTestDesignSelection(deps) with NO
|
|
698
|
+
// explicit model request: auto-selection prefers structured-output models, so whenever a judge is
|
|
699
|
+
// possible (a structured-output model is configured) the generation model already satisfies
|
|
700
|
+
// qi:judge-logic, and when only chat-only models exist both generation and the judge degrade
|
|
701
|
+
// (judge skipped via buildJudgePortIfAvailable's typed-unavailable catch). The initial-run
|
|
702
|
+
// asymmetry — an explicitly requested chat-only generation model paired with a separate
|
|
703
|
+
// structured-output judge — cannot arise here because the regen path never carries an explicit
|
|
704
|
+
// generation-model request.
|
|
457
705
|
...(target.kind === "model" ? { judge: buildJudgePortIfAvailable(deps, target.modelId) } : {}),
|
|
458
706
|
};
|
|
459
707
|
}
|
|
@@ -466,7 +714,7 @@ function buildScopedRegenPlan(newRunId, requestedAt) {
|
|
|
466
714
|
};
|
|
467
715
|
}
|
|
468
716
|
async function executeScopedWorkflow(args) {
|
|
469
|
-
const { deps, target, evidenceStore, capture, plan, ingestion, atomsToRegenerate, profile } = args;
|
|
717
|
+
const { deps, target, evidenceStore, capture, plan, ingestion, atomsToRegenerate, profile, signal, } = args;
|
|
470
718
|
try {
|
|
471
719
|
const summary = await runQualityIntelligenceModelRoutedTestDesign({
|
|
472
720
|
plan,
|
|
@@ -474,7 +722,7 @@ async function executeScopedWorkflow(args) {
|
|
|
474
722
|
ingestedAtoms: atomsToRegenerate,
|
|
475
723
|
provenanceRefs: ingestion.provenanceRefs,
|
|
476
724
|
profile,
|
|
477
|
-
}, regenWorkflowDeps(deps, target, evidenceStore, capture));
|
|
725
|
+
}, regenWorkflowDeps(deps, target, evidenceStore, capture, signal));
|
|
478
726
|
return summary.status === "succeeded"
|
|
479
727
|
? null
|
|
480
728
|
: errorResult(500, "QI_REGEN_FAILED", "Scoped regeneration did not succeed.");
|
|
@@ -499,7 +747,7 @@ function finalizeScopedWorkflow(evidenceStore, newRunId, generatedCandidates, ge
|
|
|
499
747
|
};
|
|
500
748
|
}
|
|
501
749
|
async function runScopedEphemeral(args) {
|
|
502
|
-
const { deps, target, newRunId, requestedAt, ingestion, atomsToRegenerate, profile } = args;
|
|
750
|
+
const { deps, target, newRunId, requestedAt, ingestion, atomsToRegenerate, profile, signal } = args;
|
|
503
751
|
const evidenceStore = createInMemoryQualityIntelligenceLocalStore();
|
|
504
752
|
let generatedCandidates = [];
|
|
505
753
|
let generatedAt;
|
|
@@ -515,16 +763,23 @@ async function runScopedEphemeral(args) {
|
|
|
515
763
|
ingestion,
|
|
516
764
|
atomsToRegenerate,
|
|
517
765
|
profile,
|
|
766
|
+
signal,
|
|
518
767
|
});
|
|
519
768
|
if (failure !== null)
|
|
520
769
|
return { ok: false, result: failure };
|
|
521
770
|
return finalizeScopedWorkflow(evidenceStore, newRunId, generatedCandidates, generatedAt);
|
|
522
771
|
}
|
|
523
772
|
function buildMergedCandidates(newRunId, preservedCandidates, regeneratedCandidates) {
|
|
524
|
-
return [
|
|
773
|
+
return deduplicateCandidates([
|
|
525
774
|
...preservedCandidates.map((candidate) => rowToCandidate(candidate, newRunId)),
|
|
526
775
|
...regeneratedCandidates,
|
|
527
|
-
];
|
|
776
|
+
]);
|
|
777
|
+
}
|
|
778
|
+
function assertMergedCandidateBudget(preservedCandidates, regeneratedCandidates) {
|
|
779
|
+
const limit = QUALITY_INTELLIGENCE_DEFAULT_WORKFLOW_LIMITS.maxCandidatesPerRun;
|
|
780
|
+
if (preservedCandidates.length + regeneratedCandidates.length <= limit)
|
|
781
|
+
return null;
|
|
782
|
+
return errorResult(409, "QI_REGEN_CANDIDATE_CAP_EXCEEDED", "Regenerating the stale tests would exceed the per-run candidate limit. Reduce the stale scope or start a fresh QI run against the current source.");
|
|
528
783
|
}
|
|
529
784
|
function buildCoverageArtifacts(runId, ingestion, mergedCandidates) {
|
|
530
785
|
const atoms = ingestion.ingestedAtoms.map((entry) => entry.atom);
|
|
@@ -540,6 +795,18 @@ function buildCoverageArtifacts(runId, ingestion, mergedCandidates) {
|
|
|
540
795
|
.filter((row) => row !== null),
|
|
541
796
|
};
|
|
542
797
|
}
|
|
798
|
+
// Order by severity (critical -> low) BEFORE truncating, then cap to the per-run limit — mirroring
|
|
799
|
+
// the initial run path (modelRoutedTestDesign). Sorting first guarantees that if the merge hits the
|
|
800
|
+
// cap, the most severe findings (including high-severity uncovered-requirement coverage gaps) survive
|
|
801
|
+
// rather than being dropped by array position. Array.prototype.sort is stable, so same-severity
|
|
802
|
+
// insertion order — coverage-gap rows first — is preserved, matching the initial path exactly.
|
|
803
|
+
function sortAndCapMergedFindings(rows, cap) {
|
|
804
|
+
return rows
|
|
805
|
+
.slice()
|
|
806
|
+
.sort((a, b) => QualityIntelligence.QUALITY_INTELLIGENCE_SEVERITY_RANK[a.severity] -
|
|
807
|
+
QualityIntelligence.QUALITY_INTELLIGENCE_SEVERITY_RANK[b.severity])
|
|
808
|
+
.slice(0, cap);
|
|
809
|
+
}
|
|
543
810
|
function buildMergedFindings(args) {
|
|
544
811
|
const preservedIds = new Set(args.preservedCandidates.map((candidate) => candidate.id));
|
|
545
812
|
const regeneratedIds = new Set(args.regeneratedCandidates.map((candidate) => String(candidate.id)));
|
|
@@ -547,12 +814,16 @@ function buildMergedFindings(args) {
|
|
|
547
814
|
const regeneratedJudgeRows = args.regeneratedManifest === undefined
|
|
548
815
|
? []
|
|
549
816
|
: filteredJudgeFindings(args.regeneratedManifest.findings, regeneratedIds);
|
|
550
|
-
|
|
817
|
+
// Source the cap from the default workflow limits: the re-check regeneration sub-run
|
|
818
|
+
// (regenWorkflowDeps) passes no custom `limits`, so it runs under these defaults — keeping the
|
|
819
|
+
// merge cap consistent with the sub-run's own maxFindingsPerRun.
|
|
820
|
+
const merged = sortAndCapMergedFindings([
|
|
551
821
|
...args.coverageGapRows,
|
|
552
822
|
...validateCandidates(args.runId, args.mergedCandidates).map(toCandidateFindingRow),
|
|
553
823
|
...preservedJudgeRows,
|
|
554
824
|
...regeneratedJudgeRows,
|
|
555
|
-
]);
|
|
825
|
+
], QUALITY_INTELLIGENCE_DEFAULT_WORKFLOW_LIMITS.maxFindingsPerRun);
|
|
826
|
+
return Object.freeze(merged);
|
|
556
827
|
}
|
|
557
828
|
function buildMergedRunRecord(args) {
|
|
558
829
|
const { newRunId, requestedAt, profile, oldManifest, ingestion, preservedCandidates } = args;
|
|
@@ -600,8 +871,16 @@ function optionalModelFields(regeneratedManifest) {
|
|
|
600
871
|
: {}),
|
|
601
872
|
};
|
|
602
873
|
}
|
|
603
|
-
function recordMergedManifest(evidenceDir, args) {
|
|
604
|
-
|
|
874
|
+
function recordMergedManifest(evidenceDir, args, additionalSecrets) {
|
|
875
|
+
// Persist-time secret scrubbing at parity with the initial-run path (runExecution.ts
|
|
876
|
+
// buildWorkflowDeps): the merged manifest carries judge rationales forwarded from the regenerated
|
|
877
|
+
// run, so the live additionalSecrets list must reach the manifest writer here too — otherwise a
|
|
878
|
+
// configured provider secret echoed in a rationale that the security-package builtin patterns do
|
|
879
|
+
// not match would survive into the on-disk merged manifest (Issue #747 defence-in-depth).
|
|
880
|
+
recordQualityIntelligenceRun(buildMergedRunRecord(args), {
|
|
881
|
+
evidenceDir,
|
|
882
|
+
redaction: { additionalSecrets },
|
|
883
|
+
});
|
|
605
884
|
}
|
|
606
885
|
function recordMergedCandidatesArtifact(args) {
|
|
607
886
|
recordQualityIntelligenceCandidates({
|
|
@@ -626,6 +905,14 @@ function persistMergedRun(args) {
|
|
|
626
905
|
regeneratedCandidates: args.regeneratedCandidates,
|
|
627
906
|
regeneratedManifest: args.regeneratedManifest,
|
|
628
907
|
});
|
|
908
|
+
recordMergedCandidatesArtifact({
|
|
909
|
+
deps: args.deps,
|
|
910
|
+
evidenceDir: args.evidenceDir,
|
|
911
|
+
newRunId: args.newRunId,
|
|
912
|
+
completedAt: args.completedAt,
|
|
913
|
+
mergedCandidates,
|
|
914
|
+
preservedEditedRevisions: args.preservedEditedRevisions,
|
|
915
|
+
});
|
|
629
916
|
recordMergedManifest(args.evidenceDir, {
|
|
630
917
|
newRunId: args.newRunId,
|
|
631
918
|
requestedAt: args.requestedAt,
|
|
@@ -638,23 +925,9 @@ function persistMergedRun(args) {
|
|
|
638
925
|
completedAt: args.completedAt,
|
|
639
926
|
findings,
|
|
640
927
|
coverageMatrix: coverage.coverageMatrix,
|
|
641
|
-
});
|
|
642
|
-
recordMergedCandidatesArtifact({
|
|
643
|
-
deps: args.deps,
|
|
644
|
-
evidenceDir: args.evidenceDir,
|
|
645
|
-
newRunId: args.newRunId,
|
|
646
|
-
completedAt: args.completedAt,
|
|
647
|
-
mergedCandidates,
|
|
648
|
-
preservedEditedRevisions: args.preservedEditedRevisions,
|
|
649
|
-
});
|
|
928
|
+
}, currentRedactionSecrets(args.deps));
|
|
650
929
|
}
|
|
651
|
-
function immediateRegenerationResult(
|
|
652
|
-
if (narrowed.staleIds.size === 0) {
|
|
653
|
-
return {
|
|
654
|
-
status: 200,
|
|
655
|
-
body: { runId: id, regeneratedCount: 0, preservedCount: drift.oldCandidates.length },
|
|
656
|
-
};
|
|
657
|
-
}
|
|
930
|
+
function immediateRegenerationResult(narrowed) {
|
|
658
931
|
if (narrowed.legacyRequirementsFallback) {
|
|
659
932
|
return errorResult(409, "QI_REGEN_LEGACY_REQUIREMENTS_UNSUPPORTED", "This run predates atom-level requirements drift metadata. Start a new QI run against the current requirements sources instead.");
|
|
660
933
|
}
|
|
@@ -663,7 +936,7 @@ function immediateRegenerationResult(id, drift, narrowed) {
|
|
|
663
936
|
// regenerate), persisting the merge would silently drop the entire run. This is the catastrophic
|
|
664
937
|
// shape an atom-id scheme drift would take; fail closed with an actionable error instead (Epic
|
|
665
938
|
// #735 drift correctness). The legitimate "some tests orphaned, some preserved" case keeps
|
|
666
|
-
// preserved > 0 and is unaffected
|
|
939
|
+
// preserved > 0 and is unaffected.
|
|
667
940
|
if (narrowed.preservedCandidates.length === 0 && narrowed.atomsToRegenerate.length === 0) {
|
|
668
941
|
return errorResult(409, "QI_REGEN_WOULD_EMPTY", "Regenerating the stale tests would remove every test in this run because the current source no longer maps to any of them. Start a fresh QI run against the current source instead.");
|
|
669
942
|
}
|
|
@@ -690,6 +963,7 @@ async function regenerateCandidateSlice(args) {
|
|
|
690
963
|
ingestion: args.drift.ingestion,
|
|
691
964
|
atomsToRegenerate: args.narrowed.atomsToRegenerate,
|
|
692
965
|
profile: args.profile,
|
|
966
|
+
signal: args.signal,
|
|
693
967
|
});
|
|
694
968
|
return outcome.ok
|
|
695
969
|
? {
|
|
@@ -702,12 +976,41 @@ async function regenerateCandidateSlice(args) {
|
|
|
702
976
|
}
|
|
703
977
|
: outcome;
|
|
704
978
|
}
|
|
979
|
+
function persistRegenerationResult(args) {
|
|
980
|
+
persistMergedRun({
|
|
981
|
+
deps: args.deps,
|
|
982
|
+
evidenceDir: args.evidenceDir,
|
|
983
|
+
newRunId: args.newRunId,
|
|
984
|
+
requestedAt: args.requestedAt,
|
|
985
|
+
profile: args.profile,
|
|
986
|
+
oldManifest: args.drift.manifest,
|
|
987
|
+
ingestion: args.drift.ingestion,
|
|
988
|
+
preservedCandidates: args.narrowed.preservedCandidates,
|
|
989
|
+
preservedEditedRevisions: args.narrowed.preservedEditedRevisions,
|
|
990
|
+
regeneratedCandidates: args.regenerated.candidates,
|
|
991
|
+
regeneratedManifest: args.regenerated.manifest,
|
|
992
|
+
completedAt: args.regenerated.completedAt,
|
|
993
|
+
});
|
|
994
|
+
}
|
|
995
|
+
function regenerationSuccessResult(args) {
|
|
996
|
+
return {
|
|
997
|
+
status: 200,
|
|
998
|
+
body: {
|
|
999
|
+
runId: args.newRunId,
|
|
1000
|
+
regeneratedCount: args.regeneratedCount,
|
|
1001
|
+
preservedCount: args.preservedCount,
|
|
1002
|
+
},
|
|
1003
|
+
};
|
|
1004
|
+
}
|
|
705
1005
|
async function regenerateFromDrift(args) {
|
|
706
|
-
const { deps,
|
|
1006
|
+
const { deps, evidenceDir, newRunId, requestedAt, drift, signal } = args;
|
|
707
1007
|
const narrowed = narrowRegeneration(drift);
|
|
708
|
-
const immediate = immediateRegenerationResult(
|
|
1008
|
+
const immediate = immediateRegenerationResult(narrowed);
|
|
709
1009
|
if (immediate !== null)
|
|
710
1010
|
return immediate;
|
|
1011
|
+
const cancelledBeforeRegeneration = cancellationResult(signal);
|
|
1012
|
+
if (cancelledBeforeRegeneration !== null)
|
|
1013
|
+
return cancelledBeforeRegeneration;
|
|
711
1014
|
const profile = resolveProfile(drift.manifest.policyProfileIds[0]);
|
|
712
1015
|
const regenerated = await regenerateCandidateSlice({
|
|
713
1016
|
deps,
|
|
@@ -716,31 +1019,31 @@ async function regenerateFromDrift(args) {
|
|
|
716
1019
|
drift,
|
|
717
1020
|
narrowed,
|
|
718
1021
|
profile,
|
|
1022
|
+
signal,
|
|
719
1023
|
});
|
|
720
1024
|
if (!regenerated.ok)
|
|
721
1025
|
return regenerated.result;
|
|
722
|
-
|
|
1026
|
+
const cancelledBeforePersist = cancellationResult(signal);
|
|
1027
|
+
if (cancelledBeforePersist !== null)
|
|
1028
|
+
return cancelledBeforePersist;
|
|
1029
|
+
const budgetError = assertMergedCandidateBudget(narrowed.preservedCandidates, regenerated.value.candidates);
|
|
1030
|
+
if (budgetError !== null)
|
|
1031
|
+
return budgetError;
|
|
1032
|
+
persistRegenerationResult({
|
|
723
1033
|
deps,
|
|
724
1034
|
evidenceDir,
|
|
725
1035
|
newRunId,
|
|
726
1036
|
requestedAt,
|
|
1037
|
+
drift,
|
|
1038
|
+
narrowed,
|
|
727
1039
|
profile,
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
completedAt: regenerated.value.completedAt,
|
|
1040
|
+
regenerated: regenerated.value,
|
|
1041
|
+
});
|
|
1042
|
+
return regenerationSuccessResult({
|
|
1043
|
+
newRunId,
|
|
1044
|
+
regeneratedCount: regenerated.value.candidates.length,
|
|
1045
|
+
preservedCount: narrowed.preservedCandidates.length,
|
|
735
1046
|
});
|
|
736
|
-
return {
|
|
737
|
-
status: 200,
|
|
738
|
-
body: {
|
|
739
|
-
runId: newRunId,
|
|
740
|
-
regeneratedCount: regenerated.value.candidates.length,
|
|
741
|
-
preservedCount: narrowed.preservedCandidates.length,
|
|
742
|
-
},
|
|
743
|
-
};
|
|
744
1047
|
}
|
|
745
1048
|
export async function handleQiReCheck(ctx, deps) {
|
|
746
1049
|
const { id } = ctx.params;
|
|
@@ -788,22 +1091,26 @@ export async function handleQiRegenerateStale(ctx, deps) {
|
|
|
788
1091
|
}
|
|
789
1092
|
const newRunId = `qi-run-${randomUUID()}`;
|
|
790
1093
|
const requestedAt = new Date().toISOString();
|
|
1094
|
+
const abortScope = requestAbortSignal(ctx);
|
|
791
1095
|
try {
|
|
792
1096
|
const drift = await computeDrift(ctx.req, evidenceDir, id, newRunId, deps);
|
|
793
1097
|
if (!drift.ok)
|
|
794
1098
|
return drift.result;
|
|
795
1099
|
return await regenerateFromDrift({
|
|
796
1100
|
deps,
|
|
797
|
-
id,
|
|
798
1101
|
evidenceDir,
|
|
799
1102
|
newRunId,
|
|
800
1103
|
requestedAt,
|
|
801
1104
|
drift: drift.value,
|
|
1105
|
+
signal: abortScope.signal,
|
|
802
1106
|
});
|
|
803
1107
|
}
|
|
804
1108
|
catch {
|
|
805
1109
|
return errorResult(500, "QI_REGEN_FAILED", "Failed to regenerate stale candidates.");
|
|
806
1110
|
}
|
|
1111
|
+
finally {
|
|
1112
|
+
abortScope.dispose();
|
|
1113
|
+
}
|
|
807
1114
|
}
|
|
808
1115
|
export const QI_RECHECK_ROUTE_GROUP = [
|
|
809
1116
|
{
|