@koda-sl/baker-bridge 0.77.0 → 0.79.0-dev.7fb8e0c69

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 CHANGED
@@ -221,7 +221,7 @@ the account setting is then the only off-switch.
221
221
 
222
222
  Every turn also carries an in-process SDK MCP server named `baker_ui` hosting interactive dashboard tools. Its first tool, `request_tag_input`, is the **blocking secure tag form**: the agent invokes it when a marketing tag needs secret values (API keys, access tokens, OAuth connections). The bridge intercepts the call in `canUseTool` (same pattern as `AskUserQuestion`), POSTs `/api/chat/tag-input-request` to Convex so the dashboard renders the form, and suspends the turn until Convex delivers the resolution via `POST /tag-input-decision`. Secret values flow dashboard → Convex tag draft directly; the bridge and the model only ever see the redacted result (`{ status, ref, type, identifier, secretFieldsSet }`). Secret values a model puts into `prefilledConfig` are stripped bridge-side (and again backend-side) — their names become requested fields instead. `prefilledConfig` keys must be real config fields of the tag type (the tool description lists them per type); a call that invents field names is denied with the valid ones, because such a key renders nowhere in the form and would otherwise fail at stage time, after the user already approved. Live wait matches `AskUserQuestion` (15 min); like all blocking prompts, the form itself never expires — the thread parks and a later submission recovers the turn. It is **not** a connection route: a `googleTagManager` tag is the container snippet on the site, while the Tag Manager connection that unlocks the container's contents also has to name a container — which this form cannot do — so `oauthProviderId` is not requestable there and the backend rejects it, pointing the agent at `request_connection`.
223
223
 
224
- Its second tool, `request_flow_input`, is the **blocking form-configuration form**: the agent invokes it to configure the confidential parts of a flow ("Form") it cannot author itself — side-effect credentials/connections (`encryptedConfig`, `oauthProviderId`) and widget third-party field definitions (`nodeData.form.external` for HubSpot/Calendly/HighLevel/SavvyCal). The agent authors the surrounding structure in `_data.json` and references it by `nodeId`/`sideEffectId`. Same `canUseTool` park pattern: the bridge POSTs `/api/chat/flow-input-request`, the dashboard renders a tabbed form (secret inputs / OAuth connect+account picker / live resource picker), and on submit Convex delivers the resolved values to `POST /flow-input-decision`. Unlike tags, the resolved values are written **into the branch flow file** through the encrypting `writeFlow` (read → patch node/side-effect → write); the model only ever sees the redacted `{ status, nodeId, sideEffectId?, secretFieldsSet, note }`. Leaked secret values in `prefilledConfig` are stripped bridge-side (and again backend-side). Live wait matches `AskUserQuestion` (15 min); like all blocking prompts, the form itself never expires — the thread parks and a later submission recovers the turn.
224
+ Its second tool, `request_flow_input`, is the **blocking form-configuration form**: the agent invokes it to configure the confidential parts of a flow ("Form") it cannot author itself — side-effect credentials/connections (`encryptedConfig`, `oauthProviderId`) and widget third-party field definitions (`nodeData.form.external` for HubSpot/Calendly/HighLevel/SavvyCal). The agent authors the surrounding structure in `_data.json` and references it by `nodeId`/`sideEffectId`. Same `canUseTool` park pattern: the bridge POSTs `/api/chat/flow-input-request`, the dashboard renders a tabbed form (secret inputs / OAuth connect+account picker / live resource picker), and on submit Convex delivers the resolved values to `POST /flow-input-decision`. Unlike tags, the resolved values are written **into the branch flow file** through the encrypting `writeFlow` (read → patch node/side-effect → write); the model only ever sees a redacted result: `{ status, nodeId, sideEffectId?, secretFieldsSet, destination?, connected?, fields?, note? }`. `destination` is the non-secret half of what the user chose — the spreadsheet, the sheet, the portal, the Calendly event — so an agent that has just configured an integration does not have to spend a turn on `baker flows show --full` to learn what it configured, and does not map columns against a guess. For a widget node, `fields` carries the autofill keys the picked resource accepts — literally the left-hand side of an `autofilledFields` entry, adapter prefix included, so a SavvyCal custom field arrives as `questions.<id>` because that is what its adapter reads. They come from each provider's own field container (`fieldGroups[].fields[]`, `customQuestions[]`, `customParams.formFields[]`, `customFormFields[]`, `fields[]`, `customFields[]`) rather than from a search for name-shaped strings, so a select's option labels and the resource's own title are not among them (a HubSpot form's `name` is "Contact us"; it is reported under `destination`). A widget with no field list of its own returns none rather than a guess. Both targets go through the same filter: only plain strings and numbers are echoed, and anything in that type's secret list is redacted to a name in `secretFieldsSet`. A few non-secret keys are withheld from `destination` on top of that, because they are not an answer either — an `httpWebhook`'s basic-auth `username` is not a typed credential, so it is not in the secret list, but echoing it hands the model half a credential and nothing on the side effect is addressed by it. Leaked secret values in `prefilledConfig` are stripped bridge-side (and again backend-side). Live wait matches `AskUserQuestion` (15 min); like all blocking prompts, the form itself never expires — the thread parks and a later submission recovers the turn.
225
225
 
226
226
  Its third tool, `request_connection`, is the **blocking connection request**: the agent invokes it when a data platform the task needs — Google Ads, LinkedIn Ads, Meta Ads, Google Analytics 4, Google Search Console, or Google Tag Manager — is not connected yet, instead of telling the user to go to Settings. Same `canUseTool` park pattern: the bridge POSTs `/api/chat/connection-input-request`, the dashboard renders one tab per platform with the OAuth connect button and the account/property/site/container picker, and on submit Convex delivers the outcome to `POST /connection-input-decision`. Nothing confidential passes through the bridge or the model: the dashboard writes the selection onto the company's connection, and the resolution carries only `{ status, platform, accountLabel?, selected[] }`. X Ads is deliberately not offered — it is still coming soon. Live wait matches `AskUserQuestion` (15 min).
227
227
 
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `WIDGET_FIELD_SOURCE`, against the engine declarations it mirrors.
3
+ *
4
+ * The bridge is published standalone and cannot import the scaffold or
5
+ * `@baker/api`, so the table is a hand-copy — the same constraint that makes
6
+ * `SECRET_FIELDS_BY_SIDE_EFFECT` one. A hand-copy is only safe if something
7
+ * fails when it falls behind, and the failure it prevents is quiet: `fields` is
8
+ * presented to the agent as the keys `autofilledFields` takes, so a container
9
+ * renamed upstream turns the list empty (or, worse, fills it from a
10
+ * neighbouring array) with nothing to notice.
11
+ *
12
+ * These read the widget node declarations in the engine's own `types.ts` and
13
+ * the one adapter that prefixes its keys.
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=flow-input-fields.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-input-fields.test.d.ts","sourceRoot":"","sources":["../../src/hono/flow-input-fields.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * `WIDGET_FIELD_SOURCE`, against the engine declarations it mirrors.
3
+ *
4
+ * The bridge is published standalone and cannot import the scaffold or
5
+ * `@baker/api`, so the table is a hand-copy — the same constraint that makes
6
+ * `SECRET_FIELDS_BY_SIDE_EFFECT` one. A hand-copy is only safe if something
7
+ * fails when it falls behind, and the failure it prevents is quiet: `fields` is
8
+ * presented to the agent as the keys `autofilledFields` takes, so a container
9
+ * renamed upstream turns the list empty (or, worse, fills it from a
10
+ * neighbouring array) with nothing to notice.
11
+ *
12
+ * These read the widget node declarations in the engine's own `types.ts` and
13
+ * the one adapter that prefixes its keys.
14
+ */
15
+ import { readFileSync } from "node:fs";
16
+ import { join, resolve } from "node:path";
17
+ import { describe, expect, it } from "vitest";
18
+ import { RESOURCE_NODE_TYPES, WIDGET_FIELD_SOURCE } from "./flow-input.js";
19
+ const ENGINE = resolve(import.meta.dirname, "../../../../apps/scaffold-template/src/lib/flow-engine");
20
+ const TYPES = readFileSync(join(ENGINE, "types.ts"), "utf8");
21
+ /** The `NodeData` interface declaring one widget node type. */
22
+ function externalBlock(nodeType) {
23
+ const declaration = new RegExp(`interface \\w+NodeData \\{\\s*\\n\\s*type: "${nodeType}";[\\s\\S]*?\\n\\}`);
24
+ const block = TYPES.match(declaration)?.[0] ?? "";
25
+ expect(block, `no NodeData interface declaring type: "${nodeType}"`).not.toBe("");
26
+ return block;
27
+ }
28
+ /** A named interface or type alias body, for following a path across declarations. */
29
+ function blockFor(name) {
30
+ return TYPES.match(new RegExp(`(?:interface|type) ${name}\\b[\\s\\S]*?\\n\\}`))?.[0] ?? "";
31
+ }
32
+ /**
33
+ * Follow a table entry's `path` through the declarations and return the record
34
+ * type it lands on — the one that has to carry `key`.
35
+ *
36
+ * Two shapes to cross. A segment can name a type (`fieldGroups: readonly
37
+ * HubSpotFieldGroup[]`, so the next segment lives in THAT interface) or be an
38
+ * inline object (`customParams: { formFields: … }`, so it stays here). Getting
39
+ * this right is the point: HubSpot's fields are two declarations away from its
40
+ * node, which is exactly the nesting a flat search flattened.
41
+ */
42
+ function recordTypeFor(nodeType, path) {
43
+ let block = externalBlock(nodeType);
44
+ for (const segment of path) {
45
+ const referenced = block.match(new RegExp(`\\b${segment}\\??:\\s*(?:readonly\\s+)?(\\w+|\\{)`))?.[1];
46
+ expect(referenced, `${nodeType}: \`${segment}\` is not declared where the table says`).toBeDefined();
47
+ const next = referenced === "{" ? "" : blockFor(referenced);
48
+ if (next)
49
+ block = next;
50
+ }
51
+ return block;
52
+ }
53
+ describe("widget field sources match the engine", () => {
54
+ it("covers every resource node type the tool accepts", () => {
55
+ // A missing entry is not a smaller answer, it is an empty one: the widget
56
+ // whose fields the agent most needs would silently return none.
57
+ expect(Object.keys(WIDGET_FIELD_SOURCE).sort()).toEqual([...RESOURCE_NODE_TYPES].sort());
58
+ });
59
+ it.each(Object.entries(WIDGET_FIELD_SOURCE))("%s keeps its fields where the table says", (nodeType, source) => {
60
+ const record = recordTypeFor(nodeType, source.path);
61
+ expect(record, `${nodeType} field records carry no \`${source.key}\``).toMatch(new RegExp(`\\b${source.key}\\??:`));
62
+ });
63
+ it("prefixes a SavvyCal field exactly the way its adapter reads it", () => {
64
+ // The whole reason `prefix` exists. `adapters/savvycal.ts` looks up
65
+ // `questions.<id>`, so returning the bare id — or the label, which is what a
66
+ // name-shaped search finds on a record that has no `name` — is a key that
67
+ // never applies.
68
+ const adapter = readFileSync(join(ENGINE, "adapters", "savvycal.ts"), "utf8");
69
+ expect(adapter).toContain("`questions.${field.id}`");
70
+ expect(WIDGET_FIELD_SOURCE.savvycal).toEqual({ path: ["customFields"], key: "id", prefix: "questions." });
71
+ });
72
+ it("prefixes nothing for the providers whose adapters pass autofill through verbatim", () => {
73
+ // calendly / highlevel / highlevelForm / hubspotMeeting spread `ctx.autofill`
74
+ // straight into query params, and hubspot-form maps the key to its v4 name.
75
+ // None of them adds a prefix, so neither may the table.
76
+ const prefixed = Object.entries(WIDGET_FIELD_SOURCE)
77
+ .filter(([, source]) => source.prefix !== undefined)
78
+ .map(([type]) => type);
79
+ expect(prefixed).toEqual(["savvycal"]);
80
+ });
81
+ });
82
+ //# sourceMappingURL=flow-input-fields.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-input-fields.test.js","sourceRoot":"","sources":["../../src/hono/flow-input-fields.test.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import { createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";
19
19
  import { z } from "zod";
20
20
  export declare const BAKER_UI_SERVER_NAME = "baker_ui";
21
21
  export declare const FLOW_INPUT_TOOL_NAME = "mcp__baker_ui__request_flow_input";
22
+ export declare const RESOURCE_NODE_TYPES: readonly ["calendly", "savvycal", "hubspot", "hubspotMeeting", "highlevel", "highlevelForm"];
22
23
  declare const flowInputRequestShape: z.ZodDiscriminatedUnion<[z.ZodObject<{
23
24
  target: z.ZodLiteral<"sideEffect">;
24
25
  flowSlug: z.ZodString;
@@ -50,6 +51,9 @@ export declare const flowInputResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject
50
51
  nodeId: z.ZodString;
51
52
  sideEffectId: z.ZodOptional<z.ZodString>;
52
53
  secretFieldsSet: z.ZodArray<z.ZodString>;
54
+ destination: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
55
+ connected: z.ZodOptional<z.ZodBoolean>;
56
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
53
57
  note: z.ZodOptional<z.ZodString>;
54
58
  }, z.core.$strip>, z.ZodObject<{
55
59
  status: z.ZodLiteral<"declined">;
@@ -64,6 +68,9 @@ export declare const flowInputResolutionSchema: z.ZodObject<{
64
68
  nodeId: z.ZodString;
65
69
  sideEffectId: z.ZodOptional<z.ZodString>;
66
70
  secretFieldsSet: z.ZodArray<z.ZodString>;
71
+ destination: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
72
+ connected: z.ZodOptional<z.ZodBoolean>;
73
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
67
74
  note: z.ZodOptional<z.ZodString>;
68
75
  }, z.core.$strip>, z.ZodObject<{
69
76
  status: z.ZodLiteral<"declined">;
@@ -153,6 +160,35 @@ export declare function normalizeFlowInputToolInput(input: Record<string, unknow
153
160
  */
154
161
  export declare function sanitizeFlowRequests(requests: FlowInputRequestInput[]): FlowInputRequestInput[];
155
162
  type AnyRecord = Record<string, unknown>;
163
+ /**
164
+ * Where each widget keeps its fields, and what an adapter calls them.
165
+ *
166
+ * This is a lookup table rather than a search because the answer the agent
167
+ * needs is not "which strings in this blob look like names" — it is "which keys
168
+ * would `autofilledFields` have to use". Those are different lists, and a
169
+ * search returns the first one while the result claims to be the second.
170
+ *
171
+ * Searching produced two silent wrongs. A `highlevelForm` select carries
172
+ * `options: [{ label, value }]` one level below the field, so every dropdown
173
+ * choice came back indistinguishable from a field name. And a SavvyCal custom
174
+ * field has no `name` at all — `{ id, label, type, isRequired }` — so the search
175
+ * fell through to its human `label` ("What's your company?") while
176
+ * `adapters/savvycal.ts` reads `ctx.autofill["questions." + field.id]`. Both
177
+ * produce autofill keys that are written, valid, and never apply to anything.
178
+ *
179
+ * `key` is the field's identifier and `prefix` is what the adapter puts in
180
+ * front of it, so what comes back is the literal key to author. Each entry is
181
+ * pinned to the engine's own declarations by `flow-input-fields.test.ts`.
182
+ */
183
+ type WidgetFieldSource = {
184
+ /** Path from `external` to the array of field records; an array segment is mapped over. */
185
+ path: readonly string[];
186
+ /** The key on each record that carries the field's identifier. */
187
+ key: string;
188
+ /** What the adapter prefixes onto it when reading `ctx.autofill`. */
189
+ prefix?: string;
190
+ };
191
+ export declare const WIDGET_FIELD_SOURCE: Record<string, WidgetFieldSource>;
156
192
  /**
157
193
  * Apply one submitted resolution onto a decoded flow tree in place. Returns the
158
194
  * redacted result for the model, or an error note when the target is missing.
@@ -1 +1 @@
1
- {"version":3,"file":"flow-input.d.ts","sourceRoot":"","sources":["../../src/hono/flow-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,kBAAkB,EAAQ,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,oBAAoB,sCAAsC,CAAC;AAsDxE,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;6BAA6E,CAAC;AAEzG,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAgB1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;6BAchC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;iBAAwD,CAAC;AAC/F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,gGAAgG;AAChG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAGnF;AAMD,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA8BxB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAElC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAG/E;AAID;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,qBAAqB,EAAE,CAMnG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,qBAAqB,EAAE,CAuB/F;AAID,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAyDzC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,GAAG,eAAe,CA6BhG;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAQjG;AAYD,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;GAUlC;AAED,+EAA+E;AAC/E,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"flow-input.d.ts","sourceRoot":"","sources":["../../src/hono/flow-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,kBAAkB,EAAQ,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,oBAAoB,sCAAsC,CAAC;AA4BxE,eAAO,MAAM,mBAAmB,YAC9B,UAAU,EACV,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,eAAe,CACP,CAAC;AA6BX,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;6BAA6E,CAAC;AAEzG,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAgB1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;6BAsChC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;iBAAwD,CAAC;AAC/F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,gGAAgG;AAChG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAGnF;AAMD,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA8BxB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAElC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAG/E;AAID;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,qBAAqB,EAAE,CAMnG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,qBAAqB,EAAE,CAuB/F;AAID,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA6DzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,KAAK,iBAAiB,GAAG;IACvB,2FAA2F;IAC3F,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAOjE,CAAC;AAgFF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,GAAG,eAAe,CAwChG;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAQjG;AAYD,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;GAUlC;AAED,+EAA+E;AAC/E,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -34,8 +34,17 @@ const SECRET_FIELDS_BY_SIDE_EFFECT = {
34
34
  crmble: ["apiToken"],
35
35
  goHighlevelContact: [],
36
36
  };
37
+ /**
38
+ * Nothing a widget picker returns is a typed credential — the account is an
39
+ * OAuth connection made in the dashboard, and `external` is public form
40
+ * metadata. This list is empty on purpose rather than absent: the node branch
41
+ * runs `external` through the same scalar filter as a side effect's config, so
42
+ * the day a provider does start returning a token there is one place to name
43
+ * it, instead of a branch that waves everything through.
44
+ */
45
+ const WIDGET_SECRET_FIELDS = [];
37
46
  const SIDE_EFFECT_TYPES = Object.keys(SECRET_FIELDS_BY_SIDE_EFFECT);
38
- const RESOURCE_NODE_TYPES = [
47
+ export const RESOURCE_NODE_TYPES = [
39
48
  "calendly",
40
49
  "savvycal",
41
50
  "hubspot",
@@ -86,6 +95,30 @@ export const flowInputResultSchema = z.discriminatedUnion("status", [
86
95
  nodeId: z.string(),
87
96
  sideEffectId: z.string().optional(),
88
97
  secretFieldsSet: z.array(z.string()),
98
+ /**
99
+ * The non-secret half of what the user just chose — the spreadsheet, the
100
+ * sheet, the portal, the Calendly event. Without it an agent that has just
101
+ * configured a destination still has to call `baker flows show --full` to
102
+ * learn what it is, and in practice maps columns against a guess instead.
103
+ * Both targets fill this: for a side effect anything in
104
+ * `SECRET_FIELDS_BY_SIDE_EFFECT[type]` is redacted to a name in
105
+ * `secretFieldsSet` and never appears here, `NON_DESTINATION_FIELDS[type]`
106
+ * is withheld on top of that, and a widget node's `external` goes through
107
+ * the same scalar filter rather than being waved through on the assumption
108
+ * that no widget holds a secret.
109
+ */
110
+ destination: z.record(z.string(), z.string()).optional(),
111
+ /** Whether an OAuth account is attached. The provider id itself never leaves. */
112
+ connected: z.boolean().optional(),
113
+ /**
114
+ * For a widget node, the autofill keys the resource just written into
115
+ * `form.external` accepts — literally what goes on the left of an
116
+ * `autofilledFields` entry, adapter prefix included (a SavvyCal custom
117
+ * field arrives as `questions.<id>`, which is what `adapters/savvycal.ts`
118
+ * reads). Not secret, and returning it saves a `baker hubspot forms view`
119
+ * or a `flows show --full` the agent otherwise spends a turn on.
120
+ */
121
+ fields: z.array(z.string()).optional(),
89
122
  note: z.string().optional(),
90
123
  }),
91
124
  z.object({
@@ -207,6 +240,88 @@ function declined(nodeId, sideEffectId, reason) {
207
240
  ...(reason ? { reason } : {}),
208
241
  };
209
242
  }
243
+ /**
244
+ * Non-secret config keys that are still not a destination, per side-effect type.
245
+ *
246
+ * `SECRET_FIELDS_BY_SIDE_EFFECT` is a mirror of `FLOW_SECRET_FIELDS` and drives
247
+ * `secretFieldsSet`, whose contract is "names of secret fields the user
248
+ * provided" — so a key cannot be hidden from `destination` by adding it there
249
+ * without also claiming it is a typed credential, which `username` is not.
250
+ * Hence a second list: not a secret, not an answer either.
251
+ *
252
+ * `username` is the basic-auth username the dashboard collects immediately
253
+ * above `password` (`FlowInputBlock.tsx`). The password is redacted and the
254
+ * username is not, so echoing it hands the model half a credential in exchange
255
+ * for nothing — nothing on an `httpWebhook` is addressed by it, and `apiUrl` is
256
+ * already the destination the agent needs.
257
+ */
258
+ const NON_DESTINATION_FIELDS = {
259
+ httpWebhook: ["username"],
260
+ };
261
+ /**
262
+ * The plain-scalar, non-secret subset of a config or `external` blob.
263
+ *
264
+ * Values are echoed only when they are strings or numbers: a nested blob is not
265
+ * a destination the agent can map against, and echoing one would be a way to
266
+ * launder something sensitive through a field nobody classified.
267
+ */
268
+ function scalarSummary(source, withheld) {
269
+ const summary = {};
270
+ for (const [key, value] of Object.entries(source)) {
271
+ if (withheld.includes(key))
272
+ continue;
273
+ if (typeof value === "string" || typeof value === "number")
274
+ summary[key] = String(value);
275
+ }
276
+ return summary;
277
+ }
278
+ export const WIDGET_FIELD_SOURCE = {
279
+ calendly: { path: ["customQuestions"], key: "name" },
280
+ savvycal: { path: ["customFields"], key: "id", prefix: "questions." },
281
+ hubspot: { path: ["fieldGroups", "fields"], key: "name" },
282
+ hubspotMeeting: { path: ["customParams", "formFields"], key: "name" },
283
+ highlevel: { path: ["customFormFields"], key: "name" },
284
+ highlevelForm: { path: ["fields"], key: "name" },
285
+ };
286
+ /**
287
+ * Follow a path into `external`, mapping over any array segment on the way.
288
+ *
289
+ * `["fieldGroups", "fields"]` therefore means "every `fields` entry of every
290
+ * `fieldGroups` entry", which is HubSpot's two-level shape, while
291
+ * `["customParams", "formFields"]` is a plain object hop.
292
+ */
293
+ function descend(value, segments) {
294
+ if (Array.isArray(value))
295
+ return value.flatMap((item) => descend(item, segments));
296
+ if (segments.length === 0)
297
+ return value == null ? [] : [value];
298
+ if (!value || typeof value !== "object")
299
+ return [];
300
+ const [head, ...rest] = segments;
301
+ return descend(value[head], rest);
302
+ }
303
+ /**
304
+ * The autofill keys this widget's resource accepts — exactly what the agent
305
+ * writes into `nodeData.form.autofilledFields`.
306
+ *
307
+ * Uncapped on purpose: this is the resource's own field list, bounded by what
308
+ * the user picked, not an open-ended scrape that needs a ceiling. A cap here
309
+ * would silently drop fields from a list whose whole value is being complete.
310
+ * A widget with no field list of its own (or a type not in the table) returns
311
+ * nothing rather than a guess.
312
+ */
313
+ function externalFieldNames(nodeType, external) {
314
+ const source = WIDGET_FIELD_SOURCE[nodeType];
315
+ if (!source)
316
+ return [];
317
+ const names = descend(external, source.path).flatMap((record) => {
318
+ const value = record && typeof record === "object" ? record[source.key] : undefined;
319
+ if (typeof value === "number")
320
+ return [`${source.prefix ?? ""}${value}`];
321
+ return typeof value === "string" && value ? [`${source.prefix ?? ""}${value}`] : [];
322
+ });
323
+ return [...new Set(names)];
324
+ }
210
325
  /** Patch a side effect's confidential fields; returns the redacted result. */
211
326
  function applySideEffect(node, resolution) {
212
327
  const sideEffects = Array.isArray(node.sideEffects) ? node.sideEffects : [];
@@ -217,16 +332,26 @@ function applySideEffect(node, resolution) {
217
332
  if (resolution.encryptedConfig !== undefined) {
218
333
  effect.encryptedConfig = resolution.encryptedConfig;
219
334
  }
220
- if (resolution.oauthProviderId !== undefined) {
335
+ // Truthy, not `!== undefined`. `oauthProviderId` is an optional `string`, so
336
+ // writing a `null` or `""` through here produces a flow file that typechecks
337
+ // nowhere and reads as "connected" to a presence-only check.
338
+ if (resolution.oauthProviderId) {
221
339
  effect.oauthProviderId = resolution.oauthProviderId;
222
340
  }
223
341
  const secretFields = SECRET_FIELDS_BY_SIDE_EFFECT[resolution.sideEffectType] ?? [];
224
- const secretFieldsSet = Object.keys(resolution.encryptedConfig ?? {}).filter((k) => secretFields.includes(k));
342
+ const config = resolution.encryptedConfig ?? {};
343
+ const secretFieldsSet = Object.keys(config).filter((k) => secretFields.includes(k));
344
+ const destination = scalarSummary(config, [
345
+ ...secretFields,
346
+ ...(NON_DESTINATION_FIELDS[resolution.sideEffectType] ?? []),
347
+ ]);
225
348
  return {
226
349
  status: "submitted",
227
350
  nodeId: resolution.nodeId,
228
351
  sideEffectId: resolution.sideEffectId,
229
352
  secretFieldsSet,
353
+ ...(Object.keys(destination).length > 0 ? { destination } : {}),
354
+ ...(effect.oauthProviderId ? { connected: true } : {}),
230
355
  ...(resolution.note ? { note: resolution.note } : {}),
231
356
  };
232
357
  }
@@ -250,10 +375,21 @@ export function applyFlowResolution(tree, resolution) {
250
375
  const nodeData = (node.nodeData ?? {});
251
376
  const form = (nodeData.form ?? {});
252
377
  node.nodeData = { ...nodeData, form: { ...form, external: resolution.external } };
378
+ // Same shape as the side-effect branch. A widget node is the case where a
379
+ // second lookup costs most — the agent needs the resource's field names to
380
+ // author `autofilledFields` — so it is the last place that should answer with
381
+ // nothing but an echo of the id it was given.
382
+ const destination = scalarSummary(resolution.external, WIDGET_SECRET_FIELDS);
383
+ // Read the type off the node rather than the payload: a node resolution
384
+ // carries no `nodeType`, and which container holds the fields depends on it.
385
+ const fields = externalFieldNames(typeof nodeData.type === "string" ? nodeData.type : "", resolution.external);
253
386
  return {
254
387
  status: "submitted",
255
388
  nodeId: resolution.nodeId,
256
389
  secretFieldsSet: [],
390
+ ...(Object.keys(destination).length > 0 ? { destination } : {}),
391
+ ...(Object.keys(resolution.external).length > 0 ? { connected: true } : {}),
392
+ ...(fields.length > 0 ? { fields } : {}),
257
393
  ...(resolution.note ? { note: resolution.note } : {}),
258
394
  };
259
395
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flow-input.js","sourceRoot":"","sources":["../../src/hono/flow-input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-input.js","sourceRoot":"","sources":["../../src/hono/flow-input.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { applyFlowResolution, groupResolutionsBySlug, normalizeFlowInputToolInput, parseFlowInputDecision, sanitizeFlowRequests, } from "./flow-input.js";
3
- function tree() {
3
+ function tree(nodeType = "hubspot") {
4
4
  return {
5
5
  id: "root",
6
6
  name: "root",
@@ -8,7 +8,7 @@ function tree() {
8
8
  {
9
9
  id: "n1",
10
10
  name: "Thanks",
11
- nodeData: { type: "hubspot", form: { autofilledFields: {}, external: null } },
11
+ nodeData: { type: nodeType, form: { autofilledFields: {}, external: null } },
12
12
  sideEffects: [{ id: "se1", type: "httpWebhook", triggerId: {}, encryptedConfig: null }],
13
13
  children: [],
14
14
  },
@@ -68,6 +68,56 @@ describe("applyFlowResolution", () => {
68
68
  expect(se.encryptedConfig?.bearerToken).toBe("s3cr3t");
69
69
  expect(JSON.stringify(result)).not.toContain("s3cr3t");
70
70
  });
71
+ // The destination is what makes a mapping real. Before it came back, an agent
72
+ // that had just configured a Sheet still had to call `baker flows show --full`
73
+ // to learn which Sheet — and in practice mapped columns against a guess.
74
+ it("echoes the non-secret destination the user picked", () => {
75
+ const result = applyFlowResolution(tree(), {
76
+ target: "sideEffect",
77
+ flowSlug: "contact",
78
+ nodeId: "n1",
79
+ sideEffectId: "se1",
80
+ sideEffectType: "googleSpreadsheet",
81
+ status: "submitted",
82
+ encryptedConfig: { companyId: 7, spreadsheetId: "1AbC", sheetName: "Leads" },
83
+ });
84
+ expect(result.status === "submitted" && result.destination).toEqual({
85
+ companyId: "7",
86
+ spreadsheetId: "1AbC",
87
+ sheetName: "Leads",
88
+ });
89
+ });
90
+ it("keeps a secret out of the destination it echoes", () => {
91
+ const result = applyFlowResolution(tree(), {
92
+ target: "sideEffect",
93
+ flowSlug: "contact",
94
+ nodeId: "n1",
95
+ sideEffectId: "se1",
96
+ sideEffectType: "httpWebhook",
97
+ status: "submitted",
98
+ encryptedConfig: { apiUrl: "https://x.test/hook", bearerToken: "s3cr3t" },
99
+ });
100
+ expect(result.status === "submitted" && result.destination).toEqual({ apiUrl: "https://x.test/hook" });
101
+ expect(result.status === "submitted" && result.secretFieldsSet).toEqual(["bearerToken"]);
102
+ expect(JSON.stringify(result)).not.toContain("s3cr3t");
103
+ });
104
+ // The basic-auth username is not a typed credential, so it is not in
105
+ // `FLOW_SECRET_FIELDS` and the scalar filter let it through — handing the
106
+ // model half a credential in exchange for nothing, since nothing on an
107
+ // httpWebhook is addressed by it and `apiUrl` is already the destination.
108
+ it("withholds a non-secret field that is not a destination either", () => {
109
+ const result = applyFlowResolution(tree(), {
110
+ target: "sideEffect",
111
+ flowSlug: "contact",
112
+ nodeId: "n1",
113
+ sideEffectId: "se1",
114
+ sideEffectType: "httpWebhook",
115
+ status: "submitted",
116
+ encryptedConfig: { apiUrl: "https://x.test/hook", username: "svc-baker", password: "s3cr3t" },
117
+ });
118
+ expect(result.status === "submitted" && result.destination).toEqual({ apiUrl: "https://x.test/hook" });
119
+ expect(JSON.stringify(result)).not.toContain("svc-baker");
120
+ });
71
121
  it("writes widget external onto the node", () => {
72
122
  const t = tree();
73
123
  const result = applyFlowResolution(t, {
@@ -82,6 +132,164 @@ describe("applyFlowResolution", () => {
82
132
  const external = (t.children[0]?.nodeData).form?.external;
83
133
  expect(external?.name).toBe("Contact us");
84
134
  });
135
+ // A widget node is where a second lookup costs most: the agent needs the
136
+ // resource's field names before it can author `autofilledFields`. Answering
137
+ // with nothing but the id it was handed sent it to `baker hubspot forms view`
138
+ // for something the resolution already had.
139
+ it("answers a widget node with the same destination/connected shape as a side effect", () => {
140
+ const result = applyFlowResolution(tree(), {
141
+ target: "node",
142
+ flowSlug: "contact",
143
+ nodeId: "n1",
144
+ status: "submitted",
145
+ external: {
146
+ id: "form-9",
147
+ name: "Contact us",
148
+ portalId: 42,
149
+ region: "eu1",
150
+ // `fieldGroups`, which is what the dashboard picker persists and what
151
+ // `HubSpotNodeData` declares — not HubSpot's raw `formFieldGroups`.
152
+ fieldGroups: [{ fields: [{ name: "email" }, { name: "firstname" }] }],
153
+ },
154
+ });
155
+ expect(result.status === "submitted" && result.connected).toBe(true);
156
+ expect(result.status === "submitted" && result.destination).toEqual({
157
+ id: "form-9",
158
+ name: "Contact us",
159
+ portalId: "42",
160
+ region: "eu1",
161
+ });
162
+ // "Contact us" is the FORM's name, not a field. Every provider labels the
163
+ // resource with the same key its fields use, so a walk that starts on the
164
+ // record itself puts the title at the head of the list the agent authors
165
+ // `autofilledFields` against. It is already in `destination`.
166
+ expect(result.status === "submitted" && result.fields).toEqual(["email", "firstname"]);
167
+ });
168
+ it("reads each provider's own field container, not whatever looks name-shaped", () => {
169
+ const result = applyFlowResolution(tree("calendly"), {
170
+ target: "node",
171
+ flowSlug: "contact",
172
+ nodeId: "n1",
173
+ status: "submitted",
174
+ external: { slug: "intro-call", customQuestions: [{ name: "What are you building?" }] },
175
+ });
176
+ expect(result.status === "submitted" && result.fields).toEqual(["What are you building?"]);
177
+ expect(result.status === "submitted" && result.destination).toEqual({ slug: "intro-call" });
178
+ });
179
+ /**
180
+ * `fields` is presented as what `autofilledFields` is authored against, so a
181
+ * value in it that is not an autofill key is worse than an absent list: the
182
+ * agent writes it, the file is valid, and the value silently never applies.
183
+ *
184
+ * Both cases below came out of a search-for-anything-name-shaped walk, and
185
+ * both are invisible without a fixture in the provider's real shape.
186
+ */
187
+ describe("the keys it returns are the keys autofill actually uses", () => {
188
+ it("does not mistake a select's option labels for fields", () => {
189
+ const result = applyFlowResolution(tree("highlevelForm"), {
190
+ target: "node",
191
+ flowSlug: "contact",
192
+ nodeId: "n1",
193
+ status: "submitted",
194
+ external: {
195
+ id: "hl-1",
196
+ name: "Contact",
197
+ fields: [
198
+ { name: "email", type: "email", required: true },
199
+ {
200
+ name: "interest",
201
+ type: "select",
202
+ required: false,
203
+ label: "What are you after?",
204
+ options: [
205
+ { label: "Solar panels", value: "solar" },
206
+ { label: "Heat pump", value: "hp" },
207
+ ],
208
+ },
209
+ ],
210
+ },
211
+ });
212
+ expect(result.status === "submitted" && result.fields).toEqual(["email", "interest"]);
213
+ });
214
+ it("returns a SavvyCal custom field as the prefixed id its adapter reads, not its label", () => {
215
+ // `adapters/savvycal.ts` reads `ctx.autofill["questions." + field.id]`,
216
+ // and a SavvyCal custom field carries no `name` at all — so anything
217
+ // deriving a key by looking for one lands on the human label.
218
+ const result = applyFlowResolution(tree("savvycal"), {
219
+ target: "node",
220
+ flowSlug: "contact",
221
+ nodeId: "n1",
222
+ status: "submitted",
223
+ external: {
224
+ id: "sc-1",
225
+ slug: "intro",
226
+ customFields: [{ id: "7421", label: "What's your company?", type: "text", isRequired: true }],
227
+ },
228
+ });
229
+ expect(result.status === "submitted" && result.fields).toEqual(["questions.7421"]);
230
+ });
231
+ it("says nothing rather than guessing for a widget with no field list", () => {
232
+ const result = applyFlowResolution(tree("highlevel"), {
233
+ target: "node",
234
+ flowSlug: "contact",
235
+ nodeId: "n1",
236
+ status: "submitted",
237
+ external: { id: "cal-1", name: "Discovery call", widgetSlug: "disco" },
238
+ });
239
+ expect(result.status === "submitted" && result.fields).toBeUndefined();
240
+ expect(result.status === "submitted" && result.destination).toEqual({
241
+ id: "cal-1",
242
+ name: "Discovery call",
243
+ widgetSlug: "disco",
244
+ });
245
+ });
246
+ it("reads a hubspotMeeting's fields from customParams, one object hop down", () => {
247
+ const result = applyFlowResolution(tree("hubspotMeeting"), {
248
+ target: "node",
249
+ flowSlug: "contact",
250
+ nodeId: "n1",
251
+ status: "submitted",
252
+ external: {
253
+ name: "Intro",
254
+ slug: "intro",
255
+ link: "https://meetings.hubspot.com/intro",
256
+ linkType: "PERSONAL_LINK",
257
+ customParams: { formFields: [{ name: "firstName" }, { name: "company" }] },
258
+ },
259
+ });
260
+ expect(result.status === "submitted" && result.fields).toEqual(["firstName", "company"]);
261
+ });
262
+ });
263
+ it("reports a widget node with an empty resource as not connected", () => {
264
+ const result = applyFlowResolution(tree(), {
265
+ target: "node",
266
+ flowSlug: "contact",
267
+ nodeId: "n1",
268
+ status: "submitted",
269
+ external: {},
270
+ });
271
+ expect(result.status === "submitted" && result.connected).toBeUndefined();
272
+ expect(result.status === "submitted" && result.destination).toBeUndefined();
273
+ });
274
+ // `oauthProviderId` is an optional `string`. A null written through here
275
+ // produces a flow file that typechecks nowhere, and reads as "connected" to
276
+ // any presence-only check.
277
+ it("never writes a null oauth ref into the tree, and does not claim connected", () => {
278
+ const t = tree();
279
+ const result = applyFlowResolution(t, {
280
+ target: "sideEffect",
281
+ flowSlug: "contact",
282
+ nodeId: "n1",
283
+ sideEffectId: "se1",
284
+ sideEffectType: "googleSpreadsheet",
285
+ status: "submitted",
286
+ oauthProviderId: null,
287
+ encryptedConfig: { spreadsheetId: "1AbC" },
288
+ });
289
+ const se = t.children[0]?.sideEffects[0];
290
+ expect(se.oauthProviderId).toBeUndefined();
291
+ expect(result.status === "submitted" && result.connected).toBeUndefined();
292
+ });
85
293
  it("declines when the node is missing", () => {
86
294
  const result = applyFlowResolution(tree(), {
87
295
  target: "sideEffect",
@@ -1 +1 @@
1
- {"version":3,"file":"flow-input.test.js","sourceRoot":"","sources":["../../src/hono/flow-input.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-input.test.js","sourceRoot":"","sources":["../../src/hono/flow-input.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tag-fields.d.ts","sourceRoot":"","sources":["../../src/hono/tag-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAmBnE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CA+BnE,CAAC"}
1
+ {"version":3,"file":"tag-fields.d.ts","sourceRoot":"","sources":["../../src/hono/tag-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAoBnE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAgCnE,CAAC"}
@@ -34,6 +34,7 @@ export const SECRET_FIELDS_BY_TYPE = {
34
34
  datafast: ["apiKey"],
35
35
  recaptcha: [],
36
36
  twitterAds: ["oauthProviderId"],
37
+ microsoftAds: ["apiToken"],
37
38
  };
38
39
  /**
39
40
  * Every config field a tag type accepts, secret fields included. A model cannot
@@ -71,5 +72,6 @@ export const CONFIG_FIELDS_BY_TYPE = {
71
72
  datafast: ["websiteId", "apiKey", "mode"],
72
73
  recaptcha: ["siteKey", "hideBadge"],
73
74
  twitterAds: ["pixelId", "oauthProviderId"],
75
+ microsoftAds: ["tagId", "apiToken", "customerId"],
74
76
  };
75
77
  //# sourceMappingURL=tag-fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tag-fields.js","sourceRoot":"","sources":["../../src/hono/tag-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAsC;IACtE,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;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsC;IACtE,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,CAAC;IAC9D,SAAS,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACxC,SAAS,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;IACnE,MAAM,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,GAAG,EAAE,CAAC,WAAW,CAAC;IAClB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,OAAO,EAAE,CAAC,WAAW,CAAC;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,iBAAiB,CAAC;IACtD,IAAI,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC;IAC9D,eAAe,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,aAAa,CAAC;IAC9D,gBAAgB,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,CAAC;IAC9G,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,kBAAkB,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACpD,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC;IAC9E,OAAO,EAAE;QACP,cAAc;QACd,MAAM;QACN,WAAW;QACX,cAAc;QACd,aAAa;QACb,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,gBAAgB;KACjB;IACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;IACnC,UAAU,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;CAC3C,CAAC"}
1
+ {"version":3,"file":"tag-fields.js","sourceRoot":"","sources":["../../src/hono/tag-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAsC;IACtE,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;IAC/B,YAAY,EAAE,CAAC,UAAU,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsC;IACtE,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,CAAC;IAC9D,SAAS,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACxC,SAAS,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;IACnE,MAAM,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,GAAG,EAAE,CAAC,WAAW,CAAC;IAClB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,OAAO,EAAE,CAAC,WAAW,CAAC;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,iBAAiB,CAAC;IACtD,IAAI,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC;IAC9D,eAAe,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,aAAa,CAAC;IAC9D,gBAAgB,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,CAAC;IAC9G,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,kBAAkB,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACpD,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC;IAC9E,OAAO,EAAE;QACP,cAAc;QACd,MAAM;QACN,WAAW;QACX,cAAc;QACd,aAAa;QACb,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,gBAAgB;KACjB;IACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;IACnC,UAAU,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAC1C,YAAY,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC;CAClD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-bridge",
3
- "version": "0.77.0",
3
+ "version": "0.79.0-dev.7fb8e0c69",
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",