@nexus-cortex/core 4.51.1 → 4.52.0

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.
Files changed (56) hide show
  1. package/dist/adapters/GatewayTranslationLayer.d.ts +9 -0
  2. package/dist/adapters/GatewayTranslationLayer.d.ts.map +1 -1
  3. package/dist/adapters/GatewayTranslationLayer.js +24 -1
  4. package/dist/adapters/GatewayTranslationLayer.js.map +1 -1
  5. package/dist/adapters/ResponsesAPIAdapter.d.ts +66 -0
  6. package/dist/adapters/ResponsesAPIAdapter.d.ts.map +1 -1
  7. package/dist/adapters/ResponsesAPIAdapter.js +66 -0
  8. package/dist/adapters/ResponsesAPIAdapter.js.map +1 -1
  9. package/dist/adapters/servedModelDrift.d.ts +44 -0
  10. package/dist/adapters/servedModelDrift.d.ts.map +1 -0
  11. package/dist/adapters/servedModelDrift.js +0 -0
  12. package/dist/adapters/servedModelDrift.js.map +1 -0
  13. package/dist/conversation/ToolResultPruner.d.ts +45 -0
  14. package/dist/conversation/ToolResultPruner.d.ts.map +1 -0
  15. package/dist/conversation/ToolResultPruner.js +94 -0
  16. package/dist/conversation/ToolResultPruner.js.map +1 -0
  17. package/dist/middleware/ErrorClassificationMiddleware.d.ts +19 -0
  18. package/dist/middleware/ErrorClassificationMiddleware.d.ts.map +1 -1
  19. package/dist/middleware/ErrorClassificationMiddleware.js +55 -1
  20. package/dist/middleware/ErrorClassificationMiddleware.js.map +1 -1
  21. package/dist/middleware/RetryMiddleware.d.ts.map +1 -1
  22. package/dist/middleware/RetryMiddleware.js +8 -2
  23. package/dist/middleware/RetryMiddleware.js.map +1 -1
  24. package/dist/middleware/contracts/MiddlewareContracts.d.ts +4 -0
  25. package/dist/middleware/contracts/MiddlewareContracts.d.ts.map +1 -1
  26. package/dist/orchestrator/APIClient.d.ts +10 -0
  27. package/dist/orchestrator/APIClient.d.ts.map +1 -1
  28. package/dist/orchestrator/APIClient.js +81 -6
  29. package/dist/orchestrator/APIClient.js.map +1 -1
  30. package/dist/orchestrator/CortexOrchestrator.d.ts +30 -0
  31. package/dist/orchestrator/CortexOrchestrator.d.ts.map +1 -1
  32. package/dist/orchestrator/CortexOrchestrator.js +243 -21
  33. package/dist/orchestrator/CortexOrchestrator.js.map +1 -1
  34. package/dist/orchestrator/apiErrorClassifier.d.ts.map +1 -1
  35. package/dist/orchestrator/apiErrorClassifier.js +8 -1
  36. package/dist/orchestrator/apiErrorClassifier.js.map +1 -1
  37. package/dist/orchestrator/emptyResponseClassifier.d.ts +29 -0
  38. package/dist/orchestrator/emptyResponseClassifier.d.ts.map +1 -0
  39. package/dist/orchestrator/emptyResponseClassifier.js +42 -0
  40. package/dist/orchestrator/emptyResponseClassifier.js.map +1 -0
  41. package/dist/orchestrator/index.d.ts +1 -0
  42. package/dist/orchestrator/index.d.ts.map +1 -1
  43. package/dist/orchestrator/index.js +3 -0
  44. package/dist/orchestrator/index.js.map +1 -1
  45. package/dist/orchestrator/structuredOutput.d.ts +144 -0
  46. package/dist/orchestrator/structuredOutput.d.ts.map +1 -0
  47. package/dist/orchestrator/structuredOutput.js +230 -0
  48. package/dist/orchestrator/structuredOutput.js.map +1 -0
  49. package/dist/orchestrator/tailRepetitionDetector.d.ts +57 -0
  50. package/dist/orchestrator/tailRepetitionDetector.d.ts.map +1 -0
  51. package/dist/orchestrator/tailRepetitionDetector.js +98 -0
  52. package/dist/orchestrator/tailRepetitionDetector.js.map +1 -0
  53. package/dist/system-messages/messages/WORK_QUALITY.md +2 -0
  54. package/dist/tools/registries/BaseToolRegistry.js +1 -1
  55. package/dist/tools/registries/BaseToolRegistry.js.map +1 -1
  56. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolResultPruner.js","sourceRoot":"","sources":["../../src/conversation/ToolResultPruner.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,14 @@ export declare class ErrorClassificationMiddleware implements IErrorClassifier {
45
45
  * Permission and validation error patterns that are not retryable
46
46
  */
47
47
  private readonly nonRetryablePatterns;
48
+ /**
49
+ * Context-window overflow phrasings (grok-build port, 2026-08-01). Kept
50
+ * deliberately STRICTER than ErrorDetector.isGenericContextError — that
51
+ * matcher includes the bare word 'context', which would wrongly veto
52
+ * retrying transient errors like "context deadline exceeded" 503s. These
53
+ * are a retry VETO: replaying an oversized payload fails identically.
54
+ */
55
+ private readonly contextLengthPatterns;
48
56
  /**
49
57
  * Classify an error and provide detailed information
50
58
  *
@@ -102,6 +110,17 @@ export declare class ErrorClassificationMiddleware implements IErrorClassifier {
102
110
  * @param value - The string to normalize
103
111
  * @returns Lowercase string or empty string if null/undefined
104
112
  */
113
+ /**
114
+ * Extract an HTTP status embedded in a raw-fetch error message. Anchored on
115
+ * the literal "API error" that every raw-fetch throw site uses, so a bare
116
+ * number in an error body ("Found 400 records") never matches. Covers all
117
+ * four raw-fetch throw shapes (2026-08-02):
118
+ * "XAI Messages API error (429): ..." -> paren form
119
+ * "Google GenerateContent API error (503): ..." -> paren form
120
+ * "XAI Responses API error 429: ..." -> bare form (was a gap)
121
+ * "Gemini API error: 429 - ..." -> colon form (was a gap)
122
+ */
123
+ private extractStatusFromMessage;
105
124
  private normalizeString;
106
125
  /**
107
126
  * Check if error message or name matches any of the given patterns
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorClassificationMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/ErrorClassificationMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,6BAA8B,YAAW,gBAAgB;IACpE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CASnC;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkC;IAEvE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAuB;IAEhE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CASnC;IAEF;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,mBAAmB;IA4BzC;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAsChC;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,mBAAmB,CAAC,WAAW,CAAC;IAyC1D;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"ErrorClassificationMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/ErrorClassificationMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,6BAA8B,YAAW,gBAAgB;IACpE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CASnC;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkC;IAEvE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAuB;IAEhE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CASnC;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAUpC;IAEF;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,mBAAmB;IA4BzC;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IA0DhC;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,mBAAmB,CAAC,WAAW,CAAC;IA0C1D;;;;;OAKG;IACH;;;;;;;;;OASG;IACH,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,eAAe;IAIvB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;CASvB"}
@@ -62,6 +62,24 @@ export class ErrorClassificationMiddleware {
62
62
  'unauthorized',
63
63
  'forbidden',
64
64
  ];
65
+ /**
66
+ * Context-window overflow phrasings (grok-build port, 2026-08-01). Kept
67
+ * deliberately STRICTER than ErrorDetector.isGenericContextError — that
68
+ * matcher includes the bare word 'context', which would wrongly veto
69
+ * retrying transient errors like "context deadline exceeded" 503s. These
70
+ * are a retry VETO: replaying an oversized payload fails identically.
71
+ */
72
+ contextLengthPatterns = [
73
+ 'context length',
74
+ 'context_length_exceeded',
75
+ 'maximum context',
76
+ 'context window',
77
+ 'prompt is too long',
78
+ 'input is too long',
79
+ 'too many tokens',
80
+ 'exceeds the maximum number of tokens',
81
+ 'reduce the length of the messages',
82
+ ];
65
83
  /**
66
84
  * Classify an error and provide detailed information
67
85
  *
@@ -120,6 +138,14 @@ export class ErrorClassificationMiddleware {
120
138
  isRetryable(error) {
121
139
  const errorMessage = this.normalizeString(error?.message);
122
140
  const errorName = this.normalizeString(error?.name);
141
+ // Context-length veto (grok-build port, 2026-08-01): a context-window
142
+ // overflow is NEVER retryable — replaying the identical payload fails
143
+ // identically, even when a provider surfaces it under an otherwise
144
+ // retryable status. The remedy is compaction upstream, not a retry.
145
+ // Runs BEFORE the status branch deliberately (the one exception to R13).
146
+ if (this.matchesPattern(errorMessage, errorName, this.contextLengthPatterns)) {
147
+ return false;
148
+ }
123
149
  // R13 (parallel-bench): HTTP status code is AUTHORITATIVE. A 401 with
124
150
  // "ECONNRESET" in the body is still an auth error — message patterns must
125
151
  // not override it. Only fall back to pattern matching when there is no
@@ -128,6 +154,16 @@ export class ErrorClassificationMiddleware {
128
154
  if (statusCode) {
129
155
  return this.retryableStatusCodes.includes(statusCode) || statusCode >= 500;
130
156
  }
157
+ // Raw-fetch provider errors carry no .status property — the status is
158
+ // embedded in the message as "... (429): body" (xAI Messages, xAI
159
+ // Responses, Google HTTP, Gemini paths in APIClient). Without this,
160
+ // provider 429/5xx from those paths were NEVER retried (2026-08 surface
161
+ // map finding). The strict "(NNN):" shape avoids false positives on
162
+ // ordinary numbers in error text.
163
+ const parsedStatus = this.extractStatusFromMessage(errorMessage);
164
+ if (parsedStatus) {
165
+ return this.retryableStatusCodes.includes(parsedStatus) || parsedStatus >= 500;
166
+ }
131
167
  // No status code → fall back to message-pattern matching.
132
168
  // Network/connection errors - retryable
133
169
  if (this.matchesPattern(errorMessage, errorName, this.networkErrorPatterns)) {
@@ -169,7 +205,8 @@ export class ErrorClassificationMiddleware {
169
205
  // R13 (parallel-bench): status code is AUTHORITATIVE — a 429 with
170
206
  // "invalid" in the body is rate_limit, not validation. Pattern matching
171
207
  // only applies when there is no status code.
172
- const statusCode = error?.status || error?.statusCode;
208
+ const statusCode = error?.status || error?.statusCode
209
+ || this.extractStatusFromMessage(errorMessage);
173
210
  if (statusCode) {
174
211
  if (statusCode === 429)
175
212
  return 'rate_limit';
@@ -207,6 +244,23 @@ export class ErrorClassificationMiddleware {
207
244
  * @param value - The string to normalize
208
245
  * @returns Lowercase string or empty string if null/undefined
209
246
  */
247
+ /**
248
+ * Extract an HTTP status embedded in a raw-fetch error message. Anchored on
249
+ * the literal "API error" that every raw-fetch throw site uses, so a bare
250
+ * number in an error body ("Found 400 records") never matches. Covers all
251
+ * four raw-fetch throw shapes (2026-08-02):
252
+ * "XAI Messages API error (429): ..." -> paren form
253
+ * "Google GenerateContent API error (503): ..." -> paren form
254
+ * "XAI Responses API error 429: ..." -> bare form (was a gap)
255
+ * "Gemini API error: 429 - ..." -> colon form (was a gap)
256
+ */
257
+ extractStatusFromMessage(message) {
258
+ const m = /API error[:\s(]*(\d{3})/i.exec(message);
259
+ if (!m)
260
+ return undefined;
261
+ const status = Number(m[1]);
262
+ return status >= 100 && status <= 599 ? status : undefined;
263
+ }
210
264
  normalizeString(value) {
211
265
  return value?.toLowerCase() || '';
212
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorClassificationMiddleware.js","sourceRoot":"","sources":["../../src/middleware/ErrorClassificationMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ErrorClassificationMiddleware.js","sourceRoot":"","sources":["../../src/middleware/ErrorClassificationMiddleware.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RetryMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/RetryMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,EAEZ,MAAM,oCAAoC,CAAC;AAoB5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,eAAgB,YAAW,cAAc;IAUlD,OAAO,CAAC,QAAQ,CAAC,eAAe;IATlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;;;OAKG;gBAEgB,eAAe,EAAE,gBAAgB,EAClD,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM;IA0BrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACG,gBAAgB,CAAC,CAAC,EACtB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAmD1B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAkBvC;;;;;OAKG;IACH,OAAO,CAAC,KAAK;IAIb;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,YAAY;IA4BpB;;;;OAIG;IACH,UAAU,IAAI,QAAQ,CAAC,YAAY,CAAC;CAGrC"}
1
+ {"version":3,"file":"RetryMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/RetryMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,EAEZ,MAAM,oCAAoC,CAAC;AAqB5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,eAAgB,YAAW,cAAc;IAUlD,OAAO,CAAC,QAAQ,CAAC,eAAe;IATlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;;;OAKG;gBAEgB,eAAe,EAAE,gBAAgB,EAClD,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM;IA0BrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACG,gBAAgB,CAAC,CAAC,EACtB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAwD1B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAkBvC;;;;;OAKG;IACH,OAAO,CAAC,KAAK;IAIb;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,YAAY;IA4BpB;;;;OAIG;IACH,UAAU,IAAI,QAAQ,CAAC,YAAY,CAAC;CAGrC"}
@@ -25,6 +25,7 @@ const DEFAULT_OPTIONS = {
25
25
  maxDelayMs: 30000,
26
26
  backoffMultiplier: 2,
27
27
  jitterFactor: 0.1,
28
+ rateLimitMaxRetries: 2,
28
29
  };
29
30
  /**
30
31
  * RetryMiddleware
@@ -160,8 +161,13 @@ export class RetryMiddleware {
160
161
  // Classify the error
161
162
  const classification = this.errorClassifier.classify(error);
162
163
  errors.push(classification);
163
- // Check if we should retry
164
- const isLastAttempt = attempt === this.options.maxRetries;
164
+ // Check if we should retry. Rate limits get a lower attempt cap than
165
+ // transient faults (grok-build port): a 429 that survives two waits
166
+ // will usually survive a third.
167
+ const attemptCap = classification.errorType === 'rate_limit'
168
+ ? Math.min(this.options.maxRetries, this.options.rateLimitMaxRetries ?? this.options.maxRetries)
169
+ : this.options.maxRetries;
170
+ const isLastAttempt = attempt >= attemptCap;
165
171
  const shouldRetry = classification.isRetryable && !isLastAttempt;
166
172
  if (!shouldRetry) {
167
173
  // Either non-retryable or exhausted retries - throw error
@@ -1 +1 @@
1
- {"version":3,"file":"RetryMiddleware.js","sourceRoot":"","sources":["../../src/middleware/RetryMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RetryMiddleware.js","sourceRoot":"","sources":["../../src/middleware/RetryMiddleware.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,10 @@ export interface RetryOptions {
67
67
  maxDelayMs: number;
68
68
  backoffMultiplier: number;
69
69
  jitterFactor: number;
70
+ /** Separate, lower attempt cap for rate-limit (429) errors — a 429 that
71
+ * survives two waits usually survives a third; burning the full backoff
72
+ * ladder wastes wall-clock (grok-build port, 2026-08-01). Default: 2. */
73
+ rateLimitMaxRetries?: number;
70
74
  }
71
75
  /**
72
76
  * Result of a retry operation
@@ -1 +1 @@
1
- {"version":3,"file":"MiddlewareContracts.d.ts","sourceRoot":"","sources":["../../../src/middleware/contracts/MiddlewareContracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MiddlewareContracts.d.ts","sourceRoot":"","sources":["../../../src/middleware/contracts/MiddlewareContracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAMnF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,YAAY,CAAC,EAAE;QACb,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,MAAM,EAAE,OAAO;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,CACL,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,mBAAmB,CAAC;IAE1C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC;IAEjC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC5D;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB;;8EAE0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC;IACV,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAChB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3B;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CACzC;AAMD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,GACrC;IACE,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CACjC,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,eAAe,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnF;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,iBAAiB,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B;;;;OAIG;IACH,eAAe,CACb,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAAC;CACxD;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,KAAK,CAAC,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,oBAAoB,CAClB,WAAW,EAAE,MAAM,GAAG,GAAG,EAAE,EAC3B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAElB;;OAEG;IACH,qBAAqB,CACnB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CAAC;IAEpB;;OAEG;IACH,sBAAsB,CACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,iBAAiB,CAAC;CACtB;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,uBAAuB,CACrB,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;IAEX;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtD;;OAEG;IACH,sBAAsB,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;IAE1D;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAEpD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,qBAAqB,CAAC,EAAE,sBAAsB,CAAC;IAC/C,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC;IACnD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IACpC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B"}
@@ -18,6 +18,16 @@ export interface APIResponse {
18
18
  status: number;
19
19
  /** Response headers */
20
20
  headers: Record<string, string>;
21
+ /**
22
+ * xAI server-advertised effective limits (grok-build parity, 2026-08-01):
23
+ * parsed from x-grok-context-window / x-grok-max-completion-tokens response
24
+ * headers on the xAI Messages path. Optional and additive — informational
25
+ * for budget consumers; nothing in the pipeline requires it.
26
+ */
27
+ xaiServerLimits?: {
28
+ contextWindow?: number;
29
+ maxCompletionTokens?: number;
30
+ };
21
31
  }
22
32
  /**
23
33
  * Stream chunk for real-time UI updates
@@ -1 +1 @@
1
- {"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/orchestrator/APIClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/orchestrator/APIClient.ts"],"names":[],"mappings":"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"}
@@ -481,6 +481,17 @@ export class APIClient {
481
481
  if (request.conversationId) {
482
482
  headers['x-grok-conv-id'] = request.conversationId;
483
483
  }
484
+ // grok-build parity (2026-08-01, operator-approved): per-request id for
485
+ // server-side tracing/dedup — mirrors grok-build's GrokRequestHeaders
486
+ // (x-grok-req-id alongside x-grok-conv-id). Additive; request content,
487
+ // thinking round-trip, and cache keying are untouched.
488
+ headers['x-grok-req-id'] = uuidv4();
489
+ // Opt-in server-side doom-loop detection (grok-build sampler parity).
490
+ // OFF by default; when XAI_DOOM_LOOP_CHECK=true the server may flag
491
+ // reasoning loops (e.g. tail_repetition triggers) which we surface below.
492
+ if (process.env.XAI_DOOM_LOOP_CHECK === 'true') {
493
+ headers['x-grok-doom-loop-check'] = 'true';
494
+ }
484
495
  const httpResponse = await fetch(modelConfig.api.endpoint, {
485
496
  method: 'POST',
486
497
  headers,
@@ -491,6 +502,25 @@ export class APIClient {
491
502
  throw new Error(`XAI Messages API error (${httpResponse.status}): ${errorText}`);
492
503
  }
493
504
  const data = await httpResponse.json();
505
+ // grok-build parity: xAI advertises the effective serving limits on
506
+ // response headers; parse and surface (informational, additive).
507
+ const xaiCtxHeader = httpResponse.headers.get('x-grok-context-window');
508
+ const xaiMaxOutHeader = httpResponse.headers.get('x-grok-max-completion-tokens');
509
+ const xaiServerLimits = (xaiCtxHeader || xaiMaxOutHeader)
510
+ ? {
511
+ ...(xaiCtxHeader && Number.isFinite(Number(xaiCtxHeader)) ? { contextWindow: Number(xaiCtxHeader) } : {}),
512
+ ...(xaiMaxOutHeader && Number.isFinite(Number(xaiMaxOutHeader)) ? { maxCompletionTokens: Number(xaiMaxOutHeader) } : {}),
513
+ }
514
+ : undefined;
515
+ if (xaiServerLimits && process.env.DEBUG === 'true') {
516
+ console.log(`[APIClient XAI] Server-advertised limits: ${JSON.stringify(xaiServerLimits)}`);
517
+ }
518
+ // Opt-in doom-loop detection surface: if the server flagged a reasoning
519
+ // loop on this terminal response, warn loudly. Pass-through only — the
520
+ // response content is not modified and normal parsing proceeds.
521
+ if (data?.doom_loop_check) {
522
+ console.warn(`[APIClient XAI] Server doom-loop check flagged: ${JSON.stringify(data.doom_loop_check).slice(0, 300)}`);
523
+ }
494
524
  // Post-process: extract <thinking> tags from text content into separate thinking blocks
495
525
  // grok-4-1-fast-reasoning embeds thinking in text as <thinking>...</thinking> tags
496
526
  if (data.content && Array.isArray(data.content)) {
@@ -499,7 +529,8 @@ export class APIClient {
499
529
  return {
500
530
  data,
501
531
  status: httpResponse.status,
502
- headers: Object.fromEntries(httpResponse.headers.entries())
532
+ headers: Object.fromEntries(httpResponse.headers.entries()),
533
+ ...(xaiServerLimits && { xaiServerLimits })
503
534
  };
504
535
  }
505
536
  /**
@@ -894,6 +925,15 @@ export class APIClient {
894
925
  // Deferred until we can investigate: possibly needs to be paired with
895
926
  // different content-block wiring in ResponsesAPIAdapter, or only applied
896
927
  // when we've explicitly asked for reasoning via the `reasoning` param.
928
+ //
929
+ // 2026-08-01 root-cause analysis (grok-build comparison): that include is
930
+ // half of the STATELESS ZDR state model (store:false + full-input replay
931
+ // of the encrypted blobs, grok-build's default) and must never be mixed
932
+ // with the server-stored chaining we run here (store:true +
933
+ // previous_response_id + input slicing) — the regression above is the
934
+ // empirical proof. Full design + implementation recipe for a proper
935
+ // opt-in ZDR mode: "DESIGN NOTE — stateless ZDR mode" in
936
+ // ResponsesAPIAdapter.ts (adapters/).
897
937
  }
898
938
  // Set extracted system context as instructions (enables provider-side caching)
899
939
  // XAI does NOT support the `instructions` parameter — skip for XAI provider.
@@ -934,12 +974,22 @@ export class APIClient {
934
974
  // Bearer auth — standard Responses API transport auth.
935
975
  // OpenAI's own Responses API still uses the SDK (R20-proven, unaffected).
936
976
  if (isXAI) {
977
+ // grok-build parity (2026-08-02): x-grok-req-id (per-request trace/dedup)
978
+ // + opt-in doom-loop check on the Responses path too — the Messages path
979
+ // already carries these. conv-id sticky routing is handled on Responses
980
+ // via the `prompt_cache_key` body field (set above), so no conv-id header
981
+ // here. Additive; body / reasoning round-trip untouched.
982
+ const xaiRespHeaders = {
983
+ 'Content-Type': 'application/json',
984
+ 'Authorization': `Bearer ${apiKey}`,
985
+ 'x-grok-req-id': uuidv4(),
986
+ };
987
+ if (process.env.XAI_DOOM_LOOP_CHECK === 'true') {
988
+ xaiRespHeaders['x-grok-doom-loop-check'] = 'true';
989
+ }
937
990
  const httpResponse = await fetch(modelConfig.api.endpoint, {
938
991
  method: 'POST',
939
- headers: {
940
- 'Content-Type': 'application/json',
941
- 'Authorization': `Bearer ${apiKey}`,
942
- },
992
+ headers: xaiRespHeaders,
943
993
  body: JSON.stringify(responsesRequest),
944
994
  });
945
995
  if (!httpResponse.ok) {
@@ -1482,6 +1532,16 @@ export class APIClient {
1482
1532
  if (request.conversationId) {
1483
1533
  xaiDefaultHeaders['x-grok-conv-id'] = request.conversationId;
1484
1534
  }
1535
+ // grok-build parity (2026-08-01, operator-approved): per-request id +
1536
+ // opt-in server-side doom-loop detection header, mirroring the
1537
+ // non-streaming path. Additive headers only — the SDK stream event
1538
+ // handling below is untouched. NOTE: server doom_loop_check SSE events
1539
+ // are NOT consumable on this path (the Anthropic SDK drops unknown
1540
+ // event names); detection surfacing is non-streaming only for now.
1541
+ xaiDefaultHeaders['x-grok-req-id'] = uuidv4();
1542
+ if (process.env.XAI_DOOM_LOOP_CHECK === 'true') {
1543
+ xaiDefaultHeaders['x-grok-doom-loop-check'] = 'true';
1544
+ }
1485
1545
  const xaiClient = new Anthropic({
1486
1546
  apiKey,
1487
1547
  baseURL: modelConfig.api.endpoint.replace('/v1/messages', ''), // Strip path, keep base
@@ -1955,7 +2015,20 @@ export class APIClient {
1955
2015
  // Import OpenAI SDK dynamically — set baseURL from model config endpoint
1956
2016
  const OpenAI = (await import('openai')).default;
1957
2017
  const streamBaseURL = modelConfig.api.endpoint.replace(/\/(messages|responses)$/, '');
1958
- const client = new OpenAI({ apiKey, baseURL: streamBaseURL });
2018
+ // grok-build parity (2026-08-02): x-grok-req-id + opt-in doom-loop check
2019
+ // on the streaming Responses path (SDK carries them via defaultHeaders).
2020
+ // conv-id sticky routing rides prompt_cache_key in the body (set above).
2021
+ const xaiRespStreamHeaders = isXAI
2022
+ ? {
2023
+ 'x-grok-req-id': uuidv4(),
2024
+ ...(process.env.XAI_DOOM_LOOP_CHECK === 'true' ? { 'x-grok-doom-loop-check': 'true' } : {}),
2025
+ }
2026
+ : {};
2027
+ const client = new OpenAI({
2028
+ apiKey,
2029
+ baseURL: streamBaseURL,
2030
+ ...(Object.keys(xaiRespStreamHeaders).length > 0 && { defaultHeaders: xaiRespStreamHeaders }),
2031
+ });
1959
2032
  // Create streaming request
1960
2033
  // Use modelConfig.modelId if available (for alias models like gpt-5.1-reasoning -> gpt-5.1)
1961
2034
  const actualModelId = modelConfig.modelId || request.modelId;
@@ -1975,6 +2048,8 @@ export class APIClient {
1975
2048
  // `prompt_cache_key` routes same-session requests to same server for cache hits.
1976
2049
  // NOTE: `include: ["reasoning.encrypted_content"]` triggered empty-output regression —
1977
2050
  // see sendResponsesAPI comment for details. Not sending it for now.
2051
+ // It belongs to the stateless-ZDR state model, not to chaining: full
2052
+ // recipe in "DESIGN NOTE — stateless ZDR mode" (ResponsesAPIAdapter.ts).
1978
2053
  if (isXAI) {
1979
2054
  responsesRequest.store = true;
1980
2055
  if (request.conversationId) {