@deepthonk/mcp 0.1.0 → 0.1.2

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
@@ -6,7 +6,7 @@ DeepThonk implements the OpenDeepThink algorithm (Zhou et al., 2026, [arXiv:2605
6
6
 
7
7
  DeepThonk runs a population of candidate answers through pairwise judging, Bradley-Terry ranking, critique-guided mutation, elite preservation, and a final dense ranking pass. The CLI and MCP server both call the same TypeScript core engine.
8
8
 
9
- **Designed for agents.** Every algorithm dimension — population shape (`n`, `k`, `t`, `m`), regularization (`lambda`), per-phase temperatures, prompt style, and per-phase prompt templates — is reachable inline through MCP arguments and CLI flags. No filesystem detours required. Every intermediate artifact (candidates, comparisons, scores, per-call usage, status) is exposed as a streaming MCP resource so an agent can inspect any step. See [Customization](https://github.com/linxule/deepthonk/blob/main/docs/customization.md) for the full agent-composable surface.
9
+ **Designed for agents.** Every algorithm dimension — population shape (`n`, `k`, `t`, `m`), regularization (`lambda`), per-phase temperatures, prompt style, and per-phase prompt templates — is reachable inline through MCP arguments and CLI flags. CLI can load prompt files with `--prompts` or inline JSON with `--prompts-json`; MCP accepts inline structured prompt args. Every intermediate artifact (config, candidates, populations, comparisons, scores, per-call usage, status) is exposed as an MCP resource so an agent can inspect any step. See [Customization](https://github.com/linxule/deepthonk/blob/main/docs/customization.md) for the full agent-composable surface.
10
10
 
11
11
  Use it for hard, verifiable reasoning, coding, planning, and synthesis where breadth plus judgment can beat one expensive single shot. Avoid it for highly subjective tasks where judge noise dominates.
12
12
 
@@ -111,6 +111,8 @@ The MCP server exposes the same engine the CLI runs. Once wired into an MCP host
111
111
 
112
112
  Provider API keys come from the host process's environment, not from DeepThonk's config alone. Each host handles env passthrough slightly differently — see the concrete patterns below.
113
113
 
114
+ MCP Sampling is supported as `provider: "sampling"` when the connected host advertises the MCP sampling capability. Sampling is not available from standalone CLI runs; use `deepseek`, `openrouter`, or `openai-compatible` there.
115
+
114
116
  ### Claude Code
115
117
 
116
118
  ```bash
@@ -198,7 +200,9 @@ All tools accept inline provider/model fields, or `config_path` pointing at a De
198
200
 
199
201
  - `deepthonk://runs` — JSON index of all runs in `runs/`.
200
202
  - `deepthonk://runs/{run_id}/summary` — run summary (JSON).
201
- - `deepthonk://runs/{run_id}/{candidates|comparisons|scores|trace}` — per-phase NDJSON.
203
+ - `deepthonk://runs/{run_id}/config` — redacted run config (JSON).
204
+ - `deepthonk://runs/{run_id}/{candidates|comparisons|scores|usage|trace}` — per-phase and per-call NDJSON.
205
+ - `deepthonk://runs/{run_id}/population/{generation}` — population snapshot for a generation (JSON).
202
206
  - `deepthonk://runs/{run_id}/{winner|final}` — text artifacts.
203
207
  - `deepthonk://runs/{run_id}/status` — run state (JSON).
204
208
  - `deepthonk://jobs/{job_id}/{status|result}?run_dir=...` — job-scoped lookup; the `run_dir` query param is required.
@@ -209,7 +213,7 @@ Four templates mirror the core loop: `deepthonk/generate`, `deepthonk/compare`,
209
213
 
210
214
  ### Limits
211
215
 
212
- MCP Sampling is deferred and not exposed as a provider mode — direct provider mode is the only option in v0.1. `deepthonk.resume` reports trace state and safe phase boundaries but does not replay interrupted runs. The HTTP transport is loopback-only by design.
216
+ `deepthonk.resume` reports trace state and safe phase boundaries but does not replay interrupted runs. The HTTP transport is loopback-only by design. MCP Sampling depends on the host's sampling implementation; model hints are preferences, token usage may be unavailable, and sampling concurrency is capped at 4.
213
217
 
214
218
  ## Customization
215
219
 
@@ -218,7 +222,7 @@ Every algorithm dimension is reachable through MCP arguments and CLI flags:
218
222
  - **Population shape**: `n`, `k`, `t`, `m` — override profile defaults inline.
219
223
  - **Algorithm constants**: `lambda`, `sample_temperature`, `mutate_temperature`, `judge_temperature`.
220
224
  - **Prompt style**: `general` or `paper-programming`.
221
- - **Per-phase prompt templates**: override `generate`, `compare`, `mutate`, or `finalize` with custom system/user templates and variable substitution (`{task}`, `{rubric}`, `{candidate}`, `{candidateA}`, `{candidateB}`, `{critique}`). Unknown variables throw a fail-fast error at run-start.
225
+ - **Per-phase prompt templates**: override `generate`, `compare`, `mutate`, or `finalize` with custom system/user templates and variable substitution (`{task}`, `{rubric}`, `{candidate}`, `{candidateA}`, `{candidateB}`, `{critique}`). CLI supports `--prompts <yaml>` and `--prompts-json <json>`; MCP supports inline `prompts`. Unknown variables throw a fail-fast error at run-start.
222
226
  - **Concurrency**: per-phase caps for `generate`, `judge`, `mutate`.
223
227
 
224
228
  Example agent call (MCP), no YAML file required:
@@ -237,9 +241,11 @@ Example agent call (MCP), no YAML file required:
237
241
  }
238
242
  ```
239
243
 
240
- CLI accepts the same surface, except prompt overrides are loaded from a YAML file via `--prompts <yaml>` (shell-quoting multi-line templates is hostile). MCP and CLI both merge over any `--config`/`config_path` YAML defaults.
244
+ CLI accepts the same surface. Use `--prompts <yaml>` for reusable prompt files or `--prompts-json <json>` for one-off inline overrides. MCP and CLI both merge over any `--config`/`config_path` YAML defaults.
245
+
246
+ Save reusable bundles as **named profiles** at `~/.config/deepthonk/profiles/<name>.yaml` and load them with `--profile-name <name>` (CLI) or `profile_name: "<name>"` (MCP). A named profile is a standalone bundle that replaces the main config file for that run; CLI flags and MCP inline arguments still override fields inside it. See `examples/profiles/legal-drafting.yaml` for the shape. The [Customization guide](https://github.com/linxule/deepthonk/blob/main/docs/customization.md#managing-named-profiles) covers listing, showing, saving, and deleting named profiles from both CLI and MCP.
241
247
 
242
- See the [Customization guide](https://github.com/linxule/deepthonk/blob/main/docs/customization.md) for the complete variable contract, the compare-phase JSON safety rule, and three worked examples. Per-role provider routing (`providers.judge.provider = openrouter`) and per-model pricing remain YAML-only — they're nested structured config, not inline ergonomics.
248
+ See the [Customization guide](https://github.com/linxule/deepthonk/blob/main/docs/customization.md) for the complete variable contract, the compare-phase JSON safety rule, the named-profile schema, and three worked examples. Per-role provider routing (`providers.judge.provider = openrouter`) and per-model pricing remain YAML-only — they're nested structured config, not inline ergonomics.
243
249
 
244
250
  ## Trace Files
245
251
 
@@ -280,7 +286,7 @@ This repository is source-only. Generated run traces, paper notes, build output,
280
286
  Known limits for this release:
281
287
 
282
288
  - Conservative resume reports trace state and safe phase boundaries, but does not replay interrupted runs yet.
283
- - MCP Sampling is deferred until there is a real host-backed Sampling driver.
289
+ - MCP Sampling is MCP-host-only. Standalone CLI runs need a direct provider.
284
290
  - `maxUsd` requires known model pricing; add explicit prices in YAML for custom providers and model IDs. Optional fields `longContextThresholdTokens`, `inputUsdPerMillionLong`, and `outputUsdPerMillionLong` enable tiered pricing for models with a long-context surcharge (e.g., Gemini at 200K input tokens). Cache hit/miss rates remain flat.
285
291
 
286
292
  ## Acknowledgments
@@ -1,4 +1,4 @@
1
- export declare const resourceTemplates: readonly ["deepthonk://runs", "deepthonk://runs/{run_id}/summary", "deepthonk://runs/{run_id}/candidates", "deepthonk://runs/{run_id}/comparisons", "deepthonk://runs/{run_id}/scores", "deepthonk://runs/{run_id}/trace", "deepthonk://runs/{run_id}/final", "deepthonk://runs/{run_id}/winner", "deepthonk://runs/{run_id}/status", "deepthonk://jobs/{job_id}/status", "deepthonk://jobs/{job_id}/result"];
1
+ export declare const resourceTemplates: readonly ["deepthonk://runs", "deepthonk://runs/{run_id}/summary", "deepthonk://runs/{run_id}/config", "deepthonk://runs/{run_id}/candidates", "deepthonk://runs/{run_id}/comparisons", "deepthonk://runs/{run_id}/scores", "deepthonk://runs/{run_id}/usage", "deepthonk://runs/{run_id}/trace", "deepthonk://runs/{run_id}/final", "deepthonk://runs/{run_id}/winner", "deepthonk://runs/{run_id}/status", "deepthonk://runs/{run_id}/population/{generation}", "deepthonk://jobs/{job_id}/status", "deepthonk://jobs/{job_id}/result"];
2
2
  export declare function readRunResource(uri: string, runsRoot?: string): Promise<string>;
3
3
  export declare function readJobResource(uri: string): Promise<string>;
4
4
  export declare function recordRunResource(runId: string, runDir: string, runsRoot?: string): Promise<void>;
package/dist/resources.js CHANGED
@@ -1,14 +1,19 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
1
3
  import { ConfigError, detectResumeState, exportRun, listRunRecords, readRunArtifact, readRunStatus, recordRunIndex, resolveRunDir } from "@deepthonk/core";
2
4
  export const resourceTemplates = [
3
5
  "deepthonk://runs",
4
6
  "deepthonk://runs/{run_id}/summary",
7
+ "deepthonk://runs/{run_id}/config",
5
8
  "deepthonk://runs/{run_id}/candidates",
6
9
  "deepthonk://runs/{run_id}/comparisons",
7
10
  "deepthonk://runs/{run_id}/scores",
11
+ "deepthonk://runs/{run_id}/usage",
8
12
  "deepthonk://runs/{run_id}/trace",
9
13
  "deepthonk://runs/{run_id}/final",
10
14
  "deepthonk://runs/{run_id}/winner",
11
15
  "deepthonk://runs/{run_id}/status",
16
+ "deepthonk://runs/{run_id}/population/{generation}",
12
17
  "deepthonk://jobs/{job_id}/status",
13
18
  "deepthonk://jobs/{job_id}/result"
14
19
  ];
@@ -16,6 +21,12 @@ export async function readRunResource(uri, runsRoot = "runs") {
16
21
  if (uri === "deepthonk://runs") {
17
22
  return JSON.stringify(await listRunRecords(runsRoot), null, 2);
18
23
  }
24
+ const populationMatch = uri.match(/^deepthonk:\/\/runs\/([^/]+)\/population\/([^/]+)$/);
25
+ if (populationMatch) {
26
+ const [, runId, generation] = populationMatch;
27
+ const base = await resolveRunDir(runId, runsRoot);
28
+ return readFile(join(base, `population-${generation}.json`), "utf8");
29
+ }
19
30
  const match = uri.match(/^deepthonk:\/\/runs\/([^/]+)\/([^/]+)$/);
20
31
  if (!match)
21
32
  throw new Error(`Unsupported resource URI: ${uri}`);
@@ -55,7 +66,7 @@ export async function recordRunResource(runId, runDir, runsRoot = "runs") {
55
66
  }
56
67
  export async function listRunResources(runsRoot = "runs") {
57
68
  const records = await listRunRecords(runsRoot);
58
- const resources = ["summary", "candidates", "comparisons", "scores", "trace", "final", "winner", "status"];
69
+ const resources = ["summary", "config", "candidates", "comparisons", "scores", "usage", "trace", "final", "winner", "status"];
59
70
  return records.flatMap((record) => resources.map((resource) => ({
60
71
  uri: `deepthonk://runs/${record.run_id}/${resource}`,
61
72
  name: `${record.run_id}/${resource}`,
@@ -66,8 +77,12 @@ export async function listRunResources(runsRoot = "runs") {
66
77
  function resourceMimeType(resource) {
67
78
  if (resource === "summary")
68
79
  return "application/json";
80
+ if (resource === "config")
81
+ return "application/json";
69
82
  if (resource === "status")
70
83
  return "application/json";
84
+ if (resource === "population")
85
+ return "application/json";
71
86
  if (resource === "final" || resource === "winner")
72
87
  return "text/plain";
73
88
  return "application/x-ndjson";
@@ -79,12 +94,16 @@ function resourceArtifact(resource) {
79
94
  switch (resource) {
80
95
  case "summary":
81
96
  return "summary";
97
+ case "config":
98
+ return "config";
82
99
  case "candidates":
83
100
  return "candidates";
84
101
  case "comparisons":
85
102
  return "comparisons";
86
103
  case "scores":
87
104
  return "scores";
105
+ case "usage":
106
+ return "usage";
88
107
  case "trace":
89
108
  return "trace";
90
109
  case "final":
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,2 @@
1
- import { type CompareInput, type FinalizeInput, type GenerateInput, type ModelDriver, type ModelTextResult, type MutateInput } from "@deepthonk/core";
2
- export declare class SamplingDriver implements ModelDriver {
3
- generate(_input: GenerateInput): Promise<ModelTextResult>;
4
- compare(_input: CompareInput): Promise<ModelTextResult>;
5
- mutate(_input: MutateInput): Promise<ModelTextResult>;
6
- finalize(_input: FinalizeInput): Promise<ModelTextResult>;
7
- private unsupported;
8
- }
1
+ export { SamplingDriver } from "@deepthonk/providers";
2
+ export type { SamplingDriverConfig } from "@deepthonk/providers";
@@ -1,19 +1,2 @@
1
- import { ProviderError } from "@deepthonk/core";
2
- export class SamplingDriver {
3
- async generate(_input) {
4
- return this.unsupported();
5
- }
6
- async compare(_input) {
7
- return this.unsupported();
8
- }
9
- async mutate(_input) {
10
- return this.unsupported();
11
- }
12
- async finalize(_input) {
13
- return this.unsupported();
14
- }
15
- unsupported() {
16
- throw new ProviderError("MCP Sampling is optional and must be negotiated by the host. Direct provider mode is available.");
17
- }
18
- }
1
+ export { SamplingDriver } from "@deepthonk/providers";
19
2
  //# sourceMappingURL=samplingDriver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"samplingDriver.js","sourceRoot":"","sources":["../src/samplingDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuH,MAAM,iBAAiB,CAAC;AAErK,MAAM,OAAO,cAAc;IACzB,KAAK,CAAC,QAAQ,CAAC,MAAqB;QAClC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAoB;QAChC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAmB;QAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAqB;QAClC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAEO,WAAW;QACjB,MAAM,IAAI,aAAa,CAAC,iGAAiG,CAAC,CAAC;IAC7H,CAAC;CACF"}
1
+ {"version":3,"file":"samplingDriver.js","sourceRoot":"","sources":["../src/samplingDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/server.d.ts CHANGED
@@ -4,3 +4,4 @@ export declare function serveMcp(options: {
4
4
  transport: "stdio" | "http";
5
5
  port?: number;
6
6
  }): Promise<void>;
7
+ export declare function isAllowedMcpHttpHost(host: string | undefined, allowedHosts: string[]): boolean;
package/dist/server.js CHANGED
@@ -3,26 +3,30 @@ import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mc
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
5
5
  import { z } from "zod";
6
- import { deepthonkExport, deepthonkMutate, deepthonkPlan, deepthonkRank, deepthonkResume, deepthonkRun, deepthonkStart, deepthonkStatus, deepthonkResult, deepthonkCancel, exportArgsSchema, jobArgsSchema, mutateArgsSchema, planArgsSchema, rankArgsSchema, resumeArgsSchema, runArgsSchema, runOutputSchema, startOutputSchema, statusOutputSchema, resultOutputSchema, cancelOutputSchema, resumeOutputSchema, rankOutputSchema, mutateOutputSchema, toolError, toolResult } from "./tools.js";
6
+ import { deepthonkExport, deepthonkMutate, deepthonkPlan, deepthonkPlanAsync, deepthonkRank, deepthonkResume, deepthonkRun, deepthonkStart, deepthonkStatus, deepthonkResult, deepthonkCancel, deepthonkProfileDelete, deepthonkProfileList, deepthonkProfileSave, deepthonkProfileShow, exportArgsSchema, jobArgsSchema, mutateArgsSchema, planArgsSchema, rankArgsSchema, resumeArgsSchema, runArgsSchema, runOutputSchema, startOutputSchema, statusOutputSchema, resultOutputSchema, cancelOutputSchema, resumeOutputSchema, rankOutputSchema, mutateOutputSchema, profileDeleteOutputSchema, profileListArgsSchema, profileListOutputSchema, profileNameArgsSchema, profileSaveArgsSchema, profileSaveOutputSchema, profileShowOutputSchema, toolError, toolResult } from "./tools.js";
7
7
  import { listRunResources, readJobResource, readRunResource, runResourceMimeType } from "./resources.js";
8
8
  import { renderPrompt } from "./prompts.js";
9
9
  export function createDeepThonkMcpServer() {
10
10
  const server = new McpServer({
11
11
  name: "deepthonk",
12
- version: "0.1.0"
12
+ version: "0.1.2"
13
13
  });
14
+ const samplingContext = {
15
+ getClientCapabilities: () => server.server.getClientCapabilities(),
16
+ createMessage: (params, options) => server.server.createMessage(params, options)
17
+ };
14
18
  server.registerTool("deepthonk.plan", {
15
19
  title: "Plan DeepThonk Budget",
16
20
  description: "Estimate model calls for a DeepThonk profile.",
17
21
  inputSchema: planArgsSchema.shape,
18
22
  outputSchema: z.object({}).passthrough().describe("Budget plan with total calls and sequential rounds.")
19
- }, async (args) => safeTool(() => toolResult(deepthonkPlan(args))));
23
+ }, async (args) => safeTool(async () => toolResult(args.config_path || args.profile_name ? await deepthonkPlanAsync(args) : deepthonkPlan(args))));
20
24
  server.registerTool("deepthonk.start", {
21
25
  title: "Start DeepThonk Job",
22
26
  description: "Start DeepThonk in the background and persist status in the run directory.",
23
27
  inputSchema: runArgsSchema.shape,
24
28
  outputSchema: startOutputSchema.shape
25
- }, async (args) => safeTool(async () => toolResult(await deepthonkStart(args)), args.run_dir));
29
+ }, async (args) => safeTool(async () => toolResult(await deepthonkStart(args, samplingContext)), args.run_dir));
26
30
  server.registerTool("deepthonk.status", {
27
31
  title: "DeepThonk Job Status",
28
32
  description: "Read persisted job/run status from a run directory.",
@@ -46,7 +50,7 @@ export function createDeepThonkMcpServer() {
46
50
  description: "Run DeepThonk through the shared core engine.",
47
51
  inputSchema: runArgsSchema.shape,
48
52
  outputSchema: runOutputSchema.shape
49
- }, async (args) => safeTool(async () => toolResult(await deepthonkRun(args)), args.run_dir));
53
+ }, async (args) => safeTool(async () => toolResult(await deepthonkRun(args, samplingContext)), args.run_dir));
50
54
  server.registerTool("deepthonk.rank", {
51
55
  title: "Rank Candidates",
52
56
  description: "Rank supplied candidates with pairwise judging and Bradley-Terry aggregation.",
@@ -61,10 +65,10 @@ export function createDeepThonkMcpServer() {
61
65
  }, async (args) => safeTool(async () => toolResult(await deepthonkMutate(args))));
62
66
  server.registerTool("deepthonk.resume", {
63
67
  title: "Resume Run",
64
- description: "Detect whether a run can be resumed.",
68
+ description: "Detect resume state (default) or replay an interrupted run with continue: true.",
65
69
  inputSchema: resumeArgsSchema.shape,
66
70
  outputSchema: resumeOutputSchema.shape
67
- }, async (args) => safeTool(async () => toolResult(await deepthonkResume(args)), args.run_dir));
71
+ }, async (args) => safeTool(async () => toolResult(await deepthonkResume(args, samplingContext)), args.run_dir));
68
72
  server.registerTool("deepthonk.export", {
69
73
  title: "Export Run",
70
74
  description: "Export a run summary or trace.",
@@ -87,6 +91,12 @@ export function createDeepThonkMcpServer() {
87
91
  const mimeType = runResourceMimeType(resource);
88
92
  return { contents: [{ uri: uri.href, mimeType, text: await readRunResource(uri.href) }] };
89
93
  });
94
+ server.registerResource("deepthonk-run-population", new ResourceTemplate("deepthonk://runs/{run_id}/population/{generation}", {
95
+ list: async () => ({ resources: [] })
96
+ }), {
97
+ title: "DeepThonk Run Population",
98
+ mimeType: "application/json"
99
+ }, async (uri) => ({ contents: [{ uri: uri.href, mimeType: "application/json", text: await readRunResource(uri.href) }] }));
90
100
  server.registerResource("deepthonk-job-resource", new ResourceTemplate("deepthonk://jobs/{job_id}/{resource}", {
91
101
  list: async () => ({ resources: [] })
92
102
  }), {
@@ -113,6 +123,30 @@ export function createDeepThonkMcpServer() {
113
123
  rubric: z.string().optional(),
114
124
  candidate: z.string().min(1)
115
125
  });
126
+ server.registerTool("deepthonk.profile_list", {
127
+ title: "List DeepThonk Profiles",
128
+ description: "List saved named profiles.",
129
+ inputSchema: profileListArgsSchema.shape,
130
+ outputSchema: profileListOutputSchema.shape
131
+ }, async (args) => safeTool(async () => toolResult(await deepthonkProfileList(args))));
132
+ server.registerTool("deepthonk.profile_show", {
133
+ title: "Show DeepThonk Profile",
134
+ description: "Show a saved named profile with secret-shaped values redacted.",
135
+ inputSchema: profileNameArgsSchema.shape,
136
+ outputSchema: profileShowOutputSchema.shape
137
+ }, async (args) => safeTool(async () => toolResult(await deepthonkProfileShow(args))));
138
+ server.registerTool("deepthonk.profile_save", {
139
+ title: "Save DeepThonk Profile",
140
+ description: "Save a reusable named profile bundle.",
141
+ inputSchema: profileSaveArgsSchema.shape,
142
+ outputSchema: profileSaveOutputSchema.shape
143
+ }, async (args) => safeTool(async () => toolResult(await deepthonkProfileSave(args))));
144
+ server.registerTool("deepthonk.profile_delete", {
145
+ title: "Delete DeepThonk Profile",
146
+ description: "Delete a saved named profile.",
147
+ inputSchema: profileNameArgsSchema.shape,
148
+ outputSchema: profileDeleteOutputSchema.shape
149
+ }, async (args) => safeTool(async () => toolResult(await deepthonkProfileDelete(args))));
116
150
  return server;
117
151
  }
118
152
  async function safeTool(action, runDir) {
@@ -134,6 +168,11 @@ export async function serveMcp(options) {
134
168
  async function serveHttp(port) {
135
169
  const allowedHosts = [`127.0.0.1:${port}`, `localhost:${port}`];
136
170
  const httpServer = createServer(async (req, res) => {
171
+ if (!isAllowedMcpHttpHost(req.headers.host, allowedHosts)) {
172
+ res.writeHead(403, { "content-type": "application/json" });
173
+ res.end(JSON.stringify({ jsonrpc: "2.0", error: { code: -32000, message: "Forbidden Host header." }, id: null }));
174
+ return;
175
+ }
137
176
  if (req.url !== "/mcp") {
138
177
  res.writeHead(404, { "content-type": "application/json" });
139
178
  res.end(JSON.stringify({ error: "Not found" }));
@@ -179,6 +218,9 @@ async function serveHttp(port) {
179
218
  httpServer.on("close", resolve);
180
219
  });
181
220
  }
221
+ export function isAllowedMcpHttpHost(host, allowedHosts) {
222
+ return Boolean(host && allowedHosts.includes(host));
223
+ }
182
224
  function registerPrompt(server, name, argsSchema) {
183
225
  server.registerPrompt(name, {
184
226
  title: name,
@@ -198,8 +240,15 @@ function registerPrompt(server, name, argsSchema) {
198
240
  }
199
241
  async function readJsonBody(req) {
200
242
  const chunks = [];
201
- for await (const chunk of req)
202
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
243
+ let size = 0;
244
+ const maxBytes = 1_000_000;
245
+ for await (const chunk of req) {
246
+ const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
247
+ size += buffer.length;
248
+ if (size > maxBytes)
249
+ throw new Error("Request body too large.");
250
+ chunks.push(new Uint8Array(buffer));
251
+ }
203
252
  const text = Buffer.concat(chunks).toString("utf8");
204
253
  return text.trim() ? JSON.parse(text) : undefined;
205
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,wBAAwB;IACtC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,cAAc,CAAC,KAAK;QACjC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;KACzG,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAChE,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,4EAA4E;QACzF,WAAW,EAAE,aAAa,CAAC,KAAK;QAChC,YAAY,EAAE,iBAAiB,CAAC,KAAK;KACtC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAC3F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE,aAAa,CAAC,KAAK;QAChC,YAAY,EAAE,kBAAkB,CAAC,KAAK;KACvC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAC5F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,aAAa,CAAC,KAAK;QAChC,YAAY,EAAE,kBAAkB,CAAC,KAAK;KACvC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAC5F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,qFAAqF;QAClG,WAAW,EAAE,aAAa,CAAC,KAAK;QAChC,YAAY,EAAE,kBAAkB,CAAC,KAAK;KACvC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAC5F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,aAAa,CAAC,KAAK;QAChC,YAAY,EAAE,eAAe,CAAC,KAAK;KACpC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CACzF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,+EAA+E;QAC5F,WAAW,EAAE,cAAc,CAAC,KAAK;QACjC,YAAY,EAAE,gBAAgB,CAAC,KAAK;KACrC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE,gBAAgB,CAAC,KAAK;QACnC,YAAY,EAAE,kBAAkB,CAAC,KAAK;KACvC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,sCAAsC;QACnD,WAAW,EAAE,gBAAgB,CAAC,KAAK;QACnC,YAAY,EAAE,kBAAkB,CAAC,KAAK;KACvC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAC5F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,gCAAgC;QAC7C,WAAW,EAAE,gBAAgB,CAAC,KAAK;QACnC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KAChG,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAC5F,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,gBAAgB,EAChB,kBAAkB,EAClB;QACE,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KACnG,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,wBAAwB,EACxB,IAAI,gBAAgB,CAAC,sCAAsC,EAAE;QAC3D,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,gBAAgB,EAAE,EAAE,CAAC;KAC5D,CAAC,EACF;QACE,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,YAAY;KACvB,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;QAC3E,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5F,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,wBAAwB,EACxB,IAAI,gBAAgB,CAAC,sCAAsC,EAAE;QAC3D,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KACtC,CAAC,EACF;QACE,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KACnG,CAAC,CACH,CAAC;IAEF,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzG,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE;QAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B,CAAC,CAAC;IACH,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;QACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE;QAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,MAA4B,EAC5B,MAAe;IAEf,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAuD;IACpF,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,wBAAwB,EAAE,CAAC;IAC1C,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAY;IACnC,MAAM,YAAY,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjD,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YACvB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/G,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,wBAAwB,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;gBAClD,kBAAkB,EAAE,SAAS;gBAC7B,uEAAuE;gBACvE,0FAA0F;gBAC1F,4BAA4B,EAAE,IAAI;gBAClC,YAAY;aACb,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;gBACvB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAG,KAAK,YAAY,WAAW,CAAC;gBAChD,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC9E,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;oBACb,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAE,KAAe,CAAC,OAAO,EAAE;oBAC9G,EAAE,EAAE,IAAI;iBACT,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,IAAI,QAAQ,CAAC,CAAC;IAClG,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAAiB,EAAE,IAAY,EAAE,UAAyB;IAChF,MAAM,CAAC,cAAc,CACnB,IAAI,EACJ;QACE,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,4BAA4B;QACzC,UAAU;KACX,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACT,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAA8B,CAAC;iBACzD;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAwC;IAClE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG;QAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}