fetchsandbox-mcp 0.3.7 → 0.3.9
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/dist/client.js +1 -1
- package/dist/index.js +20 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/guide.js +4 -2
- package/dist/tools/guide.js.map +1 -1
- package/dist/tools/quickrun.d.ts +51 -0
- package/dist/tools/quickrun.js +61 -0
- package/dist/tools/quickrun.js.map +1 -0
- package/dist/tools/verify_behavior.d.ts +65 -0
- package/dist/tools/verify_behavior.js +73 -0
- package/dist/tools/verify_behavior.js.map +1 -0
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -29,7 +29,7 @@ export function getBaseUrl() {
|
|
|
29
29
|
function buildHeaders(extra) {
|
|
30
30
|
const ide = detectIde();
|
|
31
31
|
const headers = {
|
|
32
|
-
"user-agent": `fetchsandbox-mcp/0.3.
|
|
32
|
+
"user-agent": `fetchsandbox-mcp/0.3.9 (node ${process.version}; ide=${ide})`,
|
|
33
33
|
accept: "application/json",
|
|
34
34
|
...(extra ?? {}),
|
|
35
35
|
};
|
package/dist/index.js
CHANGED
|
@@ -26,17 +26,21 @@ import { runRunWorkflow, runWorkflowTool } from "./tools/run_workflow.js";
|
|
|
26
26
|
import { runRunAllWorkflows, runAllWorkflowsTool } from "./tools/run_all_workflows.js";
|
|
27
27
|
import { guideTool, runGuide } from "./tools/guide.js";
|
|
28
28
|
import { coachTool, runCoach } from "./tools/coach.js";
|
|
29
|
-
|
|
29
|
+
import { verifyBehaviorTool, runVerifyBehavior } from "./tools/verify_behavior.js";
|
|
30
|
+
import { quickrunTool, runQuickrun } from "./tools/quickrun.js";
|
|
31
|
+
const VERSION = "0.3.9";
|
|
30
32
|
const server = new Server({ name: "fetchsandbox", version: VERSION }, { capabilities: { tools: {} } });
|
|
31
33
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
32
34
|
tools: [
|
|
33
35
|
coachTool, // listed FIRST — the conversational entry point
|
|
34
36
|
guideTool, // the deterministic single-shot router (still useful)
|
|
37
|
+
quickrunTool, // run a bundled spec by slug — no import_spec/sandbox needed
|
|
35
38
|
listSpecsTool,
|
|
36
39
|
importSpecTool,
|
|
37
40
|
listWorkflowsTool,
|
|
38
41
|
runAllWorkflowsTool,
|
|
39
42
|
runWorkflowTool,
|
|
43
|
+
verifyBehaviorTool,
|
|
40
44
|
listRunsTool,
|
|
41
45
|
],
|
|
42
46
|
}));
|
|
@@ -64,6 +68,13 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
64
68
|
: undefined,
|
|
65
69
|
});
|
|
66
70
|
break;
|
|
71
|
+
case quickrunTool.name:
|
|
72
|
+
result = await runQuickrun({
|
|
73
|
+
spec_slug: typeof a.spec_slug === "string" ? a.spec_slug : "",
|
|
74
|
+
workflow_name: typeof a.workflow_name === "string" ? a.workflow_name : "",
|
|
75
|
+
scenario: typeof a.scenario === "string" ? a.scenario : undefined,
|
|
76
|
+
});
|
|
77
|
+
break;
|
|
67
78
|
case listSpecsTool.name:
|
|
68
79
|
result = await runListSpecs({
|
|
69
80
|
filter: typeof a.filter === "string" ? a.filter : undefined,
|
|
@@ -105,6 +116,14 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
105
116
|
: undefined,
|
|
106
117
|
});
|
|
107
118
|
break;
|
|
119
|
+
case verifyBehaviorTool.name:
|
|
120
|
+
result = await runVerifyBehavior({
|
|
121
|
+
bug_pattern_id: typeof a.bug_pattern_id === "string" ? a.bug_pattern_id : "",
|
|
122
|
+
prompt: typeof a.prompt === "string" ? a.prompt : undefined,
|
|
123
|
+
sandbox_id: typeof a.sandbox_id === "string" ? a.sandbox_id : undefined,
|
|
124
|
+
flow_run_id: typeof a.flow_run_id === "string" ? a.flow_run_id : undefined,
|
|
125
|
+
});
|
|
126
|
+
break;
|
|
108
127
|
default:
|
|
109
128
|
throw new ToolError(`Unknown tool: ${name}`);
|
|
110
129
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/guide.js
CHANGED
|
@@ -9,8 +9,10 @@ export const guideTool = {
|
|
|
9
9
|
"but not an exact workflow ID — the router picks the spec's " +
|
|
10
10
|
"Tier-1 default deterministically, so the same prompt always hits " +
|
|
11
11
|
"the same proof-verified flow. Returns {spec, workflow, scenario, " +
|
|
12
|
-
"confidence, reasoning, next_question}. If confidence ≥ 0.75, " +
|
|
13
|
-
"
|
|
12
|
+
"confidence, reasoning, next_question}. If confidence ≥ 0.75, follow " +
|
|
13
|
+
"up with `quickrun` for a bundled/known spec (the usual case — no " +
|
|
14
|
+
"sandbox setup needed) or run_workflow if you already imported a " +
|
|
15
|
+
"custom spec, using the returned spec + workflow. " +
|
|
14
16
|
"If confidence < 0.75, ask the user a clarifying question (the " +
|
|
15
17
|
"reasoning field explains why the match was weak). If " +
|
|
16
18
|
"next_question is non-null, ask the user THAT question first " +
|
package/dist/tools/guide.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/tools/guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAgDxC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,OAAO;IACb,WAAW,EACT,oEAAoE;QACpE,mEAAmE;QACnE,oEAAoE;QACpE,mEAAmE;QACnE,kEAAkE;QAClE,6DAA6D;QAC7D,mEAAmE;QACnE,mEAAmE;QACnE
|
|
1
|
+
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/tools/guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAgDxC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,OAAO;IACb,WAAW,EACT,oEAAoE;QACpE,mEAAmE;QACnE,oEAAoE;QACpE,mEAAmE;QACnE,kEAAkE;QAClE,6DAA6D;QAC7D,mEAAmE;QACnE,mEAAmE;QACnE,sEAAsE;QACtE,mEAAmE;QACnE,kEAAkE;QAClE,mDAAmD;QACnD,gEAAgE;QAChE,uDAAuD;QACvD,8DAA8D;QAC9D,kEAAkE;QAClE,gEAAgE;QAChE,+CAA+C;IACjD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,2DAA2D;oBAC3D,6DAA6D;oBAC7D,6DAA6D;aAChE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,gEAAgE;oBAChE,mCAAmC;gBACrC,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;oBACpE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;oBAC1E,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;iBACrF;aACF;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAiB;IAC9C,OAAO,QAAQ,CAAgB,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-call run against a KNOWN/bundled spec — no import_spec, no sandbox setup.
|
|
3
|
+
*
|
|
4
|
+
* This is the primitive that makes the brownfield flow work from a bare prompt:
|
|
5
|
+
* the user has an app that integrates a well-known provider (Stripe, Clerk, …),
|
|
6
|
+
* they ask to test it, `guide` resolves the spec + workflow, and this spins up
|
|
7
|
+
* the bundled sandbox by slug and runs the workflow in one shot — returning the
|
|
8
|
+
* sandbox_id + flow_run_id needed to then prove the fix with verify_behavior.
|
|
9
|
+
*
|
|
10
|
+
* Calls POST /api/mcp/quickrun/{spec_slug}/{workflow_name}.
|
|
11
|
+
*/
|
|
12
|
+
export interface QuickrunInput {
|
|
13
|
+
spec_slug: string;
|
|
14
|
+
workflow_name: string;
|
|
15
|
+
scenario?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface NormalizedQuickrunResult {
|
|
18
|
+
spec_slug: string;
|
|
19
|
+
workflow_name: string;
|
|
20
|
+
status: "pass" | "fail";
|
|
21
|
+
steps_passed: number;
|
|
22
|
+
steps_total: number;
|
|
23
|
+
total_duration_ms: number;
|
|
24
|
+
sandbox_id?: string;
|
|
25
|
+
flow_run_id?: string;
|
|
26
|
+
share_url?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare const quickrunTool: {
|
|
29
|
+
readonly name: "quickrun";
|
|
30
|
+
readonly description: string;
|
|
31
|
+
readonly inputSchema: {
|
|
32
|
+
readonly type: "object";
|
|
33
|
+
readonly properties: {
|
|
34
|
+
readonly spec_slug: {
|
|
35
|
+
readonly type: "string";
|
|
36
|
+
readonly description: "The bundled spec slug from guide (e.g. 'stripe'). Lowercase.";
|
|
37
|
+
};
|
|
38
|
+
readonly workflow_name: {
|
|
39
|
+
readonly type: "string";
|
|
40
|
+
readonly description: "The workflow id from guide (e.g. 'accept_payment').";
|
|
41
|
+
};
|
|
42
|
+
readonly scenario: {
|
|
43
|
+
readonly type: "string";
|
|
44
|
+
readonly description: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
readonly required: readonly ["spec_slug", "workflow_name"];
|
|
48
|
+
readonly additionalProperties: false;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export declare function runQuickrun(input: QuickrunInput): Promise<NormalizedQuickrunResult>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ToolError, postJson } from "../client.js";
|
|
2
|
+
export const quickrunTool = {
|
|
3
|
+
name: "quickrun",
|
|
4
|
+
description: "Run a curated proof workflow against a KNOWN, bundled spec (stripe, clerk, " +
|
|
5
|
+
"descope, resend, twilio, and 50+ others) in ONE call — it spins up the " +
|
|
6
|
+
"sandbox by slug, so you do NOT need import_spec or a sandbox_id first. " +
|
|
7
|
+
"This is the normal path when the user is testing an integration with a " +
|
|
8
|
+
"well-known provider: call `guide` on their prompt, then call `quickrun` " +
|
|
9
|
+
"with the returned spec + workflow. To reproduce a failure, pass the " +
|
|
10
|
+
"`scenario` from guide's matched_bug_pattern.reproduce_with.scenario (e.g. " +
|
|
11
|
+
"webhook_retries, payment_declined). Returns sandbox_id + flow_run_id — pass " +
|
|
12
|
+
"BOTH to verify_behavior to prove the fix — plus a receipt URL. Use " +
|
|
13
|
+
"run_workflow instead ONLY when you already hold a sandbox_id from " +
|
|
14
|
+
"import_spec of a custom/private spec.",
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: "object",
|
|
17
|
+
properties: {
|
|
18
|
+
spec_slug: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "The bundled spec slug from guide (e.g. 'stripe'). Lowercase.",
|
|
21
|
+
},
|
|
22
|
+
workflow_name: {
|
|
23
|
+
type: "string",
|
|
24
|
+
description: "The workflow id from guide (e.g. 'accept_payment').",
|
|
25
|
+
},
|
|
26
|
+
scenario: {
|
|
27
|
+
type: "string",
|
|
28
|
+
description: "OPTIONAL failure scenario to reproduce (e.g. webhook_retries, " +
|
|
29
|
+
"payment_declined). Take it from guide's matched_bug_pattern." +
|
|
30
|
+
"reproduce_with.scenario. Omit for the happy path.",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
required: ["spec_slug", "workflow_name"],
|
|
34
|
+
additionalProperties: false,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
export async function runQuickrun(input) {
|
|
38
|
+
if (!input.spec_slug)
|
|
39
|
+
throw new ToolError("spec_slug is required.");
|
|
40
|
+
if (!input.workflow_name)
|
|
41
|
+
throw new ToolError("workflow_name is required.");
|
|
42
|
+
const path = `/api/mcp/quickrun/${encodeURIComponent(input.spec_slug)}/${encodeURIComponent(input.workflow_name)}`;
|
|
43
|
+
const body = {};
|
|
44
|
+
if (input.scenario && input.scenario.trim())
|
|
45
|
+
body.scenario = input.scenario.trim();
|
|
46
|
+
const raw = await postJson(path, body);
|
|
47
|
+
const steps = raw.steps ?? [];
|
|
48
|
+
return {
|
|
49
|
+
spec_slug: input.spec_slug,
|
|
50
|
+
workflow_name: raw.flow_name ?? input.workflow_name,
|
|
51
|
+
status: raw.passed ? "pass" : "fail",
|
|
52
|
+
steps_passed: steps.filter((s) => s.status === "passed").length,
|
|
53
|
+
steps_total: steps.length,
|
|
54
|
+
total_duration_ms: raw.total_duration_ms ?? 0,
|
|
55
|
+
sandbox_id: raw.sandbox_id,
|
|
56
|
+
flow_run_id: raw.flow_run_id,
|
|
57
|
+
// quickrun returns timeline_url; normalize to share_url for parity with run_workflow.
|
|
58
|
+
share_url: raw.share_url ?? raw.timeline_url,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=quickrun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickrun.js","sourceRoot":"","sources":["../../src/tools/quickrun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AA4CnD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,UAAU;IAChB,WAAW,EACT,6EAA6E;QAC7E,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,sEAAsE;QACtE,4EAA4E;QAC5E,8EAA8E;QAC9E,qEAAqE;QACrE,oEAAoE;QACpE,uCAAuC;IACzC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8DAA8D;aAC5E;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qDAAqD;aACnE;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,gEAAgE;oBAChE,8DAA8D;oBAC9D,mDAAmD;aACtD;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC;QACxC,oBAAoB,EAAE,KAAK;KAC5B;CACO,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAoB;IACpD,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,CAAC,aAAa;QAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,qBAAqB,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,kBAAkB,CACzF,KAAK,CAAC,aAAa,CACpB,EAAE,CAAC;IACJ,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAwB,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa;QACnD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACpC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;QAC/D,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,CAAC;QAC7C,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,sFAAsF;QACtF,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,YAAY;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Behavioral proof — the "prove the fix" half of reproduce→prove.
|
|
3
|
+
*
|
|
4
|
+
* Given a bug_pattern that declares a `simulation:` block, the backend spawns
|
|
5
|
+
* two reference handler containers (a buggy one and a fixed one), fires the
|
|
6
|
+
* pattern's probes at both, and returns the side-by-side diff — e.g. the buggy
|
|
7
|
+
* handler double-charges on a duplicate webhook, the fixed one dedupes.
|
|
8
|
+
*
|
|
9
|
+
* Call this AFTER run_workflow reproduces a failure, to prove a known fix
|
|
10
|
+
* actually survives it (not just that the failure happened). Pass sandbox_id +
|
|
11
|
+
* flow_run_id from the run so the diff is saved onto that run's receipt.
|
|
12
|
+
*
|
|
13
|
+
* Calls POST /api/mcp/verify_behavior. The buggy/fixed handlers are
|
|
14
|
+
* FetchSandbox reference implementations, NOT the user's code — the diff proves
|
|
15
|
+
* the pattern is real and the brain's fix_pattern works; the user applies that
|
|
16
|
+
* fix_pattern to inherit the behavior.
|
|
17
|
+
*/
|
|
18
|
+
export interface VerifyBehaviorInput {
|
|
19
|
+
bug_pattern_id: string;
|
|
20
|
+
prompt?: string;
|
|
21
|
+
sandbox_id?: string;
|
|
22
|
+
flow_run_id?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface NormalizedVerifyResult {
|
|
25
|
+
pattern_id?: string;
|
|
26
|
+
mode?: string;
|
|
27
|
+
confirmed: boolean;
|
|
28
|
+
disclaimer?: string;
|
|
29
|
+
probes: Array<{
|
|
30
|
+
name?: string;
|
|
31
|
+
buggy_status?: number;
|
|
32
|
+
fixed_status?: number;
|
|
33
|
+
diff_observed: boolean;
|
|
34
|
+
verdict?: string;
|
|
35
|
+
}>;
|
|
36
|
+
duration_ms?: number;
|
|
37
|
+
}
|
|
38
|
+
export declare const verifyBehaviorTool: {
|
|
39
|
+
readonly name: "verify_behavior";
|
|
40
|
+
readonly description: string;
|
|
41
|
+
readonly inputSchema: {
|
|
42
|
+
readonly type: "object";
|
|
43
|
+
readonly properties: {
|
|
44
|
+
readonly bug_pattern_id: {
|
|
45
|
+
readonly type: "string";
|
|
46
|
+
readonly description: string;
|
|
47
|
+
};
|
|
48
|
+
readonly prompt: {
|
|
49
|
+
readonly type: "string";
|
|
50
|
+
readonly description: string;
|
|
51
|
+
};
|
|
52
|
+
readonly sandbox_id: {
|
|
53
|
+
readonly type: "string";
|
|
54
|
+
readonly description: string;
|
|
55
|
+
};
|
|
56
|
+
readonly flow_run_id: {
|
|
57
|
+
readonly type: "string";
|
|
58
|
+
readonly description: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
readonly required: readonly ["bug_pattern_id"];
|
|
62
|
+
readonly additionalProperties: false;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
export declare function runVerifyBehavior(input: VerifyBehaviorInput): Promise<NormalizedVerifyResult>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { ToolError, postJson } from "../client.js";
|
|
2
|
+
export const verifyBehaviorTool = {
|
|
3
|
+
name: "verify_behavior",
|
|
4
|
+
description: "Prove a known fix survives a bug — the 'prove' half of reproduce→prove. " +
|
|
5
|
+
"The backend spawns a buggy AND a fixed reference handler and fires the " +
|
|
6
|
+
"bug_pattern's probes at both, returning the side-by-side diff (e.g. the " +
|
|
7
|
+
"buggy handler double-charges on a duplicate webhook, the fixed handler " +
|
|
8
|
+
"dedupes). Call this AFTER run_workflow reproduces a failure, when the " +
|
|
9
|
+
"matched bug_pattern has a simulation block, to show the fix actually " +
|
|
10
|
+
"holds — not just that the failure reproduced. Pass sandbox_id + " +
|
|
11
|
+
"flow_run_id from the run so the diff is saved onto that run's receipt " +
|
|
12
|
+
"URL. bug_pattern_id comes from guide's matched_bug_pattern. The buggy/" +
|
|
13
|
+
"fixed handlers are FetchSandbox reference implementations, NOT the user's " +
|
|
14
|
+
"code — apply the brain's fix_pattern to inherit the proven behavior.",
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: "object",
|
|
17
|
+
properties: {
|
|
18
|
+
bug_pattern_id: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "The bug_pattern to prove (e.g. webhook_duplicate_side_effect). " +
|
|
21
|
+
"Comes from guide's matched_bug_pattern.id or the spec's brain.",
|
|
22
|
+
},
|
|
23
|
+
prompt: {
|
|
24
|
+
type: "string",
|
|
25
|
+
description: "OPTIONAL. The user's own description of the symptom. For patterns " +
|
|
26
|
+
"that can originate in the handler OR the provider, this classifies " +
|
|
27
|
+
"which side to simulate. Omit to run both.",
|
|
28
|
+
},
|
|
29
|
+
sandbox_id: {
|
|
30
|
+
type: "string",
|
|
31
|
+
description: "OPTIONAL. The sandbox from the run. Pass with flow_run_id to save " +
|
|
32
|
+
"the diff onto that run's receipt.",
|
|
33
|
+
},
|
|
34
|
+
flow_run_id: {
|
|
35
|
+
type: "string",
|
|
36
|
+
description: "OPTIONAL. The flow_run_id returned by run_workflow. Pass with " +
|
|
37
|
+
"sandbox_id so the receipt URL renders the diff alongside the steps.",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
required: ["bug_pattern_id"],
|
|
41
|
+
additionalProperties: false,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
export async function runVerifyBehavior(input) {
|
|
45
|
+
if (!input.bug_pattern_id)
|
|
46
|
+
throw new ToolError("bug_pattern_id is required.");
|
|
47
|
+
const body = { bug_pattern_id: input.bug_pattern_id };
|
|
48
|
+
if (input.prompt && input.prompt.trim())
|
|
49
|
+
body.prompt = input.prompt.trim();
|
|
50
|
+
if (input.sandbox_id)
|
|
51
|
+
body.sandbox_id = input.sandbox_id;
|
|
52
|
+
if (input.flow_run_id)
|
|
53
|
+
body.flow_run_id = input.flow_run_id;
|
|
54
|
+
const raw = await postJson("/api/mcp/verify_behavior", body);
|
|
55
|
+
const probes = (raw.probes ?? []).map((p) => ({
|
|
56
|
+
name: p.name,
|
|
57
|
+
buggy_status: p.buggy_response?.status,
|
|
58
|
+
fixed_status: p.fixed_response?.status,
|
|
59
|
+
diff_observed: p.expected_diff_observed ?? false,
|
|
60
|
+
verdict: p.verdict,
|
|
61
|
+
}));
|
|
62
|
+
return {
|
|
63
|
+
pattern_id: raw.pattern_id,
|
|
64
|
+
mode: raw.mode,
|
|
65
|
+
// Full response bodies live on the receipt; the tool returns the verdict-
|
|
66
|
+
// level diff so the agent's transcript stays small.
|
|
67
|
+
confirmed: probes.length > 0 && probes.every((p) => p.diff_observed),
|
|
68
|
+
disclaimer: raw.disclaimer,
|
|
69
|
+
probes,
|
|
70
|
+
duration_ms: raw.duration_ms,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=verify_behavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify_behavior.js","sourceRoot":"","sources":["../../src/tools/verify_behavior.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AA4DnD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,kEAAkE;QAClE,wEAAwE;QACxE,wEAAwE;QACxE,4EAA4E;QAC5E,sEAAsE;IACxE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,iEAAiE;oBACjE,gEAAgE;aACnE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,oEAAoE;oBACpE,qEAAqE;oBACrE,2CAA2C;aAC9C;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,oEAAoE;oBACpE,mCAAmC;aACtC;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,gEAAgE;oBAChE,qEAAqE;aACxE;SACF;QACD,QAAQ,EAAE,CAAC,gBAAgB,CAAC;QAC5B,oBAAoB,EAAE,KAAK;KAC5B;CACO,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAA0B;IAE1B,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAC9E,MAAM,IAAI,GAA4B,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;IAC/E,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3E,IAAI,KAAK,CAAC,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACzD,IAAI,KAAK,CAAC,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAE5D,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAwB,0BAA0B,EAAE,IAAI,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,YAAY,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM;QACtC,YAAY,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM;QACtC,aAAa,EAAE,CAAC,CAAC,sBAAsB,IAAI,KAAK;QAChD,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,0EAA0E;QAC1E,oDAAoD;QACpD,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QACpE,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM;QACN,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fetchsandbox-mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"mcpName": "io.github.fetchsandbox/mcp",
|
|
5
5
|
"description": "Turn any OpenAPI spec into a working sandbox your AI agent can use. MCP server for Claude Code, Cursor, and any other MCP-compatible LLM IDE.",
|
|
6
6
|
"license": "MIT",
|