@koda-sl/baker-bridge 0.71.2-dev.5e66c2900 → 0.72.0-dev.873c8c2cc
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 +43 -34
- package/dist/hono/bridge-job.d.ts +15 -32
- package/dist/hono/bridge-job.d.ts.map +1 -1
- package/dist/hono/bridge-job.js +87 -85
- package/dist/hono/bridge-job.js.map +1 -1
- package/dist/hono/bridge-job.test.js +108 -78
- package/dist/hono/bridge-job.test.js.map +1 -1
- package/dist/hono/convex.d.ts +1 -1
- package/dist/hono/convex.d.ts.map +1 -1
- package/dist/hono/relay.d.ts +1 -1
- package/dist/hono/relay.d.ts.map +1 -1
- package/dist/hono/session-continuity.d.ts +14 -15
- package/dist/hono/session-continuity.d.ts.map +1 -1
- package/dist/hono/session-continuity.js +43 -21
- package/dist/hono/session-continuity.js.map +1 -1
- package/dist/hono/session-continuity.test.js +22 -25
- package/dist/hono/session-continuity.test.js.map +1 -1
- package/dist/hono/tag-input.d.ts +10 -0
- package/dist/hono/tag-input.d.ts.map +1 -1
- package/dist/hono/tag-input.js +67 -1
- 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
|
@@ -3,12 +3,37 @@ export function emptyInProgressSession() {
|
|
|
3
3
|
return { sawSessionId: false, sawCleanResult: false };
|
|
4
4
|
}
|
|
5
5
|
export function prepareSessionAttempt(input) {
|
|
6
|
-
// Publish
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
|
|
6
|
+
// Publish runs detached: its own session, never the chat's.
|
|
7
|
+
//
|
|
8
|
+
// Not an optimization — the conversation is the thing that breaks it. The
|
|
9
|
+
// publish skill pins its own model (Haiku 4.5, a genuine 200k window) while
|
|
10
|
+
// the chat runs on a 1M model, so resuming the chat's session handed a
|
|
11
|
+
// conversation sized for 1M to a model with a fifth of the room. Measured on
|
|
12
|
+
// the failure: the last chat request was 356,707 tokens — 36% of its own
|
|
13
|
+
// window, and 78% *over* the publish model's. The provider refused it
|
|
14
|
+
// pre-flight, every time, on a chat that by its own meter had plenty of space.
|
|
15
|
+
// Summarizing could not save it either, since the summary request has to send
|
|
16
|
+
// that same conversation.
|
|
17
|
+
//
|
|
18
|
+
// Detaching removes the condition instead of recovering from it, and costs
|
|
19
|
+
// nothing: the skill is explicit that publish must not read prior context
|
|
20
|
+
// ("Do not reference or act on prior conversation context"), and it works from
|
|
21
|
+
// the state of the workspace — scripts, git, and the files verify complains
|
|
22
|
+
// about. Detached publishes measured ~51k against the same 200k window.
|
|
23
|
+
//
|
|
24
|
+
// The opt-out below rides along because publish still runs a build and a
|
|
25
|
+
// verify inside its own session, and that output alone can cross the CLI's
|
|
26
|
+
// summarize-first threshold.
|
|
27
|
+
if (isPublishCommandPrompt(input.requestPrompt)) {
|
|
28
|
+
return {
|
|
29
|
+
prompt: input.requestPrompt,
|
|
30
|
+
attemptedRehydration: false,
|
|
31
|
+
resumeOptions: {},
|
|
32
|
+
autoCompact: false,
|
|
33
|
+
detachedSession: true,
|
|
34
|
+
contextSource: "detached_publish",
|
|
35
|
+
};
|
|
36
|
+
}
|
|
12
37
|
if (input.loaded?.kind === "clean") {
|
|
13
38
|
const boundary = input.loaded.boundary;
|
|
14
39
|
return {
|
|
@@ -21,7 +46,6 @@ export function prepareSessionAttempt(input) {
|
|
|
21
46
|
...(boundary.resumeSessionAt ? { resumeSessionAt: boundary.resumeSessionAt } : {}),
|
|
22
47
|
},
|
|
23
48
|
contextSource: "local_resume",
|
|
24
|
-
...autoCompact,
|
|
25
49
|
};
|
|
26
50
|
}
|
|
27
51
|
// A verbatim command (e.g. `/compact`) must stay the leading token. If there
|
|
@@ -81,23 +105,21 @@ export function stallContinuationAttempt(attempt, inProgress) {
|
|
|
81
105
|
export const COMPACTION_RESUME_PROMPT = "[Older parts of this conversation were summarized to make room. The session has been restored. " +
|
|
82
106
|
"Continue exactly where you left off; do not repeat work that already completed.]";
|
|
83
107
|
/**
|
|
84
|
-
* Retry the turn with compaction allowed
|
|
85
|
-
* refused for size *and* the turn has work a fresh-session restart would throw
|
|
86
|
-
* away (see `contextOverflowRecovery`) — summarizing an oversized session is a
|
|
87
|
-
* long shot, so it is spent only where the cheaper restart would cost something.
|
|
108
|
+
* Retry the turn with compaction allowed, resuming the session it overflowed in.
|
|
88
109
|
*
|
|
89
|
-
*
|
|
90
|
-
* `
|
|
91
|
-
* the
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
110
|
+
* Used once, and only when the turn has already produced work — the caller owns
|
|
111
|
+
* that test (`resumeSessionAt`, set only by an assistant message). That work is
|
|
112
|
+
* both the reason to compact and the only thing there is to compact: publish
|
|
113
|
+
* runs detached and starts empty, so before it has done anything a summary
|
|
114
|
+
* cannot free a single token, and re-sending the prompt would be a straight
|
|
115
|
+
* repeat of a request the provider just refused.
|
|
116
|
+
*
|
|
117
|
+
* The resume FORKS, as in `stallContinuationAttempt`, and carries the
|
|
118
|
+
* "continue where you left off" note so the agent does not redo the steps whose
|
|
119
|
+
* output caused the overflow in the first place.
|
|
98
120
|
*/
|
|
99
121
|
export function compactionRetryAttempt(attempt, inProgress) {
|
|
100
|
-
if (!inProgress
|
|
122
|
+
if (!inProgress.sessionId) {
|
|
101
123
|
return { ...attempt, autoCompact: true };
|
|
102
124
|
}
|
|
103
125
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-continuity.js","sourceRoot":"","sources":["../../src/hono/session-continuity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-continuity.js","sourceRoot":"","sources":["../../src/hono/session-continuity.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,12 +59,28 @@ describe("prepareSessionAttempt", () => {
|
|
|
59
59
|
expect(attempt.prompt).toContain("earlier turn");
|
|
60
60
|
expect(attempt.prompt).not.toBe("Make the hero blue");
|
|
61
61
|
});
|
|
62
|
-
|
|
62
|
+
// Publish never carries the conversation, however much of it there is: it runs
|
|
63
|
+
// on its own model with its own window, and the chat is not something it reads.
|
|
64
|
+
it("runs publish detached from the chat session, even with one to resume", () => {
|
|
63
65
|
const attempt = prepareSessionAttempt({
|
|
64
66
|
requestPrompt: "/publish",
|
|
65
67
|
loaded: { kind: "clean", boundary: { version: 2, sessionId: "s1", updatedAtMs: 1 } },
|
|
68
|
+
history: historyWith("earlier turn"),
|
|
69
|
+
});
|
|
70
|
+
expect(attempt.resumeOptions.resume).toBeUndefined();
|
|
71
|
+
expect(attempt.usedBoundary).toBeUndefined();
|
|
72
|
+
expect(attempt.detachedSession).toBe(true);
|
|
73
|
+
// Bare, so the command stays the leading token — and unrehydrated, because
|
|
74
|
+
// the history is the very thing publish must not be handed.
|
|
75
|
+
expect(attempt.prompt).toBe("/publish");
|
|
76
|
+
});
|
|
77
|
+
// A publish still runs a build and a verify, and that output alone can cross
|
|
78
|
+
// the threshold — so the opt-out rides on the command, not on the branch.
|
|
79
|
+
it("keeps publish's opt-out of precautionary summarizing", () => {
|
|
80
|
+
const attempt = prepareSessionAttempt({
|
|
81
|
+
requestPrompt: "/publish",
|
|
82
|
+
history: historyWith("earlier turn"),
|
|
66
83
|
});
|
|
67
|
-
expect(attempt.resumeOptions.resume).toBe("s1");
|
|
68
84
|
expect(attempt.autoCompact).toBe(false);
|
|
69
85
|
});
|
|
70
86
|
it("never wraps a verbatim command in a history preamble, keeping it the leading token", () => {
|
|
@@ -103,30 +119,11 @@ describe("stallContinuationAttempt", () => {
|
|
|
103
119
|
});
|
|
104
120
|
});
|
|
105
121
|
describe("compactionRetryAttempt", () => {
|
|
106
|
-
it("re-sends the same turn
|
|
107
|
-
const attempt = prepareSessionAttempt({
|
|
108
|
-
|
|
109
|
-
loaded: { kind: "clean", boundary: { version: 2, sessionId: "s1", updatedAtMs: 1 } },
|
|
110
|
-
});
|
|
111
|
-
const retry = compactionRetryAttempt(attempt);
|
|
112
|
-
expect(retry.prompt).toBe("/publish");
|
|
113
|
-
expect(retry.resumeOptions.resume).toBe("s1");
|
|
114
|
-
expect(retry.autoCompact).toBe(true);
|
|
115
|
-
});
|
|
116
|
-
it("re-sends the command when the very first request was refused, session id notwithstanding", () => {
|
|
117
|
-
const attempt = prepareSessionAttempt({
|
|
118
|
-
requestPrompt: "/publish",
|
|
119
|
-
loaded: { kind: "clean", boundary: { version: 2, sessionId: "s1", updatedAtMs: 1 } },
|
|
120
|
-
});
|
|
121
|
-
// The CLI announces its session id (`system`/`init`) before the first model
|
|
122
|
-
// request, so an id alone does not mean the agent ran anything.
|
|
123
|
-
const retry = compactionRetryAttempt(attempt, {
|
|
124
|
-
sessionId: "s_live",
|
|
125
|
-
sawSessionId: true,
|
|
126
|
-
sawCleanResult: false,
|
|
127
|
-
});
|
|
122
|
+
it("re-sends the same turn when the overflow left no session to resume", () => {
|
|
123
|
+
const attempt = prepareSessionAttempt({ requestPrompt: "/publish" });
|
|
124
|
+
const retry = compactionRetryAttempt(attempt, { sawSessionId: false, sawCleanResult: false });
|
|
128
125
|
expect(retry.prompt).toBe("/publish");
|
|
129
|
-
expect(retry.resumeOptions.resume).
|
|
126
|
+
expect(retry.resumeOptions.resume).toBeUndefined();
|
|
130
127
|
expect(retry.autoCompact).toBe(true);
|
|
131
128
|
});
|
|
132
129
|
it("continues the in-flight session once the agent has produced work", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-continuity.test.js","sourceRoot":"","sources":["../../src/hono/session-continuity.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-continuity.test.js","sourceRoot":"","sources":["../../src/hono/session-continuity.test.ts"],"names":[],"mappings":"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"}
|
package/dist/hono/tag-input.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare const tagInputResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
24
24
|
}, z.core.$strip>, z.ZodObject<{
|
|
25
25
|
status: z.ZodLiteral<"declined">;
|
|
26
26
|
reason: z.ZodOptional<z.ZodString>;
|
|
27
|
+
failed: z.ZodOptional<z.ZodBoolean>;
|
|
27
28
|
}, z.core.$strip>], "status">;
|
|
28
29
|
export type TagInputResult = z.infer<typeof tagInputResultSchema>;
|
|
29
30
|
/** The redacted resolution the bridge injects and echoes back: one result per requested change. */
|
|
@@ -38,6 +39,7 @@ export declare const tagChangeResolutionSchema: z.ZodObject<{
|
|
|
38
39
|
}, z.core.$strip>, z.ZodObject<{
|
|
39
40
|
status: z.ZodLiteral<"declined">;
|
|
40
41
|
reason: z.ZodOptional<z.ZodString>;
|
|
42
|
+
failed: z.ZodOptional<z.ZodBoolean>;
|
|
41
43
|
}, z.core.$strip>], "status">>;
|
|
42
44
|
}, z.core.$strip>;
|
|
43
45
|
export type TagChangeResolution = z.infer<typeof tagChangeResolutionSchema>;
|
|
@@ -53,6 +55,14 @@ export declare function parseTagChangeResolution(value: unknown): TagChangeResol
|
|
|
53
55
|
* dashboard will never render.
|
|
54
56
|
*/
|
|
55
57
|
export declare function normalizeTagInputToolInput(input: Record<string, unknown>): TagChangeInput[];
|
|
58
|
+
/**
|
|
59
|
+
* Refuse a batch whose `prefilledConfig` names fields the tag type does not
|
|
60
|
+
* have, quoting the real ones. Dropping them silently would be worse than the
|
|
61
|
+
* old behavior: the form would render blank, the user would approve an empty
|
|
62
|
+
* tag, and the snippet the model wrote would be gone with nobody told. Returns
|
|
63
|
+
* null when every prefilled key is valid.
|
|
64
|
+
*/
|
|
65
|
+
export declare function unknownPrefillMessage(changes: TagChangeInput[]): string | null;
|
|
56
66
|
/**
|
|
57
67
|
* Strip secret-field values a model may have (incorrectly) placed into any
|
|
58
68
|
* change's `prefilledConfig`, moving their NAMES into `requestedSecretFields` so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-input.d.ts","sourceRoot":"","sources":["../../src/hono/tag-input.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,mBAAmB,qCAAqC,CAAC;AA2BtE,eAAO,MAAM,SAAS,EAAyC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tag-input.d.ts","sourceRoot":"","sources":["../../src/hono/tag-input.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,mBAAmB,qCAAqC,CAAC;AA2BtE,eAAO,MAAM,SAAS,EAAyC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AA8ErF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;6BAe/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,mGAAmG;AACnG,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;iBAAuD,CAAC;AAC9F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,uGAAuG;AACvG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAGnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,EAAE,CAO3F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,GAAG,IAAI,CAgB9E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAuB9E;AAWD;;;;GAIG;AACH,wBAAgB,mBAAmB,4EAkBlC"}
|
package/dist/hono/tag-input.js
CHANGED
|
@@ -44,6 +44,46 @@ const SECRET_FIELDS_BY_TYPE = {
|
|
|
44
44
|
twitterAds: ["oauthProviderId"],
|
|
45
45
|
};
|
|
46
46
|
export const TAG_TYPES = Object.keys(SECRET_FIELDS_BY_TYPE);
|
|
47
|
+
// Mirror of `TAG_CONFIG_FIELDS` in packages/api/src/tags.ts, itself a mirror of
|
|
48
|
+
// the backend's TAG_RULES (the validation authority). A model cannot guess these
|
|
49
|
+
// names — it proposed `code`/`location`/`placement` for the `code` tag — and an
|
|
50
|
+
// unknown key only failed at stage time, turning the user's approve click into a
|
|
51
|
+
// silent "Skipped". Listed in the tool description and enforced before the form
|
|
52
|
+
// is posted, so the model gets the correction while it can still act on it.
|
|
53
|
+
const CONFIG_FIELDS_BY_TYPE = {
|
|
54
|
+
meta: ["pixelId", "datasetId", "accessToken", "testEventCode"],
|
|
55
|
+
amplitude: ["apiKey", "residencyServer"],
|
|
56
|
+
googleAds: ["conversionID", "oauthProviderId", "customerAccountId"],
|
|
57
|
+
tiktok: ["pixelCode", "accessToken"],
|
|
58
|
+
vwo: ["accountId"],
|
|
59
|
+
hotjar: ["siteID"],
|
|
60
|
+
clarity: ["projectId"],
|
|
61
|
+
pinterest: ["tagId", "adAccountId", "conversionToken"],
|
|
62
|
+
code: ["startOfHead", "endOfHead", "startOfBody", "endOfBody"],
|
|
63
|
+
googleAnalytics: ["measurementId", "apiSecret", "googleTagId"],
|
|
64
|
+
googleTagManager: ["containerID", "authorizationToken", "oauthProviderId", "customDomainUrl", "environmentId"],
|
|
65
|
+
hubspot: ["hubID"],
|
|
66
|
+
linkedinInsightTag: ["partnerId", "oauthProviderId"],
|
|
67
|
+
onetrust: ["domainId", "customDomain", "language", "autoBlock", "wrapperBody"],
|
|
68
|
+
posthog: [
|
|
69
|
+
"projectToken",
|
|
70
|
+
"host",
|
|
71
|
+
"serverMirror",
|
|
72
|
+
"autocapture",
|
|
73
|
+
"capturePageview",
|
|
74
|
+
"capturePageleave",
|
|
75
|
+
"captureExceptions",
|
|
76
|
+
"capturePerformance",
|
|
77
|
+
"sessionRecording",
|
|
78
|
+
"personProfiles",
|
|
79
|
+
],
|
|
80
|
+
datafast: ["websiteId", "apiKey", "mode"],
|
|
81
|
+
recaptcha: ["siteKey", "hideBadge"],
|
|
82
|
+
twitterAds: ["pixelId", "oauthProviderId"],
|
|
83
|
+
};
|
|
84
|
+
const CONFIG_FIELDS_REFERENCE = Object.entries(CONFIG_FIELDS_BY_TYPE)
|
|
85
|
+
.map(([type, fields]) => `${type}: ${fields.join(", ")}`)
|
|
86
|
+
.join("; ");
|
|
47
87
|
const tagChangeShape = z.object({
|
|
48
88
|
mode: z.enum(["create", "edit", "delete"]).describe("create a new tag, edit an existing one, or delete one"),
|
|
49
89
|
tagType: z.enum(TAG_TYPES).describe("Marketing tag type (matches `baker tags list` types)"),
|
|
@@ -54,7 +94,7 @@ const tagChangeShape = z.object({
|
|
|
54
94
|
prefilledConfig: z
|
|
55
95
|
.record(z.string(), z.string())
|
|
56
96
|
.optional()
|
|
57
|
-
.describe(
|
|
97
|
+
.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
98
|
requestedSecretFields: z
|
|
59
99
|
.array(z.string())
|
|
60
100
|
.optional()
|
|
@@ -84,6 +124,8 @@ export const tagInputResultSchema = z.discriminatedUnion("status", [
|
|
|
84
124
|
z.object({
|
|
85
125
|
status: z.literal("declined"),
|
|
86
126
|
reason: z.string().optional(),
|
|
127
|
+
/** Set when the platform could not apply an approved change, rather than the user skipping it. */
|
|
128
|
+
failed: z.boolean().optional(),
|
|
87
129
|
}),
|
|
88
130
|
]);
|
|
89
131
|
/** The redacted resolution the bridge injects and echoes back: one result per requested change. */
|
|
@@ -110,6 +152,30 @@ export function normalizeTagInputToolInput(input) {
|
|
|
110
152
|
return parsed.success ? [parsed.data] : [];
|
|
111
153
|
});
|
|
112
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Refuse a batch whose `prefilledConfig` names fields the tag type does not
|
|
157
|
+
* have, quoting the real ones. Dropping them silently would be worse than the
|
|
158
|
+
* old behavior: the form would render blank, the user would approve an empty
|
|
159
|
+
* tag, and the snippet the model wrote would be gone with nobody told. Returns
|
|
160
|
+
* null when every prefilled key is valid.
|
|
161
|
+
*/
|
|
162
|
+
export function unknownPrefillMessage(changes) {
|
|
163
|
+
const offenders = changes.flatMap((change) => {
|
|
164
|
+
const known = CONFIG_FIELDS_BY_TYPE[change.tagType];
|
|
165
|
+
if (!known) {
|
|
166
|
+
return [];
|
|
167
|
+
}
|
|
168
|
+
const unknown = Object.keys(change.prefilledConfig ?? {}).filter((key) => !known.includes(key));
|
|
169
|
+
return unknown.length > 0 ? [{ tagType: change.tagType, unknown, known }] : [];
|
|
170
|
+
});
|
|
171
|
+
if (offenders.length === 0) {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
const details = offenders
|
|
175
|
+
.map((o) => `${o.tagType} does not have ${o.unknown.join(", ")} — its fields are ${o.known.join(", ")}`)
|
|
176
|
+
.join("; ");
|
|
177
|
+
return `request_tag_input: prefilledConfig used field names this tag type does not define. ${details}. Retry with the real field names; nothing was staged.`;
|
|
178
|
+
}
|
|
113
179
|
/**
|
|
114
180
|
* Strip secret-field values a model may have (incorrectly) placed into any
|
|
115
181
|
* 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,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,+CAA+C;AAC/C,MAAM,qBAAqB,GAAsC;IAC/D,IAAI,EAAE,CAAC,aAAa,CAAC;IACrB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,iBAAiB,CAAC;IACpF,MAAM,EAAE,CAAC,aAAa,CAAC;IACvB,GAAG,EAAE,EAAE;IACP,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,CAAC,iBAAiB,CAAC;IAC9B,IAAI,EAAE,EAAE;IACR,eAAe,EAAE,CAAC,WAAW,CAAC;IAC9B,gBAAgB,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;IAC3D,OAAO,EAAE,EAAE;IACX,kBAAkB,EAAE,CAAC,iBAAiB,CAAC;IACvC,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,CAAC,iBAAiB,CAAC;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAA0B,CAAC;AAErF,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC5G,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC3F,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4FAA4F,CAAC;IACzG,eAAe,EAAE,CAAC;SACf,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,QAAQ,EAAE;SACV,QAAQ,
|
|
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@koda-sl/baker-bridge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.72.0-dev.873c8c2cc",
|
|
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",
|