@koda-sl/baker-bridge 0.92.5 → 0.92.6-dev.48246ea89

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.
@@ -1,26 +1,33 @@
1
1
  import { z } from "zod";
2
2
  export declare const CONNECTION_INPUT_TOOL_NAME = "mcp__baker_ui__request_connection";
3
3
  /**
4
- * Connectable data platforms. X Ads belongs here now that it installs like the
5
- * rest it reads campaigns, line items and promoted tweets and stages writes
6
- * that apply at Publish, so asking the user to connect it promises nothing that
7
- * isn't there. Meta got here the same way.
4
+ * Every connection Baker has `OAUTH_PROVIDER_TYPES` in the backend, which a
5
+ * test holds this to. The tools were missing for as long as the list was "data
6
+ * platforms", so an agent that hit "HubSpot is not connected" could only tell
7
+ * the user to go to Settings, while the card that would have connected it sat
8
+ * one platform name away.
8
9
  *
9
10
  * Keep this in step with `comingSoon` in the dashboard's
10
11
  * `oauth-provider-definitions.ts` and `connectionPlatformValidator` in the
11
12
  * backend: a platform live in one and missing from another is a door that
12
13
  * looks open from one side only.
13
14
  */
14
- export declare const CONNECTION_PLATFORMS: readonly ["google-ads", "linkedin", "meta", "google-analytics", "google-search-console", "google-tag-manager", "x-ads"];
15
+ export declare const CONNECTION_PLATFORMS: readonly ["google-ads", "linkedin", "meta", "google-analytics", "google-search-console", "google-tag-manager", "x-ads", "hubspot", "google-drive", "highlevel", "pipedrive", "calendly", "savvycal"];
15
16
  export type ConnectionPlatform = (typeof CONNECTION_PLATFORMS)[number];
16
17
  declare const connectionRequestShape: z.ZodObject<{
17
18
  platform: z.ZodEnum<{
19
+ calendly: "calendly";
18
20
  "google-ads": "google-ads";
19
21
  "google-analytics": "google-analytics";
22
+ "google-drive": "google-drive";
20
23
  "google-search-console": "google-search-console";
21
24
  "google-tag-manager": "google-tag-manager";
25
+ highlevel: "highlevel";
26
+ hubspot: "hubspot";
22
27
  linkedin: "linkedin";
23
28
  meta: "meta";
29
+ pipedrive: "pipedrive";
30
+ savvycal: "savvycal";
24
31
  "x-ads": "x-ads";
25
32
  }>;
26
33
  reason: z.ZodString;
@@ -28,12 +35,18 @@ declare const connectionRequestShape: z.ZodObject<{
28
35
  export declare const connectionInputToolShape: {
29
36
  connections: z.ZodArray<z.ZodObject<{
30
37
  platform: z.ZodEnum<{
38
+ calendly: "calendly";
31
39
  "google-ads": "google-ads";
32
40
  "google-analytics": "google-analytics";
41
+ "google-drive": "google-drive";
33
42
  "google-search-console": "google-search-console";
34
43
  "google-tag-manager": "google-tag-manager";
44
+ highlevel: "highlevel";
45
+ hubspot: "hubspot";
35
46
  linkedin: "linkedin";
36
47
  meta: "meta";
48
+ pipedrive: "pipedrive";
49
+ savvycal: "savvycal";
37
50
  "x-ads": "x-ads";
38
51
  }>;
39
52
  reason: z.ZodString;
@@ -43,25 +56,38 @@ export declare const connectionInputToolShape: {
43
56
  export declare const connectionInputResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
44
57
  status: z.ZodLiteral<"connected">;
45
58
  platform: z.ZodEnum<{
59
+ calendly: "calendly";
46
60
  "google-ads": "google-ads";
47
61
  "google-analytics": "google-analytics";
62
+ "google-drive": "google-drive";
48
63
  "google-search-console": "google-search-console";
49
64
  "google-tag-manager": "google-tag-manager";
65
+ highlevel: "highlevel";
66
+ hubspot: "hubspot";
50
67
  linkedin: "linkedin";
51
68
  meta: "meta";
69
+ pipedrive: "pipedrive";
70
+ savvycal: "savvycal";
52
71
  "x-ads": "x-ads";
53
72
  }>;
54
73
  accountLabel: z.ZodOptional<z.ZodString>;
55
74
  selected: z.ZodArray<z.ZodString>;
75
+ cannotRead: z.ZodOptional<z.ZodArray<z.ZodString>>;
56
76
  }, z.core.$strip>, z.ZodObject<{
57
77
  status: z.ZodLiteral<"declined">;
58
78
  platform: z.ZodEnum<{
79
+ calendly: "calendly";
59
80
  "google-ads": "google-ads";
60
81
  "google-analytics": "google-analytics";
82
+ "google-drive": "google-drive";
61
83
  "google-search-console": "google-search-console";
62
84
  "google-tag-manager": "google-tag-manager";
85
+ highlevel: "highlevel";
86
+ hubspot: "hubspot";
63
87
  linkedin: "linkedin";
64
88
  meta: "meta";
89
+ pipedrive: "pipedrive";
90
+ savvycal: "savvycal";
65
91
  "x-ads": "x-ads";
66
92
  }>;
67
93
  reason: z.ZodOptional<z.ZodString>;
@@ -71,25 +97,38 @@ export declare const connectionInputResolutionSchema: z.ZodObject<{
71
97
  results: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
72
98
  status: z.ZodLiteral<"connected">;
73
99
  platform: z.ZodEnum<{
100
+ calendly: "calendly";
74
101
  "google-ads": "google-ads";
75
102
  "google-analytics": "google-analytics";
103
+ "google-drive": "google-drive";
76
104
  "google-search-console": "google-search-console";
77
105
  "google-tag-manager": "google-tag-manager";
106
+ highlevel: "highlevel";
107
+ hubspot: "hubspot";
78
108
  linkedin: "linkedin";
79
109
  meta: "meta";
110
+ pipedrive: "pipedrive";
111
+ savvycal: "savvycal";
80
112
  "x-ads": "x-ads";
81
113
  }>;
82
114
  accountLabel: z.ZodOptional<z.ZodString>;
83
115
  selected: z.ZodArray<z.ZodString>;
116
+ cannotRead: z.ZodOptional<z.ZodArray<z.ZodString>>;
84
117
  }, z.core.$strip>, z.ZodObject<{
85
118
  status: z.ZodLiteral<"declined">;
86
119
  platform: z.ZodEnum<{
120
+ calendly: "calendly";
87
121
  "google-ads": "google-ads";
88
122
  "google-analytics": "google-analytics";
123
+ "google-drive": "google-drive";
89
124
  "google-search-console": "google-search-console";
90
125
  "google-tag-manager": "google-tag-manager";
126
+ highlevel: "highlevel";
127
+ hubspot: "hubspot";
91
128
  linkedin: "linkedin";
92
129
  meta: "meta";
130
+ pipedrive: "pipedrive";
131
+ savvycal: "savvycal";
93
132
  "x-ads": "x-ads";
94
133
  }>;
95
134
  reason: z.ZodOptional<z.ZodString>;
@@ -109,12 +148,18 @@ export declare function normalizeConnectionInputToolInput(input: unknown): Conne
109
148
  export declare function createConnectionInputTool(): import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
110
149
  connections: z.ZodArray<z.ZodObject<{
111
150
  platform: z.ZodEnum<{
151
+ calendly: "calendly";
112
152
  "google-ads": "google-ads";
113
153
  "google-analytics": "google-analytics";
154
+ "google-drive": "google-drive";
114
155
  "google-search-console": "google-search-console";
115
156
  "google-tag-manager": "google-tag-manager";
157
+ highlevel: "highlevel";
158
+ hubspot: "hubspot";
116
159
  linkedin: "linkedin";
117
160
  meta: "meta";
161
+ pipedrive: "pipedrive";
162
+ savvycal: "savvycal";
118
163
  "x-ads": "x-ads";
119
164
  }>;
120
165
  reason: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"connection-input.d.ts","sourceRoot":"","sources":["../../src/hono/connection-input.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B,sCAAsC,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,YAC/B,YAAY,EACZ,UAAU,EACV,MAAM,EACN,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,OAAO,CACC,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,QAAA,MAAM,sBAAsB;;;;;;;;;;;iBAK1B,CAAC;AAEH,eAAO,MAAM,wBAAwB;IACnC,WAAW;;;;;;;;;;;;IAKX,UAAU;CAKX,CAAC;AAIF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;6BActC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8D,CAAC;AAC3G,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,wFAAwF;AACxF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,GAAG,IAAI,CAG/F;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,EAAE,CAgB1F;AASD,wBAAgB,yBAAyB;;;;;;;;;;;;;;GAUxC"}
1
+ {"version":3,"file":"connection-input.d.ts","sourceRoot":"","sources":["../../src/hono/connection-input.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B,sCAAsC,CAAC;AAE9E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,YAC/B,YAAY,EACZ,UAAU,EACV,MAAM,EACN,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,cAAc,EACd,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,CACF,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;iBAK1B,CAAC;AAEH,eAAO,MAAM,wBAAwB;IACnC,WAAW;;;;;;;;;;;;;;;;;;IAKX,UAAU;CAKX,CAAC;AAIF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAgBtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8D,CAAC;AAC3G,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,wFAAwF;AACxF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,GAAG,IAAI,CAG/F;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,EAAE,CAgB1F;AASD,wBAAgB,yBAAyB;;;;;;;;;;;;;;;;;;;;GAUxC"}
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * `request_connection` — the third `baker_ui` blocking tool (alongside
3
3
  * `request_tag_input` and `request_flow_input`). It lets the chat agent ask the
4
- * user to connect a data platform (Google Ads, LinkedIn Ads, Meta Ads, X Ads,
5
- * GA4, Search Console, Tag Manager) and pick which accounts it may read, without the
6
- * user leaving the chat for the Integrations page.
4
+ * user to connect or reconnect anything the Integrations page connects: an
5
+ * ad or data platform (Google Ads, LinkedIn Ads, Meta Ads, X Ads, GA4, Search
6
+ * Console, Tag Manager), where they also pick which accounts it may read, or a
7
+ * tool (HubSpot, Google Drive, GoHighLevel, Pipedrive, Calendly, SavvyCal),
8
+ * where connecting is the whole answer — without the user leaving the chat.
7
9
  *
8
10
  * Nothing confidential passes through the model: the bridge parks the turn in
9
11
  * `canUseTool`, the dashboard runs the OAuth popup and writes the selection onto
@@ -19,10 +21,11 @@ import { z } from "zod";
19
21
  import { toToolInputArray } from "./tool-input.js";
20
22
  export const CONNECTION_INPUT_TOOL_NAME = "mcp__baker_ui__request_connection";
21
23
  /**
22
- * Connectable data platforms. X Ads belongs here now that it installs like the
23
- * rest it reads campaigns, line items and promoted tweets and stages writes
24
- * that apply at Publish, so asking the user to connect it promises nothing that
25
- * isn't there. Meta got here the same way.
24
+ * Every connection Baker has `OAUTH_PROVIDER_TYPES` in the backend, which a
25
+ * test holds this to. The tools were missing for as long as the list was "data
26
+ * platforms", so an agent that hit "HubSpot is not connected" could only tell
27
+ * the user to go to Settings, while the card that would have connected it sat
28
+ * one platform name away.
26
29
  *
27
30
  * Keep this in step with `comingSoon` in the dashboard's
28
31
  * `oauth-provider-definitions.ts` and `connectionPlatformValidator` in the
@@ -37,6 +40,12 @@ export const CONNECTION_PLATFORMS = [
37
40
  "google-search-console",
38
41
  "google-tag-manager",
39
42
  "x-ads",
43
+ "hubspot",
44
+ "google-drive",
45
+ "highlevel",
46
+ "pipedrive",
47
+ "calendly",
48
+ "savvycal",
40
49
  ];
41
50
  const connectionRequestShape = z.object({
42
51
  platform: z.enum(CONNECTION_PLATFORMS).describe("Which platform the user needs to connect"),
@@ -65,6 +74,8 @@ export const connectionInputResultSchema = z.discriminatedUnion("status", [
65
74
  accountLabel: z.string().optional(),
66
75
  /** Names of the accounts/properties/sites/containers the user granted. */
67
76
  selected: z.array(z.string()),
77
+ /** What the connection still does not allow Baker to read, in the user's words (HubSpot). */
78
+ cannotRead: z.array(z.string()).optional(),
68
79
  }),
69
80
  z.object({
70
81
  status: z.literal("declined"),
@@ -102,10 +113,10 @@ export function normalizeConnectionInputToolInput(input) {
102
113
  return requests;
103
114
  }
104
115
  const CONNECTION_INPUT_TOOL_DESCRIPTION = [
105
- "Ask the user to connect a data platform Google Ads, LinkedIn Ads, Meta Ads, X Ads, Google Analytics 4, Google Search Console, or Google Tag Manager and pick which accounts Baker may read. BLOCKS until they resolve it in the dashboard.",
106
- "Use it the moment a command tells you the platform isn't connected, instead of telling the user to go to Settings. Each entry in `connections` becomes a tab, so ask for everything the task needs in ONE call.",
107
- "`reason` is shown to the user: say what connecting unlocks in their terms ('so I can see which campaigns are actually converting'), never in technical terms.",
108
- "A declined tab is not an error — carry on with what you can do without it and say what stays unavailable. Results name only the account and what was selected; no credentials ever reach you.",
116
+ "Ask the user to connect or reconnect — one of Baker's connections, inside the chat: an ad or data platform (Google Ads, LinkedIn Ads, Meta Ads, X Ads, Google Analytics 4, Google Search Console, Google Tag Manager), where they also pick which accounts Baker may read, or a tool (HubSpot, Google Drive, GoHighLevel, Pipedrive, Calendly, SavvyCal). BLOCKS until they resolve it in the dashboard.",
117
+ "Use it the moment a command tells you a platform isn't connected, OR that it is connected but does not allow what you asked (a `request_connection` fix, `HUBSPOT_RECONNECT_REQUIRED`, a read-only connection) — the card shows Reconnect when the connection exists. Never tell the user to go to Settings instead. Each entry in `connections` becomes a tab, so ask for everything the task needs in ONE call.",
118
+ "`reason` is shown to the user: say what connecting unlocks in their terms ('so I can see which campaigns are actually converting', 'so I can count a contact becoming a customer'), never in technical terms.",
119
+ "A declined tab is not an error — carry on with what you can do without it and say what stays unavailable. A connected result may list `cannotRead`: things the connection still does not allow — do not promise those. Results name only the account and what was selected; no credentials ever reach you.",
109
120
  ].join(" ");
110
121
  export function createConnectionInputTool() {
111
122
  return tool("request_connection", CONNECTION_INPUT_TOOL_DESCRIPTION, connectionInputToolShape, (args) => {
@@ -1 +1 @@
1
- {"version":3,"file":"connection-input.js","sourceRoot":"","sources":["../../src/hono/connection-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,0BAA0B,GAAG,mCAAmC,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY;IACZ,UAAU;IACV,MAAM;IACN,kBAAkB;IAClB,uBAAuB;IACvB,oBAAoB;IACpB,OAAO;CACC,CAAC;AAIX,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC3F,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,+FAA+F,CAAC;CAC7G,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,sBAAsB,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,wEAAwE,CAAC;IACrF,UAAU,EAAE,CAAC;SACV,MAAM,CAAC,EAAE,CAAC;SACV,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACrB,QAAQ,EAAE;SACV,QAAQ,CAAC,8FAA8F,CAAC;CAC5G,CAAC;AAEF,uDAAuD;AAEvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACxE,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACtC,wDAAwD;QACxD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,0EAA0E;QAC1E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC9B,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;CACH,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;AAG3G,wFAAwF;AACxF,MAAM,UAAU,8BAA8B,CAAC,KAAc;IAC3D,MAAM,MAAM,GAAG,+BAA+B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC,CAAC,KAAc;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,gBAAgB,CAAE,KAAmC,CAAC,WAAW,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,iCAAiC,GAAG;IACxC,gPAAgP;IAChP,iNAAiN;IACjN,+JAA+J;IAC/J,+LAA+L;CAChM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,UAAU,yBAAyB;IACvC,OAAO,IAAI,CACT,oBAAoB,EACpB,iCAAiC,EACjC,wBAAwB,EACxB,CAAC,IAAI,EAA+D,EAAE;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAK,EAAE,OAAO,EAAE,EAAE,EAAuC,CAAC;QAC5F,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"connection-input.js","sourceRoot":"","sources":["../../src/hono/connection-input.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,7 @@ describe("parseConnectionInputResolution", () => {
48
48
  expect(parseConnectionInputResolution({
49
49
  results: [
50
50
  { status: "connected", platform: "google-ads", accountLabel: "ana@acme.com", selected: ["Acme — Search"] },
51
+ { status: "connected", platform: "hubspot", selected: [], cannotRead: ["your deal pipelines and stages"] },
51
52
  { status: "declined", platform: "linkedin", reason: "no access" },
52
53
  ],
53
54
  })).not.toBeNull();
@@ -59,17 +60,22 @@ describe("parseConnectionInputResolution", () => {
59
60
  });
60
61
  });
61
62
  describe("CONNECTION_PLATFORMS", () => {
62
- it("matches the platforms the backend will accept", async () => {
63
+ it("matches the platforms the backend will accept — every connection Baker has", async () => {
63
64
  // Three lists gate one door — this schema, the backend's
64
- // `connectionPlatformValidator`, and the dashboard's `comingSoon`. Meta was
65
- // live in the backend for months while this list still refused it, so the
66
- // agent could not ask for the one platform it could already read.
65
+ // `connectionPlatformValidator` (every `OAUTH_PROVIDER_TYPES` entry), and
66
+ // the dashboard's `comingSoon`. Meta was live in the backend for months
67
+ // while this list still refused it, so the agent could not ask for the one
68
+ // platform it could already read.
67
69
  const validators = await readFile(new URL("../../../backend/convex/lib/validators.ts", import.meta.url), "utf8");
68
- const block = validators.match(/export const connectionPlatformValidator = v\.union\(([\s\S]*?)\);/);
70
+ expect(validators).toMatch(/export const connectionPlatformValidator = oauthProviderTypeValidator;/);
71
+ const block = validators.match(/export const OAUTH_PROVIDER_TYPES = \[([\s\S]*?)\] as const;/);
69
72
  expect(block).not.toBeNull();
70
- const backendPlatforms = [...block[1].matchAll(/v\.literal\("([^"]+)"\)/g)].map((m) => m[1]);
73
+ const backendPlatforms = [...block[1].matchAll(/"([^"]+)"/g)].map((m) => m[1]);
71
74
  expect([...CONNECTION_PLATFORMS].sort()).toEqual(backendPlatforms.sort());
72
75
  });
76
+ it("offers HubSpot and the other tools, so the agent never sends the user to Settings for one", () => {
77
+ expect(CONNECTION_PLATFORMS).toEqual(expect.arrayContaining(["hubspot", "google-drive", "highlevel", "pipedrive"]));
78
+ });
73
79
  it("offers Meta Ads, which the ads CLI and write logs already support", () => {
74
80
  expect(CONNECTION_PLATFORMS).toContain("meta");
75
81
  });
@@ -1 +1 @@
1
- {"version":3,"file":"connection-input.test.js","sourceRoot":"","sources":["../../src/hono/connection-input.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-input.test.js","sourceRoot":"","sources":["../../src/hono/connection-input.test.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,3 @@
1
- /**
2
- * `request_flow_input` — the second `baker_ui` blocking tool (alongside
3
- * `request_tag_input`). It lets the chat agent configure the confidential parts
4
- * of a flow ("Form") it cannot author itself: side-effect credentials /
5
- * connections (`encryptedConfig`, `oauthProviderId`) and widget third-party
6
- * field definitions (`nodeData.form.external`).
7
- *
8
- * The agent authors the surrounding structure in `_data.json` (the side-effect
9
- * object or the widget node with `form.external: null`) and references it here by
10
- * id. The bridge parks the turn in `canUseTool`; the dashboard renders a tabbed
11
- * form where the user types secrets / connects+picks accounts and resources. On
12
- * submit the resolved values arrive here at `POST /flow-input-decision`
13
- * (server-to-server — secrets reach the trusted bridge, never the model), the
14
- * bridge writes them into the Session's branch flow file through the encrypting
15
- * `writeFlow` boundary, and resolves the parked promise with a REDACTED result
16
- * (secret field NAMES only) that this tool's trivial handler echoes back.
17
- */
18
1
  import { createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";
19
2
  import { z } from "zod";
20
3
  export declare const BAKER_UI_SERVER_NAME = "baker_ui";
@@ -188,6 +171,26 @@ export declare function normalizeFlowInputToolInput(input: Record<string, unknow
188
171
  */
189
172
  export declare function sanitizeFlowRequests(requests: FlowInputRequestInput[]): FlowInputRequestInput[];
190
173
  type AnyRecord = Record<string, unknown>;
174
+ /**
175
+ * Every reason the node targets in a batch cannot be shown to the user, so
176
+ * the agent fixes them all in one retry. Side-effect targets are not checked
177
+ * here — they are written onto `sideEffects[]`, never over a step's own data.
178
+ */
179
+ export declare function nodeTargetRefusals(tree: AnyRecord, requests: readonly FlowInputRequestInput[]): string[];
180
+ /**
181
+ * The flow file as it sits in the Session's branch, parsed but not decoded.
182
+ *
183
+ * Only side-effect `encryptedConfig` is encrypted, so step ids and types are
184
+ * readable without the key — and a pre-flight check has no business
185
+ * decrypting credentials it never looks at.
186
+ */
187
+ export declare function readRawFlowTree(flowsDir: string, flowSlug: string): Promise<{
188
+ ok: true;
189
+ tree: AnyRecord;
190
+ } | {
191
+ ok: false;
192
+ reason: string;
193
+ }>;
191
194
  /**
192
195
  * Where each widget keeps its fields, and what an adapter calls them.
193
196
  *
@@ -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;AA4BxE,eAAO,MAAM,mBAAmB,YAC9B,UAAU,EACV,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,eAAe,CACP,CAAC;AA8BX,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;6BAA6E,CAAC;AAEzG,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,eAAO,MAAM,kBAAkB;IAC7B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;IAKR,UAAU;CAKX,CAAC;AAIF,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"}
1
+ {"version":3,"file":"flow-input.d.ts","sourceRoot":"","sources":["../../src/hono/flow-input.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@
15
15
  * `writeFlow` boundary, and resolves the parked promise with a REDACTED result
16
16
  * (secret field NAMES only) that this tool's trivial handler echoes back.
17
17
  */
18
+ import { readFile } from "node:fs/promises";
19
+ import { join } from "node:path";
18
20
  import { createSdkMcpServer, tool } from "@anthropic-ai/claude-agent-sdk";
19
21
  import { z } from "zod";
20
22
  import { toToolInputArray } from "./tool-input.js";
@@ -234,6 +236,71 @@ function findNodeById(node, nodeId) {
234
236
  }
235
237
  return null;
236
238
  }
239
+ function isResourceNodeType(type) {
240
+ return typeof type === "string" && RESOURCE_NODE_TYPES.includes(type);
241
+ }
242
+ function nodeTypeOf(node) {
243
+ const nodeData = node.nodeData;
244
+ const type = nodeData && typeof nodeData === "object" ? nodeData.type : undefined;
245
+ return typeof type === "string" && type ? type : "untyped";
246
+ }
247
+ function hubspotFormSideEffectHint(flowSlug, nodeId) {
248
+ return `To send this step's answers to a HubSpot form, add a hubspotForm side effect (baker flows add-side-effect ${flowSlug} --node ${nodeId} --type hubspotForm) and call request_flow_input with { target: "sideEffect", flowSlug, nodeId, sideEffectId, sideEffectType: "hubspotForm" }.`;
249
+ }
250
+ /**
251
+ * Why a `target: "node"` request cannot go on the step it names, or null when
252
+ * it can. A widget resource is written into `nodeData.form.external`, which on
253
+ * a Form step is that step's own questions — so a mismatch here is not a
254
+ * cosmetic error, it is the step being overwritten.
255
+ */
256
+ function nodeTargetRefusal(tree, request) {
257
+ const node = findNodeById(tree, request.nodeId);
258
+ if (!node) {
259
+ return `No step with id "${request.nodeId}" in Form "${request.flowSlug}". Author the widget step first (nodeData.type "${request.nodeType}", form.external null), then retry.`;
260
+ }
261
+ const actual = nodeTypeOf(node);
262
+ if (actual === request.nodeType) {
263
+ return null;
264
+ }
265
+ if (!isResourceNodeType(actual) && request.nodeType === "hubspot") {
266
+ return `Step ${request.nodeId} is a Form step (${actual}), not a HubSpot form widget, so a HubSpot form cannot be placed on it — that would replace its questions. ${hubspotFormSideEffectHint(request.flowSlug, request.nodeId)}`;
267
+ }
268
+ return `Step ${request.nodeId} is a ${actual} step, not a ${request.nodeType} step. A ${request.nodeType} widget goes on a step of type ${request.nodeType}; this step is ${actual}. Point nodeId at the ${request.nodeType} step, or set nodeType to ${actual}.`;
269
+ }
270
+ /**
271
+ * Every reason the node targets in a batch cannot be shown to the user, so
272
+ * the agent fixes them all in one retry. Side-effect targets are not checked
273
+ * here — they are written onto `sideEffects[]`, never over a step's own data.
274
+ */
275
+ export function nodeTargetRefusals(tree, requests) {
276
+ return requests.flatMap((request) => {
277
+ if (request.target !== "node")
278
+ return [];
279
+ const refusal = nodeTargetRefusal(tree, request);
280
+ return refusal ? [refusal] : [];
281
+ });
282
+ }
283
+ /**
284
+ * The flow file as it sits in the Session's branch, parsed but not decoded.
285
+ *
286
+ * Only side-effect `encryptedConfig` is encrypted, so step ids and types are
287
+ * readable without the key — and a pre-flight check has no business
288
+ * decrypting credentials it never looks at.
289
+ */
290
+ export async function readRawFlowTree(flowsDir, flowSlug) {
291
+ if (!flowSlug || flowSlug.includes("/") || flowSlug.includes("..")) {
292
+ return { ok: false, reason: `unsafe flow slug "${flowSlug}"` };
293
+ }
294
+ try {
295
+ const parsed = JSON.parse(await readFile(join(flowsDir, flowSlug, "_data.json"), "utf-8"));
296
+ return parsed && typeof parsed === "object" && !Array.isArray(parsed)
297
+ ? { ok: true, tree: parsed }
298
+ : { ok: false, reason: `flow "${flowSlug}" is not a JSON object` };
299
+ }
300
+ catch (error) {
301
+ return { ok: false, reason: error instanceof Error ? error.message : String(error) };
302
+ }
303
+ }
237
304
  function declined(nodeId, sideEffectId, reason) {
238
305
  return {
239
306
  status: "declined",
@@ -374,6 +441,12 @@ export function applyFlowResolution(tree, resolution) {
374
441
  return applySideEffect(node, resolution);
375
442
  }
376
443
  // target === "node": write third-party field definitions onto the widget node.
444
+ // Only onto a widget step: on a Form step `form.external` holds the step's own
445
+ // questions, and writing a picked resource there replaces them.
446
+ const actualType = nodeTypeOf(node);
447
+ if (!isResourceNodeType(actualType)) {
448
+ return declined(resolution.nodeId, undefined, `Step ${resolution.nodeId} is a Form step (${actualType}), not a widget step, so nothing was written — a picked resource would replace its questions. ${hubspotFormSideEffectHint(resolution.flowSlug, resolution.nodeId)}`);
449
+ }
377
450
  const nodeData = (node.nodeData ?? {});
378
451
  const form = (nodeData.form ?? {});
379
452
  node.nodeData = { ...nodeData, form: { ...form, external: resolution.external } };
@@ -411,6 +484,7 @@ const FLOW_INPUT_TOOL_DESCRIPTION = [
411
484
  "Author the surrounding structure in the flow's _data.json first (the side-effect object, or the widget node with form.external:null), then reference it here by nodeId (and sideEffectId for a side effect).",
412
485
  "Use target:'sideEffect' for webhook/CRM side effects — prefill non-secret encryptedConfig fields, list needed secret credential fields in requestedSecretFields; never put secret values in prefilledConfig, never ask for secrets in plain chat.",
413
486
  "Use target:'node' for widget nodes (Calendly, HubSpot form/meeting, HighLevel, SavvyCal) — the user connects the account and picks the resource; its field definitions are written for you.",
487
+ 'target "node" is only for a widget step whose type is the nodeType (a HubSpot form embedded on the page); to send a Form step\'s answers to HubSpot use target "sideEffect" with sideEffectType "hubspotForm".',
414
488
  "Batch related pieces into one call: each entry in `requests` becomes a tab. Results are redacted (field names only). Changes stay staged in this chat and go live only when it's published.",
415
489
  ].join(" ");
416
490
  export function createFlowInputTool() {
@@ -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,5 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { applyFlowResolution, groupResolutionsBySlug, normalizeFlowInputToolInput, parseFlowInputDecision, sanitizeFlowRequests, } from "./flow-input.js";
2
+ import { applyFlowResolution, groupResolutionsBySlug, nodeTargetRefusals, normalizeFlowInputToolInput, parseFlowInputDecision, sanitizeFlowRequests, } from "./flow-input.js";
3
3
  function tree(nodeType = "hubspot") {
4
4
  return {
5
5
  id: "root",
@@ -290,6 +290,25 @@ describe("applyFlowResolution", () => {
290
290
  expect(se.oauthProviderId).toBeUndefined();
291
291
  expect(result.status === "submitted" && result.connected).toBeUndefined();
292
292
  });
293
+ // A HubSpot form picked for a Form step once replaced that step's own
294
+ // questions (`form.external.fields`) with the HubSpot blob. A resource can
295
+ // only ever be written onto a widget step.
296
+ it("refuses to write a widget resource onto a Form step, leaving its questions intact", () => {
297
+ const t = tree("customForm");
298
+ const questions = { fields: [{ name: "full_name" }, { name: "email" }] };
299
+ (t.children[0]?.nodeData).form.external = questions;
300
+ const result = applyFlowResolution(t, {
301
+ target: "node",
302
+ flowSlug: "contact",
303
+ nodeId: "n1",
304
+ status: "submitted",
305
+ external: { id: "form-9", name: "Contact us", fieldGroups: [] },
306
+ });
307
+ expect(result.status).toBe("declined");
308
+ expect(result.status === "declined" && result.reason).toContain("hubspotForm");
309
+ const external = (t.children[0]?.nodeData).form.external;
310
+ expect(external).toEqual(questions);
311
+ });
293
312
  it("declines when the node is missing", () => {
294
313
  const result = applyFlowResolution(tree(), {
295
314
  target: "sideEffect",
@@ -303,6 +322,39 @@ describe("applyFlowResolution", () => {
303
322
  expect(result.status).toBe("declined");
304
323
  });
305
324
  });
325
+ describe("nodeTargetRefusals", () => {
326
+ it("refuses a HubSpot form on a Form step and names the side effect to use instead", () => {
327
+ const refusals = nodeTargetRefusals(tree("customForm"), [
328
+ { target: "node", flowSlug: "quote-request", nodeId: "n1", nodeType: "hubspot" },
329
+ ]);
330
+ expect(refusals).toEqual([
331
+ 'Step n1 is a Form step (customForm), not a HubSpot form widget, so a HubSpot form cannot be placed on it — that would replace its questions. To send this step\'s answers to a HubSpot form, add a hubspotForm side effect (baker flows add-side-effect quote-request --node n1 --type hubspotForm) and call request_flow_input with { target: "sideEffect", flowSlug, nodeId, sideEffectId, sideEffectType: "hubspotForm" }.',
332
+ ]);
333
+ });
334
+ it("refuses a widget whose type is not the step's type", () => {
335
+ const refusals = nodeTargetRefusals(tree("savvycal"), [
336
+ { target: "node", flowSlug: "contact", nodeId: "n1", nodeType: "calendly" },
337
+ ]);
338
+ expect(refusals).toEqual([
339
+ "Step n1 is a savvycal step, not a calendly step. A calendly widget goes on a step of type calendly; this step is savvycal. Point nodeId at the calendly step, or set nodeType to savvycal.",
340
+ ]);
341
+ });
342
+ it("refuses a step that does not exist", () => {
343
+ const refusals = nodeTargetRefusals(tree(), [
344
+ { target: "node", flowSlug: "contact", nodeId: "ghost", nodeType: "hubspot" },
345
+ ]);
346
+ expect(refusals).toEqual([
347
+ 'No step with id "ghost" in Form "contact". Author the widget step first (nodeData.type "hubspot", form.external null), then retry.',
348
+ ]);
349
+ });
350
+ it("lets a matching widget step and any side-effect target through", () => {
351
+ const refusals = nodeTargetRefusals(tree("hubspot"), [
352
+ { target: "node", flowSlug: "contact", nodeId: "n1", nodeType: "hubspot" },
353
+ { target: "sideEffect", flowSlug: "contact", nodeId: "n1", sideEffectId: "se1", sideEffectType: "hubspotForm" },
354
+ ]);
355
+ expect(refusals).toEqual([]);
356
+ });
357
+ });
306
358
  describe("parseFlowInputDecision + groupResolutionsBySlug", () => {
307
359
  it("parses and groups by slug", () => {
308
360
  const decision = parseFlowInputDecision({