@koda-sl/baker-bridge 0.69.0 → 0.69.1

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.
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Directory names are the skill names: the SDK names a skill from SKILL.md
3
+ * frontmatter, and scripts/check-skills.mjs fails the build when that `name`
4
+ * differs from its directory, so reading the directory avoids parsing every file.
5
+ *
6
+ * An absent directory yields an empty list; any other failure must propagate so
7
+ * callers can decide whether a partial list is safe to act on.
8
+ */
9
+ export declare function readWorkspaceSkillNames(projectRoot: string): Promise<string[]>;
10
+ /**
11
+ * The skills the session exposes to the model: exactly the workspace's own.
12
+ *
13
+ * Leaving `Options.skills` unset is explicitly *not* "skills off" — the CLI's
14
+ * own defaults still apply, which puts ~11 built-in developer skills (`init`,
15
+ * `review`, `security-review`, `run`, `simplify`, …) into every marketer's
16
+ * session. None of them are usable here and each one costs context. Passing an
17
+ * array enables only the listed skills.
18
+ *
19
+ * Derived from disk rather than hardcoded so the list can't rot the moment
20
+ * someone adds a skill to the workspace. The format renderers
21
+ * (`docx`/`pdf`/`pptx`/`xlsx`) are workspace skills backing real client
22
+ * deliverables, so they stay — unlike the slash-command picker, which hides
23
+ * them because nobody invokes them by name.
24
+ *
25
+ * `undefined` means "do not pass `skills`". Two cases collapse into it, and both
26
+ * have to, because **an empty array is not an allowlist of nothing** — the SDK
27
+ * (0.3.220) emits no `--allowedTools` entry for `skills: []`, which is byte-identical
28
+ * to omitting the option and hands the session the built-ins back. So:
29
+ *
30
+ * - the read failed → we don't know what the workspace has;
31
+ * - the read succeeded and found none → there is nothing to allow.
32
+ *
33
+ * In both, `skills` must be absent rather than empty. `readWorkspaceSkillNames`
34
+ * returns `[]` for an absent `.claude/skills`, so a workspace that genuinely ships
35
+ * no skills lands here too — and carrying the built-ins for that session is the
36
+ * lesser failure versus a filter the SDK ignores.
37
+ */
38
+ export declare function readSessionSkills(projectRoot: string): Promise<string[] | undefined>;
39
+ //# sourceMappingURL=session-skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-skills.d.ts","sourceRoot":"","sources":["../../src/hono/session-skills.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUpF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAO1F"}
@@ -0,0 +1,62 @@
1
+ import { readdir } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { z } from "zod";
4
+ const errnoSchema = z.object({ code: z.string() });
5
+ /**
6
+ * Directory names are the skill names: the SDK names a skill from SKILL.md
7
+ * frontmatter, and scripts/check-skills.mjs fails the build when that `name`
8
+ * differs from its directory, so reading the directory avoids parsing every file.
9
+ *
10
+ * An absent directory yields an empty list; any other failure must propagate so
11
+ * callers can decide whether a partial list is safe to act on.
12
+ */
13
+ export async function readWorkspaceSkillNames(projectRoot) {
14
+ try {
15
+ const entries = await readdir(join(projectRoot, ".claude", "skills"), { withFileTypes: true });
16
+ return entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
17
+ }
18
+ catch (error) {
19
+ if (errnoSchema.safeParse(error).data?.code === "ENOENT") {
20
+ return [];
21
+ }
22
+ throw error;
23
+ }
24
+ }
25
+ /**
26
+ * The skills the session exposes to the model: exactly the workspace's own.
27
+ *
28
+ * Leaving `Options.skills` unset is explicitly *not* "skills off" — the CLI's
29
+ * own defaults still apply, which puts ~11 built-in developer skills (`init`,
30
+ * `review`, `security-review`, `run`, `simplify`, …) into every marketer's
31
+ * session. None of them are usable here and each one costs context. Passing an
32
+ * array enables only the listed skills.
33
+ *
34
+ * Derived from disk rather than hardcoded so the list can't rot the moment
35
+ * someone adds a skill to the workspace. The format renderers
36
+ * (`docx`/`pdf`/`pptx`/`xlsx`) are workspace skills backing real client
37
+ * deliverables, so they stay — unlike the slash-command picker, which hides
38
+ * them because nobody invokes them by name.
39
+ *
40
+ * `undefined` means "do not pass `skills`". Two cases collapse into it, and both
41
+ * have to, because **an empty array is not an allowlist of nothing** — the SDK
42
+ * (0.3.220) emits no `--allowedTools` entry for `skills: []`, which is byte-identical
43
+ * to omitting the option and hands the session the built-ins back. So:
44
+ *
45
+ * - the read failed → we don't know what the workspace has;
46
+ * - the read succeeded and found none → there is nothing to allow.
47
+ *
48
+ * In both, `skills` must be absent rather than empty. `readWorkspaceSkillNames`
49
+ * returns `[]` for an absent `.claude/skills`, so a workspace that genuinely ships
50
+ * no skills lands here too — and carrying the built-ins for that session is the
51
+ * lesser failure versus a filter the SDK ignores.
52
+ */
53
+ export async function readSessionSkills(projectRoot) {
54
+ try {
55
+ const names = await readWorkspaceSkillNames(projectRoot);
56
+ return names.length > 0 ? names : undefined;
57
+ }
58
+ catch {
59
+ return undefined;
60
+ }
61
+ }
62
+ //# sourceMappingURL=session-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-skills.js","sourceRoot":"","sources":["../../src/hono/session-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,WAAmB;IAC/D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-skills.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-skills.test.d.ts","sourceRoot":"","sources":["../../src/hono/session-skills.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ import { mkdir, mkdtemp, writeFile } from "node:fs/promises";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { describe, expect, it } from "vitest";
5
+ import { readSessionSkills, readWorkspaceSkillNames } from "./session-skills.js";
6
+ async function makeProjectRoot(skillNames) {
7
+ const root = await mkdtemp(join(tmpdir(), "baker-session-skills-"));
8
+ for (const name of skillNames) {
9
+ await mkdir(join(root, ".claude", "skills", name), { recursive: true });
10
+ }
11
+ return root;
12
+ }
13
+ describe("readWorkspaceSkillNames", () => {
14
+ it("returns the workspace's own skill directory names", async () => {
15
+ const projectRoot = await makeProjectRoot(["landing", "brand-build", "xlsx"]);
16
+ expect((await readWorkspaceSkillNames(projectRoot)).sort()).toEqual(["brand-build", "landing", "xlsx"]);
17
+ });
18
+ it("treats an absent skills directory as no skills", async () => {
19
+ const projectRoot = await mkdtemp(join(tmpdir(), "baker-session-skills-none-"));
20
+ expect(await readWorkspaceSkillNames(projectRoot)).toEqual([]);
21
+ });
22
+ it("rejects when the skills directory cannot be read for a reason other than absence", async () => {
23
+ const projectRoot = await mkdtemp(join(tmpdir(), "baker-session-skills-broken-"));
24
+ await mkdir(join(projectRoot, ".claude"), { recursive: true });
25
+ await writeFile(join(projectRoot, ".claude", "skills"), "not a directory");
26
+ await expect(readWorkspaceSkillNames(projectRoot)).rejects.toThrow();
27
+ });
28
+ });
29
+ describe("readSessionSkills", () => {
30
+ it("allowlists exactly the workspace's own skills, dropping the CLI's built-in developer skills", async () => {
31
+ const projectRoot = await makeProjectRoot(["landing", "docx", "pdf", "pptx", "xlsx"]);
32
+ expect((await readSessionSkills(projectRoot))?.sort()).toEqual(["docx", "landing", "pdf", "pptx", "xlsx"]);
33
+ });
34
+ it("keeps the format renderers the document-build skill routes to", async () => {
35
+ const projectRoot = await makeProjectRoot(["document-build", "docx"]);
36
+ expect(await readSessionSkills(projectRoot)).toContain("docx");
37
+ });
38
+ // An empty array is NOT "allow nothing" — the SDK emits no allowlist at all for
39
+ // it, which is the same as passing no option. Returning undefined says that out
40
+ // loud instead of shipping a filter the SDK ignores.
41
+ it("passes no allowlist when the workspace ships no skills, rather than an empty one", async () => {
42
+ const projectRoot = await mkdtemp(join(tmpdir(), "baker-session-skills-empty-"));
43
+ expect(await readSessionSkills(projectRoot)).toBeUndefined();
44
+ });
45
+ it("returns undefined when the workspace cannot be read, so the session keeps its skills", async () => {
46
+ const projectRoot = await mkdtemp(join(tmpdir(), "baker-session-skills-unreadable-"));
47
+ await mkdir(join(projectRoot, ".claude"), { recursive: true });
48
+ await writeFile(join(projectRoot, ".claude", "skills"), "not a directory");
49
+ expect(await readSessionSkills(projectRoot)).toBeUndefined();
50
+ });
51
+ });
52
+ //# sourceMappingURL=session-skills.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-skills.test.js","sourceRoot":"","sources":["../../src/hono/session-skills.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slash-command-allowlist.d.ts","sourceRoot":"","sources":["../../src/hono/slash-command-allowlist.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AA8BnE,8GAA8G;AAC9G,wBAAsB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAU5F;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,YAAY,EAAE,EACxB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,YAAY,EAAE,CAEhB"}
1
+ {"version":3,"file":"slash-command-allowlist.d.ts","sourceRoot":"","sources":["../../src/hono/slash-command-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAQnE,8GAA8G;AAC9G,wBAAsB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAU5F;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,YAAY,EAAE,EACxB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,YAAY,EAAE,CAEhB"}
@@ -1,35 +1,12 @@
1
- import { readdir } from "node:fs/promises";
2
- import { join } from "node:path";
3
- import { z } from "zod";
1
+ import { readWorkspaceSkillNames } from "./session-skills.js";
4
2
  import { bridgeSlashCommandNames } from "./slash-commands.js";
5
3
  // Format renderers that the document-build skill routes to on the user's behalf.
6
4
  // They are real workspace skills, but nobody invokes them by name.
7
5
  const ROUTED_ONLY_SKILLS = new Set(["docx", "pdf", "pptx", "xlsx"]);
8
- const errnoSchema = z.object({ code: z.string() });
9
- /**
10
- * Directory names are the command names: the SDK names a command from SKILL.md
11
- * frontmatter, and scripts/check-skills.mjs fails the build when that `name`
12
- * differs from its directory, so reading the directory avoids parsing 24 files.
13
- *
14
- * An absent directory means "no skills"; any other failure must propagate so a
15
- * stale-but-good list is kept.
16
- */
17
- async function readSkillDirNames(skillsDir) {
18
- try {
19
- const entries = await readdir(skillsDir, { withFileTypes: true });
20
- return entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
21
- }
22
- catch (error) {
23
- if (errnoSchema.safeParse(error).data?.code === "ENOENT") {
24
- return [];
25
- }
26
- throw error;
27
- }
28
- }
29
6
  /** Names the sandbox picker is allowed to show: the workspace's own skills plus the bridge's own commands. */
30
7
  export async function readAllowedSlashCommandNames(projectRoot) {
31
8
  const allowed = new Set(bridgeSlashCommandNames());
32
- for (const name of await readSkillDirNames(join(projectRoot, ".claude", "skills"))) {
9
+ for (const name of await readWorkspaceSkillNames(projectRoot)) {
33
10
  if (!ROUTED_ONLY_SKILLS.has(name)) {
34
11
  allowed.add(name);
35
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"slash-command-allowlist.js","sourceRoot":"","sources":["../../src/hono/slash-command-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,iFAAiF;AACjF,mEAAmE;AACnE,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzF,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEnD;;;;;;;GAOG;AACH,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IAChD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,8GAA8G;AAC9G,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,WAAmB;IACpE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,uBAAuB,EAAE,CAAC,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,MAAM,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACnF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAwB,EACxB,YAAiC;IAEjC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"slash-command-allowlist.js","sourceRoot":"","sources":["../../src/hono/slash-command-allowlist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,iFAAiF;AACjF,mEAAmE;AACnE,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzF,8GAA8G;AAC9G,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,WAAmB;IACpE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,uBAAuB,EAAE,CAAC,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,MAAM,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAwB,EACxB,YAAiC;IAEjC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-bridge",
3
- "version": "0.69.0",
3
+ "version": "0.69.1",
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",