@zerowidth/workbench-sdk 2.2.0 → 2.4.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 (752) hide show
  1. package/README.md +27 -3
  2. package/nodes/anthropic-claude-3-5-haiku/anthropic-claude-3-5-haiku.config.json +8 -0
  3. package/nodes/anthropic-claude-3-haiku/anthropic-claude-3-haiku.config.json +8 -0
  4. package/nodes/anthropic-claude-fable-5/anthropic-claude-fable-5.config.json +172 -0
  5. package/nodes/anthropic-claude-fable-5/anthropic-claude-fable-5.process.js +138 -0
  6. package/nodes/anthropic-claude-fable-5-1/anthropic-claude-fable-5-1.config.json +172 -0
  7. package/nodes/anthropic-claude-fable-5-1/anthropic-claude-fable-5-1.process.js +138 -0
  8. package/nodes/anthropic-claude-haiku-4-5/anthropic-claude-haiku-4-5.config.json +1 -0
  9. package/nodes/anthropic-claude-opus-4/anthropic-claude-opus-4.config.json +8 -0
  10. package/nodes/anthropic-claude-opus-4-1/anthropic-claude-opus-4-1.config.json +0 -9
  11. package/nodes/anthropic-claude-opus-4-1/anthropic-claude-opus-4-1.process.js +1 -1
  12. package/nodes/anthropic-claude-opus-4-5/anthropic-claude-opus-4-5.config.json +1 -0
  13. package/nodes/anthropic-claude-opus-4-6/anthropic-claude-opus-4-6.config.json +1 -0
  14. package/nodes/anthropic-claude-opus-4-6-fast/anthropic-claude-opus-4-6-fast.config.json +8 -0
  15. package/nodes/anthropic-claude-opus-4-7/anthropic-claude-opus-4-7.config.json +2 -0
  16. package/nodes/anthropic-claude-opus-4-7-fast/anthropic-claude-opus-4-7-fast.config.json +8 -0
  17. package/nodes/anthropic-claude-opus-4-8/anthropic-claude-opus-4-8.config.json +10 -0
  18. package/nodes/anthropic-claude-opus-4-8/anthropic-claude-opus-4-8.process.js +1 -1
  19. package/nodes/anthropic-claude-opus-4-8-fast/anthropic-claude-opus-4-8-fast.config.json +8 -0
  20. package/nodes/anthropic-claude-opus-5/anthropic-claude-opus-5.config.json +180 -0
  21. package/nodes/anthropic-claude-opus-5/anthropic-claude-opus-5.process.js +138 -0
  22. package/nodes/anthropic-claude-opus-5-5/anthropic-claude-opus-5-5.config.json +180 -0
  23. package/nodes/anthropic-claude-opus-5-5/anthropic-claude-opus-5-5.process.js +138 -0
  24. package/nodes/anthropic-claude-sonnet-4/anthropic-claude-sonnet-4.config.json +1 -1
  25. package/nodes/anthropic-claude-sonnet-4-5/anthropic-claude-sonnet-4-5.config.json +1 -0
  26. package/nodes/anthropic-claude-sonnet-4-6/anthropic-claude-sonnet-4-6.config.json +1 -0
  27. package/nodes/anthropic-claude-sonnet-5/anthropic-claude-sonnet-5.config.json +172 -0
  28. package/nodes/anthropic-claude-sonnet-5/anthropic-claude-sonnet-5.process.js +138 -0
  29. package/nodes/anthropic-claude-sonnet-5-5/anthropic-claude-sonnet-5-5.config.json +180 -0
  30. package/nodes/anthropic-claude-sonnet-5-5/anthropic-claude-sonnet-5-5.process.js +138 -0
  31. package/nodes/baai-bge-base-en-v1-5/baai-bge-base-en-v1-5.config.json +1 -1
  32. package/nodes/baai-bge-large-en-v1-5/baai-bge-large-en-v1-5.config.json +1 -1
  33. package/nodes/baai-bge-m3/baai-bge-m3.config.json +1 -1
  34. package/nodes/custom-inference/custom-inference.config.json +158 -0
  35. package/nodes/custom-inference/custom-inference.process.js +117 -0
  36. package/nodes/deepseek-deepseek-chat/deepseek-deepseek-chat.config.json +3 -3
  37. package/nodes/deepseek-deepseek-chat-v3-0324/deepseek-deepseek-chat-v3-0324.config.json +24 -2
  38. package/nodes/deepseek-deepseek-chat-v3-0324/deepseek-deepseek-chat-v3-0324.process.js +2 -1
  39. package/nodes/deepseek-deepseek-chat-v3-1/deepseek-deepseek-chat-v3-1.config.json +24 -2
  40. package/nodes/deepseek-deepseek-chat-v3-1/deepseek-deepseek-chat-v3-1.process.js +2 -1
  41. package/nodes/deepseek-deepseek-r1/deepseek-deepseek-r1.config.json +1 -3
  42. package/nodes/deepseek-deepseek-r1-0528/deepseek-deepseek-r1-0528.config.json +22 -0
  43. package/nodes/deepseek-deepseek-r1-0528/deepseek-deepseek-r1-0528.process.js +2 -1
  44. package/nodes/deepseek-deepseek-r1-distill-llama-70b/deepseek-deepseek-r1-distill-llama-70b.config.json +8 -0
  45. package/nodes/deepseek-deepseek-r1-distill-qwen-32b/deepseek-deepseek-r1-distill-qwen-32b.config.json +8 -0
  46. package/nodes/deepseek-deepseek-v3-1-terminus/deepseek-deepseek-v3-1-terminus.config.json +1 -1
  47. package/nodes/deepseek-deepseek-v3-2/deepseek-deepseek-v3-2.config.json +25 -3
  48. package/nodes/deepseek-deepseek-v3-2/deepseek-deepseek-v3-2.process.js +2 -1
  49. package/nodes/deepseek-deepseek-v3-2-exp/deepseek-deepseek-v3-2-exp.config.json +24 -2
  50. package/nodes/deepseek-deepseek-v3-2-exp/deepseek-deepseek-v3-2-exp.process.js +2 -1
  51. package/nodes/deepseek-deepseek-v4-1-flash/deepseek-deepseek-v4-1-flash.config.json +236 -0
  52. package/nodes/deepseek-deepseek-v4-1-flash/deepseek-deepseek-v4-1-flash.process.js +139 -0
  53. package/nodes/deepseek-deepseek-v4-flash/deepseek-deepseek-v4-flash.config.json +6 -3
  54. package/nodes/deepseek-deepseek-v4-flash/deepseek-deepseek-v4-flash.process.js +1 -1
  55. package/nodes/deepseek-deepseek-v4-flash-0731/deepseek-deepseek-v4-flash-0731.config.json +238 -0
  56. package/nodes/deepseek-deepseek-v4-flash-0731/deepseek-deepseek-v4-flash-0731.process.js +139 -0
  57. package/nodes/deepseek-deepseek-v4-flash-vision-exp/deepseek-deepseek-v4-flash-vision-exp.config.json +236 -0
  58. package/nodes/deepseek-deepseek-v4-flash-vision-exp/deepseek-deepseek-v4-flash-vision-exp.process.js +139 -0
  59. package/nodes/deepseek-deepseek-v4-pro/deepseek-deepseek-v4-pro.config.json +5 -3
  60. package/nodes/deepseek-deepseek-v4-pro/deepseek-deepseek-v4-pro.process.js +1 -1
  61. package/nodes/deepseek-deepseek-v4-pro-0813/deepseek-deepseek-v4-pro-0813.config.json +236 -0
  62. package/nodes/deepseek-deepseek-v4-pro-0813/deepseek-deepseek-v4-pro-0813.process.js +139 -0
  63. package/nodes/google-gemini-2-5-flash/google-gemini-2-5-flash.config.json +8 -0
  64. package/nodes/google-gemini-2-5-flash-lite/google-gemini-2-5-flash-lite.config.json +8 -0
  65. package/nodes/google-gemini-2-5-flash-lite-preview-09-2025/google-gemini-2-5-flash-lite-preview-09-2025.config.json +8 -0
  66. package/nodes/google-gemini-2-5-pro/google-gemini-2-5-pro.config.json +8 -0
  67. package/nodes/google-gemini-2-5-pro-preview-05-06/google-gemini-2-5-pro-preview-05-06.config.json +8 -0
  68. package/nodes/google-gemini-3-1-flash-image/google-gemini-3-1-flash-image.config.json +151 -0
  69. package/nodes/google-gemini-3-1-flash-image/google-gemini-3-1-flash-image.process.js +57 -0
  70. package/nodes/google-gemini-3-1-flash-image-preview/google-gemini-3-1-flash-image-preview.config.json +2 -2
  71. package/nodes/google-gemini-3-1-flash-lite/google-gemini-3-1-flash-lite.config.json +1 -0
  72. package/nodes/google-gemini-3-1-flash-lite-image/google-gemini-3-1-flash-lite-image.config.json +150 -0
  73. package/nodes/google-gemini-3-1-flash-lite-image/google-gemini-3-1-flash-lite-image.process.js +57 -0
  74. package/nodes/google-gemini-3-1-flash-lite-preview/google-gemini-3-1-flash-lite-preview.config.json +1 -8
  75. package/nodes/google-gemini-3-1-flash-lite-preview/google-gemini-3-1-flash-lite-preview.process.js +1 -1
  76. package/nodes/google-gemini-3-1-pro-preview/google-gemini-3-1-pro-preview.config.json +1 -0
  77. package/nodes/google-gemini-3-1-pro-preview-customtools/google-gemini-3-1-pro-preview-customtools.config.json +2 -9
  78. package/nodes/google-gemini-3-1-pro-preview-customtools/google-gemini-3-1-pro-preview-customtools.process.js +1 -1
  79. package/nodes/google-gemini-3-5-flash/google-gemini-3-5-flash.config.json +1 -0
  80. package/nodes/google-gemini-3-5-flash-lite/google-gemini-3-5-flash-lite.config.json +194 -0
  81. package/nodes/google-gemini-3-5-flash-lite/google-gemini-3-5-flash-lite.process.js +138 -0
  82. package/nodes/google-gemini-3-6-flash/google-gemini-3-6-flash.config.json +194 -0
  83. package/nodes/google-gemini-3-6-flash/google-gemini-3-6-flash.process.js +138 -0
  84. package/nodes/google-gemini-3-7-flash/google-gemini-3-7-flash.config.json +194 -0
  85. package/nodes/google-gemini-3-7-flash/google-gemini-3-7-flash.process.js +138 -0
  86. package/nodes/google-gemini-3-8-flash/google-gemini-3-8-flash.config.json +194 -0
  87. package/nodes/google-gemini-3-8-flash/google-gemini-3-8-flash.process.js +138 -0
  88. package/nodes/google-gemini-3-flash-preview/google-gemini-3-flash-preview.config.json +1 -0
  89. package/nodes/google-gemini-3-pro-image/google-gemini-3-pro-image.config.json +202 -0
  90. package/nodes/google-gemini-3-pro-image/google-gemini-3-pro-image.process.js +142 -0
  91. package/nodes/google-gemma-3-12b-it/google-gemma-3-12b-it.config.json +2 -2
  92. package/nodes/google-gemma-3-27b-it/google-gemma-3-27b-it.config.json +23 -1
  93. package/nodes/google-gemma-3-27b-it/google-gemma-3-27b-it.process.js +2 -1
  94. package/nodes/google-gemma-3-4b-it/google-gemma-3-4b-it.config.json +2 -2
  95. package/nodes/google-gemma-3n-e4b-it/google-gemma-3n-e4b-it.config.json +8 -0
  96. package/nodes/google-gemma-4-26b-a4b-it/google-gemma-4-26b-a4b-it.config.json +2 -2
  97. package/nodes/google-gemma-4-31b-it/google-gemma-4-31b-it.config.json +2 -2
  98. package/nodes/google-gemma-4-31b-it-free/google-gemma-4-31b-it-free.config.json +0 -8
  99. package/nodes/google-gemma-4-31b-it-free/google-gemma-4-31b-it-free.process.js +1 -1
  100. package/nodes/intfloat-e5-base-v2/intfloat-e5-base-v2.config.json +1 -1
  101. package/nodes/intfloat-e5-large-v2/intfloat-e5-large-v2.config.json +1 -1
  102. package/nodes/intfloat-multilingual-e5-large/intfloat-multilingual-e5-large.config.json +1 -1
  103. package/nodes/jaredpalmer-kev-4b/jaredpalmer-kev-4b.config.json +85 -0
  104. package/nodes/jaredpalmer-kev-4b/jaredpalmer-kev-4b.process.js +33 -0
  105. package/nodes/liquid-lfm-2-24b-a2b/liquid-lfm-2-24b-a2b.config.json +8 -0
  106. package/nodes/liquid-lfm-2-5-1-2b-instruct-free/liquid-lfm-2-5-1-2b-instruct-free.config.json +8 -0
  107. package/nodes/liquid-lfm-2-5-1-2b-thinking-free/liquid-lfm-2-5-1-2b-thinking-free.config.json +8 -0
  108. package/nodes/liquid-lfm-2-5-2-6b-free/liquid-lfm-2-5-2-6b-free.config.json +235 -0
  109. package/nodes/liquid-lfm-2-5-2-6b-free/liquid-lfm-2-5-2-6b-free.process.js +139 -0
  110. package/nodes/liquid-lfm-2-5-embedding-350m-free/liquid-lfm-2-5-embedding-350m-free.config.json +90 -0
  111. package/nodes/liquid-lfm-2-5-embedding-350m-free/liquid-lfm-2-5-embedding-350m-free.process.js +36 -0
  112. package/nodes/mistralai-codestral-2508/mistralai-codestral-2508.config.json +1 -0
  113. package/nodes/mistralai-ministral-14b-2512/mistralai-ministral-14b-2512.config.json +0 -23
  114. package/nodes/mistralai-ministral-14b-2512/mistralai-ministral-14b-2512.process.js +1 -2
  115. package/nodes/mistralai-ministral-3b-2512/mistralai-ministral-3b-2512.config.json +0 -23
  116. package/nodes/mistralai-ministral-3b-2512/mistralai-ministral-3b-2512.process.js +1 -2
  117. package/nodes/mistralai-ministral-8b-2512/mistralai-ministral-8b-2512.config.json +0 -23
  118. package/nodes/mistralai-ministral-8b-2512/mistralai-ministral-8b-2512.process.js +1 -2
  119. package/nodes/mistralai-mistral-medium-3-5/mistralai-mistral-medium-3-5.config.json +1 -0
  120. package/nodes/mistralai-mistral-nemo/mistralai-mistral-nemo.config.json +23 -1
  121. package/nodes/mistralai-mistral-nemo/mistralai-mistral-nemo.process.js +2 -1
  122. package/nodes/mistralai-mistral-small-2603/mistralai-mistral-small-2603.config.json +1 -1
  123. package/nodes/mistralai-mistral-small-3-1-24b-instruct/mistralai-mistral-small-3-1-24b-instruct.config.json +79 -6
  124. package/nodes/mistralai-mistral-small-3-1-24b-instruct/mistralai-mistral-small-3-1-24b-instruct.process.js +90 -4
  125. package/nodes/mistralai-mistral-small-3-2-24b-instruct/mistralai-mistral-small-3-2-24b-instruct.config.json +25 -3
  126. package/nodes/mistralai-mistral-small-3-2-24b-instruct/mistralai-mistral-small-3-2-24b-instruct.process.js +2 -1
  127. package/nodes/mistralai-voxtral-small-24b-2507/mistralai-voxtral-small-24b-2507.config.json +1 -1
  128. package/nodes/nvidia-nemotron-3-embed-1b-free/nvidia-nemotron-3-embed-1b-free.config.json +90 -0
  129. package/nodes/nvidia-nemotron-3-embed-1b-free/nvidia-nemotron-3-embed-1b-free.process.js +36 -0
  130. package/nodes/openai-gpt-4-1106-preview/openai-gpt-4-1106-preview.config.json +8 -0
  131. package/nodes/openai-gpt-4-turbo-preview/openai-gpt-4-turbo-preview.config.json +8 -0
  132. package/nodes/openai-gpt-4o/openai-gpt-4o.config.json +1 -0
  133. package/nodes/openai-gpt-4o-2024-05-13/openai-gpt-4o-2024-05-13.config.json +1 -0
  134. package/nodes/openai-gpt-4o-2024-08-06/openai-gpt-4o-2024-08-06.config.json +1 -0
  135. package/nodes/openai-gpt-4o-2024-11-20/openai-gpt-4o-2024-11-20.config.json +1 -0
  136. package/nodes/openai-gpt-4o-mini/openai-gpt-4o-mini.config.json +1 -0
  137. package/nodes/openai-gpt-4o-mini-2024-07-18/openai-gpt-4o-mini-2024-07-18.config.json +1 -0
  138. package/nodes/openai-gpt-4o-mini-search-preview/openai-gpt-4o-mini-search-preview.config.json +8 -0
  139. package/nodes/openai-gpt-4o-search-preview/openai-gpt-4o-search-preview.config.json +8 -0
  140. package/nodes/openai-gpt-5/openai-gpt-5.config.json +1 -0
  141. package/nodes/openai-gpt-5-1/openai-gpt-5-1.config.json +1 -0
  142. package/nodes/openai-gpt-5-1-chat/openai-gpt-5-1-chat.config.json +8 -0
  143. package/nodes/openai-gpt-5-1-codex/openai-gpt-5-1-codex.config.json +1 -8
  144. package/nodes/openai-gpt-5-1-codex/openai-gpt-5-1-codex.process.js +1 -1
  145. package/nodes/openai-gpt-5-1-codex-max/openai-gpt-5-1-codex-max.config.json +1 -8
  146. package/nodes/openai-gpt-5-1-codex-max/openai-gpt-5-1-codex-max.process.js +1 -1
  147. package/nodes/openai-gpt-5-1-codex-mini/openai-gpt-5-1-codex-mini.config.json +1 -8
  148. package/nodes/openai-gpt-5-1-codex-mini/openai-gpt-5-1-codex-mini.process.js +1 -1
  149. package/nodes/openai-gpt-5-2/openai-gpt-5-2.config.json +1 -0
  150. package/nodes/openai-gpt-5-2-chat/openai-gpt-5-2-chat.config.json +0 -8
  151. package/nodes/openai-gpt-5-2-chat/openai-gpt-5-2-chat.process.js +1 -1
  152. package/nodes/openai-gpt-5-2-codex/openai-gpt-5-2-codex.config.json +1 -8
  153. package/nodes/openai-gpt-5-2-codex/openai-gpt-5-2-codex.process.js +1 -1
  154. package/nodes/openai-gpt-5-2-pro/openai-gpt-5-2-pro.config.json +1 -0
  155. package/nodes/openai-gpt-5-3-chat/openai-gpt-5-3-chat.config.json +8 -0
  156. package/nodes/openai-gpt-5-3-codex/openai-gpt-5-3-codex.config.json +1 -0
  157. package/nodes/openai-gpt-5-4/openai-gpt-5-4.config.json +1 -0
  158. package/nodes/openai-gpt-5-4-image-2/openai-gpt-5-4-image-2.config.json +1 -0
  159. package/nodes/openai-gpt-5-4-mini/openai-gpt-5-4-mini.config.json +1 -0
  160. package/nodes/openai-gpt-5-4-nano/openai-gpt-5-4-nano.config.json +1 -0
  161. package/nodes/openai-gpt-5-4-pro/openai-gpt-5-4-pro.config.json +1 -0
  162. package/nodes/openai-gpt-5-5/openai-gpt-5-5.config.json +1 -0
  163. package/nodes/openai-gpt-5-5-pro/openai-gpt-5-5-pro.config.json +1 -0
  164. package/nodes/openai-gpt-5-6-luna/openai-gpt-5-6-luna.config.json +171 -0
  165. package/nodes/openai-gpt-5-6-luna/openai-gpt-5-6-luna.process.js +138 -0
  166. package/nodes/openai-gpt-5-6-luna-pro/openai-gpt-5-6-luna-pro.config.json +171 -0
  167. package/nodes/openai-gpt-5-6-luna-pro/openai-gpt-5-6-luna-pro.process.js +138 -0
  168. package/nodes/openai-gpt-5-6-sol/openai-gpt-5-6-sol.config.json +171 -0
  169. package/nodes/openai-gpt-5-6-sol/openai-gpt-5-6-sol.process.js +138 -0
  170. package/nodes/openai-gpt-5-6-sol-pro/openai-gpt-5-6-sol-pro.config.json +171 -0
  171. package/nodes/openai-gpt-5-6-sol-pro/openai-gpt-5-6-sol-pro.process.js +138 -0
  172. package/nodes/openai-gpt-5-6-terra/openai-gpt-5-6-terra.config.json +171 -0
  173. package/nodes/openai-gpt-5-6-terra/openai-gpt-5-6-terra.process.js +138 -0
  174. package/nodes/openai-gpt-5-6-terra-pro/openai-gpt-5-6-terra-pro.config.json +171 -0
  175. package/nodes/openai-gpt-5-6-terra-pro/openai-gpt-5-6-terra-pro.process.js +138 -0
  176. package/nodes/openai-gpt-5-chat/openai-gpt-5-chat.config.json +8 -0
  177. package/nodes/openai-gpt-5-codex/openai-gpt-5-codex.config.json +8 -0
  178. package/nodes/openai-gpt-5-mini/openai-gpt-5-mini.config.json +1 -0
  179. package/nodes/openai-gpt-5-nano/openai-gpt-5-nano.config.json +1 -0
  180. package/nodes/openai-gpt-5-pro/openai-gpt-5-pro.config.json +1 -0
  181. package/nodes/openai-gpt-6-astra/openai-gpt-6-astra.config.json +171 -0
  182. package/nodes/openai-gpt-6-astra/openai-gpt-6-astra.process.js +138 -0
  183. package/nodes/openai-gpt-6-astra-pro/openai-gpt-6-astra-pro.config.json +171 -0
  184. package/nodes/openai-gpt-6-astra-pro/openai-gpt-6-astra-pro.process.js +138 -0
  185. package/nodes/openai-gpt-6-luna/openai-gpt-6-luna.config.json +171 -0
  186. package/nodes/openai-gpt-6-luna/openai-gpt-6-luna.process.js +138 -0
  187. package/nodes/openai-gpt-6-luna-pro/openai-gpt-6-luna-pro.config.json +171 -0
  188. package/nodes/openai-gpt-6-luna-pro/openai-gpt-6-luna-pro.process.js +138 -0
  189. package/nodes/openai-gpt-6-sol/openai-gpt-6-sol.config.json +171 -0
  190. package/nodes/openai-gpt-6-sol/openai-gpt-6-sol.process.js +138 -0
  191. package/nodes/openai-gpt-6-sol-pro/openai-gpt-6-sol-pro.config.json +171 -0
  192. package/nodes/openai-gpt-6-sol-pro/openai-gpt-6-sol-pro.process.js +138 -0
  193. package/nodes/openai-gpt-chat-latest/openai-gpt-chat-latest.config.json +1 -48
  194. package/nodes/openai-gpt-chat-latest/openai-gpt-chat-latest.process.js +1 -2
  195. package/nodes/openai-gpt-oss-120b/openai-gpt-oss-120b.config.json +4 -2
  196. package/nodes/openai-gpt-oss-120b-free/openai-gpt-oss-120b-free.config.json +8 -0
  197. package/nodes/openai-gpt-oss-20b/openai-gpt-oss-20b.config.json +3 -2
  198. package/nodes/openai-gpt-oss-20b-free/openai-gpt-oss-20b-free.config.json +8 -0
  199. package/nodes/openai-gpt-oss-safeguard-20b/openai-gpt-oss-safeguard-20b.config.json +1 -0
  200. package/nodes/openai-o3-deep-research/openai-o3-deep-research.config.json +8 -0
  201. package/nodes/openai-o3-mini-high/openai-o3-mini-high.config.json +1 -0
  202. package/nodes/openai-o4-mini-deep-research/openai-o4-mini-deep-research.config.json +8 -0
  203. package/nodes/openai-o4-mini-high/openai-o4-mini-high.config.json +1 -0
  204. package/nodes/qwen-qwen-2-5-72b-instruct/qwen-qwen-2-5-72b-instruct.config.json +1 -1
  205. package/nodes/qwen-qwen-2-5-7b-instruct/qwen-qwen-2-5-7b-instruct.config.json +36 -5
  206. package/nodes/qwen-qwen-2-5-7b-instruct/qwen-qwen-2-5-7b-instruct.process.js +1 -1
  207. package/nodes/qwen-qwen-2-5-coder-32b-instruct/qwen-qwen-2-5-coder-32b-instruct.config.json +9 -1
  208. package/nodes/qwen-qwen-2-5-coder-32b-instruct/qwen-qwen-2-5-coder-32b-instruct.process.js +1 -1
  209. package/nodes/qwen-qwen-plus/qwen-qwen-plus.config.json +40 -0
  210. package/nodes/qwen-qwen-plus/qwen-qwen-plus.process.js +2 -1
  211. package/nodes/qwen-qwen-plus-2025-07-28/qwen-qwen-plus-2025-07-28.config.json +47 -0
  212. package/nodes/qwen-qwen-plus-2025-07-28/qwen-qwen-plus-2025-07-28.process.js +2 -1
  213. package/nodes/qwen-qwen-plus-2025-07-28-thinking/qwen-qwen-plus-2025-07-28-thinking.config.json +8 -0
  214. package/nodes/qwen-qwen2-5-vl-72b-instruct/qwen-qwen2-5-vl-72b-instruct.config.json +25 -3
  215. package/nodes/qwen-qwen2-5-vl-72b-instruct/qwen-qwen2-5-vl-72b-instruct.process.js +2 -1
  216. package/nodes/qwen-qwen3-14b/qwen-qwen3-14b.config.json +2 -2
  217. package/nodes/qwen-qwen3-235b-a22b/qwen-qwen3-235b-a22b.config.json +25 -0
  218. package/nodes/qwen-qwen3-235b-a22b/qwen-qwen3-235b-a22b.process.js +1 -1
  219. package/nodes/qwen-qwen3-235b-a22b-2507/qwen-qwen3-235b-a22b-2507.config.json +24 -2
  220. package/nodes/qwen-qwen3-235b-a22b-2507/qwen-qwen3-235b-a22b-2507.process.js +2 -1
  221. package/nodes/qwen-qwen3-235b-a22b-thinking-2507/qwen-qwen3-235b-a22b-thinking-2507.config.json +33 -6
  222. package/nodes/qwen-qwen3-235b-a22b-thinking-2507/qwen-qwen3-235b-a22b-thinking-2507.process.js +2 -1
  223. package/nodes/qwen-qwen3-30b-a3b/qwen-qwen3-30b-a3b.config.json +2 -24
  224. package/nodes/qwen-qwen3-30b-a3b/qwen-qwen3-30b-a3b.process.js +1 -2
  225. package/nodes/qwen-qwen3-30b-a3b-instruct-2507/qwen-qwen3-30b-a3b-instruct-2507.config.json +25 -4
  226. package/nodes/qwen-qwen3-30b-a3b-instruct-2507/qwen-qwen3-30b-a3b-instruct-2507.process.js +2 -1
  227. package/nodes/qwen-qwen3-30b-a3b-thinking-2507/qwen-qwen3-30b-a3b-thinking-2507.config.json +11 -7
  228. package/nodes/qwen-qwen3-5-35b-a3b/qwen-qwen3-5-35b-a3b.config.json +2 -2
  229. package/nodes/qwen-qwen3-5-397b-a17b/qwen-qwen3-5-397b-a17b.config.json +2 -2
  230. package/nodes/qwen-qwen3-5-9b/qwen-qwen3-5-9b.config.json +1 -1
  231. package/nodes/qwen-qwen3-5-flash-02-23/qwen-qwen3-5-flash-02-23.config.json +17 -0
  232. package/nodes/qwen-qwen3-5-flash-02-23/qwen-qwen3-5-flash-02-23.process.js +1 -1
  233. package/nodes/qwen-qwen3-5-plus-02-15/qwen-qwen3-5-plus-02-15.config.json +39 -0
  234. package/nodes/qwen-qwen3-5-plus-02-15/qwen-qwen3-5-plus-02-15.process.js +2 -1
  235. package/nodes/qwen-qwen3-5-plus-20260420/qwen-qwen3-5-plus-20260420.config.json +39 -0
  236. package/nodes/qwen-qwen3-5-plus-20260420/qwen-qwen3-5-plus-20260420.process.js +2 -1
  237. package/nodes/qwen-qwen3-6-27b/qwen-qwen3-6-27b.config.json +1 -1
  238. package/nodes/qwen-qwen3-6-35b-a3b/qwen-qwen3-6-35b-a3b.config.json +1 -1
  239. package/nodes/qwen-qwen3-6-flash/qwen-qwen3-6-flash.config.json +39 -0
  240. package/nodes/qwen-qwen3-6-flash/qwen-qwen3-6-flash.process.js +2 -1
  241. package/nodes/qwen-qwen3-6-max-preview/qwen-qwen3-6-max-preview.config.json +27 -2
  242. package/nodes/qwen-qwen3-6-max-preview/qwen-qwen3-6-max-preview.process.js +1 -1
  243. package/nodes/qwen-qwen3-6-plus/qwen-qwen3-6-plus.config.json +39 -0
  244. package/nodes/qwen-qwen3-6-plus/qwen-qwen3-6-plus.process.js +2 -1
  245. package/nodes/qwen-qwen3-7-flash/qwen-qwen3-7-flash.config.json +214 -0
  246. package/nodes/qwen-qwen3-7-flash/qwen-qwen3-7-flash.process.js +139 -0
  247. package/nodes/qwen-qwen3-7-max/qwen-qwen3-7-max.config.json +19 -2
  248. package/nodes/qwen-qwen3-7-max/qwen-qwen3-7-max.process.js +1 -1
  249. package/nodes/qwen-qwen3-7-plus/qwen-qwen3-7-plus.config.json +19 -2
  250. package/nodes/qwen-qwen3-7-plus/qwen-qwen3-7-plus.process.js +1 -1
  251. package/nodes/qwen-qwen3-8-2-4t-a95b/qwen-qwen3-8-2-4t-a95b.config.json +236 -0
  252. package/nodes/qwen-qwen3-8-2-4t-a95b/qwen-qwen3-8-2-4t-a95b.process.js +139 -0
  253. package/nodes/qwen-qwen3-8-27b/qwen-qwen3-8-27b.config.json +237 -0
  254. package/nodes/qwen-qwen3-8-27b/qwen-qwen3-8-27b.process.js +139 -0
  255. package/nodes/qwen-qwen3-8-27b-free/qwen-qwen3-8-27b-free.config.json +195 -0
  256. package/nodes/qwen-qwen3-8-27b-free/qwen-qwen3-8-27b-free.process.js +138 -0
  257. package/nodes/qwen-qwen3-8-flash/qwen-qwen3-8-flash.config.json +232 -0
  258. package/nodes/qwen-qwen3-8-flash/qwen-qwen3-8-flash.process.js +139 -0
  259. package/nodes/qwen-qwen3-8-max-0902/qwen-qwen3-8-max-0902.config.json +233 -0
  260. package/nodes/qwen-qwen3-8-max-0902/qwen-qwen3-8-max-0902.process.js +139 -0
  261. package/nodes/qwen-qwen3-8-max-prime/qwen-qwen3-8-max-prime.config.json +233 -0
  262. package/nodes/qwen-qwen3-8-max-prime/qwen-qwen3-8-max-prime.process.js +139 -0
  263. package/nodes/qwen-qwen3-8-omni-flash/qwen-qwen3-8-omni-flash.config.json +232 -0
  264. package/nodes/qwen-qwen3-8-omni-flash/qwen-qwen3-8-omni-flash.process.js +139 -0
  265. package/nodes/qwen-qwen3-8b/qwen-qwen3-8b.config.json +10 -6
  266. package/nodes/qwen-qwen3-coder/qwen-qwen3-coder.config.json +25 -3
  267. package/nodes/qwen-qwen3-coder/qwen-qwen3-coder.process.js +2 -1
  268. package/nodes/qwen-qwen3-coder-30b-a3b-instruct/qwen-qwen3-coder-30b-a3b-instruct.config.json +24 -2
  269. package/nodes/qwen-qwen3-coder-30b-a3b-instruct/qwen-qwen3-coder-30b-a3b-instruct.process.js +2 -1
  270. package/nodes/qwen-qwen3-coder-flash/qwen-qwen3-coder-flash.config.json +39 -0
  271. package/nodes/qwen-qwen3-coder-flash/qwen-qwen3-coder-flash.process.js +2 -1
  272. package/nodes/qwen-qwen3-coder-free/qwen-qwen3-coder-free.config.json +8 -0
  273. package/nodes/qwen-qwen3-coder-next/qwen-qwen3-coder-next.config.json +23 -2
  274. package/nodes/qwen-qwen3-coder-next/qwen-qwen3-coder-next.process.js +2 -1
  275. package/nodes/qwen-qwen3-coder-plus/qwen-qwen3-coder-plus.config.json +47 -0
  276. package/nodes/qwen-qwen3-coder-plus/qwen-qwen3-coder-plus.process.js +2 -1
  277. package/nodes/qwen-qwen3-embedding-8b/qwen-qwen3-embedding-8b.config.json +1 -1
  278. package/nodes/qwen-qwen3-max/qwen-qwen3-max.config.json +48 -0
  279. package/nodes/qwen-qwen3-max/qwen-qwen3-max.process.js +2 -1
  280. package/nodes/qwen-qwen3-max-thinking/qwen-qwen3-max-thinking.config.json +47 -0
  281. package/nodes/qwen-qwen3-max-thinking/qwen-qwen3-max-thinking.process.js +2 -1
  282. package/nodes/qwen-qwen3-next-80b-a3b-instruct/qwen-qwen3-next-80b-a3b-instruct.config.json +23 -1
  283. package/nodes/qwen-qwen3-next-80b-a3b-instruct/qwen-qwen3-next-80b-a3b-instruct.process.js +2 -1
  284. package/nodes/qwen-qwen3-next-80b-a3b-instruct-free/qwen-qwen3-next-80b-a3b-instruct-free.config.json +8 -0
  285. package/nodes/qwen-qwen3-next-80b-a3b-thinking/qwen-qwen3-next-80b-a3b-thinking.config.json +24 -4
  286. package/nodes/qwen-qwen3-next-80b-a3b-thinking/qwen-qwen3-next-80b-a3b-thinking.process.js +2 -1
  287. package/nodes/qwen-qwen3-reranker-8b/qwen-qwen3-reranker-8b.config.json +95 -0
  288. package/nodes/qwen-qwen3-reranker-8b/qwen-qwen3-reranker-8b.process.js +60 -0
  289. package/nodes/qwen-qwen3-vl-235b-a22b-instruct/qwen-qwen3-vl-235b-a22b-instruct.config.json +24 -2
  290. package/nodes/qwen-qwen3-vl-235b-a22b-instruct/qwen-qwen3-vl-235b-a22b-instruct.process.js +2 -1
  291. package/nodes/qwen-qwen3-vl-235b-a22b-thinking/qwen-qwen3-vl-235b-a22b-thinking.config.json +33 -2
  292. package/nodes/qwen-qwen3-vl-235b-a22b-thinking/qwen-qwen3-vl-235b-a22b-thinking.process.js +2 -1
  293. package/nodes/qwen-qwen3-vl-30b-a3b-instruct/qwen-qwen3-vl-30b-a3b-instruct.config.json +24 -2
  294. package/nodes/qwen-qwen3-vl-30b-a3b-instruct/qwen-qwen3-vl-30b-a3b-instruct.process.js +2 -1
  295. package/nodes/qwen-qwen3-vl-30b-a3b-thinking/qwen-qwen3-vl-30b-a3b-thinking.config.json +33 -4
  296. package/nodes/qwen-qwen3-vl-30b-a3b-thinking/qwen-qwen3-vl-30b-a3b-thinking.process.js +2 -1
  297. package/nodes/qwen-qwen3-vl-32b-instruct/qwen-qwen3-vl-32b-instruct.config.json +49 -1
  298. package/nodes/qwen-qwen3-vl-32b-instruct/qwen-qwen3-vl-32b-instruct.process.js +2 -1
  299. package/nodes/qwen-qwen3-vl-8b-instruct/qwen-qwen3-vl-8b-instruct.config.json +33 -4
  300. package/nodes/qwen-qwen3-vl-8b-instruct/qwen-qwen3-vl-8b-instruct.process.js +2 -1
  301. package/nodes/qwen-qwen3-vl-8b-thinking/qwen-qwen3-vl-8b-thinking.config.json +50 -3
  302. package/nodes/qwen-qwen3-vl-8b-thinking/qwen-qwen3-vl-8b-thinking.process.js +2 -1
  303. package/nodes/respan-span-01/respan-span-01.config.json +83 -0
  304. package/nodes/respan-span-01/respan-span-01.process.js +71 -0
  305. package/nodes/respan-span-01-lite/respan-span-01-lite.config.json +83 -0
  306. package/nodes/respan-span-01-lite/respan-span-01-lite.process.js +71 -0
  307. package/nodes/respan-span-01-lite-free/respan-span-01-lite-free.config.json +83 -0
  308. package/nodes/respan-span-01-lite-free/respan-span-01-lite-free.process.js +71 -0
  309. package/nodes/sentence-transformers-all-minilm-l12-v2/sentence-transformers-all-minilm-l12-v2.config.json +1 -1
  310. package/nodes/sentence-transformers-all-minilm-l6-v2/sentence-transformers-all-minilm-l6-v2.config.json +1 -1
  311. package/nodes/sentence-transformers-all-mpnet-base-v2/sentence-transformers-all-mpnet-base-v2.config.json +1 -1
  312. package/nodes/sentence-transformers-multi-qa-mpnet-base-dot-v1/sentence-transformers-multi-qa-mpnet-base-dot-v1.config.json +1 -1
  313. package/nodes/sentence-transformers-paraphrase-minilm-l6-v2/sentence-transformers-paraphrase-minilm-l6-v2.config.json +1 -1
  314. package/nodes/thenlper-gte-base/thenlper-gte-base.config.json +1 -1
  315. package/nodes/thenlper-gte-large/thenlper-gte-large.config.json +1 -1
  316. package/nodes/typesafe-jev-1-13/typesafe-jev-1-13.config.json +85 -0
  317. package/nodes/typesafe-jev-1-13/typesafe-jev-1-13.process.js +33 -0
  318. package/nodes/typesafe-jev-latest/typesafe-jev-latest.config.json +86 -0
  319. package/nodes/typesafe-jev-latest/typesafe-jev-latest.process.js +33 -0
  320. package/nodes/typesafe-jev-router/typesafe-jev-router.config.json +154 -0
  321. package/nodes/typesafe-jev-router/typesafe-jev-router.process.js +138 -0
  322. package/nodes/upstage-solar-decide/upstage-solar-decide.config.json +85 -0
  323. package/nodes/upstage-solar-decide/upstage-solar-decide.process.js +33 -0
  324. package/nodes/voyageai-rerank-2-5/voyageai-rerank-2-5.config.json +95 -0
  325. package/nodes/voyageai-rerank-2-5/voyageai-rerank-2-5.process.js +60 -0
  326. package/nodes/voyageai-rerank-2-5-lite/voyageai-rerank-2-5-lite.config.json +95 -0
  327. package/nodes/voyageai-rerank-2-5-lite/voyageai-rerank-2-5-lite.process.js +60 -0
  328. package/nodes/voyageai-voyage-4/voyageai-voyage-4.config.json +90 -0
  329. package/nodes/voyageai-voyage-4/voyageai-voyage-4.process.js +36 -0
  330. package/nodes/voyageai-voyage-4-large/voyageai-voyage-4-large.config.json +90 -0
  331. package/nodes/voyageai-voyage-4-large/voyageai-voyage-4-large.process.js +36 -0
  332. package/nodes/voyageai-voyage-4-lite/voyageai-voyage-4-lite.config.json +90 -0
  333. package/nodes/voyageai-voyage-4-lite/voyageai-voyage-4-lite.process.js +36 -0
  334. package/nodes/voyageai-voyage-code-4/voyageai-voyage-code-4.config.json +90 -0
  335. package/nodes/voyageai-voyage-code-4/voyageai-voyage-code-4.process.js +36 -0
  336. package/nodes/voyageai-voyage-multimodal-3-5/voyageai-voyage-multimodal-3-5.config.json +91 -0
  337. package/nodes/voyageai-voyage-multimodal-3-5/voyageai-voyage-multimodal-3-5.process.js +36 -0
  338. package/nodes/x-ai-grok-4-20/x-ai-grok-4-20.config.json +2 -2
  339. package/nodes/x-ai-grok-4-20/x-ai-grok-4-20.process.js +1 -1
  340. package/nodes/x-ai-grok-4-20-multi-agent/x-ai-grok-4-20-multi-agent.config.json +5 -4
  341. package/nodes/x-ai-grok-4-20-multi-agent/x-ai-grok-4-20-multi-agent.process.js +1 -1
  342. package/nodes/x-ai-grok-4-3/x-ai-grok-4-3.config.json +3 -26
  343. package/nodes/x-ai-grok-4-3/x-ai-grok-4-3.process.js +2 -2
  344. package/nodes/x-ai-grok-4-5/x-ai-grok-4-5.config.json +208 -0
  345. package/nodes/x-ai-grok-4-5/x-ai-grok-4-5.process.js +139 -0
  346. package/nodes/x-ai-grok-4-6/x-ai-grok-4-6.config.json +217 -0
  347. package/nodes/x-ai-grok-4-6/x-ai-grok-4-6.process.js +139 -0
  348. package/nodes/x-ai-grok-4-7/x-ai-grok-4-7.config.json +208 -0
  349. package/nodes/x-ai-grok-4-7/x-ai-grok-4-7.process.js +139 -0
  350. package/nodes/x-ai-grok-build-0-1/x-ai-grok-build-0-1.config.json +2 -26
  351. package/nodes/x-ai-grok-build-0-1/x-ai-grok-build-0-1.process.js +2 -2
  352. package/package.json +16 -4
  353. package/src/integrations/openrouter.js +155 -18
  354. package/src/utilities/loaders.js +40 -5
  355. package/nodes/absolute/absolute.tests.json +0 -38
  356. package/nodes/absolute-value/absolute-value.tests.json +0 -17
  357. package/nodes/add/add.tests.json +0 -41
  358. package/nodes/airtable-create-record/airtable-create-record.tests.json +0 -50
  359. package/nodes/airtable-delete-record/airtable-delete-record.tests.json +0 -23
  360. package/nodes/airtable-get-record/airtable-get-record.tests.json +0 -25
  361. package/nodes/airtable-list-records/airtable-list-records.tests.json +0 -46
  362. package/nodes/airtable-update-record/airtable-update-record.tests.json +0 -44
  363. package/nodes/and-gate/and-gate.tests.json +0 -22
  364. package/nodes/anthropic-claude-3-5-haiku/anthropic-claude-3-5-haiku.tests.json +0 -80
  365. package/nodes/anthropic-claude-3-haiku/anthropic-claude-3-haiku.tests.json +0 -80
  366. package/nodes/anthropic-claude-haiku-4-5/anthropic-claude-haiku-4-5.tests.json +0 -80
  367. package/nodes/anthropic-claude-opus-4/anthropic-claude-opus-4.tests.json +0 -80
  368. package/nodes/anthropic-claude-opus-4-1/anthropic-claude-opus-4-1.tests.json +0 -80
  369. package/nodes/anthropic-claude-opus-4-5/anthropic-claude-opus-4-5.tests.json +0 -80
  370. package/nodes/anthropic-claude-opus-4-6/anthropic-claude-opus-4-6.tests.json +0 -80
  371. package/nodes/anthropic-claude-opus-4-6-fast/anthropic-claude-opus-4-6-fast.tests.json +0 -80
  372. package/nodes/anthropic-claude-opus-4-7/anthropic-claude-opus-4-7.tests.json +0 -57
  373. package/nodes/anthropic-claude-opus-4-7-fast/anthropic-claude-opus-4-7-fast.tests.json +0 -57
  374. package/nodes/anthropic-claude-opus-4-8/anthropic-claude-opus-4-8.tests.json +0 -57
  375. package/nodes/anthropic-claude-opus-4-8-fast/anthropic-claude-opus-4-8-fast.tests.json +0 -57
  376. package/nodes/anthropic-claude-sonnet-4/anthropic-claude-sonnet-4.tests.json +0 -80
  377. package/nodes/anthropic-claude-sonnet-4-5/anthropic-claude-sonnet-4-5.tests.json +0 -80
  378. package/nodes/anthropic-claude-sonnet-4-6/anthropic-claude-sonnet-4-6.tests.json +0 -80
  379. package/nodes/array-builder/array-builder.tests.json +0 -20
  380. package/nodes/array-filter/array-filter.tests.json +0 -67
  381. package/nodes/array-find/array-find.tests.json +0 -83
  382. package/nodes/array-flatten/array-flatten.tests.json +0 -79
  383. package/nodes/array-index-selector/array-index-selector.tests.json +0 -37
  384. package/nodes/array-join/array-join.tests.json +0 -41
  385. package/nodes/array-length/array-length.tests.json +0 -32
  386. package/nodes/array-map/array-map.tests.json +0 -44
  387. package/nodes/array-reverse/array-reverse.tests.json +0 -60
  388. package/nodes/array-shuffle/array-shuffle.tests.json +0 -82
  389. package/nodes/array-slice/array-slice.tests.json +0 -43
  390. package/nodes/array-sort/array-sort.tests.json +0 -95
  391. package/nodes/array-split/array-split.tests.json +0 -77
  392. package/nodes/array-unique/array-unique.tests.json +0 -96
  393. package/nodes/baai-bge-base-en-v1-5/baai-bge-base-en-v1-5.tests.json +0 -48
  394. package/nodes/baai-bge-large-en-v1-5/baai-bge-large-en-v1-5.tests.json +0 -48
  395. package/nodes/baai-bge-m3/baai-bge-m3.tests.json +0 -48
  396. package/nodes/base64-decode/base64-decode.tests.json +0 -46
  397. package/nodes/base64-encode/base64-encode.tests.json +0 -38
  398. package/nodes/boolean/boolean.tests.json +0 -47
  399. package/nodes/boolean-inverter/boolean-inverter.tests.json +0 -22
  400. package/nodes/ceil/ceil.tests.json +0 -38
  401. package/nodes/cohere-rerank-4-fast/cohere-rerank-4-fast.tests.json +0 -47
  402. package/nodes/cohere-rerank-4-pro/cohere-rerank-4-pro.tests.json +0 -47
  403. package/nodes/cohere-rerank-v3-5/cohere-rerank-v3-5.tests.json +0 -47
  404. package/nodes/combine-document-chunks/combine-document-chunks.tests.json +0 -51
  405. package/nodes/condition-check/condition-check.tests.json +0 -112
  406. package/nodes/confluence-get-page/confluence-get-page.tests.json +0 -12
  407. package/nodes/confluence-search/confluence-search.tests.json +0 -14
  408. package/nodes/conversation-to-text/conversation-to-text.tests.json +0 -134
  409. package/nodes/csv-parser/csv-parser.tests.json +0 -93
  410. package/nodes/csv-stringifier/csv-stringifier.tests.json +0 -63
  411. package/nodes/date-formatter/date-formatter.tests.json +0 -50
  412. package/nodes/dedupe-messages/dedupe-messages.tests.json +0 -149
  413. package/nodes/deepseek-deepseek-chat/deepseek-deepseek-chat.tests.json +0 -80
  414. package/nodes/deepseek-deepseek-chat-v3-0324/deepseek-deepseek-chat-v3-0324.tests.json +0 -80
  415. package/nodes/deepseek-deepseek-chat-v3-1/deepseek-deepseek-chat-v3-1.tests.json +0 -80
  416. package/nodes/deepseek-deepseek-r1/deepseek-deepseek-r1.tests.json +0 -80
  417. package/nodes/deepseek-deepseek-r1-0528/deepseek-deepseek-r1-0528.tests.json +0 -80
  418. package/nodes/deepseek-deepseek-r1-distill-llama-70b/deepseek-deepseek-r1-distill-llama-70b.tests.json +0 -80
  419. package/nodes/deepseek-deepseek-r1-distill-qwen-32b/deepseek-deepseek-r1-distill-qwen-32b.tests.json +0 -80
  420. package/nodes/deepseek-deepseek-v3-1-terminus/deepseek-deepseek-v3-1-terminus.tests.json +0 -80
  421. package/nodes/deepseek-deepseek-v3-2/deepseek-deepseek-v3-2.tests.json +0 -80
  422. package/nodes/deepseek-deepseek-v3-2-exp/deepseek-deepseek-v3-2-exp.tests.json +0 -80
  423. package/nodes/deepseek-deepseek-v4-flash/deepseek-deepseek-v4-flash.tests.json +0 -80
  424. package/nodes/deepseek-deepseek-v4-pro/deepseek-deepseek-v4-pro.tests.json +0 -80
  425. package/nodes/delay/delay.tests.json +0 -59
  426. package/nodes/delete-object-property/delete-object-property.tests.json +0 -173
  427. package/nodes/divide/divide.tests.json +0 -42
  428. package/nodes/duration-calculator/duration-calculator.tests.json +0 -124
  429. package/nodes/embedding/embedding.tests.json +0 -26
  430. package/nodes/equals/equals.tests.json +0 -111
  431. package/nodes/extract-code/extract-code.tests.json +0 -162
  432. package/nodes/extract-json/extract-json.tests.json +0 -146
  433. package/nodes/extract-text-content/extract-text-content.tests.json +0 -144
  434. package/nodes/filter-messages/filter-messages.tests.json +0 -125
  435. package/nodes/filter-tools/filter-tools.tests.json +0 -89
  436. package/nodes/firecrawl-scrape/firecrawl-scrape.tests.json +0 -57
  437. package/nodes/firecrawl-search/firecrawl-search.tests.json +0 -9
  438. package/nodes/floor/floor.tests.json +0 -38
  439. package/nodes/generate-uuid/generate-uuid.tests.json +0 -7
  440. package/nodes/get-chunk-by-index/get-chunk-by-index.tests.json +0 -51
  441. package/nodes/get-first-n-messages/get-first-n-messages.tests.json +0 -66
  442. package/nodes/get-last-n-messages/get-last-n-messages.tests.json +0 -66
  443. package/nodes/get-messages-by-role/get-messages-by-role.tests.json +0 -87
  444. package/nodes/get-messages-range/get-messages-range.tests.json +0 -104
  445. package/nodes/get-object-property/get-object-property.tests.json +0 -101
  446. package/nodes/github-create-issue/github-create-issue.tests.json +0 -15
  447. package/nodes/google-custom-search/google-custom-search.tests.json +0 -69
  448. package/nodes/google-gemini-2-5-flash/google-gemini-2-5-flash.tests.json +0 -80
  449. package/nodes/google-gemini-2-5-flash-image/google-gemini-2-5-flash-image.tests.json +0 -44
  450. package/nodes/google-gemini-2-5-flash-lite/google-gemini-2-5-flash-lite.tests.json +0 -80
  451. package/nodes/google-gemini-2-5-flash-lite-preview-09-2025/google-gemini-2-5-flash-lite-preview-09-2025.tests.json +0 -80
  452. package/nodes/google-gemini-2-5-pro/google-gemini-2-5-pro.tests.json +0 -80
  453. package/nodes/google-gemini-2-5-pro-preview/google-gemini-2-5-pro-preview.tests.json +0 -80
  454. package/nodes/google-gemini-2-5-pro-preview-05-06/google-gemini-2-5-pro-preview-05-06.tests.json +0 -80
  455. package/nodes/google-gemini-3-1-flash-image-preview/google-gemini-3-1-flash-image-preview.tests.json +0 -44
  456. package/nodes/google-gemini-3-1-flash-lite/google-gemini-3-1-flash-lite.tests.json +0 -80
  457. package/nodes/google-gemini-3-1-flash-lite-preview/google-gemini-3-1-flash-lite-preview.tests.json +0 -80
  458. package/nodes/google-gemini-3-1-pro-preview/google-gemini-3-1-pro-preview.tests.json +0 -80
  459. package/nodes/google-gemini-3-1-pro-preview-customtools/google-gemini-3-1-pro-preview-customtools.tests.json +0 -80
  460. package/nodes/google-gemini-3-5-flash/google-gemini-3-5-flash.tests.json +0 -80
  461. package/nodes/google-gemini-3-flash-preview/google-gemini-3-flash-preview.tests.json +0 -80
  462. package/nodes/google-gemini-3-pro-image-preview/google-gemini-3-pro-image-preview.tests.json +0 -44
  463. package/nodes/google-gemini-embedding-001/google-gemini-embedding-001.tests.json +0 -48
  464. package/nodes/google-gemini-embedding-2/google-gemini-embedding-2.tests.json +0 -48
  465. package/nodes/google-gemini-embedding-2-preview/google-gemini-embedding-2-preview.tests.json +0 -48
  466. package/nodes/google-gemma-2-27b-it/google-gemma-2-27b-it.tests.json +0 -80
  467. package/nodes/google-gemma-3-12b-it/google-gemma-3-12b-it.tests.json +0 -80
  468. package/nodes/google-gemma-3-27b-it/google-gemma-3-27b-it.tests.json +0 -80
  469. package/nodes/google-gemma-3-4b-it/google-gemma-3-4b-it.tests.json +0 -80
  470. package/nodes/google-gemma-3n-e4b-it/google-gemma-3n-e4b-it.tests.json +0 -44
  471. package/nodes/google-gemma-4-26b-a4b-it/google-gemma-4-26b-a4b-it.tests.json +0 -80
  472. package/nodes/google-gemma-4-26b-a4b-it-free/google-gemma-4-26b-a4b-it-free.tests.json +0 -80
  473. package/nodes/google-gemma-4-31b-it/google-gemma-4-31b-it.tests.json +0 -80
  474. package/nodes/google-gemma-4-31b-it-free/google-gemma-4-31b-it-free.tests.json +0 -80
  475. package/nodes/google-lyria-3-clip-preview/google-lyria-3-clip-preview.tests.json +0 -44
  476. package/nodes/google-lyria-3-pro-preview/google-lyria-3-pro-preview.tests.json +0 -44
  477. package/nodes/greater-than/greater-than.tests.json +0 -47
  478. package/nodes/greater-than-equal/greater-than-equal.tests.json +0 -52
  479. package/nodes/has-object-property/has-object-property.tests.json +0 -148
  480. package/nodes/hash-content/hash-content.tests.json +0 -51
  481. package/nodes/histogram/histogram.tests.json +0 -57
  482. package/nodes/histogram-fixed/histogram-fixed.tests.json +0 -62
  483. package/nodes/http-request/http-request.tests.json +0 -115
  484. package/nodes/if-else/if-else.tests.json +0 -94
  485. package/nodes/input-data/input-data.tests.json +0 -53
  486. package/nodes/intfloat-e5-base-v2/intfloat-e5-base-v2.tests.json +0 -48
  487. package/nodes/intfloat-e5-large-v2/intfloat-e5-large-v2.tests.json +0 -48
  488. package/nodes/intfloat-multilingual-e5-large/intfloat-multilingual-e5-large.tests.json +0 -48
  489. package/nodes/jira-create-issue/jira-create-issue.tests.json +0 -14
  490. package/nodes/jira-list-issues/jira-list-issues.tests.json +0 -14
  491. package/nodes/jira-update-issue/jira-update-issue.tests.json +0 -12
  492. package/nodes/json-parser/json-parser.tests.json +0 -57
  493. package/nodes/json-stringifier/json-stringifier.tests.json +0 -58
  494. package/nodes/json-to-xml/json-to-xml.tests.json +0 -103
  495. package/nodes/json-to-yaml/json-to-yaml.tests.json +0 -110
  496. package/nodes/keep-bookends/keep-bookends.tests.json +0 -185
  497. package/nodes/less-than/less-than.tests.json +0 -47
  498. package/nodes/less-than-equal/less-than-equal.tests.json +0 -52
  499. package/nodes/linear-create-issue/linear-create-issue.tests.json +0 -14
  500. package/nodes/linear-list-issues/linear-list-issues.tests.json +0 -13
  501. package/nodes/linear-update-issue/linear-update-issue.tests.json +0 -13
  502. package/nodes/liquid-lfm-2-24b-a2b/liquid-lfm-2-24b-a2b.tests.json +0 -44
  503. package/nodes/liquid-lfm-2-5-1-2b-instruct-free/liquid-lfm-2-5-1-2b-instruct-free.tests.json +0 -44
  504. package/nodes/liquid-lfm-2-5-1-2b-thinking-free/liquid-lfm-2-5-1-2b-thinking-free.tests.json +0 -44
  505. package/nodes/loop-end/loop-end.tests.json +0 -139
  506. package/nodes/loop-start/loop-start.tests.json +0 -65
  507. package/nodes/mean/mean.tests.json +0 -45
  508. package/nodes/median/median.tests.json +0 -54
  509. package/nodes/merge-consecutive-roles/merge-consecutive-roles.tests.json +0 -199
  510. package/nodes/merge-messages/merge-messages.tests.json +0 -174
  511. package/nodes/message/message.tests.json +0 -85
  512. package/nodes/message-bus/message-bus.tests.json +0 -150
  513. package/nodes/message-role-swap/message-role-swap.tests.json +0 -197
  514. package/nodes/mistralai-codestral-2508/mistralai-codestral-2508.tests.json +0 -80
  515. package/nodes/mistralai-codestral-embed-2505/mistralai-codestral-embed-2505.tests.json +0 -48
  516. package/nodes/mistralai-devstral-2512/mistralai-devstral-2512.tests.json +0 -80
  517. package/nodes/mistralai-ministral-14b-2512/mistralai-ministral-14b-2512.tests.json +0 -80
  518. package/nodes/mistralai-ministral-3b-2512/mistralai-ministral-3b-2512.tests.json +0 -80
  519. package/nodes/mistralai-ministral-8b-2512/mistralai-ministral-8b-2512.tests.json +0 -80
  520. package/nodes/mistralai-mistral-embed-2312/mistralai-mistral-embed-2312.tests.json +0 -48
  521. package/nodes/mistralai-mistral-large/mistralai-mistral-large.tests.json +0 -80
  522. package/nodes/mistralai-mistral-large-2407/mistralai-mistral-large-2407.tests.json +0 -80
  523. package/nodes/mistralai-mistral-large-2512/mistralai-mistral-large-2512.tests.json +0 -80
  524. package/nodes/mistralai-mistral-medium-3/mistralai-mistral-medium-3.tests.json +0 -80
  525. package/nodes/mistralai-mistral-medium-3-1/mistralai-mistral-medium-3-1.tests.json +0 -80
  526. package/nodes/mistralai-mistral-medium-3-5/mistralai-mistral-medium-3-5.tests.json +0 -80
  527. package/nodes/mistralai-mistral-nemo/mistralai-mistral-nemo.tests.json +0 -80
  528. package/nodes/mistralai-mistral-saba/mistralai-mistral-saba.tests.json +0 -80
  529. package/nodes/mistralai-mistral-small-24b-instruct-2501/mistralai-mistral-small-24b-instruct-2501.tests.json +0 -44
  530. package/nodes/mistralai-mistral-small-2603/mistralai-mistral-small-2603.tests.json +0 -80
  531. package/nodes/mistralai-mistral-small-3-1-24b-instruct/mistralai-mistral-small-3-1-24b-instruct.tests.json +0 -44
  532. package/nodes/mistralai-mistral-small-3-2-24b-instruct/mistralai-mistral-small-3-2-24b-instruct.tests.json +0 -80
  533. package/nodes/mistralai-mixtral-8x22b-instruct/mistralai-mixtral-8x22b-instruct.tests.json +0 -80
  534. package/nodes/mistralai-voxtral-small-24b-2507/mistralai-voxtral-small-24b-2507.tests.json +0 -80
  535. package/nodes/mode/mode.tests.json +0 -53
  536. package/nodes/modulo/modulo.tests.json +0 -66
  537. package/nodes/multiply/multiply.tests.json +0 -42
  538. package/nodes/nand-gate/nand-gate.tests.json +0 -22
  539. package/nodes/newsdata-io-archive/newsdata-io-archive.tests.json +0 -68
  540. package/nodes/newsdata-io-latest/newsdata-io-latest.tests.json +0 -74
  541. package/nodes/newsdata-io-sources/newsdata-io-sources.tests.json +0 -53
  542. package/nodes/nor-gate/nor-gate.tests.json +0 -22
  543. package/nodes/normalize-whitespace/normalize-whitespace.tests.json +0 -76
  544. package/nodes/not-equals/not-equals.tests.json +0 -77
  545. package/nodes/notion-append-blocks/notion-append-blocks.tests.json +0 -80
  546. package/nodes/notion-archive-page/notion-archive-page.tests.json +0 -26
  547. package/nodes/notion-create-page/notion-create-page.tests.json +0 -92
  548. package/nodes/notion-get-blocks/notion-get-blocks.tests.json +0 -22
  549. package/nodes/notion-get-page/notion-get-page.tests.json +0 -14
  550. package/nodes/notion-query-database/notion-query-database.tests.json +0 -52
  551. package/nodes/notion-search/notion-search.tests.json +0 -46
  552. package/nodes/notion-update-page/notion-update-page.tests.json +0 -44
  553. package/nodes/null-bomb/null-bomb.tests.json +0 -83
  554. package/nodes/number/number.tests.json +0 -46
  555. package/nodes/nvidia-llama-nemotron-embed-vl-1b-v2-free/nvidia-llama-nemotron-embed-vl-1b-v2-free.tests.json +0 -48
  556. package/nodes/nvidia-llama-nemotron-rerank-vl-1b-v2-free/nvidia-llama-nemotron-rerank-vl-1b-v2-free.tests.json +0 -47
  557. package/nodes/object-merge/object-merge.tests.json +0 -158
  558. package/nodes/openai-gpt-3-5-turbo/openai-gpt-3-5-turbo.tests.json +0 -80
  559. package/nodes/openai-gpt-3-5-turbo-0613/openai-gpt-3-5-turbo-0613.tests.json +0 -80
  560. package/nodes/openai-gpt-3-5-turbo-16k/openai-gpt-3-5-turbo-16k.tests.json +0 -80
  561. package/nodes/openai-gpt-3-5-turbo-instruct/openai-gpt-3-5-turbo-instruct.tests.json +0 -80
  562. package/nodes/openai-gpt-4/openai-gpt-4.tests.json +0 -80
  563. package/nodes/openai-gpt-4-1/openai-gpt-4-1.tests.json +0 -80
  564. package/nodes/openai-gpt-4-1-mini/openai-gpt-4-1-mini.tests.json +0 -80
  565. package/nodes/openai-gpt-4-1-nano/openai-gpt-4-1-nano.tests.json +0 -80
  566. package/nodes/openai-gpt-4-1106-preview/openai-gpt-4-1106-preview.tests.json +0 -80
  567. package/nodes/openai-gpt-4-turbo/openai-gpt-4-turbo.tests.json +0 -80
  568. package/nodes/openai-gpt-4-turbo-preview/openai-gpt-4-turbo-preview.tests.json +0 -80
  569. package/nodes/openai-gpt-4o/openai-gpt-4o.tests.json +0 -80
  570. package/nodes/openai-gpt-4o-2024-05-13/openai-gpt-4o-2024-05-13.tests.json +0 -80
  571. package/nodes/openai-gpt-4o-2024-08-06/openai-gpt-4o-2024-08-06.tests.json +0 -80
  572. package/nodes/openai-gpt-4o-2024-11-20/openai-gpt-4o-2024-11-20.tests.json +0 -80
  573. package/nodes/openai-gpt-4o-mini/openai-gpt-4o-mini.tests.json +0 -80
  574. package/nodes/openai-gpt-4o-mini-2024-07-18/openai-gpt-4o-mini-2024-07-18.tests.json +0 -80
  575. package/nodes/openai-gpt-4o-mini-search-preview/openai-gpt-4o-mini-search-preview.tests.json +0 -26
  576. package/nodes/openai-gpt-4o-search-preview/openai-gpt-4o-search-preview.tests.json +0 -26
  577. package/nodes/openai-gpt-5/openai-gpt-5.tests.json +0 -57
  578. package/nodes/openai-gpt-5-1/openai-gpt-5-1.tests.json +0 -57
  579. package/nodes/openai-gpt-5-1-chat/openai-gpt-5-1-chat.tests.json +0 -57
  580. package/nodes/openai-gpt-5-1-codex/openai-gpt-5-1-codex.tests.json +0 -57
  581. package/nodes/openai-gpt-5-1-codex-max/openai-gpt-5-1-codex-max.tests.json +0 -57
  582. package/nodes/openai-gpt-5-1-codex-mini/openai-gpt-5-1-codex-mini.tests.json +0 -57
  583. package/nodes/openai-gpt-5-2/openai-gpt-5-2.tests.json +0 -57
  584. package/nodes/openai-gpt-5-2-chat/openai-gpt-5-2-chat.tests.json +0 -57
  585. package/nodes/openai-gpt-5-2-codex/openai-gpt-5-2-codex.tests.json +0 -57
  586. package/nodes/openai-gpt-5-2-pro/openai-gpt-5-2-pro.tests.json +0 -57
  587. package/nodes/openai-gpt-5-3-chat/openai-gpt-5-3-chat.tests.json +0 -57
  588. package/nodes/openai-gpt-5-3-codex/openai-gpt-5-3-codex.tests.json +0 -57
  589. package/nodes/openai-gpt-5-4/openai-gpt-5-4.tests.json +0 -57
  590. package/nodes/openai-gpt-5-4-image-2/openai-gpt-5-4-image-2.tests.json +0 -26
  591. package/nodes/openai-gpt-5-4-mini/openai-gpt-5-4-mini.tests.json +0 -57
  592. package/nodes/openai-gpt-5-4-nano/openai-gpt-5-4-nano.tests.json +0 -57
  593. package/nodes/openai-gpt-5-4-pro/openai-gpt-5-4-pro.tests.json +0 -57
  594. package/nodes/openai-gpt-5-5/openai-gpt-5-5.tests.json +0 -57
  595. package/nodes/openai-gpt-5-5-pro/openai-gpt-5-5-pro.tests.json +0 -57
  596. package/nodes/openai-gpt-5-chat/openai-gpt-5-chat.tests.json +0 -26
  597. package/nodes/openai-gpt-5-codex/openai-gpt-5-codex.tests.json +0 -57
  598. package/nodes/openai-gpt-5-image/openai-gpt-5-image.tests.json +0 -44
  599. package/nodes/openai-gpt-5-image-mini/openai-gpt-5-image-mini.tests.json +0 -44
  600. package/nodes/openai-gpt-5-mini/openai-gpt-5-mini.tests.json +0 -57
  601. package/nodes/openai-gpt-5-nano/openai-gpt-5-nano.tests.json +0 -57
  602. package/nodes/openai-gpt-5-pro/openai-gpt-5-pro.tests.json +0 -57
  603. package/nodes/openai-gpt-audio/openai-gpt-audio.tests.json +0 -80
  604. package/nodes/openai-gpt-audio-mini/openai-gpt-audio-mini.tests.json +0 -80
  605. package/nodes/openai-gpt-chat-latest/openai-gpt-chat-latest.tests.json +0 -57
  606. package/nodes/openai-gpt-oss-120b/openai-gpt-oss-120b.tests.json +0 -80
  607. package/nodes/openai-gpt-oss-120b-free/openai-gpt-oss-120b-free.tests.json +0 -80
  608. package/nodes/openai-gpt-oss-20b/openai-gpt-oss-20b.tests.json +0 -80
  609. package/nodes/openai-gpt-oss-20b-free/openai-gpt-oss-20b-free.tests.json +0 -80
  610. package/nodes/openai-gpt-oss-safeguard-20b/openai-gpt-oss-safeguard-20b.tests.json +0 -80
  611. package/nodes/openai-o1/openai-o1.tests.json +0 -57
  612. package/nodes/openai-o1-pro/openai-o1-pro.tests.json +0 -26
  613. package/nodes/openai-o3/openai-o3.tests.json +0 -57
  614. package/nodes/openai-o3-deep-research/openai-o3-deep-research.tests.json +0 -80
  615. package/nodes/openai-o3-mini/openai-o3-mini.tests.json +0 -57
  616. package/nodes/openai-o3-mini-high/openai-o3-mini-high.tests.json +0 -57
  617. package/nodes/openai-o3-pro/openai-o3-pro.tests.json +0 -57
  618. package/nodes/openai-o4-mini/openai-o4-mini.tests.json +0 -57
  619. package/nodes/openai-o4-mini-deep-research/openai-o4-mini-deep-research.tests.json +0 -80
  620. package/nodes/openai-o4-mini-high/openai-o4-mini-high.tests.json +0 -57
  621. package/nodes/openai-omni-moderation-latest/openai-omni-moderation-latest.tests.json +0 -103
  622. package/nodes/openai-text-embedding-3-large/openai-text-embedding-3-large.tests.json +0 -48
  623. package/nodes/openai-text-embedding-3-small/openai-text-embedding-3-small.tests.json +0 -48
  624. package/nodes/openai-text-embedding-ada-002/openai-text-embedding-ada-002.tests.json +0 -48
  625. package/nodes/or-gate/or-gate.tests.json +0 -22
  626. package/nodes/parse-url/parse-url.tests.json +0 -121
  627. package/nodes/perplexity-pplx-embed-v1-0-6b/perplexity-pplx-embed-v1-0-6b.tests.json +0 -48
  628. package/nodes/perplexity-pplx-embed-v1-4b/perplexity-pplx-embed-v1-4b.tests.json +0 -48
  629. package/nodes/perplexity-sonar/perplexity-sonar.tests.json +0 -44
  630. package/nodes/perplexity-sonar-deep-research/perplexity-sonar-deep-research.tests.json +0 -80
  631. package/nodes/perplexity-sonar-pro/perplexity-sonar-pro.tests.json +0 -44
  632. package/nodes/perplexity-sonar-pro-search/perplexity-sonar-pro-search.tests.json +0 -44
  633. package/nodes/perplexity-sonar-reasoning-pro/perplexity-sonar-reasoning-pro.tests.json +0 -80
  634. package/nodes/pinecone-query/pinecone-query.tests.json +0 -12
  635. package/nodes/pinecone-upsert/pinecone-upsert.tests.json +0 -13
  636. package/nodes/power/power.tests.json +0 -42
  637. package/nodes/prompt-injection-guard/prompt-injection-guard.tests.json +0 -205
  638. package/nodes/quartiles/quartiles.tests.json +0 -69
  639. package/nodes/qwen-qwen-2-5-72b-instruct/qwen-qwen-2-5-72b-instruct.tests.json +0 -80
  640. package/nodes/qwen-qwen-2-5-7b-instruct/qwen-qwen-2-5-7b-instruct.tests.json +0 -80
  641. package/nodes/qwen-qwen-2-5-coder-32b-instruct/qwen-qwen-2-5-coder-32b-instruct.tests.json +0 -80
  642. package/nodes/qwen-qwen-plus/qwen-qwen-plus.tests.json +0 -80
  643. package/nodes/qwen-qwen-plus-2025-07-28/qwen-qwen-plus-2025-07-28.tests.json +0 -80
  644. package/nodes/qwen-qwen-plus-2025-07-28-thinking/qwen-qwen-plus-2025-07-28-thinking.tests.json +0 -80
  645. package/nodes/qwen-qwen2-5-vl-72b-instruct/qwen-qwen2-5-vl-72b-instruct.tests.json +0 -44
  646. package/nodes/qwen-qwen3-14b/qwen-qwen3-14b.tests.json +0 -80
  647. package/nodes/qwen-qwen3-235b-a22b/qwen-qwen3-235b-a22b.tests.json +0 -80
  648. package/nodes/qwen-qwen3-235b-a22b-2507/qwen-qwen3-235b-a22b-2507.tests.json +0 -80
  649. package/nodes/qwen-qwen3-235b-a22b-thinking-2507/qwen-qwen3-235b-a22b-thinking-2507.tests.json +0 -80
  650. package/nodes/qwen-qwen3-30b-a3b/qwen-qwen3-30b-a3b.tests.json +0 -80
  651. package/nodes/qwen-qwen3-30b-a3b-instruct-2507/qwen-qwen3-30b-a3b-instruct-2507.tests.json +0 -80
  652. package/nodes/qwen-qwen3-30b-a3b-thinking-2507/qwen-qwen3-30b-a3b-thinking-2507.tests.json +0 -80
  653. package/nodes/qwen-qwen3-32b/qwen-qwen3-32b.tests.json +0 -80
  654. package/nodes/qwen-qwen3-5-122b-a10b/qwen-qwen3-5-122b-a10b.tests.json +0 -80
  655. package/nodes/qwen-qwen3-5-27b/qwen-qwen3-5-27b.tests.json +0 -80
  656. package/nodes/qwen-qwen3-5-35b-a3b/qwen-qwen3-5-35b-a3b.tests.json +0 -80
  657. package/nodes/qwen-qwen3-5-397b-a17b/qwen-qwen3-5-397b-a17b.tests.json +0 -80
  658. package/nodes/qwen-qwen3-5-9b/qwen-qwen3-5-9b.tests.json +0 -80
  659. package/nodes/qwen-qwen3-5-flash-02-23/qwen-qwen3-5-flash-02-23.tests.json +0 -80
  660. package/nodes/qwen-qwen3-5-plus-02-15/qwen-qwen3-5-plus-02-15.tests.json +0 -80
  661. package/nodes/qwen-qwen3-5-plus-20260420/qwen-qwen3-5-plus-20260420.tests.json +0 -80
  662. package/nodes/qwen-qwen3-6-27b/qwen-qwen3-6-27b.tests.json +0 -80
  663. package/nodes/qwen-qwen3-6-35b-a3b/qwen-qwen3-6-35b-a3b.tests.json +0 -80
  664. package/nodes/qwen-qwen3-6-flash/qwen-qwen3-6-flash.tests.json +0 -80
  665. package/nodes/qwen-qwen3-6-max-preview/qwen-qwen3-6-max-preview.tests.json +0 -80
  666. package/nodes/qwen-qwen3-6-plus/qwen-qwen3-6-plus.tests.json +0 -80
  667. package/nodes/qwen-qwen3-7-max/qwen-qwen3-7-max.tests.json +0 -80
  668. package/nodes/qwen-qwen3-7-plus/qwen-qwen3-7-plus.tests.json +0 -80
  669. package/nodes/qwen-qwen3-8b/qwen-qwen3-8b.tests.json +0 -80
  670. package/nodes/qwen-qwen3-coder/qwen-qwen3-coder.tests.json +0 -80
  671. package/nodes/qwen-qwen3-coder-30b-a3b-instruct/qwen-qwen3-coder-30b-a3b-instruct.tests.json +0 -80
  672. package/nodes/qwen-qwen3-coder-flash/qwen-qwen3-coder-flash.tests.json +0 -80
  673. package/nodes/qwen-qwen3-coder-free/qwen-qwen3-coder-free.tests.json +0 -80
  674. package/nodes/qwen-qwen3-coder-next/qwen-qwen3-coder-next.tests.json +0 -80
  675. package/nodes/qwen-qwen3-coder-plus/qwen-qwen3-coder-plus.tests.json +0 -80
  676. package/nodes/qwen-qwen3-embedding-4b/qwen-qwen3-embedding-4b.tests.json +0 -48
  677. package/nodes/qwen-qwen3-embedding-8b/qwen-qwen3-embedding-8b.tests.json +0 -48
  678. package/nodes/qwen-qwen3-max/qwen-qwen3-max.tests.json +0 -80
  679. package/nodes/qwen-qwen3-max-thinking/qwen-qwen3-max-thinking.tests.json +0 -80
  680. package/nodes/qwen-qwen3-next-80b-a3b-instruct/qwen-qwen3-next-80b-a3b-instruct.tests.json +0 -80
  681. package/nodes/qwen-qwen3-next-80b-a3b-instruct-free/qwen-qwen3-next-80b-a3b-instruct-free.tests.json +0 -80
  682. package/nodes/qwen-qwen3-next-80b-a3b-thinking/qwen-qwen3-next-80b-a3b-thinking.tests.json +0 -80
  683. package/nodes/qwen-qwen3-vl-235b-a22b-instruct/qwen-qwen3-vl-235b-a22b-instruct.tests.json +0 -80
  684. package/nodes/qwen-qwen3-vl-235b-a22b-thinking/qwen-qwen3-vl-235b-a22b-thinking.tests.json +0 -80
  685. package/nodes/qwen-qwen3-vl-30b-a3b-instruct/qwen-qwen3-vl-30b-a3b-instruct.tests.json +0 -80
  686. package/nodes/qwen-qwen3-vl-30b-a3b-thinking/qwen-qwen3-vl-30b-a3b-thinking.tests.json +0 -80
  687. package/nodes/qwen-qwen3-vl-32b-instruct/qwen-qwen3-vl-32b-instruct.tests.json +0 -80
  688. package/nodes/qwen-qwen3-vl-8b-instruct/qwen-qwen3-vl-8b-instruct.tests.json +0 -80
  689. package/nodes/qwen-qwen3-vl-8b-thinking/qwen-qwen3-vl-8b-thinking.tests.json +0 -80
  690. package/nodes/random-error/random-error.tests.json +0 -38
  691. package/nodes/random-number/random-number.tests.json +0 -59
  692. package/nodes/range/range.tests.json +0 -68
  693. package/nodes/resend-send-email/resend-send-email.tests.json +0 -14
  694. package/nodes/response-format/response-format.tests.json +0 -233
  695. package/nodes/round/round.tests.json +0 -38
  696. package/nodes/route/route.tests.json +0 -90
  697. package/nodes/self-healing-error/self-healing-error.tests.json +0 -34
  698. package/nodes/sendgrid-send-email/sendgrid-send-email.tests.json +0 -41
  699. package/nodes/sentence-transformers-all-minilm-l12-v2/sentence-transformers-all-minilm-l12-v2.tests.json +0 -48
  700. package/nodes/sentence-transformers-all-minilm-l6-v2/sentence-transformers-all-minilm-l6-v2.tests.json +0 -48
  701. package/nodes/sentence-transformers-all-mpnet-base-v2/sentence-transformers-all-mpnet-base-v2.tests.json +0 -48
  702. package/nodes/sentence-transformers-multi-qa-mpnet-base-dot-v1/sentence-transformers-multi-qa-mpnet-base-dot-v1.tests.json +0 -48
  703. package/nodes/sentence-transformers-paraphrase-minilm-l6-v2/sentence-transformers-paraphrase-minilm-l6-v2.tests.json +0 -48
  704. package/nodes/set-object-property/set-object-property.tests.json +0 -173
  705. package/nodes/simple-agent/simple-agent.tests.json +0 -28
  706. package/nodes/slack-send-message/slack-send-message.tests.json +0 -13
  707. package/nodes/split-into-chunks/split-into-chunks.tests.json +0 -74
  708. package/nodes/standard-deviation/standard-deviation.tests.json +0 -49
  709. package/nodes/string/string.tests.json +0 -56
  710. package/nodes/string-case/string-case.tests.json +0 -44
  711. package/nodes/string-concat/string-concat.tests.json +0 -12
  712. package/nodes/string-contains/string-contains.tests.json +0 -58
  713. package/nodes/string-length/string-length.tests.json +0 -22
  714. package/nodes/string-match/string-match.tests.json +0 -82
  715. package/nodes/string-replace/string-replace.tests.json +0 -62
  716. package/nodes/string-split/string-split.tests.json +0 -26
  717. package/nodes/string-substring/string-substring.tests.json +0 -44
  718. package/nodes/string-template/string-template.tests.json +0 -115
  719. package/nodes/string-trim/string-trim.tests.json +0 -38
  720. package/nodes/strip-html/strip-html.tests.json +0 -94
  721. package/nodes/stripe-list-customers/stripe-list-customers.tests.json +0 -24
  722. package/nodes/subtract/subtract.tests.json +0 -41
  723. package/nodes/supabase-query/supabase-query.tests.json +0 -14
  724. package/nodes/switch/switch.tests.json +0 -85
  725. package/nodes/system-prompt/system-prompt.tests.json +0 -113
  726. package/nodes/temperature/temperature.tests.json +0 -47
  727. package/nodes/text-scratch-pad/text-scratch-pad.tests.json +0 -131
  728. package/nodes/text-to-conversation/text-to-conversation.tests.json +0 -132
  729. package/nodes/thenlper-gte-base/thenlper-gte-base.tests.json +0 -48
  730. package/nodes/thenlper-gte-large/thenlper-gte-large.tests.json +0 -48
  731. package/nodes/throw-error/throw-error.tests.json +0 -44
  732. package/nodes/time-adder/time-adder.tests.json +0 -158
  733. package/nodes/timestamp/timestamp.tests.json +0 -90
  734. package/nodes/token-count/token-count.tests.json +0 -163
  735. package/nodes/tokenizer/tokenizer.tests.json +0 -129
  736. package/nodes/tool-cleanup/tool-cleanup.tests.json +0 -160
  737. package/nodes/truncate-by-tokens/truncate-by-tokens.tests.json +0 -84
  738. package/nodes/truncate-by-tokens-from-start/truncate-by-tokens-from-start.tests.json +0 -84
  739. package/nodes/truncate-by-tokens-preserve-system/truncate-by-tokens-preserve-system.tests.json +0 -144
  740. package/nodes/truncate-old-tool-responses/truncate-old-tool-responses.tests.json +0 -207
  741. package/nodes/truncate-text/truncate-text.tests.json +0 -115
  742. package/nodes/twilio-send-sms/twilio-send-sms.tests.json +0 -14
  743. package/nodes/untokenizer/untokenizer.tests.json +0 -83
  744. package/nodes/word-count/word-count.tests.json +0 -100
  745. package/nodes/x-ai-grok-4-20/x-ai-grok-4-20.tests.json +0 -80
  746. package/nodes/x-ai-grok-4-20-multi-agent/x-ai-grok-4-20-multi-agent.tests.json +0 -44
  747. package/nodes/x-ai-grok-4-3/x-ai-grok-4-3.tests.json +0 -80
  748. package/nodes/x-ai-grok-build-0-1/x-ai-grok-build-0-1.tests.json +0 -80
  749. package/nodes/xml-to-json/xml-to-json.tests.json +0 -113
  750. package/nodes/xnor-gate/xnor-gate.tests.json +0 -22
  751. package/nodes/xor-gate/xor-gate.tests.json +0 -22
  752. package/nodes/yaml-to-json/yaml-to-json.tests.json +0 -112
@@ -1,18 +1,38 @@
1
- import OpenAI from 'openai';
1
+ import OpenAI, { AzureOpenAI } from 'openai';
2
2
  import { emitAPICallEvent } from '../utilities/sanitizeAPICall.js';
3
3
 
4
4
  export default class OpenRouterIntegration {
5
5
  constructor(apiKey, options = {}) {
6
-
7
- this.client = new OpenAI({
8
- baseURL: options.baseURL || 'https://openrouter.ai/api/v1',
9
- apiKey: apiKey,
10
- defaultHeaders: {
11
- 'Content-Type': 'application/json',
12
- 'HTTP-Referer': options.referer || 'https://workbench.zerowidth.ai',
13
- 'X-Title': options.title || 'Workbench by ZeroWidth'
14
- }
15
- });
6
+ // dialect: 'openrouter' (default — the platform endpoint, which
7
+ // accepts OpenRouter-specific payload extensions), or a custom
8
+ // OpenAI-compatible endpoint: 'openai' (vLLM/Ollama/TGI/gateways)
9
+ // or 'azure' (Azure OpenAI — deployment routing + api-version).
10
+ // See ADR 0048 Phase 3 in the zerowidth monorepo.
11
+ this.dialect = options.dialect || 'openrouter';
12
+
13
+ const defaultHeaders = {
14
+ 'Content-Type': 'application/json',
15
+ 'HTTP-Referer': options.referer || 'https://workbench.zerowidth.ai',
16
+ 'X-Title': options.title || 'Workbench by ZeroWidth'
17
+ };
18
+
19
+ if (this.dialect === 'azure') {
20
+ // Azure OpenAI: the model name is the deployment; auth is the
21
+ // `api-key` header + a required `api-version`. AzureOpenAI wires
22
+ // all three from these options.
23
+ this.client = new AzureOpenAI({
24
+ endpoint: options.baseURL,
25
+ apiKey: apiKey,
26
+ apiVersion: options.apiVersion || '2024-10-21',
27
+ defaultHeaders
28
+ });
29
+ } else {
30
+ this.client = new OpenAI({
31
+ baseURL: options.baseURL || 'https://openrouter.ai/api/v1',
32
+ apiKey: apiKey,
33
+ defaultHeaders
34
+ });
35
+ }
16
36
  }
17
37
 
18
38
  async chatCompletion(params, nodeConfig = null, engineConfig = null) {
@@ -24,16 +44,20 @@ export default class OpenRouterIntegration {
24
44
  } = params;
25
45
 
26
46
  // Base payload with required fields
27
- const payload = {
28
- model,
29
- provider: {
47
+ const payload = { model };
48
+ // OpenRouter-only extensions: the `provider` routing directive and
49
+ // usage accounting. A custom OpenAI-compatible / Azure endpoint
50
+ // doesn't understand these and strict servers (Azure) reject
51
+ // unknown fields — so only send them to the platform endpoint.
52
+ if (this.dialect === 'openrouter') {
53
+ payload.provider = {
30
54
  data_collection: "deny",
31
55
  require_parameters: true,
32
- },
56
+ };
33
57
  // Request OpenRouter usage accounting so the response carries the
34
58
  // authoritative cost (usage.cost). buildCostData prefers it.
35
- usage: { include: true }
36
- };
59
+ payload.usage = { include: true };
60
+ }
37
61
 
38
62
  // Add messages or prompt (required)
39
63
  if (messages) {
@@ -512,6 +536,11 @@ export default class OpenRouterIntegration {
512
536
  if (totalWeight > 0) {
513
537
  inputCost = totalCost * (inputWeight / totalWeight);
514
538
  outputCost = totalCost * (outputWeight / totalWeight);
539
+ } else if (promptTokens + completionTokens > 0) {
540
+ // Baked pricing has no usable rates (e.g. router models, whose price
541
+ // depends on the model they pick): apportion by token count instead
542
+ inputCost = totalCost * (promptTokens / (promptTokens + completionTokens));
543
+ outputCost = totalCost - inputCost;
515
544
  } else {
516
545
  // No token-weighted basis (e.g. rerank): attribute everything to one line
517
546
  inputCost = totalCost;
@@ -748,4 +777,112 @@ export default class OpenRouterIntegration {
748
777
  throw new Error(error.message);
749
778
  }
750
779
  }
751
- }
780
+
781
+ /**
782
+ * Ask typed questions about a state via OpenRouter's System One endpoint
783
+ * (/systemone) — the "decisions" output modality used by TypeSafe's Jev and
784
+ * other System One-compatible models (Upstage Solar Decide, Respan Span-01,
785
+ * Kev, ...). Not a chat endpoint: the request is { model, state, questions }
786
+ * and the response is { model, answers, usage }, one typed answer per
787
+ * question id (noul / choice / score).
788
+ *
789
+ * @param {Object} params - { model, state, questions }
790
+ * `state` may be a string, object, or array. `questions` is a map of
791
+ * question id -> { type: 'noul'|'choice'|'score', instructions, criteria? }.
792
+ * @param {Object} nodeConfig - node config (provides `pricing` for cost calc)
793
+ * @param {Object} engineConfig - engine config (for API call events)
794
+ * @returns {Promise<Object>} { answers, model, usage, cost_total, cost_itemized }
795
+ */
796
+ async systemOne(params, nodeConfig = null, engineConfig = null) {
797
+ const { model, state, questions } = params;
798
+
799
+ if (state === null || state === undefined) {
800
+ throw new Error('state is required for System One requests');
801
+ }
802
+ if (!questions || typeof questions !== 'object' || Array.isArray(questions) || Object.keys(questions).length === 0) {
803
+ throw new Error('questions must be a non-empty object mapping question ids to { type, instructions, criteria }');
804
+ }
805
+
806
+ const payload = { model, state, questions };
807
+
808
+ const url = `${this.client.baseURL}/systemone`;
809
+ const headers = {
810
+ 'Content-Type': 'application/json',
811
+ 'HTTP-Referer': this.client._options?.defaultHeaders?.['HTTP-Referer'] || 'https://workbench.zerowidth.ai',
812
+ 'X-Title': this.client._options?.defaultHeaders?.['X-Title'] || 'Workbench by ZeroWidth',
813
+ 'Authorization': `Bearer ${this.client._options?.apiKey || ''}`
814
+ };
815
+
816
+ const apiCallStartTime = Date.now();
817
+
818
+ try {
819
+ const res = await fetch(url, {
820
+ method: 'POST',
821
+ headers,
822
+ body: JSON.stringify(payload),
823
+ signal: engineConfig?.signal || this._engineConfig?.signal,
824
+ });
825
+
826
+ if (!res.ok) {
827
+ const errorBody = await res.json().catch(() => null);
828
+ const detail = errorBody?.error?.message || errorBody?.detail;
829
+ const errorMessage = typeof detail === 'string' ? detail : (detail ? JSON.stringify(detail) : `HTTP ${res.status}`);
830
+ throw new Error(`OpenRouter API Error (${res.status}): ${errorMessage}`);
831
+ }
832
+
833
+ const data = await res.json();
834
+
835
+ // System One usage is { input_tokens, output_tokens, cost }; normalize
836
+ // to the chat-style token names used across workbench.
837
+ const promptTokens = data.usage?.input_tokens || 0;
838
+ const completionTokens = data.usage?.output_tokens || 0;
839
+ const usage = {
840
+ prompt_tokens: promptTokens,
841
+ completion_tokens: completionTokens,
842
+ total_tokens: promptTokens + completionTokens
843
+ };
844
+
845
+ let costData = null;
846
+ if (nodeConfig) {
847
+ costData = this.buildCostData({ ...usage, cost: data.usage?.cost }, nodeConfig.pricing);
848
+ }
849
+
850
+ const result = {
851
+ answers: data.answers || {},
852
+ model: data.model || model,
853
+ usage,
854
+ ...(costData && {
855
+ cost_total: costData.totalCost,
856
+ cost_itemized: costData.itemizedCosts
857
+ }),
858
+ };
859
+
860
+ await emitAPICallEvent(engineConfig || this._engineConfig, {
861
+ timestamp: apiCallStartTime,
862
+ integration: 'openrouter',
863
+ nodeId: nodeConfig?.id || null,
864
+ nodeType: nodeConfig?.type || null,
865
+ request: { method: 'POST', url, headers, body: payload },
866
+ response: { status: res.status, statusText: res.statusText, body: result },
867
+ duration: Date.now() - apiCallStartTime,
868
+ error: null
869
+ });
870
+
871
+ return result;
872
+ } catch (error) {
873
+ await emitAPICallEvent(engineConfig || this._engineConfig, {
874
+ timestamp: apiCallStartTime,
875
+ integration: 'openrouter',
876
+ nodeId: nodeConfig?.id || null,
877
+ nodeType: nodeConfig?.type || null,
878
+ request: { method: 'POST', url, headers, body: payload },
879
+ response: { status: error.status || 0, statusText: 'Error', body: null },
880
+ duration: Date.now() - apiCallStartTime,
881
+ error: { message: error.message }
882
+ });
883
+
884
+ console.error('OpenRouter System One Error:', error.message);
885
+ throw new Error(error.message);
886
+ }
887
+ }
888
+ }
@@ -112,13 +112,27 @@ export async function loadNodes(flow) {
112
112
  export async function loadIntegrations(config, flow = null) {
113
113
  const integrations = {};
114
114
 
115
- // Load OpenRouter integration if API key is provided
116
- if (config.keys?.openrouter) {
115
+ // Load the primary LLM integration (OpenAI-compatible chat/completions).
116
+ // Public config is provider-agnostic — `inferenceBaseURL` + `keys.inference`
117
+ // — so a self-hosted host can point the engine at its own endpoint without
118
+ // any "openrouter" branding. `openrouterBaseURL` + `keys.openrouter` remain
119
+ // as backward-compatible aliases (the platform default endpoint stays
120
+ // OpenRouter). The integration is still registered under `openrouter` for
121
+ // the LLM nodes that look it up by that name.
122
+ const inferenceKey = config.keys?.inference ?? config.keys?.openrouter;
123
+ if (inferenceKey) {
117
124
  const openrouterPath = path.join(getDirname(import.meta.url), '../integrations', 'openrouter.js');
125
+ const inferenceBaseURL = config.inferenceBaseURL || config.openrouterBaseURL || 'https://openrouter.ai/api/v1';
126
+ // Only the real OpenRouter endpoint understands the OpenRouter-only
127
+ // payload extensions (provider routing, usage accounting). A custom
128
+ // base URL is a plain OpenAI-compatible endpoint, so use the 'openai'
129
+ // dialect there and don't send those fields (see openrouter.js).
130
+ const isOpenRouterEndpoint = /^https?:\/\/openrouter\.ai(\/|$)/i.test(inferenceBaseURL);
118
131
  try {
119
132
  const OpenRouterIntegration = await import(openrouterPath).then(module => module.default);
120
- integrations.openrouter = new OpenRouterIntegration(config.keys.openrouter, {
121
- baseURL: config.openrouterBaseURL || 'https://openrouter.ai/api/v1',
133
+ integrations.openrouter = new OpenRouterIntegration(inferenceKey, {
134
+ baseURL: inferenceBaseURL,
135
+ dialect: isOpenRouterEndpoint ? 'openrouter' : 'openai',
122
136
  referer: 'https://workbench.zerowidth.ai',
123
137
  title: 'Workbench by ZeroWidth'
124
138
  });
@@ -126,7 +140,28 @@ export async function loadIntegrations(config, flow = null) {
126
140
  throw error;
127
141
  }
128
142
  }
129
-
143
+
144
+ // Bring-your-own inference endpoints (ADR 0048 Phase 3). The host passes
145
+ // `customInferenceProviders: { <name>: { baseURL, apiKey, dialect,
146
+ // apiVersion?, models? } }`. Each becomes an integration keyed
147
+ // `custom:<name>`, reusing the OpenRouter integration's completion logic
148
+ // with a custom destination + dialect. The `custom-inference` node
149
+ // resolves `custom:<provider>` by its settings.
150
+ if (config.customInferenceProviders && typeof config.customInferenceProviders === 'object') {
151
+ const openrouterPath = path.join(getDirname(import.meta.url), '../integrations', 'openrouter.js');
152
+ const OpenRouterIntegration = await import(openrouterPath).then(module => module.default);
153
+ for (const [name, provider] of Object.entries(config.customInferenceProviders)) {
154
+ if (!provider?.baseURL || !provider?.apiKey) continue;
155
+ integrations['custom:' + name] = new OpenRouterIntegration(provider.apiKey, {
156
+ baseURL: provider.baseURL,
157
+ dialect: provider.dialect === 'azure' ? 'azure' : 'openai',
158
+ apiVersion: provider.apiVersion,
159
+ referer: 'https://workbench.zerowidth.ai',
160
+ title: 'Workbench by ZeroWidth'
161
+ });
162
+ }
163
+ }
164
+
130
165
  // Load knowledge base integration if available
131
166
  const knowledgeBaseType = config.knowledgeBase?.type || 'sqlite';
132
167
  const knowledgeBaseConfig = config.knowledgeBase || {};
@@ -1,38 +0,0 @@
1
- [
2
- {
3
- "description": "Positive number",
4
- "inputs": {
5
- "number": 5.7
6
- },
7
- "expected": {
8
- "result": 5.7
9
- }
10
- },
11
- {
12
- "description": "Negative number",
13
- "inputs": {
14
- "number": -3.2
15
- },
16
- "expected": {
17
- "result": 3.2
18
- }
19
- },
20
- {
21
- "description": "Zero",
22
- "inputs": {
23
- "number": 0
24
- },
25
- "expected": {
26
- "result": 0
27
- }
28
- },
29
- {
30
- "description": "Large negative",
31
- "inputs": {
32
- "number": -999999
33
- },
34
- "expected": {
35
- "result": 999999
36
- }
37
- }
38
- ]
@@ -1,17 +0,0 @@
1
- [
2
- {
3
- "description": "Absolute-value of a positive number",
4
- "inputs": { "input": 5 },
5
- "expected": { "output": 5 }
6
- },
7
- {
8
- "description": "Absolute-value of a negative number",
9
- "inputs": { "input": -5 },
10
- "expected": { "output": 5 }
11
- },
12
- {
13
- "description": "Absolute-value of zero",
14
- "inputs": { "input": 0 },
15
- "expected": { "output": 0 }
16
- }
17
- ]
@@ -1,41 +0,0 @@
1
- [
2
- {
3
- "description": "Add positive numbers",
4
- "inputs": {
5
- "a": 5,
6
- "b": 3
7
- },
8
- "expected": {
9
- "result": 8
10
- }
11
- },
12
- {
13
- "description": "Add negative numbers",
14
- "inputs": {
15
- "a": -2,
16
- "b": -4
17
- },
18
- "expected": {
19
- "result": -6
20
- }
21
- },
22
- {
23
- "description": "Add decimals",
24
- "inputs": {
25
- "a": 1.5,
26
- "b": 2.7
27
- },
28
- "expected": {
29
- "result": 4.2
30
- }
31
- },
32
- {
33
- "description": "Handle missing inputs",
34
- "inputs": {
35
- "a": 5
36
- },
37
- "expected": {
38
- "result": 5
39
- }
40
- }
41
- ]
@@ -1,50 +0,0 @@
1
- [
2
- {
3
- "description": "Create record with Name field",
4
- "inputs": {
5
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
6
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
7
- "fields": {
8
- "Name": "Test Record from CI"
9
- }
10
- },
11
- "expected": {
12
- "record": "object",
13
- "id": "string",
14
- "fields": "object",
15
- "created_time": "string"
16
- }
17
- },
18
- {
19
- "description": "Create record with all fields",
20
- "inputs": {
21
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
22
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
23
- "fields": {
24
- "Name": "Full Test Record",
25
- "Status": "Active",
26
- "Count": 42
27
- }
28
- },
29
- "expected": {
30
- "record": "object",
31
- "id": "string",
32
- "fields": "object"
33
- }
34
- },
35
- {
36
- "description": "Create with typecast enabled",
37
- "inputs": {
38
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
39
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
40
- "fields": {
41
- "Name": "Typecast Test",
42
- "Count": "99"
43
- },
44
- "typecast": true
45
- },
46
- "expected": {
47
- "id": "string"
48
- }
49
- }
50
- ]
@@ -1,23 +0,0 @@
1
- [
2
- {
3
- "description": "Delete existing record",
4
- "inputs": {
5
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
6
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
7
- "record_id": "${AIRTABLE_TEST_RECORD_TO_DELETE}"
8
- },
9
- "expected": {
10
- "deleted": true,
11
- "record_id": "string"
12
- }
13
- },
14
- {
15
- "description": "Error on invalid record ID",
16
- "inputs": {
17
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
18
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
19
- "record_id": "recINVALIDXXXXXX"
20
- },
21
- "expectedError": "Airtable API error"
22
- }
23
- ]
@@ -1,25 +0,0 @@
1
- [
2
- {
3
- "description": "Get record by ID",
4
- "inputs": {
5
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
6
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
7
- "record_id": "${AIRTABLE_TEST_RECORD_ID}"
8
- },
9
- "expected": {
10
- "record": "object",
11
- "id": "string",
12
- "fields": "object",
13
- "created_time": "string"
14
- }
15
- },
16
- {
17
- "description": "Error on invalid record ID",
18
- "inputs": {
19
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
20
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
21
- "record_id": "recINVALIDXXXXXX"
22
- },
23
- "expectedError": "Airtable API error"
24
- }
25
- ]
@@ -1,46 +0,0 @@
1
- [
2
- {
3
- "description": "List all records from test table",
4
- "inputs": {
5
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
6
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}"
7
- },
8
- "expected": {
9
- "records": "array"
10
- }
11
- },
12
- {
13
- "description": "Filter records by Status field",
14
- "inputs": {
15
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
16
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
17
- "filter_formula": "{Status} = 'Active'"
18
- },
19
- "expected": {
20
- "records": "array"
21
- }
22
- },
23
- {
24
- "description": "Sort records by Name ascending",
25
- "inputs": {
26
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
27
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
28
- "sort_field": "Name",
29
- "sort_direction": "asc"
30
- },
31
- "expected": {
32
- "records": "array"
33
- }
34
- },
35
- {
36
- "description": "Limit results with max_records",
37
- "inputs": {
38
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
39
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
40
- "max_records": 1
41
- },
42
- "expected": {
43
- "records": "array"
44
- }
45
- }
46
- ]
@@ -1,44 +0,0 @@
1
- [
2
- {
3
- "description": "Update record Name field",
4
- "inputs": {
5
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
6
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
7
- "record_id": "${AIRTABLE_TEST_RECORD_ID}",
8
- "fields": {
9
- "Name": "Updated via Test"
10
- }
11
- },
12
- "expected": {
13
- "record": "object",
14
- "id": "string",
15
- "fields": "object"
16
- }
17
- },
18
- {
19
- "description": "Update multiple fields",
20
- "inputs": {
21
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
22
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
23
- "record_id": "${AIRTABLE_TEST_RECORD_ID}",
24
- "fields": {
25
- "Status": "Inactive",
26
- "Count": 0
27
- }
28
- },
29
- "expected": {
30
- "record": "object",
31
- "id": "string"
32
- }
33
- },
34
- {
35
- "description": "Error on invalid record ID",
36
- "inputs": {
37
- "base_id": "${AIRTABLE_TEST_BASE_ID}",
38
- "table_name": "${AIRTABLE_TEST_TABLE_NAME}",
39
- "record_id": "recINVALIDXXXXXX",
40
- "fields": { "Name": "Should Fail" }
41
- },
42
- "expectedError": "Airtable API error"
43
- }
44
- ]
@@ -1,22 +0,0 @@
1
- [
2
- {
3
- "description": "True and true",
4
- "inputs": { "input1": true, "input2": true },
5
- "expected": { "value": true }
6
- },
7
- {
8
- "description": "True and false",
9
- "inputs": { "input1": true, "input2": false },
10
- "expected": { "value": false }
11
- },
12
- {
13
- "description": "False and true",
14
- "inputs": { "input1": false, "input2": true },
15
- "expected": { "value": false }
16
- },
17
- {
18
- "description": "False and false",
19
- "inputs": { "input1": false, "input2": false },
20
- "expected": { "value": false }
21
- }
22
- ]
@@ -1,80 +0,0 @@
1
- [
2
- {
3
- "description": "Basic chat with default settings",
4
- "inputs": {
5
- "messages": [
6
- {
7
- "role": "user",
8
- "content": "Hello, how are you?"
9
- }
10
- ]
11
- },
12
- "expectedSchema": {
13
- "content": {
14
- "type": "string"
15
- },
16
- "finish_reason": {
17
- "type": "string"
18
- },
19
- "usage": {
20
- "type": "object"
21
- },
22
- "cost_total": {
23
- "type": "number",
24
- "minimum": 0
25
- },
26
- "cost_itemized": {
27
- "type": "array"
28
- }
29
- }
30
- },
31
- {
32
- "description": "Chat with system prompt",
33
- "inputs": {
34
- "system_prompt": "You are a helpful assistant.",
35
- "messages": [
36
- {
37
- "role": "user",
38
- "content": "What is 2+2?"
39
- }
40
- ]
41
- },
42
- "expectedSchema": {
43
- "content": {
44
- "type": "string"
45
- },
46
- "role": {
47
- "type": "string"
48
- },
49
- "finish_reason": {
50
- "type": "string"
51
- },
52
- "usage": {
53
- "type": "object"
54
- }
55
- }
56
- },
57
- {
58
- "description": "With custom temperature",
59
- "inputs": {
60
- "messages": [
61
- {
62
- "role": "user",
63
- "content": "Hello"
64
- }
65
- ],
66
- "temperature": 0.5
67
- },
68
- "expectedSchema": {
69
- "content": {
70
- "type": "string"
71
- },
72
- "finish_reason": {
73
- "type": "string"
74
- },
75
- "usage": {
76
- "type": "object"
77
- }
78
- }
79
- }
80
- ]