diff --git a/packages/web/tool-web/README.md b/packages/web/tool-web/README.md index 762bfe0189..f57f38d0d5 100644 --- a/packages/web/tool-web/README.md +++ b/packages/web/tool-web/README.md @@ -2,7 +2,7 @@ The model-facing web tool suite — `web_search` and `web_fetch` — over the [web capability seam](../web/README.md) (`ctx.web`). It owns model-facing concerns only: tool names, JSON schemas, snake_case argument names, prompt sections, the result-count bound, result formatting, HTML→markdown presentation, and `presentCall`. All web access goes through `ctx.web`; this package never imports a concrete provider. -Each tool is also a subpath plugin (`@deepseek-ai/dsh-tool-web/search`, `/fetch`) for focused deployments. +Each tool is registered independently; a product that wants only one disables the other via config (`{ search: false }` / `{ fetch: false }`). ## Tools diff --git a/packages/web/tool-web/package.json b/packages/web/tool-web/package.json index c31c685e45..8c22afa9a8 100644 --- a/packages/web/tool-web/package.json +++ b/packages/web/tool-web/package.json @@ -11,21 +11,11 @@ "types": "./lib/types/index.d.ts", "default": "./lib/index.js" }, - "./search": { - "types": "./lib/types/search.d.ts", - "default": "./lib/search.js" - }, - "./fetch": { - "types": "./lib/types/fetch.d.ts", - "default": "./lib/fetch.js" - }, "./src/*": "./src/*", "./package.json": "./package.json" }, "files": [ "lib/index.js", - "lib/search.js", - "lib/fetch.js", "lib/types/**/*.d.ts", "lib/types/**/*.d.ts.map", "src" diff --git a/packages/web/tool-web/src/fetch.ts b/packages/web/tool-web/src/fetch.ts index a48ad41414..85977fbea4 100644 --- a/packages/web/tool-web/src/fetch.ts +++ b/packages/web/tool-web/src/fetch.ts @@ -3,8 +3,6 @@ * Execution goes through `ctx.web` — this module owns the model-facing schema, * argument validation, and PRESENTATION (HTML→markdown, truncation formatting), * while the fetch provider owns safe retrieval (transport, redirects, caps). - * - * @module @deepseek-ai/dsh-tool-web/fetch */ import type { Context } from 'cordis' @@ -51,7 +49,7 @@ export function presentFetchCall(args: { url: string; timeout_ms?: number }): To } /** Register the `web_fetch` tool and its system-prompt guidance. */ -export function apply(ctx: Context): void { +export function applyWebFetchTool(ctx: Context): void { ctx.systemPrompt.section({ name: 'tool:web_fetch', order: 111, @@ -76,12 +74,3 @@ export function apply(ctx: Context): void { presentCall: presentFetchCall, })) } - -/** Cordis plugin name used by loader diagnostics. */ -export const name = 'web-fetch' - -/** Services required by the `web_fetch` tool plugin. */ -export const inject = ['tools', 'web', 'systemPrompt'] - -/** Named helper for direct registration in the root plugin and tests. */ -export const applyWebFetchTool = apply diff --git a/packages/web/tool-web/src/index.ts b/packages/web/tool-web/src/index.ts index 031d7fe4cb..072fc6018e 100644 --- a/packages/web/tool-web/src/index.ts +++ b/packages/web/tool-web/src/index.ts @@ -1,8 +1,7 @@ /** * The model-facing web tool suite (`web_search`, `web_fetch`) over the `ctx.web` * seam. This root plugin registers the tools the product has ENABLED, composing - * the per-tool registration helpers; each tool is also exposed as a subpath - * plugin (`@deepseek-ai/dsh-tool-web/search`, `/fetch`) for focused deployments. + * the per-tool registration helpers (`applyWebSearchTool`, `applyWebFetchTool`). * * The package owns model-facing concerns only — tool names, JSON schemas, * argument validation, prompt sections, result-cap constants, result formatting, diff --git a/packages/web/tool-web/src/search.ts b/packages/web/tool-web/src/search.ts index 6ed9991903..2aa93ef10e 100644 --- a/packages/web/tool-web/src/search.ts +++ b/packages/web/tool-web/src/search.ts @@ -3,8 +3,6 @@ * Execution goes through `ctx.web` — this module owns only the model-facing * schema, argument validation, the result-count bound, and result formatting, * never provider selection or network access. - * - * @module @deepseek-ai/dsh-tool-web/search */ import type { Context } from 'cordis' @@ -70,7 +68,7 @@ export function presentSearchCall(args: { query: string }): ToolCallPresentation } /** Register the `web_search` tool and its system-prompt guidance. */ -export function apply(ctx: Context): void { +export function applyWebSearchTool(ctx: Context): void { ctx.systemPrompt.section({ name: 'tool:web_search', order: 110, @@ -94,12 +92,3 @@ export function apply(ctx: Context): void { presentCall: presentSearchCall, })) } - -/** Cordis plugin name used by loader diagnostics. */ -export const name = 'web-search' - -/** Services required by the `web_search` tool plugin. */ -export const inject = ['tools', 'web', 'systemPrompt'] - -/** Named helper for direct registration in the root plugin and tests. */ -export const applyWebSearchTool = apply diff --git a/packages/web/tool-web/tsdown.config.ts b/packages/web/tool-web/tsdown.config.ts deleted file mode 100644 index 0f75095d18..0000000000 --- a/packages/web/tool-web/tsdown.config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { defineConfig } from 'tsdown' - -/** - * tool-web exposes one package root plus one entry per tool plugin, so each tool - * can be loaded or replaced independently as a subpath plugin - * (`@deepseek-ai/dsh-tool-web/search`, `/fetch`). The root tsdown builds only - * `lib/types/index.js`, so this override adds the subpath entries. Declarations - * come from `tsc -b` (dts: false), matching every package. - */ -export default defineConfig({ - entry: ['lib/types/index.js', 'lib/types/search.js', 'lib/types/fetch.js'], - outDir: 'lib', - format: ['esm'], - platform: 'node', - target: 'es2024', - fixedExtension: false, - dts: false, - clean: false, -})