@oscharko-dev/keiko 0.2.0-beta.3 → 0.2.0-beta.4
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 +139 -1
- package/dist/ui/csp-hashes.json +33 -39
- package/dist/ui/static/404.html +1 -1
- package/dist/ui/static/__next.__PAGE__.txt +9 -0
- package/dist/ui/static/__next._full.txt +18 -0
- package/dist/ui/static/__next._head.txt +6 -0
- package/dist/ui/static/__next._index.txt +5 -0
- package/dist/ui/static/__next._tree.txt +2 -0
- package/dist/ui/static/_next/static/Hb6brrvZY2nZtizQlYhVt/_buildManifest.js +11 -0
- package/dist/ui/static/_next/static/Hb6brrvZY2nZtizQlYhVt/_clientMiddlewareManifest.js +1 -0
- package/dist/ui/static/_next/static/chunks/05-c3ty_6dwfk.js +1 -0
- package/dist/ui/static/_next/static/chunks/082obv3v03b-9.js +2 -0
- package/dist/ui/static/_next/static/chunks/0iq1i69206cyl.js +31 -0
- package/dist/ui/static/_next/static/chunks/0uifns067thv8.js +1 -0
- package/dist/ui/static/_next/static/chunks/0x31-j53ab1tt.js +1 -0
- package/dist/ui/static/_next/static/chunks/14mrh2-p_w84d.js +1 -0
- package/dist/ui/static/_next/static/chunks/1t04tfgin0v_g.js +106 -0
- package/dist/ui/static/_next/static/chunks/1v4hrxrm_6_rw.js +1 -0
- package/dist/ui/static/_next/static/chunks/27jktro2p5rq9.js +4 -0
- package/dist/ui/static/_next/static/chunks/2lypy3ewh0r04.js +1 -0
- package/dist/ui/static/_next/static/chunks/32573pyyglqxl.js +1 -0
- package/dist/ui/static/_next/static/chunks/3_t_pzet29qtn.js +1 -0
- package/dist/ui/static/_next/static/chunks/3jgg_oe0iok0l.js +1 -0
- package/dist/ui/static/_next/static/chunks/3o_oia3vsam60.js +1 -0
- package/dist/ui/static/_next/static/chunks/3peubv2924kx4.js +1 -0
- package/dist/ui/static/_next/static/chunks/3wr_35f2vg6sd.css +1 -0
- package/dist/ui/static/_next/static/chunks/turbopack-2lg1g6kbsfm0x.js +1 -0
- package/dist/ui/static/_not-found/__next._full.txt +16 -0
- package/dist/ui/static/_not-found/__next._head.txt +6 -0
- package/dist/ui/static/_not-found/__next._index.txt +5 -0
- package/dist/ui/static/_not-found/__next._not-found.__PAGE__.txt +5 -0
- package/dist/ui/static/_not-found/__next._not-found.txt +5 -0
- package/dist/ui/static/_not-found/__next._tree.txt +2 -0
- package/dist/ui/static/_not-found.html +1 -0
- package/dist/ui/static/_not-found.txt +16 -0
- package/dist/ui/static/index.html +1 -1
- package/dist/ui/static/index.txt +16 -18
- package/dist/ui/static/launch/__next._full.txt +20 -0
- package/dist/ui/static/launch/__next._head.txt +6 -0
- package/dist/ui/static/launch/__next._index.txt +5 -0
- package/dist/ui/static/launch/__next._tree.txt +2 -0
- package/dist/ui/static/launch/__next.launch.__PAGE__.txt +9 -0
- package/dist/ui/static/launch/__next.launch.txt +5 -0
- package/dist/ui/static/launch.html +1 -1
- package/dist/ui/static/launch.txt +17 -17
- package/dist/ui/static/local-knowledge/__next._full.txt +20 -0
- package/dist/ui/static/local-knowledge/__next._head.txt +6 -0
- package/dist/ui/static/local-knowledge/__next._index.txt +5 -0
- package/dist/ui/static/local-knowledge/__next._tree.txt +2 -0
- package/dist/ui/static/local-knowledge/__next.local-knowledge.__PAGE__.txt +9 -0
- package/dist/ui/static/local-knowledge/__next.local-knowledge.txt +5 -0
- package/dist/ui/static/local-knowledge/capsule/__next._full.txt +17 -0
- package/dist/ui/static/local-knowledge/capsule/__next._head.txt +6 -0
- package/dist/ui/static/local-knowledge/capsule/__next._index.txt +5 -0
- package/dist/ui/static/local-knowledge/capsule/__next._tree.txt +2 -0
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.__PAGE__.txt +6 -0
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.txt +5 -0
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.txt +5 -0
- package/dist/ui/static/local-knowledge/capsule.html +1 -1
- package/dist/ui/static/local-knowledge/capsule.txt +14 -14
- package/dist/ui/static/local-knowledge.html +1 -1
- package/dist/ui/static/local-knowledge.txt +19 -16
- package/dist/ui/static/memoriaviva/__next._full.txt +17 -0
- package/dist/ui/static/memoriaviva/__next._head.txt +6 -0
- package/dist/ui/static/memoriaviva/__next._index.txt +5 -0
- package/dist/ui/static/memoriaviva/__next._tree.txt +2 -0
- package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +6 -0
- package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +5 -0
- package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +17 -0
- package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +6 -0
- package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +5 -0
- package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -0
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +6 -0
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +5 -0
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +5 -0
- package/dist/ui/static/memoriaviva/consolidation.html +1 -1
- package/dist/ui/static/memoriaviva/consolidation.txt +15 -15
- package/dist/ui/static/memoriaviva/detail/__next._full.txt +17 -0
- package/dist/ui/static/memoriaviva/detail/__next._head.txt +6 -0
- package/dist/ui/static/memoriaviva/detail/__next._index.txt +5 -0
- package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -0
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +6 -0
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +5 -0
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +5 -0
- package/dist/ui/static/memoriaviva/detail.html +1 -1
- package/dist/ui/static/memoriaviva/detail.txt +14 -14
- package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +17 -0
- package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +6 -0
- package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +5 -0
- package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -0
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +6 -0
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +5 -0
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +5 -0
- package/dist/ui/static/memoriaviva/review-queue.html +1 -1
- package/dist/ui/static/memoriaviva/review-queue.txt +15 -15
- package/dist/ui/static/memoriaviva.html +1 -1
- package/dist/ui/static/memoriaviva.txt +14 -14
- package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.js +61 -2
- package/node_modules/@oscharko-dev/keiko-cli/dist/evidence.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/evidence.js +65 -21
- package/node_modules/@oscharko-dev/keiko-cli/dist/launcher-platforms.js +3 -3
- package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/ui.js +36 -11
- package/node_modules/@oscharko-dev/keiko-cli/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts +20 -1
- 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 +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 +256 -75
- package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts +11 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +6 -6
- 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 -4
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.d.ts +11 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.js +4 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.js +109 -4
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.js +94 -7
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge.d.ts +5 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/ids.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/ids.js +3 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts +14 -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 +53 -5
- package/node_modules/@oscharko-dev/keiko-contracts/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/dist/runner.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/dist/runner.js +11 -3
- package/node_modules/@oscharko-dev/keiko-evaluations/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.d.ts +20 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.js +34 -2
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts +1 -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 +3 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts +17 -0
- 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 +19 -0
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +5 -1
- 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/store.d.ts +32 -2
- 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 +259 -40
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.js +48 -5
- 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 +30 -13
- package/node_modules/@oscharko-dev/keiko-evidence/dist/types.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-harness/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-lifecycle.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-lifecycle.js +25 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts +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 +16 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.d.ts +3 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.js +9 -5
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-runner.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-runner.js +22 -7
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.d.ts +4 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.js +61 -9
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/citation-mapper.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/citation-mapper.js +64 -36
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.js +2 -2
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.d.ts +7 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.js +5 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts +1 -1
- 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 +27 -4
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts +5 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.js +18 -5
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/discovery-runner.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/discovery-runner.js +10 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts +4 -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 +370 -45
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.js +8 -4
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.js +10 -5
- 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 +65 -20
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts +1 -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 +79 -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/runner-seed.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner-seed.js +4 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts +6 -5
- 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 +4 -4
- 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 +71 -29
- 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 +253 -131
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/types.d.ts +12 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/vector-persist.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/vector-persist.js +9 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts +3 -1
- 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 +13 -1
- 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 +86 -46
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts +1 -1
- 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 +1 -1
- 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 +50 -22
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts +21 -1
- 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 +90 -13
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/registry.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/registry.js +3 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts +7 -2
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.js +7 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/audit-emitter.js +8 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/diagnostic-redactor.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/diagnostic-redactor.js +17 -10
- 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/privacy/retention-applier.js +7 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/types.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/retrieval-runner.js +1 -1
- 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 +318 -32
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts +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 +46 -16
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.d.ts +14 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.js +26 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +10 -5
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/.tsbuildinfo +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/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +2 -2
- 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 -1
- 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 +50 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts +3 -0
- 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 +114 -44
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.d.ts +14 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.js +14 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
- 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 +9 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.js +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts +9 -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 +9 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts +5 -0
- 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 +229 -33
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts +62 -0
- 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 +24 -4
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts +4 -2
- 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 +0 -0
- 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 +119 -5
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.d.ts +2 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.js +26 -11
- 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 +86 -9
- 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 -3
- 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 +14 -12
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/sourceMixPlanning.js +0 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.js +9 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-sdk/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/redaction.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/redaction.js +4 -2
- package/node_modules/@oscharko-dev/keiko-security/package.json +2 -2
- 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 +6 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/deps.js +59 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/evidence.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/evidence.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/evidence.js +4 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/files.d.ts +18 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/files.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/files.js +208 -72
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-answer.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-answer.js +7 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.js +27 -4
- 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 +46 -14
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.js +433 -31
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.js +5 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts +9 -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 +194 -45
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts +4 -0
- 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 +100 -24
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts +7 -0
- 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 +196 -20
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-turn-registry.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-turn-registry.js +21 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts +1 -1
- 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 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts +9 -6
- 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 +189 -66
- 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 +189 -72
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts +10 -2
- 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 +110 -30
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.d.ts +13 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.js +29 -17
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts +13 -3
- 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 +54 -5
- 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 +84 -12
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.js +16 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +6 -2
- 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/figmaSnapshotAdapter.d.ts +13 -1
- 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 +15 -2
- 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 +2 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +9 -1
- 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 +138 -19
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.js +26 -7
- 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 +26 -7
- 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 +3 -1
- 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 +51 -15
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts +4 -1
- 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 +17 -3
- 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 +6 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +4 -2
- 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 +6 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts +2 -2
- 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 +84 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/store/db.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store/db.js +4 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/store/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store/types.d.ts +5 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.js +67 -14
- package/node_modules/@oscharko-dev/keiko-server/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-verification/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.js +45 -10
- package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.js +4 -6
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.d.ts +30 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.js +114 -0
- 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 +20 -7
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runEntries.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runEntries.js +15 -7
- 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 +28 -4
- package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.js +51 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/signals.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/signals.js +8 -3
- package/node_modules/@oscharko-dev/keiko-workflows/package.json +2 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.js +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/gitHistory.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/gitHistory.js +84 -27
- package/node_modules/@oscharko-dev/keiko-workspace/dist/ignore.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/ignore.js +19 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/importGraph.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/importGraph.js +6 -3
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.js +72 -25
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts +15 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.js +107 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts +18 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.js +42 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +4 -11
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.js +15 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.js +89 -75
- package/node_modules/@oscharko-dev/keiko-workspace/package.json +2 -2
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/http2.d.ts +1 -0
- package/node_modules/@types/node/package.json +2 -2
- package/package.json +3 -1
- package/dist/ui/static/_next/static/RAzN8WLtYaktD-ZePowXl/_buildManifest.js +0 -1
- package/dist/ui/static/_next/static/chunks/18-ac3e3551b4e0ce8a.js +0 -1
- package/dist/ui/static/_next/static/chunks/258-e3b5ee46b0669967.js +0 -1
- package/dist/ui/static/_next/static/chunks/422-4c94c107b90d3ccc.js +0 -1
- package/dist/ui/static/_next/static/chunks/664-6d821dc1aacb6b48.js +0 -1
- package/dist/ui/static/_next/static/chunks/87c73c54-24122e7b92478d00.js +0 -1
- package/dist/ui/static/_next/static/chunks/982-abc19630e6305864.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/_not-found/page-c4d800f366186be0.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/launch/page-17ca39367f25f372.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/layout-0f75a39edc90325d.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/local-knowledge/capsule/page-87a2ea239308ed34.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/local-knowledge/page-98bb7704fc7fd0ad.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/memoriaviva/consolidation/page-f912263f1ee5d2dd.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/memoriaviva/detail/page-fa590f135356e0af.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/memoriaviva/page-b8555600c1113f14.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/memoriaviva/review-queue/page-85cfbeb3598c0a36.js +0 -1
- package/dist/ui/static/_next/static/chunks/app/page-2881856ad25d9935.js +0 -1
- package/dist/ui/static/_next/static/chunks/framework-d8f01f7e25201916.js +0 -1
- package/dist/ui/static/_next/static/chunks/main-app-5b043f6c611974ae.js +0 -1
- package/dist/ui/static/_next/static/chunks/main-bc552b04f2b6dbe2.js +0 -1
- package/dist/ui/static/_next/static/chunks/pages/_app-2e239ff05bfdf6d6.js +0 -1
- package/dist/ui/static/_next/static/chunks/pages/_error-bda15e7831eec981.js +0 -1
- package/dist/ui/static/_next/static/chunks/webpack-0cfe6f51555ca84e.js +0 -1
- package/dist/ui/static/_next/static/css/eac94895f3edc5a5.css +0 -1
- /package/dist/ui/static/_next/static/{RAzN8WLtYaktD-ZePowXl → Hb6brrvZY2nZtizQlYhVt}/_ssgManifest.js +0 -0
- /package/dist/ui/static/_next/static/chunks/{polyfills-42372ed130431b0a.js → 0cz1d0mv5g_q7.js} +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
2
|
import { statSync } from "node:fs";
|
|
3
3
|
import { basename, dirname } from "node:path";
|
|
4
4
|
import { addSourceToCapsule, composeCapsules, CompositionError, createSqliteAuditSink, createDefaultParserRegistry, createCapsule, deleteCapsule, getCapsule, listCapsuleSets, listCapsuleSources, listCapsules, openKnowledgeStore, removeSourceFromCapsule, resolveKnowledgeStorePath, runIndexingJob, updateCapsuleDetails, updateCapsuleState, } from "@oscharko-dev/keiko-local-knowledge";
|
|
5
5
|
import { KnowledgeNotFoundError, KnowledgeStoreError } from "@oscharko-dev/keiko-local-knowledge";
|
|
6
|
-
import { CAPSULE_SET_MAX_MEMBERS, validateKnowledgeSourceScope, } from "@oscharko-dev/keiko-contracts";
|
|
6
|
+
import { CAPSULE_SET_MAX_MEMBERS, isSafeDisplaySummary, validateCapsuleReindexRequest, validateKnowledgeSourceScope, } from "@oscharko-dev/keiko-contracts";
|
|
7
7
|
import { currentGatewayConfig } from "./deps.js";
|
|
8
8
|
import { errorBody } from "./routes.js";
|
|
9
|
-
import { findConfiguredCapability, requestOpenAIEmbedding, } from "@oscharko-dev/keiko-model-gateway";
|
|
9
|
+
import { findConfiguredCapability, requestOpenAIEmbedding, verifyEmbeddingCapability, } from "@oscharko-dev/keiko-model-gateway";
|
|
10
10
|
import { nodeWorkspaceFs } from "@oscharko-dev/keiko-workspace/internal/fs";
|
|
11
11
|
import { isDenied } from "@oscharko-dev/keiko-workspace";
|
|
12
12
|
import { localKnowledgeIndexingRegistry } from "./local-knowledge-indexing-registry.js";
|
|
@@ -15,6 +15,7 @@ const MAX_BODY_BYTES = 32_000;
|
|
|
15
15
|
// thousands of parser diagnostics / job rows cannot inflate a single JSON response.
|
|
16
16
|
const MAX_DIAGNOSTICS_PER_RESPONSE = 500;
|
|
17
17
|
const MAX_JOBS_PER_RESPONSE = 500;
|
|
18
|
+
const LOCAL_KNOWLEDGE_STORE_UNAVAILABLE_MESSAGE = "Local knowledge storage is unavailable. Check the local runtime state and try again.";
|
|
18
19
|
class InvalidRequest extends Error {
|
|
19
20
|
constructor(message) {
|
|
20
21
|
super(message);
|
|
@@ -208,7 +209,12 @@ function configuredEmbeddingProvider(config, modelId) {
|
|
|
208
209
|
return isConfiguredEmbeddingModel(config, provider.modelId) ? provider : undefined;
|
|
209
210
|
}
|
|
210
211
|
function configuredProviderForCapsule(deps, capsule) {
|
|
211
|
-
|
|
212
|
+
const provider = configuredEmbeddingProvider(currentGatewayConfig(deps), capsule.embeddingModelIdentity.modelId);
|
|
213
|
+
if (provider === undefined)
|
|
214
|
+
return undefined;
|
|
215
|
+
return storedProviderMatchesConfiguredProvider(capsule.embeddingModelIdentity.provider, provider)
|
|
216
|
+
? provider
|
|
217
|
+
: undefined;
|
|
212
218
|
}
|
|
213
219
|
function embeddingCompatibilityReason(config, capsule) {
|
|
214
220
|
if (config === undefined)
|
|
@@ -217,9 +223,13 @@ function embeddingCompatibilityReason(config, capsule) {
|
|
|
217
223
|
if (!config.providers.some((entry) => entry.modelId === modelId)) {
|
|
218
224
|
return "The configured embedding model no longer matches this capsule.";
|
|
219
225
|
}
|
|
220
|
-
|
|
226
|
+
const provider = configuredEmbeddingProvider(config, modelId);
|
|
227
|
+
if (provider === undefined) {
|
|
221
228
|
return "The configured model for this capsule cannot serve embeddings.";
|
|
222
229
|
}
|
|
230
|
+
if (!storedProviderMatchesConfiguredProvider(capsule.embeddingModelIdentity.provider, provider)) {
|
|
231
|
+
return "The configured embedding gateway no longer matches this capsule.";
|
|
232
|
+
}
|
|
223
233
|
return undefined;
|
|
224
234
|
}
|
|
225
235
|
function vectorCompatibility(deps, capsule) {
|
|
@@ -243,14 +253,15 @@ function vectorCompatibility(deps, capsule) {
|
|
|
243
253
|
function loadSourceStats(store, capsuleId) {
|
|
244
254
|
const rows = store._internal.db
|
|
245
255
|
.prepare([
|
|
246
|
-
"SELECT s.id AS source_id,
|
|
256
|
+
"SELECT s.id AS source_id, ks.display_name, ks.scope_kind, ks.scope_json,",
|
|
247
257
|
" SUM(CASE WHEN d.status = 'extracted' THEN 1 ELSE 0 END) AS indexed_count,",
|
|
248
258
|
" SUM(CASE WHEN d.status = 'failed' THEN 1 ELSE 0 END) AS failed_count,",
|
|
249
259
|
" SUM(CASE WHEN d.status IN ('skipped', 'unsupported') THEN 1 ELSE 0 END) AS skipped_count",
|
|
250
260
|
"FROM capsule_sources AS s",
|
|
261
|
+
"JOIN knowledge_sources AS ks ON ks.id = s.id",
|
|
251
262
|
"LEFT JOIN documents AS d ON d.capsule_id = s.capsule_id AND d.source_id = s.id",
|
|
252
263
|
"WHERE s.capsule_id = :c",
|
|
253
|
-
"GROUP BY s.id,
|
|
264
|
+
"GROUP BY s.id, ks.display_name, ks.scope_kind, ks.scope_json",
|
|
254
265
|
"ORDER BY s.created_at ASC, s.id ASC",
|
|
255
266
|
].join(" "))
|
|
256
267
|
.all({ c: capsuleId });
|
|
@@ -407,6 +418,7 @@ function buildCapsuleHealth(deps, store, dbPath, capsule) {
|
|
|
407
418
|
const unsupportedGuidance = unsupportedDocuments > 0 ? loadUnsupportedGuidance(store, capsule.id) : [];
|
|
408
419
|
return {
|
|
409
420
|
capsuleId: capsule.id,
|
|
421
|
+
sourceIds: capsule.sourceIds,
|
|
410
422
|
lifecycleState: capsule.lifecycleState,
|
|
411
423
|
storageSizeBytes: storageSizeBytes(dbPath),
|
|
412
424
|
documentCount,
|
|
@@ -466,9 +478,24 @@ function canonicalizeCapsuleSourceRoots(store, capsule) {
|
|
|
466
478
|
const now = store._internal.now();
|
|
467
479
|
for (const source of listCapsuleSources(store, capsule.id)) {
|
|
468
480
|
const canonicalScope = canonicalizeScopeRoot(source.scope);
|
|
481
|
+
// Re-validate the deny-list against the canonical (realpath-resolved) root at index time,
|
|
482
|
+
// not only at connect time. A folder that was safe when connected can later be moved or
|
|
483
|
+
// symlink-swapped so its realpath resolves into a denied location (e.g. ~/.ssh); refuse to
|
|
484
|
+
// index it rather than walking credential files inside it. Runs for every source, including
|
|
485
|
+
// already-canonical ones, so it must precede the no-op skip below.
|
|
486
|
+
if (isDenied(connectScopeRootPath(canonicalScope))) {
|
|
487
|
+
throw new InvalidRequest("Source path is in a denied location and cannot be indexed.");
|
|
488
|
+
}
|
|
469
489
|
if (JSON.stringify(canonicalScope) === JSON.stringify(source.scope)) {
|
|
470
490
|
continue;
|
|
471
491
|
}
|
|
492
|
+
store._internal.db
|
|
493
|
+
.prepare("UPDATE knowledge_sources SET scope_json = :scope_json, updated_at = :updated_at WHERE id = :id")
|
|
494
|
+
.run({
|
|
495
|
+
scope_json: scopeToJson(canonicalScope),
|
|
496
|
+
updated_at: now,
|
|
497
|
+
id: source.id,
|
|
498
|
+
});
|
|
472
499
|
store._internal.db
|
|
473
500
|
.prepare("UPDATE capsule_sources SET scope_json = :scope_json, updated_at = :updated_at WHERE capsule_id = :c AND id = :id")
|
|
474
501
|
.run({
|
|
@@ -518,60 +545,51 @@ function parseCapsuleId(ctx) {
|
|
|
518
545
|
}
|
|
519
546
|
return capsuleId;
|
|
520
547
|
}
|
|
521
|
-
function
|
|
522
|
-
const
|
|
523
|
-
if (
|
|
524
|
-
|
|
548
|
+
function requireSafeDisplayText(field, value) {
|
|
549
|
+
const trimmed = value.trim();
|
|
550
|
+
if (trimmed.length === 0 || !isSafeDisplaySummary(trimmed)) {
|
|
551
|
+
throw new InvalidRequest(`Field "${field}" must be a browser-safe non-empty string.`);
|
|
525
552
|
}
|
|
526
|
-
|
|
553
|
+
return trimmed;
|
|
527
554
|
}
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
555
|
+
function safeOptionalDisplayText(field, value) {
|
|
556
|
+
if (value === undefined) {
|
|
557
|
+
return undefined;
|
|
558
|
+
}
|
|
559
|
+
if (typeof value !== "string") {
|
|
560
|
+
throw new InvalidRequest(`Field "${field}" must be a string when provided.`);
|
|
561
|
+
}
|
|
562
|
+
const trimmed = value.trim();
|
|
563
|
+
if (trimmed.length === 0) {
|
|
564
|
+
return undefined;
|
|
565
|
+
}
|
|
566
|
+
if (!isSafeDisplaySummary(trimmed)) {
|
|
567
|
+
throw new InvalidRequest(`Field "${field}" must be browser-safe when provided.`);
|
|
537
568
|
}
|
|
538
|
-
return
|
|
569
|
+
return trimmed;
|
|
539
570
|
}
|
|
540
571
|
function parseCreateCapsuleInput(body) {
|
|
541
|
-
|
|
542
|
-
if (displayName === undefined || displayName.length === 0) {
|
|
572
|
+
if (typeof body.displayName !== "string") {
|
|
543
573
|
throw new InvalidRequest('Field "displayName" must be a non-empty string.');
|
|
544
574
|
}
|
|
545
|
-
const
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
if (lower.includes("text-embedding-ada-002"))
|
|
564
|
-
return 1536;
|
|
565
|
-
// Conservative default for unknown embedding models.
|
|
566
|
-
return 1536;
|
|
567
|
-
}
|
|
568
|
-
function defaultEmbeddingIdentity(modelId) {
|
|
569
|
-
return {
|
|
570
|
-
provider: "openai",
|
|
571
|
-
modelId,
|
|
572
|
-
vectorDimensions: derivedVectorDimensions(modelId),
|
|
573
|
-
vectorMetric: "cosine",
|
|
574
|
-
};
|
|
575
|
+
const displayName = requireSafeDisplayText("displayName", body.displayName);
|
|
576
|
+
const description = safeOptionalDisplayText("description", body.description);
|
|
577
|
+
return description === undefined ? { displayName } : { displayName, description };
|
|
578
|
+
}
|
|
579
|
+
function normalizedEndpointFingerprint(baseUrl) {
|
|
580
|
+
const normalized = baseUrl.trim().replace(/\/+$/, "");
|
|
581
|
+
return createHash("sha256").update(normalized).digest("hex").slice(0, 16);
|
|
582
|
+
}
|
|
583
|
+
function embeddingProviderIdentity(provider) {
|
|
584
|
+
return `openai-compatible:${normalizedEndpointFingerprint(provider.baseUrl)}`;
|
|
585
|
+
}
|
|
586
|
+
function storedProviderMatchesConfiguredProvider(storedProvider, provider) {
|
|
587
|
+
// Legacy capsules created before #192 audit fixes stored the generic "openai" label.
|
|
588
|
+
// Keep those usable; new capsules store a non-secret endpoint fingerprint so future
|
|
589
|
+
// gateway swaps mark them incompatible instead of mixing unrelated vector spaces.
|
|
590
|
+
if (!storedProvider.startsWith("openai-compatible:"))
|
|
591
|
+
return true;
|
|
592
|
+
return storedProvider === embeddingProviderIdentity(provider);
|
|
575
593
|
}
|
|
576
594
|
// Issue #621 / #677: select the first provider whose resolved capability is embedding-capable.
|
|
577
595
|
// Falling back to a chat model creates capsules that can never index successfully.
|
|
@@ -584,6 +602,45 @@ export function selectEmbeddingModelId(config) {
|
|
|
584
602
|
function createCapsuleStorageReference(capsuleId) {
|
|
585
603
|
return `capsules/${capsuleId}`;
|
|
586
604
|
}
|
|
605
|
+
async function verifiedNewCapsuleEmbeddingIdentity(deps, provider) {
|
|
606
|
+
const adapter = createEmbeddingAdapter(provider, requestEmbeddingImpl(deps));
|
|
607
|
+
try {
|
|
608
|
+
const result = await verifyEmbeddingCapability(adapter, {
|
|
609
|
+
modelId: provider.modelId,
|
|
610
|
+
provider: embeddingProviderIdentity(provider),
|
|
611
|
+
vectorMetric: "cosine",
|
|
612
|
+
timeoutMs: provider.timeoutMs,
|
|
613
|
+
});
|
|
614
|
+
if (result.ok) {
|
|
615
|
+
return { ok: true, identity: result.identity };
|
|
616
|
+
}
|
|
617
|
+
return { ok: false, result: conflict(result.safeMessage) };
|
|
618
|
+
}
|
|
619
|
+
catch {
|
|
620
|
+
return {
|
|
621
|
+
ok: false,
|
|
622
|
+
result: conflict("embedding capability preflight failed before capsule creation"),
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
async function resolveNewCapsuleEmbeddingIdentity(deps) {
|
|
627
|
+
const config = currentGatewayConfig(deps);
|
|
628
|
+
const configuredModelId = selectEmbeddingModelId(config);
|
|
629
|
+
if (configuredModelId === undefined) {
|
|
630
|
+
return {
|
|
631
|
+
ok: false,
|
|
632
|
+
result: conflict("No configured embedding-capable model is available for new capsules. Configure the Model Gateway first."),
|
|
633
|
+
};
|
|
634
|
+
}
|
|
635
|
+
const provider = configuredEmbeddingProvider(config, configuredModelId);
|
|
636
|
+
if (provider === undefined) {
|
|
637
|
+
return {
|
|
638
|
+
ok: false,
|
|
639
|
+
result: conflict("No configured embedding-capable model is available for new capsules. Configure the Model Gateway first."),
|
|
640
|
+
};
|
|
641
|
+
}
|
|
642
|
+
return verifiedNewCapsuleEmbeddingIdentity(deps, provider);
|
|
643
|
+
}
|
|
587
644
|
function latestRunningJobId(store, capsuleId) {
|
|
588
645
|
const row = store._internal.db
|
|
589
646
|
.prepare([
|
|
@@ -625,6 +682,13 @@ function disconnectCapsuleSources(store, capsuleId) {
|
|
|
625
682
|
}
|
|
626
683
|
updateCapsuleState(store, capsuleId, "draft");
|
|
627
684
|
}
|
|
685
|
+
function resolveIndexingSourceSelection(store, capsule, mode) {
|
|
686
|
+
if (mode !== "repair-failed") {
|
|
687
|
+
return { shouldRun: true };
|
|
688
|
+
}
|
|
689
|
+
const sourceIds = failedSourceIds(store, capsule.id);
|
|
690
|
+
return sourceIds.length === 0 ? { shouldRun: false } : { shouldRun: true, sourceIds };
|
|
691
|
+
}
|
|
628
692
|
// LK-001 (Epic #189): both the start and refresh handlers map a terminal IndexingTerminal
|
|
629
693
|
// to the same 3-way response — cancelled → 409 cancelled, failed → 409 failed-message,
|
|
630
694
|
// any other (completed or absent) → 200 ok. Extracted so each handler stays under the
|
|
@@ -645,13 +709,16 @@ async function runCapsuleIndexingJob(deps, store, capsule, options) {
|
|
|
645
709
|
}
|
|
646
710
|
canonicalizeCapsuleSourceRoots(store, capsule);
|
|
647
711
|
const adapter = createEmbeddingAdapter(provider, requestEmbeddingImpl(deps));
|
|
648
|
-
const
|
|
712
|
+
const sourceSelection = resolveIndexingSourceSelection(store, capsule, options.mode);
|
|
713
|
+
if (!sourceSelection.shouldRun) {
|
|
714
|
+
return undefined;
|
|
715
|
+
}
|
|
649
716
|
const controller = localKnowledgeIndexingRegistry.start(String(capsule.id));
|
|
650
717
|
let terminal;
|
|
651
718
|
try {
|
|
652
719
|
for await (const event of runIndexingJob({
|
|
653
720
|
capsuleId: capsule.id,
|
|
654
|
-
...(sourceIds !== undefined ? { sourceIds } : {}),
|
|
721
|
+
...(sourceSelection.sourceIds !== undefined ? { sourceIds: sourceSelection.sourceIds } : {}),
|
|
655
722
|
parserRegistry: createDefaultParserRegistry(),
|
|
656
723
|
workspaceFs: nodeWorkspaceFs,
|
|
657
724
|
embeddingAdapter: adapter,
|
|
@@ -704,7 +771,7 @@ async function runHandler(worker) {
|
|
|
704
771
|
return notFound(error.message);
|
|
705
772
|
}
|
|
706
773
|
if (error instanceof KnowledgeStoreError) {
|
|
707
|
-
return serviceUnavailable(
|
|
774
|
+
return serviceUnavailable(LOCAL_KNOWLEDGE_STORE_UNAVAILABLE_MESSAGE);
|
|
708
775
|
}
|
|
709
776
|
throw error;
|
|
710
777
|
}
|
|
@@ -767,14 +834,12 @@ function parseSetCapsuleIds(raw) {
|
|
|
767
834
|
return capsuleIds;
|
|
768
835
|
}
|
|
769
836
|
function parseCreateCapsuleSetInput(body) {
|
|
770
|
-
|
|
771
|
-
if (displayName.length === 0) {
|
|
837
|
+
if (typeof body.displayName !== "string") {
|
|
772
838
|
throw new InvalidRequest('Field "displayName" must be a non-empty string.');
|
|
773
839
|
}
|
|
840
|
+
const displayName = requireSafeDisplayText("displayName", body.displayName);
|
|
774
841
|
const capsuleIds = parseSetCapsuleIds(body.capsuleIds);
|
|
775
|
-
const description =
|
|
776
|
-
? body.description.trim()
|
|
777
|
-
: undefined;
|
|
842
|
+
const description = safeOptionalDisplayText("description", body.description);
|
|
778
843
|
return description === undefined
|
|
779
844
|
? { displayName, capsuleIds }
|
|
780
845
|
: { displayName, description, capsuleIds };
|
|
@@ -823,16 +888,20 @@ function parseUpdateCapsuleInput(body) {
|
|
|
823
888
|
}
|
|
824
889
|
const patch = {};
|
|
825
890
|
if (body.displayName !== undefined) {
|
|
826
|
-
if (typeof body.displayName !== "string"
|
|
891
|
+
if (typeof body.displayName !== "string") {
|
|
827
892
|
throw new InvalidRequest('Field "displayName" must be a non-empty string when provided.');
|
|
828
893
|
}
|
|
829
|
-
patch.displayName = body.displayName
|
|
894
|
+
patch.displayName = requireSafeDisplayText("displayName", body.displayName);
|
|
830
895
|
}
|
|
831
896
|
if (body.description !== undefined) {
|
|
832
897
|
if (typeof body.description !== "string") {
|
|
833
898
|
throw new InvalidRequest('Field "description" must be a string when provided.');
|
|
834
899
|
}
|
|
835
|
-
|
|
900
|
+
const trimmed = body.description.trim();
|
|
901
|
+
if (!isSafeDisplaySummary(trimmed)) {
|
|
902
|
+
throw new InvalidRequest('Field "description" must be browser-safe when provided.');
|
|
903
|
+
}
|
|
904
|
+
patch.description = trimmed;
|
|
836
905
|
}
|
|
837
906
|
if (patch.displayName === undefined && patch.description === undefined) {
|
|
838
907
|
throw new InvalidRequest("Patch must include displayName or description.");
|
|
@@ -861,9 +930,9 @@ export async function handleCreateLocalKnowledgeCapsule(ctx, deps) {
|
|
|
861
930
|
const input = parseCreateCapsuleInput(await readJsonObject(ctx.req));
|
|
862
931
|
const env = openStoreForDeps(deps);
|
|
863
932
|
try {
|
|
864
|
-
const
|
|
865
|
-
if (
|
|
866
|
-
return
|
|
933
|
+
const embeddingIdentity = await resolveNewCapsuleEmbeddingIdentity(deps);
|
|
934
|
+
if (!embeddingIdentity.ok) {
|
|
935
|
+
return embeddingIdentity.result;
|
|
867
936
|
}
|
|
868
937
|
const capsuleId = randomUUID();
|
|
869
938
|
const capsule = createCapsule(env.store, {
|
|
@@ -874,7 +943,7 @@ export async function handleCreateLocalKnowledgeCapsule(ctx, deps) {
|
|
|
874
943
|
retrievalEffort: "default",
|
|
875
944
|
outputMode: "snippets",
|
|
876
945
|
answerGroundingPolicy: "require-citations",
|
|
877
|
-
embeddingModelIdentity:
|
|
946
|
+
embeddingModelIdentity: embeddingIdentity.identity,
|
|
878
947
|
lifecycleState: "draft",
|
|
879
948
|
storageReference: createCapsuleStorageReference(capsuleId),
|
|
880
949
|
}, createSqliteAuditSink(env.store));
|
|
@@ -979,8 +1048,11 @@ function parseConnectSourceInput(body) {
|
|
|
979
1048
|
assertScopeShape(scope);
|
|
980
1049
|
const displayNameRaw = body.displayName;
|
|
981
1050
|
const displayName = typeof displayNameRaw === "string" && displayNameRaw.trim().length > 0
|
|
982
|
-
? displayNameRaw
|
|
1051
|
+
? requireSafeDisplayText("displayName", displayNameRaw)
|
|
983
1052
|
: basename(connectScopeRootPath(scope));
|
|
1053
|
+
if (!isSafeDisplaySummary(displayName)) {
|
|
1054
|
+
throw new InvalidRequest('Field "displayName" must be browser-safe when provided.');
|
|
1055
|
+
}
|
|
984
1056
|
return { scope, displayName };
|
|
985
1057
|
}
|
|
986
1058
|
// Canonicalize (realpath) then refuse denied locations and non-directory roots BEFORE
|
|
@@ -1003,6 +1075,36 @@ function guardConnectorSourcePath(scope) {
|
|
|
1003
1075
|
}
|
|
1004
1076
|
return canonical;
|
|
1005
1077
|
}
|
|
1078
|
+
// Stable identity for connect-time dedup. Field-by-field (not JSON.stringify of the raw
|
|
1079
|
+
// object) so the request body's key order cannot defeat the comparison, and built on the
|
|
1080
|
+
// canonicalized scope so trailing-slash and symlink-alias spellings of the same folder fold
|
|
1081
|
+
// together. Scopes that differ in globs, recursion, or file lists stay distinct sources.
|
|
1082
|
+
//
|
|
1083
|
+
// files scope: the array order has no logical meaning (unlike includeGlobs/excludeGlobs on
|
|
1084
|
+
// folder/repository scopes where first-match-wins makes order semantically significant), so
|
|
1085
|
+
// we sort before serializing. This ensures [a,b] and [b,a] map to the same identity and the
|
|
1086
|
+
// idempotency check fires correctly on permuted re-connects.
|
|
1087
|
+
function scopeIdentity(scope) {
|
|
1088
|
+
const canonical = canonicalizeScopeRoot(scope);
|
|
1089
|
+
if (canonical.kind === "folder") {
|
|
1090
|
+
return JSON.stringify([
|
|
1091
|
+
"folder",
|
|
1092
|
+
canonical.rootPath,
|
|
1093
|
+
canonical.recursive,
|
|
1094
|
+
canonical.includeGlobs ?? null,
|
|
1095
|
+
canonical.excludeGlobs ?? null,
|
|
1096
|
+
]);
|
|
1097
|
+
}
|
|
1098
|
+
if (canonical.kind === "repository") {
|
|
1099
|
+
return JSON.stringify([
|
|
1100
|
+
"repository",
|
|
1101
|
+
canonical.repositoryRoot,
|
|
1102
|
+
canonical.includeGlobs ?? null,
|
|
1103
|
+
canonical.excludeGlobs ?? null,
|
|
1104
|
+
]);
|
|
1105
|
+
}
|
|
1106
|
+
return JSON.stringify(["files", canonical.rootPath, [...canonical.files].sort()]);
|
|
1107
|
+
}
|
|
1006
1108
|
export async function handleConnectLocalKnowledgeCapsule(ctx, deps) {
|
|
1007
1109
|
return runHandler(async () => {
|
|
1008
1110
|
const capsuleId = parseCapsuleId(ctx);
|
|
@@ -1014,6 +1116,17 @@ export async function handleConnectLocalKnowledgeCapsule(ctx, deps) {
|
|
|
1014
1116
|
if (capsule === undefined) {
|
|
1015
1117
|
return notFound(`Capsule not found: ${capsuleId}`);
|
|
1016
1118
|
}
|
|
1119
|
+
// Idempotent connect: re-connecting an identical scope (double-click, trailing-slash or
|
|
1120
|
+
// symlink-alias spelling of the same folder) must not create a second source row — a
|
|
1121
|
+
// duplicate would double-index every document and double every grounded citation.
|
|
1122
|
+
const targetIdentity = scopeIdentity(guarded);
|
|
1123
|
+
const alreadyConnected = listCapsuleSources(env.store, capsule.id).some((source) => scopeIdentity(source.scope) === targetIdentity);
|
|
1124
|
+
if (alreadyConnected) {
|
|
1125
|
+
return {
|
|
1126
|
+
status: 200,
|
|
1127
|
+
body: buildCapsuleResponseBody(deps, env.store, env.dbPath, capsule),
|
|
1128
|
+
};
|
|
1129
|
+
}
|
|
1017
1130
|
addSourceToCapsule(env.store, capsule.id, {
|
|
1018
1131
|
id: randomUUID(),
|
|
1019
1132
|
displayName,
|
|
@@ -1067,8 +1180,12 @@ export async function handleReindexLocalKnowledgeCapsule(ctx, deps) {
|
|
|
1067
1180
|
return runHandler(async () => {
|
|
1068
1181
|
const capsuleId = parseCapsuleId(ctx);
|
|
1069
1182
|
const body = await readJsonObject(ctx.req);
|
|
1070
|
-
const
|
|
1071
|
-
|
|
1183
|
+
const reindexRequest = validateCapsuleReindexRequest({ ...body, capsuleId });
|
|
1184
|
+
if (!reindexRequest.ok) {
|
|
1185
|
+
throw new InvalidRequest(reindexRequest.errors.join(" "));
|
|
1186
|
+
}
|
|
1187
|
+
const mode = reindexRequest.value.mode;
|
|
1188
|
+
const force = reindexRequest.value.force ?? false;
|
|
1072
1189
|
const env = openStoreForDeps(deps);
|
|
1073
1190
|
try {
|
|
1074
1191
|
const capsule = getCapsule(env.store, capsuleId);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type FigmaConnectorErrorCode = "FIGMA_MALFORMED_URL" | "FIGMA_TOKEN_MISSING" | "FIGMA_CONSENT_REQUIRED" | "FIGMA_TOKEN_INVALID" | "FIGMA_TOKEN_EXPIRED" | "FIGMA_TOKEN_REVOKED" | "FIGMA_NOT_FOUND" | "FIGMA_INSUFFICIENT_SCOPE" | "FIGMA_RENDER_FAILED" | "FIGMA_PROXY_EGRESS_FAILED" | "FIGMA_PROXY_UNREACHABLE" | "FIGMA_TLS_CA_FAILURE" | "FIGMA_OVERSIZED_SCOPE" | "FIGMA_RATE_LIMITED" | "FIGMA_UPSTREAM_UNAVAILABLE" | "FIGMA_INTERNAL";
|
|
1
|
+
export type FigmaConnectorErrorCode = "FIGMA_MALFORMED_URL" | "FIGMA_TOKEN_MISSING" | "FIGMA_CONSENT_REQUIRED" | "FIGMA_TOKEN_INVALID" | "FIGMA_TOKEN_EXPIRED" | "FIGMA_TOKEN_REVOKED" | "FIGMA_NOT_FOUND" | "FIGMA_INSUFFICIENT_SCOPE" | "FIGMA_RENDER_FAILED" | "FIGMA_PROXY_EGRESS_FAILED" | "FIGMA_PROXY_UNREACHABLE" | "FIGMA_PROXY_AUTH_REQUIRED" | "FIGMA_PROXY_BLOCKED_BY_POLICY" | "FIGMA_TLS_CA_FAILURE" | "FIGMA_OVERSIZED_SCOPE" | "FIGMA_RESPONSE_TOO_LARGE" | "FIGMA_RATE_LIMITED" | "FIGMA_UPSTREAM_UNAVAILABLE" | "FIGMA_NETWORK_UNREACHABLE" | "FIGMA_EGRESS_TIMEOUT" | "FIGMA_EGRESS_FAILED" | "FIGMA_BUILD_TIMEOUT" | "FIGMA_INTERNAL";
|
|
2
2
|
export interface FigmaConnectorErrorBody {
|
|
3
3
|
readonly error: {
|
|
4
4
|
readonly code: FigmaConnectorErrorCode;
|
|
@@ -13,7 +13,15 @@ export declare class FigmaConnectorError extends Error {
|
|
|
13
13
|
/**
|
|
14
14
|
* Classify a transport-level throw from `fetch` or the body read into a stable
|
|
15
15
|
* {@link FigmaConnectorErrorCode}. Side-effect-free and total — any non-Error
|
|
16
|
-
* throwable (string, undefined) maps to `
|
|
16
|
+
* throwable (string, undefined) maps to `FIGMA_EGRESS_FAILED`.
|
|
17
|
+
*
|
|
18
|
+
* Precedence:
|
|
19
|
+
* (a) OutboundHttpEgressError (or plain Error with outbound code, for cross-package resilience)
|
|
20
|
+
* → proxy/TLS-via-proxy codes. FIGMA_PROXY_* codes are ONLY reachable via this branch.
|
|
21
|
+
* (b) TLS trust codes / messages → FIGMA_TLS_CA_FAILURE.
|
|
22
|
+
* (c) Timeout / abort names (DOMException AbortError, Node TimeoutError) → FIGMA_EGRESS_TIMEOUT.
|
|
23
|
+
* (d) Direct connectivity codes / messages → FIGMA_NETWORK_UNREACHABLE.
|
|
24
|
+
* (e) Default → FIGMA_EGRESS_FAILED.
|
|
17
25
|
*
|
|
18
26
|
* Inspects `err.code`, `err.cause.code`, and `err.message` in that order of
|
|
19
27
|
* precedence so Node.js `TypeError: fetch failed` wrappers (undici wraps the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figmaConnectorErrors.d.ts","sourceRoot":"","sources":["../../../src/qualityIntelligence/figma/figmaConnectorErrors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"figmaConnectorErrors.d.ts","sourceRoot":"","sources":["../../../src/qualityIntelligence/figma/figmaConnectorErrors.ts"],"names":[],"mappings":"AAkCA,MAAM,MAAM,uBAAuB,GAC/B,qBAAqB,GACrB,qBAAqB,GACrB,wBAAwB,GACxB,qBAAqB,GACrB,qBAAqB,GACrB,qBAAqB,GACrB,iBAAiB,GACjB,0BAA0B,GAC1B,qBAAqB,GACrB,2BAA2B,GAC3B,yBAAyB,GACzB,2BAA2B,GAC3B,+BAA+B,GAC/B,sBAAsB,GACtB,uBAAuB,GACvB,0BAA0B,GAC1B,oBAAoB,GACpB,4BAA4B,GAC5B,2BAA2B,GAC3B,sBAAsB,GACtB,qBAAqB,GACrB,qBAAqB,GACrB,gBAAgB,CAAC;AAgDrB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACtF;AAED,eAAO,MAAM,uBAAuB,GAClC,MAAM,uBAAuB,KAC5B,uBAED,CAAC;AAEH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;gBAE3B,IAAI,EAAE,uBAAuB;CAK1C;AA0JD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,2BAA2B,GAAI,KAAK,OAAO,KAAG,uBAa1D,CAAC"}
|