@oscharko-dev/keiko 0.2.0-beta.7 → 0.2.0-beta.9
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/dist/ui/csp-hashes.json +14 -14
- package/dist/ui/static/404.html +1 -1
- package/dist/ui/static/__next.__PAGE__.txt +2 -2
- package/dist/ui/static/__next._full.txt +3 -3
- package/dist/ui/static/__next._head.txt +1 -1
- package/dist/ui/static/__next._index.txt +2 -2
- package/dist/ui/static/__next._tree.txt +2 -2
- package/dist/ui/static/_next/static/chunks/06-q1ntr51v8r.js +1 -0
- package/dist/ui/static/_next/static/chunks/0y9qlvrxsyign.js +109 -0
- package/dist/ui/static/_next/static/chunks/1h0v66-p9cx19.css +1 -0
- package/dist/ui/static/_next/static/chunks/3ewv4mguqzooj.js +1 -0
- package/dist/ui/static/_not-found/__next._full.txt +2 -2
- package/dist/ui/static/_not-found/__next._head.txt +1 -1
- package/dist/ui/static/_not-found/__next._index.txt +2 -2
- package/dist/ui/static/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/ui/static/_not-found/__next._not-found.txt +1 -1
- package/dist/ui/static/_not-found/__next._tree.txt +2 -2
- package/dist/ui/static/_not-found.html +1 -1
- package/dist/ui/static/_not-found.txt +2 -2
- package/dist/ui/static/fonts/OFL.txt +93 -0
- package/dist/ui/static/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
- package/dist/ui/static/index.html +1 -1
- package/dist/ui/static/index.txt +3 -3
- package/dist/ui/static/launch/__next._full.txt +3 -3
- package/dist/ui/static/launch/__next._head.txt +1 -1
- package/dist/ui/static/launch/__next._index.txt +2 -2
- package/dist/ui/static/launch/__next._tree.txt +2 -2
- package/dist/ui/static/launch/__next.launch.__PAGE__.txt +2 -2
- package/dist/ui/static/launch/__next.launch.txt +1 -1
- package/dist/ui/static/launch.html +1 -1
- package/dist/ui/static/launch.txt +3 -3
- package/dist/ui/static/local-knowledge/__next._full.txt +3 -3
- package/dist/ui/static/local-knowledge/__next._head.txt +1 -1
- package/dist/ui/static/local-knowledge/__next._index.txt +2 -2
- package/dist/ui/static/local-knowledge/__next._tree.txt +2 -2
- package/dist/ui/static/local-knowledge/__next.local-knowledge.__PAGE__.txt +2 -2
- package/dist/ui/static/local-knowledge/__next.local-knowledge.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule/__next._full.txt +3 -3
- package/dist/ui/static/local-knowledge/capsule/__next._head.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule/__next._index.txt +2 -2
- package/dist/ui/static/local-knowledge/capsule/__next._tree.txt +2 -2
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.__PAGE__.txt +2 -2
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule.html +1 -1
- package/dist/ui/static/local-knowledge/capsule.txt +3 -3
- package/dist/ui/static/local-knowledge.html +1 -1
- package/dist/ui/static/local-knowledge.txt +3 -3
- package/dist/ui/static/memoriaviva/__next._full.txt +2 -2
- package/dist/ui/static/memoriaviva/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +1 -1
- package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation.html +1 -1
- package/dist/ui/static/memoriaviva/consolidation.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next._full.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/detail.html +1 -1
- package/dist/ui/static/memoriaviva/detail.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue.html +1 -1
- package/dist/ui/static/memoriaviva/review-queue.txt +2 -2
- package/dist/ui/static/memoriaviva.html +1 -1
- package/dist/ui/static/memoriaviva.txt +2 -2
- package/dist/ui/static/sw.js +7 -3
- package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/memory.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/memory.js +4 -5
- package/node_modules/@oscharko-dev/keiko-cli/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +36 -4
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +15 -0
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.js +13 -3
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts +13 -0
- 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 +46 -2
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-harness/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.js +0 -10
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts +2 -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 +3 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/maintenance.d.ts +2 -16
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/maintenance.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/maintenance.js +49 -48
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/retention.d.ts +2 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/retention.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/retention.js +15 -0
- package/node_modules/@oscharko-dev/keiko-memory-governance/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/decay.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/decay.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/decay.js +22 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/diversity.d.ts +8 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/diversity.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/diversity.js +87 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/index.d.ts +4 -2
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/index.js +4 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.d.ts +5 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.js +140 -21
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/recency.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/recency.js +4 -10
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.js +11 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/strength.d.ts +9 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/strength.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/strength.js +51 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts +11 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.js +7 -0
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/access.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/access.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/access.js +31 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.js +16 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.js +4 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts +8 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.js +9 -5
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts +6 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.js +116 -21
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testQualityRubric.d.ts +6 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testQualityRubric.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testQualityRubric.js +12 -0
- 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 +8 -7
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.js +29 -7
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.js +61 -24
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-sdk/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-security/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +44 -65
- package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.js +2 -0
- 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 +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.js +333 -70
- 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 +410 -18
- 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 +1 -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 +7 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.js +4 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts +1 -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 +4 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.js +8 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.js +34 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-embedding.d.ts +12 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-embedding.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-embedding.js +127 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.js +40 -11
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts +16 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.js +72 -50
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-retrieval-signals.d.ts +12 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-retrieval-signals.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-retrieval-signals.js +84 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.js +11 -6
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.js +9 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts +6 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.js +10 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts +2 -1
- 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 +62 -26
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.d.ts +2 -0
- 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 +6 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +14 -0
- 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/figmaSnapshotRoutes.d.ts +33 -0
- 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 +263 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotScreenIds.d.ts +19 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotScreenIds.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotScreenIds.js +75 -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 +13 -12
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts +6 -6
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.js +12 -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 +34 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts +4 -2
- 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 +222 -35
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.js +68 -16
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +7 -1
- package/node_modules/@oscharko-dev/keiko-server/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-verification/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.js +45 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/index.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/index.js +1 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/intent.d.ts +8 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/intent.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/intent.js +140 -0
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.d.ts +2 -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 +21 -5
- 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 +86 -40
- 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 +9 -0
- package/node_modules/@oscharko-dev/keiko-workflows/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.js +23 -6
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +24 -3
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchPolicy.d.ts +34 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchPolicy.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchPolicy.js +342 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts +6 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.js +57 -9
- package/node_modules/@oscharko-dev/keiko-workspace/package.json +1 -1
- package/package.json +2 -1
- package/dist/ui/static/_next/static/chunks/0-qhhdvxg2j_y.js +0 -1
- package/dist/ui/static/_next/static/chunks/0ke4ratkgvcxo.css +0 -1
- package/dist/ui/static/_next/static/chunks/3vf3oh2-sl2nc.js +0 -1
- package/dist/ui/static/_next/static/chunks/3wmd4-2vznp2g.js +0 -106
- /package/dist/ui/static/_next/static/{frhs0YcUqCPLHal-wHjDP → a5sUbXeTgQ9A2LRTMu_Q_}/_buildManifest.js +0 -0
- /package/dist/ui/static/_next/static/{frhs0YcUqCPLHal-wHjDP → a5sUbXeTgQ9A2LRTMu_Q_}/_clientMiddlewareManifest.js +0 -0
- /package/dist/ui/static/_next/static/{frhs0YcUqCPLHal-wHjDP → a5sUbXeTgQ9A2LRTMu_Q_}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
const METADATA_FILENAMES = new Set([
|
|
2
|
+
"package.json",
|
|
3
|
+
"tsconfig.json",
|
|
4
|
+
"tsconfig.base.json",
|
|
5
|
+
"tsconfig.build.json",
|
|
6
|
+
"vite.config.ts",
|
|
7
|
+
"vite.config.js",
|
|
8
|
+
"vitest.config.ts",
|
|
9
|
+
"vitest.config.js",
|
|
10
|
+
"jest.config.ts",
|
|
11
|
+
"jest.config.js",
|
|
12
|
+
"playwright.config.ts",
|
|
13
|
+
"playwright.config.js",
|
|
14
|
+
"next.config.ts",
|
|
15
|
+
"next.config.js",
|
|
16
|
+
"eslint.config.ts",
|
|
17
|
+
"eslint.config.js",
|
|
18
|
+
]);
|
|
19
|
+
const OVERVIEW_FILENAMES = new Set([
|
|
20
|
+
"readme.md",
|
|
21
|
+
"agents.md",
|
|
22
|
+
"contributing.md",
|
|
23
|
+
"architecture.md",
|
|
24
|
+
"docs/architecture.md",
|
|
25
|
+
"docs/overview.md",
|
|
26
|
+
"docs/readme.md",
|
|
27
|
+
]);
|
|
28
|
+
const LOCKFILE_FILENAMES = new Set([
|
|
29
|
+
"bun.lock",
|
|
30
|
+
"bun.lockb",
|
|
31
|
+
"cargo.lock",
|
|
32
|
+
"composer.lock",
|
|
33
|
+
"gemfile.lock",
|
|
34
|
+
"package-lock.json",
|
|
35
|
+
"pnpm-lock.yaml",
|
|
36
|
+
"yarn.lock",
|
|
37
|
+
]);
|
|
38
|
+
const LOW_VALUE_SEGMENTS = new Set([
|
|
39
|
+
".parcel-cache",
|
|
40
|
+
".svelte-kit",
|
|
41
|
+
".vercel",
|
|
42
|
+
"coverage",
|
|
43
|
+
"dist",
|
|
44
|
+
"generated",
|
|
45
|
+
"storybook-static",
|
|
46
|
+
"tmp",
|
|
47
|
+
]);
|
|
48
|
+
const LOW_VALUE_IGNORE_LINES = Object.freeze([
|
|
49
|
+
".parcel-cache/",
|
|
50
|
+
".svelte-kit/",
|
|
51
|
+
".vercel/",
|
|
52
|
+
"coverage/",
|
|
53
|
+
"dist/",
|
|
54
|
+
"generated/",
|
|
55
|
+
"storybook-static/",
|
|
56
|
+
"tmp/",
|
|
57
|
+
"bun.lock",
|
|
58
|
+
"bun.lockb",
|
|
59
|
+
"cargo.lock",
|
|
60
|
+
"composer.lock",
|
|
61
|
+
"Gemfile.lock",
|
|
62
|
+
"package-lock.json",
|
|
63
|
+
"pnpm-lock.yaml",
|
|
64
|
+
"yarn.lock",
|
|
65
|
+
]);
|
|
66
|
+
const SOURCE_EXTENSIONS = new Set([
|
|
67
|
+
"cjs",
|
|
68
|
+
"cts",
|
|
69
|
+
"go",
|
|
70
|
+
"java",
|
|
71
|
+
"js",
|
|
72
|
+
"jsx",
|
|
73
|
+
"mjs",
|
|
74
|
+
"mts",
|
|
75
|
+
"py",
|
|
76
|
+
"rs",
|
|
77
|
+
"ts",
|
|
78
|
+
"tsx",
|
|
79
|
+
"vue",
|
|
80
|
+
]);
|
|
81
|
+
const DOC_EXTENSIONS = new Set(["adoc", "md", "mdx", "rst", "txt"]);
|
|
82
|
+
const TEST_FILE_RE = /(?:^|[./_-])(?:test|spec|fixture|mock)s?(?:[./_-]|$)/iu;
|
|
83
|
+
// Identifier tokens with a SINGLE greedy quantifier — no two overlapping `[A-Za-z0-9_$]*` runs
|
|
84
|
+
// around `[A-Z]`, which is a polynomial-ReDoS shape on uncontrolled query text (CodeQL). The
|
|
85
|
+
// camelCase test (an uppercase at position >= 1) is applied separately as a constant-width probe.
|
|
86
|
+
const IDENTIFIER_TOKEN_RE = /\b[A-Za-z_$][A-Za-z0-9_$]*\b/gu;
|
|
87
|
+
const HAS_INNER_UPPERCASE_RE = /[A-Za-z0-9_$][A-Z]/u;
|
|
88
|
+
const TOKEN_RE = /[A-Za-z0-9_.-]{3,}/gu;
|
|
89
|
+
function emptyBucketCounts() {
|
|
90
|
+
return {
|
|
91
|
+
"canonical-metadata": 0,
|
|
92
|
+
"overview-doc": 0,
|
|
93
|
+
"exact-path": 0,
|
|
94
|
+
"symbol-source": 0,
|
|
95
|
+
source: 0,
|
|
96
|
+
test: 0,
|
|
97
|
+
docs: 0,
|
|
98
|
+
lockfile: 0,
|
|
99
|
+
"low-value": 0,
|
|
100
|
+
other: 0,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function basename(scopePath) {
|
|
104
|
+
const index = scopePath.lastIndexOf("/");
|
|
105
|
+
return index >= 0 ? scopePath.slice(index + 1) : scopePath;
|
|
106
|
+
}
|
|
107
|
+
function extension(scopePath) {
|
|
108
|
+
const name = basename(scopePath).toLowerCase();
|
|
109
|
+
const dot = name.lastIndexOf(".");
|
|
110
|
+
return dot < 0 ? "" : name.slice(dot + 1);
|
|
111
|
+
}
|
|
112
|
+
function normalizedPath(scopePath) {
|
|
113
|
+
return scopePath.split("\\").join("/").toLowerCase();
|
|
114
|
+
}
|
|
115
|
+
function pathSegments(scopePath) {
|
|
116
|
+
return normalizedPath(scopePath)
|
|
117
|
+
.split("/")
|
|
118
|
+
.filter((segment) => segment.length > 0);
|
|
119
|
+
}
|
|
120
|
+
function isLockfile(scopePath) {
|
|
121
|
+
return LOCKFILE_FILENAMES.has(basename(scopePath).toLowerCase());
|
|
122
|
+
}
|
|
123
|
+
function hasLowValueSegment(scopePath) {
|
|
124
|
+
return pathSegments(scopePath).some((segment) => LOW_VALUE_SEGMENTS.has(segment));
|
|
125
|
+
}
|
|
126
|
+
function normalizedQueryTerms(query) {
|
|
127
|
+
const terms = new Set();
|
|
128
|
+
for (const match of query.text.matchAll(TOKEN_RE)) {
|
|
129
|
+
terms.add(match[0].toLowerCase());
|
|
130
|
+
}
|
|
131
|
+
for (const match of query.text.matchAll(IDENTIFIER_TOKEN_RE)) {
|
|
132
|
+
if (HAS_INNER_UPPERCASE_RE.test(match[0])) {
|
|
133
|
+
terms.add(match[0].toLowerCase());
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return [...terms];
|
|
137
|
+
}
|
|
138
|
+
function bucketByPath(scopePath) {
|
|
139
|
+
const path = normalizedPath(scopePath);
|
|
140
|
+
const name = basename(path);
|
|
141
|
+
const ext = extension(path);
|
|
142
|
+
if (METADATA_FILENAMES.has(name)) {
|
|
143
|
+
return "canonical-metadata";
|
|
144
|
+
}
|
|
145
|
+
if (OVERVIEW_FILENAMES.has(path) || OVERVIEW_FILENAMES.has(name)) {
|
|
146
|
+
return "overview-doc";
|
|
147
|
+
}
|
|
148
|
+
if (isLockfile(path)) {
|
|
149
|
+
return "lockfile";
|
|
150
|
+
}
|
|
151
|
+
if (hasLowValueSegment(path)) {
|
|
152
|
+
return "low-value";
|
|
153
|
+
}
|
|
154
|
+
if (TEST_FILE_RE.test(path)) {
|
|
155
|
+
return "test";
|
|
156
|
+
}
|
|
157
|
+
if (SOURCE_EXTENSIONS.has(ext)) {
|
|
158
|
+
return "source";
|
|
159
|
+
}
|
|
160
|
+
if (DOC_EXTENSIONS.has(ext)) {
|
|
161
|
+
return "docs";
|
|
162
|
+
}
|
|
163
|
+
return "other";
|
|
164
|
+
}
|
|
165
|
+
function bucketScore(bucket, intent) {
|
|
166
|
+
if (intent === "project-metadata") {
|
|
167
|
+
return metadataBucketScore(bucket);
|
|
168
|
+
}
|
|
169
|
+
if (intent === "repository-overview") {
|
|
170
|
+
return overviewBucketScore(bucket);
|
|
171
|
+
}
|
|
172
|
+
if (intent === "targeted-code-search" || intent === "diagnostic-search") {
|
|
173
|
+
return targetedBucketScore(bucket);
|
|
174
|
+
}
|
|
175
|
+
return genericBucketScore(bucket);
|
|
176
|
+
}
|
|
177
|
+
function metadataBucketScore(bucket) {
|
|
178
|
+
const scores = {
|
|
179
|
+
"canonical-metadata": 100,
|
|
180
|
+
"overview-doc": 70,
|
|
181
|
+
"exact-path": 95,
|
|
182
|
+
"symbol-source": 80,
|
|
183
|
+
source: 45,
|
|
184
|
+
test: 40,
|
|
185
|
+
docs: 55,
|
|
186
|
+
lockfile: 15,
|
|
187
|
+
"low-value": 5,
|
|
188
|
+
other: 20,
|
|
189
|
+
};
|
|
190
|
+
return scores[bucket];
|
|
191
|
+
}
|
|
192
|
+
function overviewBucketScore(bucket) {
|
|
193
|
+
const scores = {
|
|
194
|
+
"canonical-metadata": 75,
|
|
195
|
+
"overview-doc": 100,
|
|
196
|
+
"exact-path": 95,
|
|
197
|
+
"symbol-source": 80,
|
|
198
|
+
source: 50,
|
|
199
|
+
test: 35,
|
|
200
|
+
docs: 70,
|
|
201
|
+
lockfile: 5,
|
|
202
|
+
"low-value": 5,
|
|
203
|
+
other: 20,
|
|
204
|
+
};
|
|
205
|
+
return scores[bucket];
|
|
206
|
+
}
|
|
207
|
+
function targetedBucketScore(bucket) {
|
|
208
|
+
const scores = {
|
|
209
|
+
"canonical-metadata": 65,
|
|
210
|
+
"overview-doc": 35,
|
|
211
|
+
"exact-path": 100,
|
|
212
|
+
"symbol-source": 95,
|
|
213
|
+
source: 80,
|
|
214
|
+
test: 55,
|
|
215
|
+
docs: 25,
|
|
216
|
+
lockfile: 5,
|
|
217
|
+
"low-value": 5,
|
|
218
|
+
other: 20,
|
|
219
|
+
};
|
|
220
|
+
return scores[bucket];
|
|
221
|
+
}
|
|
222
|
+
function genericBucketScore(bucket) {
|
|
223
|
+
const scores = {
|
|
224
|
+
"canonical-metadata": 80,
|
|
225
|
+
"overview-doc": 65,
|
|
226
|
+
"exact-path": 90,
|
|
227
|
+
"symbol-source": 85,
|
|
228
|
+
source: 60,
|
|
229
|
+
test: 45,
|
|
230
|
+
docs: 50,
|
|
231
|
+
lockfile: 5,
|
|
232
|
+
"low-value": 5,
|
|
233
|
+
other: 20,
|
|
234
|
+
};
|
|
235
|
+
return scores[bucket];
|
|
236
|
+
}
|
|
237
|
+
function pathTermBonus(scopePath, terms) {
|
|
238
|
+
const path = normalizedPath(scopePath);
|
|
239
|
+
const name = basename(path);
|
|
240
|
+
let score = 0;
|
|
241
|
+
for (const term of terms) {
|
|
242
|
+
if (name === term || name.startsWith(`${term}.`)) {
|
|
243
|
+
score = Math.max(score, 25);
|
|
244
|
+
}
|
|
245
|
+
else if (path.includes(term)) {
|
|
246
|
+
score = Math.max(score, 12);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return score;
|
|
250
|
+
}
|
|
251
|
+
function depthPenalty(scopePath) {
|
|
252
|
+
return Math.min(pathSegments(scopePath).length, 12);
|
|
253
|
+
}
|
|
254
|
+
function priorityForFile(file, terms, policy) {
|
|
255
|
+
return (bucketScore(bucketByPath(file.relativePath), policy.intent) +
|
|
256
|
+
pathTermBonus(file.relativePath, terms) -
|
|
257
|
+
depthPenalty(file.relativePath));
|
|
258
|
+
}
|
|
259
|
+
function bucketCounts(files) {
|
|
260
|
+
const counts = emptyBucketCounts();
|
|
261
|
+
for (const file of files) {
|
|
262
|
+
counts[bucketByPath(file.relativePath)] += 1;
|
|
263
|
+
}
|
|
264
|
+
return counts;
|
|
265
|
+
}
|
|
266
|
+
function sortFiles(files, query, policy) {
|
|
267
|
+
// Score each file ONCE (query tokenization + path bucketing are O(path) and were previously
|
|
268
|
+
// recomputed twice per comparison — O(n log n) blocking work on the 2000-file candidate cap).
|
|
269
|
+
// Tie-break on raw code-point order, not localeCompare, so evidence ordering is reproducible
|
|
270
|
+
// across locales/ICU builds (regulated-delivery determinism).
|
|
271
|
+
const terms = normalizedQueryTerms(query);
|
|
272
|
+
const scored = files.map((file) => ({ file, score: priorityForFile(file, terms, policy) }));
|
|
273
|
+
scored.sort((a, b) => {
|
|
274
|
+
if (a.score !== b.score)
|
|
275
|
+
return b.score - a.score;
|
|
276
|
+
if (a.file.relativePath < b.file.relativePath)
|
|
277
|
+
return -1;
|
|
278
|
+
return a.file.relativePath > b.file.relativePath ? 1 : 0;
|
|
279
|
+
});
|
|
280
|
+
return scored.map((entry) => entry.file);
|
|
281
|
+
}
|
|
282
|
+
export function resolveSearchPolicy(hasExplicitRelativePaths, hints) {
|
|
283
|
+
const mode = hasExplicitRelativePaths ? "explicit-scope" : "workspace-root-default";
|
|
284
|
+
const intent = hints?.retrievalIntent ?? "generic";
|
|
285
|
+
return {
|
|
286
|
+
mode,
|
|
287
|
+
intent,
|
|
288
|
+
applyGitignore: mode === "workspace-root-default",
|
|
289
|
+
omitLowValueWorkspaceFiles: mode === "workspace-root-default",
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
// The legacy `gatherCandidates(scope, limits, fs)` overload predates the search-policy work and is
|
|
293
|
+
// still used by importGraph / testSourcePairing, which expect FULL-tree discovery (no .gitignore
|
|
294
|
+
// subset, no low-value omission) — that was the hardcoded `applyGitignore: false` behavior before
|
|
295
|
+
// this change. Resolving the default workspace-root policy for them would silently start dropping
|
|
296
|
+
// gitignored / low-value files from those callers, so they get this neutral policy instead.
|
|
297
|
+
export function legacyDiscoveryPolicy(hasExplicitRelativePaths) {
|
|
298
|
+
return {
|
|
299
|
+
mode: hasExplicitRelativePaths ? "explicit-scope" : "workspace-root-default",
|
|
300
|
+
intent: "generic",
|
|
301
|
+
applyGitignore: false,
|
|
302
|
+
omitLowValueWorkspaceFiles: false,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
export function policyOmissionReason(scopePath, policy) {
|
|
306
|
+
if (!policy.omitLowValueWorkspaceFiles) {
|
|
307
|
+
return undefined;
|
|
308
|
+
}
|
|
309
|
+
if (isLockfile(scopePath) && policy.intent !== "project-metadata") {
|
|
310
|
+
return "generated";
|
|
311
|
+
}
|
|
312
|
+
return hasLowValueSegment(scopePath) ? "generated" : undefined;
|
|
313
|
+
}
|
|
314
|
+
export function extraIgnoreLinesForSearch(policy) {
|
|
315
|
+
return policy.omitLowValueWorkspaceFiles ? LOW_VALUE_IGNORE_LINES : [];
|
|
316
|
+
}
|
|
317
|
+
export function orderCandidatesForSearch(files, query, policy, ignoredByDiscovery, deniedByDiscovery) {
|
|
318
|
+
const ordered = sortFiles(files, query, policy);
|
|
319
|
+
return {
|
|
320
|
+
files: ordered,
|
|
321
|
+
diagnostics: {
|
|
322
|
+
policyMode: policy.mode,
|
|
323
|
+
intent: policy.intent,
|
|
324
|
+
filesDiscovered: files.length,
|
|
325
|
+
filesAfterPolicy: ordered.length,
|
|
326
|
+
ignoredByDiscovery,
|
|
327
|
+
deniedByDiscovery,
|
|
328
|
+
candidateBuckets: bucketCounts(ordered),
|
|
329
|
+
},
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
export function shouldScoreContent(query, text, policy) {
|
|
333
|
+
if (query.kind !== "natural-language" && query.kind !== "exact-symbol") {
|
|
334
|
+
return true;
|
|
335
|
+
}
|
|
336
|
+
if (policy.intent === "repository-overview" || policy.intent === "project-metadata") {
|
|
337
|
+
return true;
|
|
338
|
+
}
|
|
339
|
+
const haystack = query.caseSensitive ? text : text.toLowerCase();
|
|
340
|
+
const terms = normalizedQueryTerms(query).filter((term) => term.length >= 4);
|
|
341
|
+
return terms.length === 0 || terms.some((term) => haystack.includes(term));
|
|
342
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { CandidateFile, CandidateOmissionReason, EvidenceAtom, EvidenceAtomProvenanceKind } from "@oscharko-dev/keiko-contracts/connected-context";
|
|
1
|
+
import type { CandidateFile, CandidateOmissionReason, EvidenceAtom, EvidenceAtomProvenanceKind, RetrievalQuery } from "@oscharko-dev/keiko-contracts/connected-context";
|
|
2
2
|
import type { WorkspaceFs } from "./fs.js";
|
|
3
3
|
import type { LineMatcher } from "./repoSearchMatchers.js";
|
|
4
|
+
import { type SearchDiagnostics, type SearchPolicy } from "./repoSearchPolicy.js";
|
|
4
5
|
import type { DiscoveredFile, WorkspaceInfo } from "./types.js";
|
|
5
6
|
export declare function isImageScopePath(scopePath: string): boolean;
|
|
6
7
|
export interface ScopeShape {
|
|
@@ -32,8 +33,10 @@ export declare function buildCandidate(scopePath: string, omitted: CandidateOmis
|
|
|
32
33
|
export interface CandidateSet {
|
|
33
34
|
readonly files: readonly DiscoveredFile[];
|
|
34
35
|
readonly truncated: boolean;
|
|
36
|
+
readonly diagnostics: SearchDiagnostics;
|
|
35
37
|
}
|
|
36
38
|
export declare function gatherCandidates(scope: ScopeShape, limits: LimitsShape, fs: WorkspaceFs): CandidateSet;
|
|
39
|
+
export declare function gatherCandidates(scope: ScopeShape, query: RetrievalQuery, limits: LimitsShape, fs: WorkspaceFs, policy: SearchPolicy): CandidateSet;
|
|
37
40
|
export declare function probeBinary(fs: WorkspaceFs, abs: string, size: number): Promise<boolean>;
|
|
38
41
|
export interface SearchTextRunner {
|
|
39
42
|
readonly scope: ScopeShape;
|
|
@@ -43,6 +46,8 @@ export interface SearchTextRunner {
|
|
|
43
46
|
readonly startMs: number;
|
|
44
47
|
readonly matcher: LineMatcher;
|
|
45
48
|
readonly fingerprint: string;
|
|
49
|
+
readonly policy: SearchPolicy;
|
|
50
|
+
readonly query: RetrievalQuery;
|
|
46
51
|
}
|
|
47
52
|
export interface RunState {
|
|
48
53
|
filesScanned: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repoSearchScan.d.ts","sourceRoot":"","sources":["../src/repoSearchScan.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,YAAY,EACZ,0BAA0B,
|
|
1
|
+
{"version":3,"file":"repoSearchScan.d.ts","sourceRoot":"","sources":["../src/repoSearchScan.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,YAAY,EACZ,0BAA0B,EAC1B,cAAc,EACf,MAAM,iDAAiD,CAAC;AAOzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQ3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAOL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAsBhE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAK3D;AAED,MAAM,WAAW,UAAU;IACzB,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,WAAW;IAC1B,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,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACzF,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAwBxD;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,GAAG,SAAS,GAC3C,aAAa,CAEf;AA+BD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;CACzC;AA4CD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,WAAW,GACd,YAAY,CAAC;AAChB,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,YAAY,GACnB,YAAY,CAAC;AA2ChB,wBAAsB,WAAW,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU9F;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAExD;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAc3E;AAgBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAM/C;AAkED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,YAAY,EAAE,EACrB,UAAU,EAAE,aAAa,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Every file system touch goes through the injected WorkspaceFs port; nothing here calls
|
|
4
4
|
// node:fs directly.
|
|
5
5
|
import { CONNECTED_CONTEXT_SCHEMA_VERSION, isValidScopePath, } from "@oscharko-dev/keiko-contracts/connected-context";
|
|
6
|
-
import {
|
|
6
|
+
import { discoverWithStats, readWorkspaceFile } from "./discovery.js";
|
|
7
7
|
import { FileTooLargeError, RepoSearchInvalidQueryError } from "./errors.js";
|
|
8
8
|
import { isDenied } from "./ignore.js";
|
|
9
9
|
import { resolveWithinWorkspace } from "./paths.js";
|
|
@@ -12,6 +12,7 @@ import { looksBinary } from "./binaryDetect.js";
|
|
|
12
12
|
import { collectFromEntries } from "./repoSearchEntries.js";
|
|
13
13
|
import { collectBestLines } from "./repoSearchLineSelection.js";
|
|
14
14
|
import { evidenceAtomStableId } from "./stableId.js";
|
|
15
|
+
import { extraIgnoreLinesForSearch, legacyDiscoveryPolicy, orderCandidatesForSearch, policyOmissionReason, resolveSearchPolicy, shouldScoreContent, } from "./repoSearchPolicy.js";
|
|
15
16
|
const BINARY_PROBE_BYTES = 512;
|
|
16
17
|
const IMAGE_EXTENSIONS = new Set([
|
|
17
18
|
".avif",
|
|
@@ -64,14 +65,52 @@ export function buildAtom(shape) {
|
|
|
64
65
|
export function buildCandidate(scopePath, omitted) {
|
|
65
66
|
return { scopePath, score: 0, signals: [], omitted };
|
|
66
67
|
}
|
|
67
|
-
function collectFromDirectory(scope, limits, fs) {
|
|
68
|
-
const
|
|
68
|
+
function collectFromDirectory(scope, limits, fs, policy) {
|
|
69
|
+
const extraIgnoreLines = extraIgnoreLinesForSearch(policy);
|
|
70
|
+
const workspace = extraIgnoreLines.length === 0
|
|
71
|
+
? scope.workspace
|
|
72
|
+
: { ...scope.workspace, ignoreLines: [...scope.workspace.ignoreLines, ...extraIgnoreLines] };
|
|
73
|
+
const result = discoverWithStats(workspace, {
|
|
74
|
+
maxDepth: 12,
|
|
75
|
+
maxFiles: limits.maxFilesScanned + 1,
|
|
76
|
+
applyGitignore: policy.applyGitignore,
|
|
77
|
+
}, fs);
|
|
78
|
+
const files = result.files;
|
|
69
79
|
return {
|
|
70
80
|
files: files.slice(0, limits.maxFilesScanned),
|
|
71
81
|
truncated: files.length > limits.maxFilesScanned,
|
|
82
|
+
ignored: result.stats.ignored,
|
|
83
|
+
denied: result.stats.denied,
|
|
72
84
|
};
|
|
73
85
|
}
|
|
74
|
-
|
|
86
|
+
const DEFAULT_GATHER_QUERY = {
|
|
87
|
+
kind: "natural-language",
|
|
88
|
+
text: "generic repository search",
|
|
89
|
+
caseSensitive: false,
|
|
90
|
+
maxResults: 100,
|
|
91
|
+
emittedAtMs: 0,
|
|
92
|
+
};
|
|
93
|
+
function isRetrievalQuery(value) {
|
|
94
|
+
return typeof value === "object" && value !== null && "kind" in value && "text" in value;
|
|
95
|
+
}
|
|
96
|
+
function resolveGatherInputs(scope, queryOrLimits, limitsOrFs, fsOrPolicy, policy) {
|
|
97
|
+
if (isRetrievalQuery(queryOrLimits)) {
|
|
98
|
+
return {
|
|
99
|
+
query: queryOrLimits,
|
|
100
|
+
limits: limitsOrFs,
|
|
101
|
+
fs: fsOrPolicy,
|
|
102
|
+
policy: policy ?? resolveSearchPolicy(scope.relativePaths.length > 0, undefined),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
query: DEFAULT_GATHER_QUERY,
|
|
107
|
+
limits: queryOrLimits,
|
|
108
|
+
fs: limitsOrFs,
|
|
109
|
+
policy: legacyDiscoveryPolicy(scope.relativePaths.length > 0),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export function gatherCandidates(scope, queryOrLimits, limitsOrFs, fsOrPolicy, policy) {
|
|
113
|
+
const inputs = resolveGatherInputs(scope, queryOrLimits, limitsOrFs, fsOrPolicy, policy);
|
|
75
114
|
// Defense in depth alongside the realpath gate: validate scope.relativePaths against the
|
|
76
115
|
// contracts-layer shape rules (no absolute paths, no `..`, no drive letters, no backslashes).
|
|
77
116
|
// resolveWithinWorkspace + assertContainedRealPath already provide a complete barrier; this
|
|
@@ -83,16 +122,20 @@ export function gatherCandidates(scope, limits, fs) {
|
|
|
83
122
|
}
|
|
84
123
|
}
|
|
85
124
|
if (scope.relativePaths.length === 0) {
|
|
86
|
-
const result = collectFromDirectory(scope, limits, fs);
|
|
125
|
+
const result = collectFromDirectory(scope, inputs.limits, inputs.fs, inputs.policy);
|
|
126
|
+
const ordered = orderCandidatesForSearch(result.files, inputs.query, inputs.policy, result.ignored, result.denied);
|
|
87
127
|
return {
|
|
88
|
-
files:
|
|
128
|
+
files: ordered.files,
|
|
89
129
|
truncated: result.truncated,
|
|
130
|
+
diagnostics: ordered.diagnostics,
|
|
90
131
|
};
|
|
91
132
|
}
|
|
92
|
-
const result = collectFromEntries(scope, limits, fs);
|
|
133
|
+
const result = collectFromEntries(scope, inputs.limits, inputs.fs);
|
|
134
|
+
const ordered = orderCandidatesForSearch(result.files, inputs.query, inputs.policy, 0, 0);
|
|
93
135
|
return {
|
|
94
|
-
files:
|
|
136
|
+
files: ordered.files,
|
|
95
137
|
truncated: result.truncated,
|
|
138
|
+
diagnostics: ordered.diagnostics,
|
|
96
139
|
};
|
|
97
140
|
}
|
|
98
141
|
export async function probeBinary(fs, abs, size) {
|
|
@@ -199,6 +242,11 @@ export async function scanFile(runner, file, state, atoms, candidates) {
|
|
|
199
242
|
candidates.push(buildCandidate(file.relativePath, "ignored"));
|
|
200
243
|
return;
|
|
201
244
|
}
|
|
245
|
+
const omitted = policyOmissionReason(file.relativePath, runner.policy);
|
|
246
|
+
if (omitted !== undefined) {
|
|
247
|
+
candidates.push(buildCandidate(file.relativePath, omitted));
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
202
250
|
let isBinary;
|
|
203
251
|
try {
|
|
204
252
|
isBinary = await probeBinary(runner.fs, contained.path, file.sizeBytes);
|
|
@@ -217,7 +265,7 @@ export async function scanFile(runner, file, state, atoms, candidates) {
|
|
|
217
265
|
}
|
|
218
266
|
state.filesScanned += 1;
|
|
219
267
|
const text = readForScan(runner, file.relativePath, candidates);
|
|
220
|
-
if (text === undefined) {
|
|
268
|
+
if (text === undefined || !shouldScoreContent(runner.query, text, runner.policy)) {
|
|
221
269
|
return;
|
|
222
270
|
}
|
|
223
271
|
scanLines(runner, file.relativePath, text, state, atoms);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oscharko-dev/keiko",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.9",
|
|
4
4
|
"description": "Enterprise model-agnostic developer-assist coding agent for regulated engineering workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"test:coverage:ui": "vitest run --config packages/keiko-ui/vitest.coverage.config.ts --coverage",
|
|
46
46
|
"test:coverage:quality": "npm run test:coverage:packages && npm run test:coverage:ui && npm run check:coverage && npm run check:coverage:release-targets && npm run check:coverage:branches",
|
|
47
47
|
"test:e2e:smoke": "playwright test --project=chromium --grep @smoke",
|
|
48
|
+
"test:e2e:local-knowledge": "playwright test --config playwright.local-knowledge-regression.config.ts",
|
|
48
49
|
"test:release:smoke": "npm run test:e2e:smoke",
|
|
49
50
|
"dev:start": "node scripts/dev-start.mjs",
|
|
50
51
|
"dev:stop": "node scripts/dev-stop.mjs",
|