Operate active ChannelTerm terminal sessions and inspect local devices.
ChannelTerm defines 26 tools with complete input schemas and descriptions. All tools have proper JSON Schema with typed properties and required fields. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are correctly applied. However, descriptions are terse (avg ~60 chars, well below the 194-char baseline), lack dependency hints and recovery guidance, and output schemas are not documented. Parameter descriptions are minimal, many lack context on format, range, or constraints. Error handling is present but not visible in tool definitions; recovery paths are not documented. Naming follows verb_noun convention consistently (terminal_*), which is strong. Composition is sound: tools are single-responsibility and chainable via session_id. No secrets exposed as parameters.
Acquire a write lease for a session
Begin file transfer cancellation
Close a session for all clients
Execute a non-interactive command at a known idle Bash prompt
Get file transfer checkpoint action
Get connection decision for a discovered device
List discovered devices available for connection
Output schemas not documented. Tool definitions lack return type documentation, forcing LLMs to guess what fields are available and breaking downstream tool chaining.
Descriptions are terse (avg ~60 chars vs 194-char baseline). Most lack context on WHEN to use the tool, prerequisites, or recovery paths. E.g., 'Read terminal output from a session at or after a cursor position' does not explain cursor semantics, timeout behavior, or what to do if the session closes.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
List available serial ports on the local system
List all active terminal sessions managed by ChannelTerm
Open or reuse a serial session
Read terminal output from a session at or after a cursor position
Read operation activity events from a session
Read device discovery events
Release an active write lease
Renew an active write lease
Publish file transfer event on session event stream
Resolve file transfer cancellation
Record adapter attachment to an active session
Record adapter detachment from an active session
Read structured session events
Wait for terminal output after a cursor position. See terminal_wait_file_transfer for file transfer results.
Wait for operation activity events after a cursor
Wait for device discovery events. Call terminal_get_connection_decision before opening a discovered device.
Wait for file transfer state changes
Write raw, interactive, or binary input to a session
Write data to a session using an active lease
Parameter descriptions lack format/constraint details. E.g., 'cursor' is described as 'Output cursor position' but does not explain if it is opaque, how to initialize it, or what happens on invalid values. 'timeout_ms' lacks min/max bounds.
No error handling guidance visible in tool definitions. LLMs cannot determine if errors are retryable, user-fixable, or fatal. E.g., what happens if terminal_exec is called on a non-idle prompt? What should the agent do?
Lease and file-transfer tools lack dependency documentation. LLMs cannot infer that terminal_write_leased requires a prior terminal_acquire_lease call, or that terminal_resolve_file_transfer_cancel depends on terminal_begin_file_transfer_cancel.