LLM tool orchestration runtime and daemon with SDK clients for TypeScript/JavaScript and Python. Provides session management, plugin architecture, and multi-transport support (IPC, WebSocket).
Jaato Framework exposes 7 tools with significant definition gaps. Most tools lack proper descriptions (echo, cli_based_tool, changed_lines_tool are under 20 chars or generic). Input schemas are present but minimally documented, parameters lack type constraints and validation guidance. The event subscription tools (subscribeToEvents, getEvents, listSubscriptions, unsubscribe) have better descriptions but still lack output schema documentation. No tool declares error handling, recovery paths, or permission requirements. Tool naming is inconsistent: 'cli_based_tool' violates verb_noun convention; 'changed_lines_tool' is vague. The framework appears designed for internal agent orchestration rather than external tool consumption, which explains the sparse documentation.
Heuristic line selector based on description and optional delimiter. Uses globally stored source text set via set_current_source(). Returns {'lines': [{line_number, code_line} ...]} limited to 12.
Execute CLI commands with workspace context, output limits, and timeout support.
RPC-overhead probe. Returns args wrapped in a result dict.
Review recent cross-agent and external events. LONG-POLL: Set timeout (1-30) to block until events arrive. Combine with after_event for incremental consumption. IMPORTANT: timeout requires at least one of agent_id, event_types, or after_event.
List your active event subscriptions.
Subscribe to events from other agents or external sources. Events arrive as [SUBAGENT event=X] inline messages — no polling needed. RECOMMENDED: Subscribe early in your workflow: subscribeToEvents(event_types=['plan_created', 'step_completed']) For external events (webhooks, WebSocket): subscribeToEvents(event_types=['external_event']) Events are delivered via inject_prompt() — the session wakes automatically.
Tool naming violates verb_noun convention. 'echo', 'cli_based_tool', and 'changed_lines_tool' do not start with action verbs (get_, create_, execute_, etc.). LLMs cannot infer intent from these names alone.
Descriptions are too short or generic. 'echo' (RPC-overhead probe) and 'changed_lines_tool' lack context for when/why to use them. Descriptions under 20 chars cannot guide LLM tool selection.
No output schemas documented. Tools return results but LLMs cannot plan downstream calls without knowing response structure. Event tools especially need documented return types (event objects, subscription IDs, etc.).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
Remove a subscription.
No error handling or recovery guidance. Tools do not document what errors are possible, whether they are retryable, or what the LLM should do next. 'cli_based_tool' can fail in many ways (command not found, timeout, permission denied) but provides no guidance.
Parameter descriptions are minimal or missing. 'cli_based_tool' accepts 'command' and 'args' but does not explain format, constraints, or security implications. 'getEvents' timeout parameter lacks guidance on valid range or blocking behavior.