@oscharko-dev/keiko 0.2.0-beta.3 → 0.2.0-beta.5
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/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/1m-kvwm6_90_3.css +1 -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/2ngm8iwdb1cbv.js +106 -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/turbopack-2lg1g6kbsfm0x.js +1 -0
- package/dist/ui/static/_next/static/hR2gBQqCDKdPdSxBqZhqv/_buildManifest.js +11 -0
- package/dist/ui/static/_next/static/hR2gBQqCDKdPdSxBqZhqv/_clientMiddlewareManifest.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/run.d.ts +3 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.js +73 -41
- 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/bffWire.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.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/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts +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/index.d.ts +3 -3
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts +18 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts.map +1 -1
- 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 +33 -0
- 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 +99 -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/index.d.ts +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.js +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts +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 +25 -6
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.js +2 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/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/normalize.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.js +22 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.js +18 -4
- 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/export/adapters/alm.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.js +29 -30
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.js +29 -5
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.js +29 -29
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts +2 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.js +40 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.js +6 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/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/assistant-response.d.ts +6 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.js +12 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +17 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.js +1 -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 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.js +651 -45
- 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 +197 -46
- 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 +103 -25
- 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 +199 -21
- 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 +193 -67
- 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/connectorErrors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.js +11 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.js +1 -0
- 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 +89 -30
- 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 +38 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.js +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.js +41 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.js +43 -10
- 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/retentionRoutes.d.ts +5 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.js +70 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.js +6 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts +25 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.js +72 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.js +97 -18
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts +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 +18 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +8 -3
- 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 +71 -15
- 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/anchors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.js +68 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/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/discovery.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.js +34 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/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/realpath.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.js +2 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/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 +72 -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/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts +0 -6
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts.map +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.js +0 -49
- /package/dist/ui/static/_next/static/chunks/{polyfills-42372ed130431b0a.js → 0cz1d0mv5g_q7.js} +0 -0
- /package/dist/ui/static/_next/static/{RAzN8WLtYaktD-ZePowXl → hR2gBQqCDKdPdSxBqZhqv}/_ssgManifest.js +0 -0
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
// non-empty because git-history is a repo-level signal that cannot meaningfully scope to a
|
|
10
10
|
// sub-folder.
|
|
11
11
|
import { createHash } from "node:crypto";
|
|
12
|
+
import { isAbsolute, normalize } from "node:path";
|
|
12
13
|
import { redact } from "@oscharko-dev/keiko-security";
|
|
13
14
|
import { resolveWithinWorkspace } from "./paths.js";
|
|
14
15
|
import { assertContainedRealPath } from "./realpath.js";
|
|
@@ -19,11 +20,15 @@ function queryFingerprint(query) {
|
|
|
19
20
|
}
|
|
20
21
|
const GIT_DIR_PREFIX = "gitdir:";
|
|
21
22
|
const HEAD_MAX_BYTES = 256;
|
|
23
|
+
const GIT_POINTER_MAX_BYTES = 4096;
|
|
22
24
|
const REFLOG_MAX_BYTES = 1_048_576;
|
|
23
25
|
const REFLOG_MAX_LINES = 10_000;
|
|
24
26
|
function isAllowedExternalGitdir(candidate) {
|
|
25
27
|
return candidate.replace(/\\/g, "/").includes("/.git/worktrees/");
|
|
26
28
|
}
|
|
29
|
+
function containsParentTraversal(candidate) {
|
|
30
|
+
return candidate.split(/[\\/]+/).includes("..");
|
|
31
|
+
}
|
|
27
32
|
async function readGuardedAbsolute(fs, base, absolutePath, label, maxBytes) {
|
|
28
33
|
try {
|
|
29
34
|
assertContainedRealPath(fs, base, absolutePath, label);
|
|
@@ -68,20 +73,49 @@ async function readGuardedAbsolute(fs, base, absolutePath, label, maxBytes) {
|
|
|
68
73
|
function statOrUndefined(fs, abs) {
|
|
69
74
|
try {
|
|
70
75
|
const stat = fs.stat(abs);
|
|
71
|
-
return {
|
|
76
|
+
return {
|
|
77
|
+
size: stat.size,
|
|
78
|
+
isFile: stat.isFile,
|
|
79
|
+
isDirectory: stat.isDirectory,
|
|
80
|
+
hardLinkCount: stat.hardLinkCount,
|
|
81
|
+
};
|
|
72
82
|
}
|
|
73
83
|
catch {
|
|
74
84
|
return undefined;
|
|
75
85
|
}
|
|
76
86
|
}
|
|
77
|
-
function
|
|
78
|
-
|
|
87
|
+
async function readSmallUtf8File(fs, abs, maxBytes) {
|
|
88
|
+
const stat = statOrUndefined(fs, abs);
|
|
89
|
+
if (!stat?.isFile) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
if (stat.hardLinkCount !== undefined && stat.hardLinkCount > 1) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
if (stat.size > maxBytes) {
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
if (fs.readFileBytes !== undefined) {
|
|
99
|
+
try {
|
|
100
|
+
const bytes = await fs.readFileBytes(abs, maxBytes);
|
|
101
|
+
return new TextDecoder("utf-8", { fatal: false }).decode(bytes);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
79
107
|
try {
|
|
80
|
-
|
|
108
|
+
return fs.readFileUtf8(abs);
|
|
81
109
|
}
|
|
82
110
|
catch {
|
|
83
111
|
return undefined;
|
|
84
112
|
}
|
|
113
|
+
}
|
|
114
|
+
async function readWorktreePointerTarget(fs, dotGit) {
|
|
115
|
+
const raw = await readSmallUtf8File(fs, dotGit, GIT_POINTER_MAX_BYTES);
|
|
116
|
+
if (raw === undefined) {
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
85
119
|
const trimmed = raw.trim();
|
|
86
120
|
if (!trimmed.startsWith(GIT_DIR_PREFIX)) {
|
|
87
121
|
return undefined;
|
|
@@ -92,23 +126,45 @@ function readWorktreePointerTarget(fs, dotGit) {
|
|
|
92
126
|
}
|
|
93
127
|
return target;
|
|
94
128
|
}
|
|
95
|
-
function
|
|
129
|
+
function containedPathIfPresent(fs, base, abs, label) {
|
|
96
130
|
try {
|
|
97
|
-
assertContainedRealPath(fs, base, abs, label);
|
|
131
|
+
const contained = assertContainedRealPath(fs, base, abs, label);
|
|
132
|
+
if (!fs.exists(contained)) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
return contained;
|
|
98
136
|
}
|
|
99
137
|
catch {
|
|
100
|
-
return
|
|
138
|
+
return undefined;
|
|
101
139
|
}
|
|
102
|
-
return fs.exists(abs);
|
|
103
140
|
}
|
|
104
|
-
function
|
|
105
|
-
|
|
106
|
-
|
|
141
|
+
function isContainedAndPresent(fs, base, abs, label) {
|
|
142
|
+
return containedPathIfPresent(fs, base, abs, label) !== undefined;
|
|
143
|
+
}
|
|
144
|
+
function resolvePointedGitdir(fs, root, target, candidate) {
|
|
145
|
+
if (!isAbsolute(target)) {
|
|
146
|
+
try {
|
|
147
|
+
return assertContainedRealPath(fs, root, candidate, ".git pointer");
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (containsParentTraversal(target)) {
|
|
154
|
+
return undefined;
|
|
107
155
|
}
|
|
108
|
-
|
|
109
|
-
|
|
156
|
+
const contained = containedPathIfPresent(fs, root, candidate, ".git pointer");
|
|
157
|
+
if (contained !== undefined) {
|
|
158
|
+
return contained;
|
|
159
|
+
}
|
|
160
|
+
let canonical;
|
|
161
|
+
try {
|
|
162
|
+
canonical = fs.realPath(candidate);
|
|
110
163
|
}
|
|
111
|
-
|
|
164
|
+
catch {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
return isAllowedExternalGitdir(canonical) ? canonical : undefined;
|
|
112
168
|
}
|
|
113
169
|
// Find the first 10-digit run that is not preceded by '<'. Avoids regex backtracking.
|
|
114
170
|
function firstUnixTimestamp(line) {
|
|
@@ -170,7 +226,7 @@ function gitHeadAtom(scope, fingerprint, nowMs) {
|
|
|
170
226
|
// Strategy: check whether HEAD lives directly at `.git/HEAD` first (covers the normal case AND
|
|
171
227
|
// the memFs directory simulation where only child keys are recorded); fall back to treating
|
|
172
228
|
// `.git` as a worktree-pointer file only when that leaf check fails.
|
|
173
|
-
function resolveGitdir(fs, root) {
|
|
229
|
+
async function resolveGitdir(fs, root) {
|
|
174
230
|
const dotGit = resolveWithinWorkspace(root, ".git");
|
|
175
231
|
const headDirect = `${dotGit}/HEAD`;
|
|
176
232
|
// Fast path: HEAD exists directly under .git — this is the standard directory layout.
|
|
@@ -188,31 +244,32 @@ function resolveGitdir(fs, root) {
|
|
|
188
244
|
return undefined;
|
|
189
245
|
}
|
|
190
246
|
// Worktree-pointer: read the `gitdir: <path>` value, validate containment once.
|
|
191
|
-
const target = readWorktreePointerTarget(fs, dotGit);
|
|
247
|
+
const target = await readWorktreePointerTarget(fs, dotGit);
|
|
192
248
|
if (target === undefined) {
|
|
193
249
|
return undefined;
|
|
194
250
|
}
|
|
195
|
-
const candidate = target
|
|
251
|
+
const candidate = isAbsolute(target) ? normalize(target) : resolveWithinWorkspace(root, target);
|
|
196
252
|
// Real git worktrees usually point outside the checkout root to `.git/worktrees/<name>`.
|
|
197
253
|
// Allow that one narrow shape, but still constrain the actual reads to files whose realpaths
|
|
198
254
|
// stay inside the resolved gitdir itself.
|
|
199
|
-
|
|
255
|
+
const gitdir = resolvePointedGitdir(fs, root, target, candidate);
|
|
256
|
+
if (gitdir === undefined) {
|
|
200
257
|
return undefined;
|
|
201
258
|
}
|
|
202
|
-
const pointedHead = `${
|
|
203
|
-
if (!isContainedAndPresent(fs,
|
|
259
|
+
const pointedHead = `${gitdir}/HEAD`;
|
|
260
|
+
if (!isContainedAndPresent(fs, gitdir, pointedHead, ".git-pointer/HEAD")) {
|
|
204
261
|
return undefined;
|
|
205
262
|
}
|
|
206
|
-
return
|
|
263
|
+
return gitdir;
|
|
207
264
|
}
|
|
208
|
-
function isAvailableForScope(scope, fs) {
|
|
265
|
+
async function isAvailableForScope(scope, fs) {
|
|
209
266
|
// Finding 8: git-history is a repo-level signal; sub-folder scoping is meaningless and
|
|
210
267
|
// would require reading outside the user-selected boundary.
|
|
211
268
|
if (scope.relativePaths.length > 0) {
|
|
212
269
|
return false;
|
|
213
270
|
}
|
|
214
271
|
const root = scope.workspace.root;
|
|
215
|
-
const gitdir = resolveGitdir(fs, root);
|
|
272
|
+
const gitdir = await resolveGitdir(fs, root);
|
|
216
273
|
if (gitdir === undefined) {
|
|
217
274
|
return false;
|
|
218
275
|
}
|
|
@@ -222,12 +279,12 @@ function isAvailableForScope(scope, fs) {
|
|
|
222
279
|
}
|
|
223
280
|
export const gitHistoryAdapter = {
|
|
224
281
|
name: "git-history",
|
|
225
|
-
isAvailable: (scope, fs) => {
|
|
282
|
+
isAvailable: async (scope, fs) => {
|
|
226
283
|
try {
|
|
227
|
-
return
|
|
284
|
+
return await isAvailableForScope(scope, fs);
|
|
228
285
|
}
|
|
229
286
|
catch {
|
|
230
|
-
return
|
|
287
|
+
return false;
|
|
231
288
|
}
|
|
232
289
|
},
|
|
233
290
|
lookup: async (scope, query, limits, fs, deps) => {
|
|
@@ -239,7 +296,7 @@ export const gitHistoryAdapter = {
|
|
|
239
296
|
}
|
|
240
297
|
const root = scope.workspace.root;
|
|
241
298
|
// Finding 7: resolve the real gitdir so worktree-pointer layouts work end-to-end.
|
|
242
|
-
const gitdir = resolveGitdir(fs, root);
|
|
299
|
+
const gitdir = await resolveGitdir(fs, root);
|
|
243
300
|
if (gitdir === undefined) {
|
|
244
301
|
return [];
|
|
245
302
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAmGjD,CAAC;AA+BH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAajD;AAMD,UAAU,UAAU;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAGvB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAkFD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa,CASrE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAS1F"}
|
|
@@ -67,11 +67,30 @@ export const DEFAULT_DENY_PATTERNS = Object.freeze([
|
|
|
67
67
|
".node_repl_history",
|
|
68
68
|
".irb_history",
|
|
69
69
|
"service-account*.json",
|
|
70
|
+
// Epic #177 post-closure audit: additional pure-credential FILES denied outright. These filenames
|
|
71
|
+
// hold secrets by convention (cloud storage keys, OAuth tokens, VCS/registry/shell credentials,
|
|
72
|
+
// IaC variables); secret-shaped content in otherwise-allowed files is still scrubbed by the
|
|
73
|
+
// redaction layer as defence-in-depth.
|
|
74
|
+
".s3cfg",
|
|
75
|
+
".boto",
|
|
76
|
+
".dockercfg",
|
|
77
|
+
".gitconfig",
|
|
78
|
+
".envrc",
|
|
79
|
+
"*.tfvars",
|
|
80
|
+
"*.tfvars.json",
|
|
81
|
+
".terraformrc",
|
|
70
82
|
// deps
|
|
71
83
|
"node_modules",
|
|
72
84
|
// Keiko runtime/evidence state. These files are internal product artifacts, not repository
|
|
73
85
|
// source, and must never be discoverable through connected repository grounding.
|
|
74
86
|
".keiko",
|
|
87
|
+
"keiko.config.json",
|
|
88
|
+
// Local tool and IDE runtime state. These directories can contain prompts, transcripts,
|
|
89
|
+
// worktrees, extension caches, shelves, and machine-local metadata; they are not source context.
|
|
90
|
+
".codex",
|
|
91
|
+
".claude",
|
|
92
|
+
".playwright-mcp",
|
|
93
|
+
".idea",
|
|
75
94
|
// build
|
|
76
95
|
"dist",
|
|
77
96
|
"build",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importGraph.d.ts","sourceRoot":"","sources":["../src/importGraph.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,iBAAiB,EAAyB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"importGraph.d.ts","sourceRoot":"","sources":["../src/importGraph.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,iBAAiB,EAAyB,MAAM,yBAAyB,CAAC;AA+HxF,eAAO,MAAM,kBAAkB,EAAE,iBAkChC,CAAC"}
|
|
@@ -85,9 +85,12 @@ function elapsedOver(ctx) {
|
|
|
85
85
|
}
|
|
86
86
|
async function scanFileForImports(ctx, relativePath, atoms) {
|
|
87
87
|
const abs = resolveWithinWorkspace(ctx.scope.workspace.root, relativePath);
|
|
88
|
-
assertContainedRealPath(ctx.fs, ctx.scope.workspace.root, abs, "scope");
|
|
89
|
-
const stat = ctx.fs.stat(
|
|
90
|
-
if (
|
|
88
|
+
const containedAbs = assertContainedRealPath(ctx.fs, ctx.scope.workspace.root, abs, "scope");
|
|
89
|
+
const stat = ctx.fs.stat(containedAbs);
|
|
90
|
+
if (stat.hardLinkCount !== undefined && stat.hardLinkCount > 1) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (await probeBinary(ctx.fs, containedAbs, stat.size)) {
|
|
91
94
|
return;
|
|
92
95
|
}
|
|
93
96
|
const content = readWorkspaceFile(ctx.scope.workspace, relativePath, { maxBytes: ctx.limits.maxBytesPerFileScanned }, ctx.fs);
|
|
@@ -2,6 +2,7 @@ import type { WorkspaceFs } from "./fs.js";
|
|
|
2
2
|
export interface ContainedRealPathInfo {
|
|
3
3
|
readonly path: string;
|
|
4
4
|
readonly realRelative: string;
|
|
5
|
+
readonly realBase: string;
|
|
5
6
|
}
|
|
6
7
|
export declare function containedRealPathInfo(fs: WorkspaceFs, root: string, absolutePath: string): ContainedRealPathInfo;
|
|
7
8
|
export declare function assertContainedRealPath(fs: WorkspaceFs, root: string, absolutePath: string, _label: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realpath.d.ts","sourceRoot":"","sources":["../src/realpath.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAqC3C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"realpath.d.ts","sourceRoot":"","sources":["../src/realpath.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAqC3C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAI9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,qBAAqB,CAwBvB;AAQD,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,MAAM,CAGR"}
|
|
@@ -47,7 +47,7 @@ export function containedRealPathInfo(fs, root, absolutePath) {
|
|
|
47
47
|
if (!isWithinWorkspace(realBase, target)) {
|
|
48
48
|
throw new PathEscapeError(`path escapes the workspace boundary via symlink: ${absolutePath}`, absolutePath);
|
|
49
49
|
}
|
|
50
|
-
return { path: target, realRelative: toRelative(realBase, target) };
|
|
50
|
+
return { path: target, realRelative: toRelative(realBase, target), realBase };
|
|
51
51
|
}
|
|
52
52
|
catch (error) {
|
|
53
53
|
if (error instanceof PathEscapeError) {
|
|
@@ -57,7 +57,7 @@ export function containedRealPathInfo(fs, root, absolutePath) {
|
|
|
57
57
|
if (!isWithinWorkspace(realBase, parentReal)) {
|
|
58
58
|
throw new PathEscapeError(`path escapes the workspace boundary via symlink: ${absolutePath}`, absolutePath);
|
|
59
59
|
}
|
|
60
|
-
return { path: absolutePath, realRelative: toRelative(realBase, parentReal) };
|
|
60
|
+
return { path: absolutePath, realRelative: toRelative(realBase, parentReal), realBase };
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
// Asserts that `absolutePath` (already lexically contained) does not escape `root` via a symlink.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repoSearch.d.ts","sourceRoot":"","sources":["../src/repoSearch.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACf,MAAM,iDAAiD,CAAC;AAWzD,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"repoSearch.d.ts","sourceRoot":"","sources":["../src/repoSearch.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACf,MAAM,iDAAiD,CAAC;AAWzD,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAmB5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,qBAAqB,EAAE,YAK1B,CAAC;AAWX,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,UAAU;IAClB,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AA4DD,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,cAAc,EACrB,MAAM,GAAE,YAAoC,EAC5C,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AA+DD,wBAAsB,SAAS,CAC7B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,cAAc,EACrB,MAAM,GAAE,YAAoC,EAC5C,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,YAAY,CAAC,CASvB;AAmHD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,kBAAkB,EAC3B,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAyC5B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Governed, deterministic, audit-friendly repository search facade (Epic #177, Issue #179).
|
|
2
|
-
// Composes the existing workspace primitives — discovery,
|
|
2
|
+
// Composes the existing workspace primitives — discovery, deny policy, realpath gate,
|
|
3
3
|
// readWorkspaceFile, plus the new binaryDetect and stableId modules — into three public
|
|
4
4
|
// APIs that emit normalized EvidenceAtom output: searchText, findFiles, readExcerpt.
|
|
5
5
|
// Pure JS (no subprocess, no ripgrep — deferred). Every fs touch goes through the
|
|
@@ -8,11 +8,11 @@ import { isValidScopePath, validateRetrievalQuery, } from "@oscharko-dev/keiko-c
|
|
|
8
8
|
import { readWorkspaceFile } from "./discovery.js";
|
|
9
9
|
import { RepoSearchInvalidQueryError, RepoSearchInvalidRangeError, RepoSearchUnsupportedFileError, } from "./errors.js";
|
|
10
10
|
import { nodeWorkspaceFs } from "./fs.js";
|
|
11
|
-
import {
|
|
11
|
+
import { isDenied } from "./ignore.js";
|
|
12
12
|
import { resolveWithinWorkspace } from "./paths.js";
|
|
13
|
-
import {
|
|
13
|
+
import { containedRealPathInfo } from "./realpath.js";
|
|
14
14
|
import { buildMatcher, compileGlob, fingerprintFor } from "./repoSearchMatchers.js";
|
|
15
|
-
import { buildAtom, buildCandidate, elapsed, gatherCandidates, hitLimit, probeBinary, scanFile, } from "./repoSearchScan.js";
|
|
15
|
+
import { buildAtom, buildCandidate, elapsed, gatherCandidates, hitLimit, isImageScopePath, isIoError, probeBinary, scanFile, } from "./repoSearchScan.js";
|
|
16
16
|
export const DEFAULT_SEARCH_LIMITS = {
|
|
17
17
|
maxFilesScanned: 2_000,
|
|
18
18
|
maxMatchesReturned: 200,
|
|
@@ -52,6 +52,26 @@ function assertWorkspaceRoot(workspace) {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
55
|
+
// Yields to the event loop every SCAN_YIELD_INTERVAL files so a large cold NFS/SMB workspace
|
|
56
|
+
// cannot block the event loop for multiple seconds. discoverFiles() itself remains synchronous
|
|
57
|
+
// (sync walk is load-bearing for importGraph/testSourcePairing callers); the yield here covers
|
|
58
|
+
// the already-async per-file scan pass where the loop overhead is measurable.
|
|
59
|
+
const SCAN_YIELD_INTERVAL = 64;
|
|
60
|
+
async function runScanLoop(runner, candidateSet, state, atoms, candidates) {
|
|
61
|
+
let loopIndex = 0;
|
|
62
|
+
for (const file of candidateSet.files) {
|
|
63
|
+
if (hitLimit(runner, state)) {
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
loopIndex += 1;
|
|
67
|
+
if (loopIndex % SCAN_YIELD_INTERVAL === 0) {
|
|
68
|
+
await new Promise((resolve) => {
|
|
69
|
+
setImmediate(resolve);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
await scanFile(runner, file, state, atoms, candidates);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
55
75
|
export async function searchText(scope, query, limits = DEFAULT_SEARCH_LIMITS, deps = {}) {
|
|
56
76
|
assertWorkspaceRoot(scope.workspace);
|
|
57
77
|
assertQuery(query);
|
|
@@ -72,7 +92,6 @@ export async function searchText(scope, query, limits = DEFAULT_SEARCH_LIMITS, d
|
|
|
72
92
|
nowMs,
|
|
73
93
|
startMs: nowMs(),
|
|
74
94
|
matcher: buildMatcher(query),
|
|
75
|
-
ignoreMatcher: compileIgnore(scope.workspace.ignoreLines),
|
|
76
95
|
fingerprint: fingerprintFor(query),
|
|
77
96
|
};
|
|
78
97
|
const candidateSet = gatherCandidates(scope, limits, fs);
|
|
@@ -84,12 +103,7 @@ export async function searchText(scope, query, limits = DEFAULT_SEARCH_LIMITS, d
|
|
|
84
103
|
matchesReturned: 0,
|
|
85
104
|
truncated: candidateSet.truncated,
|
|
86
105
|
};
|
|
87
|
-
|
|
88
|
-
if (hitLimit(runner, state)) {
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
await scanFile(runner, file, state, atoms, candidates);
|
|
92
|
-
}
|
|
106
|
+
await runScanLoop(runner, candidateSet, state, atoms, candidates);
|
|
93
107
|
return {
|
|
94
108
|
atoms,
|
|
95
109
|
candidates,
|
|
@@ -117,7 +131,6 @@ function findFilesSync(scope, query, limits, fs, nowMs) {
|
|
|
117
131
|
const ctx = {
|
|
118
132
|
scope,
|
|
119
133
|
regex: compileGlob(query.text),
|
|
120
|
-
ignoreMatcher: compileIgnore(scope.workspace.ignoreLines),
|
|
121
134
|
fingerprint: fingerprintFor(query),
|
|
122
135
|
nowMs,
|
|
123
136
|
};
|
|
@@ -132,7 +145,7 @@ function findFilesSync(scope, query, limits, fs, nowMs) {
|
|
|
132
145
|
truncated = true;
|
|
133
146
|
break;
|
|
134
147
|
}
|
|
135
|
-
if (isDenied(file.relativePath)
|
|
148
|
+
if (isDenied(file.relativePath)) {
|
|
136
149
|
candidates.push(buildCandidate(file.relativePath, "ignored"));
|
|
137
150
|
continue;
|
|
138
151
|
}
|
|
@@ -168,12 +181,29 @@ function isWithinSelectedScope(scope, scopePath) {
|
|
|
168
181
|
}
|
|
169
182
|
return scope.relativePaths.some((selectedPath) => scopePath === selectedPath || scopePath.startsWith(`${selectedPath}/`));
|
|
170
183
|
}
|
|
184
|
+
function normalizeScopePath(scopePath) {
|
|
185
|
+
return scopePath.split("\\").join("/");
|
|
186
|
+
}
|
|
171
187
|
function assertExcerptWithinSelectedScope(scope, scopePath) {
|
|
172
188
|
if (isWithinSelectedScope(scope, scopePath)) {
|
|
173
189
|
return;
|
|
174
190
|
}
|
|
175
191
|
throw new RepoSearchUnsupportedFileError(`cannot read excerpt outside selected scope: ${scopePath}`, "outside-scope");
|
|
176
192
|
}
|
|
193
|
+
function resolveExcerptTarget(scope, scopePath, fs) {
|
|
194
|
+
const abs = resolveWithinWorkspace(scope.workspace.root, scopePath);
|
|
195
|
+
const contained = containedRealPathInfo(fs, scope.workspace.root, abs);
|
|
196
|
+
const realScopePath = normalizeScopePath(contained.realRelative);
|
|
197
|
+
return { path: contained.path, realScopePath };
|
|
198
|
+
}
|
|
199
|
+
function assertExcerptReadableByPolicy(requestPath, realScopePath) {
|
|
200
|
+
// Deny gates must fire BEFORE any byte read (incl. the binary probe) so that a denied path such
|
|
201
|
+
// as .env is never read at all, including through an in-workspace symlink. .gitignore is not a
|
|
202
|
+
// context policy boundary; safe ignored/dot files remain readable when the user scopes them in.
|
|
203
|
+
if (isDenied(requestPath) || isDenied(realScopePath)) {
|
|
204
|
+
throw new RepoSearchUnsupportedFileError(`cannot read excerpt of denied path: ${requestPath}`, "denied");
|
|
205
|
+
}
|
|
206
|
+
}
|
|
177
207
|
function assertExcerptRange(request) {
|
|
178
208
|
if (!Number.isInteger(request.startLine) ||
|
|
179
209
|
!Number.isInteger(request.endLine) ||
|
|
@@ -190,24 +220,41 @@ function assertExcerptRange(request) {
|
|
|
190
220
|
throw new RepoSearchInvalidRangeError(`invalid scopePath: ${request.scopePath}`);
|
|
191
221
|
}
|
|
192
222
|
}
|
|
223
|
+
// Probes for binary content and throws RepoSearchUnsupportedFileError on both binary detection
|
|
224
|
+
// and IO errors (EACCES, ENOENT, …) so the caller can treat both as a graceful skip.
|
|
225
|
+
async function assertExcerptNotBinary(fs, absolutePath, size, scopePath) {
|
|
226
|
+
let isBinary;
|
|
227
|
+
try {
|
|
228
|
+
isBinary = await probeBinary(fs, absolutePath, size);
|
|
229
|
+
}
|
|
230
|
+
catch (err) {
|
|
231
|
+
// TOCTOU: permissions or availability may change between stat and probe (EACCES, ENOENT, …).
|
|
232
|
+
// Re-classify as an unsupported-file skip so readKeptExcerpts degrades gracefully instead
|
|
233
|
+
// of crashing the whole grounded answer (the comment at grounded-orchestrator readKeptExcerpts
|
|
234
|
+
// explicitly promises this invariant).
|
|
235
|
+
if (isIoError(err)) {
|
|
236
|
+
throw new RepoSearchUnsupportedFileError(`cannot read excerpt of unreadable file: ${scopePath}`, "io-error");
|
|
237
|
+
}
|
|
238
|
+
throw err;
|
|
239
|
+
}
|
|
240
|
+
if (isBinary) {
|
|
241
|
+
throw new RepoSearchUnsupportedFileError(`cannot read excerpt of binary file: ${scopePath}`, "binary");
|
|
242
|
+
}
|
|
243
|
+
}
|
|
193
244
|
export async function readExcerpt(scope, request, deps = {}) {
|
|
194
245
|
assertExcerptRange(request);
|
|
195
246
|
assertWorkspaceRoot(scope.workspace);
|
|
196
247
|
assertExcerptWithinSelectedScope(scope, request.scopePath);
|
|
248
|
+
if (isImageScopePath(request.scopePath)) {
|
|
249
|
+
throw new RepoSearchUnsupportedFileError(`cannot read excerpt of image file: ${request.scopePath}`, "binary");
|
|
250
|
+
}
|
|
197
251
|
const fs = deps.fs ?? nodeWorkspaceFs;
|
|
198
252
|
const nowMs = deps.nowMs ?? Date.now;
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
if (isDenied(request.scopePath) || isIgnored(ignoreMatcher, request.scopePath, false)) {
|
|
205
|
-
throw new RepoSearchUnsupportedFileError(`cannot read excerpt of denied or ignored path: ${request.scopePath}`, "denied");
|
|
206
|
-
}
|
|
207
|
-
const stat = fs.stat(abs);
|
|
208
|
-
if (await probeBinary(fs, abs, stat.size)) {
|
|
209
|
-
throw new RepoSearchUnsupportedFileError(`cannot read excerpt of binary file: ${request.scopePath}`, "binary");
|
|
210
|
-
}
|
|
253
|
+
const target = resolveExcerptTarget(scope, request.scopePath, fs);
|
|
254
|
+
assertExcerptReadableByPolicy(request.scopePath, target.realScopePath);
|
|
255
|
+
assertExcerptWithinSelectedScope(scope, target.realScopePath);
|
|
256
|
+
const stat = fs.stat(target.path);
|
|
257
|
+
await assertExcerptNotBinary(fs, target.path, stat.size, request.scopePath);
|
|
211
258
|
// Read enough of the file to reach the requested line window (bounded by MAX_EXCERPT_FILE_BYTES),
|
|
212
259
|
// then clamp the returned content to the caller's request.maxBytes budget. The read cap is
|
|
213
260
|
// intentionally larger than request.maxBytes so a window deep in a multi-kibibyte file is still
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { WorkspaceFs } from "./fs.js";
|
|
2
|
+
import type { DiscoveredFile, WorkspaceInfo } from "./types.js";
|
|
3
|
+
interface ScopeShape {
|
|
4
|
+
readonly workspace: WorkspaceInfo;
|
|
5
|
+
readonly relativePaths: readonly string[];
|
|
6
|
+
}
|
|
7
|
+
interface LimitsShape {
|
|
8
|
+
readonly maxFilesScanned: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function collectFromEntries(scope: ScopeShape, limits: LimitsShape, fs: WorkspaceFs): {
|
|
11
|
+
files: readonly DiscoveredFile[];
|
|
12
|
+
truncated: boolean;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=repoSearchEntries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repoSearchEntries.d.ts","sourceRoot":"","sources":["../src/repoSearchEntries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAC;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhE,UAAU,UAAU;IAClB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAoHD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,WAAW,GACd;IAAE,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAgB1D"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { isDenied } from "./ignore.js";
|
|
2
|
+
import { resolveWithinWorkspace } from "./paths.js";
|
|
3
|
+
import { containedRealPathInfo } from "./realpath.js";
|
|
4
|
+
import { RepoSearchInvalidQueryError } from "./errors.js";
|
|
5
|
+
function normalizeScopePath(scopePath) {
|
|
6
|
+
return scopePath.split("\\").join("/");
|
|
7
|
+
}
|
|
8
|
+
function readDirSorted(fs, absoluteDir) {
|
|
9
|
+
try {
|
|
10
|
+
return [...fs.readDir(absoluteDir)].sort((a, b) => (a.name < b.name ? -1 : 1));
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function pushAllowedFile(walk, relPath, absPath) {
|
|
17
|
+
if (walk.files.length > walk.limits.maxFilesScanned) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const stat = walk.fs.stat(absPath);
|
|
21
|
+
if (!stat.isFile) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
walk.files.push({ relativePath: relPath, sizeBytes: stat.size });
|
|
25
|
+
if (walk.files.length > walk.limits.maxFilesScanned) {
|
|
26
|
+
walk.truncated = true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function allowedByFilters(relPath) {
|
|
30
|
+
return !isDenied(relPath);
|
|
31
|
+
}
|
|
32
|
+
function handleDirectoryEntry(walk, absoluteDir, dirRel, entry, depth) {
|
|
33
|
+
if (entry.isSymbolicLink) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const root = walk.scope.workspace.root;
|
|
37
|
+
const childRel = dirRel.length === 0 ? entry.name : `${dirRel}/${entry.name}`;
|
|
38
|
+
if (!allowedByFilters(childRel)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const childAbs = resolveWithinWorkspace(root, childRel);
|
|
42
|
+
const contained = containedRealPathInfo(walk.fs, root, childAbs);
|
|
43
|
+
const realRel = normalizeScopePath(contained.realRelative);
|
|
44
|
+
if (!allowedByFilters(realRel)) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (entry.isDirectory) {
|
|
48
|
+
walkEntryDirectory(walk, contained.path, realRel, depth + 1);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
pushAllowedFile(walk, realRel, contained.path);
|
|
52
|
+
}
|
|
53
|
+
function walkEntryDirectory(walk, absoluteDir, dirRel, depth) {
|
|
54
|
+
if (depth > 12 || walk.truncated) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
for (const entry of readDirSorted(walk.fs, absoluteDir)) {
|
|
58
|
+
if (walk.files.length > walk.limits.maxFilesScanned) {
|
|
59
|
+
walk.truncated = true;
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
handleDirectoryEntry(walk, absoluteDir, dirRel, entry, depth);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function handleScopeEntry(walk, entry) {
|
|
66
|
+
const root = walk.scope.workspace.root;
|
|
67
|
+
const abs = resolveWithinWorkspace(root, entry);
|
|
68
|
+
const contained = containedRealPathInfo(walk.fs, root, abs);
|
|
69
|
+
const entryRel = normalizeScopePath(entry);
|
|
70
|
+
const realRel = normalizeScopePath(contained.realRelative);
|
|
71
|
+
if (isDenied(entryRel) || isDenied(realRel)) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
let stat;
|
|
75
|
+
try {
|
|
76
|
+
stat = walk.fs.stat(contained.path);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
throw new RepoSearchInvalidQueryError("Connected scope path is not accessible from the selected project.");
|
|
80
|
+
}
|
|
81
|
+
if (!allowedByFilters(entryRel) ||
|
|
82
|
+
!allowedByFilters(realRel)) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (stat.isDirectory) {
|
|
86
|
+
walkEntryDirectory(walk, contained.path, realRel, 1);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
pushAllowedFile(walk, realRel, contained.path);
|
|
90
|
+
}
|
|
91
|
+
export function collectFromEntries(scope, limits, fs) {
|
|
92
|
+
const out = [];
|
|
93
|
+
const walk = {
|
|
94
|
+
scope,
|
|
95
|
+
limits,
|
|
96
|
+
fs,
|
|
97
|
+
files: out,
|
|
98
|
+
truncated: false,
|
|
99
|
+
};
|
|
100
|
+
for (const entry of scope.relativePaths) {
|
|
101
|
+
if (walk.truncated) {
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
handleScopeEntry(walk, entry);
|
|
105
|
+
}
|
|
106
|
+
return { files: out.slice(0, limits.maxFilesScanned), truncated: walk.truncated };
|
|
107
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { LineMatcher } from "./repoSearchMatchers.js";
|
|
2
|
+
export interface LineSelectionRunner {
|
|
3
|
+
readonly limits: {
|
|
4
|
+
readonly elapsedMsMax: number;
|
|
5
|
+
};
|
|
6
|
+
readonly matcher: LineMatcher;
|
|
7
|
+
readonly nowMs: () => number;
|
|
8
|
+
readonly startMs: number;
|
|
9
|
+
}
|
|
10
|
+
export interface LineSelectionState {
|
|
11
|
+
truncated: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ScoredLine {
|
|
14
|
+
readonly line: number;
|
|
15
|
+
readonly score: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function collectBestLines(runner: LineSelectionRunner, text: string, state: LineSelectionState): readonly ScoredLine[];
|
|
18
|
+
//# sourceMappingURL=repoSearchLineSelection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repoSearchLineSelection.d.ts","sourceRoot":"","sources":["../src/repoSearchLineSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAsBD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,kBAAkB,GACxB,SAAS,UAAU,EAAE,CAmBvB"}
|