@oscharko-dev/keiko 0.2.0-beta.5 → 0.2.0-beta.7
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 +17 -22
- 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.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.js +50 -2
- 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 +21 -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/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 +2 -2
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts +17 -3
- 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 +1 -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 +26 -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/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/openai-adapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.js +51 -6
- 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/markdown.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.js +8 -3
- 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/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/chat-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +50 -12
- 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 +10 -8
- 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 +165 -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-qa-hybrid.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.js +115 -22
- 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 +54 -21
- 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 +11 -4
- 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 +7 -3
- 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/editRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.js +61 -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 +9 -3
- 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/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 +69 -65
- 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/reviewRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.js +14 -6
- 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 +336 -47
- 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 +61 -6
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +16 -5
- 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/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/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/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 +6 -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/1m-kvwm6_90_3.css +0 -1
- 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/2ngm8iwdb1cbv.js +0 -106
- 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/turbopack-2lg1g6kbsfm0x.js +0 -1
- /package/dist/ui/static/_next/static/{hR2gBQqCDKdPdSxBqZhqv → frhs0YcUqCPLHal-wHjDP}/_buildManifest.js +0 -0
- /package/dist/ui/static/_next/static/{hR2gBQqCDKdPdSxBqZhqv → frhs0YcUqCPLHal-wHjDP}/_clientMiddlewareManifest.js +0 -0
- /package/dist/ui/static/_next/static/{hR2gBQqCDKdPdSxBqZhqv → frhs0YcUqCPLHal-wHjDP}/_ssgManifest.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
// First-run gateway setup for non-technical UI users. The browser provides
|
|
2
|
-
//
|
|
3
|
-
// call, stores the resulting config on disk with private permissions, and
|
|
4
|
-
// runtime config without exposing credentials back to the browser.
|
|
1
|
+
// First-run gateway setup for non-technical UI users. The browser provides a base URL, API token,
|
|
2
|
+
// and optionally a Figma PAT; the loopback BFF builds the local provider config, performs a real
|
|
3
|
+
// chat-completions smoke call, stores the resulting config on disk with private permissions, and
|
|
4
|
+
// updates the in-memory runtime config without exposing credentials back to the browser.
|
|
5
5
|
import { chmodSync, existsSync, lstatSync, mkdirSync, renameSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
6
6
|
import { dirname, join, resolve } from "node:path";
|
|
7
7
|
import { randomUUID } from "node:crypto";
|
|
@@ -9,6 +9,7 @@ import { apiKeyHeaderValue, ConfigInvalidError, DEFAULT_API_KEY_HEADER_NAME, Gat
|
|
|
9
9
|
import { gatewayFetch, readJsonCapped } from "@oscharko-dev/keiko-model-gateway/internal/http";
|
|
10
10
|
import { redact } from "@oscharko-dev/keiko-security";
|
|
11
11
|
import { errorBody } from "./routes.js";
|
|
12
|
+
import { currentGatewayEgressConfig } from "./deps.js";
|
|
12
13
|
const MAX_BODY_BYTES = 64_000;
|
|
13
14
|
// Issue #144: exported so discovery-normalization tests can pin the slice cap
|
|
14
15
|
// without hardcoding the number. The discovery surface is a public seam.
|
|
@@ -19,6 +20,7 @@ const DISCOVERED_MODEL_SMOKE_TIMEOUT_MS = 15_000;
|
|
|
19
20
|
const DEPLOYMENT_SMOKE_TIMEOUT_MS = 30_000;
|
|
20
21
|
const SETUP_SMOKE_CONCURRENCY = 4;
|
|
21
22
|
const CHAT_COMPATIBLE_MODES = new Set(["chat", "completion", "responses"]);
|
|
23
|
+
const EMBEDDING_ID_PATTERN = /(?:^|[-_/. ])(?:text-)?embed(?:ding)?s?(?:[-_/. ]|$)|ada-002(?:$|[-_/. ])/i;
|
|
22
24
|
class BodyTooLargeError extends Error {
|
|
23
25
|
constructor() {
|
|
24
26
|
super("request body too large");
|
|
@@ -28,6 +30,9 @@ class BodyTooLargeError extends Error {
|
|
|
28
30
|
function isRecord(value) {
|
|
29
31
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
30
32
|
}
|
|
33
|
+
function isRouteResult(value) {
|
|
34
|
+
return isRecord(value) && typeof value.status === "number";
|
|
35
|
+
}
|
|
31
36
|
function readBody(req) {
|
|
32
37
|
return new Promise((resolve, reject) => {
|
|
33
38
|
const chunks = [];
|
|
@@ -95,23 +100,73 @@ function isAzureFoundryBaseUrl(baseUrl) {
|
|
|
95
100
|
}
|
|
96
101
|
}
|
|
97
102
|
function providerRaw(modelId, baseUrl, apiKey, options = {}) {
|
|
103
|
+
const defaultCapability = options.embeddingModelIds?.includes(modelId) === true
|
|
104
|
+
? createDefaultEmbeddingCapabilityForSetup(modelId)
|
|
105
|
+
: createDefaultChatCapability(modelId);
|
|
98
106
|
return {
|
|
99
107
|
modelId,
|
|
100
108
|
baseUrl,
|
|
101
109
|
apiKey,
|
|
102
110
|
apiKeyHeaderName: options.apiKeyHeaderName ?? DEFAULT_API_KEY_HEADER_NAME,
|
|
103
|
-
capability:
|
|
111
|
+
capability: options.imageInputModelIds?.includes(modelId) === true
|
|
112
|
+
? { ...defaultCapability, supportsImageInput: true }
|
|
113
|
+
: defaultCapability,
|
|
104
114
|
timeoutMs: options.timeoutMs ?? 30_000,
|
|
105
115
|
maxRetries: options.maxRetries ?? 2,
|
|
106
116
|
retryBaseDelayMs: 500,
|
|
107
117
|
};
|
|
108
118
|
}
|
|
119
|
+
function isLikelyEmbeddingModelId(modelId) {
|
|
120
|
+
return EMBEDDING_ID_PATTERN.test(modelId);
|
|
121
|
+
}
|
|
122
|
+
function createDefaultEmbeddingCapabilityForSetup(modelId) {
|
|
123
|
+
return {
|
|
124
|
+
id: modelId,
|
|
125
|
+
kind: "embedding",
|
|
126
|
+
contextWindow: 8_191,
|
|
127
|
+
maxOutputTokens: 0,
|
|
128
|
+
toolCalling: false,
|
|
129
|
+
structuredOutput: false,
|
|
130
|
+
streaming: false,
|
|
131
|
+
supportsImageInput: false,
|
|
132
|
+
supportsDocumentInput: false,
|
|
133
|
+
workflowEligible: false,
|
|
134
|
+
costClass: "low",
|
|
135
|
+
latencyClass: "fast",
|
|
136
|
+
throughputHint: "runtime-configured embedding endpoint",
|
|
137
|
+
preferredUseCases: ["Embeddings"],
|
|
138
|
+
knownLimitations: [
|
|
139
|
+
"Runtime-configured capability; validate against the target endpoint before production use",
|
|
140
|
+
],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function mergeChatAndEmbeddingModelIds(chatModelIds, deploymentNames) {
|
|
144
|
+
const merged = [...chatModelIds];
|
|
145
|
+
const seen = new Set(merged);
|
|
146
|
+
for (const modelId of deploymentNames) {
|
|
147
|
+
if (!isLikelyEmbeddingModelId(modelId) || seen.has(modelId)) {
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
seen.add(modelId);
|
|
151
|
+
merged.push(modelId);
|
|
152
|
+
}
|
|
153
|
+
return merged;
|
|
154
|
+
}
|
|
155
|
+
function embeddingModelIdsFromDeployments(deploymentNames) {
|
|
156
|
+
return deploymentNames.filter(isLikelyEmbeddingModelId);
|
|
157
|
+
}
|
|
109
158
|
function buildRawConfig(baseUrl, apiKey, modelIds, options = {}) {
|
|
110
159
|
return {
|
|
111
160
|
providers: modelIds.map((modelId) => providerRaw(modelId, baseUrl, apiKey, options)),
|
|
112
161
|
circuitBreaker: { failureThreshold: 5, cooldownMs: 30_000, halfOpenProbes: 2 },
|
|
113
162
|
};
|
|
114
163
|
}
|
|
164
|
+
function withInheritedEgress(rawConfig, egress) {
|
|
165
|
+
if (egress === undefined || Object.hasOwn(rawConfig, "egress")) {
|
|
166
|
+
return rawConfig;
|
|
167
|
+
}
|
|
168
|
+
return { ...rawConfig, egress };
|
|
169
|
+
}
|
|
115
170
|
function modelsEndpoint(baseUrl) {
|
|
116
171
|
return `${baseUrl}/models`;
|
|
117
172
|
}
|
|
@@ -284,6 +339,32 @@ function parseDeploymentNames(value) {
|
|
|
284
339
|
}
|
|
285
340
|
return names;
|
|
286
341
|
}
|
|
342
|
+
function parseImageInputModelIds(value) {
|
|
343
|
+
if (value === undefined) {
|
|
344
|
+
return [];
|
|
345
|
+
}
|
|
346
|
+
const values = deploymentNameValues(value);
|
|
347
|
+
if (values === undefined) {
|
|
348
|
+
return {
|
|
349
|
+
status: 400,
|
|
350
|
+
body: errorBody("BAD_REQUEST", "imageInputModelIds must be a string or an array of strings."),
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
const names = normalizeDeploymentNames(values);
|
|
354
|
+
if (names.length > MAX_DEPLOYMENT_NAMES) {
|
|
355
|
+
return {
|
|
356
|
+
status: 400,
|
|
357
|
+
body: errorBody("BAD_REQUEST", "imageInputModelIds exceeds the model setup limit."),
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
if (names.some((name) => !isUsableModelId(name))) {
|
|
361
|
+
return {
|
|
362
|
+
status: 400,
|
|
363
|
+
body: errorBody("BAD_REQUEST", "imageInputModelIds contains an invalid model id."),
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
return names;
|
|
367
|
+
}
|
|
287
368
|
function validateSetupConnection(baseUrl, apiKey, apiKeyHeaderName, env) {
|
|
288
369
|
try {
|
|
289
370
|
parseGatewayConfig(buildRawConfig(baseUrl, apiKey, ["setup-validation"], { apiKeyHeaderName }), env);
|
|
@@ -395,6 +476,28 @@ function isSymlink(path) {
|
|
|
395
476
|
throw error;
|
|
396
477
|
}
|
|
397
478
|
}
|
|
479
|
+
function normalizeSetupApiKeyHeaderName(value) {
|
|
480
|
+
try {
|
|
481
|
+
return normalizeApiKeyHeaderName(value, "apiKeyHeaderName", DEFAULT_API_KEY_HEADER_NAME);
|
|
482
|
+
}
|
|
483
|
+
catch (error) {
|
|
484
|
+
if (error instanceof ConfigInvalidError) {
|
|
485
|
+
return { status: 400, body: errorBody("BAD_REQUEST", error.message) };
|
|
486
|
+
}
|
|
487
|
+
throw error;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
function readSetupModelLists(raw) {
|
|
491
|
+
const deploymentNames = parseDeploymentNames(raw.deploymentNames);
|
|
492
|
+
if (isRouteResult(deploymentNames)) {
|
|
493
|
+
return deploymentNames;
|
|
494
|
+
}
|
|
495
|
+
const imageInputModelIds = parseImageInputModelIds(raw.imageInputModelIds);
|
|
496
|
+
if (isRouteResult(imageInputModelIds)) {
|
|
497
|
+
return imageInputModelIds;
|
|
498
|
+
}
|
|
499
|
+
return { deploymentNames, imageInputModelIds };
|
|
500
|
+
}
|
|
398
501
|
function readSetupRequest(raw, env) {
|
|
399
502
|
if (!isRecord(raw)) {
|
|
400
503
|
return { status: 400, body: errorBody("BAD_REQUEST", "Request body must be a JSON object.") };
|
|
@@ -404,37 +507,56 @@ function readSetupRequest(raw, env) {
|
|
|
404
507
|
if (baseUrl.length === 0 || apiKey.length === 0) {
|
|
405
508
|
return { status: 400, body: errorBody("BAD_REQUEST", "baseUrl and apiKey are required.") };
|
|
406
509
|
}
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
510
|
+
const apiKeyHeaderName = normalizeSetupApiKeyHeaderName(raw.apiKeyHeaderName);
|
|
511
|
+
if (isRouteResult(apiKeyHeaderName)) {
|
|
512
|
+
return apiKeyHeaderName;
|
|
410
513
|
}
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
}
|
|
415
|
-
throw error;
|
|
514
|
+
const modelLists = readSetupModelLists(raw);
|
|
515
|
+
if (isRouteResult(modelLists)) {
|
|
516
|
+
return modelLists;
|
|
416
517
|
}
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
518
|
+
if (Object.hasOwn(raw, "figmaAccessToken")) {
|
|
519
|
+
return {
|
|
520
|
+
status: 400,
|
|
521
|
+
body: errorBody("BAD_REQUEST", "Figma access tokens must be configured server-side, not through gateway setup."),
|
|
522
|
+
};
|
|
420
523
|
}
|
|
421
524
|
const invalidConnection = validateSetupConnection(baseUrl, apiKey, apiKeyHeaderName, env);
|
|
422
525
|
if (invalidConnection !== undefined) {
|
|
423
526
|
return invalidConnection;
|
|
424
527
|
}
|
|
425
|
-
return {
|
|
528
|
+
return {
|
|
529
|
+
baseUrl,
|
|
530
|
+
apiKey,
|
|
531
|
+
apiKeyHeaderName,
|
|
532
|
+
deploymentNames: modelLists.deploymentNames,
|
|
533
|
+
imageInputModelIds: modelLists.imageInputModelIds,
|
|
534
|
+
};
|
|
426
535
|
}
|
|
427
536
|
function safeError(error, secrets) {
|
|
537
|
+
const concreteSecrets = secrets.filter((secret) => secret !== undefined);
|
|
428
538
|
if (error instanceof Error) {
|
|
429
|
-
return redact(error.message,
|
|
539
|
+
return redact(error.message, concreteSecrets);
|
|
430
540
|
}
|
|
431
541
|
return "Gateway setup failed.";
|
|
432
542
|
}
|
|
433
|
-
|
|
543
|
+
function assertImageInputModelsWereTested(imageInputModelIds, testedModelIds) {
|
|
544
|
+
if (imageInputModelIds.length === 0)
|
|
545
|
+
return;
|
|
546
|
+
const tested = new Set(testedModelIds);
|
|
547
|
+
if (imageInputModelIds.some((modelId) => !tested.has(modelId))) {
|
|
548
|
+
throw new Error("imageInputModelIds must match tested chat-callable model ids.");
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
async function verifySetupCandidate(baseUrl, apiKey, apiKeyHeaderName, deploymentNames, imageInputModelIds, tester, discovery, env, egress) {
|
|
434
552
|
// Defence-in-depth: never send the credential to a candidate URL that has not passed the same
|
|
435
553
|
// scheme/credential/loopback validation as the originally submitted base URL.
|
|
436
554
|
validateBaseUrl(baseUrl, "candidate");
|
|
437
|
-
const
|
|
555
|
+
const validationRawConfig = buildRawConfig(baseUrl, apiKey, ["setup-validation"], {
|
|
556
|
+
apiKeyHeaderName,
|
|
557
|
+
imageInputModelIds,
|
|
558
|
+
});
|
|
559
|
+
const validationConfig = parseGatewayConfig(withInheritedEgress(validationRawConfig, egress), env);
|
|
438
560
|
const candidateModelIds = deploymentNames.length > 0
|
|
439
561
|
? deploymentNames
|
|
440
562
|
: await discovery(baseUrl, apiKey, apiKeyHeaderName, validationConfig.egress);
|
|
@@ -443,11 +565,19 @@ async function verifySetupCandidate(baseUrl, apiKey, apiKeyHeaderName, deploymen
|
|
|
443
565
|
apiKeyHeaderName,
|
|
444
566
|
timeoutMs: smokeTimeoutMs,
|
|
445
567
|
maxRetries: 0,
|
|
568
|
+
imageInputModelIds,
|
|
446
569
|
});
|
|
447
|
-
const candidateConfig = parseGatewayConfig(candidateRawConfig, env);
|
|
570
|
+
const candidateConfig = parseGatewayConfig(withInheritedEgress(candidateRawConfig, egress), env);
|
|
448
571
|
const testedModelIds = await tester(candidateConfig, candidateModelIds);
|
|
449
|
-
|
|
450
|
-
const
|
|
572
|
+
assertImageInputModelsWereTested(imageInputModelIds, testedModelIds);
|
|
573
|
+
const embeddingModelIds = embeddingModelIdsFromDeployments(deploymentNames);
|
|
574
|
+
const configuredModelIds = mergeChatAndEmbeddingModelIds(testedModelIds, deploymentNames);
|
|
575
|
+
const rawConfig = buildRawConfig(baseUrl, apiKey, configuredModelIds, {
|
|
576
|
+
apiKeyHeaderName,
|
|
577
|
+
imageInputModelIds,
|
|
578
|
+
embeddingModelIds,
|
|
579
|
+
});
|
|
580
|
+
const config = parseGatewayConfig(withInheritedEgress(rawConfig, egress), env);
|
|
451
581
|
return { rawConfig, config, testedModelIds };
|
|
452
582
|
}
|
|
453
583
|
function setupSuccessResult(config, testedModelIds) {
|
|
@@ -503,10 +633,20 @@ function gatewayUnavailableResult() {
|
|
|
503
633
|
body: errorBody("GATEWAY_SETUP_UNAVAILABLE", "Gateway setup is unavailable."),
|
|
504
634
|
};
|
|
505
635
|
}
|
|
636
|
+
async function trySetupCandidate(baseUrl, request, deps, gatewayConfig, tester, discovery) {
|
|
637
|
+
const verified = await verifySetupCandidate(baseUrl, request.apiKey, request.apiKeyHeaderName, request.deploymentNames, request.imageInputModelIds, tester, discovery, deps.env, currentGatewayEgressConfig(deps));
|
|
638
|
+
savePrivateJson(gatewayConfig.storagePath, verified.rawConfig);
|
|
639
|
+
gatewayConfig.set(verified.config, true);
|
|
640
|
+
return setupSuccessResult(verified.config, verified.testedModelIds);
|
|
641
|
+
}
|
|
642
|
+
function setupCandidateError(error, request, baseUrl) {
|
|
643
|
+
return safeError(error, [request.apiKey, request.baseUrl, baseUrl]);
|
|
644
|
+
}
|
|
506
645
|
export async function handleGatewaySetup(ctx, deps) {
|
|
507
646
|
if (deps.gatewayConfig === undefined) {
|
|
508
647
|
return gatewayUnavailableResult();
|
|
509
648
|
}
|
|
649
|
+
const { gatewayConfig } = deps;
|
|
510
650
|
const bodyResult = await readJsonSetupBody(ctx);
|
|
511
651
|
if ("status" in bodyResult) {
|
|
512
652
|
return bodyResult;
|
|
@@ -525,13 +665,10 @@ export async function handleGatewaySetup(ctx, deps) {
|
|
|
525
665
|
const errors = [];
|
|
526
666
|
for (const baseUrl of baseUrlCandidates) {
|
|
527
667
|
try {
|
|
528
|
-
|
|
529
|
-
savePrivateJson(deps.gatewayConfig.storagePath, verified.rawConfig);
|
|
530
|
-
deps.gatewayConfig.set(verified.config, true);
|
|
531
|
-
return setupSuccessResult(verified.config, verified.testedModelIds);
|
|
668
|
+
return await trySetupCandidate(baseUrl, request, deps, gatewayConfig, tester, discovery);
|
|
532
669
|
}
|
|
533
670
|
catch (error) {
|
|
534
|
-
errors.push(`candidate ${String(errors.length + 1)}: ${
|
|
671
|
+
errors.push(`candidate ${String(errors.length + 1)}: ${setupCandidateError(error, request, baseUrl)}`);
|
|
535
672
|
}
|
|
536
673
|
}
|
|
537
674
|
return setupFailureResult(errors);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governed-workflow.d.ts","sourceRoot":"","sources":["../src/governed-workflow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC5B,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGnG,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnD;
|
|
1
|
+
{"version":3,"file":"governed-workflow.d.ts","sourceRoot":"","sources":["../src/governed-workflow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC5B,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGnG,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnD;AAkDD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,GAAG,MAAM,CAS1F;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,oBAAoB,EAAE,EACtC,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,SAAS,MAAM,EAAE,CAWnB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,MAAM,EAAE,CAUjG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,sBAAsB,CAW7F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAEzE;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,8BAA8B,GACtC,+BAA+B,CAWjC;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,eAAe,EAC3B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,eAAe,CA4BjB;AAED,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,eAAe,GAC1B,SAAS,kBAAkB,EAAE,CAkB/B"}
|
|
@@ -41,7 +41,10 @@ export function contextPackStableIdForPacks(packs) {
|
|
|
41
41
|
if (packs.length === 1) {
|
|
42
42
|
return packs[0]?.stableId ?? `p-${"0".repeat(64)}`;
|
|
43
43
|
}
|
|
44
|
-
const joined = packs
|
|
44
|
+
const joined = packs
|
|
45
|
+
.map((pack) => pack.stableId)
|
|
46
|
+
.sort()
|
|
47
|
+
.join("|");
|
|
45
48
|
return `p-${sha256Hex(joined)}`;
|
|
46
49
|
}
|
|
47
50
|
export function readOnlyPathsForPacks(packs, editablePaths) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grounded-handoff.d.ts","sourceRoot":"","sources":["../src/grounded-handoff.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAYxE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"grounded-handoff.d.ts","sourceRoot":"","sources":["../src/grounded-handoff.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAYxE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA8hB7D,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAOtB"}
|
|
@@ -9,6 +9,7 @@ import { startRun } from "./run-engine.js";
|
|
|
9
9
|
import { parseRunRequest } from "./run-request.js";
|
|
10
10
|
import { ActiveRunLimitError } from "./runs.js";
|
|
11
11
|
import { errorBody } from "./routes.js";
|
|
12
|
+
import { memoryCaptureCustomerMatchers } from "./memory-capture-policy.js";
|
|
12
13
|
const MAX_BODY_BYTES = 256 * 1024;
|
|
13
14
|
const RESERVED_WORKFLOW_INPUT_FIELDS = new Set([
|
|
14
15
|
"apply",
|
|
@@ -312,6 +313,7 @@ function engineContextFor(deps, request, model) {
|
|
|
312
313
|
},
|
|
313
314
|
memoryVault: deps.memoryVault,
|
|
314
315
|
memoryAuditRedactString: createAuditRedactor({ additionalSecrets: currentRedactionSecrets(deps) }, deps.env),
|
|
316
|
+
memoryCustomerIdentifierMatchers: memoryCaptureCustomerMatchers(deps),
|
|
315
317
|
};
|
|
316
318
|
}
|
|
317
319
|
function markSummaryFailed(deps, message, shortResult) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grounded-qa-hybrid.d.ts","sourceRoot":"","sources":["../src/grounded-qa-hybrid.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,qCAAqC,CAAC;AAiB7C,OAAO,EAGL,KAAK,uBAAuB,EAO7B,MAAM,wCAAwC,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"grounded-qa-hybrid.d.ts","sourceRoot":"","sources":["../src/grounded-qa-hybrid.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,qCAAqC,CAAC;AAiB7C,OAAO,EAGL,KAAK,uBAAuB,EAO7B,MAAM,wCAAwC,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAM7C,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAQL,KAAK,2BAA2B,EACjC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;AAsB9B,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,uBAAuB,EAAE,CAExF;AAID,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAU/E;AAID,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAChD,MAAM,MAAM,iBAAiB,GAAG,CAC9B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,2BAA2B,KAClC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9B,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAE9F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAGjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS;QACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;CACL;AAwND,qBAAa,qBAAsB,SAAQ,KAAK;aACX,MAAM,EAAE,WAAW;gBAAnB,MAAM,EAAE,WAAW;CAIvD;AA0FD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,cAAc,CAwBhB;AA4eD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAS1F"}
|
|
@@ -15,13 +15,13 @@ import { buildGroundedAnswerContextPackSummary, } from "@oscharko-dev/keiko-cont
|
|
|
15
15
|
import { redact } from "@oscharko-dev/keiko-security";
|
|
16
16
|
import { errorBody } from "./routes.js";
|
|
17
17
|
import { currentGroundingLimits, currentRedactionSecrets } from "./deps.js";
|
|
18
|
-
import {} from "./grounded-orchestrator.js";
|
|
18
|
+
import { ClarificationNeededError, clarificationUserMessage, } from "./grounded-orchestrator.js";
|
|
19
19
|
import { buildConnectedScopes, defaultRetriever, mergeContextPackSummaries, sourceLabels, splitExplorationBudget, } from "./grounded-qa-multi-source.js";
|
|
20
20
|
import { MAX_PROMPT_REFERENCES, buildSelectedScopeSourceLookup, createEmbeddingAdapter, openStoreForDeps, projectLocalKnowledgeCitation, scopeStateFailure, selectedCapsulesForScope, } from "./local-knowledge-grounded-qa.js";
|
|
21
21
|
import { GROUNDED_SYSTEM_PROMPT } from "./grounded-prompt.js";
|
|
22
22
|
import { normalizeGroundedAnswerPayload, } from "./grounded-answer.js";
|
|
23
23
|
import { assertUsableAssistantContent } from "./assistant-response.js";
|
|
24
|
-
import { buildCitations, buildQuery, buildSelectedScopeFrom, deriveScopeIdFrom, ensureNotCancelled, internalError, isValidGroundedPack, mappedGatewayError, persistGroundedExchange, promptSafeExcerptText, redactString, } from "./grounded-qa.js";
|
|
24
|
+
import { badRequest, buildCitations, buildQuery, buildSelectedScopeFrom, deriveScopeIdFrom, ensureNotCancelled, internalError, isValidGroundedPack, mappedGatewayError, mappedWorkspaceError, persistGroundedExchange, promptSafeExcerptText, redactString, } from "./grounded-qa.js";
|
|
25
25
|
// ─── Canonical connector reader ───────────────────────────────────────────────
|
|
26
26
|
// Mirrors buildConnectedScopes: the plural `localKnowledgeScopes` list supersedes the legacy single
|
|
27
27
|
// `localKnowledgeScope`. Readers must not mix the two — the list, when present, is authoritative.
|
|
@@ -99,12 +99,31 @@ async function retrieveFolderPacks(ctx, folderScopes, query, retriever) {
|
|
|
99
99
|
if (cs === undefined || label === undefined)
|
|
100
100
|
continue;
|
|
101
101
|
const scope = buildSelectedScopeFrom(ctx.chat, cs, deriveScopeIdFrom(ctx.chat, cs, i));
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
let out;
|
|
103
|
+
try {
|
|
104
|
+
out = await retriever({
|
|
105
|
+
scope,
|
|
106
|
+
query,
|
|
107
|
+
workspaceRoot: scope.workspaceRoot,
|
|
108
|
+
budget,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
// Mirror retrieveOneConnector (GRD-006): a per-source embedding-adapter outage is a skippable
|
|
113
|
+
// degradation (answer from the remaining sources, record the skip). EVERY other error MUST
|
|
114
|
+
// propagate — ClarificationNeededError -> 400, ProviderError -> 502, generic -> 500 — so the
|
|
115
|
+
// boundary maps and redacts it instead of silently dropping a folder and returning a
|
|
116
|
+
// misleadingly "complete" answer.
|
|
117
|
+
if (error instanceof EmbeddingAdapterError) {
|
|
118
|
+
skipped.push({
|
|
119
|
+
label,
|
|
120
|
+
reason: "embedding-unavailable",
|
|
121
|
+
message: "Embedding adapter unavailable.",
|
|
122
|
+
});
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
108
127
|
if (!isValidGroundedPack(out.pack)) {
|
|
109
128
|
skipped.push({ label, reason: "pack-validation-failed", message: "Pack validation failed." });
|
|
110
129
|
continue;
|
|
@@ -569,29 +588,95 @@ export async function runHybridGroundedAsk(ctx) {
|
|
|
569
588
|
env.close();
|
|
570
589
|
}
|
|
571
590
|
}
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
591
|
+
function combinedSourceCap(limits) {
|
|
592
|
+
return Math.max(limits.maxConnectedSources, limits.maxLocalKnowledgeSources);
|
|
593
|
+
}
|
|
594
|
+
function combinedSourceCandidates(folders, connectors) {
|
|
595
|
+
return [
|
|
596
|
+
...folders.map((scope, index) => ({
|
|
597
|
+
kind: "folder",
|
|
598
|
+
index,
|
|
599
|
+
connectedAtMs: scope.connectedAtMs,
|
|
600
|
+
})),
|
|
601
|
+
...connectors.map((scope, index) => ({
|
|
602
|
+
kind: "connector",
|
|
603
|
+
index,
|
|
604
|
+
connectedAtMs: scope.connectedAtMs,
|
|
605
|
+
})),
|
|
606
|
+
].sort((a, b) => {
|
|
607
|
+
if (a.connectedAtMs !== b.connectedAtMs)
|
|
608
|
+
return a.connectedAtMs - b.connectedAtMs;
|
|
609
|
+
if (a.kind !== b.kind)
|
|
610
|
+
return a.kind === "folder" ? -1 : 1;
|
|
611
|
+
return a.index - b.index;
|
|
612
|
+
});
|
|
613
|
+
}
|
|
614
|
+
function capSelectedIndexes(folders, connectors, totalCap) {
|
|
615
|
+
const selected = combinedSourceCandidates(folders, connectors).slice(0, totalCap);
|
|
580
616
|
return {
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
617
|
+
folderIndexes: new Set(selected
|
|
618
|
+
.filter((candidate) => candidate.kind === "folder")
|
|
619
|
+
.map((candidate) => candidate.index)),
|
|
620
|
+
connectorIndexes: new Set(selected
|
|
621
|
+
.filter((candidate) => candidate.kind === "connector")
|
|
622
|
+
.map((candidate) => candidate.index)),
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
function skippedFoldersForCaps(all, perListFolders, selected, limits) {
|
|
626
|
+
return [
|
|
627
|
+
...perListFolders.flatMap((cs, index) => selected.folderIndexes.has(index)
|
|
628
|
+
? []
|
|
629
|
+
: [
|
|
630
|
+
{
|
|
631
|
+
label: sourceLabels([cs])[0] ?? `folder-${String(index)}`,
|
|
632
|
+
reason: "source-skipped",
|
|
633
|
+
message: "Exceeded combined source limit.",
|
|
634
|
+
},
|
|
635
|
+
]),
|
|
636
|
+
...all.slice(limits.maxConnectedSources).map((cs, i) => ({
|
|
586
637
|
label: sourceLabels([cs])[0] ?? `folder-${String(limits.maxConnectedSources + i)}`,
|
|
587
638
|
reason: "source-skipped",
|
|
588
639
|
message: "Exceeded maxConnectedSources limit.",
|
|
589
640
|
})),
|
|
590
|
-
|
|
641
|
+
];
|
|
642
|
+
}
|
|
643
|
+
function skippedConnectorsForCaps(allConnectors, perListConnectors, selected, limits) {
|
|
644
|
+
return [
|
|
645
|
+
...perListConnectors.flatMap((_cs, index) => selected.connectorIndexes.has(index)
|
|
646
|
+
? []
|
|
647
|
+
: [
|
|
648
|
+
{
|
|
649
|
+
label: `connector-${String(index)}`,
|
|
650
|
+
reason: "source-skipped",
|
|
651
|
+
message: "Exceeded combined source limit.",
|
|
652
|
+
},
|
|
653
|
+
]),
|
|
654
|
+
...allConnectors.slice(limits.maxLocalKnowledgeSources).map((_cs, i) => ({
|
|
591
655
|
label: `connector-${String(limits.maxLocalKnowledgeSources + i)}`,
|
|
592
656
|
reason: "source-skipped",
|
|
593
657
|
message: "Exceeded maxLocalKnowledgeSources limit.",
|
|
594
658
|
})),
|
|
659
|
+
];
|
|
660
|
+
}
|
|
661
|
+
// Cap both source lists at their respective operator limits before any budget-split or retrieval
|
|
662
|
+
// loop, then cap the combined total to the release contract ("up to 16 sources" total by default).
|
|
663
|
+
// A chat row may carry legacy over-limit sources (e.g. operator lowered a limit after connection,
|
|
664
|
+
// or a direct DB edit). Capping here is the single choke-point: all loops downstream derive their
|
|
665
|
+
// iteration counts from these sliced lists. Over-cap entries are tagged as "source-skipped"
|
|
666
|
+
// uncertainties so callers can observe the omission without path information.
|
|
667
|
+
function capSourcesToLimits(ctx, limits) {
|
|
668
|
+
const all = buildConnectedScopes(ctx.chat);
|
|
669
|
+
const allConnectors = buildLocalKnowledgeScopes(ctx.chat);
|
|
670
|
+
const perListFolders = all.slice(0, limits.maxConnectedSources);
|
|
671
|
+
const perListConnectors = allConnectors.slice(0, limits.maxLocalKnowledgeSources);
|
|
672
|
+
const selected = capSelectedIndexes(perListFolders, perListConnectors, combinedSourceCap(limits));
|
|
673
|
+
return {
|
|
674
|
+
folderScopes: perListFolders.filter((_scope, index) => selected.folderIndexes.has(index)),
|
|
675
|
+
connectorScopes: perListConnectors.filter((_scope, index) => selected.connectorIndexes.has(index)),
|
|
676
|
+
allFolderCount: all.length,
|
|
677
|
+
allConnectorCount: allConnectors.length,
|
|
678
|
+
overCapFolderSkipped: skippedFoldersForCaps(all, perListFolders, selected, limits),
|
|
679
|
+
overCapConnectorSkipped: skippedConnectorsForCaps(allConnectors, perListConnectors, selected, limits),
|
|
595
680
|
};
|
|
596
681
|
}
|
|
597
682
|
async function runHybridWithStore(ctx, store) {
|
|
@@ -660,6 +745,14 @@ function mapHybridError(error, deps) {
|
|
|
660
745
|
const gatewayResult = mappedGatewayError(error, deps);
|
|
661
746
|
if (gatewayResult !== undefined)
|
|
662
747
|
return gatewayResult;
|
|
748
|
+
// GRD-016: mirror the single-source and multi-source paths — a vague/no-anchor question
|
|
749
|
+
// (ClarificationNeededError) or a typed workspace read error is a client-actionable 400, not
|
|
750
|
+
// an opaque 500. Without these branches a folders+connectors ask with no anchors 500s.
|
|
751
|
+
if (error instanceof ClarificationNeededError)
|
|
752
|
+
return badRequest(clarificationUserMessage(error));
|
|
753
|
+
const workspaceResult = mappedWorkspaceError(error);
|
|
754
|
+
if (workspaceResult !== undefined)
|
|
755
|
+
return workspaceResult;
|
|
663
756
|
if (error instanceof Error) {
|
|
664
757
|
return internalError(redact(error.message, currentRedactionSecrets(deps)));
|
|
665
758
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grounded-qa-multi-source.d.ts","sourceRoot":"","sources":["../src/grounded-qa-multi-source.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,WAAW,IAAI,kBAAkB,EACvC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAGvB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,gCAAgC,EAGtC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;AA0B9B,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,kBAAkB,EAAE,CAE9E;AAOD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAY5F;AAgBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,MAAM,EAAE,CAUrF;AAgFD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,SAAS,gCAAgC,EAAE,GACrD,gCAAgC,CAsBlC;AAID,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAoBD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,WAAW,EAAE,EACpC,QAAQ,EAAE,QAAQ,GACjB,SAAS,kBAAkB,EAAE,CAE/B;AAmFD,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAI3F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAUvE;AAID,MAAM,MAAM,mBAAmB,GAAG,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,WAAW,EAAE,KACjC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,GAClB,mBAAmB,CAqBrB;AAyBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAG7B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvF;
|
|
1
|
+
{"version":3,"file":"grounded-qa-multi-source.d.ts","sourceRoot":"","sources":["../src/grounded-qa-multi-source.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,WAAW,IAAI,kBAAkB,EACvC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAGvB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,gCAAgC,EAGtC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;AA0B9B,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,kBAAkB,EAAE,CAE9E;AAOD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAY5F;AAgBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,MAAM,EAAE,CAUrF;AAgFD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,SAAS,gCAAgC,EAAE,GACrD,gCAAgC,CAsBlC;AAID,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAoBD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,WAAW,EAAE,EACpC,QAAQ,EAAE,QAAQ,GACjB,SAAS,kBAAkB,EAAE,CAE/B;AAmFD,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAI3F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAUvE;AAID,MAAM,MAAM,mBAAmB,GAAG,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,WAAW,EAAE,KACjC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,GAClB,mBAAmB,CAqBrB;AAyBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAG7B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvF;AAgND,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CA4CtF"}
|
|
@@ -258,43 +258,76 @@ export function createMultiSourceAnswerer(model, modelId, redactor, signal) {
|
|
|
258
258
|
}
|
|
259
259
|
// ─── Retrieved-source record + worker ─────────────────────────────────────────
|
|
260
260
|
const MAX_RETRIEVAL_CONCURRENCY = 4;
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
261
|
+
// GRD-006: classify a thrown per-source retrieve error. A recoverable workspace error becomes a
|
|
262
|
+
// skip (with the mapped RouteResult preserved as the all-bad fallback); anything else returns
|
|
263
|
+
// undefined so the caller re-throws it to the outer handler (ClarificationNeededError, cancel, …).
|
|
264
|
+
function classifyPerSourceRetrieveError(error, label) {
|
|
265
|
+
const mapped = mappedWorkspaceError(error);
|
|
266
|
+
if (mapped === undefined)
|
|
267
|
+
return undefined;
|
|
268
|
+
return {
|
|
269
|
+
skipped: {
|
|
270
|
+
label,
|
|
271
|
+
message: error instanceof Error ? error.message : "Connected source is not readable.",
|
|
272
|
+
},
|
|
273
|
+
mapped,
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
// Retrieve one source into the shared accumulator. GRD-006: a recoverable workspace error skips
|
|
277
|
+
// just that source (preserving the all-bad 400 fallback in `firstError`); any other error
|
|
278
|
+
// propagates to the outer handler.
|
|
279
|
+
async function retrieveOneSource(ctx, query, perScopeBudget, labels, acc, i) {
|
|
280
|
+
ensureNotCancelled(ctx.signal);
|
|
281
|
+
const cs = ctx.scopes[i];
|
|
282
|
+
const label = labels[i];
|
|
283
|
+
if (cs === undefined || label === undefined)
|
|
284
|
+
return;
|
|
285
|
+
const scope = buildSelectedScopeFrom(ctx.chat, cs, deriveScopeIdFrom(ctx.chat, cs, i));
|
|
286
|
+
let out;
|
|
287
|
+
try {
|
|
288
|
+
out = await ctx.retriever({
|
|
274
289
|
scope,
|
|
275
290
|
query,
|
|
276
291
|
workspaceRoot: scope.workspaceRoot,
|
|
277
292
|
budget: perScopeBudget,
|
|
278
293
|
});
|
|
279
|
-
if (!isValidGroundedPack(out.pack)) {
|
|
280
|
-
skipped.push({ label, message: "Pack validation failed." });
|
|
281
|
-
firstError ??= internalError("Grounded answer context pack failed validation.");
|
|
282
|
-
return;
|
|
283
|
-
}
|
|
284
|
-
retrieved[i] = { label, pack: out.pack, elapsedMs: out.elapsedMs, scope, plan: out.plan };
|
|
285
294
|
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
const classified = classifyPerSourceRetrieveError(error, label);
|
|
297
|
+
if (classified === undefined)
|
|
298
|
+
throw error; // non-workspace error → outer handler
|
|
299
|
+
acc.skipped.push(classified.skipped);
|
|
300
|
+
acc.firstError ??= classified.mapped;
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (!isValidGroundedPack(out.pack)) {
|
|
304
|
+
acc.skipped.push({ label, message: "Pack validation failed." });
|
|
305
|
+
acc.firstError ??= internalError("Grounded answer context pack failed validation.");
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
acc.retrieved[i] = { label, pack: out.pack, elapsedMs: out.elapsedMs, scope, plan: out.plan };
|
|
309
|
+
}
|
|
310
|
+
async function retrieveAllSources(ctx, query, perScopeBudget, labels) {
|
|
311
|
+
const acc = {
|
|
312
|
+
retrieved: new Array(ctx.scopes.length),
|
|
313
|
+
skipped: [],
|
|
314
|
+
firstError: undefined,
|
|
315
|
+
};
|
|
316
|
+
let nextIndex = 0;
|
|
286
317
|
async function worker() {
|
|
287
318
|
for (;;) {
|
|
288
319
|
const i = nextIndex;
|
|
289
320
|
nextIndex += 1;
|
|
290
321
|
if (i >= ctx.scopes.length)
|
|
291
322
|
return;
|
|
292
|
-
await
|
|
323
|
+
await retrieveOneSource(ctx, query, perScopeBudget, labels, acc, i);
|
|
293
324
|
}
|
|
294
325
|
}
|
|
295
326
|
const workerCount = Math.min(MAX_RETRIEVAL_CONCURRENCY, Math.max(1, ctx.scopes.length));
|
|
296
327
|
await Promise.all(Array.from({ length: workerCount }, () => worker()));
|
|
297
|
-
const sources = retrieved.filter((source) => source !== undefined);
|
|
328
|
+
const sources = acc.retrieved.filter((source) => source !== undefined);
|
|
329
|
+
const skipped = acc.skipped;
|
|
330
|
+
const firstError = acc.firstError;
|
|
298
331
|
if (sources.length === 0 && firstError !== undefined)
|
|
299
332
|
return firstError;
|
|
300
333
|
return { retrieved: sources, skipped, firstError };
|