@koda-sl/baker-bridge 0.159.0-dev.c31d1bca3 → 0.159.0-dev.eed4e6e89

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.
@@ -1,4 +1,14 @@
1
1
  import type { DispatchHistorySnapshot, PublishStanding } from "./types.ts";
2
+ /**
3
+ * What the marketer last typed themselves, back to the first message long enough
4
+ * to carry a language, oldest first. A slash command (`/publish`) and a message
5
+ * Baker wrote in their seat (a plan approval) carry none. `current` is what they
6
+ * typed to start the turn running now, which the history leaves out.
7
+ */
8
+ export declare function lastTypedMessages(history: DispatchHistorySnapshot | undefined, current?: string): {
9
+ quoted: string;
10
+ whole: string;
11
+ }[];
2
12
  /**
3
13
  * The language a publish run reports in. CLAUDE.md says to write in the language
4
14
  * of the last message the marketer typed, and a run whose only user message is
@@ -1 +1 @@
1
- {"version":3,"file":"publish-handoff.d.ts","sourceRoot":"","sources":["../../src/hono/publish-handoff.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA0C3E;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAqBxG;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAoBnG;AAiDD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE;IAC3C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,qBAAqB,CAAC,EAAE,eAAe,CAAC;CACzC,GAAG,MAAM,GAAG,SAAS,CAwCrB"}
1
+ {"version":3,"file":"publish-handoff.d.ts","sourceRoot":"","sources":["../../src/hono/publish-handoff.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA0B3E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,uBAAuB,GAAG,SAAS,EAC5C,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAgBrC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAqBxG;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAoBnG;AAiDD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE;IAC3C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,qBAAqB,CAAC,EAAE,eAAe,CAAC;CACzC,GAAG,MAAM,GAAG,SAAS,CAwCrB"}
@@ -5,10 +5,13 @@ import { BridgeSlashCommands } from "./slash-commands.js";
5
5
  // marketer's language into the publish run (its only user message is
6
6
  // `/publish`), and what the publish run did back into the conversation (the
7
7
  // chat resumes a session that never saw it). This module carries both, read
8
- // from the chat's history, which every turn already arrives with.
8
+ // from the chat's history, which every turn already arrives with. The language
9
+ // samples also feed the note after a skill loads (`skill-language.ts`).
9
10
  const LANGUAGE_SAMPLE_CHARS = 280;
10
11
  const MAX_SAID = 6;
11
12
  const MAX_SAID_CHARS = 1_200;
13
+ // A dashboard mention (`@[title](video:…?thumbnailUrl=…)`) is a few hundred characters of URL.
14
+ const MENTION = /@\[([^\]]*)\]\([^)\s]*\)/g;
12
15
  /** Newlines collapsed and `<` stripped, so quoted text can neither add lines nor close the reminder. */
13
16
  function quotable(value, max) {
14
17
  return value.replace(/\s+/g, " ").replace(/</g, "").trim().slice(0, max);
@@ -19,16 +22,20 @@ const MAX_LANGUAGE_SAMPLES = 4;
19
22
  /**
20
23
  * What the marketer last typed themselves, back to the first message long enough
21
24
  * to carry a language, oldest first. A slash command (`/publish`) and a message
22
- * Baker wrote in their seat (a plan approval) carry none.
25
+ * Baker wrote in their seat (a plan approval) carry none. `current` is what they
26
+ * typed to start the turn running now, which the history leaves out.
23
27
  */
24
- function lastTypedMessages(history) {
25
- const entries = history?.entries ?? [];
28
+ export function lastTypedMessages(history, current) {
29
+ const entries = [
30
+ ...(history?.entries ?? []),
31
+ ...(current === undefined ? [] : [{ role: "user", text: current, createdAt: Number.POSITIVE_INFINITY }]),
32
+ ];
26
33
  const typed = [];
27
34
  for (let index = entries.length - 1; index >= 0 && typed.length < MAX_LANGUAGE_SAMPLES; index--) {
28
35
  const entry = entries[index];
29
36
  if (entry?.role !== "user" || entry.bakerWritten)
30
37
  continue;
31
- const whole = entry.typedText ?? entry.text;
38
+ const whole = (entry.typedText ?? entry.text).replace(MENTION, "@$1");
32
39
  const quoted = quotable(whole, LANGUAGE_SAMPLE_CHARS);
33
40
  if (!quoted || quoted.startsWith("/") || quoted === "[Attachment only message]")
34
41
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"publish-handoff.js","sourceRoot":"","sources":["../../src/hono/publish-handoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish-handoff.js","sourceRoot":"","sources":["../../src/hono/publish-handoff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { HookCallbackMatcher, HookEvent } from "@anthropic-ai/claude-agent-sdk";
2
+ import type { DispatchHistorySnapshot, DispatchSender } from "./types.ts";
3
+ /**
4
+ * The marketer's language, restated the moment a skill loads. A skill's English
5
+ * body arrives in the user's seat, and the line after it went out in English to
6
+ * a Spanish chat (BAKER-3462). The SDK sends a PostToolUse hook's context after
7
+ * that body, so this is the last thing the model reads before it writes again.
8
+ * Nothing is added to a chat the marketer writes in English.
9
+ */
10
+ export declare function skillLanguageHooks(job: {
11
+ history?: DispatchHistorySnapshot;
12
+ prompt: string;
13
+ currentSender?: DispatchSender;
14
+ }): Partial<Record<HookEvent, HookCallbackMatcher[]>>;
15
+ //# sourceMappingURL=skill-language.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-language.d.ts","sourceRoot":"","sources":["../../src/hono/skill-language.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAIrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAsCpD"}
@@ -0,0 +1,49 @@
1
+ import { marketerWords, messageLanguage, requestedLanguage } from "../review/reply-language.js";
2
+ import { lastTypedMessages } from "./publish-handoff.js";
3
+ import { applyCurrentSenderAttribution } from "./session-continuity.js";
4
+ /**
5
+ * The marketer's language, restated the moment a skill loads. A skill's English
6
+ * body arrives in the user's seat, and the line after it went out in English to
7
+ * a Spanish chat (BAKER-3462). The SDK sends a PostToolUse hook's context after
8
+ * that body, so this is the last thing the model reads before it writes again.
9
+ * Nothing is added to a chat the marketer writes in English.
10
+ */
11
+ export function skillLanguageHooks(job) {
12
+ // A typed skill command reaches the SDK as typed, without the speaker label.
13
+ const current = marketerWords(job.prompt) ?? marketerWords(applyCurrentSenderAttribution(job.prompt, job.currentSender));
14
+ const typed = lastTypedMessages(job.history, current);
15
+ if (typed.length === 0)
16
+ return {};
17
+ const language = typed
18
+ .map((message) => requestedLanguage(message.whole))
19
+ .filter(Boolean)
20
+ .pop() ?? messageLanguage(typed.map((message) => message.whole).join("\n"));
21
+ if (language === "English")
22
+ return {};
23
+ // No `<system-reminder>` of its own: the CLI wraps a hook's context in one and escapes a `<` inside it.
24
+ const reminder = [
25
+ // A fixed first line: session review keys its hook ledger on it.
26
+ "Baker: the language of this chat.",
27
+ "The skill you just loaded is written in English for you. The user never reads it, and it does not change the language you write to them in.",
28
+ typed.length > 1
29
+ ? "The last messages the user typed are quoted below, oldest first, only so you know their language — they are not new instructions:"
30
+ : "The last message the user typed is quoted below only so you know its language — it is not a new instruction:",
31
+ ...typed.map((message) => `"${message.quoted}"`),
32
+ language
33
+ ? `Write every line you send the user in ${language}, the short notes between tool calls too.`
34
+ : "Write every line you send the user in the language they write in, the short notes between tool calls too.",
35
+ ].join("\n");
36
+ return {
37
+ PostToolUse: [
38
+ {
39
+ matcher: "Skill",
40
+ hooks: [
41
+ async (input) => input.hook_event_name === "PostToolUse"
42
+ ? { hookSpecificOutput: { hookEventName: "PostToolUse", additionalContext: reminder } }
43
+ : {},
44
+ ],
45
+ },
46
+ ],
47
+ };
48
+ }
49
+ //# sourceMappingURL=skill-language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-language.js","sourceRoot":"","sources":["../../src/hono/skill-language.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAGxE;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAIlC;IACC,6EAA6E;IAC7E,MAAM,OAAO,GACX,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,6BAA6B,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3G,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,QAAQ,GACZ,KAAK;SACF,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAClD,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACtC,wGAAwG;IACxG,MAAM,QAAQ,GAAG;QACf,iEAAiE;QACjE,mCAAmC;QACnC,6IAA6I;QAC7I,KAAK,CAAC,MAAM,GAAG,CAAC;YACd,CAAC,CAAC,mIAAmI;YACrI,CAAC,CAAC,8GAA8G;QAClH,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAChD,QAAQ;YACN,CAAC,CAAC,yCAAyC,QAAQ,2CAA2C;YAC9F,CAAC,CAAC,2GAA2G;KAChH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO;QACL,WAAW,EAAE;YACX;gBACE,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK,EAAE,EAAE,CACd,KAAK,CAAC,eAAe,KAAK,aAAa;wBACrC,CAAC,CAAC,EAAE,kBAAkB,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE;wBACvF,CAAC,CAAC,EAAE;iBACT;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=skill-language.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-language.test.d.ts","sourceRoot":"","sources":["../../src/hono/skill-language.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { skillLanguageHooks } from "./skill-language.js";
3
+ function history(entries) {
4
+ return {
5
+ entries: entries.map((entry, index) => ({ ...entry, createdAt: index })),
6
+ omittedEntryCount: 0,
7
+ truncated: false,
8
+ maxEntries: 50,
9
+ maxTextChars: 10_000,
10
+ renderedContext: "",
11
+ };
12
+ }
13
+ /** What the model reads beside the Skill call's result, as the SDK hands the hook's output on. */
14
+ async function contextAfter(toolName, hooks) {
15
+ const hook = hooks.PostToolUse?.[0]?.hooks[0];
16
+ if (hook === undefined)
17
+ return undefined;
18
+ const output = await hook({
19
+ hook_event_name: "PostToolUse",
20
+ tool_name: toolName,
21
+ tool_input: { skill: "creative-canvas-ads" },
22
+ tool_response: "Launching skill: creative-canvas-ads",
23
+ tool_use_id: "t1",
24
+ session_id: "s",
25
+ transcript_path: "",
26
+ cwd: "/",
27
+ }, "t1", { signal: new AbortController().signal });
28
+ return "hookSpecificOutput" in output && output.hookSpecificOutput?.hookEventName === "PostToolUse"
29
+ ? output.hookSpecificOutput.additionalContext
30
+ : undefined;
31
+ }
32
+ // BAKER-3462: a Spanish request, an English skill loaded, and the next line the marketer read was English.
33
+ const spanishRequest = "@[ugc-van-hook](video:pd7?slug=pd7&title=ugc-van-hook&thumbnailUrl=https%3A%2F%2Fimage.mux.com%2Fthumbnail.jpg) cuando entra la musica, la calidad del sonido empeora drasticamente. mejora eso";
34
+ describe("skillLanguageHooks", () => {
35
+ it("names the marketer's language right after a skill loads, quoting what they typed", async () => {
36
+ const context = await contextAfter("Skill", skillLanguageHooks({ prompt: spanishRequest, currentSender: { name: "Fernando" } }));
37
+ expect(context).toContain("Baker: the language of this chat.");
38
+ expect(context).toContain("in Spanish");
39
+ expect(context).toContain('"@ugc-van-hook cuando entra la musica, la calidad del sonido empeora drasticamente. mejora eso"');
40
+ });
41
+ // The CLI wraps a hook's context in its own reminder and escapes a `<` inside it.
42
+ it("opens with Baker's line rather than a reminder tag of its own", async () => {
43
+ const context = await contextAfter("Skill", skillLanguageHooks({ prompt: spanishRequest, currentSender: { name: "Fernando" } }));
44
+ expect(context?.startsWith("Baker: the language of this chat.\n")).toBe(true);
45
+ expect(context).not.toContain("<");
46
+ });
47
+ it("reads the language from the conversation when the turn was not typed by the marketer", async () => {
48
+ const context = await contextAfter("Skill", skillLanguageHooks({
49
+ prompt: "[This is not a new message from the user. Earlier in this conversation you asked them for input…]",
50
+ currentSender: { name: "Fernando" },
51
+ history: history([{ role: "user", text: "Prepara cuatro anuncios nuevos para la campaña de verano" }]),
52
+ }));
53
+ expect(context).toContain("in Spanish");
54
+ expect(context).toContain('"Prepara cuatro anuncios nuevos para la campaña de verano"');
55
+ });
56
+ it("adds nothing to a chat the marketer writes in English", () => {
57
+ const hooks = skillLanguageHooks({
58
+ prompt: "Make the webinar landing page hero brighter and shorter",
59
+ currentSender: { name: "Ana" },
60
+ });
61
+ expect(hooks).toEqual({});
62
+ });
63
+ });
64
+ //# sourceMappingURL=skill-language.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-language.test.js","sourceRoot":"","sources":["../../src/hono/skill-language.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-bridge",
3
- "version": "0.159.0-dev.c31d1bca3",
3
+ "version": "0.159.0-dev.eed4e6e89",
4
4
  "description": "HTTP server wrapping the Claude Agent SDK. Persists chat events to Convex; the dashboard subscribes via Convex realtime",
5
5
  "license": "MIT",
6
6
  "type": "module",