@koda-sl/baker-bridge 0.125.0 → 0.126.0

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.
Files changed (38) hide show
  1. package/README.md +1 -0
  2. package/dist/hono/agent.test.js +6 -0
  3. package/dist/hono/agent.test.js.map +1 -1
  4. package/dist/hono/avatar-accent.d.ts +23 -5
  5. package/dist/hono/avatar-accent.d.ts.map +1 -1
  6. package/dist/hono/avatar-accent.js +54 -63
  7. package/dist/hono/avatar-accent.js.map +1 -1
  8. package/dist/hono/avatar-accent.test.js +64 -35
  9. package/dist/hono/avatar-accent.test.js.map +1 -1
  10. package/dist/hono/avatar-face-question.d.ts +23 -6
  11. package/dist/hono/avatar-face-question.d.ts.map +1 -1
  12. package/dist/hono/avatar-face-question.js +48 -59
  13. package/dist/hono/avatar-face-question.js.map +1 -1
  14. package/dist/hono/avatar-face-question.test.js +46 -101
  15. package/dist/hono/avatar-face-question.test.js.map +1 -1
  16. package/dist/hono/bridge-job.d.ts +4 -0
  17. package/dist/hono/bridge-job.d.ts.map +1 -1
  18. package/dist/hono/bridge-job.js +9 -6
  19. package/dist/hono/bridge-job.js.map +1 -1
  20. package/dist/hono/bridge-job.test.js +3 -0
  21. package/dist/hono/bridge-job.test.js.map +1 -1
  22. package/dist/hono/jev.d.ts +16 -0
  23. package/dist/hono/jev.d.ts.map +1 -0
  24. package/dist/hono/jev.js +60 -0
  25. package/dist/hono/jev.js.map +1 -0
  26. package/dist/hono/jev.test.d.ts +2 -0
  27. package/dist/hono/jev.test.d.ts.map +1 -0
  28. package/dist/hono/jev.test.js +15 -0
  29. package/dist/hono/jev.test.js.map +1 -0
  30. package/dist/hono/session-continuity.integration.test.js +5 -0
  31. package/dist/hono/session-continuity.integration.test.js.map +1 -1
  32. package/dist/review/digest.d.ts +8 -1
  33. package/dist/review/digest.d.ts.map +1 -1
  34. package/dist/review/digest.js +10 -43
  35. package/dist/review/digest.js.map +1 -1
  36. package/dist/review/digest.test.js +11 -6
  37. package/dist/review/digest.test.js.map +1 -1
  38. package/package.json +1 -1
@@ -11,78 +11,67 @@
11
11
  * before asking anyway — three times, in both casting modes. A rule that survives being
12
12
  * read needs a gate, and `routeToolUse` is the one path every question travels.
13
13
  *
14
- * Its own module so it can be tested as the pure function it is, without the bridge's
15
- * environment having to exist.
14
+ * Read by Jev, so a face asked for in any language or wording is caught, with no list of
15
+ * face words to fall out of date. Its own module, with the judge as a parameter, so it can be
16
+ * tested without the network or the bridge's environment.
16
17
  */
17
- /** A face, in the languages the product is used in. `typeface` must not match. */
18
- const FACE_WORD = /(?<!type)\b(faces?|rostros?|caras?|retratos?|portraits?)\b/i;
19
18
  /**
20
- * `face` the VERB, which describes what the avatar does rather than whose it is.
21
- * "Should Marta face the camera or look away?" is a direction, not a casting call.
19
+ * The two questions Jev answers about each question the agent asks, as the user would read
20
+ * it: is it a face pick, and is it about a page. A presenter section on a landing is a photo
21
+ * the user already has, which the casting picker cannot offer, and asked in one question it
22
+ * read as a face pick (0.81). Kept word for word in step with the scaffold's
23
+ * guard-avatar-face-question hook, the same rule one layer in. Re-run
24
+ * `scripts/avatar-guard-evals` after changing either.
22
25
  */
23
- const FACE_VERB = /\bfaces?\s+(?:the\s+|el\s+|la\s+|a\s+la\s+)?(?:camera|c[áa]mara|lens|viewer|audience|forward|away|left|right|towards?|hacia)\b/gi;
24
- /**
25
- * What makes a face an avatar's face rather than anything else.
26
- *
27
- * Two tiers, because they are not equally certain. `avatar` and `casting` name the
28
- * thing the picker exists for and nothing else. `presenter`/`presentadora` names a
29
- * ROLE, and a client's landing page has one of those too — a real person, in a photo
30
- * they already own, that `request_avatar_casting` cannot offer and cannot replace.
31
- */
32
- const CASTING_WORD = /\b(avatars?|casting)\b/i;
33
- const ROLE_WORD = /\b(presentador[ao]s?|presenters?)\b/i;
34
- /**
35
- * An asset the user ALREADY has, which is never a face waiting to be cast. Only
36
- * consulted for the weak `ROLE_WORD` tier: under an explicit avatar or casting
37
- * header the picker is still the answer however the question is worded.
38
- */
39
- const EXISTING_ASSET_WORD = /\b(landings?|p[áa]ginas?|pages?|secci[óo]n|seccion|sections?|hero|fotos?|photos?|im[áa]genes|imagen|images?)\b/i;
40
- /**
41
- * "Portrait" the ORIENTATION, which is not a face at all.
42
- *
43
- * An aspect ratio beside it, or a sibling that names a frame shape, says the question
44
- * is about the shape of the frame. Under an "Avatar" header that question read as a
45
- * face picker and was refused — and a wrong refusal costs the user a real question
46
- * this tool is exactly right for. `vertical` is in the list because it is the
47
- * commonest phrasing of it and the only one Spanish uses; without it the exemption
48
- * only ever fired on a question that happened to offer landscape as the alternative.
49
- */
50
- const ORIENTATION_WORD = /\b(\d{1,2}:\d{1,2}|landscape|square|horizontal|vertical|apaisado|cuadrado|aspect ratio|relaci[óo]n de aspecto)\b/i;
26
+ export const FACE_PICK_QUESTION = "`asked` is a question an AI assistant puts to a marketer while making a video ad with a generated presenter " +
27
+ "(an avatar), shown as text with options. Does it ask the marketer to pick which person the presenter is, by " +
28
+ "their face, age, hair or general appearance? Not when it asks about the video format or orientation, where " +
29
+ "the presenter looks or how they move, their accent, language, voice or clothes, or whether to use a presenter " +
30
+ "at all.";
31
+ export const ON_A_PAGE_QUESTION = "Does `asked` mention a website, a landing page or a section of a web page?";
32
+ /** At or above, a face pick; below, not about a page. Measured in `scripts/avatar-guard-evals`. */
33
+ export const FACE_PICK_HELD = 0.5;
34
+ export const ON_A_PAGE_HELD = 0.5;
51
35
  /** What the agent is told when this is refused — names both ways out. */
52
36
  export const FACE_QUESTION_MESSAGE = "Blocked: this tool renders text, so it cannot show a face — the user would be choosing between descriptions of " +
53
37
  "people they cannot see. If they should choose, invoke the request_avatar_casting TOOL instead — as a tool call with " +
54
38
  "avatarHandle, never as a shell command — it renders " +
55
39
  "the real portraits and blocks until they pick. If nobody is there to ask, create the avatar with --face auto, ask " +
56
40
  "nothing, and do not describe the resulting face as chosen.";
41
+ /** One question as the user would read it: header, question, then each option. Pure. */
42
+ export function questionText(question) {
43
+ if (typeof question !== "object" || question === null)
44
+ return "";
45
+ const { header, question: asked, options } = question;
46
+ const lines = [[header, asked].filter((part) => typeof part === "string" && part.trim()).join(" — ")];
47
+ for (const option of Array.isArray(options) ? options : []) {
48
+ if (typeof option !== "object" || option === null)
49
+ continue;
50
+ const { label, description } = option;
51
+ const parts = [label, description].filter((part) => typeof part === "string" && part.trim());
52
+ if (parts.length > 0)
53
+ lines.push(`- ${parts.join(": ")}`);
54
+ }
55
+ return lines.join("\n").trim();
56
+ }
57
57
  /**
58
- * Deliberately narrow, because a wrong refusal costs the user a real question: it fires
59
- * only when the text is about a face AND about an avatar or a casting. An avatar's
60
- * accent, its wardrobe, whether to use one at all — all still askable.
58
+ * Whether any question asks the user to pick a face. Each question is put to the judge as
59
+ * two Nouls, all in one request. A wrong refusal costs the user a real question, so a judge that
60
+ * cannot answer lets every question through.
61
61
  */
62
- export function asksForAvatarFace(input) {
62
+ export async function asksForAvatarFace(input, judge) {
63
63
  const questions = input?.questions;
64
64
  if (!Array.isArray(questions))
65
65
  return false;
66
- return questions.some((question) => {
67
- const q = question;
68
- const options = Array.isArray(q.options)
69
- ? q.options
70
- .map((option) => {
71
- const o = option;
72
- return `${String(o?.label ?? "")} ${String(o?.description ?? "")}`;
73
- })
74
- .join(" ")
75
- : "";
76
- // The verb is dropped before anything else looks for a face, so a question that
77
- // only ever used `face` that way has no face in it at all.
78
- const text = `${String(q.header ?? "")} ${String(q.question ?? "")} ${options}`.replace(FACE_VERB, " ");
79
- if (ORIENTATION_WORD.test(text) && !/(faces?|rostros?|caras?)\b/i.test(text))
80
- return false;
81
- if (!FACE_WORD.test(text))
82
- return false;
83
- if (CASTING_WORD.test(text))
84
- return true;
85
- return ROLE_WORD.test(text) && !EXISTING_ASSET_WORD.test(text);
86
- });
66
+ const asked = questions.map(questionText).filter(Boolean);
67
+ if (asked.length === 0)
68
+ return false;
69
+ const answers = await judge(asked.flatMap((text) => [
70
+ { instructions: { asked: text, question: FACE_PICK_QUESTION } },
71
+ { instructions: { asked: text, question: ON_A_PAGE_QUESTION } },
72
+ ]));
73
+ if (!answers)
74
+ return false;
75
+ return asked.some((_, i) => (answers[2 * i] ?? 0) >= FACE_PICK_HELD && (answers[2 * i + 1] ?? 1) < ON_A_PAGE_HELD);
87
76
  }
88
77
  //# sourceMappingURL=avatar-face-question.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-face-question.js","sourceRoot":"","sources":["../../src/hono/avatar-face-question.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,kFAAkF;AAClF,MAAM,SAAS,GAAG,6DAA6D,CAAC;AAChF;;;GAGG;AACH,MAAM,SAAS,GACb,kIAAkI,CAAC;AACrI;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,yBAAyB,CAAC;AAC/C,MAAM,SAAS,GAAG,sCAAsC,CAAC;AACzD;;;;GAIG;AACH,MAAM,mBAAmB,GACvB,iHAAiH,CAAC;AACpH;;;;;;;;;GASG;AACH,MAAM,gBAAgB,GACpB,mHAAmH,CAAC;AAEtH,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAChC,iHAAiH;IACjH,sHAAsH;IACtH,sDAAsD;IACtD,oHAAoH;IACpH,4DAA4D,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA0C;IAC1E,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjC,MAAM,CAAC,GAAG,QAAuE,CAAC;QAClF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACtC,CAAC,CAAC,CAAC,CAAC,OAAO;iBACN,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACd,MAAM,CAAC,GAAG,MAAoD,CAAC;gBAC/D,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;YACrE,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC;YACd,CAAC,CAAC,EAAE,CAAC;QACP,gFAAgF;QAChF,2DAA2D;QAC3D,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACxG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"avatar-face-question.js","sourceRoot":"","sources":["../../src/hono/avatar-face-question.ts"],"names":[],"mappings":"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"}
@@ -1,106 +1,51 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { asksForAvatarFace } from "./avatar-face-question.js";
2
+ import { asksForAvatarFace, FACE_PICK_QUESTION, ON_A_PAGE_QUESTION } from "./avatar-face-question.js";
3
+ /** A judge that holds a question to be a face pick when it mentions `marker`, and on a page when it mentions `page`. */
4
+ function judgeHolding(marker, page = "landing") {
5
+ return async (questions) => questions.map(({ instructions }) => {
6
+ const text = instructions.asked ?? "";
7
+ if (instructions.question === FACE_PICK_QUESTION)
8
+ return text.includes(marker) ? 0.9 : 0.05;
9
+ if (instructions.question === ON_A_PAGE_QUESTION)
10
+ return text.includes(page) ? 0.95 : 0.03;
11
+ return 0.5;
12
+ });
13
+ }
14
+ const PARAPHRASE = {
15
+ header: "Anuncio",
16
+ question: "¿Qué persona quieres que presente el anuncio?",
17
+ options: [{ label: "Mujer de 30 años, morena" }, { label: "Hombre de 45, canoso, con gafas" }],
18
+ };
3
19
  describe("asksForAvatarFace", () => {
4
- it("catches the question that shipped three times", () => {
5
- expect(asksForAvatarFace({
6
- questions: [
7
- {
8
- header: "Casting",
9
- question: "Elige el rostro para Clara, tu presentadora de placas solares",
10
- options: [{ label: "Opción 1", description: "Mujer joven, cabello castaño oscuro" }],
11
- },
12
- ],
13
- })).toBe(true);
14
- });
15
- it("catches it with no options at all, which is how one of them shipped", () => {
16
- expect(asksForAvatarFace({ questions: [{ header: "Avatar casting", question: "Elige el rostro de Emma" }] })).toBe(true);
17
- });
18
- it("catches the English shape", () => {
19
- expect(asksForAvatarFace({ questions: [{ header: "Avatar casting", question: "Pick a face for Marta" }] })).toBe(true);
20
- });
21
- it("catches it when only the options give it away", () => {
22
- expect(asksForAvatarFace({
23
- questions: [
24
- { header: "Casting", question: "¿Cuál prefieres?", options: [{ label: "Rostro 1" }, { label: "Rostro 2" }] },
25
- ],
26
- })).toBe(true);
27
- });
28
- it("leaves every other question about an avatar alone — only the face has its own picker", () => {
29
- expect(asksForAvatarFace({
30
- questions: [{ header: "Avatar", question: "¿Clara habla con acento de España o de México?" }],
31
- })).toBe(false);
32
- });
33
- it("leaves ordinary questions alone", () => {
34
- expect(asksForAvatarFace({ questions: [{ header: "Budget", question: "¿Cuánto invertimos al día?" }] })).toBe(false);
35
- });
36
- it("does not fire on a face that is not a person's", () => {
37
- expect(asksForAvatarFace({ questions: [{ header: "Brand", question: "Which typeface should the card use?" }] })).toBe(false);
38
- });
39
- it("treats a malformed call as not asking, rather than denying a turn over it", () => {
40
- expect(asksForAvatarFace({})).toBe(false);
41
- expect(asksForAvatarFace({ questions: "nope" })).toBe(false);
42
- });
43
- });
44
- describe("portrait the orientation, not portrait the face", () => {
45
- it("lets an ordinary format question through", () => {
46
- // The matcher joins headers, questions and option text, so a question about aspect
47
- // ratio under an "Avatar" header read as a face picker and was refused — costing the
48
- // user a real question the tool is exactly right for.
49
- const asked = asksForAvatarFace({
50
- questions: [
51
- {
52
- header: "Avatar",
53
- question: "Which format should the presenter ad use?",
54
- options: [{ label: "Portrait 9:16" }, { label: "Landscape 16:9" }],
55
- },
56
- ],
57
- });
58
- expect(asked).toBe(false);
59
- });
60
- it("still refuses a real face picker written with the word portrait", () => {
61
- const asked = asksForAvatarFace({
62
- questions: [
63
- {
64
- header: "Avatar",
65
- question: "Which portrait should we use for the presenter?",
66
- options: [{ label: "Warm, mid-thirties" }, { label: "Older, greying" }],
67
- },
68
- ],
69
- });
70
- expect(asked).toBe(true);
71
- });
72
- });
73
- describe("the refusals that would cost a real question", () => {
74
- it("lets a vertical-format question through", () => {
75
- // The orientation exemption only knew `landscape`/`square`/a ratio, so the
76
- // commonest phrasing — and the only one Spanish uses — still read as a face picker.
77
- expect(asksForAvatarFace({
78
- questions: [
79
- {
80
- header: "Avatar video",
81
- question: "¿Qué formato usamos?",
82
- options: [{ label: "Vertical" }, { label: "Retrato" }],
83
- },
84
- ],
85
- })).toBe(false);
86
- });
87
- it("lets a question about an existing photo on a page through", () => {
88
- // A presenter section on a landing is a photo the user already has; the avatar
89
- // picker cannot answer it, so refusing leaves them nowhere.
90
- expect(asksForAvatarFace({
91
- questions: [
92
- {
93
- header: "Presenter",
94
- question: "Which portrait photo should the presenter section of the landing use?",
95
- options: [{ label: "Photo A" }, { label: "Photo B" }],
96
- },
97
- ],
98
- })).toBe(false);
99
- });
100
- it("does not fire on `face` the verb", () => {
101
- expect(asksForAvatarFace({
102
- questions: [{ header: "Avatar", question: "Should Marta face the camera or look away?" }],
103
- })).toBe(false);
20
+ it("refuses a face pick the judge reads in any wording, with no face word in it", async () => {
21
+ expect(await asksForAvatarFace({ questions: [PARAPHRASE] }, judgeHolding("canoso"))).toBe(true);
22
+ });
23
+ it("lets a question through when the judge holds it to be about something else", async () => {
24
+ const accent = { header: "Avatar", question: "¿Clara habla con acento de España o de México?" };
25
+ expect(await asksForAvatarFace({ questions: [accent] }, judgeHolding("canoso"))).toBe(false);
26
+ });
27
+ it("refuses when any one of several questions is a face pick", async () => {
28
+ const budget = { header: "Budget", question: "¿Cuánto invertimos al día?" };
29
+ expect(await asksForAvatarFace({ questions: [budget, PARAPHRASE] }, judgeHolding("canoso"))).toBe(true);
30
+ });
31
+ it("lets a question about a picture on a page through, which the casting picker cannot answer", async () => {
32
+ // A presenter section on a landing is a photo the user already has; refusing it
33
+ // leaves them nowhere.
34
+ const onPage = {
35
+ header: "Presenter",
36
+ question: "Which portrait photo should the presenter section of the landing use?",
37
+ options: [{ label: "Photo A, canoso" }, { label: "Photo B" }],
38
+ };
39
+ expect(await asksForAvatarFace({ questions: [onPage] }, judgeHolding("canoso"))).toBe(false);
40
+ });
41
+ it("lets every question through when the judge cannot answer, rather than refuse on a guess", async () => {
42
+ expect(await asksForAvatarFace({ questions: [PARAPHRASE] }, async () => null)).toBe(false);
43
+ });
44
+ it("treats a malformed call as not asking, without asking the judge", async () => {
45
+ const unreachable = () => Promise.reject(new Error("the judge should not be asked"));
46
+ expect(await asksForAvatarFace({}, unreachable)).toBe(false);
47
+ expect(await asksForAvatarFace({ questions: "nope" }, unreachable)).toBe(false);
48
+ expect(await asksForAvatarFace({ questions: [{}] }, unreachable)).toBe(false);
104
49
  });
105
50
  });
106
51
  //# sourceMappingURL=avatar-face-question.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-face-question.test.js","sourceRoot":"","sources":["../../src/hono/avatar-face-question.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avatar-face-question.test.js","sourceRoot":"","sources":["../../src/hono/avatar-face-question.test.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { type ConnectionInputRequest, type ConnectionInputResolution } from "./c
7
7
  import { type ContextUsage } from "./context-usage.ts";
8
8
  import { type CredentialInputRequest, type CredentialInputResult } from "./credential-input.ts";
9
9
  import { type FlowInputRequestInput, type FlowInputResolution, readRawFlowTree } from "./flow-input.ts";
10
+ import { type Judge } from "./jev.ts";
10
11
  import { type McpServersProvider } from "./mcp-servers.ts";
11
12
  import { type DirtySessionReason } from "./session-continuity.ts";
12
13
  import type { ClaudeSessionBoundary, LoadedSessionBoundary } from "./session-store.ts";
@@ -269,6 +270,8 @@ type BridgeJobExecutorDependencies = {
269
270
  settleWorkspace?: () => Promise<void>;
270
271
  /** Reads a Form's flow file for `request_flow_input`'s pre-flight check; injected by tests. */
271
272
  readFlowTree?: (flowSlug: string) => ReturnType<typeof readRawFlowTree>;
273
+ /** The decision model the guards read the user's and the agent's words with (see `jev.ts`); injected by tests. */
274
+ judge?: Judge;
272
275
  };
273
276
  export declare const REVIEW_DISALLOWED_TOOLS: string[];
274
277
  /**
@@ -352,6 +355,7 @@ export declare class BridgeJobExecutor {
352
355
  private readonly stalledCliExitMs;
353
356
  private readonly readFlowTree;
354
357
  private readonly settleWorkspace;
358
+ private readonly judge;
355
359
  constructor(dependencies: BridgeJobExecutorDependencies);
356
360
  execute(job: BridgeJob, controls: BridgeJobControls): Promise<BridgeJobOutcome>;
357
361
  private loadTrustedBoundary;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-job.d.ts","sourceRoot":"","sources":["../../src/hono/bridge-job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-job.d.ts","sourceRoot":"","sources":["../../src/hono/bridge-job.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ import { CREDENTIAL_INPUT_TOOL_NAME, normalizeCredentialInputToolInput, } from "
17
17
  import { credentialScrubHooks } from "./credential-scrub.js";
18
18
  import { FLOW_INPUT_TOOL_NAME, nodeTargetRefusals, normalizeFlowInputToolInput, readRawFlowTree, sanitizeFlowRequests, } from "./flow-input.js";
19
19
  import { writesInventedLogo } from "./invented-logo.js";
20
+ import { jevJudge } from "./jev.js";
20
21
  import { installedLatitudeHook, latitudeTelemetryFor } from "./latitude-telemetry.js";
21
22
  import { composioScopesToInvalidate, failedCustomServers, reportMcpInvalid, serversConnectedWithNoTools, } from "./mcp-servers.js";
22
23
  import { agentModelOverride, autoCompactWindowForModel, betasForModel, contextWindowForModel, } from "./model-capabilities.js";
@@ -292,10 +293,10 @@ const UNATTENDED_PROMPT_MESSAGE = "This run is unattended — it was started by
292
293
  * asked for in a text prompt renders a question nobody can answer. In each case the user
293
294
  * is left waiting for something that was never going to come.
294
295
  */
295
- function refuseMalformedCall(toolName, input, userText, priorUserText) {
296
+ async function refuseMalformedCall(toolName, input, judge, userText, priorUserText) {
296
297
  if (toolName === "Bash") {
297
298
  const command = typeof input?.command === "string" ? input.command : undefined;
298
- return toolRunAsCommand(command) ?? accentContradictsUser(command, userText, priorUserText);
299
+ return toolRunAsCommand(command) ?? (await accentContradictsUser(command, userText, priorUserText, judge));
299
300
  }
300
301
  if (toolName === "Agent" || toolName === "Task") {
301
302
  return blockingToolDelegated(typeof input?.prompt === "string" ? input.prompt : undefined);
@@ -303,7 +304,7 @@ function refuseMalformedCall(toolName, input, userText, priorUserText) {
303
304
  if (toolName === "Write" || toolName === "Edit" || toolName === "MultiEdit") {
304
305
  return writesInventedLogo(typeof input?.file_path === "string" ? input.file_path : undefined);
305
306
  }
306
- if (toolName === "AskUserQuestion" && asksForAvatarFace(input)) {
307
+ if (toolName === "AskUserQuestion" && (await asksForAvatarFace(input, judge))) {
307
308
  return FACE_QUESTION_MESSAGE;
308
309
  }
309
310
  return null;
@@ -1022,6 +1023,7 @@ export class BridgeJobExecutor {
1022
1023
  stalledCliExitMs;
1023
1024
  readFlowTree;
1024
1025
  settleWorkspace;
1026
+ judge;
1025
1027
  constructor(dependencies) {
1026
1028
  this.sdk = dependencies.sdk;
1027
1029
  this.relay = dependencies.relay;
@@ -1044,6 +1046,7 @@ export class BridgeJobExecutor {
1044
1046
  this.settleWorkspace = dependencies.settleWorkspace ?? (() => settleWorkspaceAfterTasks());
1045
1047
  this.readFlowTree =
1046
1048
  dependencies.readFlowTree ?? ((flowSlug) => readRawFlowTree(bridgeRuntimeFiles.flowsDir(), flowSlug));
1049
+ this.judge = dependencies.judge ?? jevJudge(process.env.OPENROUTER_API_KEY);
1047
1050
  }
1048
1051
  async execute(job, controls) {
1049
1052
  const state = createBridgeJobState();
@@ -1429,7 +1432,7 @@ export class BridgeJobExecutor {
1429
1432
  * handlers — except on an unattended turn, where there is nobody to answer and
1430
1433
  * every one of them is refused up front (see `UNATTENDED_PROMPT_MESSAGE`).
1431
1434
  */
1432
- routeToolUse(job, controls, toolName, input, opts) {
1435
+ async routeToolUse(job, controls, toolName, input, opts) {
1433
1436
  const refusedShell = reviewShellRefusal(job, toolName, input);
1434
1437
  if (refusedShell) {
1435
1438
  return Promise.resolve({ behavior: "deny", message: refusedShell });
@@ -1445,9 +1448,9 @@ export class BridgeJobExecutor {
1445
1448
  });
1446
1449
  return Promise.resolve({ behavior: "deny", message: UNATTENDED_PROMPT_MESSAGE });
1447
1450
  }
1448
- const malformed = refuseMalformedCall(toolName, input, job.prompt, userTurnsBefore(job));
1451
+ const malformed = await refuseMalformedCall(toolName, input, this.judge, job.prompt, userTurnsBefore(job));
1449
1452
  if (malformed)
1450
- return Promise.resolve({ behavior: "deny", message: malformed });
1453
+ return { behavior: "deny", message: malformed };
1451
1454
  // Cast what is owed FIRST, whatever comes next — including another create. Checked
1452
1455
  // the other way round, a second create (the agent retrying after a rejected flag,
1453
1456
  // which is what happens in practice) would overwrite the handle and the first