@koda-sl/baker-bridge 0.72.0 → 0.72.2
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 +1 -1
- package/dist/hono/bridge-job.d.ts.map +1 -1
- package/dist/hono/bridge-job.js +13 -1
- package/dist/hono/bridge-job.js.map +1 -1
- package/dist/hono/bridge-job.test.js +90 -0
- package/dist/hono/bridge-job.test.js.map +1 -1
- package/dist/hono/tag-fields.d.ts +25 -0
- package/dist/hono/tag-fields.d.ts.map +1 -0
- package/dist/hono/tag-fields.js +74 -0
- package/dist/hono/tag-fields.js.map +1 -0
- package/dist/hono/tag-input.d.ts +18 -0
- package/dist/hono/tag-input.d.ts.map +1 -1
- package/dist/hono/tag-input.js +39 -25
- package/dist/hono/tag-input.js.map +1 -1
- package/dist/hono/tag-input.test.js +26 -1
- package/dist/hono/tag-input.test.js.map +1 -1
- package/package.json +1 -1
package/dist/hono/tag-input.js
CHANGED
|
@@ -16,34 +16,14 @@ import { createSdkMcpServer, tool } from "@anthropic-ai/claude-agent-sdk";
|
|
|
16
16
|
import { z } from "zod";
|
|
17
17
|
import { createConnectionInputTool } from "./connection-input.js";
|
|
18
18
|
import { createFlowInputTool } from "./flow-input.js";
|
|
19
|
+
import { CONFIG_FIELDS_BY_TYPE, SECRET_FIELDS_BY_TYPE } from "./tag-fields.js";
|
|
19
20
|
import { toToolInputArray } from "./tool-input.js";
|
|
20
21
|
export const BAKER_UI_SERVER_NAME = "baker_ui";
|
|
21
22
|
export const TAG_INPUT_TOOL_NAME = "mcp__baker_ui__request_tag_input";
|
|
22
|
-
// Mirror of `TAG_SECRET_FIELDS` in packages/api/src/tags.ts (the bridge is
|
|
23
|
-
// published standalone and cannot depend on @baker/api). The backend strips
|
|
24
|
-
// secret keys again at /api/chat/tag-input-request — this mirror is UX-side
|
|
25
|
-
// defense in depth, not the enforcement point.
|
|
26
|
-
const SECRET_FIELDS_BY_TYPE = {
|
|
27
|
-
meta: ["accessToken"],
|
|
28
|
-
amplitude: [],
|
|
29
|
-
googleAds: ["oauthProviderId", "customerAccountId", "customerId", "loginCustomerId"],
|
|
30
|
-
tiktok: ["accessToken"],
|
|
31
|
-
vwo: [],
|
|
32
|
-
hotjar: [],
|
|
33
|
-
clarity: [],
|
|
34
|
-
pinterest: ["conversionToken"],
|
|
35
|
-
code: [],
|
|
36
|
-
googleAnalytics: ["apiSecret"],
|
|
37
|
-
googleTagManager: ["authorizationToken", "oauthProviderId"],
|
|
38
|
-
hubspot: [],
|
|
39
|
-
linkedinInsightTag: ["oauthProviderId"],
|
|
40
|
-
onetrust: [],
|
|
41
|
-
posthog: [],
|
|
42
|
-
datafast: ["apiKey"],
|
|
43
|
-
recaptcha: [],
|
|
44
|
-
twitterAds: ["oauthProviderId"],
|
|
45
|
-
};
|
|
46
23
|
export const TAG_TYPES = Object.keys(SECRET_FIELDS_BY_TYPE);
|
|
24
|
+
const CONFIG_FIELDS_REFERENCE = Object.entries(CONFIG_FIELDS_BY_TYPE)
|
|
25
|
+
.map(([type, fields]) => `${type}: ${fields.join(", ")}`)
|
|
26
|
+
.join("; ");
|
|
47
27
|
const tagChangeShape = z.object({
|
|
48
28
|
mode: z.enum(["create", "edit", "delete"]).describe("create a new tag, edit an existing one, or delete one"),
|
|
49
29
|
tagType: z.enum(TAG_TYPES).describe("Marketing tag type (matches `baker tags list` types)"),
|
|
@@ -54,7 +34,7 @@ const tagChangeShape = z.object({
|
|
|
54
34
|
prefilledConfig: z
|
|
55
35
|
.record(z.string(), z.string())
|
|
56
36
|
.optional()
|
|
57
|
-
.describe(
|
|
37
|
+
.describe(`Non-secret config values to prefill this tab with, keyed by this tag type's field names — any other key is rejected. Fields by type — ${CONFIG_FIELDS_REFERENCE}. Never place secret values here.`),
|
|
58
38
|
requestedSecretFields: z
|
|
59
39
|
.array(z.string())
|
|
60
40
|
.optional()
|
|
@@ -84,6 +64,8 @@ export const tagInputResultSchema = z.discriminatedUnion("status", [
|
|
|
84
64
|
z.object({
|
|
85
65
|
status: z.literal("declined"),
|
|
86
66
|
reason: z.string().optional(),
|
|
67
|
+
/** Set when the platform could not apply an approved change, rather than the user skipping it. */
|
|
68
|
+
failed: z.boolean().optional(),
|
|
87
69
|
}),
|
|
88
70
|
]);
|
|
89
71
|
/** The redacted resolution the bridge injects and echoes back: one result per requested change. */
|
|
@@ -110,6 +92,38 @@ export function normalizeTagInputToolInput(input) {
|
|
|
110
92
|
return parsed.success ? [parsed.data] : [];
|
|
111
93
|
});
|
|
112
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Refuse a batch whose `prefilledConfig` names fields the tag type does not
|
|
97
|
+
* have, quoting the real ones. Dropping them silently would be worse than the
|
|
98
|
+
* old behavior: the form would render blank, the user would approve an empty
|
|
99
|
+
* tag, and the snippet the model wrote would be gone with nobody told. Returns
|
|
100
|
+
* null when every prefilled key is valid.
|
|
101
|
+
*
|
|
102
|
+
* The backend strips unknown keys instead of refusing, because it can still
|
|
103
|
+
* stage the real fields of a partly-invented change; what stops the blank-form
|
|
104
|
+
* outcome there is `validateTagConfig` refusing a config left empty. Here,
|
|
105
|
+
* before the form exists, refusing is better — the model can still fix it.
|
|
106
|
+
*
|
|
107
|
+
* Call this AFTER `sanitizeTagChanges`: a leaked secret is not an invented
|
|
108
|
+
* field, and it already has a graceful path that costs no round-trip.
|
|
109
|
+
*/
|
|
110
|
+
export function unknownPrefillMessage(changes) {
|
|
111
|
+
const offenders = changes.flatMap((change) => {
|
|
112
|
+
const known = CONFIG_FIELDS_BY_TYPE[change.tagType];
|
|
113
|
+
if (!known) {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
const unknown = Object.keys(change.prefilledConfig ?? {}).filter((key) => !known.includes(key));
|
|
117
|
+
return unknown.length > 0 ? [{ tagType: change.tagType, unknown, known }] : [];
|
|
118
|
+
});
|
|
119
|
+
if (offenders.length === 0) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
const details = offenders
|
|
123
|
+
.map((o) => `${o.tagType} does not have ${o.unknown.join(", ")} — its fields are ${o.known.join(", ")}`)
|
|
124
|
+
.join("; ");
|
|
125
|
+
return `request_tag_input: prefilledConfig used field names this tag type does not define. ${details}. Retry with the real field names; nothing was staged.`;
|
|
126
|
+
}
|
|
113
127
|
/**
|
|
114
128
|
* Strip secret-field values a model may have (incorrectly) placed into any
|
|
115
129
|
* change's `prefilledConfig`, moving their NAMES into `requestedSecretFields` so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-input.js","sourceRoot":"","sources":["../../src/hono/tag-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAEtE,
|
|
1
|
+
{"version":3,"file":"tag-input.js","sourceRoot":"","sources":["../../src/hono/tag-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { normalizeTagInputToolInput, parseTagChangeResolution, sanitizeTagChanges } from "./tag-input.js";
|
|
2
|
+
import { normalizeTagInputToolInput, parseTagChangeResolution, sanitizeTagChanges, unknownPrefillMessage, } from "./tag-input.js";
|
|
3
|
+
describe("unknownPrefillMessage", () => {
|
|
4
|
+
it("names the invented fields and the real ones for a code tag", () => {
|
|
5
|
+
const message = unknownPrefillMessage([
|
|
6
|
+
{
|
|
7
|
+
mode: "create",
|
|
8
|
+
tagType: "code",
|
|
9
|
+
prefilledConfig: { code: "<script>…</script>", location: "head", placement: "start" },
|
|
10
|
+
},
|
|
11
|
+
]);
|
|
12
|
+
expect(message).toContain("code");
|
|
13
|
+
expect(message).toContain("location");
|
|
14
|
+
expect(message).toContain("placement");
|
|
15
|
+
expect(message).toContain("startOfHead");
|
|
16
|
+
expect(message).toContain("endOfBody");
|
|
17
|
+
});
|
|
18
|
+
it("returns null when every prefilled field exists on the tag type", () => {
|
|
19
|
+
expect(unknownPrefillMessage([
|
|
20
|
+
{ mode: "create", tagType: "meta", prefilledConfig: { pixelId: "123", testEventCode: "TEST1" } },
|
|
21
|
+
{ mode: "delete", tagType: "clarity", ref: "abc" },
|
|
22
|
+
])).toBeNull();
|
|
23
|
+
});
|
|
24
|
+
it("ignores tag types it does not know (the backend validates those)", () => {
|
|
25
|
+
expect(unknownPrefillMessage([{ mode: "create", tagType: "not-a-type", prefilledConfig: { anything: "goes" } }])).toBeNull();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
3
28
|
describe("normalizeTagInputToolInput", () => {
|
|
4
29
|
it("passes a valid changes array through", () => {
|
|
5
30
|
const changes = normalizeTagInputToolInput({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-input.test.js","sourceRoot":"","sources":["../../src/hono/tag-input.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"tag-input.test.js","sourceRoot":"","sources":["../../src/hono/tag-input.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED