@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
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.js
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
// Projects each kept node to a compact `IrNode`: id/name/type, text content, bounding box, image
|
|
4
4
|
// fill refs, kept children, and a best-effort `interactionHint`.
|
|
5
5
|
//
|
|
6
|
+
// In addition to the structural fields, five additive optional fields are projected when present:
|
|
7
|
+
// layout — auto-layout direction/gap/padding/alignment (HORIZONTAL/VERTICAL layoutMode)
|
|
8
|
+
// sizing — per-axis sizing mode (layoutSizingHorizontal/Vertical: FIXED|HUG|FILL)
|
|
9
|
+
// cornerRadius — corner radius in pixels (cornerRadius > 0)
|
|
10
|
+
// typography — per-TEXT fontFamily/fontSize/fontWeight (from the `style` block)
|
|
11
|
+
//
|
|
12
|
+
// These fields are OMITTED when absent or when the source values are missing/malformed — never
|
|
13
|
+
// defaulted. They are hash-neutral (#753/#735): re-normalizing the same structural design after
|
|
14
|
+
// these fields ship does not change the drift identity. Negative, NaN, and non-finite values are
|
|
15
|
+
// clamped to absent.
|
|
16
|
+
//
|
|
6
17
|
// The interaction hint is a HINT, never load-bearing — downstream (#754) treats button/input
|
|
7
18
|
// classification as advisory and degrades to `container`. Three classes are purely structural:
|
|
8
19
|
// link — the node carries a navigating prototype interaction/reaction (it navigates).
|
|
@@ -64,13 +75,107 @@ const classify = (node, imageFills) => {
|
|
|
64
75
|
// text-vs-background pairing without re-deriving paints. Both are absent when there is no solid fill.
|
|
65
76
|
const readTextColor = (node) => nodeType(node) === "TEXT" ? firstSolidPaintHex(node, "fills") : undefined;
|
|
66
77
|
const readBackgroundColor = (node) => nodeType(node) === "TEXT" ? undefined : firstSolidPaintHex(node, "fills");
|
|
67
|
-
|
|
78
|
+
// ─── Layout / sizing / cornerRadius / typography projection ──────────────────
|
|
79
|
+
const ALIGN_MAP = {
|
|
80
|
+
MIN: "start",
|
|
81
|
+
CENTER: "center",
|
|
82
|
+
MAX: "end",
|
|
83
|
+
SPACE_BETWEEN: "space-between",
|
|
84
|
+
};
|
|
85
|
+
const readAlign = (value) => {
|
|
86
|
+
const s = readString(value);
|
|
87
|
+
return s !== undefined ? ALIGN_MAP[s] : undefined;
|
|
88
|
+
};
|
|
89
|
+
const readLayoutMode = (value) => {
|
|
90
|
+
const s = readString(value);
|
|
91
|
+
if (s === "HORIZONTAL")
|
|
92
|
+
return "row";
|
|
93
|
+
if (s === "VERTICAL")
|
|
94
|
+
return "column";
|
|
95
|
+
return undefined;
|
|
96
|
+
};
|
|
97
|
+
const readLayoutSizing = (value) => {
|
|
98
|
+
const s = readString(value);
|
|
99
|
+
if (s === "FIXED")
|
|
100
|
+
return "fixed";
|
|
101
|
+
if (s === "HUG")
|
|
102
|
+
return "hug";
|
|
103
|
+
if (s === "FILL")
|
|
104
|
+
return "fill";
|
|
105
|
+
return undefined;
|
|
106
|
+
};
|
|
107
|
+
// A padding value is valid only when it is a finite, non-negative number.
|
|
108
|
+
const readPaddingValue = (value) => {
|
|
109
|
+
const n = readNumber(value);
|
|
110
|
+
return n !== undefined && n >= 0 ? n : undefined;
|
|
111
|
+
};
|
|
112
|
+
// Returns [top, right, bottom, left] when at least one side is non-zero; undefined otherwise.
|
|
113
|
+
const readLayoutPadding = (node) => {
|
|
114
|
+
const top = readPaddingValue(node.paddingTop) ?? 0;
|
|
115
|
+
const right = readPaddingValue(node.paddingRight) ?? 0;
|
|
116
|
+
const bottom = readPaddingValue(node.paddingBottom) ?? 0;
|
|
117
|
+
const left = readPaddingValue(node.paddingLeft) ?? 0;
|
|
118
|
+
return top > 0 || right > 0 || bottom > 0 || left > 0 ? [top, right, bottom, left] : undefined;
|
|
119
|
+
};
|
|
120
|
+
const readLayout = (node) => {
|
|
121
|
+
const mode = readLayoutMode(node.layoutMode);
|
|
122
|
+
if (mode === undefined)
|
|
123
|
+
return undefined;
|
|
124
|
+
const itemSpacing = readNumber(node.itemSpacing);
|
|
125
|
+
const padding = readLayoutPadding(node);
|
|
126
|
+
const primaryAlign = readAlign(node.primaryAxisAlignItems);
|
|
127
|
+
const counterAlign = readAlign(node.counterAxisAlignItems);
|
|
128
|
+
return {
|
|
129
|
+
mode,
|
|
130
|
+
...(itemSpacing !== undefined && itemSpacing > 0 ? { itemSpacing } : {}),
|
|
131
|
+
...(padding !== undefined ? { padding } : {}),
|
|
132
|
+
...(primaryAlign !== undefined ? { primaryAlign } : {}),
|
|
133
|
+
...(counterAlign !== undefined ? { counterAlign } : {}),
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
const readSizing = (node) => {
|
|
137
|
+
const horizontal = readLayoutSizing(node.layoutSizingHorizontal);
|
|
138
|
+
const vertical = readLayoutSizing(node.layoutSizingVertical);
|
|
139
|
+
if (horizontal === undefined && vertical === undefined)
|
|
140
|
+
return undefined;
|
|
141
|
+
return {
|
|
142
|
+
...(horizontal !== undefined ? { horizontal } : {}),
|
|
143
|
+
...(vertical !== undefined ? { vertical } : {}),
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
const readCornerRadius = (node) => {
|
|
147
|
+
const value = readNumber(node.cornerRadius);
|
|
148
|
+
return value !== undefined && value > 0 ? value : undefined;
|
|
149
|
+
};
|
|
150
|
+
const readTypography = (node) => {
|
|
151
|
+
if (nodeType(node) !== "TEXT")
|
|
152
|
+
return undefined;
|
|
153
|
+
const style = asNode(node.style);
|
|
154
|
+
if (style === undefined)
|
|
155
|
+
return undefined;
|
|
156
|
+
const fontFamily = readString(style.fontFamily);
|
|
157
|
+
const fontSize = readNumber(style.fontSize);
|
|
158
|
+
const fontWeight = readNumber(style.fontWeight);
|
|
159
|
+
if (fontFamily === undefined || fontSize === undefined || fontWeight === undefined)
|
|
160
|
+
return undefined;
|
|
161
|
+
return { fontFamily, fontSize, fontWeight };
|
|
162
|
+
};
|
|
163
|
+
// Subtrees deeper than this are truncated to prevent RangeError on malformed chain-like inputs.
|
|
164
|
+
// Same shared constant as prune.ts — see there for the rationale. Must stay in sync with every
|
|
165
|
+
// other recursive walk in this pipeline (tokens, links, a11y, screenIrTestBaseline).
|
|
166
|
+
const MAX_TREE_DEPTH = 512;
|
|
167
|
+
function buildNodeAt(pruned, depth) {
|
|
68
168
|
const node = pruned.source;
|
|
69
169
|
const imageFills = readImageFills(node);
|
|
70
170
|
const text = readString(node.characters);
|
|
71
171
|
const boundingBox = readBoundingBox(node);
|
|
72
172
|
const textColor = readTextColor(node);
|
|
73
173
|
const backgroundColor = readBackgroundColor(node);
|
|
174
|
+
const children = depth >= MAX_TREE_DEPTH ? [] : pruned.children.map((c) => buildNodeAt(c, depth + 1));
|
|
175
|
+
const layout = readLayout(node);
|
|
176
|
+
const sizing = readSizing(node);
|
|
177
|
+
const cornerRadius = readCornerRadius(node);
|
|
178
|
+
const typography = readTypography(node);
|
|
74
179
|
return {
|
|
75
180
|
id: nodeId(node),
|
|
76
181
|
name: nodeName(node),
|
|
@@ -80,11 +185,20 @@ const buildNode = (pruned) => {
|
|
|
80
185
|
...(boundingBox !== undefined ? { boundingBox } : {}),
|
|
81
186
|
...(textColor !== undefined ? { textColor } : {}),
|
|
82
187
|
...(backgroundColor !== undefined ? { backgroundColor } : {}),
|
|
188
|
+
...(layout !== undefined ? { layout } : {}),
|
|
189
|
+
...(sizing !== undefined ? { sizing } : {}),
|
|
190
|
+
...(cornerRadius !== undefined ? { cornerRadius } : {}),
|
|
191
|
+
...(typography !== undefined ? { typography } : {}),
|
|
83
192
|
imageFills,
|
|
84
|
-
children
|
|
193
|
+
children,
|
|
85
194
|
};
|
|
86
|
-
}
|
|
195
|
+
}
|
|
87
196
|
/** Normalize a pruned screen root into its IR node tree. Child order follows source order. */
|
|
88
|
-
export const normalizeScreenRoot = (pruned) =>
|
|
197
|
+
export const normalizeScreenRoot = (pruned) => buildNodeAt(pruned, 0);
|
|
198
|
+
function countIrNodesAt(node, depth) {
|
|
199
|
+
if (depth > MAX_TREE_DEPTH)
|
|
200
|
+
return 1;
|
|
201
|
+
return 1 + node.children.reduce((sum, child) => sum + countIrNodesAt(child, depth + 1), 0);
|
|
202
|
+
}
|
|
89
203
|
/** Count the IR nodes in a normalized tree, used for the reduction ratio. */
|
|
90
|
-
export const countIrNodes = (node) =>
|
|
204
|
+
export const countIrNodes = (node) => countIrNodesAt(node, 0);
|
|
@@ -6,7 +6,8 @@ export interface PrunedNode {
|
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Prune a node, returning the kept node (with kept children) or `undefined` when the node itself is
|
|
9
|
-
* dropped. A node is dropped when hidden, a component master, or an empty scaffold.
|
|
9
|
+
* dropped. A node is dropped when hidden, a component master, or an empty scaffold. Subtrees deeper
|
|
10
|
+
* than MAX_TREE_DEPTH are truncated so malformed chain-like inputs degrade rather than overflow.
|
|
10
11
|
*/
|
|
11
12
|
export declare const pruneNode: (node: FigmaSourceNode) => PrunedNode | undefined;
|
|
12
13
|
/** Total node count of a raw subtree (root included), used for the reduction ratio. */
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../../src/domain/figma/prune.ts"],"names":[],"mappings":"AAaA,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../../src/domain/figma/prune.ts"],"names":[],"mappings":"AAaA,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAazB,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;CAC1C;AA0BD;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,eAAe,KAAG,UAAU,GAAG,SAAiC,CAAC;AASjG,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,GAAI,MAAM,eAAe,KAAG,MAAqC,CAAC"}
|
|
@@ -12,6 +12,14 @@
|
|
|
12
12
|
// Pruning is name-agnostic. No copy, screen name, or component vocabulary participates.
|
|
13
13
|
import { asNode, childNodes, isHidden, nodeType, readArray, readString, } from "./sourceNode.js";
|
|
14
14
|
const MASTER_TYPES = new Set(["COMPONENT", "COMPONENT_SET"]);
|
|
15
|
+
// Subtrees deeper than this are truncated (not walked). Prevents RangeError on malformed inputs with
|
|
16
|
+
// chain-like node trees thousands of levels deep. Documented contract: malformed input degrades, never
|
|
17
|
+
// crashes (cleanToScreenIr.ts header).
|
|
18
|
+
// Shared contract: every recursive tree walk in this pipeline (prune → normalize → tokens → links →
|
|
19
|
+
// a11y → screenIrTestBaseline) uses the same value so that none overflow before the others. 512 is
|
|
20
|
+
// far above any legitimate Figma board depth (< 50 in practice) while staying safe inside vitest
|
|
21
|
+
// worker threads, which have a smaller default JS stack than bare Node.
|
|
22
|
+
const MAX_TREE_DEPTH = 512;
|
|
15
23
|
const hasOwnPayload = (node) => {
|
|
16
24
|
if (readString(node.characters) !== undefined)
|
|
17
25
|
return true;
|
|
@@ -24,27 +32,34 @@ const hasOwnPayload = (node) => {
|
|
|
24
32
|
return false;
|
|
25
33
|
};
|
|
26
34
|
const isDroppedByType = (node) => MASTER_TYPES.has(nodeType(node));
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
*/
|
|
31
|
-
export const pruneNode = (node) => {
|
|
35
|
+
function pruneNodeAt(node, depth) {
|
|
36
|
+
if (depth > MAX_TREE_DEPTH)
|
|
37
|
+
return undefined;
|
|
32
38
|
if (isHidden(node) || isDroppedByType(node))
|
|
33
39
|
return undefined;
|
|
34
40
|
const children = [];
|
|
35
41
|
for (const child of childNodes(node)) {
|
|
36
|
-
const kept =
|
|
42
|
+
const kept = pruneNodeAt(child, depth + 1);
|
|
37
43
|
if (kept !== undefined)
|
|
38
44
|
children.push(kept);
|
|
39
45
|
}
|
|
40
46
|
if (children.length === 0 && !hasOwnPayload(node))
|
|
41
47
|
return undefined;
|
|
42
48
|
return { source: node, children };
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Prune a node, returning the kept node (with kept children) or `undefined` when the node itself is
|
|
52
|
+
* dropped. A node is dropped when hidden, a component master, or an empty scaffold. Subtrees deeper
|
|
53
|
+
* than MAX_TREE_DEPTH are truncated so malformed chain-like inputs degrade rather than overflow.
|
|
54
|
+
*/
|
|
55
|
+
export const pruneNode = (node) => pruneNodeAt(node, 0);
|
|
56
|
+
function countSourceNodesAt(node, depth) {
|
|
57
|
+
if (depth > MAX_TREE_DEPTH)
|
|
58
|
+
return 1; // count the truncated subtree root only
|
|
46
59
|
let total = 1;
|
|
47
60
|
for (const child of childNodes(node))
|
|
48
|
-
total +=
|
|
61
|
+
total += countSourceNodesAt(child, depth + 1);
|
|
49
62
|
return total;
|
|
50
|
-
}
|
|
63
|
+
}
|
|
64
|
+
/** Total node count of a raw subtree (root included), used for the reduction ratio. */
|
|
65
|
+
export const countSourceNodes = (node) => countSourceNodesAt(node, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenIrTestBaseline.d.ts","sourceRoot":"","sources":["../../../src/domain/figma/screenIrTestBaseline.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAuB,QAAQ,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,MAAM,sBAAsB,GAC9B,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,OAAO,GAGP,YAAY,GACZ,MAAM,GAGN,MAAM,GACN,iBAAiB,CAAC;AAEtB,uFAAuF;AACvF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC/C;
|
|
1
|
+
{"version":3,"file":"screenIrTestBaseline.d.ts","sourceRoot":"","sources":["../../../src/domain/figma/screenIrTestBaseline.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAuB,QAAQ,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,MAAM,sBAAsB,GAC9B,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,OAAO,GAGP,YAAY,GACZ,MAAM,GAGN,MAAM,GACN,iBAAiB,CAAC;AAEtB,uFAAuF;AACvF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC/C;AAwKD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAKlE;AA2GD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,QAAQ,EAChB,UAAU,GAAE,SAAS,kBAAkB,EAAO,GAC7C,kBAAkB,CAMpB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAWvE"}
|
|
@@ -55,33 +55,99 @@ function parseImageFills(value) {
|
|
|
55
55
|
}
|
|
56
56
|
return refs;
|
|
57
57
|
}
|
|
58
|
+
// Subtrees deeper than this are truncated during parse so a chain-like persisted irJson cannot cause
|
|
59
|
+
// a RangeError. Shared constant — see prune.ts for rationale. Must stay in sync with every walk.
|
|
60
|
+
const MAX_TREE_DEPTH = 512;
|
|
58
61
|
// Parse a node's children list, dropping any malformed child rather than failing the whole node.
|
|
59
|
-
|
|
62
|
+
// depth tracks how deep we are so the recursion is bounded at MAX_TREE_DEPTH.
|
|
63
|
+
function parseIrChildren(value, depth) {
|
|
64
|
+
if (depth > MAX_TREE_DEPTH)
|
|
65
|
+
return [];
|
|
60
66
|
if (!Array.isArray(value))
|
|
61
67
|
return [];
|
|
62
68
|
const children = [];
|
|
63
69
|
for (const child of value) {
|
|
64
|
-
const parsed =
|
|
70
|
+
const parsed = parseIrNodeAt(child, depth);
|
|
65
71
|
if (parsed !== undefined)
|
|
66
72
|
children.push(parsed);
|
|
67
73
|
}
|
|
68
74
|
return children;
|
|
69
75
|
}
|
|
70
|
-
// The optional, additive node fields (text, bounding box, a11y colours #812).
|
|
71
|
-
// when well-typed; a malformed value is dropped so a corrupt node degrades
|
|
76
|
+
// The optional, additive node fields (text, bounding box, a11y colours #812, layout fidelity).
|
|
77
|
+
// Each is present only when well-typed; a malformed value is dropped so a corrupt node degrades
|
|
78
|
+
// rather than crashing.
|
|
72
79
|
function parseOptionalNodeFields(value) {
|
|
73
80
|
const boundingBox = parseBoundingBox(value.boundingBox);
|
|
81
|
+
const layout = parseIrLayout(value.layout);
|
|
82
|
+
const sizing = parseIrSizing(value.sizing);
|
|
83
|
+
const typography = parseIrTypography(value.typography);
|
|
84
|
+
const cornerRadius = isFiniteNumber(value.cornerRadius) ? value.cornerRadius : undefined;
|
|
74
85
|
return {
|
|
75
86
|
...(isString(value.text) ? { text: value.text } : {}),
|
|
76
87
|
...(boundingBox !== undefined ? { boundingBox } : {}),
|
|
77
88
|
...(isString(value.textColor) ? { textColor: value.textColor } : {}),
|
|
78
89
|
...(isString(value.backgroundColor) ? { backgroundColor: value.backgroundColor } : {}),
|
|
90
|
+
...(layout !== undefined ? { layout } : {}),
|
|
91
|
+
...(sizing !== undefined ? { sizing } : {}),
|
|
92
|
+
...(cornerRadius !== undefined ? { cornerRadius } : {}),
|
|
93
|
+
...(typography !== undefined ? { typography } : {}),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
const LAYOUT_MODES = new Set(["row", "column"]);
|
|
97
|
+
const ALIGN_VALUES = new Set(["start", "center", "end", "space-between"]);
|
|
98
|
+
const SIZING_VALUES = new Set(["fixed", "hug", "fill"]);
|
|
99
|
+
const parseAlign = (value) => isString(value) && ALIGN_VALUES.has(value) ? value : undefined;
|
|
100
|
+
// Re-hydrate the layout-fidelity fields persisted in irJson (codegen path). Persisted snapshots
|
|
101
|
+
// from before these fields existed simply omit them — every branch is total and optional.
|
|
102
|
+
function parseIrLayout(value) {
|
|
103
|
+
if (!isObject(value) || !isString(value.mode) || !LAYOUT_MODES.has(value.mode))
|
|
104
|
+
return undefined;
|
|
105
|
+
const padding = parsePadding(value.padding);
|
|
106
|
+
const itemSpacing = isFiniteNumber(value.itemSpacing) ? value.itemSpacing : undefined;
|
|
107
|
+
const primaryAlign = parseAlign(value.primaryAlign);
|
|
108
|
+
const counterAlign = parseAlign(value.counterAlign);
|
|
109
|
+
return {
|
|
110
|
+
mode: value.mode,
|
|
111
|
+
...(itemSpacing !== undefined ? { itemSpacing } : {}),
|
|
112
|
+
...(padding !== undefined ? { padding } : {}),
|
|
113
|
+
...(primaryAlign !== undefined ? { primaryAlign } : {}),
|
|
114
|
+
...(counterAlign !== undefined ? { counterAlign } : {}),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function parsePadding(value) {
|
|
118
|
+
if (!Array.isArray(value) || value.length !== 4)
|
|
119
|
+
return undefined;
|
|
120
|
+
return value.every(isFiniteNumber)
|
|
121
|
+
? value
|
|
122
|
+
: undefined;
|
|
123
|
+
}
|
|
124
|
+
const parseSizingValue = (value) => isString(value) && SIZING_VALUES.has(value) ? value : undefined;
|
|
125
|
+
function parseIrSizing(value) {
|
|
126
|
+
if (!isObject(value))
|
|
127
|
+
return undefined;
|
|
128
|
+
const horizontal = parseSizingValue(value.horizontal);
|
|
129
|
+
const vertical = parseSizingValue(value.vertical);
|
|
130
|
+
if (horizontal === undefined && vertical === undefined)
|
|
131
|
+
return undefined;
|
|
132
|
+
return {
|
|
133
|
+
...(horizontal !== undefined ? { horizontal } : {}),
|
|
134
|
+
...(vertical !== undefined ? { vertical } : {}),
|
|
79
135
|
};
|
|
80
136
|
}
|
|
137
|
+
function parseIrTypography(value) {
|
|
138
|
+
if (!isObject(value))
|
|
139
|
+
return undefined;
|
|
140
|
+
const { fontFamily, fontSize, fontWeight } = value;
|
|
141
|
+
if (!isString(fontFamily) || !isFiniteNumber(fontSize) || !isFiniteNumber(fontWeight)) {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
return { fontFamily, fontSize, fontWeight };
|
|
145
|
+
}
|
|
81
146
|
// Total, defensive IR-node parser: an opaque serialised node (from the snapshot's `irJson`) is
|
|
82
147
|
// accepted only when its required structural fields are present and well-typed; anything malformed
|
|
83
148
|
// yields `undefined` so a corrupt screen degrades to "no items" rather than crashing the run.
|
|
84
|
-
|
|
149
|
+
// depth is passed through parseIrChildren to bound total recursion at MAX_TREE_DEPTH.
|
|
150
|
+
function parseIrNodeAt(value, depth) {
|
|
85
151
|
if (!isObject(value))
|
|
86
152
|
return undefined;
|
|
87
153
|
const { id, name, type, interactionHint } = value;
|
|
@@ -96,9 +162,12 @@ function parseIrNode(value) {
|
|
|
96
162
|
interactionHint: interactionHint,
|
|
97
163
|
...parseOptionalNodeFields(value),
|
|
98
164
|
imageFills: parseImageFills(value.imageFills),
|
|
99
|
-
children: parseIrChildren(value.children),
|
|
165
|
+
children: parseIrChildren(value.children, depth + 1),
|
|
100
166
|
};
|
|
101
167
|
}
|
|
168
|
+
function parseIrNode(value) {
|
|
169
|
+
return parseIrNodeAt(value, 0);
|
|
170
|
+
}
|
|
102
171
|
/**
|
|
103
172
|
* Total, defensive Screen-IR parser for the snapshot's opaque `irJson`. Returns `undefined` for a
|
|
104
173
|
* missing or malformed value (no `root`, malformed node tree) so the caller can skip an unparseable
|
|
@@ -175,7 +244,9 @@ function stateItem(node, ctx, label) {
|
|
|
175
244
|
title: `Element "${node.name}" renders correctly in state "${label}" on screen "${ctx.screenName}"`,
|
|
176
245
|
};
|
|
177
246
|
}
|
|
178
|
-
function
|
|
247
|
+
function collectNodeItemsAt(node, ctx, out, depth) {
|
|
248
|
+
if (depth > MAX_TREE_DEPTH)
|
|
249
|
+
return;
|
|
179
250
|
if (node.interactionHint === "input")
|
|
180
251
|
out.push(...fieldItems(node, ctx));
|
|
181
252
|
if (node.interactionHint === "button" || node.interactionHint === "link") {
|
|
@@ -185,7 +256,10 @@ function collectNodeItems(node, ctx, out) {
|
|
|
185
256
|
if (state !== undefined)
|
|
186
257
|
out.push(stateItem(node, ctx, state));
|
|
187
258
|
for (const child of node.children)
|
|
188
|
-
|
|
259
|
+
collectNodeItemsAt(child, ctx, out, depth + 1);
|
|
260
|
+
}
|
|
261
|
+
function collectNodeItems(node, ctx, out) {
|
|
262
|
+
collectNodeItemsAt(node, ctx, out, 0);
|
|
189
263
|
}
|
|
190
264
|
function screenRenderItem(ctx) {
|
|
191
265
|
return {
|
|
@@ -217,7 +291,10 @@ export function deriveScreenTestBaseline(screen, extraItems = []) {
|
|
|
217
291
|
*/
|
|
218
292
|
export function renderBaselineText(baseline) {
|
|
219
293
|
const header = `Screen: ${baseline.screenName} [${baseline.screenId}]`;
|
|
220
|
-
const lines = baseline.items.map((item) =>
|
|
294
|
+
const lines = baseline.items.map((item) => {
|
|
295
|
+
const nodeRef = item.sourceNodeId !== undefined ? ` [node:${item.sourceNodeId}]` : "";
|
|
296
|
+
return `- (${item.category}) ${item.title}${nodeRef}`;
|
|
297
|
+
});
|
|
221
298
|
return [
|
|
222
299
|
header,
|
|
223
300
|
"Structural test baseline (deterministic, derived from Screen-IR):",
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/domain/figma/tokens.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAEV,YAAY,EAIb,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/domain/figma/tokens.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAEV,YAAY,EAIb,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA4E7C,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,GAAI,SAAS,SAAS,UAAU,EAAE,KAAG,YAiBpE,CAAC;AA0DF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,YAQlD,CAAC"}
|
|
@@ -49,7 +49,11 @@ const collectRadius = (node, out) => {
|
|
|
49
49
|
if (value !== undefined && value > 0)
|
|
50
50
|
out.add(value);
|
|
51
51
|
};
|
|
52
|
-
|
|
52
|
+
// Shared constant — see prune.ts for rationale. Must stay in sync with every other recursive walk.
|
|
53
|
+
const MAX_TREE_DEPTH = 512;
|
|
54
|
+
function visitAt(pruned, acc, depth) {
|
|
55
|
+
if (depth > MAX_TREE_DEPTH)
|
|
56
|
+
return;
|
|
53
57
|
const node = pruned.source;
|
|
54
58
|
collectPaintColors(node, "fills", acc.colors);
|
|
55
59
|
collectPaintColors(node, "strokes", acc.colors);
|
|
@@ -57,7 +61,10 @@ const visit = (pruned, acc) => {
|
|
|
57
61
|
collectSpacing(node, acc.spacing);
|
|
58
62
|
collectRadius(node, acc.radius);
|
|
59
63
|
for (const child of pruned.children)
|
|
60
|
-
|
|
64
|
+
visitAt(child, acc, depth + 1);
|
|
65
|
+
}
|
|
66
|
+
const visit = (pruned, acc) => {
|
|
67
|
+
visitAt(pruned, acc, 0);
|
|
61
68
|
};
|
|
62
69
|
const toColorTokens = (values) => [...values].sort().map((value) => ({ id: `color:${value}`, kind: "color", value }));
|
|
63
70
|
const toSpacingTokens = (values) => [...values]
|
|
@@ -78,7 +85,7 @@ export const extractDesignTokens = (screens) => {
|
|
|
78
85
|
visit(screen, acc);
|
|
79
86
|
return {
|
|
80
87
|
colors: toColorTokens(acc.colors),
|
|
81
|
-
typography: [...acc.typography.values()].sort((a, b) => a.id.
|
|
88
|
+
typography: [...acc.typography.values()].sort((a, b) => a.id < b.id ? -1 : a.id > b.id ? 1 : 0),
|
|
82
89
|
spacing: toSpacingTokens(acc.spacing),
|
|
83
90
|
radius: toRadiusTokens(acc.radius),
|
|
84
91
|
};
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/domain/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/domain/validation.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AA6JpE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,mBAAmB,CAAC,wBAAwB,EACnD,YAAY,SAAS,mBAAmB,CAAC,oCAAoC,EAAE,KAC9E,SAAS,mBAAmB,CAAC,oCAAoC,EAoBnE,CAAC"}
|
|
@@ -9,9 +9,10 @@
|
|
|
9
9
|
// 1. schema-completeness — title/steps/expectedResults must be non-empty.
|
|
10
10
|
// 2. step-acyclicity — no canonical-line repeats in the step sequence.
|
|
11
11
|
// 3. expected-presence — at least one expected result must be present.
|
|
12
|
-
// 4. trivial-contradiction — a precondition
|
|
13
|
-
//
|
|
14
|
-
//
|
|
12
|
+
// 4. trivial-contradiction — a precondition and an expected result share the
|
|
13
|
+
// same negation-stripped core but have opposite negation parity (XOR):
|
|
14
|
+
// exactly one of the two contains a negation word. Both positive or both
|
|
15
|
+
// negated → consistent; one positive + one negated → contradiction.
|
|
15
16
|
//
|
|
16
17
|
// Structurally inspired by
|
|
17
18
|
// Test Intelligence reference (TI) packages/core-engine/src/
|
|
@@ -90,21 +91,22 @@ const checkTrivialContradictions = (runId, candidate) => {
|
|
|
90
91
|
if (candidate.preconditions.length === 0 || candidate.expectedResults.length === 0) {
|
|
91
92
|
return [];
|
|
92
93
|
}
|
|
93
|
-
const preStripped = candidate.preconditions.map((line) => stripNegation(canonicaliseLine(line)));
|
|
94
94
|
for (const result of candidate.expectedResults) {
|
|
95
95
|
const resultCanonical = canonicaliseLine(result);
|
|
96
|
-
|
|
96
|
+
const resultCore = stripNegation(resultCanonical);
|
|
97
|
+
if (resultCore.length === 0) {
|
|
97
98
|
continue;
|
|
98
99
|
}
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (pre.length === 0) {
|
|
100
|
+
const negatedResult = NEGATION_PATTERN.test(resultCanonical);
|
|
101
|
+
for (const pre of candidate.preconditions) {
|
|
102
|
+
const preCanonical = canonicaliseLine(pre);
|
|
103
|
+
const preCore = stripNegation(preCanonical);
|
|
104
|
+
if (preCore.length === 0) {
|
|
105
105
|
continue;
|
|
106
106
|
}
|
|
107
|
-
|
|
107
|
+
const negatedPre = NEGATION_PATTERN.test(preCanonical);
|
|
108
|
+
// Contradiction iff cores match AND exactly one side carries a negation (XOR parity).
|
|
109
|
+
if (preCore === resultCore && negatedPre !== negatedResult) {
|
|
108
110
|
return [
|
|
109
111
|
buildSemanticDefect(runId, candidate, 4, "medium", "Expected result trivially contradicts a precondition (post-negation match)."),
|
|
110
112
|
];
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alm.d.ts","sourceRoot":"","sources":["../../../src/export/adapters/alm.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,+BAA+B,EAC/B,oCAAoC,EACrC,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAS3C,CAAC;
|
|
1
|
+
{"version":3,"file":"alm.d.ts","sourceRoot":"","sources":["../../../src/export/adapters/alm.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,+BAA+B,EAC/B,oCAAoC,EACrC,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAS3C,CAAC;AA2CH,wBAAgB,UAAU,CACxB,MAAM,EAAE,+BAA+B,EACvC,UAAU,EAAE,SAAS,oCAAoC,EAAE,GAC1D,MAAM,CAkBR"}
|
|
@@ -27,6 +27,33 @@ const buildDescription = (candidate) => {
|
|
|
27
27
|
const buildSubject = (candidate) => {
|
|
28
28
|
return `Subject/${candidate.riskClass}`;
|
|
29
29
|
};
|
|
30
|
+
// Build the ALM rows for a single candidate. One row per (step, expected) pair — the row count is
|
|
31
|
+
// the longer of `steps`/`expectedResults` so a trailing expected result is never dropped (Issue
|
|
32
|
+
// #283); a candidate with neither yields one empty-step row.
|
|
33
|
+
function almRowsFor(candidate) {
|
|
34
|
+
const head = [
|
|
35
|
+
candidate.title,
|
|
36
|
+
buildDescription(candidate),
|
|
37
|
+
"MANUAL",
|
|
38
|
+
ALM_DESIGNER,
|
|
39
|
+
buildSubject(candidate),
|
|
40
|
+
];
|
|
41
|
+
const rowCount = Math.max(candidate.steps.length, candidate.expectedResults.length);
|
|
42
|
+
if (rowCount === 0) {
|
|
43
|
+
return encodeSpreadsheetSafeRow([...head, "", "", ""]);
|
|
44
|
+
}
|
|
45
|
+
let rows = "";
|
|
46
|
+
for (let i = 0; i < rowCount; i += 1) {
|
|
47
|
+
const stepName = i < candidate.steps.length ? `Step ${String(i + 1)}` : "";
|
|
48
|
+
rows += encodeSpreadsheetSafeRow([
|
|
49
|
+
...head,
|
|
50
|
+
stepName,
|
|
51
|
+
candidate.steps[i] ?? "",
|
|
52
|
+
candidate.expectedResults[i] ?? "",
|
|
53
|
+
]);
|
|
54
|
+
}
|
|
55
|
+
return rows;
|
|
56
|
+
}
|
|
30
57
|
export function adaptToAlm(bundle, candidates) {
|
|
31
58
|
assertExportBundleInvariant(bundle);
|
|
32
59
|
const byId = new Map();
|
|
@@ -40,36 +67,8 @@ export function adaptToAlm(bundle, candidates) {
|
|
|
40
67
|
let body = encodeSpreadsheetSafeRow(ALM_CSV_HEADERS);
|
|
41
68
|
for (const id of sortedIds) {
|
|
42
69
|
const candidate = byId.get(id);
|
|
43
|
-
if (candidate
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
if (candidate.steps.length === 0) {
|
|
47
|
-
body += encodeSpreadsheetSafeRow([
|
|
48
|
-
candidate.title,
|
|
49
|
-
buildDescription(candidate),
|
|
50
|
-
"MANUAL",
|
|
51
|
-
ALM_DESIGNER,
|
|
52
|
-
buildSubject(candidate),
|
|
53
|
-
"",
|
|
54
|
-
"",
|
|
55
|
-
"",
|
|
56
|
-
]);
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
for (let i = 0; i < candidate.steps.length; i += 1) {
|
|
60
|
-
const stepName = `Step ${String(i + 1)}`;
|
|
61
|
-
const stepDescription = candidate.steps[i] ?? "";
|
|
62
|
-
const expected = candidate.expectedResults[i] ?? "";
|
|
63
|
-
body += encodeSpreadsheetSafeRow([
|
|
64
|
-
candidate.title,
|
|
65
|
-
buildDescription(candidate),
|
|
66
|
-
"MANUAL",
|
|
67
|
-
ALM_DESIGNER,
|
|
68
|
-
buildSubject(candidate),
|
|
69
|
-
stepName,
|
|
70
|
-
stepDescription,
|
|
71
|
-
expected,
|
|
72
|
-
]);
|
|
70
|
+
if (candidate !== undefined) {
|
|
71
|
+
body += almRowsFor(candidate);
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
74
|
return body;
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/export/adapters/markdown.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,+BAA+B,EAC/B,oCAAoC,EACrC,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/export/adapters/markdown.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,+BAA+B,EAC/B,oCAAoC,EACrC,MAAM,+BAA+B,CAAC;AAoEvC,wBAAgB,eAAe,CAC7B,MAAM,EAAE,+BAA+B,EACvC,UAAU,EAAE,SAAS,oCAAoC,EAAE,GAC1D,MAAM,CAqBR"}
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.js
CHANGED
|
@@ -6,29 +6,53 @@
|
|
|
6
6
|
//
|
|
7
7
|
// Pure-domain leaf. NO IO. NO node:* imports. NO new runtime dependency.
|
|
8
8
|
import { assertExportBundleInvariant } from "@oscharko-dev/keiko-contracts";
|
|
9
|
-
import { inlineField
|
|
9
|
+
import { inlineField } from "../textSafety.js";
|
|
10
|
+
import { startsWithFormulaLead } from "./spreadsheetSafeCsv.js";
|
|
10
11
|
const byCandidateIdAsc = (a, b) => a.candidateId < b.candidateId ? -1 : a.candidateId > b.candidateId ? 1 : 0;
|
|
12
|
+
// Untrusted candidate free-text rendered into the EXPORTED Markdown artifact must not inject active
|
|
13
|
+
// Markdown structure into an external viewer, nor evaluate as a formula if the .md is pasted into a
|
|
14
|
+
// spreadsheet (Issue #284 AC2 — "Generated artifacts are sanitized before preview or export").
|
|
15
|
+
// `mdText` composes content-preserving (escape-not-strip) steps on top of inlineField:
|
|
16
|
+
// 1. inlineField — fold line breaks so the value stays one logical unit (Epic #711);
|
|
17
|
+
// 2. neutralise a leading spreadsheet formula lead (=,+,-,@, incl. a trimmed leading-whitespace
|
|
18
|
+
// run) with a single-quote prefix — parity with the CSV adapters / traceability.mdCell;
|
|
19
|
+
// 3. escape the Markdown-active vectors a single-line value can still smuggle — a link or image
|
|
20
|
+
// (incl. javascript:/data: hrefs) and a fenced-code run — mirroring the accepted #278
|
|
21
|
+
// untrusted-markdown escape set (ingestion/untrustedContentNormalisation). The literal text is
|
|
22
|
+
// preserved so an auditor still reads the original content.
|
|
23
|
+
const FENCED_CODE = /```/gu;
|
|
24
|
+
const IMAGE_OPEN = /!\[/gu;
|
|
25
|
+
const LINK_OPEN = /(?<!!)\[([^\]]*)\]\(/gu;
|
|
26
|
+
function mdText(value) {
|
|
27
|
+
const oneLine = inlineField(value);
|
|
28
|
+
const formulaSafe = startsWithFormulaLead(oneLine) ? `'${oneLine}` : oneLine;
|
|
29
|
+
return formulaSafe
|
|
30
|
+
.replace(FENCED_CODE, "\\`\\`\\`")
|
|
31
|
+
.replace(IMAGE_OPEN, "\\!\\[")
|
|
32
|
+
.replace(LINK_OPEN, (_match, inner) => `\\[${inner}\\](`);
|
|
33
|
+
}
|
|
34
|
+
const mdTextList = (items) => items.map(mdText);
|
|
11
35
|
const mdList = (items) => items.length === 0
|
|
12
36
|
? "_none_\n"
|
|
13
|
-
:
|
|
37
|
+
: mdTextList(items)
|
|
14
38
|
.map((item) => `- ${item}`)
|
|
15
39
|
.join("\n") + "\n";
|
|
16
40
|
function renderCandidate(candidate, runId) {
|
|
17
41
|
const lines = [];
|
|
18
|
-
lines.push(`## ${
|
|
42
|
+
lines.push(`## ${mdText(candidate.title)}\n`);
|
|
19
43
|
lines.push(`**ID:** ${candidate.id} `);
|
|
20
44
|
lines.push(`**Run:** ${runId} `);
|
|
21
45
|
lines.push(`**Priority:** ${candidate.priority} `);
|
|
22
46
|
lines.push(`**Risk class:** ${candidate.riskClass} `);
|
|
23
47
|
lines.push(`**Status:** ${candidate.status} `);
|
|
24
|
-
lines.push(`**Tags:** ${candidate.tags.length > 0 ?
|
|
48
|
+
lines.push(`**Tags:** ${candidate.tags.length > 0 ? mdTextList(candidate.tags).join(", ") : "_none_"} `);
|
|
25
49
|
lines.push("");
|
|
26
50
|
lines.push("### Preconditions\n");
|
|
27
51
|
lines.push(mdList(candidate.preconditions));
|
|
28
52
|
lines.push("### Steps\n");
|
|
29
53
|
lines.push(candidate.steps.length === 0
|
|
30
54
|
? "_none_\n"
|
|
31
|
-
:
|
|
55
|
+
: mdTextList(candidate.steps)
|
|
32
56
|
.map((s, i) => `${String(i + 1)}. ${s}`)
|
|
33
57
|
.join("\n") + "\n");
|
|
34
58
|
lines.push("### Expected results\n");
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qtest.d.ts","sourceRoot":"","sources":["../../../src/export/adapters/qtest.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,+BAA+B,EAC/B,oCAAoC,EACrC,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAS7C,CAAC;
|
|
1
|
+
{"version":3,"file":"qtest.d.ts","sourceRoot":"","sources":["../../../src/export/adapters/qtest.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,+BAA+B,EAC/B,oCAAoC,EACrC,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAS7C,CAAC;AA0CH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,+BAA+B,EACvC,UAAU,EAAE,SAAS,oCAAoC,EAAE,GAC1D,MAAM,CAkBR"}
|