@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AASA,OAAO,
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AASA,OAAO,EAQL,KAAK,SAAS,EAGf,MAAM,mCAAmC,CAAC;AAI3C,OAAO,EAML,KAAK,cAAc,EAGpB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAWzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CAC9C;AA4ID,wBAAsB,cAAc,CAClC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,EAAE,KAAK,EACT,GAAG,GAAE,SAAc,EACnB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// applicable dimensions pass AND surface parity passes; 1 on dimension/parity failure or runtime
|
|
7
7
|
// error; 2 on usage error (unknown flag, mutual exclusion, unknown suite/fixture name).
|
|
8
8
|
import { writeFileSync } from "node:fs";
|
|
9
|
-
import { GatewayError, redact } from "@oscharko-dev/keiko-model-gateway";
|
|
9
|
+
import { ConfigInvalidError, GatewayError, assertConfiguredModel, findConfiguredCapability, listConfiguredCapabilities, loadConfigFromFile, redact, } from "@oscharko-dev/keiko-model-gateway";
|
|
10
10
|
import { createAuditRedactor, deepRedactStrings } from "@oscharko-dev/keiko-evidence";
|
|
11
11
|
import { keikoApiKeySecretValues } from "@oscharko-dev/keiko-security";
|
|
12
12
|
import { parseRunRequest } from "@oscharko-dev/keiko-server";
|
|
@@ -156,10 +156,14 @@ export async function runEvaluateCli(args, io, env = {}, deps = {}) {
|
|
|
156
156
|
}
|
|
157
157
|
async function runSuite(parsed, fixtures, io, env, deps) {
|
|
158
158
|
try {
|
|
159
|
+
const liveModelId = resolveLiveModelId(parsed, io, env);
|
|
160
|
+
if (typeof liveModelId === "number") {
|
|
161
|
+
return liveModelId;
|
|
162
|
+
}
|
|
159
163
|
const scorecard = await runEvaluationSuite({
|
|
160
164
|
mode: parsed.live ? "live" : "offline",
|
|
161
165
|
fixtures,
|
|
162
|
-
...(
|
|
166
|
+
...(liveModelId === undefined ? {} : { modelIdOverride: liveModelId }),
|
|
163
167
|
...(parsed.config === undefined ? {} : { configPath: parsed.config }),
|
|
164
168
|
},
|
|
165
169
|
// Provide Date.now as the default wall-clock so a real `keiko evaluate` prints the actual
|
|
@@ -185,6 +189,61 @@ async function runSuite(parsed, fixtures, io, env, deps) {
|
|
|
185
189
|
return handleRunError(error, parsed, io);
|
|
186
190
|
}
|
|
187
191
|
}
|
|
192
|
+
function resolveLiveModelId(parsed, io, env) {
|
|
193
|
+
if (!parsed.live) {
|
|
194
|
+
return parsed.model;
|
|
195
|
+
}
|
|
196
|
+
try {
|
|
197
|
+
const path = parsed.config ?? env.KEIKO_CONFIG_FILE;
|
|
198
|
+
if (path === undefined) {
|
|
199
|
+
throw new ConfigInvalidError("no config source; pass --config PATH or set KEIKO_CONFIG_FILE");
|
|
200
|
+
}
|
|
201
|
+
const config = loadConfigFromFile(path, env);
|
|
202
|
+
if (parsed.model !== undefined) {
|
|
203
|
+
assertLiveEvaluationModel(config, parsed.model);
|
|
204
|
+
return parsed.model;
|
|
205
|
+
}
|
|
206
|
+
const modelId = selectLiveEvaluationModel(config);
|
|
207
|
+
if (modelId === undefined) {
|
|
208
|
+
io.err("Error: no configured workflow-capable chat model is available.\n");
|
|
209
|
+
return 1;
|
|
210
|
+
}
|
|
211
|
+
return modelId;
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
if (error instanceof GatewayError) {
|
|
215
|
+
io.err(`Error: model gateway configuration problem — ${redact(error.message)}\n` +
|
|
216
|
+
`Provide a gateway config with --config PATH or KEIKO_CONFIG_FILE.\n`);
|
|
217
|
+
return 1;
|
|
218
|
+
}
|
|
219
|
+
throw error;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
function isLiveEvaluationCapable(capability) {
|
|
223
|
+
return (capability?.kind === "chat" &&
|
|
224
|
+
capability.workflowEligible &&
|
|
225
|
+
capability.toolCalling &&
|
|
226
|
+
capability.structuredOutput);
|
|
227
|
+
}
|
|
228
|
+
const COST_RANK = { low: 0, medium: 1, high: 2 };
|
|
229
|
+
function selectLiveEvaluationModel(config) {
|
|
230
|
+
let best;
|
|
231
|
+
for (const capability of listConfiguredCapabilities(config)) {
|
|
232
|
+
if (!isLiveEvaluationCapable(capability)) {
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
if (best === undefined || COST_RANK[capability.costClass] < COST_RANK[best.costClass]) {
|
|
236
|
+
best = capability;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return best?.id;
|
|
240
|
+
}
|
|
241
|
+
function assertLiveEvaluationModel(config, modelId) {
|
|
242
|
+
assertConfiguredModel(config, modelId);
|
|
243
|
+
if (!isLiveEvaluationCapable(findConfiguredCapability(config, modelId))) {
|
|
244
|
+
throw new ConfigInvalidError(`model '${modelId}' is not workflow-capable; live evaluation requires chat + tool-calling + structured-output`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
188
247
|
function isOutputAlreadyExistsError(error) {
|
|
189
248
|
return (typeof error === "object" &&
|
|
190
249
|
error !== null &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAQA,OAAO,EAQL,KAAK,aAAa,EAGnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAWzC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAQA,OAAO,EAQL,KAAK,aAAa,EAGnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAWzC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACtC;AAmID,wBAAgB,cAAc,CAC5B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,EAAE,KAAK,EACT,IAAI,GAAE,eAAoB,GACzB,MAAM,CA2BR"}
|
|
@@ -13,19 +13,65 @@ const USAGE = `Usage:
|
|
|
13
13
|
Lists or shows redacted evidence manifests written by \`keiko run\`. Reads only the
|
|
14
14
|
evidence base dir (default $KEIKO_EVIDENCE_DIR or ./.keiko/evidence; override with --evidence-dir).
|
|
15
15
|
`;
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
function parseSubcommand(value) {
|
|
17
|
+
return value === "list" || value === "show" ? value : undefined;
|
|
18
|
+
}
|
|
19
|
+
function parseFlags(args, startIndex) {
|
|
20
|
+
let json = false;
|
|
21
|
+
let evidenceDir;
|
|
22
|
+
let index = startIndex;
|
|
23
|
+
while (index < args.length) {
|
|
24
|
+
const arg = args[index];
|
|
25
|
+
if (arg === "--json") {
|
|
26
|
+
json = true;
|
|
27
|
+
index += 1;
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (arg !== "--evidence-dir") {
|
|
31
|
+
return { ok: false };
|
|
32
|
+
}
|
|
33
|
+
const value = args[index + 1];
|
|
34
|
+
if (value === undefined || value.startsWith("--")) {
|
|
35
|
+
return { ok: false };
|
|
36
|
+
}
|
|
37
|
+
evidenceDir = value;
|
|
38
|
+
index += 2;
|
|
20
39
|
}
|
|
21
|
-
|
|
22
|
-
return value === undefined || value.startsWith("--") ? undefined : value;
|
|
40
|
+
return { ok: true, json, evidenceDir };
|
|
23
41
|
}
|
|
24
|
-
function
|
|
42
|
+
function invalidArgs(message) {
|
|
43
|
+
return { ok: false, error: message };
|
|
44
|
+
}
|
|
45
|
+
function resolveStore(evidenceDir, deps) {
|
|
25
46
|
if (deps.store !== undefined) {
|
|
26
47
|
return deps.store;
|
|
27
48
|
}
|
|
28
|
-
return createNodeEvidenceStore(resolveEvidenceDir(
|
|
49
|
+
return createNodeEvidenceStore(resolveEvidenceDir(evidenceDir, deps.env));
|
|
50
|
+
}
|
|
51
|
+
function parseEvidenceArgs(args) {
|
|
52
|
+
const subcommand = parseSubcommand(args[0]);
|
|
53
|
+
if (subcommand === undefined) {
|
|
54
|
+
const sub = args[0];
|
|
55
|
+
return invalidArgs(sub === undefined ? USAGE : `keiko evidence: unknown subcommand: ${sub}\n${USAGE}`);
|
|
56
|
+
}
|
|
57
|
+
let index = 1;
|
|
58
|
+
let runId;
|
|
59
|
+
if (subcommand === "show") {
|
|
60
|
+
runId = args[index];
|
|
61
|
+
if (runId === undefined || runId.startsWith("--")) {
|
|
62
|
+
return invalidArgs(`keiko evidence: show requires a <runId>.\n${USAGE}`);
|
|
63
|
+
}
|
|
64
|
+
index += 1;
|
|
65
|
+
}
|
|
66
|
+
const flags = parseFlags(args, index);
|
|
67
|
+
if (!flags.ok) {
|
|
68
|
+
return invalidArgs(`keiko evidence: invalid arguments.\n${USAGE}`);
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
ok: true,
|
|
72
|
+
error: "",
|
|
73
|
+
parsed: { subcommand, runId, evidenceDir: flags.evidenceDir, json: flags.json === true },
|
|
74
|
+
};
|
|
29
75
|
}
|
|
30
76
|
function renderListText(entries) {
|
|
31
77
|
if (entries.length === 0) {
|
|
@@ -59,22 +105,20 @@ function exitForAuditError(error, io) {
|
|
|
59
105
|
return error instanceof InvalidRunIdError ? 2 : 1;
|
|
60
106
|
}
|
|
61
107
|
export function runEvidenceCli(args, io, deps = {}) {
|
|
62
|
-
const
|
|
63
|
-
|
|
108
|
+
const parsed = parseEvidenceArgs(args);
|
|
109
|
+
if (!parsed.ok || parsed.parsed === undefined) {
|
|
110
|
+
io.err(parsed.error);
|
|
111
|
+
return 2;
|
|
112
|
+
}
|
|
64
113
|
try {
|
|
65
|
-
if (
|
|
66
|
-
return runList(resolveStore(
|
|
114
|
+
if (parsed.parsed.subcommand === "list") {
|
|
115
|
+
return runList(resolveStore(parsed.parsed.evidenceDir, deps), parsed.parsed.json, io);
|
|
67
116
|
}
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
io.err(`keiko evidence: show requires a <runId>.\n${USAGE}`);
|
|
72
|
-
return 2;
|
|
73
|
-
}
|
|
74
|
-
return runShow(resolveStore(args, deps), runId, json, io);
|
|
117
|
+
if (parsed.parsed.runId === undefined) {
|
|
118
|
+
io.err(`keiko evidence: show requires a <runId>.\n${USAGE}`);
|
|
119
|
+
return 2;
|
|
75
120
|
}
|
|
76
|
-
|
|
77
|
-
return 2;
|
|
121
|
+
return runShow(resolveStore(parsed.parsed.evidenceDir, deps), parsed.parsed.runId, parsed.parsed.json, io);
|
|
78
122
|
}
|
|
79
123
|
catch (error) {
|
|
80
124
|
if (error instanceof AuditError) {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// any executable path or port that has not been validated by `validateExecPath` /
|
|
8
8
|
// `validatePort`. The validators are deliberately strict allow-lists: a `keiko` executable
|
|
9
9
|
// path that contains a space, a shell metacharacter, or any character outside
|
|
10
|
-
// `[A-Za-z0-9_
|
|
10
|
+
// `[A-Za-z0-9_@\-./\\:]` is rejected. Spaces in the bin location are a documented
|
|
11
11
|
// unsupported edge case for this release (ADR-0024 D8 / spec §"Per-platform content rules").
|
|
12
12
|
//
|
|
13
13
|
// PLATFORMS:
|
|
@@ -23,7 +23,7 @@ import { posix as posixPath, win32 as win32Path } from "node:path";
|
|
|
23
23
|
// `&`, `|`, `(`, `)`, `<`, `>`, `*`, `?`, `~`, `#`, `!`, `,`, `=`, `+`, control chars —
|
|
24
24
|
// is rejected. The intent is defense-in-depth even though XDG `.desktop` and `.bat`
|
|
25
25
|
// have their own quoting rules: no metacharacter ever reaches the file content.
|
|
26
|
-
const EXEC_PATH_RE = /^[A-Za-z0-9_
|
|
26
|
+
const EXEC_PATH_RE = /^[A-Za-z0-9_@\-./\\:]+$/;
|
|
27
27
|
export const MIN_PORT = 1024;
|
|
28
28
|
export const MAX_PORT = 65535;
|
|
29
29
|
export class LauncherError extends Error {
|
|
@@ -42,7 +42,7 @@ export function validateExecPath(path) {
|
|
|
42
42
|
throw new LauncherError("EXEC_PATH_TOO_LONG", "keiko launcher: resolved executable path exceeds 4096 chars.");
|
|
43
43
|
}
|
|
44
44
|
if (!EXEC_PATH_RE.test(path)) {
|
|
45
|
-
throw new LauncherError("EXEC_PATH_UNSAFE", `keiko launcher: resolved executable path contains disallowed characters: ${path}\nOnly [A-Za-z0-9_
|
|
45
|
+
throw new LauncherError("EXEC_PATH_UNSAFE", `keiko launcher: resolved executable path contains disallowed characters: ${path}\nOnly [A-Za-z0-9_@\\-./\\\\:] are permitted. Re-install keiko under a path without spaces or shell metacharacters.`);
|
|
46
46
|
}
|
|
47
47
|
return path;
|
|
48
48
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { type EnvSource } from "@oscharko-dev/keiko-model-gateway";
|
|
2
|
+
import { type ModelPort } from "@oscharko-dev/keiko-harness";
|
|
1
3
|
import { type EvidenceStore } from "@oscharko-dev/keiko-evidence";
|
|
2
|
-
import type { EnvSource } from "@oscharko-dev/keiko-model-gateway";
|
|
3
4
|
import type { CliIo } from "./runner.js";
|
|
4
5
|
export interface RunDeps {
|
|
5
6
|
readonly store?: EvidenceStore | undefined;
|
|
7
|
+
readonly model?: ModelPort | undefined;
|
|
6
8
|
}
|
|
7
9
|
export declare function runAgentCli(args: readonly string[], io: CliIo, env?: EnvSource, deps?: RunDeps): Promise<number>;
|
|
8
10
|
//# sourceMappingURL=run.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAUA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAQ/F,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAyBzC,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACxC;AAsMD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,EAAE,KAAK,EACT,GAAG,GAAE,SAAc,EACnB,IAAI,GAAE,OAAY,GACjB,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
// `keiko run` — the dry-run task command. It builds an AgentSession
|
|
2
|
-
//
|
|
3
|
-
// CliIo. Since ADR-0010 it ALSO writes a redacted evidence manifest by
|
|
4
|
-
// product value): a tee EventSink forwards every event to BOTH a
|
|
5
|
-
// content to assemble the replay manifest) and the existing
|
|
6
|
-
// print sensitive fields). After the run resolves, the audit
|
|
7
|
-
// manifest and the EvidenceReport is printed. Writing is on by
|
|
8
|
-
// --evidence-dir relocates it. Tests inject an in-memory
|
|
9
|
-
// touches the repository tree.
|
|
10
|
-
import {
|
|
1
|
+
// `keiko run` — the dry-run task command. It builds an AgentSession with the configured model
|
|
2
|
+
// gateway and a dry-run tool port (provider call is real, tools are non-mutating) and renders the
|
|
3
|
+
// HarnessEvent stream to CliIo. Since ADR-0010 it ALSO writes a redacted evidence manifest by
|
|
4
|
+
// default (evidence is the product value): a tee EventSink forwards every event to BOTH a
|
|
5
|
+
// MemoryEventSink (which retains raw content to assemble the replay manifest) and the existing
|
|
6
|
+
// CliEventSink (whose summarisers never print sensitive fields). After the run resolves, the audit
|
|
7
|
+
// layer builds + redacts + persists the manifest and the EvidenceReport is printed. Writing is on by
|
|
8
|
+
// default; --no-evidence disables it, --evidence-dir relocates it. Tests inject an in-memory
|
|
9
|
+
// EvidenceStore via deps so no write ever touches the repository tree.
|
|
10
|
+
import { ConfigInvalidError, Gateway, GatewayError, assertConfiguredModel, loadConfigFromFile, redact, resolveCostClass, selectConfiguredModel, } from "@oscharko-dev/keiko-model-gateway";
|
|
11
|
+
import { DryRunToolPort, GatewayModelPort } from "@oscharko-dev/keiko-harness";
|
|
11
12
|
import { createSession, HARNESS_VERSION } from "@oscharko-dev/keiko-harness";
|
|
12
13
|
import { CliEventSink, MemoryEventSink } from "@oscharko-dev/keiko-harness";
|
|
13
14
|
import { DEFAULT_LIMITS } from "@oscharko-dev/keiko-harness";
|
|
@@ -15,8 +16,6 @@ import { persistEvidence } from "@oscharko-dev/keiko-evidence";
|
|
|
15
16
|
import { renderEvidenceReport } from "@oscharko-dev/keiko-evidence";
|
|
16
17
|
import { createNodeEvidenceStore, resolveEvidenceDir, } from "@oscharko-dev/keiko-evidence";
|
|
17
18
|
import { AuditError } from "@oscharko-dev/keiko-evidence";
|
|
18
|
-
import { redact } from "@oscharko-dev/keiko-model-gateway";
|
|
19
|
-
import { resolveCostClass } from "@oscharko-dev/keiko-model-gateway";
|
|
20
19
|
const TASK_TYPES = new Set([
|
|
21
20
|
"generate-unit-tests",
|
|
22
21
|
"investigate-bug",
|
|
@@ -32,8 +31,10 @@ const USAGE = `Usage:
|
|
|
32
31
|
--evidence-dir PATH Write evidence under PATH (default $KEIKO_EVIDENCE_DIR or ./.keiko/evidence).
|
|
33
32
|
--include-reasoning Include redacted reasoning entries in the manifest.
|
|
34
33
|
--include-diff Include the redacted proposed diff in the manifest.
|
|
34
|
+
--config PATH Gateway config file (or set KEIKO_CONFIG_FILE).
|
|
35
|
+
--model MODEL_ID Configured model id to use.
|
|
35
36
|
|
|
36
|
-
All tasks run in dry-run mode: a patch is proposed as an event, never written to disk.
|
|
37
|
+
All tasks run in dry-run mode for tools/files: a patch is proposed as an event, never written to disk.
|
|
37
38
|
`;
|
|
38
39
|
function flag(args, name) {
|
|
39
40
|
const i = args.indexOf(name);
|
|
@@ -49,24 +50,8 @@ function parseEvidenceFlags(args) {
|
|
|
49
50
|
evidenceDirFlag: flag(args, "--evidence-dir"),
|
|
50
51
|
includeReasoning: args.includes("--include-reasoning"),
|
|
51
52
|
includeDiff: args.includes("--include-diff"),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// A deterministic, dependency-free canned final response. It never requests tools, so the dry-run
|
|
55
|
-
// path is reproducible regardless of task type.
|
|
56
|
-
function cannedResponse() {
|
|
57
|
-
return {
|
|
58
|
-
modelId: "mock-model",
|
|
59
|
-
content: "--- a/file\n+++ b/file\n+// dry-run proposed change\n",
|
|
60
|
-
finishReason: "stop",
|
|
61
|
-
toolCalls: [],
|
|
62
|
-
structuredOutput: null,
|
|
63
|
-
usage: {
|
|
64
|
-
requestId: "dry-run",
|
|
65
|
-
promptTokens: 0,
|
|
66
|
-
completionTokens: 0,
|
|
67
|
-
latencyMs: 1,
|
|
68
|
-
costClass: "low",
|
|
69
|
-
},
|
|
53
|
+
model: flag(args, "--model"),
|
|
54
|
+
config: flag(args, "--config"),
|
|
70
55
|
};
|
|
71
56
|
}
|
|
72
57
|
function parseTask(taskType, args) {
|
|
@@ -102,7 +87,7 @@ function teeSink(sinks) {
|
|
|
102
87
|
},
|
|
103
88
|
};
|
|
104
89
|
}
|
|
105
|
-
function seedFor(task, result) {
|
|
90
|
+
function seedFor(task, result, modelId) {
|
|
106
91
|
return {
|
|
107
92
|
runId: result.runId,
|
|
108
93
|
fingerprint: result.fingerprint,
|
|
@@ -110,7 +95,7 @@ function seedFor(task, result) {
|
|
|
110
95
|
taskType: task.taskType,
|
|
111
96
|
taskInput: task,
|
|
112
97
|
limits: DEFAULT_LIMITS,
|
|
113
|
-
modelId
|
|
98
|
+
modelId,
|
|
114
99
|
workingDirectory: ".",
|
|
115
100
|
dryRun: true,
|
|
116
101
|
startedAt: new Date(result.startedAt).toISOString(),
|
|
@@ -120,9 +105,9 @@ function seedFor(task, result) {
|
|
|
120
105
|
// correct here (CLAUDE.md): on any failure — typed AuditError or otherwise — print a REDACTED
|
|
121
106
|
// message and return exit 1 rather than rejecting out of runAgentCli as an unhandled rejection (C3).
|
|
122
107
|
// Returns undefined on success so the caller falls through to the run-outcome exit code.
|
|
123
|
-
function writeEvidence(result, memory, task, ctx, io) {
|
|
108
|
+
function writeEvidence(result, memory, task, ctx, io, modelId) {
|
|
124
109
|
try {
|
|
125
|
-
const manifest = memory.collectManifest(seedFor(task, result));
|
|
110
|
+
const manifest = memory.collectManifest(seedFor(task, result, modelId));
|
|
126
111
|
const store = ctx.deps.store ??
|
|
127
112
|
createNodeEvidenceStore(resolveEvidenceDir(ctx.flags.evidenceDirFlag, ctx.env));
|
|
128
113
|
const out = persistEvidence({
|
|
@@ -142,6 +127,52 @@ function writeEvidence(result, memory, task, ctx, io) {
|
|
|
142
127
|
return 1;
|
|
143
128
|
}
|
|
144
129
|
}
|
|
130
|
+
function configuredModelId(flags, env) {
|
|
131
|
+
const path = flags.config ?? env.KEIKO_CONFIG_FILE;
|
|
132
|
+
if (path === undefined) {
|
|
133
|
+
return flags.model;
|
|
134
|
+
}
|
|
135
|
+
const config = loadConfigFromFile(path, env);
|
|
136
|
+
if (flags.model !== undefined) {
|
|
137
|
+
assertConfiguredModel(config, flags.model);
|
|
138
|
+
return flags.model;
|
|
139
|
+
}
|
|
140
|
+
return selectConfiguredModel(config, { kind: "chat" });
|
|
141
|
+
}
|
|
142
|
+
function resolveModel(flags, io, env, deps) {
|
|
143
|
+
try {
|
|
144
|
+
if (deps.model !== undefined) {
|
|
145
|
+
const modelId = configuredModelId(flags, env);
|
|
146
|
+
if (modelId === undefined) {
|
|
147
|
+
io.err("Error: no model id available; pass --model MODEL_ID for injected test runs.\n");
|
|
148
|
+
return 1;
|
|
149
|
+
}
|
|
150
|
+
return { port: deps.model, modelId };
|
|
151
|
+
}
|
|
152
|
+
const path = flags.config ?? env.KEIKO_CONFIG_FILE;
|
|
153
|
+
if (path === undefined) {
|
|
154
|
+
throw new ConfigInvalidError("no config source; pass --config PATH or set KEIKO_CONFIG_FILE");
|
|
155
|
+
}
|
|
156
|
+
const config = loadConfigFromFile(path, env);
|
|
157
|
+
if (flags.model !== undefined) {
|
|
158
|
+
assertConfiguredModel(config, flags.model);
|
|
159
|
+
}
|
|
160
|
+
const modelId = flags.model ?? selectConfiguredModel(config, { kind: "chat" });
|
|
161
|
+
if (modelId === undefined) {
|
|
162
|
+
io.err("Error: no configured chat model is available.\n");
|
|
163
|
+
return 1;
|
|
164
|
+
}
|
|
165
|
+
return { port: new GatewayModelPort(new Gateway(config)), modelId };
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
if (error instanceof GatewayError) {
|
|
169
|
+
io.err(`Error: model gateway configuration problem — ${redact(error.message)}\n` +
|
|
170
|
+
`Provide a gateway config with --config PATH or KEIKO_CONFIG_FILE.\n`);
|
|
171
|
+
return 1;
|
|
172
|
+
}
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
145
176
|
function outcomeToExitCode(result, io) {
|
|
146
177
|
if (result.outcome === "completed") {
|
|
147
178
|
io.out(`run ${result.runId} completed (fingerprint ${result.fingerprint})\n`);
|
|
@@ -167,19 +198,20 @@ export async function runAgentCli(args, io, env = {}, deps = {}) {
|
|
|
167
198
|
return 2;
|
|
168
199
|
}
|
|
169
200
|
const flags = parseEvidenceFlags(args);
|
|
170
|
-
const
|
|
201
|
+
const model = resolveModel(flags, io, env, deps);
|
|
202
|
+
if (typeof model === "number") {
|
|
203
|
+
return model;
|
|
204
|
+
}
|
|
171
205
|
const memory = new MemoryEventSink();
|
|
172
|
-
const config = { model:
|
|
206
|
+
const config = { model: model.modelId, workingDirectory: ".", dryRun: true };
|
|
173
207
|
const session = createSession(task, config, {
|
|
174
|
-
model:
|
|
175
|
-
call: (request) => Promise.resolve({ ...response, modelId: request.modelId }),
|
|
176
|
-
},
|
|
208
|
+
model: model.port,
|
|
177
209
|
tools: new DryRunToolPort(),
|
|
178
210
|
sink: teeSink([memory, new CliEventSink(io)]),
|
|
179
211
|
});
|
|
180
212
|
const result = await session.result;
|
|
181
213
|
if (flags.write) {
|
|
182
|
-
const evidenceFailure = writeEvidence(result, memory, task, { flags, env, deps }, io);
|
|
214
|
+
const evidenceFailure = writeEvidence(result, memory, task, { flags, env, deps }, io, model.modelId);
|
|
183
215
|
if (evidenceFailure !== undefined) {
|
|
184
216
|
return evidenceFailure;
|
|
185
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAKxC,OAAO,EAAS,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAKxC,OAAO,EAAS,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAmBzC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,KAAK,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;AAa/C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,aAAa,CAAC;KAC5B,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAI7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAG3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IAEnD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,MAAM,OAAO,GAAG,CACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,YAAY,KACf,YAAY,CAAC;AA8DlB,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa,CAYlE;AAkFD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGxD;AAWD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB7D;AA0BD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB7F;AAqGD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,EAAE,KAAK,EACT,GAAG,EAAE,SAAS,EACd,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
|
|
@@ -19,6 +19,11 @@ import { createUiServer, loadCspHeader, buildUiHandlerDeps, DEFAULT_UI_PORT, UI_
|
|
|
19
19
|
const ALLOWED_HOSTS = new Set(["127.0.0.1", "localhost"]);
|
|
20
20
|
const SQLITE_FLAG = "--experimental-sqlite";
|
|
21
21
|
const KEIKO_ENV_NAME_RE = /^KEIKO_[A-Z0-9_]+$/;
|
|
22
|
+
// Non-KEIKO names the local .env loader may import. Deliberately a closed allowlist —
|
|
23
|
+
// arbitrary secrets must never be slurped into the server process. FIGMA_ACCESS_TOKEN is
|
|
24
|
+
// part of the documented Figma connector contract (#751): the read-only PAT is configured
|
|
25
|
+
// via .env and consumed server-side only.
|
|
26
|
+
const ENV_NAME_ALLOWLIST = new Set(["FIGMA_ACCESS_TOKEN"]);
|
|
22
27
|
const DEFAULT_STATE_DIR = ".keiko";
|
|
23
28
|
const USAGE = `Usage:
|
|
24
29
|
keiko ui [--port PORT] [--host 127.0.0.1|localhost] [--evidence-dir PATH] [--config PATH] [--ui-db PATH]
|
|
@@ -133,7 +138,7 @@ function loadLocalKeikoEnv(cwd, env) {
|
|
|
133
138
|
if (equals <= 0)
|
|
134
139
|
continue;
|
|
135
140
|
const key = line.slice(0, equals).trim();
|
|
136
|
-
if (!KEIKO_ENV_NAME_RE.test(key))
|
|
141
|
+
if (!KEIKO_ENV_NAME_RE.test(key) && !ENV_NAME_ALLOWLIST.has(key))
|
|
137
142
|
continue;
|
|
138
143
|
if (merged[key] !== undefined)
|
|
139
144
|
continue;
|
|
@@ -265,12 +270,13 @@ async function maybeReExecForSqlite(env, deps) {
|
|
|
265
270
|
const spawnFn = deps.spawnFn ?? spawn;
|
|
266
271
|
return reExecWithSqliteFlag(env, spawnFn);
|
|
267
272
|
}
|
|
268
|
-
function buildHandlerDepsOrReport(parsed, effectiveEnv, io) {
|
|
273
|
+
function buildHandlerDepsOrReport(parsed, cwd, effectiveEnv, io) {
|
|
269
274
|
try {
|
|
270
275
|
return buildUiHandlerDeps({
|
|
271
276
|
configPath: resolveUiConfigPath(parsed, effectiveEnv),
|
|
272
277
|
evidenceDir: parsed.evidenceDir,
|
|
273
278
|
uiDbPath: parsed.uiDbPath,
|
|
279
|
+
initialProjectPath: cwd,
|
|
274
280
|
env: effectiveEnv,
|
|
275
281
|
});
|
|
276
282
|
}
|
|
@@ -282,6 +288,19 @@ function buildHandlerDepsOrReport(parsed, effectiveEnv, io) {
|
|
|
282
288
|
throw error;
|
|
283
289
|
}
|
|
284
290
|
}
|
|
291
|
+
function registerLaunchProjectOrReport(cwd, handlerDeps, io) {
|
|
292
|
+
try {
|
|
293
|
+
handlerDeps.store.createProject(cwd);
|
|
294
|
+
return null;
|
|
295
|
+
}
|
|
296
|
+
catch (error) {
|
|
297
|
+
if (error instanceof UiStoreError) {
|
|
298
|
+
io.err(`keiko ui: ${error.message}\n`);
|
|
299
|
+
return 2;
|
|
300
|
+
}
|
|
301
|
+
throw error;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
285
304
|
function ensureStaticRoot(staticRoot, io) {
|
|
286
305
|
if (existsSync(staticRoot)) {
|
|
287
306
|
return true;
|
|
@@ -307,6 +326,16 @@ async function maybeWaitForShutdown(server, deps) {
|
|
|
307
326
|
}
|
|
308
327
|
await waitForShutdown(server);
|
|
309
328
|
}
|
|
329
|
+
async function startUiServer(staticRoot, csp, parsed, handlerDeps, io, deps) {
|
|
330
|
+
const factory = deps.createServer ?? createUiServer;
|
|
331
|
+
const server = await factory({ staticRoot, csp, port: parsed.port, handlerDeps });
|
|
332
|
+
applyServerTimeouts(server);
|
|
333
|
+
await listen(server, parsed.port);
|
|
334
|
+
io.out(`Keiko UI listening on http://${UI_HOST}:${String(parsed.port)}\n`);
|
|
335
|
+
// Block only in the real CLI path (no injected factory). Injected-server tests skip blocking so
|
|
336
|
+
// they don't hang; the real process must stay alive until signalled.
|
|
337
|
+
await maybeWaitForShutdown(server, deps);
|
|
338
|
+
}
|
|
310
339
|
export async function runUiCli(args, io, env, deps = {}) {
|
|
311
340
|
const cwd = deps.cwd ?? process.cwd();
|
|
312
341
|
const effectiveEnv = loadLocalKeikoEnv(cwd, env);
|
|
@@ -321,16 +350,12 @@ export async function runUiCli(args, io, env, deps = {}) {
|
|
|
321
350
|
return 1;
|
|
322
351
|
}
|
|
323
352
|
const csp = await loadCspHeader(deps.hashesFile ?? join(staticRoot, "..", "csp-hashes.json"));
|
|
324
|
-
const handlerDeps = buildHandlerDepsOrReport(parsed, withDefaultLocalRuntimeStateEnv(cwd, parsed, effectiveEnv), io);
|
|
353
|
+
const handlerDeps = buildHandlerDepsOrReport(parsed, cwd, withDefaultLocalRuntimeStateEnv(cwd, parsed, effectiveEnv), io);
|
|
325
354
|
if (typeof handlerDeps === "number")
|
|
326
355
|
return handlerDeps;
|
|
327
|
-
const
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
await
|
|
331
|
-
io.out(`Keiko UI listening on http://${UI_HOST}:${String(parsed.port)}\n`);
|
|
332
|
-
// Block only in the real CLI path (no injected factory). Injected-server tests skip blocking so
|
|
333
|
-
// they don't hang; the real process must stay alive until signalled.
|
|
334
|
-
await maybeWaitForShutdown(server, deps);
|
|
356
|
+
const launchProjectResult = registerLaunchProjectOrReport(cwd, handlerDeps, io);
|
|
357
|
+
if (launchProjectResult !== null)
|
|
358
|
+
return launchProjectResult;
|
|
359
|
+
await startUiServer(staticRoot, csp, parsed, handlerDeps, io, deps);
|
|
335
360
|
return 0;
|
|
336
361
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oscharko-dev/keiko-cli",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.5",
|
|
4
4
|
"private": true,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc -b tsconfig.json",
|
|
18
|
-
"typecheck": "tsc -b tsconfig.json
|
|
18
|
+
"typecheck": "tsc -b tsconfig.json",
|
|
19
19
|
"test": "vitest run"
|
|
20
20
|
},
|
|
21
21
|
"files": [
|