@oscharko-dev/keiko 0.2.0-beta.5 → 0.2.0-beta.6
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 +39 -14
- package/dist/ui/csp-hashes.json +17 -22
- package/dist/ui/static/404.html +1 -1
- package/dist/ui/static/__next.__PAGE__.txt +2 -2
- package/dist/ui/static/__next._full.txt +3 -3
- package/dist/ui/static/__next._head.txt +1 -1
- package/dist/ui/static/__next._index.txt +2 -2
- package/dist/ui/static/__next._tree.txt +2 -2
- package/dist/ui/static/_next/static/chunks/0-qhhdvxg2j_y.js +1 -0
- package/dist/ui/static/_next/static/chunks/0ke4ratkgvcxo.css +1 -0
- package/dist/ui/static/_next/static/chunks/0xhu-pfsyvbmx.js +5 -0
- package/dist/ui/static/_next/static/chunks/3vf3oh2-sl2nc.js +1 -0
- package/dist/ui/static/_next/static/chunks/3wmd4-2vznp2g.js +106 -0
- package/dist/ui/static/_next/static/chunks/turbopack-18q50fp2-1qbt.js +1 -0
- package/dist/ui/static/_not-found/__next._full.txt +2 -2
- package/dist/ui/static/_not-found/__next._head.txt +1 -1
- package/dist/ui/static/_not-found/__next._index.txt +2 -2
- package/dist/ui/static/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/ui/static/_not-found/__next._not-found.txt +1 -1
- package/dist/ui/static/_not-found/__next._tree.txt +2 -2
- package/dist/ui/static/_not-found.html +1 -1
- package/dist/ui/static/_not-found.txt +2 -2
- package/dist/ui/static/index.html +1 -1
- package/dist/ui/static/index.txt +3 -3
- package/dist/ui/static/launch/__next._full.txt +3 -3
- package/dist/ui/static/launch/__next._head.txt +1 -1
- package/dist/ui/static/launch/__next._index.txt +2 -2
- package/dist/ui/static/launch/__next._tree.txt +2 -2
- package/dist/ui/static/launch/__next.launch.__PAGE__.txt +2 -2
- package/dist/ui/static/launch/__next.launch.txt +1 -1
- package/dist/ui/static/launch.html +1 -1
- package/dist/ui/static/launch.txt +3 -3
- package/dist/ui/static/local-knowledge/__next._full.txt +3 -3
- package/dist/ui/static/local-knowledge/__next._head.txt +1 -1
- package/dist/ui/static/local-knowledge/__next._index.txt +2 -2
- package/dist/ui/static/local-knowledge/__next._tree.txt +2 -2
- package/dist/ui/static/local-knowledge/__next.local-knowledge.__PAGE__.txt +2 -2
- package/dist/ui/static/local-knowledge/__next.local-knowledge.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule/__next._full.txt +3 -3
- package/dist/ui/static/local-knowledge/capsule/__next._head.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule/__next._index.txt +2 -2
- package/dist/ui/static/local-knowledge/capsule/__next._tree.txt +2 -2
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.__PAGE__.txt +2 -2
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.txt +1 -1
- package/dist/ui/static/local-knowledge/capsule.html +1 -1
- package/dist/ui/static/local-knowledge/capsule.txt +3 -3
- package/dist/ui/static/local-knowledge.html +1 -1
- package/dist/ui/static/local-knowledge.txt +3 -3
- package/dist/ui/static/memoriaviva/__next._full.txt +6 -6
- package/dist/ui/static/memoriaviva/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +4 -4
- package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +4 -4
- package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation.html +1 -1
- package/dist/ui/static/memoriaviva/consolidation.txt +4 -4
- package/dist/ui/static/memoriaviva/detail/__next._full.txt +6 -6
- package/dist/ui/static/memoriaviva/detail/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +4 -4
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/detail.html +1 -1
- package/dist/ui/static/memoriaviva/detail.txt +6 -6
- package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +4 -4
- package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue.html +1 -1
- package/dist/ui/static/memoriaviva/review-queue.txt +4 -4
- package/dist/ui/static/memoriaviva.html +1 -1
- package/dist/ui/static/memoriaviva.txt +6 -6
- package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/doctor.d.ts +24 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/doctor.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/doctor.js +108 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.js +7 -4
- package/node_modules/@oscharko-dev/keiko-cli/dist/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/index.js +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/init.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-cli/dist/init.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/init.js +4 -4
- package/node_modules/@oscharko-dev/keiko-cli/dist/install-layout.d.ts +6 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/install-layout.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/install-layout.js +24 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/launcher.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/launcher.js +5 -7
- package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.js +75 -30
- package/node_modules/@oscharko-dev/keiko-cli/dist/memory.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-cli/dist/memory.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/memory.js +76 -7
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.js +50 -2
- package/node_modules/@oscharko-dev/keiko-cli/dist/runner.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/runner.js +20 -4
- package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/ui.js +17 -14
- package/node_modules/@oscharko-dev/keiko-cli/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts +7 -0
- 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.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.js +1 -2
- package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/gateway.d.ts +12 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/gateway.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +4 -2
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +4 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.d.ts +13 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.js +7 -6
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-internal.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-internal.js +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-operations.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-workflow-port.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-workflow-port.js +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +21 -4
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.js +1 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts +1 -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 +26 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.d.ts +5 -3
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.js +29 -3
- package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.js +58 -0
- package/node_modules/@oscharko-dev/keiko-contracts/package.json +5 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/dist/surface-parity.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts +7 -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 +62 -13
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts +3 -3
- 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 +31 -11
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +35 -3
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.js +107 -3
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts +15 -1
- 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 +248 -36
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts +17 -3
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts +1 -1
- 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 +26 -22
- package/node_modules/@oscharko-dev/keiko-evidence/dist/side-file.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/side-file.js +17 -5
- package/node_modules/@oscharko-dev/keiko-evidence/dist/store.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/store.js +128 -12
- package/node_modules/@oscharko-dev/keiko-evidence/dist/workflow-evidence.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/workflow-evidence.js +1 -3
- package/node_modules/@oscharko-dev/keiko-evidence/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-harness/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.js +1 -2
- 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 +1 -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 +45 -21
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/media-type.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/media-type.js +1 -0
- 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 +11 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.js +42 -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 +34 -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/report.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/report.js +7 -6
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner.js +7 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.js +2 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts +1 -1
- 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 +1 -1
- 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 +121 -3
- 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 +34 -4
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts +1 -0
- 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 +63 -0
- 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 +4 -7
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/html-parser.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/html-parser.js +67 -11
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts +1 -0
- 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 +3 -0
- 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 +39 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/null-ocr-adapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/ocr-pipeline-parser.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/ocr-pipeline-parser.js +46 -11
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.js +2 -0
- 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 +114 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.js +425 -0
- 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/qualityIntelligence/capsuleCorpus.d.ts +9 -4
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.js +11 -6
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/retrieval-runner.js +15 -2
- 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 +220 -7
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/types.d.ts +2 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/types.d.ts.map +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 +3 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +4 -2
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.js +17 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/errors.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/errors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.js +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-capture/dist/salience.js +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.js +5 -0
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/consolidate.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/consolidate.js +93 -30
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/stale.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/stale.js +3 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.d.ts +5 -0
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.js +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/dist/forget.js +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/dist/types.js +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/dist/context.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/context.js +61 -18
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.js +3 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.js +26 -4
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts +9 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.js +21 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/migrate-encrypt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/migrate-encrypt.js +24 -4
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.js +27 -4
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.js +21 -4
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts +22 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/validate.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/validate.js +3 -0
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.js +105 -28
- package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts +2 -0
- 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 +83 -69
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.d.ts +3 -2
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.js +20 -16
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/gateway.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/gateway.js +9 -3
- 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 +29 -3
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.d.ts +4 -4
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.js +3 -3
- 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 +51 -6
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.d.ts +20 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.js +122 -7
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.d.ts +10 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.js +33 -11
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.js +21 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/routing.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/routing.js +2 -13
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.js +18 -2
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/types.d.ts +5 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.d.ts +35 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.js +74 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/deduplication.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/deduplication.js +6 -2
- 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 +64 -19
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.js +3 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.d.ts +6 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.js +22 -9
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts +4 -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 +28 -12
- 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 +123 -33
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/index.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts +7 -4
- 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 +13 -17
- 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 +35 -12
- 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 +54 -6
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.js +29 -10
- 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 -4
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/requirementExcerpt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/requirementExcerpt.js +15 -6
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.js +162 -6
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts +14 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.js +50 -12
- 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 +4 -2
- 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 +8 -3
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/traceability.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/traceability.js +12 -9
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.js +7 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.d.ts +10 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.js +14 -0
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/index.js +3 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.js +97 -50
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.js +35 -7
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.js +2 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-sdk/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.d.ts +11 -0
- package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.js +13 -0
- package/node_modules/@oscharko-dev/keiko-security/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +50 -12
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.js +10 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.js +3 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts +4 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/deps.js +44 -69
- package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.js +120 -28
- package/node_modules/@oscharko-dev/keiko-server/dist/governed-workflow.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/governed-workflow.js +4 -1
- 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 +2 -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 +115 -22
- 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 +54 -21
- 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 +11 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts +1 -0
- 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 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.js +7 -3
- 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 +26 -14
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.js +52 -27
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.d.ts +10 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.js +44 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-handlers.js +79 -57
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-registry.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-registry.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.js +6 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-conversation-context.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-diagnostics.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-diagnostics.js +16 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts +3 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.js +538 -87
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts +6 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.js +17 -38
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-retention.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-retention.js +7 -15
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.js +17 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-scope-sanitizer.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-scope-sanitizer.js +19 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-target-resolver.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-target-resolver.js +4 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.js +108 -27
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.d.ts +4 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.js +3 -0
- 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 +61 -7
- 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 +9 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConcurrency.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConcurrency.js +2 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts +6 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.js +16 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts +7 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts +1 -1
- 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 +3 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.js +3 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.d.ts +5 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.js +10 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaReadiness.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaReadiness.js +11 -5
- 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 +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts +3 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.js +71 -10
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts +2 -0
- 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 +86 -23
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +1 -1
- 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/figma/figmaTokenSource.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaTokenSource.js +4 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaUrl.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaUrl.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaCodegenRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaCodegenRoutes.js +60 -20
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts +11 -6
- 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 +144 -6
- 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 +84 -15
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +9 -7
- 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 +206 -42
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts +3 -1
- 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 +69 -65
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts +15 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.js +56 -39
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts +1 -1
- 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 +382 -75
- 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 +14 -6
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.d.ts +3 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.js +44 -16
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts +7 -0
- 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 +336 -47
- 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 +15 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/traceabilityRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/traceabilityRoutes.js +36 -4
- 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 +61 -6
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +16 -5
- package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts +1 -0
- 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 +3 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/run-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/run-handlers.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.d.ts +9 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.js +26 -0
- 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 +16 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/store/messages.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/terminal.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/dist/patch-normalize.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/dist/patch-normalize.js +13 -7
- package/node_modules/@oscharko-dev/keiko-tools/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-verification/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.js +16 -18
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/prompt.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/prompt.js +6 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/workflow.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/workflow.js +3 -3
- package/node_modules/@oscharko-dev/keiko-workflows/dist/governed-handoff.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/descriptors.d.ts +2 -2
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts +18 -2
- 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 +209 -54
- package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts +4 -4
- 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 +4 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/unit-tests/target-guard.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.js +1 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.js +2 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +6 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/package.json +1 -1
- package/package.json +23 -6
- package/dist/ui/static/_next/static/chunks/082obv3v03b-9.js +0 -2
- package/dist/ui/static/_next/static/chunks/0uifns067thv8.js +0 -1
- package/dist/ui/static/_next/static/chunks/0x31-j53ab1tt.js +0 -1
- package/dist/ui/static/_next/static/chunks/1m-kvwm6_90_3.css +0 -1
- package/dist/ui/static/_next/static/chunks/1v4hrxrm_6_rw.js +0 -1
- package/dist/ui/static/_next/static/chunks/27jktro2p5rq9.js +0 -4
- package/dist/ui/static/_next/static/chunks/2lypy3ewh0r04.js +0 -1
- package/dist/ui/static/_next/static/chunks/2ngm8iwdb1cbv.js +0 -106
- package/dist/ui/static/_next/static/chunks/32573pyyglqxl.js +0 -1
- package/dist/ui/static/_next/static/chunks/3_t_pzet29qtn.js +0 -1
- package/dist/ui/static/_next/static/chunks/3jgg_oe0iok0l.js +0 -1
- package/dist/ui/static/_next/static/chunks/3o_oia3vsam60.js +0 -1
- package/dist/ui/static/_next/static/chunks/turbopack-2lg1g6kbsfm0x.js +0 -1
- /package/dist/ui/static/_next/static/{hR2gBQqCDKdPdSxBqZhqv → fQMXe8UmV01bh25WOoIt3}/_buildManifest.js +0 -0
- /package/dist/ui/static/_next/static/{hR2gBQqCDKdPdSxBqZhqv → fQMXe8UmV01bh25WOoIt3}/_clientMiddlewareManifest.js +0 -0
- /package/dist/ui/static/_next/static/{hR2gBQqCDKdPdSxBqZhqv → fQMXe8UmV01bh25WOoIt3}/_ssgManifest.js +0 -0
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
// Converts an `IntentSummary` plus the evidence atoms it was derived from
|
|
4
4
|
// into a deterministic list of draft `QualityIntelligenceTestCaseCandidate`
|
|
5
5
|
// records. NO model calls; NO randomness; ID derivation is content-hash +
|
|
6
|
-
// position based, so the same
|
|
6
|
+
// position based, so the same evidence always produces the same candidate IDs
|
|
7
|
+
// regardless of the enclosing run id.
|
|
7
8
|
//
|
|
8
9
|
// Structurally inspired by
|
|
9
10
|
// Test Intelligence reference (TI) packages/core-engine/src/intent-derivation.ts
|
|
@@ -12,7 +13,7 @@
|
|
|
12
13
|
// envelope/atom-shaped and policy-driven.
|
|
13
14
|
import { QualityIntelligence } from "@oscharko-dev/keiko-contracts";
|
|
14
15
|
import { sha256Hex } from "@oscharko-dev/keiko-security";
|
|
15
|
-
import { isKnownPriority,
|
|
16
|
+
import { isKnownPriority, normaliseCandidateText } from "./assertions.js";
|
|
16
17
|
import { regressionDefault } from "./policyProfile.js";
|
|
17
18
|
const compareString = (left, right) => left < right ? -1 : left > right ? 1 : 0;
|
|
18
19
|
const stableSortAtoms = (atoms) => {
|
|
@@ -69,6 +70,18 @@ const buildExpectedResults = (atom, intent) => {
|
|
|
69
70
|
results.push(`Evidence atom ${atom.canonicalHashSha256Hex.slice(0, 12)} remains canonical.`);
|
|
70
71
|
return Object.freeze(results);
|
|
71
72
|
};
|
|
73
|
+
/**
|
|
74
|
+
* Stable provenance discriminator carried by every deterministic-baseline candidate.
|
|
75
|
+
*
|
|
76
|
+
* The model-delta builder (`parseGeneratedCandidates`) never emits this tag, so it is a reliable
|
|
77
|
+
* "this is a generic determinism-floor stub, not a judged model candidate" marker — unlike a null
|
|
78
|
+
* `qualityVerdict`, which is also null whenever the judge stage is skipped entirely. Render-layer
|
|
79
|
+
* consumers sort baseline-tagged candidates to the end so judged candidates lead the deliverable;
|
|
80
|
+
* the persisted manifest order stays `[...baseline, ...delta]` (Issue #763 contract). The tag is
|
|
81
|
+
* additive and feeds no candidate id (`sha256(v2<atomHash><index>)`), dedup signature, or manifest
|
|
82
|
+
* hash, so it is determinism-safe.
|
|
83
|
+
*/
|
|
84
|
+
export const DETERMINISTIC_BASELINE_PROVENANCE_TAG = "source:deterministic-baseline";
|
|
72
85
|
const buildTags = (intent, riskClass) => {
|
|
73
86
|
const tags = new Set();
|
|
74
87
|
for (const theme of intent.themes) {
|
|
@@ -78,21 +91,46 @@ const buildTags = (intent, riskClass) => {
|
|
|
78
91
|
tags.add(`risk-hint:${risk}`);
|
|
79
92
|
}
|
|
80
93
|
tags.add(`risk-class:${riskClass}`);
|
|
94
|
+
tags.add(DETERMINISTIC_BASELINE_PROVENANCE_TAG);
|
|
81
95
|
return Object.freeze(Array.from(tags).sort(compareString));
|
|
82
96
|
};
|
|
83
|
-
const deriveCandidateIdString = (
|
|
84
|
-
const payload = ["
|
|
97
|
+
const deriveCandidateIdString = (atom, index) => {
|
|
98
|
+
const payload = ["v2", atom.canonicalHashSha256Hex, String(index)].join("");
|
|
85
99
|
const digest = sha256Hex(payload).slice(0, 32);
|
|
86
100
|
return `qi-candidate-${digest}`;
|
|
87
101
|
};
|
|
102
|
+
// Sanitise an ordered fragment list for a persisted candidate field: NFKC-normalise,
|
|
103
|
+
// strip unsafe bidi / zero-width / C0/C1/DEL code points (via normaliseCandidateText),
|
|
104
|
+
// and drop fragments that become empty. Order-preserving, no dedup. The deterministic
|
|
105
|
+
// builder receives untrusted text only through `intent` (derived from source display
|
|
106
|
+
// labels, which sanitiseLabel does NOT strip bidi/zero-width from), so without this the
|
|
107
|
+
// deterministic candidates persist and export those spoofing code points — the
|
|
108
|
+
// deterministic-path twin of the model-path chokepoint in parseGeneratedCandidates
|
|
109
|
+
// (Epic #711 / Issue #724 residual). Clean fragments are byte-identical (strip is a
|
|
110
|
+
// no-op and the fragments are already trimmed), so candidate IDs — derived from
|
|
111
|
+
// atomHash/index, never from text — stay stable.
|
|
112
|
+
const sanitiseFragmentList = (values) => Object.freeze(values.map((value) => normaliseCandidateText(value)).filter((value) => value.length > 0));
|
|
113
|
+
// Sanitise + canonicalise a tag list: strip unsafe code points, drop empties, dedup,
|
|
114
|
+
// and sort — preserving the Set+sort semantics of buildTags on the post-strip values so
|
|
115
|
+
// a zero-width-spoofed theme cannot smuggle a visually-duplicate tag into the export.
|
|
116
|
+
const canonicaliseCandidateTags = (values) => {
|
|
117
|
+
const seen = new Set();
|
|
118
|
+
for (const value of values) {
|
|
119
|
+
const cleaned = normaliseCandidateText(value);
|
|
120
|
+
if (cleaned.length > 0) {
|
|
121
|
+
seen.add(cleaned);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return Object.freeze(Array.from(seen).sort(compareString));
|
|
125
|
+
};
|
|
88
126
|
/**
|
|
89
127
|
* Produce deterministic draft candidates from the intent summary + atoms.
|
|
90
128
|
* Returns the empty array when the atom list is empty. Atoms are first
|
|
91
129
|
* sorted by canonical hash so input ordering does not affect IDs.
|
|
92
130
|
*
|
|
93
131
|
* Candidate IDs are derived as
|
|
94
|
-
* `qi-candidate-<32-hex-of-sha256(
|
|
95
|
-
*
|
|
132
|
+
* `qi-candidate-<32-hex-of-sha256(v2<atomHash><index>)>` — collision-resistant,
|
|
133
|
+
* run-independent, and round-trip-stable for the same evidence.
|
|
96
134
|
*/
|
|
97
135
|
export const designTestCaseCandidates = (input) => {
|
|
98
136
|
const { runId, intent, atoms } = input;
|
|
@@ -108,21 +146,21 @@ export const designTestCaseCandidates = (input) => {
|
|
|
108
146
|
if (atom === undefined) {
|
|
109
147
|
continue;
|
|
110
148
|
}
|
|
111
|
-
const idString = deriveCandidateIdString(
|
|
149
|
+
const idString = deriveCandidateIdString(atom, index);
|
|
112
150
|
const id = QualityIntelligence.asQualityIntelligenceTestCaseId(idString);
|
|
113
151
|
const riskClass = deriveRiskClass(atom, profile);
|
|
114
|
-
const title =
|
|
152
|
+
const title = normaliseCandidateText(buildTitle(atom, intent, index));
|
|
115
153
|
const candidate = {
|
|
116
154
|
id,
|
|
117
155
|
runId,
|
|
118
156
|
derivedFromAtomIds: Object.freeze([atom.id]),
|
|
119
157
|
title,
|
|
120
|
-
preconditions: buildPreconditions(intent),
|
|
121
|
-
steps: buildSteps(atom, intent),
|
|
122
|
-
expectedResults: buildExpectedResults(atom, intent),
|
|
158
|
+
preconditions: sanitiseFragmentList(buildPreconditions(intent)),
|
|
159
|
+
steps: sanitiseFragmentList(buildSteps(atom, intent)),
|
|
160
|
+
expectedResults: sanitiseFragmentList(buildExpectedResults(atom, intent)),
|
|
123
161
|
priority,
|
|
124
162
|
riskClass,
|
|
125
|
-
tags: buildTags(intent, riskClass),
|
|
163
|
+
tags: canonicaliseCandidateTags(buildTags(intent, riskClass)),
|
|
126
164
|
status: "proposed",
|
|
127
165
|
};
|
|
128
166
|
candidates.push(Object.freeze(candidate));
|
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":"AAqBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/domain/validation.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AA+JpE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,mBAAmB,CAAC,wBAAwB,EACnD,YAAY,SAAS,mBAAmB,CAAC,oCAAoC,EAAE,KAC9E,SAAS,mBAAmB,CAAC,oCAAoC,EAoBnE,CAAC"}
|
|
@@ -20,10 +20,12 @@
|
|
|
20
20
|
// the model-judge tier excluded and a Keiko-shaped finding output.
|
|
21
21
|
import { QualityIntelligence } from "@oscharko-dev/keiko-contracts";
|
|
22
22
|
import { sha256Hex } from "@oscharko-dev/keiko-security";
|
|
23
|
-
import { normaliseText } from "./assertions.js";
|
|
23
|
+
import { normaliseCandidateText, normaliseText } from "./assertions.js";
|
|
24
24
|
const NEGATION_PATTERN = /\b(not|never|no longer|cannot|isn't|aren't|won't|doesn't|do not)\b/iu;
|
|
25
25
|
const collapseWhitespace = (value) => value.replace(/\s+/gu, " ").trim();
|
|
26
|
-
|
|
26
|
+
// Use normaliseCandidateText (NFKC + bidi/zero-width strip + trim) so that two candidates
|
|
27
|
+
// differing only by injected bidi or zero-width spoofing chars produce the same equivalence key.
|
|
28
|
+
const canonicaliseLine = (value) => collapseWhitespace(normaliseCandidateText(value).toLowerCase());
|
|
27
29
|
const stripNegation = (value) => value.replace(NEGATION_PATTERN, " ").replace(/\s+/gu, " ").trim();
|
|
28
30
|
const deriveFindingIdString = (runId, candidateId, kind, ordinal) => {
|
|
29
31
|
const payload = ["v1", String(runId), candidateId, kind, String(ordinal)].join("");
|
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;AAyEvC,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
|
@@ -17,9 +17,14 @@ const byCandidateIdAsc = (a, b) => a.candidateId < b.candidateId ? -1 : a.candid
|
|
|
17
17
|
// 2. neutralise a leading spreadsheet formula lead (=,+,-,@, incl. a trimmed leading-whitespace
|
|
18
18
|
// run) with a single-quote prefix — parity with the CSV adapters / traceability.mdCell;
|
|
19
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 —
|
|
21
|
-
// untrusted-markdown escape set (ingestion/untrustedContentNormalisation). The
|
|
22
|
-
// preserved so an auditor still reads the original content.
|
|
20
|
+
// (incl. javascript:/data: hrefs) and a fenced-code run — the link/image/fenced subset of the
|
|
21
|
+
// accepted #278 untrusted-markdown escape set (ingestion/untrustedContentNormalisation). The
|
|
22
|
+
// literal text is preserved so an auditor still reads the original content.
|
|
23
|
+
// The #278 set's fourth vector — a line-leading `#` heading — is intentionally NOT escaped here: it
|
|
24
|
+
// is already mitigated structurally, not by escaping. Step 1 folds every internal line break to a
|
|
25
|
+
// space, and every field value is rendered behind a fixed prefix (`## ` for the title, `- `/`N. `
|
|
26
|
+
// for list items, `**Tags:** ` etc.), so a leading `#` in untrusted text can never reach a true
|
|
27
|
+
// line-start and open a heading.
|
|
23
28
|
const FENCED_CODE = /```/gu;
|
|
24
29
|
const IMAGE_OPEN = /!\[/gu;
|
|
25
30
|
const LINK_OPEN = /(?<!!)\[([^\]]*)\]\(/gu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceability.d.ts","sourceRoot":"","sources":["../../../src/export/adapters/traceability.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"traceability.d.ts","sourceRoot":"","sources":["../../../src/export/adapters/traceability.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAIxE;;;;GAIG;AACH,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;CAC9C;AAED,4FAA4F;AAC5F,MAAM,WAAW,6CAA6C;IAC5D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3D;AAED,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAOhD,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAKxD,CAAC;AA2DH;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,kCAAkC,EAAE,EACnD,OAAO,GAAE,6CAAkD,GAC1D,MAAM,CA0BR;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,SAAS,kCAAkC,EAAE,EACnD,OAAO,GAAE,6CAAkD,GAC1D,MAAM,CA0CR"}
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/traceability.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
// atom text, so the adapter depends on nothing outside keiko-contracts/keiko-quality-intelligence
|
|
10
10
|
// (ADR-0019 direction rule). Deterministic: rows are sorted by id, confidence is fixed-precision,
|
|
11
11
|
// and there are no timestamps — so the export is byte-stable for identical inputs.
|
|
12
|
+
import { inlineField } from "../textSafety.js";
|
|
12
13
|
import { encodeSpreadsheetSafeRow, startsWithFormulaLead } from "./spreadsheetSafeCsv.js";
|
|
13
14
|
/** CSV header row for the requirement -> tests direction. */
|
|
14
15
|
export const TRACEABILITY_HEADERS = Object.freeze([
|
|
@@ -55,10 +56,12 @@ function invertToReverseRows(rows) {
|
|
|
55
56
|
}
|
|
56
57
|
// Escape Markdown table delimiters so an id containing a pipe cannot break the row structure, and
|
|
57
58
|
// neutralise a spreadsheet formula lead (=,+,-,@) so a cell stays inert if the table is pasted into
|
|
58
|
-
// a spreadsheet.
|
|
59
|
-
//
|
|
59
|
+
// a spreadsheet. inlineField runs FIRST so embedded newlines/tabs cannot split one logical row across
|
|
60
|
+
// two physical Markdown lines (CWE-1284). Backslashes are escaped BEFORE pipes so a literal backslash
|
|
61
|
+
// cannot consume the following escape and a pre-existing `\|` cannot smuggle an unescaped pipe (CWE-20).
|
|
60
62
|
const mdCell = (value) => {
|
|
61
|
-
const
|
|
63
|
+
const oneLine = inlineField(value);
|
|
64
|
+
const safe = startsWithFormulaLead(oneLine) ? `'${oneLine}` : oneLine;
|
|
62
65
|
return safe.replace(/\\/gu, "\\\\").replace(/\|/gu, "\\|");
|
|
63
66
|
};
|
|
64
67
|
const mdRow = (cells) => `| ${cells.map(mdCell).join(" | ")} |`;
|
|
@@ -73,11 +76,11 @@ export function adaptToTraceabilityCsv(rows, display = {}) {
|
|
|
73
76
|
body += encodeSpreadsheetSafeRow(TRACEABILITY_HEADERS);
|
|
74
77
|
for (const row of sorted) {
|
|
75
78
|
body += encodeSpreadsheetSafeRow([
|
|
76
|
-
row.atomId,
|
|
77
|
-
row.requirementExcerptRedacted ?? ABSENT,
|
|
79
|
+
inlineField(row.atomId),
|
|
80
|
+
inlineField(row.requirementExcerptRedacted ?? ABSENT),
|
|
78
81
|
row.status,
|
|
79
82
|
fixed2(row.confidence),
|
|
80
|
-
joinSemicolon(row.coveringCandidateIds),
|
|
83
|
+
inlineField(joinSemicolon(row.coveringCandidateIds)),
|
|
81
84
|
String(row.coveringCandidateIds.length),
|
|
82
85
|
]);
|
|
83
86
|
}
|
|
@@ -86,9 +89,9 @@ export function adaptToTraceabilityCsv(rows, display = {}) {
|
|
|
86
89
|
body += encodeSpreadsheetSafeRow(TRACEABILITY_REVERSE_HEADERS);
|
|
87
90
|
for (const reverse of invertToReverseRows(sorted)) {
|
|
88
91
|
body += encodeSpreadsheetSafeRow([
|
|
89
|
-
reverse.candidateId,
|
|
90
|
-
display.candidateTitleById?.get(reverse.candidateId) ?? ABSENT,
|
|
91
|
-
joinSemicolon(reverse.requirementIds),
|
|
92
|
+
inlineField(reverse.candidateId),
|
|
93
|
+
inlineField(display.candidateTitleById?.get(reverse.candidateId) ?? ABSENT),
|
|
94
|
+
inlineField(joinSemicolon(reverse.requirementIds)),
|
|
92
95
|
String(reverse.requirementIds.length),
|
|
93
96
|
]);
|
|
94
97
|
}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Collapse embedded line-breaking / tab whitespace in a single field value to one space. Leaves all
|
|
3
3
|
* other characters (including ordinary spaces and non-ASCII text) untouched.
|
|
4
|
+
*
|
|
5
|
+
* Scope note: this folds ONLY the line-breaking / tab run above — its sole job is to keep a field on
|
|
6
|
+
* one logical line so it cannot break the structure of a line-oriented serializer. It does NOT strip
|
|
7
|
+
* other C0/C1/DEL control characters (NUL, BEL, backspace, …) or bidi/zero-width code points; the
|
|
8
|
+
* line-oriented Markdown / plain-text serializers assume candidate text is already control-clean and
|
|
9
|
+
* redacted by the upstream persist-time redactor (#278/#284), which is the single content-safety
|
|
10
|
+
* chokepoint. This helper is a structural folder, not a content scrubber.
|
|
4
11
|
*/
|
|
5
12
|
export declare function inlineField(value: string): string;
|
|
6
13
|
/** Apply {@link inlineField} across a list of field values. */
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textSafety.d.ts","sourceRoot":"","sources":["../../src/export/textSafety.ts"],"names":[],"mappings":"AAcA
|
|
1
|
+
{"version":3,"file":"textSafety.d.ts","sourceRoot":"","sources":["../../src/export/textSafety.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAEhE"}
|
|
@@ -13,6 +13,13 @@ const LINE_BREAKING_RUN = /[\r\n\t\u000b\f\u0085\u2028\u2029]+/gu;
|
|
|
13
13
|
/**
|
|
14
14
|
* Collapse embedded line-breaking / tab whitespace in a single field value to one space. Leaves all
|
|
15
15
|
* other characters (including ordinary spaces and non-ASCII text) untouched.
|
|
16
|
+
*
|
|
17
|
+
* Scope note: this folds ONLY the line-breaking / tab run above — its sole job is to keep a field on
|
|
18
|
+
* one logical line so it cannot break the structure of a line-oriented serializer. It does NOT strip
|
|
19
|
+
* other C0/C1/DEL control characters (NUL, BEL, backspace, …) or bidi/zero-width code points; the
|
|
20
|
+
* line-oriented Markdown / plain-text serializers assume candidate text is already control-clean and
|
|
21
|
+
* redacted by the upstream persist-time redactor (#278/#284), which is the single content-safety
|
|
22
|
+
* chokepoint. This helper is a structural folder, not a content scrubber.
|
|
16
23
|
*/
|
|
17
24
|
export function inlineField(value) {
|
|
18
25
|
return value.replace(LINE_BREAKING_RUN, " ");
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const GENERATED_CANDIDATE_RESPONSE_MAX_ITEMS = 1024;
|
|
2
|
+
export declare const GENERATED_CANDIDATE_TITLE_MAX_CHARS = 256;
|
|
3
|
+
export declare const GENERATED_CANDIDATE_TEXT_ITEM_MAX_CHARS = 1000;
|
|
4
|
+
export declare const GENERATED_CANDIDATE_TAG_MAX_CHARS = 120;
|
|
5
|
+
export declare const GENERATED_CANDIDATE_PRECONDITION_MAX_ITEMS = 20;
|
|
6
|
+
export declare const GENERATED_CANDIDATE_STEP_MAX_ITEMS = 50;
|
|
7
|
+
export declare const GENERATED_CANDIDATE_EXPECTED_RESULT_MAX_ITEMS = 50;
|
|
8
|
+
export declare const GENERATED_CANDIDATE_TAG_MAX_ITEMS = 30;
|
|
9
|
+
export declare const GENERATED_CANDIDATE_EVIDENCE_INDEX_MAX_ITEMS = 120;
|
|
10
|
+
//# sourceMappingURL=candidateBounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candidateBounds.d.ts","sourceRoot":"","sources":["../../src/generation/candidateBounds.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,sCAAsC,OAAO,CAAC;AAC3D,eAAO,MAAM,mCAAmC,MAAM,CAAC;AACvD,eAAO,MAAM,uCAAuC,OAAO,CAAC;AAC5D,eAAO,MAAM,iCAAiC,MAAM,CAAC;AACrD,eAAO,MAAM,0CAA0C,KAAK,CAAC;AAC7D,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD,eAAO,MAAM,6CAA6C,KAAK,CAAC;AAChE,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,4CAA4C,MAAM,CAAC"}
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Shared bounds for model-generated Quality Intelligence candidates.
|
|
2
|
+
//
|
|
3
|
+
// These limits keep generated test cases concise enough for persistence, judge prompts, exports, and
|
|
4
|
+
// UI review while still allowing rich manual test steps. They intentionally mirror the stricter UI
|
|
5
|
+
// projection/edit-route envelope instead of the wider raw-provider payload size.
|
|
6
|
+
export const GENERATED_CANDIDATE_RESPONSE_MAX_ITEMS = 1024;
|
|
7
|
+
export const GENERATED_CANDIDATE_TITLE_MAX_CHARS = 256;
|
|
8
|
+
export const GENERATED_CANDIDATE_TEXT_ITEM_MAX_CHARS = 1000;
|
|
9
|
+
export const GENERATED_CANDIDATE_TAG_MAX_CHARS = 120;
|
|
10
|
+
export const GENERATED_CANDIDATE_PRECONDITION_MAX_ITEMS = 20;
|
|
11
|
+
export const GENERATED_CANDIDATE_STEP_MAX_ITEMS = 50;
|
|
12
|
+
export const GENERATED_CANDIDATE_EXPECTED_RESULT_MAX_ITEMS = 50;
|
|
13
|
+
export const GENERATED_CANDIDATE_TAG_MAX_ITEMS = 30;
|
|
14
|
+
export const GENERATED_CANDIDATE_EVIDENCE_INDEX_MAX_ITEMS = 120;
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,0BAA0B,EAC1B,KAAK,+BAA+B,GACrC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,GACpC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,4BAA4B,CAAC"}
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
// DETERMINISM-FIRST INVARIANT (Epic #761, Issue #763):
|
|
6
6
|
// - The structural stages — coverage mapping, deduplication, validation, and candidate-ID
|
|
7
7
|
// derivation — are 100% deterministic and replayable: `parseGeneratedCandidates` derives every
|
|
8
|
-
// candidate id from a content hash (sha256 of
|
|
9
|
-
// text yields identical ids regardless of model, seed, or sampling
|
|
8
|
+
// candidate id from a content hash (sha256 of ordinal + title + cited atoms), so identical model
|
|
9
|
+
// text over identical evidence yields identical ids regardless of run id, model, seed, or sampling
|
|
10
|
+
// temperature.
|
|
10
11
|
// - The model is invoked ONLY to draft candidate text; its output is an attributed delta. The
|
|
11
12
|
// evidence manifest records which model produced it (`modelId`), the request parameters used
|
|
12
13
|
// (`modelParameters`, e.g. responseFormat), and the seed (`seedUsed`, null when unsupported).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseGeneratedCandidates.d.ts","sourceRoot":"","sources":["../../src/generation/parseGeneratedCandidates.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAIpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"parseGeneratedCandidates.d.ts","sourceRoot":"","sources":["../../src/generation/parseGeneratedCandidates.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAIpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAYhE,KAAK,SAAS,GAAG,mBAAmB,CAAC,oCAAoC,CAAC;AAC1E,KAAK,KAAK,GAAG,mBAAmB,CAAC,wBAAwB,CAAC;AAC1D,KAAK,MAAM,GAAG,mBAAmB,CAAC,iCAAiC,CAAC;AAWpE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,4FAA4F;IAC5F,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAuPD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,OAAO,6BAA6B,KACnC,8BAqBF,CAAC"}
|
|
@@ -7,11 +7,13 @@
|
|
|
7
7
|
// same candidate IDs (round-trip stable, mutation-detectable).
|
|
8
8
|
import { QualityIntelligence } from "@oscharko-dev/keiko-contracts";
|
|
9
9
|
import { sha256Hex } from "@oscharko-dev/keiko-security";
|
|
10
|
-
import {
|
|
10
|
+
import { normaliseCandidateText } from "../domain/assertions.js";
|
|
11
11
|
import { regressionDefault } from "../domain/policyProfile.js";
|
|
12
|
+
import { GENERATED_CANDIDATE_EXPECTED_RESULT_MAX_ITEMS, GENERATED_CANDIDATE_PRECONDITION_MAX_ITEMS, GENERATED_CANDIDATE_STEP_MAX_ITEMS, GENERATED_CANDIDATE_TAG_MAX_CHARS, GENERATED_CANDIDATE_TAG_MAX_ITEMS, GENERATED_CANDIDATE_TEXT_ITEM_MAX_CHARS, GENERATED_CANDIDATE_TITLE_MAX_CHARS, } from "./candidateBounds.js";
|
|
12
13
|
const PRIORITIES = new Set(QualityIntelligence.QUALITY_INTELLIGENCE_PRIORITIES);
|
|
13
14
|
const RISK_CLASSES = new Set(QualityIntelligence.QUALITY_INTELLIGENCE_RISK_CLASSES);
|
|
14
15
|
const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
16
|
+
const CANDIDATE_ARRAY_KEYS = ["testCases", "test_cases", "tests", "cases"];
|
|
15
17
|
// Strip a single ```json … ``` or ``` … ``` fence if the whole payload is fenced.
|
|
16
18
|
const stripCodeFence = (raw) => {
|
|
17
19
|
const fence = /^```(?:json)?\s*([\s\S]*?)\s*```$/u.exec(raw.trim());
|
|
@@ -27,64 +29,98 @@ const consumeStringChar = (ch, escaped) => {
|
|
|
27
29
|
return { inString: false, escaped: false };
|
|
28
30
|
return { inString: true, escaped: false };
|
|
29
31
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
const isJsonOpen = (ch) => ch === "{" || ch === "[";
|
|
33
|
+
const advanceJsonBalance = (ch, openChar, closeChar, scan, depth) => {
|
|
34
|
+
if (scan.inString) {
|
|
35
|
+
return { depth, scan: consumeStringChar(ch, scan.escaped), closed: false };
|
|
36
|
+
}
|
|
37
|
+
if (ch === '"')
|
|
38
|
+
return { depth, scan: { inString: true, escaped: false }, closed: false };
|
|
39
|
+
if (ch === openChar)
|
|
40
|
+
return { depth: depth + 1, scan, closed: false };
|
|
41
|
+
if (ch !== closeChar)
|
|
42
|
+
return { depth, scan, closed: false };
|
|
43
|
+
const nextDepth = depth - 1;
|
|
44
|
+
return { depth: nextDepth, scan, closed: nextDepth === 0 };
|
|
45
|
+
};
|
|
46
|
+
// Scan a balanced JSON value (object or array) at `open`, honouring string literals + escapes, so a
|
|
47
|
+
// `}` inside a quoted step does not terminate the scan early.
|
|
48
|
+
const extractJsonValueAt = (text, open) => {
|
|
36
49
|
const openChar = text[open];
|
|
50
|
+
if (!isJsonOpen(openChar))
|
|
51
|
+
return undefined;
|
|
37
52
|
const closeChar = openChar === "{" ? "}" : "]";
|
|
38
53
|
let depth = 0;
|
|
39
54
|
let scan = { inString: false, escaped: false };
|
|
40
55
|
for (let i = open; i < text.length; i += 1) {
|
|
41
56
|
const ch = text[i] ?? "";
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
scan = { inString: true, escaped: false };
|
|
48
|
-
else if (ch === openChar)
|
|
49
|
-
depth += 1;
|
|
50
|
-
else if (ch === closeChar) {
|
|
51
|
-
depth -= 1;
|
|
52
|
-
if (depth === 0)
|
|
53
|
-
return text.slice(open, i + 1);
|
|
54
|
-
}
|
|
57
|
+
const next = advanceJsonBalance(ch, openChar, closeChar, scan, depth);
|
|
58
|
+
depth = next.depth;
|
|
59
|
+
scan = next.scan;
|
|
60
|
+
if (next.closed)
|
|
61
|
+
return text.slice(open, i + 1);
|
|
55
62
|
}
|
|
56
63
|
return undefined;
|
|
57
64
|
};
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (
|
|
64
|
-
return
|
|
65
|
-
|
|
65
|
+
const hasCandidateContainer = (parsed) => Array.isArray(parsed) ||
|
|
66
|
+
(isObject(parsed) && CANDIDATE_ARRAY_KEYS.some((key) => Array.isArray(parsed[key])));
|
|
67
|
+
// Accept either a bare array of test cases, the documented `{ testCases: [...] }` wrapper, or a
|
|
68
|
+
// small set of common chat-model aliases used when response-format schemas are unavailable.
|
|
69
|
+
const toRawItems = (parsed) => {
|
|
70
|
+
if (Array.isArray(parsed))
|
|
71
|
+
return parsed;
|
|
72
|
+
if (isObject(parsed)) {
|
|
73
|
+
for (const key of CANDIDATE_ARRAY_KEYS) {
|
|
74
|
+
const value = parsed[key];
|
|
75
|
+
if (Array.isArray(value))
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return [];
|
|
66
80
|
};
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
81
|
+
const candidateContainerItemCount = (parsed) => hasCandidateContainer(parsed) ? toRawItems(parsed).length : -1;
|
|
82
|
+
const parseJsonSliceAt = (text, index) => {
|
|
83
|
+
if (!isJsonOpen(text[index]))
|
|
84
|
+
return undefined;
|
|
85
|
+
const slice = extractJsonValueAt(text, index);
|
|
70
86
|
if (slice === undefined)
|
|
71
87
|
return undefined;
|
|
72
88
|
try {
|
|
73
|
-
|
|
89
|
+
const parsed = JSON.parse(slice);
|
|
90
|
+
return { parsed, itemCount: candidateContainerItemCount(parsed) };
|
|
74
91
|
}
|
|
75
92
|
catch {
|
|
76
93
|
return undefined;
|
|
77
94
|
}
|
|
78
95
|
};
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
96
|
+
// Parse the first useful JSON candidate payload. If a chat model emits an invalid bracket fragment
|
|
97
|
+
// before the real JSON, keep scanning; if it emits only a wrong-shape JSON value, preserve the old
|
|
98
|
+
// `recovered:true, candidates:[]` behaviour by returning the first successfully parsed value.
|
|
99
|
+
const parseFirstUsefulJsonValue = (text) => {
|
|
100
|
+
let firstParsed;
|
|
101
|
+
let firstEmptyCandidateContainer;
|
|
102
|
+
for (let i = 0; i < text.length; i += 1) {
|
|
103
|
+
const parsedSlice = parseJsonSliceAt(text, i);
|
|
104
|
+
if (parsedSlice === undefined)
|
|
105
|
+
continue;
|
|
106
|
+
const { parsed, itemCount } = parsedSlice;
|
|
107
|
+
if (firstParsed === undefined)
|
|
108
|
+
firstParsed = parsed;
|
|
109
|
+
if (itemCount > 0)
|
|
110
|
+
return parsed;
|
|
111
|
+
if (itemCount === 0 && firstEmptyCandidateContainer === undefined) {
|
|
112
|
+
firstEmptyCandidateContainer = parsed;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return firstEmptyCandidateContainer ?? firstParsed;
|
|
86
116
|
};
|
|
87
|
-
const
|
|
117
|
+
const parseJsonLoose = (raw) => {
|
|
118
|
+
const stripped = stripCodeFence(raw);
|
|
119
|
+
return parseFirstUsefulJsonValue(stripped);
|
|
120
|
+
};
|
|
121
|
+
const truncateText = (value, limit) => value.length <= limit ? value : `${value.slice(0, Math.max(0, limit - 3))}...`;
|
|
122
|
+
const toBoundedText = (value, maxChars) => truncateText(normaliseCandidateText(typeof value === "string" ? value : ""), maxChars);
|
|
123
|
+
const toStringList = (value, limits) => {
|
|
88
124
|
const source = Array.isArray(value)
|
|
89
125
|
? value
|
|
90
126
|
: typeof value === "string"
|
|
@@ -92,14 +128,20 @@ const toStringList = (value) => {
|
|
|
92
128
|
: [];
|
|
93
129
|
const out = [];
|
|
94
130
|
for (const entry of source) {
|
|
131
|
+
if (out.length >= limits.maxItems)
|
|
132
|
+
break;
|
|
95
133
|
if (typeof entry !== "string")
|
|
96
134
|
continue;
|
|
97
|
-
const text =
|
|
135
|
+
const text = toBoundedText(entry, limits.maxChars);
|
|
98
136
|
if (text.length > 0)
|
|
99
137
|
out.push(text);
|
|
100
138
|
}
|
|
101
139
|
return out;
|
|
102
140
|
};
|
|
141
|
+
const textList = (value, maxItems) => toStringList(value, {
|
|
142
|
+
maxItems,
|
|
143
|
+
maxChars: GENERATED_CANDIDATE_TEXT_ITEM_MAX_CHARS,
|
|
144
|
+
});
|
|
103
145
|
const clampPriority = (value, profile) => typeof value === "string" && PRIORITIES.has(value)
|
|
104
146
|
? value
|
|
105
147
|
: profile.defaultPriority;
|
|
@@ -126,23 +168,28 @@ const resolveDerivedAtomIds = (value, atomIds, positionalIndex) => {
|
|
|
126
168
|
const fallback = atomIds[positionalIndex % atomIds.length];
|
|
127
169
|
return fallback === undefined ? Object.freeze([]) : Object.freeze([fallback]);
|
|
128
170
|
};
|
|
129
|
-
const deriveCandidateId = (
|
|
130
|
-
const
|
|
171
|
+
const deriveCandidateId = (index, title, derivedFromAtomIds) => {
|
|
172
|
+
const atomRefs = derivedFromAtomIds.map(String).join("|");
|
|
173
|
+
const digest = sha256Hex(`qi-cand-v2|${String(index)}|${title}|${atomRefs}`).slice(0, 32);
|
|
131
174
|
return `qi-candidate-${digest}`;
|
|
132
175
|
};
|
|
133
176
|
const buildCandidate = (raw, index, input, profile) => {
|
|
134
|
-
const title =
|
|
135
|
-
const steps =
|
|
177
|
+
const title = toBoundedText(raw.title, GENERATED_CANDIDATE_TITLE_MAX_CHARS);
|
|
178
|
+
const steps = textList(raw.steps, GENERATED_CANDIDATE_STEP_MAX_ITEMS);
|
|
136
179
|
if (title.length === 0 || steps.length === 0)
|
|
137
180
|
return undefined;
|
|
138
|
-
const expectedResults =
|
|
139
|
-
const tags = toStringList(raw.tags
|
|
181
|
+
const expectedResults = textList(raw.expectedResults, GENERATED_CANDIDATE_EXPECTED_RESULT_MAX_ITEMS);
|
|
182
|
+
const tags = toStringList(raw.tags, {
|
|
183
|
+
maxItems: GENERATED_CANDIDATE_TAG_MAX_ITEMS,
|
|
184
|
+
maxChars: GENERATED_CANDIDATE_TAG_MAX_CHARS,
|
|
185
|
+
});
|
|
186
|
+
const derivedFromAtomIds = resolveDerivedAtomIds(raw.derivedFromEvidenceIndexes, input.atomIds, index);
|
|
140
187
|
return Object.freeze({
|
|
141
|
-
id: QualityIntelligence.asQualityIntelligenceTestCaseId(deriveCandidateId(
|
|
188
|
+
id: QualityIntelligence.asQualityIntelligenceTestCaseId(deriveCandidateId(index, title, derivedFromAtomIds)),
|
|
142
189
|
runId: input.runId,
|
|
143
|
-
derivedFromAtomIds
|
|
190
|
+
derivedFromAtomIds,
|
|
144
191
|
title,
|
|
145
|
-
preconditions:
|
|
192
|
+
preconditions: textList(raw.preconditions, GENERATED_CANDIDATE_PRECONDITION_MAX_ITEMS),
|
|
146
193
|
steps,
|
|
147
194
|
expectedResults: expectedResults.length > 0
|
|
148
195
|
? expectedResults
|
package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/generation/prompt.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/generation/prompt.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAiBhE,eAAO,MAAM,4BAA4B,EAAE,MAc/B,CAAC;AAIb,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgD3E,CAAC;AAEH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,kGAAkG;IAClG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GAAI,OAAO,+BAA+B,KAAG,MA8BnF,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// server tier feeds the untrusted evidence segments separately so trusted instructions
|
|
7
7
|
// and untrusted source text never share a string (ADR-0023 D5, Issue #284).
|
|
8
8
|
import { regressionDefault } from "../domain/policyProfile.js";
|
|
9
|
+
import { GENERATED_CANDIDATE_EVIDENCE_INDEX_MAX_ITEMS, GENERATED_CANDIDATE_EXPECTED_RESULT_MAX_ITEMS, GENERATED_CANDIDATE_PRECONDITION_MAX_ITEMS, GENERATED_CANDIDATE_RESPONSE_MAX_ITEMS, GENERATED_CANDIDATE_STEP_MAX_ITEMS, GENERATED_CANDIDATE_TAG_MAX_CHARS, GENERATED_CANDIDATE_TAG_MAX_ITEMS, GENERATED_CANDIDATE_TEXT_ITEM_MAX_CHARS, GENERATED_CANDIDATE_TITLE_MAX_CHARS, } from "./candidateBounds.js";
|
|
9
10
|
// The trusted system instruction. Pinned, never interpolates untrusted content. Frames the
|
|
10
11
|
// model as a regulated-delivery QA engineer and fixes the output contract to STRICT JSON so
|
|
11
12
|
// the deterministic parser can recover candidates without free-text heuristics.
|
|
@@ -33,22 +34,43 @@ export const QI_TEST_DESIGN_RESPONSE_SCHEMA = Object.freeze({
|
|
|
33
34
|
properties: {
|
|
34
35
|
testCases: {
|
|
35
36
|
type: "array",
|
|
37
|
+
maxItems: GENERATED_CANDIDATE_RESPONSE_MAX_ITEMS,
|
|
36
38
|
items: {
|
|
37
39
|
type: "object",
|
|
38
40
|
required: ["title", "steps", "expectedResults", "derivedFromEvidenceIndexes"],
|
|
39
41
|
additionalProperties: false,
|
|
40
42
|
properties: {
|
|
41
|
-
title: { type: "string" },
|
|
42
|
-
preconditions: {
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
title: { type: "string", maxLength: GENERATED_CANDIDATE_TITLE_MAX_CHARS },
|
|
44
|
+
preconditions: {
|
|
45
|
+
type: "array",
|
|
46
|
+
maxItems: GENERATED_CANDIDATE_PRECONDITION_MAX_ITEMS,
|
|
47
|
+
items: { type: "string", maxLength: GENERATED_CANDIDATE_TEXT_ITEM_MAX_CHARS },
|
|
48
|
+
},
|
|
49
|
+
steps: {
|
|
50
|
+
type: "array",
|
|
51
|
+
maxItems: GENERATED_CANDIDATE_STEP_MAX_ITEMS,
|
|
52
|
+
items: { type: "string", maxLength: GENERATED_CANDIDATE_TEXT_ITEM_MAX_CHARS },
|
|
53
|
+
},
|
|
54
|
+
expectedResults: {
|
|
55
|
+
type: "array",
|
|
56
|
+
maxItems: GENERATED_CANDIDATE_EXPECTED_RESULT_MAX_ITEMS,
|
|
57
|
+
items: { type: "string", maxLength: GENERATED_CANDIDATE_TEXT_ITEM_MAX_CHARS },
|
|
58
|
+
},
|
|
45
59
|
priority: { type: "string", enum: ["P0", "P1", "P2", "P3"] },
|
|
46
60
|
riskClass: {
|
|
47
61
|
type: "string",
|
|
48
62
|
enum: ["safety", "compliance", "regression", "functional", "visual"],
|
|
49
63
|
},
|
|
50
|
-
tags: {
|
|
51
|
-
|
|
64
|
+
tags: {
|
|
65
|
+
type: "array",
|
|
66
|
+
maxItems: GENERATED_CANDIDATE_TAG_MAX_ITEMS,
|
|
67
|
+
items: { type: "string", maxLength: GENERATED_CANDIDATE_TAG_MAX_CHARS },
|
|
68
|
+
},
|
|
69
|
+
derivedFromEvidenceIndexes: {
|
|
70
|
+
type: "array",
|
|
71
|
+
maxItems: GENERATED_CANDIDATE_EVIDENCE_INDEX_MAX_ITEMS,
|
|
72
|
+
items: { type: "integer" },
|
|
73
|
+
},
|
|
52
74
|
},
|
|
53
75
|
},
|
|
54
76
|
},
|
|
@@ -61,7 +83,7 @@ export const QI_TEST_DESIGN_RESPONSE_SCHEMA = Object.freeze({
|
|
|
61
83
|
*/
|
|
62
84
|
export const buildTestDesignInstruction = (input) => {
|
|
63
85
|
const profile = input.profile ?? regressionDefault;
|
|
64
|
-
const cap = Math.max(1, Math.min(input.maxTestCases,
|
|
86
|
+
const cap = Math.max(1, Math.min(input.maxTestCases, GENERATED_CANDIDATE_RESPONSE_MAX_ITEMS));
|
|
65
87
|
return [
|
|
66
88
|
`Design up to ${String(cap)} test cases from the ${String(input.evidenceCount)} evidence`,
|
|
67
89
|
`item(s) provided below as <qi-evidence> blocks (numbered 1..${String(input.evidenceCount)}).`,
|
|
@@ -80,6 +102,12 @@ export const buildTestDesignInstruction = (input) => {
|
|
|
80
102
|
' "derivedFromEvidenceIndexes": number[]',
|
|
81
103
|
"} ] }",
|
|
82
104
|
"",
|
|
105
|
+
`Keep each title under ${String(GENERATED_CANDIDATE_TITLE_MAX_CHARS)} characters,`,
|
|
106
|
+
`each list item under ${String(GENERATED_CANDIDATE_TEXT_ITEM_MAX_CHARS)} characters,`,
|
|
107
|
+
`and use at most ${String(GENERATED_CANDIDATE_PRECONDITION_MAX_ITEMS)} preconditions,`,
|
|
108
|
+
`${String(GENERATED_CANDIDATE_STEP_MAX_ITEMS)} steps,`,
|
|
109
|
+
`${String(GENERATED_CANDIDATE_EXPECTED_RESULT_MAX_ITEMS)} expected results, and`,
|
|
110
|
+
`${String(GENERATED_CANDIDATE_TAG_MAX_ITEMS)} tags per test case.`,
|
|
83
111
|
"Every test case must list at least one evidence index in derivedFromEvidenceIndexes.",
|
|
84
112
|
"Respond with the JSON object only.",
|
|
85
113
|
].join("\n");
|