@oscharko-dev/keiko 0.2.0-beta.4 → 0.2.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/csp-hashes.json +18 -18
- 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/1m-kvwm6_90_3.css +1 -0
- package/dist/ui/static/_next/static/chunks/2ngm8iwdb1cbv.js +106 -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 +2 -2
- 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 +1 -1
- 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 +2 -2
- package/dist/ui/static/local-knowledge.html +1 -1
- package/dist/ui/static/local-knowledge.txt +3 -3
- package/dist/ui/static/memoriaviva/__next._full.txt +2 -2
- package/dist/ui/static/memoriaviva/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +1 -1
- package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/consolidation.html +1 -1
- package/dist/ui/static/memoriaviva/consolidation.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next._full.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +1 -1
- package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/detail.html +1 -1
- package/dist/ui/static/memoriaviva/detail.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -2
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +1 -1
- package/dist/ui/static/memoriaviva/review-queue.html +1 -1
- package/dist/ui/static/memoriaviva/review-queue.txt +2 -2
- package/dist/ui/static/memoriaviva.html +1 -1
- package/dist/ui/static/memoriaviva.txt +2 -2
- package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts +3 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-cli/dist/run.js +73 -41
- package/node_modules/@oscharko-dev/keiko-cli/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +2 -0
- package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-contracts/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evaluations/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts +3 -3
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.js +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts +18 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts +33 -0
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.js +69 -0
- 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/conversation/index.d.ts +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.js +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.js +7 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.js +2 -3
- package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-consolidation/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-memory-governance/package.json +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/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/normalize.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.js +22 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.js +18 -4
- package/node_modules/@oscharko-dev/keiko-model-gateway/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/export/adapters/alm.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.js +29 -30
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.js +29 -5
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.js +29 -29
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts +2 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.js +40 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.js +6 -2
- package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-sdk/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-security/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts +6 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.js +12 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +11 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.js +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts +0 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.js +222 -18
- 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 +3 -1
- 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 +3 -1
- 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 +3 -1
- 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 +4 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.js +11 -8
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.js +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.js +89 -30
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.js +12 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.js +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.js +41 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.js +17 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts +5 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts.map +1 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.js +70 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.js +6 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts +25 -4
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.js +72 -9
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.js +46 -3
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.js +2 -0
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.js +12 -2
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +4 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.js +4 -1
- package/node_modules/@oscharko-dev/keiko-server/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-tools/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-verification/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.js +68 -0
- package/node_modules/@oscharko-dev/keiko-workflows/package.json +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.js +34 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts +1 -0
- package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.js +2 -2
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
- package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +68 -0
- package/node_modules/@oscharko-dev/keiko-workspace/package.json +1 -1
- package/package.json +1 -1
- package/dist/ui/static/_next/static/chunks/1t04tfgin0v_g.js +0 -106
- package/dist/ui/static/_next/static/chunks/3wr_35f2vg6sd.css +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts +0 -6
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts.map +0 -1
- package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.js +0 -49
- /package/dist/ui/static/_next/static/{Hb6brrvZY2nZtizQlYhVt → hR2gBQqCDKdPdSxBqZhqv}/_buildManifest.js +0 -0
- /package/dist/ui/static/_next/static/{Hb6brrvZY2nZtizQlYhVt → hR2gBQqCDKdPdSxBqZhqv}/_clientMiddlewareManifest.js +0 -0
- /package/dist/ui/static/_next/static/{Hb6brrvZY2nZtizQlYhVt → hR2gBQqCDKdPdSxBqZhqv}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function isLegacyEmptyAssistantPlaceholder(message: {
|
|
2
|
+
readonly role: string;
|
|
3
|
+
readonly content: string;
|
|
4
|
+
}): boolean;
|
|
5
|
+
export declare function assertUsableAssistantContent(content: string, modelId: string): void;
|
|
6
|
+
//# sourceMappingURL=assistant-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant-response.d.ts","sourceRoot":"","sources":["../src/assistant-response.ts"],"names":[],"mappings":"AAKA,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAIV;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAQnF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ProviderError } from "@oscharko-dev/keiko-model-gateway";
|
|
2
|
+
const EMPTY_ASSISTANT_RESPONSE_STATUS = 200;
|
|
3
|
+
const LEGACY_EMPTY_ASSISTANT_PLACEHOLDER = "The model returned an empty response.";
|
|
4
|
+
export function isLegacyEmptyAssistantPlaceholder(message) {
|
|
5
|
+
return (message.role === "assistant" && message.content.trim() === LEGACY_EMPTY_ASSISTANT_PLACEHOLDER);
|
|
6
|
+
}
|
|
7
|
+
export function assertUsableAssistantContent(content, modelId) {
|
|
8
|
+
if (content.trim().length > 0) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
throw new ProviderError(`model '${modelId}' returned an empty assistant response`, EMPTY_ASSISTANT_RESPONSE_STATUS);
|
|
12
|
+
}
|
|
@@ -26,7 +26,7 @@ interface ParsedConversationMemoryRequest {
|
|
|
26
26
|
readonly context: Record<string, unknown>;
|
|
27
27
|
}
|
|
28
28
|
export declare function createUserMessage(deps: UiHandlerDeps, request: SendDesktopChatRequest): ChatMessage;
|
|
29
|
-
export declare function createAssistantMessage(deps: UiHandlerDeps, request: SendDesktopChatRequest, content: string): ChatMessage;
|
|
29
|
+
export declare function createAssistantMessage(deps: UiHandlerDeps, request: SendDesktopChatRequest, content: string, modelId: string): ChatMessage;
|
|
30
30
|
export declare function emptyMemoryResult(enabled: boolean): ConversationMemoryResultWire;
|
|
31
31
|
export declare function buildMemoryResult(request: SendDesktopChatRequest, deps: UiHandlerDeps, context: ConversationMemoryRuntimeContext): Promise<ConversationMemoryResultWire>;
|
|
32
32
|
export declare function collectMemoryActions(deps: UiHandlerDeps, request: SendDesktopChatRequest, memoryContext: ConversationMemoryRuntimeContext | undefined, modelId: string, assistantText: string): Promise<readonly ConversationMemoryActionWire[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-handlers.d.ts","sourceRoot":"","sources":["../src/chat-handlers.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,KAAK,EACV,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,wCAAwC,CAAC;AAchD,OAAO,EAGL,KAAK,IAAI,EACT,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI7D,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-handlers.d.ts","sourceRoot":"","sources":["../src/chat-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ import { buildMemoryRecordFromProposal } from "./memory-record-builders.js";
|
|
|
20
20
|
import { cosineSimilarity, embedAndStoreMemory, embedMemoryText } from "./memory-embedding.js";
|
|
21
21
|
import { recordMemoryAudit } from "./memory-audit-handler.js";
|
|
22
22
|
import { captureSalientFromTurn } from "./memory-salience.js";
|
|
23
|
+
import { assertUsableAssistantContent, isLegacyEmptyAssistantPlaceholder, } from "./assistant-response.js";
|
|
23
24
|
const DEFAULT_CHAT_MODEL = "example-chat-model";
|
|
24
25
|
const DEFAULT_CHAT_TITLE = "New chat";
|
|
25
26
|
const MAX_BODY_BYTES = 128_000;
|
|
@@ -151,7 +152,9 @@ function chatEnvelope(deps, project, chat) {
|
|
|
151
152
|
available: isProjectAvailable(item),
|
|
152
153
|
}));
|
|
153
154
|
const chats = deps.store.listChats(project.path);
|
|
154
|
-
const messages = deps.store
|
|
155
|
+
const messages = deps.store
|
|
156
|
+
.listMessages(chat.id)
|
|
157
|
+
.filter((message) => !isLegacyEmptyAssistantPlaceholder(message));
|
|
155
158
|
return {
|
|
156
159
|
project: { ...project, available: isProjectAvailable(project) },
|
|
157
160
|
chat,
|
|
@@ -190,6 +193,9 @@ export function desktopChatErrorResult(error, deps) {
|
|
|
190
193
|
throw error;
|
|
191
194
|
}
|
|
192
195
|
function messageForGateway(message) {
|
|
196
|
+
if (isLegacyEmptyAssistantPlaceholder(message)) {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
193
199
|
if (message.role !== "user" && message.role !== "assistant") {
|
|
194
200
|
return null;
|
|
195
201
|
}
|
|
@@ -437,11 +443,12 @@ export function createUserMessage(deps, request) {
|
|
|
437
443
|
taskType: undefined,
|
|
438
444
|
});
|
|
439
445
|
}
|
|
440
|
-
export function createAssistantMessage(deps, request, content) {
|
|
446
|
+
export function createAssistantMessage(deps, request, content, modelId) {
|
|
447
|
+
assertUsableAssistantContent(content, modelId);
|
|
441
448
|
return deps.store.createMessage({
|
|
442
449
|
chatId: request.chatId,
|
|
443
450
|
role: "assistant",
|
|
444
|
-
content
|
|
451
|
+
content,
|
|
445
452
|
timestamp: Date.now(),
|
|
446
453
|
runId: undefined,
|
|
447
454
|
workflowId: undefined,
|
|
@@ -689,7 +696,7 @@ async function persistModelChatTurn(deps, request, chat, modelId, memoryContext)
|
|
|
689
696
|
// system prompt) would otherwise surface it un-redacted on the success path, mirroring the
|
|
690
697
|
// grounded-QA path (grounded-qa.ts line 549) which already applies deps.redactor here.
|
|
691
698
|
const redactedContent = deps.redactor(response.content);
|
|
692
|
-
const assistantMessage = createAssistantMessage(deps, request, redactedContent);
|
|
699
|
+
const assistantMessage = createAssistantMessage(deps, request, redactedContent, modelId);
|
|
693
700
|
const memoryActions = await collectMemoryActions(deps, request, memoryContext, modelId, redactedContent);
|
|
694
701
|
const chatPatch = buildChatPatch(chat, request, modelId);
|
|
695
702
|
return {
|
|
@@ -48,7 +48,7 @@ async function streamConversation(ctx, deps, stream, signal) {
|
|
|
48
48
|
// threaded in here rather than created again — creating it twice would duplicate the turn.
|
|
49
49
|
async function persistStreamedTurn(deps, request, chat, modelId, memory, memoryContext, turn, userMessage) {
|
|
50
50
|
const redactedContent = deps.redactor(turn.response.content);
|
|
51
|
-
const assistantMessage = createAssistantMessage(deps, request, redactedContent);
|
|
51
|
+
const assistantMessage = createAssistantMessage(deps, request, redactedContent, modelId);
|
|
52
52
|
const actions = await collectMemoryActions(deps, request, memoryContext, modelId, redactedContent);
|
|
53
53
|
const updatedChat = deps.store.updateChat(request.chatId, buildChatPatch(chat, request, modelId));
|
|
54
54
|
return {
|
|
@@ -36,7 +36,6 @@ export declare class ClarificationNeededError extends Error {
|
|
|
36
36
|
constructor(clarification: ClarificationPrompt);
|
|
37
37
|
}
|
|
38
38
|
export declare function clarificationUserMessage(error: ClarificationNeededError): string;
|
|
39
|
-
export declare const echoAnswerer: GroundedAnswerer;
|
|
40
39
|
export declare function retrieveConnectedContextPack(input: OrchestratorInput, deps: OrchestratorDeps): Promise<RetrievalOnlyOutput>;
|
|
41
40
|
export declare function runGroundedExploration(input: OrchestratorInput, deps: OrchestratorDeps): Promise<OrchestratorOutput>;
|
|
42
41
|
export { DEFAULT_SEARCH_LIMITS };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grounded-orchestrator.d.ts","sourceRoot":"","sources":["../src/grounded-orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grounded-orchestrator.d.ts","sourceRoot":"","sources":["../src/grounded-orchestrator.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,KAAK,oBAAoB,EAEzB,KAAK,iBAAiB,EAGtB,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EASL,KAAK,mBAAmB,EAExB,KAAK,eAAe,EAEpB,KAAK,UAAU,EAGhB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,qBAAqB,EAarB,KAAK,WAAW,EAChB,KAAK,aAAa,EAGnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAkC,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIlG,MAAM,WAAW,gBAAgB;IAG/B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE1C,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;IAE1B,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,KAAK,aAAa,CAAC;IAE5E,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAEtD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC;CACjC;AAMD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;CAChC;AAKD,qBAAa,wBAAyB,SAAQ,KAAK;aACd,aAAa,EAAE,mBAAmB;gBAAlC,aAAa,EAAE,mBAAmB;CAItE;AAMD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CAgBhF;AAmwCD,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAoC9B;AAED,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,kBAAkB,CAAC,CA8B7B;AAID,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
// Pure orchestration: the only IO this module performs is delegated through the workspace
|
|
9
9
|
// package's already-bounded WorkspaceFs port. Path validation is enforced by every composed
|
|
10
10
|
// layer at its own boundary, so this file does not re-validate scope paths.
|
|
11
|
+
import { createHash } from "node:crypto";
|
|
11
12
|
import { isValidScopePath, } from "@oscharko-dev/keiko-contracts/connected-context";
|
|
12
13
|
import { advanceRing, applyUsage, assembleContextPack, canContinue, complete, contextPackIndexKey, planAndGovern, rankCandidates, } from "@oscharko-dev/keiko-workflows";
|
|
13
|
-
import { DEFAULT_SEARCH_LIMITS, FileTooLargeError, RepoSearchUnsupportedFileError, detectWorkspaceAt, gitHistoryAdapter, importGraphAdapter, readExcerpt, resolveWithinWorkspace, runStructuralAdapters, searchText, testSourcePairingAdapter, containedRealPathInfo, } from "@oscharko-dev/keiko-workspace";
|
|
14
|
+
import { DEFAULT_SEARCH_LIMITS, FileTooLargeError, RepoSearchUnsupportedFileError, detectWorkspaceAt, gitHistoryAdapter, importGraphAdapter, readExcerpt, resolveWithinWorkspace, runStructuralAdapters, searchText, testSourcePairingAdapter, containedRealPathInfo, evidenceAtomStableId, } from "@oscharko-dev/keiko-workspace";
|
|
14
15
|
import { CancelledError } from "@oscharko-dev/keiko-model-gateway";
|
|
15
16
|
import { nodeWorkspaceFs } from "@oscharko-dev/keiko-workspace/internal/fs";
|
|
16
17
|
import { normalizeGroundedAnswerPayload } from "./grounded-answer.js";
|
|
@@ -43,20 +44,6 @@ export function clarificationUserMessage(error) {
|
|
|
43
44
|
const exampleText = examples.length > 0 ? ` For example: ${examples.map((q) => `"${q}"`).join(" or ")}` : "";
|
|
44
45
|
return `${intro}${anchorHint}${exampleText}`;
|
|
45
46
|
}
|
|
46
|
-
// ─── Default deterministic answerer ───────────────────────────────────────────
|
|
47
|
-
export const echoAnswerer = {
|
|
48
|
-
answer: (question, pack) => {
|
|
49
|
-
try {
|
|
50
|
-
const filePaths = pack.files.map((f) => f.scopePath).join(", ");
|
|
51
|
-
const summary = `Inspected ${String(pack.files.length)} file(s) for: ${question}. ` +
|
|
52
|
-
`Findings include: ${filePaths.length === 0 ? "(no evidence)" : filePaths}.`;
|
|
53
|
-
return Promise.resolve(summary);
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
return Promise.reject(error instanceof Error ? error : new Error(String(error)));
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
47
|
const TEXT_ENCODER = new TextEncoder();
|
|
61
48
|
function throwIfCancelled(signal) {
|
|
62
49
|
if (signal?.aborted === true) {
|
|
@@ -336,6 +323,59 @@ async function runAllRings(rings, inputs, initialGovernor) {
|
|
|
336
323
|
const DEFAULT_EXCERPT_WINDOW = { startLine: 1, endLine: 200 };
|
|
337
324
|
const EXCERPT_CONTEXT_LINES = 2;
|
|
338
325
|
const MAX_EXCERPT_WINDOWS_PER_FILE = 8;
|
|
326
|
+
const PROJECT_METADATA_QUERY_TERMS = [
|
|
327
|
+
"abhängigkeit",
|
|
328
|
+
"abhängigkeiten",
|
|
329
|
+
"build",
|
|
330
|
+
"cypress",
|
|
331
|
+
"dependenc",
|
|
332
|
+
"framework",
|
|
333
|
+
"jest",
|
|
334
|
+
"npm",
|
|
335
|
+
"package",
|
|
336
|
+
"playwright",
|
|
337
|
+
"pnpm",
|
|
338
|
+
"react",
|
|
339
|
+
"script",
|
|
340
|
+
"stack",
|
|
341
|
+
"tech-stack",
|
|
342
|
+
"techstack",
|
|
343
|
+
"test",
|
|
344
|
+
"testing",
|
|
345
|
+
"testumgebung",
|
|
346
|
+
"typescript",
|
|
347
|
+
"vite",
|
|
348
|
+
"vitest",
|
|
349
|
+
"yarn",
|
|
350
|
+
];
|
|
351
|
+
const PROJECT_METADATA_FILENAMES = [
|
|
352
|
+
"package.json",
|
|
353
|
+
"vitest.config.ts",
|
|
354
|
+
"vitest.config.mts",
|
|
355
|
+
"vitest.config.js",
|
|
356
|
+
"vitest.config.mjs",
|
|
357
|
+
"vitest.setup.ts",
|
|
358
|
+
"vite.config.ts",
|
|
359
|
+
"vite.config.mts",
|
|
360
|
+
"vite.config.js",
|
|
361
|
+
"vite.config.mjs",
|
|
362
|
+
"jest.config.ts",
|
|
363
|
+
"jest.config.js",
|
|
364
|
+
"jest.config.mjs",
|
|
365
|
+
"playwright.config.ts",
|
|
366
|
+
"playwright.config.js",
|
|
367
|
+
"cypress.config.ts",
|
|
368
|
+
"cypress.config.js",
|
|
369
|
+
"next.config.ts",
|
|
370
|
+
"next.config.js",
|
|
371
|
+
"next.config.mjs",
|
|
372
|
+
"tsconfig.json",
|
|
373
|
+
"eslint.config.ts",
|
|
374
|
+
"eslint.config.js",
|
|
375
|
+
"eslint.config.mjs",
|
|
376
|
+
"postcss.config.js",
|
|
377
|
+
"postcss.config.mjs",
|
|
378
|
+
];
|
|
339
379
|
const LOCKFILE_NAMES = new Set([
|
|
340
380
|
"package-lock.json",
|
|
341
381
|
"pnpm-lock.yaml",
|
|
@@ -359,6 +399,165 @@ function isKeikoEvidenceArtifact(scopePath) {
|
|
|
359
399
|
function isLockfilePath(scopePath) {
|
|
360
400
|
return LOCKFILE_NAMES.has(basename(scopePath).toLowerCase());
|
|
361
401
|
}
|
|
402
|
+
function dirname(scopePath) {
|
|
403
|
+
const index = scopePath.lastIndexOf("/");
|
|
404
|
+
return index <= 0 ? "" : scopePath.slice(0, index);
|
|
405
|
+
}
|
|
406
|
+
function joinScopePath(base, filename) {
|
|
407
|
+
return base.length === 0 ? filename : `${base}/${filename}`;
|
|
408
|
+
}
|
|
409
|
+
function projectMetadataQueryFingerprint(query) {
|
|
410
|
+
return createHash("sha256")
|
|
411
|
+
.update(JSON.stringify({
|
|
412
|
+
kind: "project-metadata",
|
|
413
|
+
queryKind: query.kind,
|
|
414
|
+
text: query.text,
|
|
415
|
+
caseSensitive: query.caseSensitive,
|
|
416
|
+
}))
|
|
417
|
+
.digest("hex")
|
|
418
|
+
.slice(0, 16);
|
|
419
|
+
}
|
|
420
|
+
function selectedFileQueryFingerprint(query) {
|
|
421
|
+
return createHash("sha256")
|
|
422
|
+
.update(JSON.stringify({
|
|
423
|
+
kind: "explicit-selected-file",
|
|
424
|
+
queryKind: query.kind,
|
|
425
|
+
text: query.text,
|
|
426
|
+
caseSensitive: query.caseSensitive,
|
|
427
|
+
}))
|
|
428
|
+
.digest("hex")
|
|
429
|
+
.slice(0, 16);
|
|
430
|
+
}
|
|
431
|
+
function wantsProjectMetadata(queryText) {
|
|
432
|
+
const lowered = queryText.toLowerCase();
|
|
433
|
+
return PROJECT_METADATA_QUERY_TERMS.some((term) => lowered.includes(term));
|
|
434
|
+
}
|
|
435
|
+
function metadataRootsForScope(scope) {
|
|
436
|
+
if (scope.relativePaths.length === 0) {
|
|
437
|
+
return [""];
|
|
438
|
+
}
|
|
439
|
+
const roots = new Set();
|
|
440
|
+
for (const entry of scope.relativePaths) {
|
|
441
|
+
if (!isValidScopePath(entry, { mustBeRelative: true })) {
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
roots.add(scope.kind === "files" ? dirname(entry) : entry);
|
|
445
|
+
}
|
|
446
|
+
return [...roots].sort();
|
|
447
|
+
}
|
|
448
|
+
function metadataAtom(scope, scopePath, queryFingerprint, nowMs) {
|
|
449
|
+
return {
|
|
450
|
+
schemaVersion: scope.schemaVersion,
|
|
451
|
+
stableId: evidenceAtomStableId({
|
|
452
|
+
scopeId: scope.scopeId,
|
|
453
|
+
scopePath,
|
|
454
|
+
lineRange: undefined,
|
|
455
|
+
provenanceKind: "file-listing",
|
|
456
|
+
provenanceTool: "repo.projectMetadata",
|
|
457
|
+
queryFingerprint,
|
|
458
|
+
}),
|
|
459
|
+
scopePath,
|
|
460
|
+
lineRange: undefined,
|
|
461
|
+
score: 1,
|
|
462
|
+
provenance: {
|
|
463
|
+
kind: "file-listing",
|
|
464
|
+
tool: "repo.projectMetadata",
|
|
465
|
+
queryFingerprint,
|
|
466
|
+
},
|
|
467
|
+
redactionState: "redacted",
|
|
468
|
+
emittedAtMs: nowMs(),
|
|
469
|
+
ledgerRef: undefined,
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
function selectedFileAtom(scope, scopePath, queryFingerprint, nowMs) {
|
|
473
|
+
return {
|
|
474
|
+
schemaVersion: scope.schemaVersion,
|
|
475
|
+
stableId: evidenceAtomStableId({
|
|
476
|
+
scopeId: scope.scopeId,
|
|
477
|
+
scopePath,
|
|
478
|
+
lineRange: undefined,
|
|
479
|
+
provenanceKind: "file-listing",
|
|
480
|
+
provenanceTool: "repo.selectedFile",
|
|
481
|
+
queryFingerprint,
|
|
482
|
+
}),
|
|
483
|
+
scopePath,
|
|
484
|
+
lineRange: undefined,
|
|
485
|
+
score: 1,
|
|
486
|
+
provenance: {
|
|
487
|
+
kind: "file-listing",
|
|
488
|
+
tool: "repo.selectedFile",
|
|
489
|
+
queryFingerprint,
|
|
490
|
+
},
|
|
491
|
+
redactionState: "redacted",
|
|
492
|
+
emittedAtMs: nowMs(),
|
|
493
|
+
ledgerRef: undefined,
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
|
+
function fileExistsInSearchScope(searchScope, fs, scopePath) {
|
|
497
|
+
try {
|
|
498
|
+
const abs = resolveWithinWorkspace(searchScope.workspace.root, scopePath);
|
|
499
|
+
const contained = containedRealPathInfo(fs, searchScope.workspace.root, abs);
|
|
500
|
+
return fs.stat(contained.path).isFile;
|
|
501
|
+
}
|
|
502
|
+
catch {
|
|
503
|
+
return false;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
function selectedFileScopeAtoms(input, searchScope, fs, nowMs) {
|
|
507
|
+
if (input.scope.explicitConnection !== true || input.scope.kind !== "files") {
|
|
508
|
+
return [];
|
|
509
|
+
}
|
|
510
|
+
const atoms = [];
|
|
511
|
+
const seen = new Set();
|
|
512
|
+
const queryFingerprint = selectedFileQueryFingerprint(input.query);
|
|
513
|
+
for (const entry of input.scope.relativePaths) {
|
|
514
|
+
if (!isValidScopePath(entry, { mustBeRelative: true })) {
|
|
515
|
+
continue;
|
|
516
|
+
}
|
|
517
|
+
const scopePath = entry.replace(/\\/gu, "/");
|
|
518
|
+
if (seen.has(scopePath)) {
|
|
519
|
+
continue;
|
|
520
|
+
}
|
|
521
|
+
seen.add(scopePath);
|
|
522
|
+
if (fileExistsInSearchScope(searchScope, fs, scopePath)) {
|
|
523
|
+
atoms.push(selectedFileAtom(input.scope, scopePath, queryFingerprint, nowMs));
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
return atoms;
|
|
527
|
+
}
|
|
528
|
+
function projectMetadataAtoms(input, searchScope, fs, nowMs) {
|
|
529
|
+
if (!wantsProjectMetadata(input.query.text)) {
|
|
530
|
+
return [];
|
|
531
|
+
}
|
|
532
|
+
const atoms = [];
|
|
533
|
+
const seen = new Set();
|
|
534
|
+
const queryFingerprint = projectMetadataQueryFingerprint(input.query);
|
|
535
|
+
for (const root of metadataRootsForScope(input.scope)) {
|
|
536
|
+
for (const filename of PROJECT_METADATA_FILENAMES) {
|
|
537
|
+
const scopePath = joinScopePath(root, filename);
|
|
538
|
+
if (seen.has(scopePath) || !isValidScopePath(scopePath, { mustBeRelative: true })) {
|
|
539
|
+
continue;
|
|
540
|
+
}
|
|
541
|
+
seen.add(scopePath);
|
|
542
|
+
if (fileExistsInSearchScope(searchScope, fs, scopePath)) {
|
|
543
|
+
atoms.push(metadataAtom(input.scope, scopePath, queryFingerprint, nowMs));
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
return atoms;
|
|
548
|
+
}
|
|
549
|
+
function withProjectMetadataAtoms(rings, input, searchScope, fs, nowMs) {
|
|
550
|
+
const metadataAtoms = projectMetadataAtoms(input, searchScope, fs, nowMs);
|
|
551
|
+
return metadataAtoms.length === 0
|
|
552
|
+
? rings
|
|
553
|
+
: { ...rings, atoms: [...rings.atoms, ...metadataAtoms] };
|
|
554
|
+
}
|
|
555
|
+
function withExplicitScopeAtoms(rings, input, searchScope, fs, nowMs) {
|
|
556
|
+
const selectedAtoms = selectedFileScopeAtoms(input, searchScope, fs, nowMs);
|
|
557
|
+
return selectedAtoms.length === 0
|
|
558
|
+
? rings
|
|
559
|
+
: { ...rings, atoms: [...selectedAtoms, ...rings.atoms] };
|
|
560
|
+
}
|
|
362
561
|
function queryTerms(queryText, anchors) {
|
|
363
562
|
const terms = new Set();
|
|
364
563
|
const loweredQuery = queryText.toLowerCase();
|
|
@@ -667,6 +866,8 @@ function preparePackAssembly(input, plan, rings, nowMs) {
|
|
|
667
866
|
};
|
|
668
867
|
}
|
|
669
868
|
async function assemblePackFromReads({ input, plan, rings, prepared, excerptReads, cacheIdentity, assembleOptions, }) {
|
|
869
|
+
const needsNoEvidenceMarker = excerptReads.excerpts.size === 0 &&
|
|
870
|
+
!prepared.evidenceUncertainty.some((marker) => marker.kind === "no-evidence");
|
|
670
871
|
const assemble = await assembleContextPack({
|
|
671
872
|
scope: input.scope,
|
|
672
873
|
query: input.query,
|
|
@@ -681,12 +882,15 @@ async function assemblePackFromReads({ input, plan, rings, prepared, excerptRead
|
|
|
681
882
|
...rings.uncertainty,
|
|
682
883
|
...excerptReads.uncertainty,
|
|
683
884
|
...prepared.evidenceUncertainty,
|
|
885
|
+
...(needsNoEvidenceMarker ? [noEvidence(assembleOptions.nowMs())] : []),
|
|
684
886
|
],
|
|
685
887
|
}, assembleOptions);
|
|
686
888
|
return assemble.pack;
|
|
687
889
|
}
|
|
688
890
|
async function assembleGroundedPack({ input, deps, plan, rings, searchScope, fs, nowMs, }) {
|
|
689
|
-
const
|
|
891
|
+
const scopedRings = withExplicitScopeAtoms(rings, input, searchScope, fs, nowMs);
|
|
892
|
+
const augmentedRings = withProjectMetadataAtoms(scopedRings, input, searchScope, fs, nowMs);
|
|
893
|
+
const prepared = preparePackAssembly(input, plan, augmentedRings, nowMs);
|
|
690
894
|
const cacheIdentity = deps.microIndex === undefined
|
|
691
895
|
? undefined
|
|
692
896
|
: fileStateCacheIdentity(prepared.keptPaths, searchScope, fs);
|
|
@@ -695,7 +899,7 @@ async function assembleGroundedPack({ input, deps, plan, rings, searchScope, fs,
|
|
|
695
899
|
input,
|
|
696
900
|
deps,
|
|
697
901
|
plan,
|
|
698
|
-
rings,
|
|
902
|
+
rings: augmentedRings,
|
|
699
903
|
ordered: prepared.ordered,
|
|
700
904
|
cacheIdentity,
|
|
701
905
|
initialUsage: prepared.initialUsage,
|
|
@@ -716,7 +920,7 @@ async function assembleGroundedPack({ input, deps, plan, rings, searchScope, fs,
|
|
|
716
920
|
return await assemblePackFromReads({
|
|
717
921
|
input,
|
|
718
922
|
plan,
|
|
719
|
-
rings,
|
|
923
|
+
rings: augmentedRings,
|
|
720
924
|
prepared,
|
|
721
925
|
excerptReads,
|
|
722
926
|
cacheIdentity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grounded-qa-hybrid.d.ts","sourceRoot":"","sources":["../src/grounded-qa-hybrid.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,qCAAqC,CAAC;AAiB7C,OAAO,EAGL,KAAK,uBAAuB,EAO7B,MAAM,wCAAwC,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAQL,KAAK,2BAA2B,EACjC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"grounded-qa-hybrid.d.ts","sourceRoot":"","sources":["../src/grounded-qa-hybrid.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,qCAAqC,CAAC;AAiB7C,OAAO,EAGL,KAAK,uBAAuB,EAO7B,MAAM,wCAAwC,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAQL,KAAK,2BAA2B,EACjC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;AAoB9B,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,uBAAuB,EAAE,CAExF;AAID,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAU/E;AAID,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAChD,MAAM,MAAM,iBAAiB,GAAG,CAC9B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,2BAA2B,KAClC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9B,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAE9F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAGjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS;QACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;CACL;AAsMD,qBAAa,qBAAsB,SAAQ,KAAK;aACX,MAAM,EAAE,WAAW;gBAAnB,MAAM,EAAE,WAAW;CAIvD;AA0FD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,cAAc,CAwBhB;AA4eD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAS1F"}
|
|
@@ -20,6 +20,7 @@ import { buildConnectedScopes, defaultRetriever, mergeContextPackSummaries, sour
|
|
|
20
20
|
import { MAX_PROMPT_REFERENCES, buildSelectedScopeSourceLookup, createEmbeddingAdapter, openStoreForDeps, projectLocalKnowledgeCitation, scopeStateFailure, selectedCapsulesForScope, } from "./local-knowledge-grounded-qa.js";
|
|
21
21
|
import { GROUNDED_SYSTEM_PROMPT } from "./grounded-prompt.js";
|
|
22
22
|
import { normalizeGroundedAnswerPayload, } from "./grounded-answer.js";
|
|
23
|
+
import { assertUsableAssistantContent } from "./assistant-response.js";
|
|
23
24
|
import { buildCitations, buildQuery, buildSelectedScopeFrom, deriveScopeIdFrom, ensureNotCancelled, internalError, isValidGroundedPack, mappedGatewayError, persistGroundedExchange, promptSafeExcerptText, redactString, } from "./grounded-qa.js";
|
|
24
25
|
// ─── Canonical connector reader ───────────────────────────────────────────────
|
|
25
26
|
// Mirrors buildConnectedScopes: the plural `localKnowledgeScopes` list supersedes the legacy single
|
|
@@ -229,8 +230,9 @@ export function createHybridAnswerer(model, modelId, signal) {
|
|
|
229
230
|
stream: false,
|
|
230
231
|
}, signal);
|
|
231
232
|
const content = response.content.trim();
|
|
233
|
+
assertUsableAssistantContent(content, modelId);
|
|
232
234
|
return {
|
|
233
|
-
content
|
|
235
|
+
content,
|
|
234
236
|
usage: {
|
|
235
237
|
promptTokens: response.usage.promptTokens,
|
|
236
238
|
completionTokens: response.usage.completionTokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grounded-qa-multi-source.d.ts","sourceRoot":"","sources":["../src/grounded-qa-multi-source.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,WAAW,IAAI,kBAAkB,EACvC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAGvB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,gCAAgC,EAGtC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"grounded-qa-multi-source.d.ts","sourceRoot":"","sources":["../src/grounded-qa-multi-source.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,WAAW,IAAI,kBAAkB,EACvC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAGvB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,gCAAgC,EAGtC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;AA0B9B,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,kBAAkB,EAAE,CAE9E;AAOD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAY5F;AAgBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,MAAM,EAAE,CAUrF;AAgFD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,SAAS,gCAAgC,EAAE,GACrD,gCAAgC,CAsBlC;AAID,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAoBD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,WAAW,EAAE,EACpC,QAAQ,EAAE,QAAQ,GACjB,SAAS,kBAAkB,EAAE,CAE/B;AAmFD,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAI3F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAUvE;AAID,MAAM,MAAM,mBAAmB,GAAG,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,WAAW,EAAE,KACjC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,GAClB,mBAAmB,CAqBrB;AAyBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAG7B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvF;AAmKD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CA4CtF"}
|
|
@@ -17,6 +17,7 @@ import { ClarificationNeededError, clarificationUserMessage, retrieveConnectedCo
|
|
|
17
17
|
import { microIndexForGroundedScope } from "./grounded-context-index.js";
|
|
18
18
|
import { GROUNDED_SYSTEM_PROMPT } from "./grounded-prompt.js";
|
|
19
19
|
import { rememberGroundedTurn } from "./grounded-turn-registry.js";
|
|
20
|
+
import { assertUsableAssistantContent } from "./assistant-response.js";
|
|
20
21
|
import { normalizeGroundedAnswerPayload, } from "./grounded-answer.js";
|
|
21
22
|
import { badRequest, buildCitations, buildQuery, buildSelectedScopeFrom, deriveScopeIdFrom, ensureNotCancelled, evidenceLines, internalError, isValidGroundedPack, mappedGatewayError, mappedWorkspaceError, modelInputPromptByteLimit, packBudgetSummary, persistGroundedExchange, promptByteLength, redactString, uncertaintyLines, withPromptExcerptByteLimit, } from "./grounded-qa.js";
|
|
22
23
|
// ─── Canonical reader + label/budget helpers ──────────────────────────────────
|
|
@@ -245,8 +246,9 @@ export function createMultiSourceAnswerer(model, modelId, redactor, signal) {
|
|
|
245
246
|
stream: false,
|
|
246
247
|
}, signal);
|
|
247
248
|
const content = response.content.trim();
|
|
249
|
+
assertUsableAssistantContent(content, modelId);
|
|
248
250
|
return {
|
|
249
|
-
content
|
|
251
|
+
content,
|
|
250
252
|
usage: {
|
|
251
253
|
promptTokens: response.usage.promptTokens,
|
|
252
254
|
completionTokens: response.usage.completionTokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grounded-qa.d.ts","sourceRoot":"","sources":["../src/grounded-qa.ts"],"names":[],"mappings":"AAUA,OAAO,EAOL,KAAK,WAAW,IAAI,kBAAkB,EAEvC,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"grounded-qa.d.ts","sourceRoot":"","sources":["../src/grounded-qa.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ import { buildConnectedScopes, createMultiSourceAnswerer, defaultRetriever, runM
|
|
|
22
22
|
import { buildLocalKnowledgeScopes, runHybridGroundedAsk, } from "./grounded-qa-hybrid.js";
|
|
23
23
|
import { GROUNDED_SYSTEM_PROMPT } from "./grounded-prompt.js";
|
|
24
24
|
import { rememberGroundedTurn } from "./grounded-turn-registry.js";
|
|
25
|
+
import { assertUsableAssistantContent } from "./assistant-response.js";
|
|
25
26
|
// ─── Body parsing (mirrors store-handlers' bounded reader) ────────────────────
|
|
26
27
|
const MAX_BODY_BYTES = 128_000;
|
|
27
28
|
const MAX_CONTENT_CHARS = 16_000;
|
|
@@ -450,8 +451,9 @@ function createGatewayAnswerer(model, modelId, redactor, signal) {
|
|
|
450
451
|
stream: false,
|
|
451
452
|
}, signal);
|
|
452
453
|
const content = response.content.trim();
|
|
454
|
+
assertUsableAssistantContent(content, modelId);
|
|
453
455
|
return {
|
|
454
|
-
content
|
|
456
|
+
content,
|
|
455
457
|
usage: {
|
|
456
458
|
promptTokens: response.usage.promptTokens,
|
|
457
459
|
completionTokens: response.usage.completionTokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-knowledge-grounded-qa.d.ts","sourceRoot":"","sources":["../src/local-knowledge-grounded-qa.ts"],"names":[],"mappings":"AAGA,OAAO,EAQL,iBAAiB,EAEjB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EACV,IAAI,EACJ,uBAAuB,EAIvB,8BAA8B,EAE/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAGhB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAOL,KAAK,sBAAsB,EAG5B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"local-knowledge-grounded-qa.d.ts","sourceRoot":"","sources":["../src/local-knowledge-grounded-qa.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { CancelledError, GatewayError, findCapability, findConfiguredCapability,
|
|
|
5
5
|
import { redact } from "@oscharko-dev/keiko-security";
|
|
6
6
|
import { currentGatewayConfig, currentRedactionSecrets } from "./deps.js";
|
|
7
7
|
import { errorBody } from "./routes.js";
|
|
8
|
+
import { assertUsableAssistantContent } from "./assistant-response.js";
|
|
8
9
|
export const DEFAULT_REFERENCE_BUDGET = 16;
|
|
9
10
|
export const MAX_EXCERPT_CHARS = 900;
|
|
10
11
|
export const MAX_PROMPT_REFERENCES = 16;
|
|
@@ -357,7 +358,9 @@ class StoreBackedAnswerGenerator {
|
|
|
357
358
|
occurredAt,
|
|
358
359
|
});
|
|
359
360
|
}
|
|
360
|
-
|
|
361
|
+
const content = response.content.trim();
|
|
362
|
+
assertUsableAssistantContent(content, this.modelId);
|
|
363
|
+
return content;
|
|
361
364
|
}
|
|
362
365
|
}
|
|
363
366
|
function buildNoEvidenceAnswer(chat, assistantContent, scopeKind, scopeLabel, capsuleCount, sourceCount, reason, uncertainty = []) {
|
package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectorErrors.d.ts","sourceRoot":"","sources":["../../src/qualityIntelligence/connectorErrors.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,oBAAoB,GAC5B,gBAAgB,GAChB,uBAAuB,GACvB,sBAAsB,GACtB,+BAA+B,GAC/B,aAAa,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnF;AAYD,eAAO,MAAM,oBAAoB,GAAI,MAAM,oBAAoB,KAAG,oBAEhE,CAAC;
|
|
1
|
+
{"version":3,"file":"connectorErrors.d.ts","sourceRoot":"","sources":["../../src/qualityIntelligence/connectorErrors.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,oBAAoB,GAC5B,gBAAgB,GAChB,uBAAuB,GACvB,sBAAsB,GACtB,+BAA+B,GAC/B,aAAa,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnF;AAYD,eAAO,MAAM,oBAAoB,GAAI,MAAM,oBAAoB,KAAG,oBAEhE,CAAC;AAqBH,eAAO,MAAM,4BAA4B,GAAI,OAAO,MAAM,KAAG,OAM5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,GAC9C,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACzC,OAKF,CAAC"}
|
|
@@ -19,22 +19,25 @@ export const qiConnectorErrorBody = (code) => ({
|
|
|
19
19
|
/**
|
|
20
20
|
* Defence-in-depth scrub: detect substrings that would indicate the caller is trying to
|
|
21
21
|
* smuggle credentials or a header pair through a connector payload. Pure, no IO.
|
|
22
|
+
*
|
|
23
|
+
* Comparison is case-insensitive so that variants like "BEARER ", "API_KEY", or
|
|
24
|
+
* "AUTHORIZATION:" are detected regardless of casing (prior case-variant list was
|
|
25
|
+
* incomplete and bypassed by non-listed casings — Issue #281).
|
|
22
26
|
*/
|
|
23
27
|
const FORBIDDEN_SUBSTRINGS = [
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
28
|
+
"authorization:",
|
|
29
|
+
"bearer ",
|
|
30
|
+
"basic ",
|
|
27
31
|
"apikey",
|
|
28
|
-
"apiKey",
|
|
29
32
|
"api_key",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
33
|
+
"cookie:",
|
|
34
|
+
"set-cookie",
|
|
32
35
|
"x-api-key",
|
|
33
|
-
"X-Api-Key",
|
|
34
36
|
];
|
|
35
37
|
export const containsForbiddenSecretShape = (value) => {
|
|
38
|
+
const lower = value.toLowerCase();
|
|
36
39
|
for (const forbidden of FORBIDDEN_SUBSTRINGS) {
|
|
37
|
-
if (
|
|
40
|
+
if (lower.includes(forbidden))
|
|
38
41
|
return true;
|
|
39
42
|
}
|
|
40
43
|
return false;
|
package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editRoutes.d.ts","sourceRoot":"","sources":["../../src/qualityIntelligence/editRoutes.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"editRoutes.d.ts","sourceRoot":"","sources":["../../src/qualityIntelligence/editRoutes.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgQhD,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAmBtB;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,eAAe,EAMzD,CAAC"}
|
package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exportRoutes.d.ts","sourceRoot":"","sources":["../../src/qualityIntelligence/exportRoutes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exportRoutes.d.ts","sourceRoot":"","sources":["../../src/qualityIntelligence/exportRoutes.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyNhD,wBAAsB,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA2BjG;AA+HD,eAAO,MAAM,qBAAqB,EAAE,SAAS,eAAe,EAE3D,CAAC"}
|