@koda-sl/baker-bridge 0.51.3 → 0.52.0-dev.f1bbef772
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 +4 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +1 -1
- package/dist/hono/agent-session.d.ts +3 -0
- package/dist/hono/agent-session.d.ts.map +1 -1
- package/dist/hono/agent-session.js +15 -0
- package/dist/hono/agent-session.js.map +1 -1
- package/dist/hono/agent.d.ts +2 -0
- package/dist/hono/agent.d.ts.map +1 -1
- package/dist/hono/agent.js +8 -1
- package/dist/hono/agent.js.map +1 -1
- package/dist/hono/bridge-job.d.ts +12 -0
- package/dist/hono/bridge-job.d.ts.map +1 -1
- package/dist/hono/bridge-job.js +59 -0
- package/dist/hono/bridge-job.js.map +1 -1
- package/dist/hono/bridge-job.test.js +3 -0
- package/dist/hono/bridge-job.test.js.map +1 -1
- package/dist/hono/convex.d.ts +2 -0
- package/dist/hono/convex.d.ts.map +1 -1
- package/dist/hono/convex.js +8 -0
- package/dist/hono/convex.js.map +1 -1
- package/dist/hono/flow-input.d.ts +193 -0
- package/dist/hono/flow-input.d.ts.map +1 -0
- package/dist/hono/flow-input.js +285 -0
- package/dist/hono/flow-input.js.map +1 -0
- package/dist/hono/flow-input.test.d.ts +2 -0
- package/dist/hono/flow-input.test.d.ts.map +1 -0
- package/dist/hono/flow-input.test.js +115 -0
- package/dist/hono/flow-input.test.js.map +1 -0
- package/dist/hono/relay.d.ts +7 -1
- package/dist/hono/relay.d.ts.map +1 -1
- package/dist/hono/relay.js +6 -0
- package/dist/hono/relay.js.map +1 -1
- package/dist/hono/sandbox-content.d.ts +13 -0
- package/dist/hono/sandbox-content.d.ts.map +1 -1
- package/dist/hono/sandbox-content.js +27 -17
- package/dist/hono/sandbox-content.js.map +1 -1
- package/dist/hono/sandbox-content.test.js +42 -3
- package/dist/hono/sandbox-content.test.js.map +1 -1
- package/dist/hono/server.d.ts.map +1 -1
- package/dist/hono/server.js +62 -0
- package/dist/hono/server.js.map +1 -1
- package/dist/hono/tag-input.d.ts.map +1 -1
- package/dist/hono/tag-input.js +2 -0
- package/dist/hono/tag-input.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,285 @@
|
|
|
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
|
+
import { createSdkMcpServer, tool } from "@anthropic-ai/claude-agent-sdk";
|
|
19
|
+
import { z } from "zod";
|
|
20
|
+
export const BAKER_UI_SERVER_NAME = "baker_ui";
|
|
21
|
+
export const FLOW_INPUT_TOOL_NAME = "mcp__baker_ui__request_flow_input";
|
|
22
|
+
// Mirror of `FLOW_SECRET_FIELDS` in packages/api/src/flows.ts (the bridge is
|
|
23
|
+
// published standalone and cannot depend on @baker/api). The backend strips
|
|
24
|
+
// secret keys again at /api/chat/flow-input-request — this mirror is UX-side
|
|
25
|
+
// defense in depth, not the enforcement point. Keep in sync.
|
|
26
|
+
const SECRET_FIELDS_BY_SIDE_EFFECT = {
|
|
27
|
+
email: [],
|
|
28
|
+
zapier: ["zapUrl"],
|
|
29
|
+
httpWebhook: ["bearerToken", "apiKeyValue", "password"],
|
|
30
|
+
pipedrive: [],
|
|
31
|
+
googleSpreadsheet: [],
|
|
32
|
+
hubspotForm: [],
|
|
33
|
+
crmble: ["apiToken"],
|
|
34
|
+
goHighlevelContact: [],
|
|
35
|
+
};
|
|
36
|
+
const SIDE_EFFECT_TYPES = Object.keys(SECRET_FIELDS_BY_SIDE_EFFECT);
|
|
37
|
+
const RESOURCE_NODE_TYPES = [
|
|
38
|
+
"calendly",
|
|
39
|
+
"savvycal",
|
|
40
|
+
"hubspot",
|
|
41
|
+
"hubspotMeeting",
|
|
42
|
+
"highlevel",
|
|
43
|
+
"highlevelForm",
|
|
44
|
+
];
|
|
45
|
+
// --- Tool input shape (agent-facing) ---
|
|
46
|
+
const sideEffectRequestShape = z.object({
|
|
47
|
+
target: z.literal("sideEffect"),
|
|
48
|
+
flowSlug: z.string().describe("Flow slug (the folder under flows/)"),
|
|
49
|
+
nodeId: z.string().describe("id of the FlowNode holding the side effect"),
|
|
50
|
+
sideEffectId: z.string().describe("id of the side effect within that node's sideEffects[]"),
|
|
51
|
+
sideEffectType: z.enum(SIDE_EFFECT_TYPES).describe("Side effect type"),
|
|
52
|
+
prefilledConfig: z
|
|
53
|
+
.record(z.string(), z.string())
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("Non-secret encryptedConfig values to prefill (e.g. webhook apiUrl). Never place secret values here."),
|
|
56
|
+
requestedSecretFields: z
|
|
57
|
+
.array(z.string())
|
|
58
|
+
.optional()
|
|
59
|
+
.describe("Secret credential field names the user should provide (e.g. bearerToken, apiToken)"),
|
|
60
|
+
message: z.string().optional().describe("One short sentence explaining what the user needs to configure"),
|
|
61
|
+
});
|
|
62
|
+
const nodeRequestShape = z.object({
|
|
63
|
+
target: z.literal("node"),
|
|
64
|
+
flowSlug: z.string().describe("Flow slug (the folder under flows/)"),
|
|
65
|
+
nodeId: z.string().describe("id of the widget FlowNode"),
|
|
66
|
+
nodeType: z.enum(RESOURCE_NODE_TYPES).describe("Widget node type (calendly, hubspot, highlevelForm, …)"),
|
|
67
|
+
message: z.string().optional().describe("One short sentence explaining what the user needs to pick"),
|
|
68
|
+
});
|
|
69
|
+
const flowInputRequestShape = z.discriminatedUnion("target", [sideEffectRequestShape, nodeRequestShape]);
|
|
70
|
+
const flowInputToolShape = {
|
|
71
|
+
requests: z
|
|
72
|
+
.array(flowInputRequestShape)
|
|
73
|
+
.min(1)
|
|
74
|
+
.max(8)
|
|
75
|
+
.describe("One or more confidential pieces to configure; each becomes a tab the user resolves together"),
|
|
76
|
+
resolution: z
|
|
77
|
+
.record(z.string(), z.unknown())
|
|
78
|
+
.optional()
|
|
79
|
+
.describe("Internal — injected by the bridge after the user resolves the form. Never set this yourself."),
|
|
80
|
+
};
|
|
81
|
+
// --- Redacted resolution echoed back to the model ---
|
|
82
|
+
export const flowInputResultSchema = z.discriminatedUnion("status", [
|
|
83
|
+
z.object({
|
|
84
|
+
status: z.literal("submitted"),
|
|
85
|
+
nodeId: z.string(),
|
|
86
|
+
sideEffectId: z.string().optional(),
|
|
87
|
+
secretFieldsSet: z.array(z.string()),
|
|
88
|
+
note: z.string().optional(),
|
|
89
|
+
}),
|
|
90
|
+
z.object({
|
|
91
|
+
status: z.literal("declined"),
|
|
92
|
+
nodeId: z.string(),
|
|
93
|
+
sideEffectId: z.string().optional(),
|
|
94
|
+
reason: z.string().optional(),
|
|
95
|
+
}),
|
|
96
|
+
]);
|
|
97
|
+
export const flowInputResolutionSchema = z.object({ results: z.array(flowInputResultSchema) });
|
|
98
|
+
/** Parse-at-boundary for the resolution the bridge injects/echoes. Returns null on mismatch. */
|
|
99
|
+
export function parseFlowInputResolution(value) {
|
|
100
|
+
const parsed = flowInputResolutionSchema.safeParse(value);
|
|
101
|
+
return parsed.success ? parsed.data : null;
|
|
102
|
+
}
|
|
103
|
+
// --- Dashboard → bridge decision payload (carries plaintext to write) ---
|
|
104
|
+
// A plain union (not discriminatedUnion): `status` "declined" vs "submitted"
|
|
105
|
+
// keeps the members unambiguous, while the declined member allows either target.
|
|
106
|
+
const flowResolutionSchema = z.union([
|
|
107
|
+
z.object({
|
|
108
|
+
target: z.literal("sideEffect"),
|
|
109
|
+
flowSlug: z.string(),
|
|
110
|
+
nodeId: z.string(),
|
|
111
|
+
sideEffectId: z.string(),
|
|
112
|
+
sideEffectType: z.enum(SIDE_EFFECT_TYPES),
|
|
113
|
+
status: z.literal("submitted"),
|
|
114
|
+
/** Full plaintext encryptedConfig to write (writeFlow encrypts it). */
|
|
115
|
+
encryptedConfig: z.record(z.string(), z.unknown()).optional(),
|
|
116
|
+
oauthProviderId: z.string().optional(),
|
|
117
|
+
note: z.string().optional(),
|
|
118
|
+
}),
|
|
119
|
+
z.object({
|
|
120
|
+
target: z.literal("node"),
|
|
121
|
+
flowSlug: z.string(),
|
|
122
|
+
nodeId: z.string(),
|
|
123
|
+
status: z.literal("submitted"),
|
|
124
|
+
/** Full third-party field definitions to write into nodeData.form.external. */
|
|
125
|
+
external: z.record(z.string(), z.unknown()),
|
|
126
|
+
note: z.string().optional(),
|
|
127
|
+
}),
|
|
128
|
+
z.object({
|
|
129
|
+
target: z.enum(["sideEffect", "node"]),
|
|
130
|
+
flowSlug: z.string(),
|
|
131
|
+
nodeId: z.string(),
|
|
132
|
+
sideEffectId: z.string().optional(),
|
|
133
|
+
status: z.literal("declined"),
|
|
134
|
+
reason: z.string().optional(),
|
|
135
|
+
}),
|
|
136
|
+
]);
|
|
137
|
+
export const flowInputDecisionSchema = z.object({
|
|
138
|
+
resolutions: z.array(flowResolutionSchema).min(1),
|
|
139
|
+
});
|
|
140
|
+
export function parseFlowInputDecision(value) {
|
|
141
|
+
const parsed = flowInputDecisionSchema.safeParse(value);
|
|
142
|
+
return parsed.success ? parsed.data : null;
|
|
143
|
+
}
|
|
144
|
+
// --- Normalize + sanitize the raw model tool input ---
|
|
145
|
+
/**
|
|
146
|
+
* `canUseTool` fires with the model's RAW input (no MCP schema validation yet).
|
|
147
|
+
* Drop invalid entries and return [] for garbage so the caller can DENY with an
|
|
148
|
+
* actionable message rather than park the turn on a form that never renders.
|
|
149
|
+
*/
|
|
150
|
+
export function normalizeFlowInputToolInput(input) {
|
|
151
|
+
const raw = Array.isArray(input.requests) ? input.requests : [];
|
|
152
|
+
return raw.flatMap((entry) => {
|
|
153
|
+
const parsed = flowInputRequestShape.safeParse(entry);
|
|
154
|
+
return parsed.success ? [parsed.data] : [];
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Strip secret-field values a model may have placed into a side-effect request's
|
|
159
|
+
* `prefilledConfig`, moving their NAMES into `requestedSecretFields` so the user
|
|
160
|
+
* is still asked — without the leaked value travelling on.
|
|
161
|
+
*/
|
|
162
|
+
export function sanitizeFlowRequests(requests) {
|
|
163
|
+
return requests.map((request) => {
|
|
164
|
+
if (request.target !== "sideEffect") {
|
|
165
|
+
return request;
|
|
166
|
+
}
|
|
167
|
+
const secretFields = SECRET_FIELDS_BY_SIDE_EFFECT[request.sideEffectType] ?? [];
|
|
168
|
+
const prefilled = request.prefilledConfig ?? {};
|
|
169
|
+
const cleaned = {};
|
|
170
|
+
const leaked = [];
|
|
171
|
+
for (const [key, value] of Object.entries(prefilled)) {
|
|
172
|
+
if (secretFields.includes(key)) {
|
|
173
|
+
leaked.push(key);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
cleaned[key] = value;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
const requested = [...new Set([...(request.requestedSecretFields ?? []), ...leaked])];
|
|
180
|
+
return {
|
|
181
|
+
...request,
|
|
182
|
+
...(Object.keys(cleaned).length > 0 ? { prefilledConfig: cleaned } : { prefilledConfig: undefined }),
|
|
183
|
+
...(requested.length > 0 ? { requestedSecretFields: requested } : {}),
|
|
184
|
+
};
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function findNodeById(node, nodeId) {
|
|
188
|
+
if (node.id === nodeId) {
|
|
189
|
+
return node;
|
|
190
|
+
}
|
|
191
|
+
if (Array.isArray(node.children)) {
|
|
192
|
+
for (const child of node.children) {
|
|
193
|
+
const found = findNodeById(child, nodeId);
|
|
194
|
+
if (found) {
|
|
195
|
+
return found;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
function declined(nodeId, sideEffectId, reason) {
|
|
202
|
+
return {
|
|
203
|
+
status: "declined",
|
|
204
|
+
nodeId,
|
|
205
|
+
...(sideEffectId ? { sideEffectId } : {}),
|
|
206
|
+
...(reason ? { reason } : {}),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/** Patch a side effect's confidential fields; returns the redacted result. */
|
|
210
|
+
function applySideEffect(node, resolution) {
|
|
211
|
+
const sideEffects = Array.isArray(node.sideEffects) ? node.sideEffects : [];
|
|
212
|
+
const effect = sideEffects.find((se) => se.id === resolution.sideEffectId);
|
|
213
|
+
if (!effect) {
|
|
214
|
+
return declined(resolution.nodeId, resolution.sideEffectId, `No side effect with id "${resolution.sideEffectId}" on node "${resolution.nodeId}". Author the side effect first, then retry.`);
|
|
215
|
+
}
|
|
216
|
+
if (resolution.encryptedConfig !== undefined) {
|
|
217
|
+
effect.encryptedConfig = resolution.encryptedConfig;
|
|
218
|
+
}
|
|
219
|
+
if (resolution.oauthProviderId !== undefined) {
|
|
220
|
+
effect.oauthProviderId = resolution.oauthProviderId;
|
|
221
|
+
}
|
|
222
|
+
const secretFields = SECRET_FIELDS_BY_SIDE_EFFECT[resolution.sideEffectType] ?? [];
|
|
223
|
+
const secretFieldsSet = Object.keys(resolution.encryptedConfig ?? {}).filter((k) => secretFields.includes(k));
|
|
224
|
+
return {
|
|
225
|
+
status: "submitted",
|
|
226
|
+
nodeId: resolution.nodeId,
|
|
227
|
+
sideEffectId: resolution.sideEffectId,
|
|
228
|
+
secretFieldsSet,
|
|
229
|
+
...(resolution.note ? { note: resolution.note } : {}),
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Apply one submitted resolution onto a decoded flow tree in place. Returns the
|
|
234
|
+
* redacted result for the model, or an error note when the target is missing.
|
|
235
|
+
*/
|
|
236
|
+
export function applyFlowResolution(tree, resolution) {
|
|
237
|
+
const sideEffectId = "sideEffectId" in resolution ? resolution.sideEffectId : undefined;
|
|
238
|
+
if (resolution.status === "declined") {
|
|
239
|
+
return declined(resolution.nodeId, sideEffectId, resolution.reason);
|
|
240
|
+
}
|
|
241
|
+
const node = findNodeById(tree, resolution.nodeId);
|
|
242
|
+
if (!node) {
|
|
243
|
+
return declined(resolution.nodeId, sideEffectId, `No node with id "${resolution.nodeId}" in flow "${resolution.flowSlug}". Author the node first, then retry.`);
|
|
244
|
+
}
|
|
245
|
+
if (resolution.target === "sideEffect") {
|
|
246
|
+
return applySideEffect(node, resolution);
|
|
247
|
+
}
|
|
248
|
+
// target === "node": write third-party field definitions onto the widget node.
|
|
249
|
+
const nodeData = (node.nodeData ?? {});
|
|
250
|
+
const form = (nodeData.form ?? {});
|
|
251
|
+
node.nodeData = { ...nodeData, form: { ...form, external: resolution.external } };
|
|
252
|
+
return {
|
|
253
|
+
status: "submitted",
|
|
254
|
+
nodeId: resolution.nodeId,
|
|
255
|
+
secretFieldsSet: [],
|
|
256
|
+
...(resolution.note ? { note: resolution.note } : {}),
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/** Group a decision's resolutions by flow slug for one read-modify-write per flow. */
|
|
260
|
+
export function groupResolutionsBySlug(decision) {
|
|
261
|
+
const bySlug = new Map();
|
|
262
|
+
for (const resolution of decision.resolutions) {
|
|
263
|
+
const existing = bySlug.get(resolution.flowSlug) ?? [];
|
|
264
|
+
existing.push(resolution);
|
|
265
|
+
bySlug.set(resolution.flowSlug, existing);
|
|
266
|
+
}
|
|
267
|
+
return bySlug;
|
|
268
|
+
}
|
|
269
|
+
// --- The MCP tool (trivial handler — echoes the injected resolution) ---
|
|
270
|
+
const FLOW_INPUT_TOOL_DESCRIPTION = [
|
|
271
|
+
"Configure the confidential parts of a Form (flow) you cannot author yourself: side-effect credentials/connections and widget third-party fields. BLOCKS until the user resolves the form in the dashboard.",
|
|
272
|
+
"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).",
|
|
273
|
+
"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.",
|
|
274
|
+
"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.",
|
|
275
|
+
"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.",
|
|
276
|
+
].join(" ");
|
|
277
|
+
export function createFlowInputTool() {
|
|
278
|
+
return tool("request_flow_input", FLOW_INPUT_TOOL_DESCRIPTION, flowInputToolShape, (args) => {
|
|
279
|
+
const resolution = args.resolution ?? { results: [] };
|
|
280
|
+
return Promise.resolve({ content: [{ type: "text", text: JSON.stringify(resolution) }] });
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/** Re-export a `baker_ui` server factory that hosts both interactive tools. */
|
|
284
|
+
export { createSdkMcpServer };
|
|
285
|
+
//# sourceMappingURL=flow-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-input.js","sourceRoot":"","sources":["../../src/hono/flow-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-input.test.d.ts","sourceRoot":"","sources":["../../src/hono/flow-input.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { applyFlowResolution, groupResolutionsBySlug, normalizeFlowInputToolInput, parseFlowInputDecision, sanitizeFlowRequests, } from "./flow-input.js";
|
|
3
|
+
function tree() {
|
|
4
|
+
return {
|
|
5
|
+
id: "root",
|
|
6
|
+
name: "root",
|
|
7
|
+
children: [
|
|
8
|
+
{
|
|
9
|
+
id: "n1",
|
|
10
|
+
name: "Thanks",
|
|
11
|
+
nodeData: { type: "hubspot", form: { autofilledFields: {}, external: null } },
|
|
12
|
+
sideEffects: [{ id: "se1", type: "httpWebhook", triggerId: {}, encryptedConfig: null }],
|
|
13
|
+
children: [],
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
describe("normalizeFlowInputToolInput", () => {
|
|
19
|
+
it("keeps valid side-effect and node requests, drops garbage", () => {
|
|
20
|
+
const requests = normalizeFlowInputToolInput({
|
|
21
|
+
requests: [
|
|
22
|
+
{ target: "sideEffect", flowSlug: "contact", nodeId: "n1", sideEffectId: "se1", sideEffectType: "httpWebhook" },
|
|
23
|
+
{ target: "node", flowSlug: "contact", nodeId: "n1", nodeType: "hubspot" },
|
|
24
|
+
{ nonsense: true },
|
|
25
|
+
],
|
|
26
|
+
});
|
|
27
|
+
expect(requests).toHaveLength(2);
|
|
28
|
+
});
|
|
29
|
+
it("returns [] for a missing requests array", () => {
|
|
30
|
+
expect(normalizeFlowInputToolInput({})).toEqual([]);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe("sanitizeFlowRequests", () => {
|
|
34
|
+
it("moves a leaked secret value's name into requestedSecretFields", () => {
|
|
35
|
+
const [sanitized] = sanitizeFlowRequests([
|
|
36
|
+
{
|
|
37
|
+
target: "sideEffect",
|
|
38
|
+
flowSlug: "contact",
|
|
39
|
+
nodeId: "n1",
|
|
40
|
+
sideEffectId: "se1",
|
|
41
|
+
sideEffectType: "httpWebhook",
|
|
42
|
+
prefilledConfig: { apiUrl: "https://x.test/hook", bearerToken: "leaked-secret" },
|
|
43
|
+
},
|
|
44
|
+
]);
|
|
45
|
+
expect(JSON.stringify(sanitized)).not.toContain("leaked-secret");
|
|
46
|
+
expect(sanitized.target === "sideEffect" && sanitized.requestedSecretFields).toContain("bearerToken");
|
|
47
|
+
expect(sanitized.target === "sideEffect" && sanitized.prefilledConfig).toEqual({ apiUrl: "https://x.test/hook" });
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe("applyFlowResolution", () => {
|
|
51
|
+
it("writes encryptedConfig + oauth ref and reports only secret NAMES", () => {
|
|
52
|
+
const t = tree();
|
|
53
|
+
const resolution = {
|
|
54
|
+
target: "sideEffect",
|
|
55
|
+
flowSlug: "contact",
|
|
56
|
+
nodeId: "n1",
|
|
57
|
+
sideEffectId: "se1",
|
|
58
|
+
sideEffectType: "httpWebhook",
|
|
59
|
+
status: "submitted",
|
|
60
|
+
encryptedConfig: { apiUrl: "https://x.test/hook", bearerToken: "s3cr3t" },
|
|
61
|
+
note: "Webhook configured",
|
|
62
|
+
};
|
|
63
|
+
const result = applyFlowResolution(t, resolution);
|
|
64
|
+
expect(result.status).toBe("submitted");
|
|
65
|
+
expect(result.status === "submitted" && result.secretFieldsSet).toEqual(["bearerToken"]);
|
|
66
|
+
// Value written into the tree (writeFlow later encrypts it), never into the model result.
|
|
67
|
+
const se = t.children[0]?.sideEffects[0];
|
|
68
|
+
expect(se.encryptedConfig?.bearerToken).toBe("s3cr3t");
|
|
69
|
+
expect(JSON.stringify(result)).not.toContain("s3cr3t");
|
|
70
|
+
});
|
|
71
|
+
it("writes widget external onto the node", () => {
|
|
72
|
+
const t = tree();
|
|
73
|
+
const result = applyFlowResolution(t, {
|
|
74
|
+
target: "node",
|
|
75
|
+
flowSlug: "contact",
|
|
76
|
+
nodeId: "n1",
|
|
77
|
+
status: "submitted",
|
|
78
|
+
external: { id: "form-9", name: "Contact us", portalId: 42, fieldGroups: [] },
|
|
79
|
+
note: "HubSpot form 'Contact us'",
|
|
80
|
+
});
|
|
81
|
+
expect(result.status).toBe("submitted");
|
|
82
|
+
const external = (t.children[0]?.nodeData).form?.external;
|
|
83
|
+
expect(external?.name).toBe("Contact us");
|
|
84
|
+
});
|
|
85
|
+
it("declines when the node is missing", () => {
|
|
86
|
+
const result = applyFlowResolution(tree(), {
|
|
87
|
+
target: "sideEffect",
|
|
88
|
+
flowSlug: "contact",
|
|
89
|
+
nodeId: "nope",
|
|
90
|
+
sideEffectId: "se1",
|
|
91
|
+
sideEffectType: "httpWebhook",
|
|
92
|
+
status: "submitted",
|
|
93
|
+
encryptedConfig: {},
|
|
94
|
+
});
|
|
95
|
+
expect(result.status).toBe("declined");
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
describe("parseFlowInputDecision + groupResolutionsBySlug", () => {
|
|
99
|
+
it("parses and groups by slug", () => {
|
|
100
|
+
const decision = parseFlowInputDecision({
|
|
101
|
+
resolutions: [
|
|
102
|
+
{ target: "node", flowSlug: "a", nodeId: "n1", status: "submitted", external: {} },
|
|
103
|
+
{ target: "node", flowSlug: "a", nodeId: "n2", status: "submitted", external: {} },
|
|
104
|
+
{ target: "sideEffect", flowSlug: "b", nodeId: "n3", status: "declined" },
|
|
105
|
+
],
|
|
106
|
+
});
|
|
107
|
+
expect(decision).not.toBeNull();
|
|
108
|
+
if (!decision)
|
|
109
|
+
return;
|
|
110
|
+
const grouped = groupResolutionsBySlug(decision);
|
|
111
|
+
expect(grouped.get("a")).toHaveLength(2);
|
|
112
|
+
expect(grouped.get("b")).toHaveLength(1);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=flow-input.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-input.test.js","sourceRoot":"","sources":["../../src/hono/flow-input.test.ts"],"names":[],"mappings":"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"}
|
package/dist/hono/relay.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ type CallbackDelivery = undefined | {
|
|
|
31
31
|
type CompletionDelivery = {
|
|
32
32
|
accepted: boolean;
|
|
33
33
|
};
|
|
34
|
-
export type CallbackPath = "/api/chat/stream" | "/api/chat/event" | "/api/chat/input-request" | "/api/chat/input-resolved" | "/api/chat/tag-input-request" | "/api/chat/tag-input-resolved" | "/api/chat/plan-review" | "/api/chat/plan-resolved" | "/api/chat/agent-activity" | "/api/chat/heartbeat" | "/api/chat/context" | "/api/chat/complete" | "/api/chat/router-sample";
|
|
34
|
+
export type CallbackPath = "/api/chat/stream" | "/api/chat/event" | "/api/chat/input-request" | "/api/chat/input-resolved" | "/api/chat/tag-input-request" | "/api/chat/tag-input-resolved" | "/api/chat/flow-input-request" | "/api/chat/flow-input-resolved" | "/api/chat/plan-review" | "/api/chat/plan-resolved" | "/api/chat/agent-activity" | "/api/chat/heartbeat" | "/api/chat/context" | "/api/chat/complete" | "/api/chat/router-sample";
|
|
35
35
|
export type CallbackBody = Record<string, unknown>;
|
|
36
36
|
export type CallbackPost = {
|
|
37
37
|
path: CallbackPath;
|
|
@@ -55,6 +55,10 @@ type TagInputRequest = {
|
|
|
55
55
|
toolUseId: string;
|
|
56
56
|
changes: unknown;
|
|
57
57
|
};
|
|
58
|
+
type FlowInputRequest = {
|
|
59
|
+
toolUseId: string;
|
|
60
|
+
requests: unknown;
|
|
61
|
+
};
|
|
58
62
|
type ContextSource = {
|
|
59
63
|
source: "local_resume" | "rehydrated_missing_session" | "rehydrated_invalid_resume" | "rehydrated_repaired_tool_state" | "rehydration_failed";
|
|
60
64
|
metadata: Record<string, unknown>;
|
|
@@ -101,6 +105,8 @@ interface Relay {
|
|
|
101
105
|
inputResolved(target: CallbackTarget): Promise<Result<void, RelayError>>;
|
|
102
106
|
tagInputRequest(target: CallbackTarget, request: TagInputRequest): Promise<Result<void, RelayError>>;
|
|
103
107
|
tagInputResolved(target: CallbackTarget): Promise<Result<void, RelayError>>;
|
|
108
|
+
flowInputRequest(target: CallbackTarget, request: FlowInputRequest): Promise<Result<void, RelayError>>;
|
|
109
|
+
flowInputResolved(target: CallbackTarget): Promise<Result<void, RelayError>>;
|
|
104
110
|
planReview(target: CallbackTarget, request: PlanReview): Promise<Result<void, RelayError>>;
|
|
105
111
|
planResolved(target: CallbackTarget): Promise<Result<void, RelayError>>;
|
|
106
112
|
agentActivity(target: CallbackTarget, agents: AgentTask[]): Promise<Result<void, RelayError>>;
|
package/dist/hono/relay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/hono/relay.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/hono/relay.ts"],"names":[],"mappings":"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"}
|
package/dist/hono/relay.js
CHANGED
|
@@ -203,6 +203,12 @@ export function createRelay(adapter, errorStore, options = {}) {
|
|
|
203
203
|
tagInputResolved(target) {
|
|
204
204
|
return postAndRecord(target, "/api/chat/tag-input-resolved", callbackBody(target));
|
|
205
205
|
},
|
|
206
|
+
flowInputRequest(target, request) {
|
|
207
|
+
return postAndRecord(target, "/api/chat/flow-input-request", callbackBody(target, { toolUseId: request.toolUseId, requests: request.requests }));
|
|
208
|
+
},
|
|
209
|
+
flowInputResolved(target) {
|
|
210
|
+
return postAndRecord(target, "/api/chat/flow-input-resolved", callbackBody(target));
|
|
211
|
+
},
|
|
206
212
|
planReview(target, request) {
|
|
207
213
|
return postAndRecord(target, "/api/chat/plan-review", callbackBody(target, { toolUseId: request.toolUseId, plan: request.plan }));
|
|
208
214
|
},
|
package/dist/hono/relay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/hono/relay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/hono/relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,22 @@ export type MarkdownContent = {
|
|
|
20
20
|
baselineContent?: string | null;
|
|
21
21
|
};
|
|
22
22
|
type FlowTree = Record<string, unknown>;
|
|
23
|
+
/**
|
|
24
|
+
* Why the "before / on main" side of the flow diff is (or isn't) available:
|
|
25
|
+
* - `found`: the baseline flow was located on main and decoded.
|
|
26
|
+
* - `new`: no such flow exists at the merge base — genuinely new on this branch.
|
|
27
|
+
* - `unavailable`: the base ref / merge base couldn't be resolved (e.g. no
|
|
28
|
+
* `origin/main`, shallow clone with no shared history) — comparison impossible.
|
|
29
|
+
* - `undecodable`: the baseline exists but its encrypted config can't be read with
|
|
30
|
+
* the current key (e.g. key rotation) — comparison would be misleading.
|
|
31
|
+
* The dashboard renders `new` as a full "added" diff but shows a plain explanation
|
|
32
|
+
* for `unavailable`/`undecodable` instead of a fake set of changes.
|
|
33
|
+
*/
|
|
34
|
+
export type FlowBaselineStatus = "found" | "new" | "unavailable" | "undecodable";
|
|
23
35
|
export type FlowWithBaseline = {
|
|
24
36
|
flow: FlowTree;
|
|
25
37
|
baselineFlow: FlowTree | null;
|
|
38
|
+
baselineStatus: FlowBaselineStatus;
|
|
26
39
|
};
|
|
27
40
|
type DocumentContent = {
|
|
28
41
|
filename: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-content.d.ts","sourceRoot":"","sources":["../../src/hono/sandbox-content.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,kBAAkB,EAA4B,MAAM,oBAAoB,CAAC;AAIvF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAErE,KAAK,gBAAgB,GAAG,cAAc,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;AAEvF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAClG,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sandbox-content.d.ts","sourceRoot":"","sources":["../../src/hono/sandbox-content.ts"],"names":[],"mappings":"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"}
|