gateway: add /tools/invoke HTTP endpoint #1575
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Adds a new HTTP endpoint
POST /tools/invokethat can execute a Clawdbot agent tool (core or plugin) on behalf of a caller. This unblocks Lobster’sclawd.invokebridge (tool/action/args) without needing to go through the OpenAI-compatible chat endpoints.Request body:
{ "tool": "sessions_list", "action": "json", "args": { "limit": 10 }, "sessionKey": "main" }Response:
{ "ok": true, "result": { "...": "tool result" } }Policy & security
Authorization: Bearer …) viaauthorizeGatewayConnect.actioninto tool args when the tool’s schema actually declares anactionproperty (avoids breaking tools likellm-taskthat don’t use actions).Threat model
gateway.auth.mode=noneand bind publicly could still be vulnerable (same as other HTTP endpoints); recommend loopback bind or token auth.Tests
src/gateway/tools-invoke-http.test.tscovers success path, auth rejection, and policy-based tool unavailability.