You've already forked zblade.dev
chore(deps): bump Astro and refresh changelog docs
- Update Astro, RSS, and TypeScript versions in the lockfile - Refresh tool call documentation and changelog page
This commit is contained in:
@@ -5,10 +5,10 @@
|
|||||||
"": {
|
"": {
|
||||||
"name": "zblade-dev",
|
"name": "zblade-dev",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/check": "0.9.8",
|
"@astrojs/check": "^0.9.8",
|
||||||
"@astrojs/rss": "^4.0.15",
|
"@astrojs/rss": "^4.0.18",
|
||||||
"astro": "6.0.5",
|
"astro": "^6.1.1",
|
||||||
"typescript": "^5.9.3",
|
"typescript": "6.0.2",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -21,11 +21,11 @@
|
|||||||
|
|
||||||
"@astrojs/language-server": ["@astrojs/language-server@2.16.5", "", { "dependencies": { "@astrojs/compiler": "^2.13.1", "@astrojs/yaml2ts": "^0.2.3", "@jridgewell/sourcemap-codec": "^1.5.5", "@volar/kit": "~2.4.28", "@volar/language-core": "~2.4.28", "@volar/language-server": "~2.4.28", "@volar/language-service": "~2.4.28", "muggle-string": "^0.4.1", "tinyglobby": "^0.2.15", "volar-service-css": "0.0.70", "volar-service-emmet": "0.0.70", "volar-service-html": "0.0.70", "volar-service-prettier": "0.0.70", "volar-service-typescript": "0.0.70", "volar-service-typescript-twoslash-queries": "0.0.70", "volar-service-yaml": "0.0.70", "vscode-html-languageservice": "^5.6.2", "vscode-uri": "^3.1.0" }, "peerDependencies": { "prettier": "^3.0.0", "prettier-plugin-astro": ">=0.11.0" }, "optionalPeers": ["prettier", "prettier-plugin-astro"], "bin": { "astro-ls": "bin/nodeServer.js" } }, "sha512-MEQvrbuiFDEo+LCO4vvYuTr3eZ4IluZ/n4BbUv77AWAJNEj/n0j7VqTvdL1rGloNTIKZTUd46p5RwYKsxQGY8w=="],
|
"@astrojs/language-server": ["@astrojs/language-server@2.16.5", "", { "dependencies": { "@astrojs/compiler": "^2.13.1", "@astrojs/yaml2ts": "^0.2.3", "@jridgewell/sourcemap-codec": "^1.5.5", "@volar/kit": "~2.4.28", "@volar/language-core": "~2.4.28", "@volar/language-server": "~2.4.28", "@volar/language-service": "~2.4.28", "muggle-string": "^0.4.1", "tinyglobby": "^0.2.15", "volar-service-css": "0.0.70", "volar-service-emmet": "0.0.70", "volar-service-html": "0.0.70", "volar-service-prettier": "0.0.70", "volar-service-typescript": "0.0.70", "volar-service-typescript-twoslash-queries": "0.0.70", "volar-service-yaml": "0.0.70", "vscode-html-languageservice": "^5.6.2", "vscode-uri": "^3.1.0" }, "peerDependencies": { "prettier": "^3.0.0", "prettier-plugin-astro": ">=0.11.0" }, "optionalPeers": ["prettier", "prettier-plugin-astro"], "bin": { "astro-ls": "bin/nodeServer.js" } }, "sha512-MEQvrbuiFDEo+LCO4vvYuTr3eZ4IluZ/n4BbUv77AWAJNEj/n0j7VqTvdL1rGloNTIKZTUd46p5RwYKsxQGY8w=="],
|
||||||
|
|
||||||
"@astrojs/markdown-remark": ["@astrojs/markdown-remark@7.0.0", "", { "dependencies": { "@astrojs/internal-helpers": "0.8.0", "@astrojs/prism": "4.0.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "js-yaml": "^4.1.1", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.1.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "sha512-jTAXHPy45L7o1ljH4jYV+ShtOHtyQUa1mGp3a5fJp1soX8lInuTJQ6ihmldHzVM4Q7QptU4SzIDIcKbBJO7sXQ=="],
|
"@astrojs/markdown-remark": ["@astrojs/markdown-remark@7.1.0", "", { "dependencies": { "@astrojs/internal-helpers": "0.8.0", "@astrojs/prism": "4.0.1", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "js-yaml": "^4.1.1", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "retext-smartypants": "^6.2.0", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.1.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "sha512-P+HnCsu2js3BoTc8kFmu+E9gOcFeMdPris75g+Zl4sY8+bBRbSQV6xzcBDbZ27eE7yBGEGQoqjpChx+KJYIPYQ=="],
|
||||||
|
|
||||||
"@astrojs/prism": ["@astrojs/prism@4.0.0", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-NndtNPpxaGinRpRytljGBvYHpTOwHycSZ/c+lQi5cHvkqqrHKWdkPEhImlODBNmbuB+vyQUNUDXyjzt66CihJg=="],
|
"@astrojs/prism": ["@astrojs/prism@4.0.1", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ=="],
|
||||||
|
|
||||||
"@astrojs/rss": ["@astrojs/rss@4.0.17", "", { "dependencies": { "fast-xml-parser": "5.4.1", "piccolore": "^0.1.3", "zod": "^4.3.6" } }, "sha512-eV+wdMbeVKC9+sPaV0LN8JL1LGo9YAh3GKl4Ou4nzMNLmXM/aswYpSGxVEAuHilgBZ6/++/Pv08ICmuOqX107w=="],
|
"@astrojs/rss": ["@astrojs/rss@4.0.18", "", { "dependencies": { "fast-xml-parser": "^5.5.7", "piccolore": "^0.1.3", "zod": "^4.3.6" } }, "sha512-wc5DwKlbTEdgVAWnHy8krFTeQ42t1v/DJqeq5HtulYK3FYHE4krtRGjoyhS3eXXgfdV6Raoz2RU3wrMTFAitRg=="],
|
||||||
|
|
||||||
"@astrojs/telemetry": ["@astrojs/telemetry@3.3.0", "", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ=="],
|
"@astrojs/telemetry": ["@astrojs/telemetry@3.3.0", "", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ=="],
|
||||||
|
|
||||||
@@ -283,7 +283,7 @@
|
|||||||
|
|
||||||
"array-iterate": ["array-iterate@2.0.1", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="],
|
"array-iterate": ["array-iterate@2.0.1", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="],
|
||||||
|
|
||||||
"astro": ["astro@6.0.5", "", { "dependencies": { "@astrojs/compiler": "^3.0.0", "@astrojs/internal-helpers": "0.8.0", "@astrojs/markdown-remark": "7.0.0", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.0.1", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.3.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^1.1.1", "devalue": "^5.6.3", "diff": "^8.0.3", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^2.0.0", "esbuild": "^0.27.3", "flattie": "^1.1.1", "fontace": "~0.4.1", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "js-yaml": "^4.1.1", "magic-string": "^0.30.21", "magicast": "^0.5.2", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.3", "rehype": "^13.0.2", "semver": "^7.7.4", "shiki": "^4.0.0", "smol-toml": "^1.6.0", "svgo": "^4.0.0", "tinyclip": "^0.1.6", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tsconfck": "^3.1.6", "ultrahtml": "^1.6.0", "unifont": "~0.7.4", "unist-util-visit": "^5.1.0", "unstorage": "^1.17.4", "vfile": "^6.0.3", "vite": "^7.3.1", "vitefu": "^1.1.2", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.3.6" }, "optionalDependencies": { "sharp": "^0.34.0" }, "bin": { "astro": "bin/astro.mjs" } }, "sha512-JnLCwaoCaRXIHuIB8yNztJrd7M3hXrHUMAoQmeXtEBKxRu/738REhaCZ1lapjrS9HlpHsWTu3JUXTERB/0PA7g=="],
|
"astro": ["astro@6.1.1", "", { "dependencies": { "@astrojs/compiler": "^3.0.1", "@astrojs/internal-helpers": "0.8.0", "@astrojs/markdown-remark": "7.1.0", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.1.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.3.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^1.1.1", "devalue": "^5.6.3", "diff": "^8.0.3", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^2.0.0", "esbuild": "^0.27.3", "flattie": "^1.1.1", "fontace": "~0.4.1", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "js-yaml": "^4.1.1", "magic-string": "^0.30.21", "magicast": "^0.5.2", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.3", "rehype": "^13.0.2", "semver": "^7.7.4", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "svgo": "^4.0.1", "tinyclip": "^0.1.12", "tinyexec": "^1.0.4", "tinyglobby": "^0.2.15", "tsconfck": "^3.1.6", "ultrahtml": "^1.6.0", "unifont": "~0.7.4", "unist-util-visit": "^5.1.0", "unstorage": "^1.17.4", "vfile": "^6.0.3", "vite": "^7.3.1", "vitefu": "^1.1.2", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.3.6" }, "optionalDependencies": { "sharp": "^0.34.0" }, "bin": { "astro": "bin/astro.mjs" } }, "sha512-vq8sHpu1JsY1fWAunn+tdKNbVDmLQNiVdyuGsVT2csgITdFGXXVAyEXFWc1DzkMN0ehElPeiHnqItyQOJK+GqA=="],
|
||||||
|
|
||||||
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
|
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
|
||||||
|
|
||||||
@@ -387,7 +387,7 @@
|
|||||||
|
|
||||||
"fast-xml-builder": ["fast-xml-builder@1.1.4", "", { "dependencies": { "path-expression-matcher": "^1.1.3" } }, "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg=="],
|
"fast-xml-builder": ["fast-xml-builder@1.1.4", "", { "dependencies": { "path-expression-matcher": "^1.1.3" } }, "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg=="],
|
||||||
|
|
||||||
"fast-xml-parser": ["fast-xml-parser@5.4.1", "", { "dependencies": { "fast-xml-builder": "^1.0.0", "strnum": "^2.1.2" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A=="],
|
"fast-xml-parser": ["fast-xml-parser@5.5.9", "", { "dependencies": { "fast-xml-builder": "^1.1.4", "path-expression-matcher": "^1.2.0", "strnum": "^2.2.2" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-jldvxr1MC6rtiZKgrFnDSvT8xuH+eJqxqOBThUVjYrxssYTo1avZLGql5l0a0BAERR01CadYzZ83kVEkbyDg+g=="],
|
||||||
|
|
||||||
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
|
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
|
||||||
|
|
||||||
@@ -589,7 +589,7 @@
|
|||||||
|
|
||||||
"path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="],
|
"path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="],
|
||||||
|
|
||||||
"path-expression-matcher": ["path-expression-matcher@1.1.3", "", {}, "sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ=="],
|
"path-expression-matcher": ["path-expression-matcher@1.2.0", "", {}, "sha512-DwmPWeFn+tq7TiyJ2CxezCAirXjFxvaiD03npak3cRjlP9+OjTmSy1EpIrEbh+l6JgUundniloMLDQ/6VTdhLQ=="],
|
||||||
|
|
||||||
"piccolore": ["piccolore@0.1.3", "", {}, "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw=="],
|
"piccolore": ["piccolore@0.1.3", "", {}, "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw=="],
|
||||||
|
|
||||||
@@ -649,7 +649,7 @@
|
|||||||
|
|
||||||
"rollup": ["rollup@4.57.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.57.1", "@rollup/rollup-android-arm64": "4.57.1", "@rollup/rollup-darwin-arm64": "4.57.1", "@rollup/rollup-darwin-x64": "4.57.1", "@rollup/rollup-freebsd-arm64": "4.57.1", "@rollup/rollup-freebsd-x64": "4.57.1", "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", "@rollup/rollup-linux-arm-musleabihf": "4.57.1", "@rollup/rollup-linux-arm64-gnu": "4.57.1", "@rollup/rollup-linux-arm64-musl": "4.57.1", "@rollup/rollup-linux-loong64-gnu": "4.57.1", "@rollup/rollup-linux-loong64-musl": "4.57.1", "@rollup/rollup-linux-ppc64-gnu": "4.57.1", "@rollup/rollup-linux-ppc64-musl": "4.57.1", "@rollup/rollup-linux-riscv64-gnu": "4.57.1", "@rollup/rollup-linux-riscv64-musl": "4.57.1", "@rollup/rollup-linux-s390x-gnu": "4.57.1", "@rollup/rollup-linux-x64-gnu": "4.57.1", "@rollup/rollup-linux-x64-musl": "4.57.1", "@rollup/rollup-openbsd-x64": "4.57.1", "@rollup/rollup-openharmony-arm64": "4.57.1", "@rollup/rollup-win32-arm64-msvc": "4.57.1", "@rollup/rollup-win32-ia32-msvc": "4.57.1", "@rollup/rollup-win32-x64-gnu": "4.57.1", "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A=="],
|
"rollup": ["rollup@4.57.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.57.1", "@rollup/rollup-android-arm64": "4.57.1", "@rollup/rollup-darwin-arm64": "4.57.1", "@rollup/rollup-darwin-x64": "4.57.1", "@rollup/rollup-freebsd-arm64": "4.57.1", "@rollup/rollup-freebsd-x64": "4.57.1", "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", "@rollup/rollup-linux-arm-musleabihf": "4.57.1", "@rollup/rollup-linux-arm64-gnu": "4.57.1", "@rollup/rollup-linux-arm64-musl": "4.57.1", "@rollup/rollup-linux-loong64-gnu": "4.57.1", "@rollup/rollup-linux-loong64-musl": "4.57.1", "@rollup/rollup-linux-ppc64-gnu": "4.57.1", "@rollup/rollup-linux-ppc64-musl": "4.57.1", "@rollup/rollup-linux-riscv64-gnu": "4.57.1", "@rollup/rollup-linux-riscv64-musl": "4.57.1", "@rollup/rollup-linux-s390x-gnu": "4.57.1", "@rollup/rollup-linux-x64-gnu": "4.57.1", "@rollup/rollup-linux-x64-musl": "4.57.1", "@rollup/rollup-openbsd-x64": "4.57.1", "@rollup/rollup-openharmony-arm64": "4.57.1", "@rollup/rollup-win32-arm64-msvc": "4.57.1", "@rollup/rollup-win32-ia32-msvc": "4.57.1", "@rollup/rollup-win32-x64-gnu": "4.57.1", "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A=="],
|
||||||
|
|
||||||
"sax": ["sax@1.4.4", "", {}, "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw=="],
|
"sax": ["sax@1.6.0", "", {}, "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA=="],
|
||||||
|
|
||||||
"semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="],
|
"semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="],
|
||||||
|
|
||||||
@@ -671,15 +671,15 @@
|
|||||||
|
|
||||||
"strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
|
"strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
|
||||||
|
|
||||||
"strnum": ["strnum@2.2.0", "", {}, "sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg=="],
|
"strnum": ["strnum@2.2.2", "", {}, "sha512-DnR90I+jtXNSTXWdwrEy9FakW7UX+qUZg28gj5fk2vxxl7uS/3bpI4fjFYVmdK9etptYBPNkpahuQnEwhwECqA=="],
|
||||||
|
|
||||||
"svgo": ["svgo@4.0.0", "", { "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "^1.4.1" }, "bin": "./bin/svgo.js" }, "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw=="],
|
"svgo": ["svgo@4.0.1", "", { "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "^1.5.0" }, "bin": "./bin/svgo.js" }, "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w=="],
|
||||||
|
|
||||||
"tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="],
|
"tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="],
|
||||||
|
|
||||||
"tinyclip": ["tinyclip@0.1.12", "", {}, "sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA=="],
|
"tinyclip": ["tinyclip@0.1.12", "", {}, "sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA=="],
|
||||||
|
|
||||||
"tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="],
|
"tinyexec": ["tinyexec@1.0.4", "", {}, "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw=="],
|
||||||
|
|
||||||
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
|
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
|
||||||
|
|
||||||
@@ -693,7 +693,7 @@
|
|||||||
|
|
||||||
"typesafe-path": ["typesafe-path@0.2.2", "", {}, "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA=="],
|
"typesafe-path": ["typesafe-path@0.2.2", "", {}, "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA=="],
|
||||||
|
|
||||||
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
"typescript": ["typescript@6.0.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ=="],
|
||||||
|
|
||||||
"typescript-auto-import-cache": ["typescript-auto-import-cache@0.3.6", "", { "dependencies": { "semver": "^7.3.8" } }, "sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ=="],
|
"typescript-auto-import-cache": ["typescript-auto-import-cache@0.3.6", "", { "dependencies": { "semver": "^7.3.8" } }, "sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ=="],
|
||||||
|
|
||||||
@@ -803,6 +803,8 @@
|
|||||||
|
|
||||||
"dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
|
"dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
|
||||||
|
|
||||||
|
"fast-xml-builder/path-expression-matcher": ["path-expression-matcher@1.1.3", "", {}, "sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ=="],
|
||||||
|
|
||||||
"sharp/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="],
|
"sharp/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="],
|
||||||
|
|
||||||
"typescript-auto-import-cache/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="],
|
"typescript-auto-import-cache/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="],
|
||||||
|
|||||||
+449
-302
@@ -1,46 +1,74 @@
|
|||||||
# Zaguán Blade Tool Calls Reference
|
# Zaguán Blade Tool Calls Reference
|
||||||
|
|
||||||
This document describes the regular tool calls that Zaguán Blade supports. These are the tools you can add to your Local AI system prompts to extend usability.
|
This document lists the tool calls that are actually executable in the local `zblade` runtime.
|
||||||
|
|
||||||
> **Note:** This does not cover Blade-specific or ZLP (Zaguán Language Protocol) tools. These are standard file/editor tools for general AI coding assistance.
|
It intentionally excludes:
|
||||||
|
|
||||||
|
- **ZLP-related tooling**
|
||||||
|
- **Anything handled server-side by `zcoderd`**
|
||||||
|
- **Schema-only entries that are not currently executed by `zblade`**
|
||||||
|
|
||||||
|
The authoritative implementation lives in `src-tauri/src/tools.rs`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## File Operations
|
## Scope
|
||||||
|
|
||||||
|
These tools are the ones `zblade` can execute locally in its own tool executor.
|
||||||
|
|
||||||
|
Excluded server-side tools include:
|
||||||
|
|
||||||
|
- `ask_followup_question`
|
||||||
|
- `attempt_completion`
|
||||||
|
- `new_task`
|
||||||
|
- `generate_image`
|
||||||
|
- `todo_write`
|
||||||
|
|
||||||
|
Also excluded from this document:
|
||||||
|
|
||||||
|
- `symbol_references` because it is present in tool schema definitions but is **not currently dispatched by the local executor**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## File Tools
|
||||||
|
|
||||||
### `read_file`
|
### `read_file`
|
||||||
|
|
||||||
Read the complete contents of a file.
|
Read the full contents of a file.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | File path (relative to workspace or absolute) |
|
| `path` | string | Yes | File path |
|
||||||
|
|
||||||
**Aliases:** `file_path`, `filepath`, `filename`
|
**Accepted aliases for `path`:** `file_path`, `filepath`, `filename`
|
||||||
|
|
||||||
**Example:**
|
**Example:**
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"path": "src/main.rs"
|
"path": "src/main.rs"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `read_file_range`
|
### `read_file_range`
|
||||||
|
|
||||||
Read a specific line range from a file with optional context.
|
Read a specific line range from a file, with optional surrounding context.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | File path |
|
| `path` | string | Yes | File path |
|
||||||
| `start_line` | integer | No | Start line (1-indexed, default: 1) |
|
| `start_line` | integer | No | Start line, 1-indexed. Defaults to `1`. |
|
||||||
| `end_line` | integer | No | End line (1-indexed, default: end of file) |
|
| `end_line` | integer | No | End line, 1-indexed. Defaults to end of file. |
|
||||||
| `context_lines` | integer | No | Extra context lines before/after range (default: 0) |
|
| `context_lines` | integer | No | Extra lines before and after the requested range. Defaults to `0`. |
|
||||||
|
|
||||||
|
**Accepted aliases for `path`:** `file_path`, `filepath`, `filename`
|
||||||
|
|
||||||
**Example:**
|
**Example:**
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"path": "src/lib.rs",
|
"path": "src/lib.rs",
|
||||||
@@ -50,21 +78,28 @@ Read a specific line range from a file with optional context.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
### `write_file`
|
||||||
|
|
||||||
### `write_file` / `create_file`
|
Write content to a file. Parent directories are created if needed.
|
||||||
|
|
||||||
Write content to a file. Creates parent directories if needed.
|
### `create_file`
|
||||||
|
|
||||||
|
Alias of `write_file`.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | File path |
|
| `path` | string | Yes | Target file path |
|
||||||
| `content` | string | Yes | Content to write |
|
| `content` | string | Yes | File contents |
|
||||||
|
|
||||||
**Aliases for content:** `contents`, `text`, `data`
|
**Accepted aliases:**
|
||||||
|
|
||||||
|
- `path`: `file_path`, `filepath`, `filename`
|
||||||
|
- `content`: `contents`, `text`, `data`
|
||||||
|
|
||||||
**Example:**
|
**Example:**
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"path": "src/new_module.rs",
|
"path": "src/new_module.rs",
|
||||||
@@ -72,415 +107,483 @@ Write content to a file. Creates parent directories if needed.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `edit_file`
|
### `edit_file`
|
||||||
|
|
||||||
Apply a search/replace edit to a file (legacy tool).
|
Legacy single search/replace edit tool.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | File path |
|
| `path` | string | Yes | File path |
|
||||||
| `old_content` | string | Yes | Text to find |
|
| `old_content` | string | Yes | Text to find |
|
||||||
| `new_content` | string | Yes | Replacement text |
|
| `new_content` | string | Yes | Replacement text |
|
||||||
|
|
||||||
**Aliases:** `old`/`from` for old_content, `new`/`to` for new_content
|
**Accepted aliases:**
|
||||||
|
|
||||||
**Example:**
|
- `path`: `file_path`, `filepath`, `filename`
|
||||||
```json
|
- `old_content`: `old`, `from`
|
||||||
{
|
- `new_content`: `new`, `to`
|
||||||
"path": "src/main.rs",
|
|
||||||
"old_content": "fn old_function()",
|
|
||||||
"new_content": "fn new_function()"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
### `apply_patch`
|
||||||
|
|
||||||
### `apply_edit` / `apply_patch`
|
Preferred patch/edit tool for search/replace edits.
|
||||||
|
|
||||||
Apply search/replace edits with robust fuzzy matching. Supports both single patches and atomic multi-patch operations.
|
### `apply_edit`
|
||||||
|
|
||||||
|
Alias of `apply_patch`.
|
||||||
|
|
||||||
|
Supports both a single replacement and an atomic multi-patch mode.
|
||||||
|
|
||||||
|
**Single-patch parameters:**
|
||||||
|
|
||||||
**Single Patch Parameters:**
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | File path |
|
| `path` | string | Yes | File path |
|
||||||
| `old_text` | string | Yes | Text to find and replace |
|
| `old_text` | string | Yes | Exact text to replace |
|
||||||
| `new_text` | string | Yes | Replacement text |
|
| `new_text` | string | Yes | Replacement text |
|
||||||
|
|
||||||
**Multi-Patch Parameters:**
|
**Multi-patch parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | File path |
|
| `path` | string | Yes | File path |
|
||||||
| `patches` | array | Yes | Array of patch objects |
|
| `patches` | array | Yes | Array of patch objects |
|
||||||
|
|
||||||
Each patch object contains:
|
Each patch object supports:
|
||||||
- `old_text` (string): Text to find
|
|
||||||
- `new_text` (string): Replacement text
|
|
||||||
- `start_line` (integer, optional): Hint for disambiguation
|
|
||||||
- `end_line` (integer, optional): Hint for disambiguation
|
|
||||||
|
|
||||||
**Single Patch Example:**
|
- `old_text` — required
|
||||||
```json
|
- `new_text` — required
|
||||||
{
|
- `start_line` — optional hint
|
||||||
"path": "src/lib.rs",
|
- `end_line` — optional hint
|
||||||
"old_text": "let x = 5;",
|
|
||||||
"new_text": "let x = 10;"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Multi-Patch Example:**
|
**Accepted aliases in single-patch mode:**
|
||||||
```json
|
|
||||||
{
|
|
||||||
"path": "src/lib.rs",
|
|
||||||
"patches": [
|
|
||||||
{"old_text": "fn foo()", "new_text": "fn bar()"},
|
|
||||||
{"old_text": "let a = 1;", "new_text": "let a = 2;"}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
> **Note:** Multi-patch operations are atomic - all patches are validated before any are applied. If any patch fails, no changes are made.
|
- `path`: `file_path`, `filepath`, `filename`
|
||||||
|
- `old_text`: `old_content`, `old`, `from`
|
||||||
|
- `new_text`: `new_content`, `new`, `to`
|
||||||
|
|
||||||
---
|
**Important behavior:**
|
||||||
|
|
||||||
|
- Matching is exact.
|
||||||
|
- If the match is ambiguous, the edit fails.
|
||||||
|
- Multi-patch application is atomic: if one patch fails validation, none are applied.
|
||||||
|
|
||||||
### `delete_file`
|
### `delete_file`
|
||||||
|
|
||||||
Delete a file or directory.
|
Delete a file, or a directory when `recursive: true` is provided.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | Path to delete |
|
| `path` | string | Yes | Path to delete |
|
||||||
| `recursive` | boolean | No | Required for directories (default: false) |
|
| `recursive` | boolean | No | Required when deleting a directory |
|
||||||
|
|
||||||
**Example:**
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"path": "temp/old_file.txt"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `move_file`
|
### `move_file`
|
||||||
|
|
||||||
Move or rename a file.
|
Move or rename a file.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `source` | string | Yes | Source path |
|
| `source` | string | Yes | Source path |
|
||||||
| `destination` | string | Yes | Destination path |
|
| `destination` | string | Yes | Destination path |
|
||||||
|
|
||||||
**Example:**
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"source": "src/old_name.rs",
|
|
||||||
"destination": "src/new_name.rs"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `copy_file`
|
### `copy_file`
|
||||||
|
|
||||||
Copy a file or directory (recursive for directories).
|
Copy a file or recursively copy a directory.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `source` | string | Yes | Source path |
|
| `source` | string | Yes | Source path |
|
||||||
| `destination` | string | Yes | Destination path |
|
| `destination` | string | Yes | Destination path |
|
||||||
|
|
||||||
**Example:**
|
### `create_directory`
|
||||||
```json
|
|
||||||
{
|
|
||||||
"source": "templates/base.html",
|
|
||||||
"destination": "src/templates/base.html"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
Create a directory and any missing parent directories.
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `path` | string | Yes | Directory path |
|
||||||
|
|
||||||
### `get_file_info`
|
### `get_file_info`
|
||||||
|
|
||||||
Get metadata about a file or directory.
|
Return basic filesystem metadata.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | Path to inspect |
|
| `path` | string | Yes | Path to inspect |
|
||||||
|
|
||||||
**Returns:** JSON with `path`, `size`, `is_directory`, `is_file`, `modified`, `readonly`
|
**Returns:** JSON including `path`, `size`, `is_directory`, `is_file`, `modified`, and `readonly`.
|
||||||
|
|
||||||
**Example:**
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"path": "Cargo.toml"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### `create_directory`
|
## Directory and Search Tools
|
||||||
|
|
||||||
Create a directory (and parent directories if needed).
|
### `list_dir`
|
||||||
|
|
||||||
|
List directory contents using a compact tree-like view.
|
||||||
|
|
||||||
|
### `list_directory`
|
||||||
|
|
||||||
|
Alias of `list_dir`.
|
||||||
|
|
||||||
|
This is implemented by forwarding to `get_workspace_structure` with a default shallow depth.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | Directory path to create |
|
| `path` | string | No | Directory path. Defaults to `.`. |
|
||||||
|
|
||||||
**Example:**
|
**Notes:**
|
||||||
```json
|
|
||||||
{
|
|
||||||
"path": "src/modules/new_feature"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
- `list_dir` / `list_directory` exists mainly as a compatibility entry point.
|
||||||
|
- The underlying structured traversal behavior is defined by `get_workspace_structure`.
|
||||||
## Directory & Search Tools
|
- Prefer `get_workspace_structure` when you need explicit traversal controls.
|
||||||
|
|
||||||
### `list_directory` / `list_dir`
|
|
||||||
|
|
||||||
List directory contents with tree view.
|
|
||||||
|
|
||||||
**Parameters:**
|
|
||||||
| Name | Type | Required | Description |
|
|
||||||
|------|------|----------|-------------|
|
|
||||||
| `path` | string | No | Directory path (default: ".") |
|
|
||||||
| `max_depth` | integer | No | Max traversal depth (default: 1) |
|
|
||||||
|
|
||||||
**Aliases:** `dir`, `directory`
|
|
||||||
|
|
||||||
**Example:**
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"path": "src",
|
|
||||||
"max_depth": 2
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `get_workspace_structure`
|
### `get_workspace_structure`
|
||||||
|
|
||||||
Get a tree view of the workspace structure.
|
Return a tree view of the workspace or a subdirectory.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | No | Starting path (default: ".") |
|
| `path` | string | No | Starting path. Defaults to `.`. |
|
||||||
| `depth` | integer | No | Max depth (default: 2) |
|
| `depth` | integer | No | Max traversal depth. Defaults to `2`. |
|
||||||
| `limit` | integer | No | Max entries (default: 50, max: 200) |
|
| `limit` | integer | No | Max returned entries. Defaults to `50`, capped at `200`. |
|
||||||
|
|
||||||
**Example:**
|
**Accepted aliases for `path`:** `dir`, `directory`
|
||||||
```json
|
|
||||||
{
|
|
||||||
"path": ".",
|
|
||||||
"depth": 3,
|
|
||||||
"limit": 100
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
> **Note:** Automatically ignores common directories like `node_modules`, `target`, `.git`, `__pycache__`, etc.
|
**Behavior notes:**
|
||||||
|
|
||||||
---
|
- Hidden files are skipped.
|
||||||
|
- Common heavy/generated directories are skipped.
|
||||||
|
- Gitignored paths are filtered when project settings enable that behavior.
|
||||||
|
|
||||||
### `find_files`
|
### `find_files`
|
||||||
|
|
||||||
Find files by name pattern (substring match).
|
Find files by substring match on filename.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `pattern` | string | Yes | Substring to match in filenames |
|
| `pattern` | string | Yes | Substring to match in entry names |
|
||||||
| `path` | string | No | Starting path (default: workspace root) |
|
| `path` | string | No | Search root inside the workspace |
|
||||||
| `max_depth` | integer | No | Max search depth |
|
| `max_depth` | integer | No | Optional max traversal depth |
|
||||||
|
|
||||||
**Example:**
|
### `find_files_glob`
|
||||||
```json
|
|
||||||
{
|
|
||||||
"pattern": "test",
|
|
||||||
"path": "src",
|
|
||||||
"max_depth": 5
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
Find files with a glob pattern.
|
||||||
|
|
||||||
### `find_files_glob` / `glob`
|
### `glob`
|
||||||
|
|
||||||
Find files using glob patterns.
|
Alias of `find_files_glob`.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `pattern` | string | Yes | Glob pattern (e.g., `**/*.rs`) |
|
| `pattern` | string | Yes | Glob pattern |
|
||||||
| `path` | string | No | Base path for search |
|
| `path` | string | No | Optional base path |
|
||||||
| `case_sensitive` | boolean | No | Case-sensitive matching (default: false) |
|
| `case_sensitive` | boolean | No | Whether matching is case-sensitive |
|
||||||
|
|
||||||
**Example:**
|
**Accepted aliases:**
|
||||||
```json
|
|
||||||
{
|
|
||||||
"pattern": "**/*.tsx",
|
|
||||||
"path": "src"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
- `pattern`: `glob`
|
||||||
|
|
||||||
### `grep_search` / `rg`
|
### `grep_search`
|
||||||
|
|
||||||
Search file contents using regex patterns.
|
Search file contents with a regular expression.
|
||||||
|
|
||||||
|
### `rg`
|
||||||
|
|
||||||
|
Alias of `grep_search`.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `pattern` | string | Yes | Regex pattern to search |
|
| `pattern` | string | Yes | Regex pattern |
|
||||||
| `path` | string | No | Directory to search (default: ".") |
|
| `path` | string | No | Search root. Defaults to `.`. |
|
||||||
|
| `include_dependencies` | boolean | No | Include dependency directories like `node_modules` and `vendor` |
|
||||||
|
| `timeout_ms` | integer | No | Timeout used when timeout enforcement is enabled |
|
||||||
|
|
||||||
**Aliases for pattern:** `query`, `regex`
|
**Accepted aliases:**
|
||||||
|
|
||||||
**Example:**
|
- `pattern`: `query`, `regex`
|
||||||
```json
|
- `path`: `dir`, `directory`
|
||||||
{
|
|
||||||
"pattern": "fn\\s+main",
|
|
||||||
"path": "src"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Returns:** Matches in format `filepath:line_number:line_content`
|
**Behavior notes:**
|
||||||
|
|
||||||
---
|
- Returns matches in `path:line:text` form on success.
|
||||||
|
- If timeout enforcement is enabled and the search times out, it returns structured JSON with partial results and a hint.
|
||||||
|
|
||||||
### `codebase_search`
|
### `codebase_search`
|
||||||
|
|
||||||
Search codebase with context lines around matches.
|
Search the codebase with regex and return matches with surrounding context.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `query` | string | Yes | Regex pattern to search |
|
| `query` | string | Yes | Regex pattern |
|
||||||
| `file_pattern` | string | No | Filter files (e.g., `*.rs,*.toml`) |
|
| `file_pattern` | string | No | Comma-separated filename patterns |
|
||||||
| `max_results` | integer | No | Maximum results (default: 50) |
|
| `max_results` | integer | No | Max number of matches to return. Defaults to `50`. |
|
||||||
|
|
||||||
**Example:**
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"query": "struct.*Config",
|
|
||||||
"file_pattern": "*.rs",
|
|
||||||
"max_results": 20
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Returns:** Matches with 2 lines of context before and after.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Editor Interaction Tools
|
## Editor and UI Interaction Tools
|
||||||
|
|
||||||
### `get_editor_state`
|
### `get_editor_state`
|
||||||
|
|
||||||
Get current editor context including active file, cursor position, and open files.
|
Return the current local editor context.
|
||||||
|
|
||||||
**Parameters:** None
|
**Parameters:** None.
|
||||||
|
|
||||||
**Returns:** JSON with:
|
**Returns:** JSON including:
|
||||||
- `active_file`: Currently focused file
|
|
||||||
- `open_files`: List of open file paths
|
|
||||||
- `active_tab_index`: Index of active tab
|
|
||||||
- `cursor_line`, `cursor_column`: Cursor position
|
|
||||||
- `selection_start_line`, `selection_end_line`: Selection range
|
|
||||||
|
|
||||||
---
|
- `active_file`
|
||||||
|
- `open_files`
|
||||||
|
- `active_tab_index`
|
||||||
|
- `cursor_line`
|
||||||
|
- `cursor_column`
|
||||||
|
- `selection_start_line`
|
||||||
|
- `selection_end_line`
|
||||||
|
|
||||||
|
The returned text may also include human-readable helper guidance for the active file and cursor location.
|
||||||
|
|
||||||
### `open_file`
|
### `open_file`
|
||||||
|
|
||||||
Open a file in the editor.
|
Emit an editor action that opens a file, optionally at a line.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `path` | string | Yes | File path to open |
|
| `path` | string | Yes | File to open |
|
||||||
| `line` | integer | No | Line number to jump to |
|
| `line` | integer | No | Line number to jump to |
|
||||||
|
|
||||||
**Example:**
|
**Note:** This returns an action payload for the frontend to intercept.
|
||||||
```json
|
|
||||||
{
|
|
||||||
"path": "src/main.rs",
|
|
||||||
"line": 42
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `goto_line`
|
### `goto_line`
|
||||||
|
|
||||||
Navigate to a specific line in the active file.
|
Emit an editor action that moves the cursor in the current file.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `line` | integer | Yes | Line number (1-indexed) |
|
| `line` | integer | Yes | Target line |
|
||||||
| `column` | integer | No | Column number |
|
| `column` | integer | No | Optional target column |
|
||||||
|
|
||||||
**Example:**
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"line": 100,
|
|
||||||
"column": 15
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `get_selection`
|
### `get_selection`
|
||||||
|
|
||||||
Get the currently selected text in the editor.
|
Request the current selection.
|
||||||
|
|
||||||
**Parameters:** None
|
**Parameters:** None.
|
||||||
|
|
||||||
**Returns:** The selected text content.
|
**Current status:** implemented only as a placeholder action payload. It does **not** currently return the true selected text.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### `replace_selection`
|
### `replace_selection`
|
||||||
|
|
||||||
Replace the current selection with new content.
|
Emit an editor action that replaces the current selection.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `content` | string | Yes | Replacement content |
|
| `content` | string | Yes | Replacement content |
|
||||||
|
|
||||||
**Example:**
|
### `insert_at_cursor`
|
||||||
```json
|
|
||||||
{
|
Emit an editor action that inserts content at the current cursor position.
|
||||||
"content": "new replacement text"
|
|
||||||
}
|
**Parameters:**
|
||||||
```
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `content` | string | Yes | Text to insert |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### `insert_at_cursor`
|
## Local Code-Intelligence Tools
|
||||||
|
|
||||||
Insert content at the current cursor position.
|
These tools are local to `zblade`. They are **not ZLP tools** and do not require `zcoderd`, but they do depend on `zblade`'s local language service / symbol index being available.
|
||||||
|
|
||||||
|
### `symbol_search`
|
||||||
|
|
||||||
|
Search indexed symbols by name or qualified name.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `content` | string | Yes | Content to insert |
|
| `query` | string | Yes | Symbol query |
|
||||||
|
| `path` | string | No | Restrict to a file |
|
||||||
|
| `kind` | string | No | Symbol kind filter |
|
||||||
|
| `limit` | integer | No | Max results. Defaults to `20`, capped at `100`. |
|
||||||
|
|
||||||
**Example:**
|
**Accepted aliases:**
|
||||||
```json
|
|
||||||
{
|
- `path`: `file`, `file_path`
|
||||||
"content": "// TODO: implement this\n"
|
- `kind`: `symbol_type`
|
||||||
}
|
|
||||||
```
|
### `symbol_resolve`
|
||||||
|
|
||||||
|
Resolve one symbol by ID, or by file plus name.
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `symbol_id` | string | Conditionally | Stable symbol ID |
|
||||||
|
| `path` | string | Conditionally | Required when resolving by file-scoped lookup |
|
||||||
|
| `qualified_name` | string | No | Exact qualified name |
|
||||||
|
| `name` | string | No | Simple symbol name |
|
||||||
|
|
||||||
|
**Accepted aliases:**
|
||||||
|
|
||||||
|
- `symbol_id`: `id`
|
||||||
|
- `path`: `file`, `file_path`
|
||||||
|
|
||||||
|
**Rule:** provide either `symbol_id`, or a `path` with a symbol name selector.
|
||||||
|
|
||||||
|
### `symbol_outline`
|
||||||
|
|
||||||
|
Return the hierarchical symbol outline for one file.
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `path` | string | Yes | File path |
|
||||||
|
|
||||||
|
**Accepted aliases for `path`:** `file`, `file_path`
|
||||||
|
|
||||||
|
### `symbol_graph`
|
||||||
|
|
||||||
|
Return incoming and outgoing graph edges for a symbol.
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `symbol_id` | string | Conditionally | Stable symbol ID |
|
||||||
|
| `path` | string | Conditionally | File path when resolving by file/name |
|
||||||
|
| `qualified_name` | string | No | Exact qualified name |
|
||||||
|
| `name` | string | No | Simple symbol name |
|
||||||
|
| `relationship_type` | string | No | Edge type. Defaults to `call`. |
|
||||||
|
| `limit` | integer | No | Max edges. Defaults to `20`, capped at `100`. |
|
||||||
|
|
||||||
|
**Accepted aliases:**
|
||||||
|
|
||||||
|
- `symbol_id`: `id`
|
||||||
|
- `path`: `file`, `file_path`
|
||||||
|
- `relationship_type`: `edge_kind`, `kind`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Project Index Tools
|
||||||
|
|
||||||
|
These tools read the local `.zblade/context/project_index.md` artifact, or a semantic overview generated by the local language service when available.
|
||||||
|
|
||||||
|
### `get_project_index_overview`
|
||||||
|
|
||||||
|
Read a compact overview window from the local project index.
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `path` | string | No | Optional workspace sub-root |
|
||||||
|
| `max_chars` | integer | No | Character budget. Defaults to `6000`, capped at `12000`. |
|
||||||
|
| `offset` | integer | No | Character offset |
|
||||||
|
|
||||||
|
### `get_project_index_chunk`
|
||||||
|
|
||||||
|
Read a deterministic paged chunk from the local project index.
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `path` | string | No | Optional workspace sub-root |
|
||||||
|
| `offset` | integer | No | Character offset |
|
||||||
|
| `max_chars` | integer | No | Character budget. Defaults to `4000`, capped at `8000`. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Composite Read-Only Tools
|
||||||
|
|
||||||
|
These tools are supported by `zblade` locally.
|
||||||
|
|
||||||
|
By default, schema exposure may be gated by model family and the `composite_tools_enabled` feature flag, but the local executor does support them.
|
||||||
|
|
||||||
|
### `read_many_files`
|
||||||
|
|
||||||
|
Read multiple files selected by glob patterns in a single bounded call.
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `paths` | array of strings | Yes | Include globs |
|
||||||
|
| `exclude` | array of strings | No | Exclude globs |
|
||||||
|
| `max_files` | integer | No | Max files. Defaults to `100`, capped at `500`. |
|
||||||
|
| `max_bytes_per_file` | integer | No | Per-file byte limit. Defaults to `65536`, capped at `524288`. |
|
||||||
|
| `include_line_numbers` | boolean | No | Include line numbers in returned content |
|
||||||
|
|
||||||
|
**Accepted aliases for include globs:** `globs`, `patterns`
|
||||||
|
|
||||||
|
### `batch`
|
||||||
|
|
||||||
|
Execute multiple read-only tool calls concurrently with all-settled behavior.
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `calls` | array | Yes | Array of tool call objects |
|
||||||
|
| `max_parallel` | integer | No | Defaults to `8`, capped at `16` |
|
||||||
|
| `fail_fast` | boolean | No | Stop queued work after first failure |
|
||||||
|
| `ordered` | boolean | No | Preserve input order. Defaults to `true`. |
|
||||||
|
| `cancel_after_ms` | integer | No | Optional total budget |
|
||||||
|
|
||||||
|
Each call object supports:
|
||||||
|
|
||||||
|
- `tool` or `name`
|
||||||
|
- `arguments`
|
||||||
|
|
||||||
|
**Important behavior:**
|
||||||
|
|
||||||
|
- Only read-only tools are allowed.
|
||||||
|
- `batch` itself and `run_command` are explicitly blocked inside `batch`.
|
||||||
|
|
||||||
|
### `codebase_investigator`
|
||||||
|
|
||||||
|
Run a bounded read-only investigation pass and return structured findings.
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
|
||||||
|
| Name | Type | Required | Description |
|
||||||
|
|------|------|----------|-------------|
|
||||||
|
| `objective` | string | Yes | Investigation goal |
|
||||||
|
| `scope` | array of strings | No | Glob scope. Defaults to `**/*`. |
|
||||||
|
| `max_turns` | integer | No | Defaults to `8`, capped at `16` |
|
||||||
|
| `max_tool_calls` | integer | No | Defaults to `40`, capped at `120` |
|
||||||
|
| `output_format` | string | No | `json` or `markdown` |
|
||||||
|
| `cancel_after_ms` | integer | No | Optional total budget |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -488,63 +591,107 @@ Insert content at the current cursor position.
|
|||||||
|
|
||||||
### `run_command`
|
### `run_command`
|
||||||
|
|
||||||
Execute a shell command (requires user approval).
|
Execute a command in the workspace. This requires approval in normal AI workflows.
|
||||||
|
|
||||||
**Parameters:**
|
**Parameters:**
|
||||||
|
|
||||||
| Name | Type | Required | Description |
|
| Name | Type | Required | Description |
|
||||||
|------|------|----------|-------------|
|
|------|------|----------|-------------|
|
||||||
| `command` | string | Yes | Shell command to execute |
|
| `command` | string | Conditionally | Legacy shell command line |
|
||||||
| `cwd` | string | Yes | Working directory |
|
| `program` | string | Conditionally | Executable path/name for structured execution |
|
||||||
|
| `args` | array of strings | No | Structured arguments when using `program` |
|
||||||
|
| `shell` | boolean | No | Force shell execution when using `program` |
|
||||||
|
| `cwd` | string | No | Working directory |
|
||||||
|
| `blocking` | boolean | No | Defaults to `true` |
|
||||||
|
| `wait_ms_before_async` | integer | No | Startup wait when non-blocking |
|
||||||
|
|
||||||
**Example:**
|
**Accepted aliases / alternate casing:**
|
||||||
```json
|
|
||||||
{
|
|
||||||
"command": "cargo build --release",
|
|
||||||
"cwd": "."
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
> **Note:** This tool requires user confirmation before execution for safety.
|
- `command`: `Command`, `command_line`, `CommandLine`
|
||||||
|
- `program`: `Program`
|
||||||
|
- `args`: `Args`
|
||||||
|
- `shell`: `Shell`
|
||||||
|
- `cwd`: `Cwd`
|
||||||
|
- `blocking`: `Blocking`
|
||||||
|
- `wait_ms_before_async`: `WaitMsBeforeAsync`
|
||||||
|
|
||||||
|
**Rule:** provide either `command` or `program`.
|
||||||
|
|
||||||
|
**Behavior notes:**
|
||||||
|
|
||||||
|
- If `program` is used, shell execution defaults to `false` unless explicitly enabled.
|
||||||
|
- If `command` is used, shell execution is enabled.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Tool Result Handling
|
## General Notes
|
||||||
|
|
||||||
Tool results are automatically truncated if they exceed limits:
|
### Result truncation
|
||||||
- **Max size:** 50KB
|
|
||||||
- **Max lines:** 2000
|
|
||||||
|
|
||||||
When truncated, the first 100 lines and last 50 lines are shown with a truncation message.
|
Large tool results may be truncated.
|
||||||
|
|
||||||
|
- **Max size:** `50 KB`
|
||||||
|
- **Max lines:** `2000`
|
||||||
|
|
||||||
|
When truncation happens, the executor keeps a head/tail summary rather than returning the entire payload.
|
||||||
|
|
||||||
|
### Path safety
|
||||||
|
|
||||||
|
Paths are generally constrained to the current workspace.
|
||||||
|
|
||||||
|
- Relative paths are resolved from the workspace root.
|
||||||
|
- Absolute paths must still resolve inside the workspace when validation is enforced.
|
||||||
|
|
||||||
|
### Local vs advertised tools
|
||||||
|
|
||||||
|
This file documents what `zblade` can execute locally.
|
||||||
|
|
||||||
|
That is not always identical to what every model sees in advertised tool schemas:
|
||||||
|
|
||||||
|
- Some compatibility aliases are executor-only.
|
||||||
|
- Some composite tools are feature-flag and model-family gated for schema exposure.
|
||||||
|
- Some schema entries may exist before local execution support is complete.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Path Resolution
|
## Quick Reference
|
||||||
|
|
||||||
All paths can be:
|
### Locally executable non-server-side tools
|
||||||
- **Relative:** Resolved from workspace root (e.g., `src/main.rs`)
|
|
||||||
- **Absolute:** Used as-is (must be within workspace)
|
|
||||||
|
|
||||||
Paths outside the workspace are rejected for security.
|
- `read_file`
|
||||||
|
- `read_file_range`
|
||||||
---
|
- `write_file`
|
||||||
|
- `create_file`
|
||||||
## Adding Tools to Your AI System Prompt
|
- `edit_file`
|
||||||
|
- `apply_patch`
|
||||||
To use these tools with a local AI, include the tool definitions in your system prompt. Example format:
|
- `apply_edit`
|
||||||
|
- `delete_file`
|
||||||
```
|
- `move_file`
|
||||||
You have access to the following tools:
|
- `copy_file`
|
||||||
|
- `create_directory`
|
||||||
- read_file: Read file contents. Args: {"path": "string"}
|
- `get_file_info`
|
||||||
- write_file: Write to file. Args: {"path": "string", "content": "string"}
|
- `list_dir`
|
||||||
- grep_search: Search with regex. Args: {"pattern": "string", "path": "string"}
|
- `list_directory`
|
||||||
- apply_edit: Edit file. Args: {"path": "string", "old_text": "string", "new_text": "string"}
|
- `get_workspace_structure`
|
||||||
...
|
- `find_files`
|
||||||
|
- `find_files_glob`
|
||||||
To use a tool, respond with:
|
- `glob`
|
||||||
<tool_call>
|
- `grep_search`
|
||||||
{"name": "tool_name", "arguments": {...}}
|
- `rg`
|
||||||
</tool_call>
|
- `codebase_search`
|
||||||
```
|
- `get_editor_state`
|
||||||
|
- `open_file`
|
||||||
The exact format depends on your AI provider's tool calling conventions.
|
- `goto_line`
|
||||||
|
- `get_selection`
|
||||||
|
- `replace_selection`
|
||||||
|
- `insert_at_cursor`
|
||||||
|
- `symbol_search`
|
||||||
|
- `symbol_resolve`
|
||||||
|
- `symbol_outline`
|
||||||
|
- `symbol_graph`
|
||||||
|
- `get_project_index_overview`
|
||||||
|
- `get_project_index_chunk`
|
||||||
|
- `read_many_files`
|
||||||
|
- `batch`
|
||||||
|
- `codebase_investigator`
|
||||||
|
- `run_command`
|
||||||
|
|||||||
+3
-3
@@ -11,8 +11,8 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/check": "^0.9.8",
|
"@astrojs/check": "^0.9.8",
|
||||||
"@astrojs/rss": "^4.0.15",
|
"@astrojs/rss": "^4.0.18",
|
||||||
"astro": "^6.0.5",
|
"astro": "^6.1.1",
|
||||||
"typescript": "^5.9.3"
|
"typescript": "^6.0.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,36 @@ import BaseLayout from '../layouts/BaseLayout.astro';
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- v0.5.1 Section -->
|
||||||
|
<section id="v0-5-1" class="changelog-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="version-card version-development">
|
||||||
|
<div class="version-header">
|
||||||
|
<div class="version-info">
|
||||||
|
<h2 class="version-number">v0.5.1</h2>
|
||||||
|
<span class="version-date">TBD</span>
|
||||||
|
</div>
|
||||||
|
<span class="version-badge badge-development">Development</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="version-content">
|
||||||
|
<div class="version-resume">
|
||||||
|
<p>Development builds focused on polishing the Terminal experience and resolving shell output display issues.</p>
|
||||||
|
</div>
|
||||||
|
<div class="changes-section">
|
||||||
|
<h3 class="changes-title">
|
||||||
|
<span class="changes-icon">🐛</span>
|
||||||
|
Bug Fixes
|
||||||
|
</h3>
|
||||||
|
<ul class="changes-list">
|
||||||
|
<li><strong>Terminal.</strong> Fixed bugs that caused the Terminal to not display Tab text or requests from the shell.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<!-- v0.5.0 Section -->
|
<!-- v0.5.0 Section -->
|
||||||
<section id="v0-5-0" class="changelog-section">
|
<section id="v0-5-0" class="changelog-section">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
|||||||
Reference in New Issue
Block a user