zeroclaw/src
Chummy 52b05a7c34
[supersede #1354 v2] feat(composio): fix v3 compatibility with parameter discovery, NLP text execution, and error enrichment (#1493)
* feat(composio): fix v3 compatibility with parameter discovery, NLP text execution, and error enrichment

Three-layer fix for the Composio v3 API compatibility issue where the LLM
agent cannot discover parameter schemas, leading to repeated guessing and
execution failures.

Layer 1 – Surface parameter hints in list output:
  - Add input_parameters field to ComposioV3Tool and ComposioAction structs
  - Pass through input_parameters from v3 list response via map_v3_tools_to_actions
  - Add format_input_params_hint() to show required/optional param names in list output

Layer 2 – Support natural-language text execution:
  - Add text parameter to tool schema (mutually exclusive with params)
  - Thread text through execute handler → execute_action → execute_action_v3
  - Update build_execute_action_v3_request to send text instead of arguments
  - Skip v2 fallback when text-mode is used (v2 has no NLP support)

Layer 3 – Enrich execute errors with parameter schema:
  - Add get_tool_schema() to fetch full tool metadata from GET /api/v3/tools/{slug}
  - Add format_schema_hint() to render parameter names, types, and descriptions
  - On execute failure, auto-fetch schema and append to error message

Root cause: The v3 API returns input_parameters in list responses but
ComposioV3Tool was silently discarding them. The LLM had no way to discover
parameter schemas before calling execute, and error messages provided no
remediation guidance — creating an infinite guessing loop.

Co-Authored-By: unknown <>
(cherry picked from commit fd92cc5eb0)

* fix(composio): use floor_char_boundary for safe UTF-8 truncation in format_schema_hint

Co-Authored-By: unknown <>
(cherry picked from commit 18e72b6344)

* fix(composio): restore coherent v3 execute flow after replay

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-02-24 16:03:00 +08:00
..
agent Summary 2026-02-24 16:03:00 +08:00
approval refactor(sync): migrate remaining std mutex usage to parking_lot 2026-02-18 00:45:26 +08:00
auth test(gemini): restore oauth env vars in unit test 2026-02-24 16:03:00 +08:00
channels Summary 2026-02-24 16:03:00 +08:00
config fix(config): add test for 0600 permissions on config file save 2026-02-24 16:03:00 +08:00
cost fix(agent): parse MiniMax tool call formats for execution 2026-02-21 12:36:28 +08:00
cron fix(scheduler): include failure reason in job failure warning 2026-02-24 16:03:00 +08:00
daemon fix: route heartbeat outputs to configured channels 2026-02-24 16:02:59 +08:00
doctor Use channels(&self) and channels_except_webhook(&self) 2026-02-21 19:38:19 +08:00
gateway Summary 2026-02-24 16:03:00 +08:00
hardware fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00
health refactor(sync): migrate remaining std mutex usage to parking_lot 2026-02-18 00:45:26 +08:00
heartbeat fix: route heartbeat outputs to configured channels 2026-02-24 16:02:59 +08:00
hooks fix(hooks): harden dispatch and outbound message guardrails 2026-02-21 13:34:09 +08:00
integrations feat(providers): add Novita AI as OpenAI-compatible provider (#1496) 2026-02-23 07:58:49 -05:00
memory fix(security): remove sensitive fields from Debug impls 2026-02-20 22:06:21 -08:00
observability fix(observability): add OTLP paths to OTel endpoints 2026-02-21 17:07:31 +08:00
onboard Summary 2026-02-24 16:03:00 +08:00
peripherals fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00
providers supersede: file-replay changes from #1416 (#1494) 2026-02-24 16:03:00 +08:00
rag chore(lint): extend low-risk clippy cleanup batch 2026-02-17 16:40:58 +08:00
runtime docs(code): expand doc comments on security, observability, runtime, and peripheral traits 2026-02-19 13:19:46 -08:00
security test(pairing): satisfy strict clippy delta on lockout sweep assertions 2026-02-24 16:03:00 +08:00
service fix: resolve all compilation, test, and fmt errors on main 2026-02-21 12:09:06 +08:00
skillforge chore: Remove blocking read strings 2026-02-19 14:52:29 +08:00
skills fix(skills): allow cross-skill references in open-skills audit 2026-02-24 16:02:59 +08:00
sop fix(web): call doctor endpoint with authenticated POST 2026-02-24 16:02:59 +08:00
tools [supersede #1354 v2] feat(composio): fix v3 compatibility with parameter discovery, NLP text execution, and error enrichment (#1493) 2026-02-24 16:03:00 +08:00
tunnel feat(proxy): add scoped proxy configuration and docs runbooks 2026-02-18 22:10:42 +08:00
identity.rs test: cover deterministic HashMap ordering paths 2026-02-18 21:55:40 +08:00
lib.rs feat(skills): enforce static security audit for skill install/load 2026-02-21 22:54:55 +08:00
main.rs feat(models): add list, set, and status subcommands 2026-02-24 16:03:00 +08:00
migration.rs readd tests, remove markdown files 2026-02-18 14:42:39 +08:00
multimodal.rs fix: resolve clippy warnings and rustfmt across codebase 2026-02-21 12:39:34 +08:00
util.rs fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00