Conversation
CSDK-003 covers the Python side; the TypeScript half was missing even though this pack ships TS rules throughout (CSDK-010..014, CSDK-120..131). OpenAI (OAI-016, OAI-024) and the Vercel AI SDK (VAI-011) already use has_http_call_without_timeout for exactly this. Node's fetch has no implicit deadline, so an unresponsive host stalls the conversation rather than failing it: the model gets no result and no error, and a max_turns cap does not help because the run is stuck inside one turn rather than taking too many. Compounds with CSDK-013 — a model-controlled URL that also cannot time out can be pointed at an internal host that never answers.
|
Thanks @bradAGI. Two nits before this goes in. The explanation says This also needs a rationale doc in |
CSDK-003 covers the Python side of network timeouts; the TypeScript half was missing, even though this pack ships TS rules throughout (CSDK-010..014, CSDK-120..131). OpenAI (OAI-016, OAI-024) and the Vercel AI SDK (VAI-011) already use
has_http_call_without_timeoutfor exactly this.The consequence framing is what makes it worth stating rather than porting VAI-011's text: an unresponsive host stalls the conversation rather than failing it. The model gets no result and no error, so the turn can't advance — and a
max_turnscap doesn't help, because the run is stuck inside a single turn rather than taking too many. In a server embedding the SDK it also holds the request worker for the duration.Compounds with CSDK-013 the way VAI-011 compounds with VAI-003: a tool that fetches a model-controlled URL and can't time out can be pointed at an internal host that simply never answers.
Verification — engine built at
main:Fire (bare
await fetch(...)in atool(...)handler):CSDK-013, CSDK-020, CSDK-203Silent (
signal: AbortSignal.timeout(15_000)):CSDK-013, CSDK-203(CSDK-013 is the pre-existing SSRF rule firing on the fixture's template-string URL — which is also the compounding case the explanation describes. CSDK-203 is the missing-CLAUDE.md repo rule.)
No new predicates, so no
schema_versionbump.