@nexus-cortex/core 4.46.0 → 4.47.3

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 (95) hide show
  1. package/dist/adapters/ChatCompletionsAPIAdapter.d.ts.map +1 -1
  2. package/dist/adapters/ChatCompletionsAPIAdapter.js +3 -1
  3. package/dist/adapters/ChatCompletionsAPIAdapter.js.map +1 -1
  4. package/dist/adapters/GatewayTranslationLayer.d.ts.map +1 -1
  5. package/dist/adapters/GatewayTranslationLayer.js +11 -6
  6. package/dist/adapters/GatewayTranslationLayer.js.map +1 -1
  7. package/dist/config/RuntimeConfigRegistry.d.ts.map +1 -1
  8. package/dist/config/RuntimeConfigRegistry.js +1 -0
  9. package/dist/config/RuntimeConfigRegistry.js.map +1 -1
  10. package/dist/config/SettingsLoader.d.ts.map +1 -1
  11. package/dist/config/SettingsLoader.js +1 -0
  12. package/dist/config/SettingsLoader.js.map +1 -1
  13. package/dist/config/SettingsSchema.d.ts +3 -0
  14. package/dist/config/SettingsSchema.d.ts.map +1 -1
  15. package/dist/config/SettingsSchema.js +9 -0
  16. package/dist/config/SettingsSchema.js.map +1 -1
  17. package/dist/models/cards/huggingface/hf-router.d.ts +19 -0
  18. package/dist/models/cards/huggingface/hf-router.d.ts.map +1 -0
  19. package/dist/models/cards/huggingface/hf-router.js +33 -0
  20. package/dist/models/cards/huggingface/hf-router.js.map +1 -0
  21. package/dist/models/cards/huggingface/hf-space-models.d.ts +22 -0
  22. package/dist/models/cards/huggingface/hf-space-models.d.ts.map +1 -0
  23. package/dist/models/cards/huggingface/hf-space-models.js +56 -0
  24. package/dist/models/cards/huggingface/hf-space-models.js.map +1 -0
  25. package/dist/models/cards/huggingface/hf-space.d.ts +11 -0
  26. package/dist/models/cards/huggingface/hf-space.d.ts.map +1 -0
  27. package/dist/models/cards/huggingface/hf-space.js +27 -0
  28. package/dist/models/cards/huggingface/hf-space.js.map +1 -0
  29. package/dist/models/cards/huggingface/index.d.ts +3 -2
  30. package/dist/models/cards/huggingface/index.d.ts.map +1 -1
  31. package/dist/models/cards/huggingface/index.js +5 -2
  32. package/dist/models/cards/huggingface/index.js.map +1 -1
  33. package/dist/models/cards/local/index.d.ts +1 -0
  34. package/dist/models/cards/local/index.d.ts.map +1 -1
  35. package/dist/models/cards/local/index.js +2 -0
  36. package/dist/models/cards/local/index.js.map +1 -1
  37. package/dist/models/cards/local/local-openai.d.ts +17 -0
  38. package/dist/models/cards/local/local-openai.d.ts.map +1 -0
  39. package/dist/models/cards/local/local-openai.js +33 -0
  40. package/dist/models/cards/local/local-openai.js.map +1 -0
  41. package/dist/models/cards/xai/grok-4-5.d.ts +13 -0
  42. package/dist/models/cards/xai/grok-4-5.d.ts.map +1 -0
  43. package/dist/models/cards/xai/grok-4-5.js +25 -0
  44. package/dist/models/cards/xai/grok-4-5.js.map +1 -0
  45. package/dist/models/cards/xai/index.d.ts +1 -0
  46. package/dist/models/cards/xai/index.d.ts.map +1 -1
  47. package/dist/models/cards/xai/index.js +1 -0
  48. package/dist/models/cards/xai/index.js.map +1 -1
  49. package/dist/models/configurators/HFSpaceConfigurator.d.ts +42 -0
  50. package/dist/models/configurators/HFSpaceConfigurator.d.ts.map +1 -0
  51. package/dist/models/configurators/HFSpaceConfigurator.js +71 -0
  52. package/dist/models/configurators/HFSpaceConfigurator.js.map +1 -0
  53. package/dist/models/configurators/HuggingFaceConfigurator.d.ts +7 -7
  54. package/dist/models/configurators/HuggingFaceConfigurator.d.ts.map +1 -1
  55. package/dist/models/configurators/HuggingFaceConfigurator.js +13 -6
  56. package/dist/models/configurators/HuggingFaceConfigurator.js.map +1 -1
  57. package/dist/models/configurators/LocalModelConfigurator.d.ts +7 -0
  58. package/dist/models/configurators/LocalModelConfigurator.d.ts.map +1 -1
  59. package/dist/models/configurators/LocalModelConfigurator.js +11 -1
  60. package/dist/models/configurators/LocalModelConfigurator.js.map +1 -1
  61. package/dist/models/configurators/QwenConfigurator.d.ts +0 -4
  62. package/dist/models/configurators/QwenConfigurator.d.ts.map +1 -1
  63. package/dist/models/configurators/QwenConfigurator.js +6 -7
  64. package/dist/models/configurators/QwenConfigurator.js.map +1 -1
  65. package/dist/models/hfSpace/normalize.d.ts +34 -0
  66. package/dist/models/hfSpace/normalize.d.ts.map +1 -0
  67. package/dist/models/hfSpace/normalize.js +195 -0
  68. package/dist/models/hfSpace/normalize.js.map +1 -0
  69. package/dist/models/registry/ModularModelRegistry.d.ts.map +1 -1
  70. package/dist/models/registry/ModularModelRegistry.js +17 -1
  71. package/dist/models/registry/ModularModelRegistry.js.map +1 -1
  72. package/dist/orchestrator/APIClient.d.ts +18 -0
  73. package/dist/orchestrator/APIClient.d.ts.map +1 -1
  74. package/dist/orchestrator/APIClient.js +101 -0
  75. package/dist/orchestrator/APIClient.js.map +1 -1
  76. package/dist/system-messages/SystemMessageLoader.d.ts +13 -0
  77. package/dist/system-messages/SystemMessageLoader.d.ts.map +1 -1
  78. package/dist/system-messages/SystemMessageLoader.js +30 -2
  79. package/dist/system-messages/SystemMessageLoader.js.map +1 -1
  80. package/dist/system-messages/memoryArchive.d.ts +28 -0
  81. package/dist/system-messages/memoryArchive.d.ts.map +1 -0
  82. package/dist/system-messages/memoryArchive.js +125 -0
  83. package/dist/system-messages/memoryArchive.js.map +1 -0
  84. package/dist/tools/ServerSideTools.d.ts.map +1 -1
  85. package/dist/tools/ServerSideTools.js +9 -0
  86. package/dist/tools/ServerSideTools.js.map +1 -1
  87. package/package.json +4 -3
  88. package/dist/models/cards/huggingface/llama-3-8b-instruct.d.ts +0 -17
  89. package/dist/models/cards/huggingface/llama-3-8b-instruct.d.ts.map +0 -1
  90. package/dist/models/cards/huggingface/llama-3-8b-instruct.js +0 -25
  91. package/dist/models/cards/huggingface/llama-3-8b-instruct.js.map +0 -1
  92. package/dist/models/cards/huggingface/mistral-7b-instruct.d.ts +0 -10
  93. package/dist/models/cards/huggingface/mistral-7b-instruct.d.ts.map +0 -1
  94. package/dist/models/cards/huggingface/mistral-7b-instruct.js +0 -18
  95. package/dist/models/cards/huggingface/mistral-7b-instruct.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LocalModelConfigurator.js","sourceRoot":"","sources":["../../../src/models/configurators/LocalModelConfigurator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAwBH,MAAM,UAAU,sBAAsB,CAAC,OAA0B;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,2CAA2C,CAAC;IACjF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;IAE7C,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QAEtB,GAAG,EAAE;YACH,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,eAAe;YAC3B,UAAU,EAAE,QAAQ;SACrB;QAED,KAAK,EAAE;YACL,SAAS,EAAE,aAAa;YACxB,OAAO,EAAE,2BAA2B;YACpC,gBAAgB,EAAE,YAAY;YAC9B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,iBAAiB,EAAE,aAAa;SACjC;QAED,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,aAAa;gBACxB,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;YACD,SAAS,EAAE;gBACT,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,OAAO,CAAC,YAAY;aAC1B;YACD,IAAI,EAAE;gBACJ,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,GAAG;gBACZ,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;SACF;QAED,MAAM,EAAE;YACN,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,iBAAiB,EAAE,IAAI,EAAG,2BAA2B;YACrD,eAAe,EAAE,OAAO,CAAE,2BAA2B;SACtD;QAED,SAAS,EAAE;YACT,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,KAAK;SACd;QAED,UAAU,EAAE;YACV,QAAQ,EAAE,MAAM;YAChB,oBAAoB,EAAE;gBACpB,MAAM,EAAE,YAAY;gBACpB,UAAU,EAAE,GAAG;gBACf,YAAY,EAAE,IAAI;aACnB;YACD,QAAQ,EAAE;gBACR,cAAc,EAAE,EAAE;gBAClB,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,KAAK,CAAE,oCAAoC;aAC5D;SACF;QAED,IAAI,EAAE;YACJ,eAAe,EAAE,GAAG,EAAI,yBAAyB;YACjD,gBAAgB,EAAE,GAAG,CAAG,yBAAyB;SAClD;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"LocalModelConfigurator.js","sourceRoot":"","sources":["../../../src/models/configurators/LocalModelConfigurator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgCH,MAAM,UAAU,sBAAsB,CAAC,OAA0B;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,2CAA2C,CAAC;IACjF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;IAE7C,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QAEtB,GAAG,EAAE;YACH,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,eAAe;YAC3B,UAAU,EAAE,QAAQ;SACrB;QAED,KAAK,EAAE;YACL,SAAS,EAAE,aAAa;YACxB,OAAO,EAAE,2BAA2B;YACpC,gBAAgB,EAAE,YAAY;YAC9B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,iBAAiB,EAAE,aAAa;SACjC;QAED,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,aAAa;gBACxB,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;YACD,SAAS,EAAE;gBACT,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,OAAO,CAAC,YAAY;aAC1B;YACD,IAAI,EAAE;gBACJ,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,GAAG;gBACZ,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;SACF;QAED,MAAM,EAAE;YACN,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,iBAAiB,EAAE,IAAI,EAAG,2BAA2B;YACrD,eAAe,EAAE,OAAO,CAAE,2BAA2B;SACtD;QAED,SAAS,EAAE;YACT,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,KAAK;SACd;QAED,UAAU,EAAE;YACV,QAAQ,EAAE,MAAM;YAChB,oBAAoB,EAAE;gBACpB,MAAM,EAAE,YAAY;gBACpB,UAAU,EAAE,GAAG;gBACf,YAAY,EAAE,IAAI;aACnB;YACD,QAAQ,EAAE;gBACR,cAAc,EAAE,EAAE;gBAClB,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,KAAK,CAAE,oCAAoC;aAC5D;SACF;QAED,IAAI,EAAE;YACJ,eAAe,EAAE,GAAG,EAAI,yBAAyB;YACjD,gBAAgB,EAAE,GAAG,CAAG,yBAAyB;SAClD;QAED,6EAA6E;QAC7E,2EAA2E;QAC3E,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI;YAC/B,SAAS,EAAE;gBACT,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,mBAAmB;gBAC3B,gBAAgB,EAAE,gBAAgB;gBAClC,OAAO,EAAE,aAAa;aACvB;SACF,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -17,10 +17,6 @@ export interface QwenModelOptions {
17
17
  outputCost: number;
18
18
  supportsTools?: boolean;
19
19
  supportsVision?: boolean;
20
- /**
21
- * Use Hugging Face endpoint instead of DashScope
22
- */
23
- useHuggingFace?: boolean;
24
20
  }
25
21
  export declare function createQwenModelConfig(options: QwenModelOptions): ModelConfig;
26
22
  //# sourceMappingURL=QwenConfigurator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QwenConfigurator.d.ts","sourceRoot":"","sources":["../../../src/models/configurators/QwenConfigurator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW,CAuF5E"}
1
+ {"version":3,"file":"QwenConfigurator.d.ts","sourceRoot":"","sources":["../../../src/models/configurators/QwenConfigurator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW,CAsF5E"}
@@ -8,11 +8,10 @@
8
8
  */
9
9
  export function createQwenModelConfig(options) {
10
10
  const supportsTools = options.supportsTools !== undefined ? options.supportsTools : true;
11
- // DashScope API endpoint (default) or can use Hugging Face
12
- const endpoint = options.useHuggingFace
13
- ? `https://api-inference.huggingface.co/models/Qwen/${options.id}`
14
- : 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation';
15
- const apiKeyEnvVar = options.useHuggingFace ? 'HUGGINGFACE_API_KEY' : 'DASHSCOPE_API_KEY';
11
+ // DashScope (Alibaba Cloud) endpoint. For Qwen via Hugging Face, use the generic
12
+ // hf-router card (HF_MODEL_ID) instead — HF serving is handled there, not here.
13
+ const endpoint = 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation';
14
+ const apiKeyEnvVar = 'DASHSCOPE_API_KEY';
16
15
  return {
17
16
  id: options.id,
18
17
  provider: 'qwen',
@@ -22,8 +21,8 @@ export function createQwenModelConfig(options) {
22
21
  pattern: 'chat/completions', // OpenAI-compatible format
23
22
  endpoint: endpoint,
24
23
  apiKeyEnvVar: apiKeyEnvVar,
25
- authHeader: options.useHuggingFace ? 'Authorization' : 'Authorization',
26
- authPrefix: options.useHuggingFace ? 'Bearer' : 'Bearer'
24
+ authHeader: 'Authorization',
25
+ authPrefix: 'Bearer'
27
26
  },
28
27
  tools: {
29
28
  supported: supportsTools,
@@ -1 +1 @@
1
- {"version":3,"file":"QwenConfigurator.js","sourceRoot":"","sources":["../../../src/models/configurators/QwenConfigurator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqBH,MAAM,UAAU,qBAAqB,CAAC,OAAyB;IAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzF,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc;QACrC,CAAC,CAAC,oDAAoD,OAAO,CAAC,EAAE,EAAE;QAClE,CAAC,CAAC,gFAAgF,CAAC;IAErF,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAE1F,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QAEtB,GAAG,EAAE;YACH,OAAO,EAAE,kBAAkB,EAAG,2BAA2B;YACzD,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;YACtE,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;SACzD;QAED,KAAK,EAAE;YACL,SAAS,EAAE,aAAa;YACxB,OAAO,EAAE,2BAA2B;YACpC,gBAAgB,EAAE,YAAY;YAC9B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,iBAAiB,EAAE,aAAa;SACjC;QAED,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,aAAa;gBACxB,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;YACD,SAAS,EAAE;gBACT,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,OAAO,CAAC,YAAY;aAC1B;YACD,IAAI,EAAE;gBACJ,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,GAAG;gBACZ,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;SACF;QAED,MAAM,EAAE;YACN,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,MAAM;SACxB;QAED,SAAS,EAAE;YACT,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,KAAK;SACd;QAED,UAAU,EAAE;YACV,QAAQ,EAAE,MAAM;YAChB,oBAAoB,EAAE;gBACpB,MAAM,EAAE,YAAY;gBACpB,UAAU,EAAE,GAAG;gBACf,YAAY,EAAE,IAAI;aACnB;YACD,QAAQ,EAAE;gBACR,cAAc,EAAE,EAAE;gBAClB,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,aAAa;gBAC7B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aACxD;SACF;QAED,IAAI,EAAE;YACJ,eAAe,EAAE,OAAO,CAAC,SAAS;YAClC,gBAAgB,EAAE,OAAO,CAAC,UAAU;SACrC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"QwenConfigurator.js","sourceRoot":"","sources":["../../../src/models/configurators/QwenConfigurator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,MAAM,UAAU,qBAAqB,CAAC,OAAyB;IAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzF,iFAAiF;IACjF,gFAAgF;IAChF,MAAM,QAAQ,GAAG,gFAAgF,CAAC;IAElG,MAAM,YAAY,GAAG,mBAAmB,CAAC;IAEzC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QAEtB,GAAG,EAAE;YACH,OAAO,EAAE,kBAAkB,EAAG,2BAA2B;YACzD,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,eAAe;YAC3B,UAAU,EAAE,QAAQ;SACrB;QAED,KAAK,EAAE;YACL,SAAS,EAAE,aAAa;YACxB,OAAO,EAAE,2BAA2B;YACpC,gBAAgB,EAAE,YAAY;YAC9B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,iBAAiB,EAAE,aAAa;SACjC;QAED,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,aAAa;gBACxB,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;YACD,SAAS,EAAE;gBACT,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,OAAO,CAAC,YAAY;aAC1B;YACD,IAAI,EAAE;gBACJ,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,GAAG;gBACZ,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG;aACT;SACF;QAED,MAAM,EAAE;YACN,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,MAAM;SACxB;QAED,SAAS,EAAE;YACT,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,KAAK;SACd;QAED,UAAU,EAAE;YACV,QAAQ,EAAE,MAAM;YAChB,oBAAoB,EAAE;gBACpB,MAAM,EAAE,YAAY;gBACpB,UAAU,EAAE,GAAG;gBACf,YAAY,EAAE,IAAI;aACnB;YACD,QAAQ,EAAE;gBACR,cAAc,EAAE,EAAE;gBAClB,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,aAAa;gBAC7B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aACxD;SACF;QAED,IAAI,EAAE;YACJ,eAAe,EAAE,OAAO,CAAC,SAAS;YAClC,gBAAgB,EAAE,OAAO,CAAC,UAAU;SACrC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * HF Gradio Space output normalizer.
3
+ *
4
+ * A Gradio-space model returns ONE blob of raw text containing the model's NATIVE
5
+ * chain-of-thought (`<think>…</think>`) and tool-call syntax. Different model families
6
+ * emit different tool-call formats; this module converts any of them into the canonical
7
+ * OpenAI shape (`reasoning_content` + `tool_calls[]`) so the rest of the harness — which
8
+ * is provider-agnostic — treats an hf-space model like any chat/completions model.
9
+ *
10
+ * Scoped to the hf-space provider ONLY. Real OpenAI/DeepSeek/etc. responses are already
11
+ * structured and must NOT go through this (they'd be corrupted).
12
+ *
13
+ * (TypeScript port of the bench `toolparse.py`.)
14
+ */
15
+ export interface HFToolCall {
16
+ id: string;
17
+ type: 'function';
18
+ function: {
19
+ name: string;
20
+ arguments: string;
21
+ };
22
+ }
23
+ export interface ParsedHFCompletion {
24
+ reasoning: string;
25
+ content: string;
26
+ toolCalls: HFToolCall[];
27
+ }
28
+ export declare function parseHFCompletion(raw: string): ParsedHFCompletion;
29
+ /** OpenAI sends assistant tool_calls[].function.arguments as a JSON STRING, but HF chat
30
+ * templates call .items() on it (expect a mapping). Parse them to objects before send.
31
+ * Also coerce content: null -> "" — templates that concatenate content raw
32
+ * (Phi-4-mini) crash on None, and pure tool-call assistant turns carry null. */
33
+ export declare function normalizeToolCallArguments(messages: any[]): any[];
34
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/models/hfSpace/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAkFD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CA2EjE;AAED;;;iFAGiF;AACjF,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAUjE"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * HF Gradio Space output normalizer.
3
+ *
4
+ * A Gradio-space model returns ONE blob of raw text containing the model's NATIVE
5
+ * chain-of-thought (`<think>…</think>`) and tool-call syntax. Different model families
6
+ * emit different tool-call formats; this module converts any of them into the canonical
7
+ * OpenAI shape (`reasoning_content` + `tool_calls[]`) so the rest of the harness — which
8
+ * is provider-agnostic — treats an hf-space model like any chat/completions model.
9
+ *
10
+ * Scoped to the hf-space provider ONLY. Real OpenAI/DeepSeek/etc. responses are already
11
+ * structured and must NOT go through this (they'd be corrupted).
12
+ *
13
+ * (TypeScript port of the bench `toolparse.py`.)
14
+ */
15
+ import { randomUUID } from 'crypto';
16
+ const END_TOKENS = ['<|im_end|>', '<|end|>', '<|eot_id|>', '<|endoftext|>', '</s>'];
17
+ function mkCall(name, args) {
18
+ return {
19
+ id: 'call_' + randomUUID().replace(/-/g, '').slice(0, 24),
20
+ type: 'function',
21
+ function: {
22
+ name,
23
+ arguments: typeof args === 'string' ? args : JSON.stringify(args ?? {}),
24
+ },
25
+ };
26
+ }
27
+ function stripEndTokens(s) {
28
+ for (const t of END_TOKENS)
29
+ s = s.split(t).join('');
30
+ return s.trim();
31
+ }
32
+ /** Qwen enable_thinking=True puts the opening <think> in the PROMPT, so output has the
33
+ * closing </think> only. Split at the first </think>: before = reasoning, after = rest.
34
+ * Families that emit BOTH tags (SmolLM3) can also overrun max_tokens mid-thought,
35
+ * leaving an opening <think> with no close — treat that whole tail as reasoning
36
+ * rather than leaking raw think-text into content. */
37
+ function extractReasoning(s) {
38
+ const idx = s.indexOf('</think>');
39
+ if (idx === -1) {
40
+ const open = s.indexOf('<think>');
41
+ if (open !== -1) {
42
+ return {
43
+ reasoning: s.slice(open + '<think>'.length).trim(),
44
+ rest: s.slice(0, open).trim(),
45
+ };
46
+ }
47
+ return { reasoning: '', rest: s };
48
+ }
49
+ const reasoning = s.slice(0, idx).replace(/<think>/g, '').trim();
50
+ const rest = s.slice(idx + '</think>'.length).trim();
51
+ return { reasoning, rest };
52
+ }
53
+ /** LFM2.5 pythonic: `[get_weather(city="Paris"), other(x=1)]` → [{name, arguments}]. */
54
+ function parsePythonic(seg) {
55
+ const out = [];
56
+ const callRe = /([A-Za-z_]\w*)\s*\(([^)]*)\)/g;
57
+ let m;
58
+ while ((m = callRe.exec(seg))) {
59
+ const name = m[1];
60
+ const argstr = m[2];
61
+ const args = {};
62
+ const argRe = /([A-Za-z_]\w*)\s*=\s*("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|true|false|-?\d+\.?\d*)/g;
63
+ let a;
64
+ while ((a = argRe.exec(argstr))) {
65
+ const k = a[1];
66
+ let v = a[2];
67
+ if ((v.startsWith('"') && v.endsWith('"')) || (v.startsWith("'") && v.endsWith("'"))) {
68
+ args[k] = v.slice(1, -1);
69
+ }
70
+ else if (v === 'true' || v === 'false')
71
+ args[k] = v === 'true';
72
+ else
73
+ args[k] = Number(v);
74
+ }
75
+ out.push({ name, arguments: args });
76
+ }
77
+ return out;
78
+ }
79
+ /** Qwen3.5 XML: `<function=name><parameter=k>v</parameter></function>`. */
80
+ function parseXml(body) {
81
+ const out = [];
82
+ const funcRe = /<function=([^>]+)>([\s\S]*?)<\/function>/g;
83
+ let m;
84
+ while ((m = funcRe.exec(body))) {
85
+ const name = m[1].trim();
86
+ const args = {};
87
+ const paramRe = /<parameter=([^>]+)>\s*([\s\S]*?)\s*<\/parameter>/g;
88
+ let p;
89
+ while ((p = paramRe.exec(m[2])))
90
+ args[p[1].trim()] = p[2].trim();
91
+ out.push({ name, arguments: args });
92
+ }
93
+ return out;
94
+ }
95
+ export function parseHFCompletion(raw) {
96
+ raw = raw.replace(/^\[MODEL=[^\]]*\]\s*/, '');
97
+ const { reasoning, rest } = extractReasoning(raw);
98
+ raw = rest;
99
+ // 1. LFM2.5 pythonic
100
+ const lfmRe = /<\|tool_call_start\|>([\s\S]*?)<\|tool_call_end\|>/g;
101
+ const lfmSegs = [];
102
+ let lm;
103
+ while ((lm = lfmRe.exec(raw)))
104
+ lfmSegs.push(lm[1]);
105
+ if (lfmSegs.length) {
106
+ const tc = lfmSegs.flatMap(parsePythonic).map((o) => mkCall(o.name, o.arguments));
107
+ if (tc.length)
108
+ return { reasoning, content: stripEndTokens(raw.replace(lfmRe, '')), toolCalls: tc };
109
+ }
110
+ const body = stripEndTokens(raw);
111
+ // 2. Qwen3.5 XML
112
+ if (body.includes('<function=')) {
113
+ const tc = parseXml(body).map((o) => mkCall(o.name, o.arguments));
114
+ if (tc.length) {
115
+ const content = body.replace(/<tool_call>[\s\S]*?<\/tool_call>/g, '').trim();
116
+ return { reasoning, content, toolCalls: tc };
117
+ }
118
+ }
119
+ // 3. Hermes JSON <tool_call>{...}</tool_call>
120
+ const tc = [];
121
+ const jsonRe = /<tool_call>\s*(\{[\s\S]*?\})\s*<\/tool_call>/g;
122
+ let jm;
123
+ while ((jm = jsonRe.exec(body))) {
124
+ try {
125
+ const o = JSON.parse(jm[1]);
126
+ tc.push(mkCall(o.name, o.arguments ?? o.parameters));
127
+ }
128
+ catch { /* skip */ }
129
+ }
130
+ let content = body.replace(jsonRe, '').trim();
131
+ // 3b. Phi-4-mini token-wrapped array: <|tool_call|>[{...}]<|/tool_call|>
132
+ // (with the tools block rendered, Phi wraps its JSON array in these special
133
+ // tokens rather than emitting it bare; closing token may be truncated away)
134
+ if (!tc.length) {
135
+ const phiRe = /<\|tool_call\|>\s*(\[[\s\S]*?\])\s*(?:<\|\/tool_call\|>)?/g;
136
+ let pm;
137
+ while ((pm = phiRe.exec(content))) {
138
+ try {
139
+ const arr = JSON.parse(pm[1]);
140
+ if (Array.isArray(arr)) {
141
+ for (const o of arr) {
142
+ if (o && typeof o === 'object' && 'name' in o)
143
+ tc.push(mkCall(o.name, o.arguments ?? o.parameters));
144
+ }
145
+ }
146
+ }
147
+ catch { /* skip */ }
148
+ }
149
+ if (tc.length)
150
+ content = content.replace(phiRe, '').replace(/<\|\/?tool_call\|>/g, '').trim();
151
+ }
152
+ // 4. bare JSON array / object (Phi-4-mini)
153
+ if (!tc.length && content.startsWith('[') && content.includes('"name"')) {
154
+ try {
155
+ const arr = JSON.parse(content);
156
+ if (Array.isArray(arr) && arr.every((o) => o && typeof o === 'object' && 'name' in o)) {
157
+ for (const o of arr)
158
+ tc.push(mkCall(o.name, o.arguments ?? o.parameters));
159
+ content = '';
160
+ }
161
+ }
162
+ catch { /* skip */ }
163
+ }
164
+ if (!tc.length && content.startsWith('{') && content.includes('"name"')) {
165
+ try {
166
+ const o = JSON.parse(content);
167
+ if (o && typeof o === 'object' && 'name' in o) {
168
+ tc.push(mkCall(o.name, o.arguments ?? o.parameters));
169
+ content = '';
170
+ }
171
+ }
172
+ catch { /* skip */ }
173
+ }
174
+ return { reasoning, content, toolCalls: tc };
175
+ }
176
+ /** OpenAI sends assistant tool_calls[].function.arguments as a JSON STRING, but HF chat
177
+ * templates call .items() on it (expect a mapping). Parse them to objects before send.
178
+ * Also coerce content: null -> "" — templates that concatenate content raw
179
+ * (Phi-4-mini) crash on None, and pure tool-call assistant turns carry null. */
180
+ export function normalizeToolCallArguments(messages) {
181
+ for (const m of messages || []) {
182
+ if (m && m.content === null)
183
+ m.content = '';
184
+ for (const tc of (m?.tool_calls || [])) {
185
+ if (tc?.function && typeof tc.function.arguments === 'string') {
186
+ try {
187
+ tc.function.arguments = JSON.parse(tc.function.arguments);
188
+ }
189
+ catch { /* leave */ }
190
+ }
191
+ }
192
+ }
193
+ return messages;
194
+ }
195
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/models/hfSpace/normalize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModularModelRegistry.d.ts","sourceRoot":"","sources":["../../../src/models/registry/ModularModelRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAiB9E,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;CAC1C;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,OAAO,CAA8B;gBAEjC,OAAO,GAAE,2BAAgC;IAKrD;;OAEG;IACH,OAAO,CAAC,cAAc;IA8JtB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIvC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAgBtC;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAMpD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE;IAMhD;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAuB7C;;;OAGG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAiB/C;;;OAGG;IACH,YAAY,IAAI,WAAW,EAAE;CAG9B"}
1
+ {"version":3,"file":"ModularModelRegistry.d.ts","sourceRoot":"","sources":["../../../src/models/registry/ModularModelRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAmB9E,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;CAC1C;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,OAAO,CAA8B;gBAEjC,OAAO,GAAE,2BAAgC;IAKrD;;OAEG;IACH,OAAO,CAAC,cAAc;IA6KtB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIvC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAgBtC;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAMpD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE;IAMhD;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAuB7C;;;OAGG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAiB/C;;;OAGG;IACH,YAAY,IAAI,WAAW,EAAE;CAG9B"}
@@ -27,6 +27,8 @@ import * as moonshotModels from '../cards/moonshot/index.js';
27
27
  import * as minimaxModels from '../cards/minimax/index.js';
28
28
  import * as cloudflareModels from '../cards/cloudflare/index.js';
29
29
  import * as mercuryModels from '../cards/mercury/index.js';
30
+ import * as localModels from '../cards/local/index.js';
31
+ import * as huggingfaceModels from '../cards/huggingface/index.js';
30
32
  /**
31
33
  * Modular Model Registry
32
34
  *
@@ -44,8 +46,11 @@ export class ModularModelRegistry {
44
46
  */
45
47
  loadModelCards() {
46
48
  // All models from modular cards (100% coverage)
49
+ const hfRouterCard = huggingfaceModels.hfRouter; // ModelConfig | null (set via HF_MODEL_ID)
50
+ const hfSpaceCard = huggingfaceModels.hfSpace; // ModelConfig | null (set via HF_SPACE_ID)
47
51
  const allModelCards = [
48
52
  // XAI models
53
+ xaiModels.grok45,
49
54
  xaiModels.grok43,
50
55
  xaiModels.grok420Reasoning,
51
56
  xaiModels.grok420NonReasoning,
@@ -154,7 +159,18 @@ export class ModularModelRegistry {
154
159
  cloudflareModels.cfDeepseekR1Distill32b,
155
160
  // Mercury (Inception Labs) — diffusion LLM, OpenAI-compatible.
156
161
  // Direct API serves only mercury-2 (verified 2026-06-07).
157
- mercuryModels.mercury2
162
+ mercuryModels.mercury2,
163
+ // Local / self-hosted inference for the harness or helper model.
164
+ // Point LOCAL_MODEL_ENDPOINT at an OpenAI-compatible server; select via
165
+ // DEFAULT_MODEL_ID=local or HELPER_MODEL_ID=local.
166
+ localModels.localOpenAI,
167
+ // HF Inference Providers — only registers when HF_MODEL_ID is set (a served repo id).
168
+ ...(hfRouterCard ? [hfRouterCard] : []),
169
+ // HF Gradio Space (native hf-space transport) — registers when HF_SPACE_ID is set.
170
+ ...(hfSpaceCard ? [hfSpaceCard] : []),
171
+ // Per-model Space cards — each registers via HF_SPACE_ID_<SLUG>, or all via
172
+ // HF_SPACE_CANDIDATES=true + shared HF_SPACE_ID (swap the Space's MODEL_ID).
173
+ ...huggingfaceModels.hfSpaceModelCards,
158
174
  ];
159
175
  // Apply user filter if provided
160
176
  const filteredModels = this.options.filter
@@ -1 +1 @@
1
- {"version":3,"file":"ModularModelRegistry.js","sourceRoot":"","sources":["../../../src/models/registry/ModularModelRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModularModelRegistry.js","sourceRoot":"","sources":["../../../src/models/registry/ModularModelRegistry.ts"],"names":[],"mappings":"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"}
@@ -111,6 +111,13 @@ export declare class APIClient {
111
111
  * @returns Streaming response with chunks and final message
112
112
  */
113
113
  streamRequest(request: PreparedRequest, modelConfig: ModelConfig): StreamingResponse;
114
+ /**
115
+ * Emulate streaming for blocking transports (hf-space): run the normal
116
+ * non-streaming request, then emit its content as a single-pass chunk
117
+ * stream. Callers get the same StreamingResponse contract — text arrives
118
+ * in one delta rather than incrementally.
119
+ */
120
+ private streamViaNonStreaming;
114
121
  /**
115
122
  * Send request using Messages API pattern
116
123
  *
@@ -175,6 +182,17 @@ export declare class APIClient {
175
182
  * Format: OpenAI Chat Completions API
176
183
  */
177
184
  private sendChatCompletionsAPI;
185
+ /**
186
+ * Send request to a HuggingFace Gradio Space (provider 'hf-space').
187
+ *
188
+ * The model is served by a Gradio app exposing a `/run(messages_json, tools_json,
189
+ * max_tokens, temperature)` API. We reuse the chat/completions request builder to get
190
+ * OpenAI-shaped messages+tools, call the space via @gradio/client, then normalize the
191
+ * raw model text back into an OpenAI chat.completion object so ALL downstream
192
+ * canonicalization (tool_calls, reasoning_content) is reused unchanged. Non-streaming
193
+ * (the Gradio predict() call is blocking).
194
+ */
195
+ private sendHFSpaceAPI;
178
196
  /**
179
197
  * Extract <system-reminder> content from Responses API input items.
180
198
  *
@@ -1 +1 @@
1
- {"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/orchestrator/APIClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAqB5D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,IAAI,EAAE,GAAG,CAAC;IAEV,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,IAAI,EAAE,YAAY,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,eAAe,GAAG,eAAe,GAAG,cAAc,GAAG,mBAAmB,GAAG,aAAa,GAAG,gBAAgB,GAAG,OAAO,GAAG,cAAc,CAAC;IAEnO,qCAAqC;IACrC,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,wDAAwD;IACxD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAE3B,+CAA+C;IAC/C,UAAU,CAAC,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;KAChB,CAAC;IAEF,2CAA2C;IAC3C,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAEnD,yDAAyD;IACzD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;CAC5B;AAED;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,iBAAiB,CAAC,CAAc;;IAMxC;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;IA6BlC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;;;;;;;;;OAUG;IACG,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IA4C3F;;;;;;;;;OASG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,GAAG,iBAAiB;IAgCpF;;;;;OAKG;YACW,eAAe;IAmB7B;;;;;;;OAOG;YACW,wBAAwB;IAoHtC;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAmCjC;;OAEG;YACW,kBAAkB;IAyHhC;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IAgDrC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,2BAA2B;IAkGnC;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAqCjC;;;;;OAKG;YACW,sBAAsB;IAoBpC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qCAAqC;IAuD7C;;;;;OAKG;YACW,gBAAgB;IAuJ9B;;;;;OAKG;YACW,sBAAsB;IAgDpC;;;OAGG;YACW,uBAAuB;IAgErC;;;;;;OAMG;YACW,sBAAsB;IA+CpC;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA0pBzB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IA2LhC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAiU1B;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IA6DhC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAgPjC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyDxB;;;OAGG;YACW,aAAa;IA6E3B;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;CA2SxB"}
1
+ {"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/orchestrator/APIClient.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import OpenAI from 'openai';
13
13
  import { GoogleGenerativeAI } from '@google/generative-ai';
14
14
  import { GoogleGenAI } from '@google/genai';
15
15
  import { v4 as uuidv4 } from 'uuid';
16
+ import { parseHFCompletion, normalizeToolCallArguments } from '../models/hfSpace/normalize.js';
16
17
  import { anthropicCredentialService, CredentialError } from '../config/AnthropicCredentialService.js';
17
18
  /**
18
19
  * Anthropic families on the adaptive-thinking-only request surface — sending
@@ -141,6 +142,10 @@ export class APIClient {
141
142
  case 'chat/completions':
142
143
  // OpenAI Chat Completions API (used by OpenAI, XAI, DeepSeek, Groq)
143
144
  return this.sendChatCompletionsAPI(request, modelConfig);
145
+ case 'hf-space':
146
+ // HuggingFace Gradio Space (model served via a Gradio app, called through
147
+ // @gradio/client; raw output normalized to the OpenAI shape in-process).
148
+ return this.sendHFSpaceAPI(request, modelConfig);
144
149
  case 'responses':
145
150
  // OpenAI Responses API (used by OpenAI gpt-5-codex, XAI stateful)
146
151
  return this.sendResponsesAPI(request, modelConfig);
@@ -184,6 +189,10 @@ export class APIClient {
184
189
  return this.streamGenerateContentAPI(request, modelConfig);
185
190
  case 'google-genai':
186
191
  throw new Error('Streaming not supported for google-genai pattern');
192
+ case 'hf-space':
193
+ // Gradio predict() is blocking — emulate a stream so agent/streaming
194
+ // callers work against hf-space models (one text chunk + completion).
195
+ return this.streamViaNonStreaming(request, modelConfig);
187
196
  case 'google-sdk':
188
197
  // Google SDK with full tool support (experimental)
189
198
  return this.streamGoogleSDK(request, modelConfig);
@@ -191,6 +200,29 @@ export class APIClient {
191
200
  throw new Error(`Unsupported API pattern for streaming: ${apiPattern}`);
192
201
  }
193
202
  }
203
+ /**
204
+ * Emulate streaming for blocking transports (hf-space): run the normal
205
+ * non-streaming request, then emit its content as a single-pass chunk
206
+ * stream. Callers get the same StreamingResponse contract — text arrives
207
+ * in one delta rather than incrementally.
208
+ */
209
+ streamViaNonStreaming(request, modelConfig) {
210
+ const responsePromise = this.sendRequest(request, modelConfig);
211
+ const finalMessage = responsePromise.then((resp) => resp.data);
212
+ async function* chunks() {
213
+ const data = await finalMessage;
214
+ const message = data?.choices?.[0]?.message ?? {};
215
+ yield { type: 'message_start', data };
216
+ if (message.content) {
217
+ yield { type: 'text_delta', delta: message.content, snapshot: message.content };
218
+ }
219
+ for (const tc of message.tool_calls ?? []) {
220
+ yield { type: 'tool_use_complete', data: tc };
221
+ }
222
+ yield { type: 'message_stop', data };
223
+ }
224
+ return { chunks: chunks(), finalMessage };
225
+ }
194
226
  /**
195
227
  * Send request using Messages API pattern
196
228
  *
@@ -666,6 +698,75 @@ export class APIClient {
666
698
  headers: {}
667
699
  };
668
700
  }
701
+ /**
702
+ * Send request to a HuggingFace Gradio Space (provider 'hf-space').
703
+ *
704
+ * The model is served by a Gradio app exposing a `/run(messages_json, tools_json,
705
+ * max_tokens, temperature)` API. We reuse the chat/completions request builder to get
706
+ * OpenAI-shaped messages+tools, call the space via @gradio/client, then normalize the
707
+ * raw model text back into an OpenAI chat.completion object so ALL downstream
708
+ * canonicalization (tool_calls, reasoning_content) is reused unchanged. Non-streaming
709
+ * (the Gradio predict() call is blocking).
710
+ */
711
+ async sendHFSpaceAPI(request, modelConfig) {
712
+ const { chatRequest } = this.buildChatCompletionsRequest(request, modelConfig, { stream: false });
713
+ const messages = normalizeToolCallArguments(chatRequest.messages || []);
714
+ const tools = chatRequest.tools;
715
+ const maxTokens = chatRequest.max_tokens ?? chatRequest.max_completion_tokens ?? 512;
716
+ // A card-declared default temperature WINS over the request's inherited value:
717
+ // format-fragile tool callers (Phi-4-mini) only emit clean calls near-greedy.
718
+ const cardTemp = modelConfig.parameters?.temperature?.default;
719
+ const temperature = cardTemp ?? chatRequest.temperature ?? 0.7;
720
+ const spaceId = modelConfig.api.endpoint; // e.g. "user/space-name"
721
+ const hfToken = process.env[modelConfig.api.apiKeyEnvVar] || process.env.HF_TOKEN;
722
+ const { Client } = await import('@gradio/client');
723
+ let result;
724
+ try {
725
+ const app = await Client.connect(spaceId, hfToken ? { hf_token: hfToken } : undefined);
726
+ result = await app.predict('/run', [
727
+ JSON.stringify(messages),
728
+ tools ? JSON.stringify(tools) : '',
729
+ maxTokens,
730
+ temperature,
731
+ ]);
732
+ }
733
+ catch (e) {
734
+ const detail = e?.message ?? (typeof e === 'object' ? JSON.stringify(e) : String(e));
735
+ console.error(`[hf-space] gradio call failed: ${detail}`);
736
+ throw new Error(`hf-space (${spaceId}) call failed: ${detail}`);
737
+ }
738
+ const raw = Array.isArray(result?.data) ? result.data[0] : result?.data;
739
+ // Guard against a mislabeled arm: the template Space prefixes output with
740
+ // [MODEL=<repo>]. If this card pins an expected repo and the Space reports a
741
+ // different one, fail loudly instead of silently answering with the wrong model.
742
+ const expectedModel = modelConfig.metadata?.hfSpaceExpectedModel;
743
+ if (expectedModel) {
744
+ const served = /^\[MODEL=([^\]]+)\]/.exec(String(raw ?? ''))?.[1];
745
+ if (served && served !== expectedModel) {
746
+ throw new Error(`hf-space (${spaceId}) is serving ${served} but model card '${modelConfig.id}' expects ${expectedModel}. ` +
747
+ `Point HF_SPACE_ID_* at the right Space or swap the Space's MODEL_ID variable.`);
748
+ }
749
+ }
750
+ const parsed = parseHFCompletion(String(raw ?? ''));
751
+ const message = { role: 'assistant', content: parsed.content || null };
752
+ if (parsed.reasoning)
753
+ message.reasoning_content = parsed.reasoning;
754
+ if (parsed.toolCalls.length)
755
+ message.tool_calls = parsed.toolCalls;
756
+ const data = {
757
+ id: 'chatcmpl-' + Date.now().toString(36),
758
+ object: 'chat.completion',
759
+ created: Math.floor(Date.now() / 1000),
760
+ model: modelConfig.id,
761
+ choices: [{
762
+ index: 0,
763
+ message,
764
+ finish_reason: parsed.toolCalls.length ? 'tool_calls' : 'stop',
765
+ }],
766
+ usage: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 },
767
+ };
768
+ return { data, status: 200, headers: {} };
769
+ }
669
770
  /**
670
771
  * Extract <system-reminder> content from Responses API input items.
671
772
  *