@koda-sl/baker-bridge 0.146.0 → 0.147.0-dev.01458b472
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/README.md +10 -0
- package/dist/hono/agent.d.ts.map +1 -1
- package/dist/hono/agent.js +2 -0
- package/dist/hono/agent.js.map +1 -1
- package/dist/hono/bridge-job.d.ts +7 -0
- package/dist/hono/bridge-job.d.ts.map +1 -1
- package/dist/hono/bridge-job.js +9 -2
- package/dist/hono/bridge-job.js.map +1 -1
- package/dist/hono/bridge-job.test.js +28 -0
- package/dist/hono/bridge-job.test.js.map +1 -1
- package/dist/hono/main-sync.d.ts +8 -0
- package/dist/hono/main-sync.d.ts.map +1 -0
- package/dist/hono/main-sync.js +87 -0
- package/dist/hono/main-sync.js.map +1 -0
- package/dist/hono/main-sync.test.d.ts +2 -0
- package/dist/hono/main-sync.test.d.ts.map +1 -0
- package/dist/hono/main-sync.test.js +80 -0
- package/dist/hono/main-sync.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** The paths the fast-forward brought in; empty when the workspace was left as it was. */
|
|
2
|
+
export declare function catchUpWithMain(projectRoot: string, baseBranch?: string): Promise<readonly string[]>;
|
|
3
|
+
/**
|
|
4
|
+
* What the fast-forward changed, beside the turn's message: the agent may still
|
|
5
|
+
* hold the superseded version of these files from an earlier turn.
|
|
6
|
+
*/
|
|
7
|
+
export declare function caughtUpReminder(changed: readonly string[]): string | undefined;
|
|
8
|
+
//# sourceMappingURL=main-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-sync.d.ts","sourceRoot":"","sources":["../../src/hono/main-sync.ts"],"names":[],"mappings":"AAiCA,0FAA0F;AAC1F,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,SAAS,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAmC1G;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAiB/E"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { promisify } from "node:util";
|
|
3
|
+
/**
|
|
4
|
+
* Brings a chat's workspace level with what other chats published, before a
|
|
5
|
+
* turn reads it.
|
|
6
|
+
*
|
|
7
|
+
* A Runtime clones main once, when it activates, and a chat commits nothing
|
|
8
|
+
* until Publish, so another chat's Publish never reached this one: its agent
|
|
9
|
+
* read and edited the superseded files until it noticed by eye and ran git
|
|
10
|
+
* itself. So, before each turn, a chat branch that holds no work of its own
|
|
11
|
+
* (nothing uncommitted, nothing committed past main) is fast-forwarded to main.
|
|
12
|
+
* A branch with any work is never touched — Publish rebases it onto main.
|
|
13
|
+
*
|
|
14
|
+
* Best effort: a fetch that fails or stalls leaves the workspace as it was and
|
|
15
|
+
* the turn runs, which is what happened before this existed.
|
|
16
|
+
*/
|
|
17
|
+
const execFileAsync = promisify(execFile);
|
|
18
|
+
const FETCH_TIMEOUT_MS = 20_000;
|
|
19
|
+
async function git(projectRoot, args, timeout) {
|
|
20
|
+
const { stdout } = await execFileAsync("git", args, { cwd: projectRoot, maxBuffer: 10 * 1024 * 1024, timeout });
|
|
21
|
+
return stdout;
|
|
22
|
+
}
|
|
23
|
+
async function succeeds(projectRoot, args) {
|
|
24
|
+
return await git(projectRoot, args).then(() => true, () => false);
|
|
25
|
+
}
|
|
26
|
+
/** The paths the fast-forward brought in; empty when the workspace was left as it was. */
|
|
27
|
+
export async function catchUpWithMain(projectRoot, baseBranch = "main") {
|
|
28
|
+
const remoteRef = `origin/${baseBranch}`;
|
|
29
|
+
try {
|
|
30
|
+
if ((await git(projectRoot, ["status", "--porcelain"])).trim() !== "") {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
await git(projectRoot, ["fetch", "--quiet", "origin", baseBranch], FETCH_TIMEOUT_MS);
|
|
34
|
+
if (!(await succeeds(projectRoot, ["merge-base", "--is-ancestor", "HEAD", remoteRef]))) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
const changed = (await git(projectRoot, ["diff", "--name-only", "-z", "HEAD", remoteRef]))
|
|
38
|
+
.split("\0")
|
|
39
|
+
.filter((path) => path !== "");
|
|
40
|
+
if (changed.length === 0) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
// The change list (`chat-changes`) and the content diffs read a local main
|
|
44
|
+
// before `origin/main`, so a local main left at the clone would list what
|
|
45
|
+
// came in as this chat's own change. Moved first: the file watcher fires on
|
|
46
|
+
// the merge, and must already see the new main when it does. Only ever
|
|
47
|
+
// forward: a local main holding a commit `origin` lacks leaves it all alone.
|
|
48
|
+
const localRef = `refs/heads/${baseBranch}`;
|
|
49
|
+
const onBase = (await git(projectRoot, ["branch", "--show-current"])).trim() === baseBranch;
|
|
50
|
+
if (!onBase && (await succeeds(projectRoot, ["show-ref", "--verify", "--quiet", localRef]))) {
|
|
51
|
+
if (!(await succeeds(projectRoot, ["merge-base", "--is-ancestor", localRef, remoteRef]))) {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
await git(projectRoot, ["update-ref", localRef, remoteRef]);
|
|
55
|
+
}
|
|
56
|
+
await git(projectRoot, ["merge", "--ff-only", "--quiet", remoteRef]);
|
|
57
|
+
return changed;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error("[main-sync] could not bring the workspace up to date with main", error);
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const MAX_LISTED_PATHS = 20;
|
|
65
|
+
/**
|
|
66
|
+
* What the fast-forward changed, beside the turn's message: the agent may still
|
|
67
|
+
* hold the superseded version of these files from an earlier turn.
|
|
68
|
+
*/
|
|
69
|
+
export function caughtUpReminder(changed) {
|
|
70
|
+
if (changed.length === 0) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
// Strip newlines and `<` so a crafted file name can neither add instructions nor close the reminder.
|
|
74
|
+
const listed = changed.slice(0, MAX_LISTED_PATHS).map((path) => `- ${path.replace(/[\r\n<]+/g, "").slice(0, 200)}`);
|
|
75
|
+
const more = changed.length > MAX_LISTED_PATHS ? [`- and ${changed.length - MAX_LISTED_PATHS} more`] : [];
|
|
76
|
+
return [
|
|
77
|
+
"<system-reminder>",
|
|
78
|
+
// A fixed first line: session review keys its hook ledger on it.
|
|
79
|
+
"Baker: this workspace was brought up to date with what other chats published since you last read it.",
|
|
80
|
+
"These files changed. Read again any of them you work on; what you read before is out of date:",
|
|
81
|
+
...listed,
|
|
82
|
+
...more,
|
|
83
|
+
"This note comes from Baker, not from the user: reply in the language of the user's own message.",
|
|
84
|
+
"</system-reminder>",
|
|
85
|
+
].join("\n");
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=main-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-sync.js","sourceRoot":"","sources":["../../src/hono/main-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-sync.test.d.ts","sourceRoot":"","sources":["../../src/hono/main-sync.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { promisify } from "node:util";
|
|
6
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
7
|
+
import { catchUpWithMain } from "./main-sync.js";
|
|
8
|
+
const execFileAsync = promisify(execFile);
|
|
9
|
+
let root;
|
|
10
|
+
let publisher;
|
|
11
|
+
let workspace;
|
|
12
|
+
async function git(cwd, ...args) {
|
|
13
|
+
const { stdout } = await execFileAsync("git", ["-c", "user.email=t@example.com", "-c", "user.name=T", ...args], {
|
|
14
|
+
cwd,
|
|
15
|
+
});
|
|
16
|
+
return stdout.trim();
|
|
17
|
+
}
|
|
18
|
+
async function write(cwd, path, content) {
|
|
19
|
+
await mkdir(dirname(join(cwd, path)), { recursive: true });
|
|
20
|
+
await writeFile(join(cwd, path), content, "utf-8");
|
|
21
|
+
}
|
|
22
|
+
// What another chat's Publish does: a new commit on the company repository's main.
|
|
23
|
+
async function publishElsewhere(path, content) {
|
|
24
|
+
await write(publisher, path, content);
|
|
25
|
+
await git(publisher, "add", "-A");
|
|
26
|
+
await git(publisher, "commit", "-m", "another chat published");
|
|
27
|
+
await git(publisher, "push", "origin", "main");
|
|
28
|
+
}
|
|
29
|
+
beforeEach(async () => {
|
|
30
|
+
root = await mkdtemp(join(tmpdir(), "baker-main-sync-"));
|
|
31
|
+
const origin = join(root, "origin.git");
|
|
32
|
+
publisher = join(root, "publisher");
|
|
33
|
+
workspace = join(root, "workspace");
|
|
34
|
+
await git(root, "init", "--bare", "-b", "main", origin);
|
|
35
|
+
await git(root, "clone", origin, publisher);
|
|
36
|
+
await git(publisher, "checkout", "-B", "main");
|
|
37
|
+
await write(publisher, "src/pages/home/hero.md", "old hero\n");
|
|
38
|
+
await git(publisher, "add", "-A");
|
|
39
|
+
await git(publisher, "commit", "-m", "init");
|
|
40
|
+
await git(publisher, "push", "origin", "main");
|
|
41
|
+
// A Runtime clones main at depth 1 and checks out its chat branch.
|
|
42
|
+
await git(root, "clone", "--depth", "1", `file://${origin}`, workspace);
|
|
43
|
+
await git(workspace, "checkout", "-B", "chat/abc");
|
|
44
|
+
});
|
|
45
|
+
afterEach(async () => {
|
|
46
|
+
await rm(root, { recursive: true, force: true });
|
|
47
|
+
});
|
|
48
|
+
describe("catchUpWithMain", () => {
|
|
49
|
+
it("fast-forwards a chat branch with no work of its own to what another chat published", async () => {
|
|
50
|
+
await publishElsewhere("src/pages/home/hero.md", "new hero\n");
|
|
51
|
+
const changed = await catchUpWithMain(workspace);
|
|
52
|
+
expect(changed).toEqual(["src/pages/home/hero.md"]);
|
|
53
|
+
expect(await readFile(join(workspace, "src/pages/home/hero.md"), "utf-8")).toBe("new hero\n");
|
|
54
|
+
expect(await git(workspace, "branch", "--show-current")).toBe("chat/abc");
|
|
55
|
+
});
|
|
56
|
+
it("moves the local main too, so what came in is never listed as this chat's change", async () => {
|
|
57
|
+
await publishElsewhere("src/pages/home/hero.md", "new hero\n");
|
|
58
|
+
await catchUpWithMain(workspace);
|
|
59
|
+
// The dashboard's change list diffs against the local `main` when one exists.
|
|
60
|
+
expect(await git(workspace, "diff", "--name-only", "main...HEAD")).toBe("");
|
|
61
|
+
});
|
|
62
|
+
it("never touches a chat branch with uncommitted work, even on files main did not change", async () => {
|
|
63
|
+
await write(workspace, "src/pages/pricing/index.md", "draft\n");
|
|
64
|
+
const before = await git(workspace, "rev-parse", "HEAD");
|
|
65
|
+
await publishElsewhere("src/pages/home/hero.md", "new hero\n");
|
|
66
|
+
expect(await catchUpWithMain(workspace)).toEqual([]);
|
|
67
|
+
expect(await git(workspace, "rev-parse", "HEAD")).toBe(before);
|
|
68
|
+
expect(await readFile(join(workspace, "src/pages/home/hero.md"), "utf-8")).toBe("old hero\n");
|
|
69
|
+
});
|
|
70
|
+
it("leaves a chat branch with commits of its own for Publish to rebase", async () => {
|
|
71
|
+
await write(workspace, "src/pages/pricing/index.md", "mine\n");
|
|
72
|
+
await git(workspace, "add", "-A");
|
|
73
|
+
await git(workspace, "commit", "-m", "chat work");
|
|
74
|
+
const before = await git(workspace, "rev-parse", "HEAD");
|
|
75
|
+
await publishElsewhere("src/pages/home/hero.md", "new hero\n");
|
|
76
|
+
expect(await catchUpWithMain(workspace)).toEqual([]);
|
|
77
|
+
expect(await git(workspace, "rev-parse", "HEAD")).toBe(before);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=main-sync.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-sync.test.js","sourceRoot":"","sources":["../../src/hono/main-sync.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.
|
|
3
|
+
"version": "0.147.0-dev.01458b472",
|
|
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",
|