@nexus-cortex/core 4.51.0 → 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 (117) hide show
  1. package/dist/adapters/ChatCompletionsAPIAdapter.d.ts.map +1 -1
  2. package/dist/adapters/ChatCompletionsAPIAdapter.js +16 -0
  3. package/dist/adapters/ChatCompletionsAPIAdapter.js.map +1 -1
  4. package/dist/adapters/FormatAdapter.interface.d.ts +4 -4
  5. package/dist/adapters/FormatAdapter.interface.js +4 -4
  6. package/dist/adapters/GatewayTranslationLayer.d.ts +9 -0
  7. package/dist/adapters/GatewayTranslationLayer.d.ts.map +1 -1
  8. package/dist/adapters/GatewayTranslationLayer.js +24 -1
  9. package/dist/adapters/GatewayTranslationLayer.js.map +1 -1
  10. package/dist/adapters/ResponsesAPIAdapter.d.ts +66 -0
  11. package/dist/adapters/ResponsesAPIAdapter.d.ts.map +1 -1
  12. package/dist/adapters/ResponsesAPIAdapter.js +66 -0
  13. package/dist/adapters/ResponsesAPIAdapter.js.map +1 -1
  14. package/dist/adapters/ToolNamingHandler.d.ts +4 -4
  15. package/dist/adapters/ToolNamingHandler.js +4 -4
  16. package/dist/adapters/servedModelDrift.d.ts +44 -0
  17. package/dist/adapters/servedModelDrift.d.ts.map +1 -0
  18. package/dist/adapters/servedModelDrift.js +0 -0
  19. package/dist/adapters/servedModelDrift.js.map +1 -0
  20. package/dist/agents/AgentStore.d.ts.map +1 -1
  21. package/dist/agents/AgentStore.js +5 -2
  22. package/dist/agents/AgentStore.js.map +1 -1
  23. package/dist/config/RuntimeConfigRegistry.d.ts.map +1 -1
  24. package/dist/config/RuntimeConfigRegistry.js +1 -0
  25. package/dist/config/RuntimeConfigRegistry.js.map +1 -1
  26. package/dist/config/SettingsLoader.js +1 -1
  27. package/dist/config/SettingsLoader.js.map +1 -1
  28. package/dist/config/SettingsSchema.d.ts +2 -2
  29. package/dist/config/SettingsSchema.d.ts.map +1 -1
  30. package/dist/config/SettingsSchema.js +13 -8
  31. package/dist/config/SettingsSchema.js.map +1 -1
  32. package/dist/conversation/ContextBudgetManager.d.ts.map +1 -1
  33. package/dist/conversation/ContextBudgetManager.js +4 -2
  34. package/dist/conversation/ContextBudgetManager.js.map +1 -1
  35. package/dist/conversation/ToolResultPruner.d.ts +45 -0
  36. package/dist/conversation/ToolResultPruner.d.ts.map +1 -0
  37. package/dist/conversation/ToolResultPruner.js +94 -0
  38. package/dist/conversation/ToolResultPruner.js.map +1 -0
  39. package/dist/middleware/ErrorClassificationMiddleware.d.ts +19 -0
  40. package/dist/middleware/ErrorClassificationMiddleware.d.ts.map +1 -1
  41. package/dist/middleware/ErrorClassificationMiddleware.js +55 -1
  42. package/dist/middleware/ErrorClassificationMiddleware.js.map +1 -1
  43. package/dist/middleware/PermissionsMiddleware.d.ts +2 -2
  44. package/dist/middleware/PermissionsMiddleware.js +2 -2
  45. package/dist/middleware/RetryMiddleware.d.ts.map +1 -1
  46. package/dist/middleware/RetryMiddleware.js +8 -2
  47. package/dist/middleware/RetryMiddleware.js.map +1 -1
  48. package/dist/middleware/contracts/MiddlewareContracts.d.ts +4 -0
  49. package/dist/middleware/contracts/MiddlewareContracts.d.ts.map +1 -1
  50. package/dist/middleware/permissions/BashCommandPolicy.d.ts +2 -2
  51. package/dist/middleware/permissions/BashCommandPolicy.js +2 -2
  52. package/dist/middleware/permissions/BlacklistPolicy.d.ts +1 -1
  53. package/dist/middleware/permissions/BlacklistPolicy.js +1 -1
  54. package/dist/middleware/permissions/FileOperationPolicy.d.ts +2 -2
  55. package/dist/middleware/permissions/FileOperationPolicy.js +2 -2
  56. package/dist/middleware/permissions/PermissionAuditLogger.d.ts +1 -1
  57. package/dist/middleware/permissions/PermissionAuditLogger.js +1 -1
  58. package/dist/middleware/permissions/PermissionConfig.js +2 -2
  59. package/dist/middleware/permissions/PermissionConfig.js.map +1 -1
  60. package/dist/middleware/permissions/PermissionEvaluator.d.ts +2 -2
  61. package/dist/middleware/permissions/PermissionEvaluator.js +2 -2
  62. package/dist/middleware/permissions/WhitelistPolicy.d.ts +2 -2
  63. package/dist/middleware/permissions/WhitelistPolicy.js +2 -2
  64. package/dist/middleware/permissions/WorkspaceBoundaryPolicy.d.ts.map +1 -1
  65. package/dist/middleware/permissions/WorkspaceBoundaryPolicy.js +2 -3
  66. package/dist/middleware/permissions/WorkspaceBoundaryPolicy.js.map +1 -1
  67. package/dist/models/ModelConfig.interface.js +1 -1
  68. package/dist/orchestrator/APIClient.d.ts +10 -0
  69. package/dist/orchestrator/APIClient.d.ts.map +1 -1
  70. package/dist/orchestrator/APIClient.js +81 -6
  71. package/dist/orchestrator/APIClient.js.map +1 -1
  72. package/dist/orchestrator/CortexOrchestrator.d.ts +30 -0
  73. package/dist/orchestrator/CortexOrchestrator.d.ts.map +1 -1
  74. package/dist/orchestrator/CortexOrchestrator.js +256 -36
  75. package/dist/orchestrator/CortexOrchestrator.js.map +1 -1
  76. package/dist/orchestrator/OrchestratorFactory.js +1 -1
  77. package/dist/orchestrator/OrchestratorFactory.js.map +1 -1
  78. package/dist/orchestrator/SubAgentPermissionChecker.d.ts.map +1 -1
  79. package/dist/orchestrator/SubAgentPermissionChecker.js +13 -2
  80. package/dist/orchestrator/SubAgentPermissionChecker.js.map +1 -1
  81. package/dist/orchestrator/apiErrorClassifier.d.ts.map +1 -1
  82. package/dist/orchestrator/apiErrorClassifier.js +8 -1
  83. package/dist/orchestrator/apiErrorClassifier.js.map +1 -1
  84. package/dist/orchestrator/emptyResponseClassifier.d.ts +29 -0
  85. package/dist/orchestrator/emptyResponseClassifier.d.ts.map +1 -0
  86. package/dist/orchestrator/emptyResponseClassifier.js +42 -0
  87. package/dist/orchestrator/emptyResponseClassifier.js.map +1 -0
  88. package/dist/orchestrator/index.d.ts +1 -0
  89. package/dist/orchestrator/index.d.ts.map +1 -1
  90. package/dist/orchestrator/index.js +3 -0
  91. package/dist/orchestrator/index.js.map +1 -1
  92. package/dist/orchestrator/structuredOutput.d.ts +144 -0
  93. package/dist/orchestrator/structuredOutput.d.ts.map +1 -0
  94. package/dist/orchestrator/structuredOutput.js +230 -0
  95. package/dist/orchestrator/structuredOutput.js.map +1 -0
  96. package/dist/orchestrator/tailRepetitionDetector.d.ts +57 -0
  97. package/dist/orchestrator/tailRepetitionDetector.d.ts.map +1 -0
  98. package/dist/orchestrator/tailRepetitionDetector.js +98 -0
  99. package/dist/orchestrator/tailRepetitionDetector.js.map +1 -0
  100. package/dist/system-messages/SystemReminderInjector.d.ts +3 -3
  101. package/dist/system-messages/SystemReminderInjector.d.ts.map +1 -1
  102. package/dist/system-messages/SystemReminderInjector.js +4 -4
  103. package/dist/system-messages/SystemReminderInjector.js.map +1 -1
  104. package/dist/system-messages/messages/EXAMPLES.md +18 -18
  105. package/dist/system-messages/messages/SYSTEM_PROMPT.md +15 -13
  106. package/dist/system-messages/messages/TASK_AGENT_GUIDE.md +2 -2
  107. package/dist/system-messages/messages/TOOL_USAGE_GUIDE.md +43 -42
  108. package/dist/system-messages/messages/WORK_QUALITY.md +12 -10
  109. package/dist/tools/ToolFactory.d.ts.map +1 -1
  110. package/dist/tools/ToolFactory.js +3 -1
  111. package/dist/tools/ToolFactory.js.map +1 -1
  112. package/dist/tools/context-management/InitCortexContext.js +1 -1
  113. package/dist/tools/context-management/InitCortexContext.js.map +1 -1
  114. package/dist/tools/mcp-management/InitMcpConfig.js +1 -1
  115. package/dist/tools/registries/BaseToolRegistry.js +45 -45
  116. package/dist/tools/registries/BaseToolRegistry.js.map +1 -1
  117. package/package.json +4 -3
@@ -14,10 +14,10 @@ import { BasePermissionPolicy, PolicyPriority } from './PermissionPolicy.js';
14
14
  *
15
15
  * @example
16
16
  * ```typescript
17
- * const policy = new WhitelistPolicy(['read_file', 'write_file', 'execute_bash']);
17
+ * const policy = new WhitelistPolicy(['Read', 'Write', 'Bash']);
18
18
  *
19
19
  * await policy.evaluate({
20
- * toolName: 'read_file',
20
+ * toolName: 'Read',
21
21
  * toolInput: {},
22
22
  * sessionId: '123',
23
23
  * timestamp: new Date()
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceBoundaryPolicy.d.ts","sourceRoot":"","sources":["../../../src/middleware/permissions/WorkspaceBoundaryPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AA2B7D,qBAAa,uBAAwB,SAAQ,oBAAoB;IAC/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC;;;OAGG;gBACS,YAAY,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,MAA0B,EAAE,OAAO,GAAE,OAAc;IAK3F,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsBvE,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"WorkspaceBoundaryPolicy.d.ts","sourceRoot":"","sources":["../../../src/middleware/permissions/WorkspaceBoundaryPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AA0B7D,qBAAa,uBAAwB,SAAQ,oBAAoB;IAC/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC;;;OAGG;gBACS,YAAY,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,MAA0B,EAAE,OAAO,GAAE,OAAc;IAK3F,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsBvE,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;CAUvB"}
@@ -31,14 +31,13 @@ const PATH_FIELD_BY_TOOL = {
31
31
  Read: ['file_path', 'path'],
32
32
  Write: ['file_path', 'path'],
33
33
  Edit: ['file_path', 'path'],
34
- MultiEdit: ['file_path', 'path'],
34
+ NotebookEdit: ['notebook_path', 'file_path', 'path'],
35
35
  WriteBinary: ['file_path', 'path'],
36
36
  Glob: ['path'],
37
37
  Grep: ['path'],
38
- // Shell/Bash: only the explicit working-directory param is gated here. The
38
+ // Bash: only the explicit working-directory param is gated here. The
39
39
  // command string itself is the BashCommandPolicy's concern, not this one.
40
40
  Bash: ['directory'],
41
- Shell: ['directory'],
42
41
  };
43
42
  export class WorkspaceBoundaryPolicy extends BasePermissionPolicy {
44
43
  roots;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceBoundaryPolicy.js","sourceRoot":"","sources":["../../../src/middleware/permissions/WorkspaceBoundaryPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspaceBoundaryPolicy.js","sourceRoot":"","sources":["../../../src/middleware/permissions/WorkspaceBoundaryPolicy.ts"],"names":[],"mappings":"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"}
@@ -77,7 +77,7 @@ export const EXAMPLE_MODEL_CONFIGS = {
77
77
  tools: {
78
78
  supported: true,
79
79
  adapter: 'ChatCompletionsAPIAdapter',
80
- namingConvention: 'PascalCase',
80
+ namingConvention: 'snake_case',
81
81
  maxTools: 128,
82
82
  parallelToolCalls: true,
83
83
  supportsToolChoice: true,
@@ -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) {