Embeddable TypeScript agent SDK for DeepSeek, Kimi, and GLM — built-in tools, skills, memory, and MCP.
This SDK provides 11 tools with mixed quality. Most tools lack complete parameter descriptions and output schema documentation. Tool names follow verb_noun convention (get_weather, read, write, bash, edit, glob, grep, web_fetch), which is good. However, parameter descriptions are sparse or missing entirely. For example, 'bash' has no visible schema in the provided code. The built-in tools (read, write, edit, glob, grep, web_fetch, bash) are exported but their actual schemas are not shown in the source excerpt, making it impossible to verify parameter types and descriptions. Custom tool example (get_weather) shows proper schema definition with description, but the built-in tools lack visible documentation. Tool result truncation and ReadToolOutput tool show sophisticated infrastructure but descriptions are technical rather than LLM-optimized. ToolSearch tool has a detailed description but is complex and may confuse agents about when to use it.
Read a persisted, truncated tool result using its maestro://tool-output/ reference. Reads at most 48 KiB of stored content per call. Use next_byte_offset to continue reading.
Activate one or more deferred tools so you can call them on subsequent turns. Deferred tools are listed by name+summary in a system note; their full schema is only sent on the wire after you ToolSearch for them. Two query forms: 'select:Name1,Name2,...' for exact name selection (use this when you already know the tool name from the catalog), or any other string treated as a keyword search across deferred tool names + descriptions. Returns one OK/ALREADY_ACTIVE/NOT_FOUND line per requested name plus the activated tool schemas so you can call them immediately on the next turn. ToolSearch is always available — you do not need to activate it.
Execute shell commands (exported as bashTool from src/tools/builtin/bash)
Edit file contents (exported as editTool from src/tools/builtin/edit)
Gemini image question-answering tool (exported from src/tools/builtin/gemini_image_qa)
Look up current weather for a city. Returns a one-line summary.
8 of 11 tools (bash, edit, gemini_image_qa, glob, grep, read, web_fetch, write) have no visible input schemas in source code. Cannot verify parameter types, required fields, or constraints.
8 of 11 tools have minimal descriptions (under 20 chars or generic export statements like 'exported as bashTool from src/tools/builtin/bash'). Descriptions must explain WHAT the tool does, WHEN to use it, and what it returns. LLMs cannot infer purpose from names alone.
No parameter descriptions visible for bash, edit, glob, grep, read, web_fetch, write tools. Parameters like 'path', 'pattern', 'query' are ambiguous without context. Baseline: 100% of A+ tools have descriptions for every parameter.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Glob file pattern matching (exported as globTool from src/tools/builtin/glob)
Search file contents with grep (exported as grepTool from src/tools/builtin/grep)
Read file contents (exported as readTool from src/tools/builtin/read)
Fetch and parse web content (exported as webFetchTool from src/tools/builtin/web_fetch)
Write file contents (exported as writeTool from src/tools/builtin/write)
No output schemas documented for any tool. LLMs need to know what fields to expect in responses to plan downstream calls and extract data correctly. Baseline: 100% of A+ tools have documented return types.
Destructive tools (bash, edit, write) lack confirmation/dry-run patterns and error recovery guidance. No indication of which operations are irreversible or how agents should handle failures.