@konneal/engine 0.2.63 → 0.2.65
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/{ask-R442D7HU.js → ask-B77IV2Y2.js} +2 -2
- package/dist/{certificates-IQU7GQCJ.js → certificates-DNRUOYRF.js} +1 -1
- package/dist/{chunk-U2CNCNMG.js → chunk-APUINV57.js} +5 -4
- package/dist/{chunk-D6CMIRMB.js → chunk-VGVTIPFW.js} +3 -0
- package/dist/worker_public/src/index.js +3 -3
- package/package.json +1 -1
- package/workers/worker_public/src/ask.ts +3 -2
- package/workers/worker_public/src/certificates.ts +4 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
handleAsk
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-APUINV57.js";
|
|
4
4
|
import "./chunk-TPV5GPY2.js";
|
|
5
5
|
import "./chunk-SPKPH54J.js";
|
|
6
6
|
import "./chunk-A3QHHUN5.js";
|
|
7
7
|
import "./chunk-LVZTWUVJ.js";
|
|
8
8
|
import "./chunk-2PCUAJJO.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-VGVTIPFW.js";
|
|
10
10
|
import "./chunk-3FYJM7LH.js";
|
|
11
11
|
export {
|
|
12
12
|
handleAsk
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
certificateLinks,
|
|
69
69
|
registerNote,
|
|
70
70
|
searchRegister
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-VGVTIPFW.js";
|
|
72
72
|
import {
|
|
73
73
|
P
|
|
74
74
|
} from "./chunk-3FYJM7LH.js";
|
|
@@ -1892,7 +1892,7 @@ async function runTool(db, call) {
|
|
|
1892
1892
|
if (call.name !== "register_search") return null;
|
|
1893
1893
|
const query = String(call.args?.query ?? "").trim().slice(0, 160);
|
|
1894
1894
|
if (!query) return null;
|
|
1895
|
-
const { searchRegister: searchRegister2, registerNote: registerNote2 } = await import("./certificates-
|
|
1895
|
+
const { searchRegister: searchRegister2, registerNote: registerNote2 } = await import("./certificates-DNRUOYRF.js");
|
|
1896
1896
|
const reg = await searchRegister2(db, query, true);
|
|
1897
1897
|
const output = reg?.rows?.length ? registerNote2(reg.rows) : `No certificate was found for "${query}" in the certificates database (the register snapshot). State this as the search's result, with the searched string visible.`;
|
|
1898
1898
|
return { name: call.name, query, output };
|
|
@@ -2303,8 +2303,9 @@ async function handleAsk(env, ctx, req, tier, key) {
|
|
|
2303
2303
|
const graphDocNumbers = await graphExpand(env, understanding);
|
|
2304
2304
|
const eNote = await editionNote(env, understanding);
|
|
2305
2305
|
let register = await searchRegister(env.DB, q.query);
|
|
2306
|
-
|
|
2307
|
-
|
|
2306
|
+
const bridgeImage = userImage ?? storedImage;
|
|
2307
|
+
if (bridgeImage && /certificate|certified|certification/i.test(q.query)) {
|
|
2308
|
+
const np = await extractNameplate(env.AI, MODELS.member, bridgeImage);
|
|
2308
2309
|
if (np?.manufacturer) {
|
|
2309
2310
|
const bridged = await searchRegister(env.DB, nameplateRegisterQuery(np, q.query));
|
|
2310
2311
|
if (bridged?.rows?.length) {
|
|
@@ -95,6 +95,9 @@ async function searchRegister(db, query, force = false) {
|
|
|
95
95
|
const built = buildRegisterQuery(tokens);
|
|
96
96
|
let { sql, params } = built;
|
|
97
97
|
const family = queryFamily(query);
|
|
98
|
+
if (!family) {
|
|
99
|
+
sql = sql.replace("family = ?FAMILY AND ", "");
|
|
100
|
+
}
|
|
98
101
|
if (family) {
|
|
99
102
|
sql = sql.replace(/\?(\d+)/g, (_, n) => `?${Number(n) + 1}`);
|
|
100
103
|
sql = sql.replace("?FAMILY", "?1");
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
modelGroundingBlock,
|
|
7
7
|
scoreFaithfulness,
|
|
8
8
|
scoreJudge
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-APUINV57.js";
|
|
10
10
|
import {
|
|
11
11
|
handleSearch
|
|
12
12
|
} from "../../chunk-FLNX4O7C.js";
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
sha256Hex,
|
|
64
64
|
today
|
|
65
65
|
} from "../../chunk-2PCUAJJO.js";
|
|
66
|
-
import "../../chunk-
|
|
66
|
+
import "../../chunk-VGVTIPFW.js";
|
|
67
67
|
import {
|
|
68
68
|
P,
|
|
69
69
|
setProfile
|
|
@@ -959,7 +959,7 @@ async function handleMcp(env, ctx, req, tier, key) {
|
|
|
959
959
|
// stream:false forces the JSON lane (anon defaults to SSE)
|
|
960
960
|
body: JSON.stringify({ ...args, stream: false })
|
|
961
961
|
});
|
|
962
|
-
const res = name === "ask" ? await (await import("../../ask-
|
|
962
|
+
const res = name === "ask" ? await (await import("../../ask-B77IV2Y2.js")).handleAsk(env, ctx, inner, tier, key) : await (await import("../../search-PBOODCMQ.js")).handleSearch(env, ctx, inner, tier, key);
|
|
963
963
|
return res.json().catch(() => ({ error: { message: "tool transport failed", status: res.status } }));
|
|
964
964
|
});
|
|
965
965
|
if (out.ok && "accepted" in out) return new Response(null, { status: 202 });
|
package/package.json
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"playwright": "^1.62.1",
|
|
28
28
|
"yaml": "^2.9.1"
|
|
29
29
|
},
|
|
30
|
-
"version": "0.2.
|
|
30
|
+
"version": "0.2.65",
|
|
31
31
|
"description": "The Konneal engine: the publisher-agnostic build pipeline and API plane for standards intelligence (retrieval, answer contract, verdicts, evaluation).",
|
|
32
32
|
"license": "BSD-3-Clause",
|
|
33
33
|
"type": "module",
|
|
@@ -628,8 +628,9 @@ let convEntities: Array<{ entity: string; kind: string }> = [];
|
|
|
628
628
|
// Fires whenever a photo is present: the text lane's tokens are the
|
|
629
629
|
// question's stopwords ("this", "have") and can match an unrelated
|
|
630
630
|
// holder, and the photograph's own reading is authoritative over them.
|
|
631
|
-
|
|
632
|
-
|
|
631
|
+
const bridgeImage = userImage ?? storedImage;
|
|
632
|
+
if (bridgeImage && /certificate|certified|certification/i.test(q.query)) {
|
|
633
|
+
const np = await extractNameplate((env as any).AI, MODELS.member, bridgeImage);
|
|
633
634
|
if (np?.manufacturer) {
|
|
634
635
|
const bridged = await searchRegister(env.DB, nameplateRegisterQuery(np, q.query));
|
|
635
636
|
if (bridged?.rows?.length) {
|
|
@@ -98,6 +98,10 @@ export async function searchRegister(db: any, query: string, force = false): Pro
|
|
|
98
98
|
const built = buildRegisterQuery(tokens);
|
|
99
99
|
let { sql, params } = built;
|
|
100
100
|
const family = queryFamily(query);
|
|
101
|
+
if (!family) {
|
|
102
|
+
// a tool query that names no family must not carry the placeholder
|
|
103
|
+
sql = sql.replace("family = ?FAMILY AND ", "");
|
|
104
|
+
}
|
|
101
105
|
if (family) {
|
|
102
106
|
// the register's family column is the DIGITS ONLY ("60", "105") —
|
|
103
107
|
// the letter+padding form ("R60") never matched a single row
|