@nathapp/nax-ai 0.1.11 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,16 +21,14 @@ export declare function classifyHttpError(status: number | undefined): ProtocolE
21
21
  * verdict of its own keeps it — a 429 mentioning tokens is a rate limit, and
22
22
  * the caller should wait rather than compact.
23
23
  *
24
- * A non-failing status is refined to `transport` (nax#1869). An error event
25
- * that arrives under a 200 means the response headers were fine and the stream
26
- * broke afterwards; that is a transport fault, not the "unknown" the bare
27
- * status table has to answer. It is the shape OpenRouter's "Upstream idle
28
- * timeout exceeded" takes, and reading it as unknown cost a real run both its
29
- * agent swap and nax-ai's own bounded retry, since both key on `transport`.
30
- * An absent status gets the same answer for consistency with `classifyThrown`,
31
- * the sibling path for the identical fault. Neither can become
32
- * `context-overflow`: an overflow always arrives on a failing status, so
33
- * declining to guess one here still costs nothing.
24
+ * A non-failing status is refined to `transport` (nax#1869), unless the
25
+ * message carries policy or overflow content, in which case that refinement
26
+ * takes over — see `classifyBrokenStream`. That refinement, not the status
27
+ * gate, is what decides `context-overflow`: OpenRouter (and other
28
+ * OpenAI-compatible aggregators) answer HTTP 200 and relay an upstream
29
+ * provider's 4xx as a stream `error` event, so a genuine overflow can arrive
30
+ * on a status that is not itself a failure (nax#44). The status is a signal
31
+ * about the envelope, not a gate on what the message is allowed to mean.
34
32
  */
35
33
  export declare function classifyProviderError(status: number | undefined, message: string | undefined): ProtocolErrorKind;
36
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/protocols/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAQ/E;AAqDD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAWhH;AAaD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CASzG;AAyBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAa5D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/protocols/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAQ/E;AA8GD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAUhH;AA+BD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CASzG;AAyBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAa5D"}
@@ -35,16 +35,72 @@ export function classifyHttpError(status) {
35
35
  * send a consumer into an endless shorten-and-retry loop.
36
36
  */
37
37
  const CONTEXT_OVERFLOW_MARKERS = [
38
+ // Generic and OpenAI-compatible
38
39
  "context_length_exceeded",
39
40
  "context length exceeded",
41
+ "token limit exceeded",
40
42
  "maximum context length",
41
43
  "exceed context limit",
44
+ "exceeds the context window",
45
+ "model_context_window_exceeded",
46
+ // Anthropic (token overflow, and the 413 request byte-size form)
42
47
  "prompt is too long",
48
+ "request_too_large",
49
+ // Amazon Bedrock
43
50
  "input is too long",
51
+ // Google Gemini
44
52
  "exceeds the maximum number of tokens",
53
+ // Groq
45
54
  "reduce the length of the messages",
55
+ // xAI Grok
56
+ "maximum prompt length is",
57
+ // OpenRouter / Poolside
58
+ "maximum allowed input length",
59
+ // Together AI
60
+ "is longer than the model",
61
+ // llama.cpp server
62
+ "exceeds the available context size",
63
+ // LM Studio
64
+ "greater than the context length",
65
+ // GitHub Copilot
66
+ "prompt token count of",
67
+ // MiniMax
68
+ "context window exceeds limit",
69
+ // Kimi For Coding
70
+ "exceeded model token limit",
71
+ // DS4 server
72
+ "the configured context size is",
73
+ // DashScope / Qwen Token Plan
74
+ "range of input length should be",
75
+ // Ollama
76
+ "exceeded max context length",
77
+ // Deliberately broad, and the reason NON_OVERFLOW_MARKERS exists: Bedrock
78
+ // words a throttle as "ThrottlingException: Too many tokens, please wait".
46
79
  "too many tokens",
47
80
  ];
81
+ /**
82
+ * Substrings that rule a message OUT of `context-overflow`, lowercased,
83
+ * whatever the overflow table says.
84
+ *
85
+ * The overflow table is matched by substring, so a throttling message can
86
+ * satisfy it by accident: Bedrock's "ThrottlingException: Too many tokens,
87
+ * please wait before trying again" contains the `too many tokens` marker
88
+ * verbatim. Classifying that as an overflow would send a consumer off to
89
+ * compact and retry a conversation that was never too large, while the real
90
+ * fault -- a throttle it should have waited out -- goes unreported.
91
+ *
92
+ * Checked before the overflow table, so an exclusion always wins. Status
93
+ * precedence already protects the 429 case; this protects every other status,
94
+ * including the aggregator-relayed 200 of nax#44 and a plain 400.
95
+ */
96
+ const NON_OVERFLOW_MARKERS = [
97
+ "throttlingexception",
98
+ "throttling error",
99
+ "service unavailable",
100
+ "rate limit",
101
+ "rate_limit",
102
+ "too many requests",
103
+ ];
48
104
  /**
49
105
  * Substrings that identify a mid-stream error carrying policy content,
50
106
  * lowercased. Read only for a stream that broke under a non-failing status —
@@ -82,16 +138,14 @@ function isNonFailingStatus(status) {
82
138
  * verdict of its own keeps it — a 429 mentioning tokens is a rate limit, and
83
139
  * the caller should wait rather than compact.
84
140
  *
85
- * A non-failing status is refined to `transport` (nax#1869). An error event
86
- * that arrives under a 200 means the response headers were fine and the stream
87
- * broke afterwards; that is a transport fault, not the "unknown" the bare
88
- * status table has to answer. It is the shape OpenRouter's "Upstream idle
89
- * timeout exceeded" takes, and reading it as unknown cost a real run both its
90
- * agent swap and nax-ai's own bounded retry, since both key on `transport`.
91
- * An absent status gets the same answer for consistency with `classifyThrown`,
92
- * the sibling path for the identical fault. Neither can become
93
- * `context-overflow`: an overflow always arrives on a failing status, so
94
- * declining to guess one here still costs nothing.
141
+ * A non-failing status is refined to `transport` (nax#1869), unless the
142
+ * message carries policy or overflow content, in which case that refinement
143
+ * takes over — see `classifyBrokenStream`. That refinement, not the status
144
+ * gate, is what decides `context-overflow`: OpenRouter (and other
145
+ * OpenAI-compatible aggregators) answer HTTP 200 and relay an upstream
146
+ * provider's 4xx as a stream `error` event, so a genuine overflow can arrive
147
+ * on a status that is not itself a failure (nax#44). The status is a signal
148
+ * about the envelope, not a gate on what the message is allowed to mean.
95
149
  */
96
150
  export function classifyProviderError(status, message) {
97
151
  const kind = classifyHttpError(status);
@@ -100,19 +154,35 @@ export function classifyProviderError(status, message) {
100
154
  }
101
155
  if (kind !== "bad-request" || message === undefined)
102
156
  return kind;
157
+ return matchesContextOverflow(message) ? "context-overflow" : kind;
158
+ }
159
+ /**
160
+ * Whether a message names a context-window overflow, case-insensitively.
161
+ *
162
+ * An exclusion wins over a marker: see `NON_OVERFLOW_MARKERS` for why the
163
+ * overflow table alone cannot separate a throttle from an overflow.
164
+ */
165
+ function matchesContextOverflow(message) {
103
166
  const haystack = message.toLowerCase();
104
- return CONTEXT_OVERFLOW_MARKERS.some((marker) => haystack.includes(marker)) ? "context-overflow" : kind;
167
+ if (NON_OVERFLOW_MARKERS.some((marker) => haystack.includes(marker)))
168
+ return false;
169
+ return CONTEXT_OVERFLOW_MARKERS.some((marker) => haystack.includes(marker));
105
170
  }
106
171
  /**
107
172
  * The kind for an error event whose status reported no failure: `transport`,
108
- * unless the message carries policy content nax-ai must not retry itself.
173
+ * unless the message carries policy content nax-ai must not retry itself
174
+ * (checked first, so an established rate-limit/overload phrasing keeps its
175
+ * kind), or names a context overflow (nax#44) — the aggregator-relay shape
176
+ * described on `classifyProviderError`.
109
177
  */
110
178
  function classifyBrokenStream(message) {
111
179
  if (message === undefined)
112
180
  return "transport";
113
181
  const haystack = message.toLowerCase();
114
182
  const policy = STREAM_POLICY_MARKERS.find(([marker]) => haystack.includes(marker));
115
- return policy ? policy[1] : "transport";
183
+ if (policy)
184
+ return policy[1];
185
+ return matchesContextOverflow(message) ? "context-overflow" : "transport";
116
186
  }
117
187
  /**
118
188
  * Reads `retry-after` as a delay in seconds.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/protocols/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/protocols/errors.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nathapp/nax-ai",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "Provider-agnostic LLM client: completions, streaming, tool calls, usage and auth across API-key and OAuth providers.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",