@osovv/vv-opencode 1.4.5 → 1.6.0
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/CHANGELOG.md +23 -0
- package/README.md +47 -16
- package/dist/commands/patch-provider.d.ts +5 -5
- package/dist/commands/patch-provider.js +10 -6
- package/dist/commands/patch-provider.js.map +1 -1
- package/dist/lib/agent-tool-catalog.d.ts +144 -0
- package/dist/lib/agent-tool-catalog.js +2551 -0
- package/dist/lib/agent-tool-catalog.js.map +1 -0
- package/dist/lib/agent-tool-contract.d.ts +200 -0
- package/dist/lib/agent-tool-contract.js +407 -0
- package/dist/lib/agent-tool-contract.js.map +1 -0
- package/dist/lib/opencode/agent-registrations.d.ts +33 -0
- package/dist/lib/opencode/agent-registrations.js +469 -0
- package/dist/lib/opencode/agent-registrations.js.map +1 -0
- package/dist/lib/opencode/inspection.d.ts +84 -0
- package/dist/lib/opencode/inspection.js +367 -0
- package/dist/lib/opencode/inspection.js.map +1 -0
- package/dist/lib/opencode/model-overrides.d.ts +19 -0
- package/dist/lib/opencode/model-overrides.js +221 -0
- package/dist/lib/opencode/model-overrides.js.map +1 -0
- package/dist/lib/opencode/paths.d.ts +21 -0
- package/dist/lib/opencode/paths.js +62 -0
- package/dist/lib/opencode/paths.js.map +1 -0
- package/dist/lib/opencode/plugin-registration.d.ts +17 -0
- package/dist/lib/opencode/plugin-registration.js +210 -0
- package/dist/lib/opencode/plugin-registration.js.map +1 -0
- package/dist/lib/opencode/shared-utils.d.ts +30 -0
- package/dist/lib/opencode/shared-utils.js +183 -0
- package/dist/lib/opencode/shared-utils.js.map +1 -0
- package/dist/lib/opencode/vvoc-config-io.d.ts +9 -0
- package/dist/lib/opencode/vvoc-config-io.js +58 -0
- package/dist/lib/opencode/vvoc-config-io.js.map +1 -0
- package/dist/lib/opencode.d.ts +15 -174
- package/dist/lib/opencode.js +19 -1387
- package/dist/lib/opencode.js.map +1 -1
- package/dist/lib/spec-lint/cross-file-rules.d.ts +2 -0
- package/dist/lib/spec-lint/cross-file-rules.js +33 -0
- package/dist/lib/spec-lint/cross-file-rules.js.map +1 -0
- package/dist/lib/spec-lint/delegated-extraction.d.ts +8 -0
- package/dist/lib/spec-lint/delegated-extraction.js +112 -0
- package/dist/lib/spec-lint/delegated-extraction.js.map +1 -0
- package/dist/lib/spec-lint/lint.d.ts +7 -0
- package/dist/lib/spec-lint/lint.js +92 -0
- package/dist/lib/spec-lint/lint.js.map +1 -0
- package/dist/lib/spec-lint/parser.d.ts +101 -0
- package/dist/lib/spec-lint/parser.js +482 -0
- package/dist/lib/spec-lint/parser.js.map +1 -0
- package/dist/lib/spec-lint/plan-rules.d.ts +38 -0
- package/dist/lib/spec-lint/plan-rules.js +745 -0
- package/dist/lib/spec-lint/plan-rules.js.map +1 -0
- package/dist/lib/spec-lint/spec-rules.d.ts +8 -0
- package/dist/lib/spec-lint/spec-rules.js +188 -0
- package/dist/lib/spec-lint/spec-rules.js.map +1 -0
- package/dist/lib/spec-lint.d.ts +4 -63
- package/dist/lib/spec-lint.js +13 -1505
- package/dist/lib/spec-lint.js.map +1 -1
- package/dist/lib/vvoc-preset-registry.d.ts +7 -7
- package/dist/lib/vvoc-preset-registry.js +8 -8
- package/dist/lib/vvoc-preset-registry.js.map +1 -1
- package/dist/lib/workflow-contract.d.ts +12 -0
- package/dist/lib/workflow-contract.js +71 -18
- package/dist/lib/workflow-contract.js.map +1 -1
- package/dist/plugins/hashline-edit/index.js +102 -97
- package/dist/plugins/hashline-edit/index.js.map +1 -1
- package/dist/plugins/hashline-edit/normalize-edits.d.ts +2 -8
- package/dist/plugins/hashline-edit/normalize-edits.js +32 -17
- package/dist/plugins/hashline-edit/normalize-edits.js.map +1 -1
- package/dist/plugins/hashline-edit/schemas.d.ts +246 -0
- package/dist/plugins/hashline-edit/schemas.js +659 -0
- package/dist/plugins/hashline-edit/schemas.js.map +1 -0
- package/dist/plugins/hashline-edit/str-replace-editor.d.ts +6 -17
- package/dist/plugins/hashline-edit/str-replace-editor.js +19 -21
- package/dist/plugins/hashline-edit/str-replace-editor.js.map +1 -1
- package/dist/plugins/hashline-edit/tool-description.d.ts +1 -0
- package/dist/plugins/hashline-edit/tool-description.js +20 -4
- package/dist/plugins/hashline-edit/tool-description.js.map +1 -1
- package/dist/plugins/web-tools/fetch-service.d.ts +8 -5
- package/dist/plugins/web-tools/fetch-service.js +30 -45
- package/dist/plugins/web-tools/fetch-service.js.map +1 -1
- package/dist/plugins/web-tools/index.js +23 -5
- package/dist/plugins/web-tools/index.js.map +1 -1
- package/dist/plugins/web-tools/schemas.d.ts +469 -0
- package/dist/plugins/web-tools/schemas.js +523 -0
- package/dist/plugins/web-tools/schemas.js.map +1 -0
- package/dist/plugins/web-tools/search-service.d.ts +6 -3
- package/dist/plugins/web-tools/search-service.js +24 -29
- package/dist/plugins/web-tools/search-service.js.map +1 -1
- package/dist/plugins/workflow/authority.d.ts +6 -0
- package/dist/plugins/workflow/authority.js +45 -10
- package/dist/plugins/workflow/authority.js.map +1 -1
- package/dist/plugins/workflow/authorization.d.ts +30 -0
- package/dist/plugins/workflow/authorization.js +147 -0
- package/dist/plugins/workflow/authorization.js.map +1 -0
- package/dist/plugins/workflow/checkpoints.d.ts +41 -2
- package/dist/plugins/workflow/checkpoints.js +176 -47
- package/dist/plugins/workflow/checkpoints.js.map +1 -1
- package/dist/plugins/workflow/delegated.d.ts +15 -1
- package/dist/plugins/workflow/delegated.js +65 -35
- package/dist/plugins/workflow/delegated.js.map +1 -1
- package/dist/plugins/workflow/execution.d.ts +15 -30
- package/dist/plugins/workflow/execution.js +133 -33
- package/dist/plugins/workflow/execution.js.map +1 -1
- package/dist/plugins/workflow/index.js +197 -435
- package/dist/plugins/workflow/index.js.map +1 -1
- package/dist/plugins/workflow/input-validation.d.ts +48 -0
- package/dist/plugins/workflow/input-validation.js +536 -0
- package/dist/plugins/workflow/input-validation.js.map +1 -0
- package/dist/plugins/workflow/inspection.d.ts +60 -0
- package/dist/plugins/workflow/inspection.js +316 -0
- package/dist/plugins/workflow/inspection.js.map +1 -0
- package/dist/plugins/workflow/protocol.d.ts +2 -0
- package/dist/plugins/workflow/protocol.js +26 -4
- package/dist/plugins/workflow/protocol.js.map +1 -1
- package/dist/plugins/workflow/recovery.d.ts +18 -0
- package/dist/plugins/workflow/recovery.js +217 -0
- package/dist/plugins/workflow/recovery.js.map +1 -0
- package/dist/plugins/workflow/repair.d.ts +1 -1
- package/dist/plugins/workflow/repair.js +9 -10
- package/dist/plugins/workflow/repair.js.map +1 -1
- package/dist/plugins/workflow/results.d.ts +2566 -0
- package/dist/plugins/workflow/results.js +1111 -0
- package/dist/plugins/workflow/results.js.map +1 -0
- package/dist/plugins/workflow/schemas.d.ts +398 -0
- package/dist/plugins/workflow/schemas.js +399 -0
- package/dist/plugins/workflow/schemas.js.map +1 -0
- package/dist/plugins/workflow/state.d.ts +3 -2
- package/dist/plugins/workflow/state.js +15 -8
- package/dist/plugins/workflow/state.js.map +1 -1
- package/dist/plugins/workflow/system-instruction.md +17 -1
- package/dist/plugins/workflow/tooling.d.ts +11 -82
- package/dist/plugins/workflow/tooling.js +478 -461
- package/dist/plugins/workflow/tooling.js.map +1 -1
- package/dist/plugins/workflow/transactions.d.ts +13 -0
- package/dist/plugins/workflow/transactions.js +13 -3
- package/dist/plugins/workflow/transactions.js.map +1 -1
- package/package.json +6 -3
- package/schemas/vvoc/v3.json +1 -1
- package/templates/agents/vv-code-reviewer.md +13 -4
- package/templates/agents/vv-implementer.md +16 -9
- package/templates/agents/vv-spec-reviewer.md +13 -4
- package/templates/skills/vv-execute/SKILL.md +3 -3
- package/templates/skills/vv-execute/references/tool-contracts.md +1750 -0
- package/templates/skills/vv-review/SKILL.md +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,11 @@
|
|
|
1
1
|
import type { FileCacheVerdict, FileSnapshot } from "./session-state.js";
|
|
2
|
+
import { type StrReplaceEditorResult, type StrReplaceEditorToolArgs } from "./schemas.js";
|
|
3
|
+
import { STR_REPLACE_EDITOR_DESCRIPTION } from "./tool-description.js";
|
|
4
|
+
export { STR_REPLACE_EDITOR_DESCRIPTION };
|
|
5
|
+
export type { StrReplaceEditorResult };
|
|
6
|
+
/** Tool-facing command arguments; schema-derived from the registered contract. */
|
|
7
|
+
export type StrReplaceEditorArgs = StrReplaceEditorToolArgs;
|
|
2
8
|
export declare const STR_REPLACE_TRUNCATION_MARKER = "<response clipped><NOTE>To save on context only part of this file was been shown to you. You should retry this tool after you have searched inside the file with `grep -n` in order to find the line numbers of what you are looking for.</NOTE>";
|
|
3
|
-
export declare const STR_REPLACE_EDITOR_DESCRIPTION: string;
|
|
4
|
-
export interface StrReplaceEditorArgs {
|
|
5
|
-
command: "view" | "create" | "str_replace" | "insert";
|
|
6
|
-
path: string;
|
|
7
|
-
file_text?: string;
|
|
8
|
-
old_str?: string;
|
|
9
|
-
new_str?: string;
|
|
10
|
-
insert_line?: number;
|
|
11
|
-
view_range?: number[];
|
|
12
|
-
}
|
|
13
|
-
export type StrReplaceEditorResult = {
|
|
14
|
-
ok: true;
|
|
15
|
-
output: string;
|
|
16
|
-
} | {
|
|
17
|
-
ok: false;
|
|
18
|
-
error: string;
|
|
19
|
-
};
|
|
20
9
|
export interface StrReplaceEditorFsEntry {
|
|
21
10
|
name: string;
|
|
22
11
|
type: "file" | "directory";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
// FILE: src/plugins/hashline-edit/str-replace-editor.ts
|
|
2
|
-
// VERSION: 0.
|
|
2
|
+
// VERSION: 0.2.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Implement the DeepSeek dsh str_replace_editor contract (view/create/str_replace/insert) as a native edit profile.
|
|
5
|
-
// SCOPE: Command dispatch, dsh-verbatim view formatting and error texts, exact-verbatim str_replace matching with occurrence line numbers, insert_line validation, create guard, absolute-path hint, directory listing, output truncation, and view-cache freshness checks.
|
|
6
|
-
// DEPENDS: [src/plugins/hashline-edit/session-state.ts]
|
|
7
|
-
// LINKS: [M-PLUGIN-HASHLINE-EDIT]
|
|
5
|
+
// SCOPE: Command dispatch, dsh-verbatim view formatting and file-dependent error texts, exact-verbatim str_replace matching with occurrence line numbers, insert_line file-length validation, create guard, absolute-path hint, directory listing, output truncation, and view-cache freshness checks. Registered argument shapes and args-only command validation come from schemas.ts; this module reruns that validation at its direct entry before any filesystem access. The model-facing description is owned by tool-description.ts and re-exported here.
|
|
6
|
+
// DEPENDS: [src/lib/agent-tool-contract.ts, src/plugins/hashline-edit/schemas.ts, src/plugins/hashline-edit/session-state.ts, src/plugins/hashline-edit/tool-description.ts]
|
|
7
|
+
// LINKS: [M-PLUGIN-HASHLINE-EDIT, M-AGENT-TOOL-CONTRACT]
|
|
8
8
|
// ROLE: RUNTIME
|
|
9
9
|
// MAP_MODE: EXPORTS
|
|
10
10
|
// END_MODULE_CONTRACT
|
|
11
11
|
//
|
|
12
12
|
// START_MODULE_MAP
|
|
13
|
-
// STR_REPLACE_EDITOR_DESCRIPTION - Model-facing dsh tool description (verbatim, MIT attribution).
|
|
13
|
+
// STR_REPLACE_EDITOR_DESCRIPTION - Model-facing dsh tool description (verbatim, MIT attribution); re-exported from tool-description.ts.
|
|
14
14
|
// STR_REPLACE_TRUNCATION_MARKER - dsh response-clipped marker appended to truncated view output.
|
|
15
|
-
// StrReplaceEditorArgs - Tool-facing command arguments.
|
|
16
|
-
// StrReplaceEditorResult - Ok output or fail-closed error text.
|
|
15
|
+
// StrReplaceEditorArgs - Tool-facing command arguments; schema-derived from schemas.ts.
|
|
16
|
+
// StrReplaceEditorResult - Ok output or fail-closed error text; schema-derived from schemas.ts.
|
|
17
17
|
// StrReplaceEditorFs - Filesystem seam used by the editor (node:fs-backed in production, fake in tests).
|
|
18
18
|
// StrReplaceEditorFsEntry - Directory entry name and type returned by the filesystem seam.
|
|
19
19
|
// StrReplaceEditorOptions - Editor options: filesystem seam, output cap, and view-cache callbacks.
|
|
@@ -21,23 +21,14 @@
|
|
|
21
21
|
// END_MODULE_MAP
|
|
22
22
|
//
|
|
23
23
|
// START_CHANGE_SUMMARY
|
|
24
|
-
// LAST_CHANGE: [
|
|
24
|
+
// LAST_CHANGE: [C-AGENT-TOOL-CONTRACTS T-005 - Moved the description to tool-description.ts (re-exported), derived argument/result types from the single-source contract, and rejected structural/command-invalid arguments at the direct editor entry before any filesystem access.]
|
|
25
25
|
// END_CHANGE_SUMMARY
|
|
26
|
+
import { formatContractIssues } from "../../lib/agent-tool-contract.js";
|
|
27
|
+
import { validateStrReplaceEditorToolInput, } from "./schemas.js";
|
|
28
|
+
import { STR_REPLACE_EDITOR_DESCRIPTION } from "./tool-description.js";
|
|
29
|
+
export { STR_REPLACE_EDITOR_DESCRIPTION };
|
|
26
30
|
// START_BLOCK_CONSTANTS
|
|
27
|
-
// Verbatim from deepseek-ai/deepseek-harness (MIT).
|
|
28
31
|
export const STR_REPLACE_TRUNCATION_MARKER = "<response clipped><NOTE>To save on context only part of this file was been shown to you. You should retry this tool after you have searched inside the file with `grep -n` in order to find the line numbers of what you are looking for.</NOTE>";
|
|
29
|
-
export const STR_REPLACE_EDITOR_DESCRIPTION = `
|
|
30
|
-
Custom editing tool for viewing, creating and editing files
|
|
31
|
-
* State is persistent across command calls and discussions with the user
|
|
32
|
-
* If \`path\` is a file, \`view\` displays the result of applying \`cat -n\`. If \`path\` is a directory, \`view\` lists non-hidden files and directories up to 2 levels deep
|
|
33
|
-
* The \`create\` command cannot be used if the specified \`path\` already exists as a file
|
|
34
|
-
* If a \`command\` generates a long output, it will be truncated and marked with \`<response clipped>\`
|
|
35
|
-
|
|
36
|
-
Notes for using the \`str_replace\` command:
|
|
37
|
-
* The \`old_str\` parameter should match EXACTLY one or more consecutive lines from the original file. Be mindful of whitespaces!
|
|
38
|
-
* If the \`old_str\` parameter is not unique in the file, the replacement will not be performed. Make sure to include enough context in \`old_str\` to make it unique
|
|
39
|
-
* The \`new_str\` parameter should contain the edited lines that should replace the \`old_str\`
|
|
40
|
-
`.trim();
|
|
41
32
|
const DEFAULT_MAX_OUTPUT_CHARS = 16_000;
|
|
42
33
|
// END_BLOCK_TYPES
|
|
43
34
|
// START_BLOCK_HELPERS
|
|
@@ -90,6 +81,13 @@ export class StrReplaceEditor {
|
|
|
90
81
|
this.maxOutputChars = options.maxOutputChars ?? DEFAULT_MAX_OUTPUT_CHARS;
|
|
91
82
|
}
|
|
92
83
|
async execute(args) {
|
|
84
|
+
// Reject structural and command-invalid arguments before touching the
|
|
85
|
+
// filesystem or the view-freshness cache. The registered hook runs the same
|
|
86
|
+
// validator; this direct entry never relies on the host having done so.
|
|
87
|
+
const validation = validateStrReplaceEditorToolInput(args);
|
|
88
|
+
if (!validation.ok) {
|
|
89
|
+
return fail(formatContractIssues(validation.issues));
|
|
90
|
+
}
|
|
93
91
|
const path = args.path;
|
|
94
92
|
if (typeof path !== "string" || path.trim().length === 0) {
|
|
95
93
|
return fail("path must be a non-empty string");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"str-replace-editor.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/str-replace-editor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"str-replace-editor.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/str-replace-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
export declare const STR_REPLACE_EDITOR_DESCRIPTION: string;
|
|
1
2
|
export declare const HASHLINE_EDIT_DESCRIPTION = "Edit files using exact hash-anchored line references from the latest Read output.\n\n<must>\n1. SNAPSHOT: All edits in one call reference the ORIGINAL file state. Do NOT adjust line numbers for prior edits in the same batch \u2014 the system applies them bottom-up automatically.\n2. replace with pos replaces ONE line. Add an end anchor to replace the INCLUSIVE range pos..end in a single operation (replace_range is an alias that requires pos + end).\n3. For range replacement, the end line WILL BE replaced. If you set end to a line that belongs to the next function/method/statement, that line is DELETED.\n CORRECT: pos on the first line to replace, end on the LAST line to replace \u2014 not the line after.\n4. lines must contain ONLY the content that belongs inside the replaced range. Lines AFTER end survive unchanged \u2014 do NOT include them in lines. If you do, they will appear twice.\n INSERTION SAFETY: To add a function, handler, statement, or block NEXT TO existing code, use append/prepend anchored to a surviving line. To add code AFTER a closed block, append after its final structural closing line. Do NOT replace that closing line merely to reproduce it and add content after it.\n STRUCTURAL CLOSURES: If replace_range intentionally consumes lines containing closing syntax such as }, });, ], ), );, or </tag>, lines MUST include every closure required by the resulting code. Never assume the tool reconstructs omitted closing syntax.\n5. Tags MUST be copied exactly from read output or >>> mismatch output. NEVER guess or reconstruct tags.\n6. Batch = multiple operations in edits[], NOT one big replace covering everything. Each operation targets the smallest possible change.\n7. lines must contain plain replacement text only (no LINE#HASH#ANCHOR| prefixes, no diff + markers).\n8. CRITICAL: Double-quote characters inside lines strings MUST be escaped as \\\". Unescaped \\\" inside a JSON string will break the parser. Example: [\"const x = \\\"hello\\\";\"] \u2014 NOT [\"const x = \"hello\";\"]. Single quotes and backticks do NOT need escaping.\n9. LITERAL APPLICATION: payloads are applied byte-for-byte. There is NO merging, splitting, indentation fixing, or other content rewriting. The only automatic removals are exact duplicate echoes, and each one is reported as a Warning line in the result.\n10. PHYSICAL LINES: every string[] entry in lines must be exactly one physical line. Entries with embedded newlines are rejected. A string value is split on newlines.\n11. DELETION: to delete lines use lines: [] or lines: null with replace/replace_range. lines: [\"\"] is REJECTED because a single blank line is ambiguous \u2014 use append/prepend when you really want to insert a blank line.\n12. VERIFY: successful results include a bounded diff (@@ block) of what changed. Check that it matches your intent before moving on.\n</must>\n\n<operations>\nANCHOR FORMAT:\n Each anchor is `{line_number}#{hash_id}#{anchor_hash}` from read output like `42#VK#AB|content`.\n Anchors MUST be the full three-part triple copied exactly from read output. Two-part `{line}#{hash}` references are REJECTED for edits.\n\nOPERATION CHOICE:\n replace with pos -> replace ONE line at pos\n replace with pos + end -> replace range pos..end INCLUSIVE (both lines replaced)\n replace_range with pos+end -> alias for replace with end; use only when those existing lines must change or be removed\n append with pos -> insert lines AFTER the anchored line; preferred for adding code after a block's final }, });, ], or other closing line\n prepend with pos -> insert lines BEFORE the anchored line; preferred for adding code before an existing declaration or block\n append/prepend without pos -> EOF/BOF insertion (also creates missing files)\n\nCONTENT FORMAT:\n lines: string (single line) or string[] (multi-line, preferred); each array entry is exactly one physical line\n lines: null or lines: [] with replace/replace_range -> DELETE those lines\n lines: [\"\"] with replace/replace_range -> REJECTED (ambiguous); use [] / null to delete, append/prepend to insert blank lines\n\nFILE MODES:\n delete=true deletes file and requires edits=[] with no rename\n rename moves final content to a new path and removes old path\n</operations>\n\n<examples>\nGiven this file after read:\n 10#VK#AB|function hello() {\n 11#XJ#CD| console.log(\"hi\");\n 12#MB#EF| console.log(\"bye\");\n 13#QR#GH|} // end of hello()\n\nSingle-line replace (change line 11):\n { op: \"replace\", pos: \"11#XJ#CD\", lines: [\" console.log(\\\"hello\\\");\"] }\n Result: line 11 replaced. Lines 10, 12-13 unchanged.\n\nRange replace (replace lines 11-12, function body):\n { op: \"replace_range\", pos: \"11#XJ#CD\", end: \"12#MB#EF\", lines: [\" return \\\"hello world\\\";\"] }\n Result: lines 11-12 removed, replaced by 1 new line. Lines 10, 13 unchanged.\n\nBAD - end is one line too far (DELETES closing brace):\n { op: \"replace_range\", pos: \"11#XJ#CD\", end: \"13#QR#GH\", lines: [\" return \\\"hello world\\\";\"] }\n Result: line 13 (closing brace) is REPLACED too \u2014 function is broken!\n CORRECT: use end: \"12#MB#EF\" \u2014 only replace lines 11-12, keep line 13 unchanged.\n\nBAD - lines extend past end (DUPLICATES line 13):\n { op: \"replace_range\", pos: \"11#XJ#CD\", end: \"12#MB#EF\", lines: [\" return \\\"hi\\\";\", \"}\"] }\n Line 13 is \"}\" which already exists after end. Including it in lines duplicates it.\n CORRECT: { op: \"replace_range\", pos: \"11#XJ#CD\", end: \"12#MB#EF\", lines: [\" return \\\"hi\\\";\"] }\n\nAppend after a line (insert between functions):\n { op: \"append\", pos: \"13#QR#GH\", lines: [\"\", \"function added() {\", \" return true;\", \"}\"] }\n Result: 4 lines inserted after line 13. All existing lines unchanged.\n\nBAD - replacing a closing line only to insert after it:\n { op: \"replace_range\", pos: \"13#QR#GH\", end: \"13#QR#GH\", lines: [\"} // end of hello()\", \"\", \"function added() {\", \"}\"] }\n This unnecessarily consumes the existing closing line. If that closure is omitted or altered, hello() becomes unbalanced.\n CORRECT: { op: \"append\", pos: \"13#QR#GH\", lines: [\"\", \"function added() {\", \"}\"] }\n\nWhen a structural rewrite really changes both opening and closing syntax:\n Use replace_range covering the complete structure, and include the required replacement closures explicitly. Re-read the edited region or run the narrow syntax/type check immediately afterward.\n</examples>\n\n<auto>\nBuilt-in normalization (you do NOT need to handle these):\n BOM and CRLF line endings are preserved automatically.\n Hashline prefixes and diff + markers copied into text are auto-stripped.\n Exact duplicate echoes are dropped and reported as Warning lines: a payload line identical to the append/prepend anchor line, or a range payload longer than its range whose first/last line exactly duplicates a surviving neighbor.\nEverything else is applied literally \u2014 no merging, splitting, or indentation fixes.\n</auto>\n\nRecovery:\n- If you get a hash mismatch error, copy the updated anchors shown in that error or re-read the file before retrying.";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// FILE: src/plugins/hashline-edit/tool-description.ts
|
|
2
|
-
// VERSION: 0.
|
|
2
|
+
// VERSION: 0.10.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
|
-
// PURPOSE: Provide the LLM-facing tool
|
|
5
|
-
// SCOPE: Stable instructions for read-then-edit workflow
|
|
4
|
+
// PURPOSE: Provide the LLM-facing tool descriptions for both vvoc-owned edit tools.
|
|
5
|
+
// SCOPE: Stable instructions for the hash-anchored read-then-edit workflow (three-part anchors, unified replace, literal payload semantics, stale-anchor recovery) plus the verbatim dsh str_replace_editor description (MIT attribution). Both constants are consumed by the registered tool contracts in schemas.ts; the str_replace_editor module re-exports its description to preserve the existing public surface.
|
|
6
6
|
// DEPENDS: []
|
|
7
7
|
// LINKS: [M-PLUGIN-HASHLINE-EDIT]
|
|
8
8
|
// ROLE: RUNTIME
|
|
@@ -11,11 +11,27 @@
|
|
|
11
11
|
//
|
|
12
12
|
// START_MODULE_MAP
|
|
13
13
|
// HASHLINE_EDIT_DESCRIPTION - Canonical LLM-facing description for the hashline-backed `hashline_edit` tool.
|
|
14
|
+
// STR_REPLACE_EDITOR_DESCRIPTION - Verbatim dsh description for the `str_replace_editor` tool (re-exported by str-replace-editor.ts).
|
|
14
15
|
// END_MODULE_MAP
|
|
15
16
|
//
|
|
16
17
|
// START_CHANGE_SUMMARY
|
|
17
|
-
// LAST_CHANGE: [
|
|
18
|
+
// LAST_CHANGE: [C-AGENT-TOOL-CONTRACTS T-005 - Moved the str_replace_editor description here so the pure contract module can single-source both descriptions without a schema/editor import cycle; str-replace-editor.ts re-exports it.]
|
|
18
19
|
// END_CHANGE_SUMMARY
|
|
20
|
+
// START_BLOCK_STR_REPLACE_DESCRIPTION
|
|
21
|
+
// Verbatim from deepseek-ai/deepseek-harness (MIT).
|
|
22
|
+
export const STR_REPLACE_EDITOR_DESCRIPTION = `
|
|
23
|
+
Custom editing tool for viewing, creating and editing files
|
|
24
|
+
* State is persistent across command calls and discussions with the user
|
|
25
|
+
* If \`path\` is a file, \`view\` displays the result of applying \`cat -n\`. If \`path\` is a directory, \`view\` lists non-hidden files and directories up to 2 levels deep
|
|
26
|
+
* The \`create\` command cannot be used if the specified \`path\` already exists as a file
|
|
27
|
+
* If a \`command\` generates a long output, it will be truncated and marked with \`<response clipped>\`
|
|
28
|
+
|
|
29
|
+
Notes for using the \`str_replace\` command:
|
|
30
|
+
* The \`old_str\` parameter should match EXACTLY one or more consecutive lines from the original file. Be mindful of whitespaces!
|
|
31
|
+
* If the \`old_str\` parameter is not unique in the file, the replacement will not be performed. Make sure to include enough context in \`old_str\` to make it unique
|
|
32
|
+
* The \`new_str\` parameter should contain the edited lines that should replace the \`old_str\`
|
|
33
|
+
`.trim();
|
|
34
|
+
// END_BLOCK_STR_REPLACE_DESCRIPTION
|
|
19
35
|
export const HASHLINE_EDIT_DESCRIPTION = `Edit files using exact hash-anchored line references from the latest Read output.
|
|
20
36
|
|
|
21
37
|
<must>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-description.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/tool-description.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"tool-description.js","sourceRoot":"","sources":["../../../src/plugins/hashline-edit/tool-description.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,kBAAkB;AAClB,wBAAwB;AACxB,sFAAsF;AACtF,2ZAA2Z;AAC3Z,gBAAgB;AAChB,oCAAoC;AACpC,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,+GAA+G;AAC/G,wIAAwI;AACxI,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,2OAA2O;AAC3O,qBAAqB;AAErB,sCAAsC;AACtC,oDAAoD;AACpD,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;;;;;;;CAW7C,CAAC,IAAI,EAAE,CAAC;AACT,oCAAoC;AACpC,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sHA0F6E,CAAC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { type ToolDefinition } from "@opencode-ai/plugin";
|
|
2
2
|
import type { ResolvedWebFetchConfig } from "./config.js";
|
|
3
|
-
export
|
|
4
|
-
export declare const WEB_FETCH_MAX_TIMEOUT_SECONDS = 120;
|
|
3
|
+
export { WEB_FETCH_DEFAULT_TIMEOUT_SECONDS, WEB_FETCH_MAX_TIMEOUT_SECONDS } from "./schemas.js";
|
|
5
4
|
/**
|
|
6
5
|
* Create the web_fetch tool bound to the resolved fetch configuration.
|
|
7
|
-
* execute validates
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* execute validates raw host-forwarded arguments through the shared strict contract first, so
|
|
7
|
+
* unknown keys, invalid provided values, and unsupported or malformed URLs reject with a
|
|
8
|
+
* bounded field diagnostic before any permission request, credential lookup, or provider
|
|
9
|
+
* dispatch; the documented format/timeout defaults are re-applied here because the host
|
|
10
|
+
* forwards unparsed raw arguments. Permission uses key web_fetch with patterns [url]. Textual
|
|
11
|
+
* extraction routes to native, Spider, or direct Z.AI reader; media returns as an attachment
|
|
12
|
+
* with a short Markdown summary in the same ToolResult and reports metadata
|
|
10
13
|
* { provider, format, credentialSource?, status?, durationMs? }.
|
|
11
14
|
* Native fetch requires no credential; Spider and Z.AI validate credentials at execution time
|
|
12
15
|
* with actionable messages naming the environment variable and web.fetch.apiKey.
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
// FILE: src/plugins/web-tools/fetch-service.ts
|
|
2
2
|
// VERSION: 1.0.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
|
-
// PURPOSE: Build the provider-neutral web_fetch tool:
|
|
5
|
-
// SCOPE: web_fetch ToolDefinition factory; delegates retrieval and conversion to the native, Spider, and direct Z.AI adapters.
|
|
6
|
-
// DEPENDS: [@opencode-ai/plugin, src/plugins/web-tools/config.ts, src/plugins/web-tools/providers/native-fetch.ts, src/plugins/web-tools/providers/spider.ts, src/plugins/web-tools/providers/zai.ts, src/plugins/web-tools/providers/exa.ts]
|
|
7
|
-
// LINKS: M-WEB-FETCH-SERVICE, M-WEB-NATIVE-FETCH, M-WEB-SPIDER, M-WEB-ZAI, M-WEB-MEDIA-LOADER, M-WEB-EXA, M-PLUGIN-WEB-TOOLS, V-M-WEB-FETCH-SERVICE, DF-WEB-FETCH
|
|
4
|
+
// PURPOSE: Build the provider-neutral web_fetch tool: strict contract validation with explicit execute-time defaults, URL scheme/shape rejection, permission request, provider dispatch, and structured text or attachment results.
|
|
5
|
+
// SCOPE: web_fetch ToolDefinition factory plus provider result mapping. Validates raw host-forwarded arguments through the shared web_fetch contract before any permission request, credential lookup, or provider dispatch; delegates retrieval and conversion to the native, Spider, and direct Z.AI adapters.
|
|
6
|
+
// DEPENDS: [@opencode-ai/plugin, src/lib/agent-tool-contract.ts, src/plugins/web-tools/config.ts, src/plugins/web-tools/schemas.ts, src/plugins/web-tools/providers/native-fetch.ts, src/plugins/web-tools/providers/spider.ts, src/plugins/web-tools/providers/zai.ts, src/plugins/web-tools/providers/exa.ts]
|
|
7
|
+
// LINKS: M-WEB-FETCH-SERVICE, M-WEB-NATIVE-FETCH, M-WEB-SPIDER, M-WEB-ZAI, M-WEB-MEDIA-LOADER, M-WEB-EXA, M-PLUGIN-WEB-TOOLS, M-AGENT-TOOL-CONTRACT, V-M-WEB-FETCH-SERVICE, DF-WEB-FETCH
|
|
8
8
|
// ROLE: RUNTIME
|
|
9
9
|
// MAP_MODE: EXPORTS
|
|
10
10
|
// END_MODULE_CONTRACT
|
|
11
11
|
//
|
|
12
12
|
// START_MODULE_MAP
|
|
13
|
-
// WEB_FETCH_DEFAULT_TIMEOUT_SECONDS - Default per-call timeout in seconds.
|
|
14
|
-
// WEB_FETCH_MAX_TIMEOUT_SECONDS - Maximum model-configurable timeout in seconds.
|
|
13
|
+
// WEB_FETCH_DEFAULT_TIMEOUT_SECONDS - Default per-call timeout in seconds (re-exported from schemas).
|
|
14
|
+
// WEB_FETCH_MAX_TIMEOUT_SECONDS - Maximum model-configurable timeout in seconds (re-exported from schemas).
|
|
15
15
|
// createWebFetchTool - Create the web_fetch ToolDefinition bound to a resolved fetch config.
|
|
16
16
|
// END_MODULE_MAP
|
|
17
17
|
//
|
|
18
18
|
// START_CHANGE_SUMMARY
|
|
19
|
-
// LAST_CHANGE: [
|
|
19
|
+
// LAST_CHANGE: [C-AGENT-TOOL-CONTRACTS T-006 - Registered web_fetch from the shared schemas.ts contract and validated URL shape/scheme plus re-applied the documented format/timeout defaults at the execute boundary before any permission request or dispatch.]
|
|
20
20
|
// END_CHANGE_SUMMARY
|
|
21
21
|
import { tool, } from "@opencode-ai/plugin";
|
|
22
|
+
import { ContractInputError } from "../../lib/agent-tool-contract.js";
|
|
22
23
|
import { WebProviderError } from "./providers/exa.js";
|
|
23
24
|
import { fetchNative } from "./providers/native-fetch.js";
|
|
24
25
|
import { scrapeSpider } from "./providers/spider.js";
|
|
25
26
|
import { fetchZai } from "./providers/zai.js";
|
|
26
|
-
|
|
27
|
-
export
|
|
28
|
-
export const WEB_FETCH_MAX_TIMEOUT_SECONDS = 120;
|
|
27
|
+
import { WEB_FETCH_TOOL_ID, validateWebFetchToolInput, webFetchArgs, webFetchContract, } from "./schemas.js";
|
|
28
|
+
export { WEB_FETCH_DEFAULT_TIMEOUT_SECONDS, WEB_FETCH_MAX_TIMEOUT_SECONDS } from "./schemas.js";
|
|
29
29
|
// START_BLOCK_RESULT_MAPPING
|
|
30
30
|
function mediaSummary(attachment) {
|
|
31
31
|
const name = attachment.filename ? `\`${attachment.filename}\`` : "the requested resource";
|
|
@@ -84,57 +84,42 @@ function zaiResult(url, format, region, credentialSource, outcome) {
|
|
|
84
84
|
// END_BLOCK_RESULT_MAPPING
|
|
85
85
|
/**
|
|
86
86
|
* Create the web_fetch tool bound to the resolved fetch configuration.
|
|
87
|
-
* execute validates
|
|
88
|
-
*
|
|
89
|
-
*
|
|
87
|
+
* execute validates raw host-forwarded arguments through the shared strict contract first, so
|
|
88
|
+
* unknown keys, invalid provided values, and unsupported or malformed URLs reject with a
|
|
89
|
+
* bounded field diagnostic before any permission request, credential lookup, or provider
|
|
90
|
+
* dispatch; the documented format/timeout defaults are re-applied here because the host
|
|
91
|
+
* forwards unparsed raw arguments. Permission uses key web_fetch with patterns [url]. Textual
|
|
92
|
+
* extraction routes to native, Spider, or direct Z.AI reader; media returns as an attachment
|
|
93
|
+
* with a short Markdown summary in the same ToolResult and reports metadata
|
|
90
94
|
* { provider, format, credentialSource?, status?, durationMs? }.
|
|
91
95
|
* Native fetch requires no credential; Spider and Z.AI validate credentials at execution time
|
|
92
96
|
* with actionable messages naming the environment variable and web.fetch.apiKey.
|
|
93
97
|
*/
|
|
94
98
|
export function createWebFetchTool(resolved) {
|
|
95
99
|
return tool({
|
|
96
|
-
description:
|
|
97
|
-
args:
|
|
98
|
-
url: z.string().min(1).describe("The HTTP or HTTPS URL to retrieve."),
|
|
99
|
-
format: z
|
|
100
|
-
.enum(["markdown", "text", "html"])
|
|
101
|
-
.default("markdown")
|
|
102
|
-
.describe("Output format for textual resources; defaults to markdown."),
|
|
103
|
-
timeout: z
|
|
104
|
-
.number()
|
|
105
|
-
.positive()
|
|
106
|
-
.max(WEB_FETCH_MAX_TIMEOUT_SECONDS)
|
|
107
|
-
.default(WEB_FETCH_DEFAULT_TIMEOUT_SECONDS)
|
|
108
|
-
.describe("Timeout in seconds, greater than 0 and at most 120."),
|
|
109
|
-
},
|
|
100
|
+
description: webFetchContract.description,
|
|
101
|
+
args: webFetchArgs,
|
|
110
102
|
async execute(args, context) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
catch {
|
|
116
|
-
throw new Error("web_fetch requires a valid HTTP or HTTPS URL");
|
|
117
|
-
}
|
|
118
|
-
if (parsedUrl.protocol !== "http:" && parsedUrl.protocol !== "https:") {
|
|
119
|
-
throw new Error(`web_fetch supports only HTTP and HTTPS URLs; received ${parsedUrl.protocol || "unknown scheme"}`);
|
|
103
|
+
const validation = validateWebFetchToolInput(args);
|
|
104
|
+
if (!validation.ok) {
|
|
105
|
+
throw new ContractInputError(WEB_FETCH_TOOL_ID, validation.issues);
|
|
120
106
|
}
|
|
121
|
-
const format =
|
|
122
|
-
const timeoutSeconds = args.timeout ?? WEB_FETCH_DEFAULT_TIMEOUT_SECONDS;
|
|
107
|
+
const { url, format, timeout: timeoutSeconds } = validation.data;
|
|
123
108
|
await context.ask({
|
|
124
109
|
permission: "web_fetch",
|
|
125
|
-
patterns: [
|
|
110
|
+
patterns: [url],
|
|
126
111
|
always: [],
|
|
127
112
|
metadata: { provider: resolved.provider, format },
|
|
128
113
|
});
|
|
129
114
|
const timeoutMs = timeoutSeconds * 1000;
|
|
130
115
|
if (resolved.provider === "native") {
|
|
131
116
|
const outcome = await fetchNative({
|
|
132
|
-
url
|
|
117
|
+
url,
|
|
133
118
|
format,
|
|
134
119
|
abort: context.abort,
|
|
135
120
|
timeoutMs,
|
|
136
121
|
});
|
|
137
|
-
return nativeResult(
|
|
122
|
+
return nativeResult(url, format, outcome);
|
|
138
123
|
}
|
|
139
124
|
if (!resolved.credential) {
|
|
140
125
|
throw new WebProviderError(resolved.provider, "MISSING_CREDENTIAL", `missing credential for ${resolved.provider}: set ${resolved.envVar ?? "SPIDER_API_KEY"} or ${resolved.configField ?? "web.fetch.apiKey"}`);
|
|
@@ -144,23 +129,23 @@ export function createWebFetchTool(resolved) {
|
|
|
144
129
|
throw new Error("web.fetch.region is required when provider is zai");
|
|
145
130
|
}
|
|
146
131
|
const outcome = await fetchZai({
|
|
147
|
-
url
|
|
132
|
+
url,
|
|
148
133
|
format,
|
|
149
134
|
region: resolved.region,
|
|
150
135
|
credential: resolved.credential,
|
|
151
136
|
abort: context.abort,
|
|
152
137
|
timeoutMs,
|
|
153
138
|
});
|
|
154
|
-
return zaiResult(
|
|
139
|
+
return zaiResult(url, format, resolved.region, resolved.credential.source, outcome);
|
|
155
140
|
}
|
|
156
141
|
const outcome = await scrapeSpider({
|
|
157
|
-
url
|
|
142
|
+
url,
|
|
158
143
|
format,
|
|
159
144
|
credential: resolved.credential,
|
|
160
145
|
abort: context.abort,
|
|
161
146
|
timeoutMs,
|
|
162
147
|
});
|
|
163
|
-
return spiderResult(
|
|
148
|
+
return spiderResult(url, format, resolved.credential.source, outcome);
|
|
164
149
|
},
|
|
165
150
|
});
|
|
166
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-service.js","sourceRoot":"","sources":["../../../src/plugins/web-tools/fetch-service.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,iBAAiB;AACjB,wBAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"fetch-service.js","sourceRoot":"","sources":["../../../src/plugins/web-tools/fetch-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// FILE: src/plugins/web-tools/index.ts
|
|
2
2
|
// VERSION: 1.0.0
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
|
-
// PURPOSE: Register the canonical web_search and web_fetch tools and suppress OpenCode built-ins at runtime while the web-tools plugin is enabled.
|
|
5
|
-
// SCOPE: Startup vvoc snapshot use, plugin toggle handling, runtime permission suppression, tool registration, and credential-safe diagnostics.
|
|
6
|
-
// DEPENDS: [@opencode-ai/plugin, src/lib/config-layers.ts, src/lib/plugin-toggle-config.ts, src/plugins/web-tools/config.ts, src/plugins/web-tools/search-service.ts, src/plugins/web-tools/fetch-service.ts]
|
|
7
|
-
// LINKS: M-PLUGIN-WEB-TOOLS, M-WEB-CONFIG, M-WEB-SEARCH-SERVICE, M-WEB-FETCH-SERVICE, V-M-PLUGIN-WEB-TOOLS, DF-WEB-SEARCH, DF-WEB-FETCH
|
|
4
|
+
// PURPOSE: Register the canonical web_search and web_fetch tools, publish their strict input contracts through the owned definition seam, validate owned raw arguments before execution, and suppress OpenCode built-ins at runtime while the web-tools plugin is enabled.
|
|
5
|
+
// SCOPE: Startup vvoc snapshot use, plugin toggle handling, runtime permission suppression, tool registration, owned contract publication and pre-execute validation for the two owned tool ids only, and credential-safe diagnostics. No interception of unrelated host or MCP tools.
|
|
6
|
+
// DEPENDS: [@opencode-ai/plugin, src/lib/agent-tool-contract.ts, src/lib/config-layers.ts, src/lib/plugin-toggle-config.ts, src/plugins/web-tools/config.ts, src/plugins/web-tools/schemas.ts, src/plugins/web-tools/search-service.ts, src/plugins/web-tools/fetch-service.ts]
|
|
7
|
+
// LINKS: M-PLUGIN-WEB-TOOLS, M-WEB-CONFIG, M-WEB-SEARCH-SERVICE, M-WEB-FETCH-SERVICE, M-AGENT-TOOL-CONTRACT, V-M-PLUGIN-WEB-TOOLS, DF-WEB-SEARCH, DF-WEB-FETCH
|
|
8
8
|
// ROLE: RUNTIME
|
|
9
9
|
// MAP_MODE: EXPORTS
|
|
10
10
|
// END_MODULE_CONTRACT
|
|
@@ -16,12 +16,14 @@
|
|
|
16
16
|
// END_MODULE_MAP
|
|
17
17
|
//
|
|
18
18
|
// START_CHANGE_SUMMARY
|
|
19
|
-
// LAST_CHANGE: [C-
|
|
19
|
+
// LAST_CHANGE: [C-AGENT-TOOL-CONTRACTS T-006 - Published both web tool contracts through the owned definition adapter and added an owned-only pre-execute guard; preserved built-in suppression, explicit user overrides, and disabled-plugin behavior.]
|
|
20
20
|
// END_CHANGE_SUMMARY
|
|
21
|
+
import { ContractInputError, createToolDefinitionAdapter } from "../../lib/agent-tool-contract.js";
|
|
21
22
|
import { loadVvocConfig } from "../../lib/config-layers.js";
|
|
22
23
|
import { isVvocPluginEnabled } from "../../lib/plugin-toggle-config.js";
|
|
23
24
|
import { resolveWebRuntimeConfig, warnIfSecretBearingProjectConfigTracked } from "./config.js";
|
|
24
25
|
import { createWebFetchTool } from "./fetch-service.js";
|
|
26
|
+
import { WEB_FETCH_TOOL_ID, WEB_SEARCH_TOOL_ID, validateWebFetchToolInput, validateWebSearchToolInput, webToolContracts, } from "./schemas.js";
|
|
25
27
|
import { createWebSearchTool } from "./search-service.js";
|
|
26
28
|
/** Built-in permission ids suppressed at runtime while web-tools is enabled. */
|
|
27
29
|
export const SUPPRESSED_BUILTIN_PERMISSIONS = ["webfetch", "websearch"];
|
|
@@ -81,12 +83,28 @@ export const WebToolsPlugin = async ({ client, directory }) => {
|
|
|
81
83
|
body: { service: "web-tools", level: "warn", message: trackedConfigWarning },
|
|
82
84
|
});
|
|
83
85
|
}
|
|
86
|
+
// Owned-only contract publication: the strict input JSON Schema is published through the
|
|
87
|
+
// host's observable jsonSchema member without replacing the host decoder. Unowned tool ids
|
|
88
|
+
// are left untouched.
|
|
89
|
+
const toolDefinitionAdapter = createToolDefinitionAdapter([...webToolContracts]);
|
|
84
90
|
return {
|
|
85
91
|
config: async (config) => applyBuiltinSuppression(config),
|
|
92
|
+
"tool.execute.before": async (input, output) => {
|
|
93
|
+
// Validate only the two owned tool ids; every other host or MCP tool is untouched.
|
|
94
|
+
const validation = input.tool === WEB_SEARCH_TOOL_ID
|
|
95
|
+
? validateWebSearchToolInput(output.args)
|
|
96
|
+
: input.tool === WEB_FETCH_TOOL_ID
|
|
97
|
+
? validateWebFetchToolInput(output.args)
|
|
98
|
+
: undefined;
|
|
99
|
+
if (validation && !validation.ok) {
|
|
100
|
+
throw new ContractInputError(input.tool, validation.issues);
|
|
101
|
+
}
|
|
102
|
+
},
|
|
86
103
|
tool: {
|
|
87
104
|
web_search: createWebSearchTool(resolved.search),
|
|
88
105
|
web_fetch: createWebFetchTool(resolved.fetch),
|
|
89
106
|
},
|
|
107
|
+
"tool.definition": toolDefinitionAdapter,
|
|
90
108
|
};
|
|
91
109
|
};
|
|
92
110
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/web-tools/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,iBAAiB;AACjB,wBAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/web-tools/index.ts"],"names":[],"mappings":"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"}
|