@koda-sl/baker-bridge 0.142.0 → 0.143.0-dev.d167daeeb

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 (50) hide show
  1. package/README.md +22 -7
  2. package/dist/hono/agent.d.ts.map +1 -1
  3. package/dist/hono/agent.js +3 -0
  4. package/dist/hono/agent.js.map +1 -1
  5. package/dist/hono/bridge-job.d.ts +16 -0
  6. package/dist/hono/bridge-job.d.ts.map +1 -1
  7. package/dist/hono/bridge-job.js +65 -13
  8. package/dist/hono/bridge-job.js.map +1 -1
  9. package/dist/hono/bridge-job.test.js +67 -33
  10. package/dist/hono/bridge-job.test.js.map +1 -1
  11. package/dist/hono/publish-handoff.d.ts +63 -0
  12. package/dist/hono/publish-handoff.d.ts.map +1 -0
  13. package/dist/hono/publish-handoff.js +261 -0
  14. package/dist/hono/publish-handoff.js.map +1 -0
  15. package/dist/hono/publish-handoff.test.d.ts +2 -0
  16. package/dist/hono/publish-handoff.test.d.ts.map +1 -0
  17. package/dist/hono/publish-handoff.test.js +91 -0
  18. package/dist/hono/publish-handoff.test.js.map +1 -0
  19. package/dist/hono/runtime-files.d.ts +1 -0
  20. package/dist/hono/runtime-files.d.ts.map +1 -1
  21. package/dist/hono/runtime-files.js +1 -0
  22. package/dist/hono/runtime-files.js.map +1 -1
  23. package/dist/hono/session-continuity.d.ts.map +1 -1
  24. package/dist/hono/session-continuity.js +5 -2
  25. package/dist/hono/session-continuity.js.map +1 -1
  26. package/dist/hono/turn-events.d.ts +1 -1
  27. package/dist/hono/turn-events.d.ts.map +1 -1
  28. package/dist/hono/turn-events.js.map +1 -1
  29. package/dist/hono/types.d.ts +2 -0
  30. package/dist/hono/types.d.ts.map +1 -1
  31. package/dist/review/evidence-block.d.ts.map +1 -1
  32. package/dist/review/evidence-block.js +1 -3
  33. package/dist/review/evidence-block.js.map +1 -1
  34. package/dist/review/evidence-block.test.js +1 -33
  35. package/dist/review/evidence-block.test.js.map +1 -1
  36. package/dist/review/evidence.d.ts +0 -3
  37. package/dist/review/evidence.d.ts.map +1 -1
  38. package/dist/review/evidence.js +11 -27
  39. package/dist/review/evidence.js.map +1 -1
  40. package/dist/review/transcripts.d.ts +6 -29
  41. package/dist/review/transcripts.d.ts.map +1 -1
  42. package/dist/review/transcripts.js +18 -100
  43. package/dist/review/transcripts.js.map +1 -1
  44. package/dist/review/transcripts.test.js +0 -37
  45. package/dist/review/transcripts.test.js.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/review/evidence.test.d.ts +0 -2
  48. package/dist/review/evidence.test.d.ts.map +0 -1
  49. package/dist/review/evidence.test.js +0 -94
  50. package/dist/review/evidence.test.js.map +0 -1
@@ -1,94 +0,0 @@
1
- import { mkdirSync, rmSync, writeFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { afterAll, describe, expect, it, vi } from "vitest";
4
- import { buildReviewDigest } from "./evidence.js";
5
- import { projectSlug } from "./transcripts.js";
6
- // The Session's home is the Runtime's: both the bridge's `~/.baker` and the
7
- // CLI's `~/.claude/projects` resolve under it.
8
- const root = vi.hoisted(() => {
9
- const { mkdtempSync } = require("node:fs");
10
- const { tmpdir } = require("node:os");
11
- const { join } = require("node:path");
12
- return mkdtempSync(join(tmpdir(), "review-evidence-"));
13
- });
14
- const bakerHome = join(root, ".baker");
15
- const projectsRoot = join(root, ".claude", "projects");
16
- vi.mock("node:os", async () => {
17
- const actual = await vi.importActual("node:os");
18
- return { ...actual, homedir: () => root };
19
- });
20
- afterAll(() => {
21
- rmSync(root, { recursive: true, force: true });
22
- });
23
- function jsonl(lines) {
24
- return lines.map((line) => `${JSON.stringify(line)}\n`).join("");
25
- }
26
- function userLine(uuid, text) {
27
- return { type: "user", uuid, message: { role: "user", content: text } };
28
- }
29
- function callLine(uuid, id, command) {
30
- return {
31
- type: "assistant",
32
- uuid,
33
- message: { role: "assistant", content: [{ type: "tool_use", id, name: "Bash", input: { command } }] },
34
- };
35
- }
36
- function resultLine(uuid, id, content, isError = false) {
37
- return {
38
- type: "user",
39
- uuid,
40
- message: { role: "user", content: [{ type: "tool_result", tool_use_id: id, content, is_error: isError }] },
41
- };
42
- }
43
- describe("buildReviewDigest", () => {
44
- // The shape every chat has: each message forks the session (the fork copies the
45
- // conversation so far under the same line uuids), `/publish` runs in a session
46
- // the thread never adopts, and a subagent lives under the id it was spawned in.
47
- it("reads every session a thread ran under once, publish and earlier subagents included", async () => {
48
- const projectRoot = join(root, "repo");
49
- const dir = join(projectsRoot, projectSlug(projectRoot));
50
- mkdirSync(join(dir, "s-turn1", "subagents"), { recursive: true });
51
- const turn1 = [
52
- userLine("u1", "Build the landing"),
53
- callLine("a1", "b1", "pnpm build"),
54
- resultLine("r1", "b1", "built"),
55
- ];
56
- writeFileSync(join(dir, "s-turn1.jsonl"), jsonl(turn1));
57
- writeFileSync(join(dir, "s-turn1", "subagents", "agent-visual.jsonl"), jsonl([
58
- userLine("v0", "Check the hero at 390px"),
59
- callLine("v1", "vb1", "agent-browser help"),
60
- resultLine("v2", "vb1", "Blocked by guard-agent-browser: use the wrapper", true),
61
- ]));
62
- writeFileSync(join(dir, "s-publish.jsonl"), jsonl([
63
- userLine("p0", "/publish"),
64
- callLine("p1", "pb1", "pnpm verify"),
65
- resultLine("p2", "pb1", "verify failed", true),
66
- ]));
67
- writeFileSync(join(dir, "s-turn3.jsonl"), jsonl([...turn1, userLine("u3", "Make the hero blue"), callLine("a3", "b3", "pnpm build")]));
68
- mkdirSync(join(bakerHome, "sessions"), { recursive: true });
69
- writeFileSync(join(bakerHome, "sessions", "thread-1.json"), JSON.stringify({ version: 2, sessionId: "s-turn3", updatedAtMs: 3 }));
70
- writeFileSync(join(bakerHome, "turn-events.jsonl"), jsonl(["s-turn1", "s-publish", "s-turn3", "s-reaped"].map((sessionId, index) => ({
71
- threadId: "thread-1",
72
- turnId: `turn-${index}`,
73
- event: "session",
74
- detail: { sessionId },
75
- }))));
76
- const result = await buildReviewDigest(["thread-1"], { projectRoot, dir: join(root, "digest") });
77
- expect(result.digest.totals.turns).toBe(3);
78
- expect(result.digest.toolCalls.map((call) => call.toolUseId).sort()).toEqual(["b1", "b3", "pb1", "vb1"]);
79
- expect(result.digest.guards.map((guard) => guard.message)).toEqual([
80
- expect.stringContaining("guard-agent-browser"),
81
- "verify failed",
82
- ]);
83
- // A subagent counts toward the turn that spawned it, not the thread's last turn.
84
- const turnOf = (id) => result.digest.toolCalls.find((call) => call.toolUseId === id)?.turn;
85
- expect(turnOf("vb1")).toBe(turnOf("b1"));
86
- expect(result.evidence.threads[0]?.subagentFiles).toEqual([
87
- join(dir, "s-turn1", "subagents", "agent-visual.jsonl"),
88
- ]);
89
- // A session the thread ran under whose transcript is gone is missing evidence, said out loud.
90
- expect(result.evidence.threads[0]?.sessionIdsWithoutTranscript).toEqual(["s-reaped"]);
91
- expect(result.evidence.transcriptsMissing).toBe(1);
92
- });
93
- });
94
- //# sourceMappingURL=evidence.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evidence.test.js","sourceRoot":"","sources":["../../src/review/evidence.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,4EAA4E;AAC5E,+CAA+C;AAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;IAC3B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,SAAS,CAA6B,CAAC;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAA6B,CAAC;IAClE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,CAA+B,CAAC;IACpE,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEvD,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAA2B,SAAS,CAAC,CAAC;IAC1E,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE;IACZ,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,SAAS,KAAK,CAAC,KAAwB;IACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY;IAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,EAAU,EAAE,OAAe;IACzD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI;QACJ,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE;KACtG,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,EAAU,EAAE,OAAe,EAAE,OAAO,GAAG,KAAK;IAC5E,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI;QACJ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;KAC3G,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,gFAAgF;IAChF,+EAA+E;IAC/E,gFAAgF;IAChF,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG;YACZ,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;YACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC;YAClC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;SAChC,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,CAAC,EACvD,KAAK,CAAC;YACJ,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;YACzC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC;YAC3C,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,iDAAiD,EAAE,IAAI,CAAC;SACjF,CAAC,CACH,CAAC;QACF,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAC5B,KAAK,CAAC;YACJ,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;YAC1B,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC;YACpC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC;SAC/C,CAAC,CACH,CAAC;QACF,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAC1B,KAAK,CAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAC5F,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CACrE,CAAC;QACF,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACpC,KAAK,CACH,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACzE,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,QAAQ,KAAK,EAAE;YACvB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,EAAE,SAAS,EAAE;SACtB,CAAC,CAAC,CACJ,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEjG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACzG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACjE,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;YAC9C,eAAe;SAChB,CAAC,CAAC;QACH,iFAAiF;QACjF,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;QACnG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC;YACxD,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,CAAC;SACxD,CAAC,CAAC;QACH,8FAA8F;QAC9F,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}