@superblocksteam/vite-plugin-file-sync 2.0.49 → 2.0.50

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 (438) hide show
  1. package/dist/ai-service/agent/middleware.d.ts +10 -0
  2. package/dist/ai-service/agent/middleware.d.ts.map +1 -0
  3. package/dist/ai-service/agent/middleware.js +27 -0
  4. package/dist/ai-service/agent/middleware.js.map +1 -0
  5. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  6. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +13 -19
  7. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  8. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +2 -70
  9. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +1 -1
  10. package/dist/ai-service/agent/subagents/apis/generate-api-source.js +20 -21
  11. package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +1 -1
  12. package/dist/ai-service/agent/subagents/apis/state.d.ts +3 -4
  13. package/dist/ai-service/agent/subagents/apis/state.d.ts.map +1 -1
  14. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +1 -1
  15. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +1 -1
  16. package/dist/ai-service/agent/subagents/apis/system-prompt.js +187 -2
  17. package/dist/ai-service/agent/subagents/apis/system-prompt.js.map +1 -1
  18. package/dist/ai-service/agent/subagents/types.d.ts +39 -0
  19. package/dist/ai-service/agent/subagents/types.d.ts.map +1 -0
  20. package/dist/ai-service/agent/subagents/types.js +40 -0
  21. package/dist/ai-service/agent/subagents/types.js.map +1 -0
  22. package/dist/ai-service/agent/tool-message-utils.d.ts +1 -2
  23. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  25. package/dist/ai-service/agent/tools/apis/build-api.d.ts +1 -0
  26. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  27. package/dist/ai-service/agent/tools/apis/build-api.js +113 -89
  28. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  29. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts.map +1 -1
  30. package/dist/ai-service/agent/tools/apis/finalize-api.js +27 -15
  31. package/dist/ai-service/agent/tools/apis/finalize-api.js.map +1 -1
  32. package/dist/ai-service/agent/tools/build-list-available-components.d.ts +6 -1
  33. package/dist/ai-service/agent/tools/build-list-available-components.d.ts.map +1 -1
  34. package/dist/ai-service/agent/tools/build-list-available-components.js +23 -7
  35. package/dist/ai-service/agent/tools/build-list-available-components.js.map +1 -1
  36. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
  37. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  38. package/dist/ai-service/agent/tools/debug-cache.js +36 -1
  39. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  40. package/dist/ai-service/agent/tools/integrations/execute-request.js +1 -1
  41. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  42. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
  43. package/dist/ai-service/agent/tools/integrations/metadata.js +2 -3
  44. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
  45. package/dist/ai-service/agent/tools.d.ts +2 -2
  46. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  47. package/dist/ai-service/agent/tools.js +24 -11
  48. package/dist/ai-service/agent/tools.js.map +1 -1
  49. package/dist/ai-service/agent/tools2/access-control.d.ts +50 -20
  50. package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
  51. package/dist/ai-service/agent/tools2/access-control.js +122 -51
  52. package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
  53. package/dist/ai-service/agent/tools2/registry.d.ts +27 -22
  54. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  55. package/dist/ai-service/agent/tools2/registry.js +77 -46
  56. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  57. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +1 -1
  58. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  59. package/dist/ai-service/agent/tools2/types.d.ts +20 -12
  60. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  61. package/dist/ai-service/agent/tools2/types.js +4 -0
  62. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  63. package/dist/ai-service/agent/utils.d.ts +2 -2
  64. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  65. package/dist/ai-service/agent/utils.js +12 -68
  66. package/dist/ai-service/agent/utils.js.map +1 -1
  67. package/dist/ai-service/app-interface/shell.d.ts +2 -0
  68. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  69. package/dist/ai-service/app-interface/shell.js +14 -1
  70. package/dist/ai-service/app-interface/shell.js.map +1 -1
  71. package/dist/ai-service/index.d.ts +20 -0
  72. package/dist/ai-service/index.d.ts.map +1 -1
  73. package/dist/ai-service/index.js +76 -6
  74. package/dist/ai-service/index.js.map +1 -1
  75. package/dist/ai-service/integrations/store.d.ts +2 -1
  76. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  77. package/dist/ai-service/integrations/store.js +30 -7
  78. package/dist/ai-service/integrations/store.js.map +1 -1
  79. package/dist/ai-service/llm/chaos-fetch.d.ts +102 -0
  80. package/dist/ai-service/llm/chaos-fetch.d.ts.map +1 -0
  81. package/dist/ai-service/llm/chaos-fetch.js +196 -0
  82. package/dist/ai-service/llm/chaos-fetch.js.map +1 -0
  83. package/dist/ai-service/llm/context/context-lock.d.ts +1 -0
  84. package/dist/ai-service/llm/context/context-lock.d.ts.map +1 -1
  85. package/dist/ai-service/llm/context/context-lock.js +4 -0
  86. package/dist/ai-service/llm/context/context-lock.js.map +1 -1
  87. package/dist/ai-service/llm/context/context.d.ts +6 -0
  88. package/dist/ai-service/llm/context/context.d.ts.map +1 -1
  89. package/dist/ai-service/llm/context/context.js +25 -1
  90. package/dist/ai-service/llm/context/context.js.map +1 -1
  91. package/dist/ai-service/llm/error.d.ts +54 -0
  92. package/dist/ai-service/llm/error.d.ts.map +1 -0
  93. package/dist/ai-service/llm/error.js +148 -0
  94. package/dist/ai-service/llm/error.js.map +1 -0
  95. package/dist/ai-service/llm/middleware/retry.d.ts +112 -0
  96. package/dist/ai-service/llm/middleware/retry.d.ts.map +1 -0
  97. package/dist/ai-service/llm/middleware/retry.js +239 -0
  98. package/dist/ai-service/llm/middleware/retry.js.map +1 -0
  99. package/dist/ai-service/llm/provider.d.ts +2 -1
  100. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  101. package/dist/ai-service/llm/provider.js +11 -3
  102. package/dist/ai-service/llm/provider.js.map +1 -1
  103. package/dist/ai-service/llm/types.d.ts +2 -1
  104. package/dist/ai-service/llm/types.d.ts.map +1 -1
  105. package/dist/ai-service/llm/util/provider-errors.d.ts +4 -0
  106. package/dist/ai-service/llm/util/provider-errors.d.ts.map +1 -0
  107. package/dist/ai-service/llm/util/provider-errors.js +35 -0
  108. package/dist/ai-service/llm/util/provider-errors.js.map +1 -0
  109. package/dist/ai-service/llmobs/helpers.d.ts +8 -7
  110. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
  111. package/dist/ai-service/llmobs/helpers.js +16 -14
  112. package/dist/ai-service/llmobs/helpers.js.map +1 -1
  113. package/dist/ai-service/prompt-builder-service/index.d.ts +0 -1
  114. package/dist/ai-service/prompt-builder-service/index.d.ts.map +1 -1
  115. package/dist/ai-service/prompt-builder-service/index.js +0 -1
  116. package/dist/ai-service/prompt-builder-service/index.js.map +1 -1
  117. package/dist/ai-service/state-machine/clark-fsm.d.ts +11 -2
  118. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  119. package/dist/ai-service/state-machine/clark-fsm.js +22 -0
  120. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  121. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  122. package/dist/ai-service/state-machine/handlers/agent-planning.js +58 -90
  123. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  124. package/dist/ai-service/state-machine/handlers/idle.js +1 -1
  125. package/dist/ai-service/state-machine/handlers/idle.js.map +1 -1
  126. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  127. package/dist/ai-service/state-machine/handlers/llm-generating.js +30 -4
  128. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  129. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  130. package/dist/ai-service/state-machine/mocks.js +1 -0
  131. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  132. package/dist/ai-service/test-utils/error-mocks.d.ts +69 -0
  133. package/dist/ai-service/test-utils/error-mocks.d.ts.map +1 -0
  134. package/dist/ai-service/test-utils/error-mocks.js +327 -0
  135. package/dist/ai-service/test-utils/error-mocks.js.map +1 -0
  136. package/dist/ai-service/types.d.ts +42 -11
  137. package/dist/ai-service/types.d.ts.map +1 -1
  138. package/dist/ai-service/types.js +37 -1
  139. package/dist/ai-service/types.js.map +1 -1
  140. package/dist/ai-service/util/backoff-strategy.d.ts +72 -0
  141. package/dist/ai-service/util/backoff-strategy.d.ts.map +1 -0
  142. package/dist/ai-service/util/backoff-strategy.js +45 -0
  143. package/dist/ai-service/util/backoff-strategy.js.map +1 -0
  144. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  145. package/dist/file-sync-vite-plugin.js +48 -28
  146. package/dist/file-sync-vite-plugin.js.map +1 -1
  147. package/dist/lock-service/activity-tracker.d.ts +39 -0
  148. package/dist/lock-service/activity-tracker.d.ts.map +1 -0
  149. package/dist/lock-service/activity-tracker.js +80 -0
  150. package/dist/lock-service/activity-tracker.js.map +1 -0
  151. package/dist/lock-service/index.d.ts +30 -9
  152. package/dist/lock-service/index.d.ts.map +1 -1
  153. package/dist/lock-service/index.js +120 -37
  154. package/dist/lock-service/index.js.map +1 -1
  155. package/dist/socket-manager.d.ts.map +1 -1
  156. package/dist/socket-manager.js +7 -4
  157. package/dist/socket-manager.js.map +1 -1
  158. package/package.json +10 -14
  159. package/dist/ai-service/evals/content-matchers/index.d.ts +0 -15
  160. package/dist/ai-service/evals/content-matchers/index.d.ts.map +0 -1
  161. package/dist/ai-service/evals/content-matchers/index.js +0 -184
  162. package/dist/ai-service/evals/content-matchers/index.js.map +0 -1
  163. package/dist/ai-service/evals/fixtures/api-gen/get-orders-from-postgres-integrations.d.ts +0 -20
  164. package/dist/ai-service/evals/fixtures/api-gen/get-orders-from-postgres-integrations.d.ts.map +0 -1
  165. package/dist/ai-service/evals/fixtures/api-gen/get-orders-from-postgres-integrations.js +0 -50
  166. package/dist/ai-service/evals/fixtures/api-gen/get-orders-from-postgres-integrations.js.map +0 -1
  167. package/dist/ai-service/evals/fixtures/api-gen/get-salesforce-accounts-integrations.d.ts +0 -13
  168. package/dist/ai-service/evals/fixtures/api-gen/get-salesforce-accounts-integrations.d.ts.map +0 -1
  169. package/dist/ai-service/evals/fixtures/api-gen/get-salesforce-accounts-integrations.js +0 -51
  170. package/dist/ai-service/evals/fixtures/api-gen/get-salesforce-accounts-integrations.js.map +0 -1
  171. package/dist/ai-service/evals/fixtures/doordash-prompt-integrations.d.ts +0 -43
  172. package/dist/ai-service/evals/fixtures/doordash-prompt-integrations.d.ts.map +0 -1
  173. package/dist/ai-service/evals/fixtures/doordash-prompt-integrations.js +0 -2172
  174. package/dist/ai-service/evals/fixtures/doordash-prompt-integrations.js.map +0 -1
  175. package/dist/ai-service/evals/fixtures/example-db-schemas.d.ts +0 -21
  176. package/dist/ai-service/evals/fixtures/example-db-schemas.d.ts.map +0 -1
  177. package/dist/ai-service/evals/fixtures/example-db-schemas.js +0 -525
  178. package/dist/ai-service/evals/fixtures/example-db-schemas.js.map +0 -1
  179. package/dist/ai-service/evals/fixtures/j-and-j-prompt-integrations.d.ts +0 -43
  180. package/dist/ai-service/evals/fixtures/j-and-j-prompt-integrations.d.ts.map +0 -1
  181. package/dist/ai-service/evals/fixtures/j-and-j-prompt-integrations.js +0 -2172
  182. package/dist/ai-service/evals/fixtures/j-and-j-prompt-integrations.js.map +0 -1
  183. package/dist/ai-service/evals/fixtures/linkedin-prompt-integrations.d.ts +0 -43
  184. package/dist/ai-service/evals/fixtures/linkedin-prompt-integrations.d.ts.map +0 -1
  185. package/dist/ai-service/evals/fixtures/linkedin-prompt-integrations.js +0 -2172
  186. package/dist/ai-service/evals/fixtures/linkedin-prompt-integrations.js.map +0 -1
  187. package/dist/ai-service/evals/fixtures/open-api-example-schemas.d.ts +0 -1591
  188. package/dist/ai-service/evals/fixtures/open-api-example-schemas.d.ts.map +0 -1
  189. package/dist/ai-service/evals/fixtures/open-api-example-schemas.js +0 -1766
  190. package/dist/ai-service/evals/fixtures/open-api-example-schemas.js.map +0 -1
  191. package/dist/ai-service/evals/fixtures/pfizer-prompt-integrations.d.ts +0 -36
  192. package/dist/ai-service/evals/fixtures/pfizer-prompt-integrations.d.ts.map +0 -1
  193. package/dist/ai-service/evals/fixtures/pfizer-prompt-integrations.js +0 -2166
  194. package/dist/ai-service/evals/fixtures/pfizer-prompt-integrations.js.map +0 -1
  195. package/dist/ai-service/evals/helpers/critical-scorers.d.ts +0 -12
  196. package/dist/ai-service/evals/helpers/critical-scorers.d.ts.map +0 -1
  197. package/dist/ai-service/evals/helpers/critical-scorers.js +0 -451
  198. package/dist/ai-service/evals/helpers/critical-scorers.js.map +0 -1
  199. package/dist/ai-service/evals/helpers/eval-scoring.d.ts +0 -127
  200. package/dist/ai-service/evals/helpers/eval-scoring.d.ts.map +0 -1
  201. package/dist/ai-service/evals/helpers/eval-scoring.js +0 -201
  202. package/dist/ai-service/evals/helpers/eval-scoring.js.map +0 -1
  203. package/dist/ai-service/evals/helpers/index.d.ts +0 -68
  204. package/dist/ai-service/evals/helpers/index.d.ts.map +0 -1
  205. package/dist/ai-service/evals/helpers/index.js +0 -556
  206. package/dist/ai-service/evals/helpers/index.js.map +0 -1
  207. package/dist/ai-service/evals/helpers/non-critical-scorers.d.ts +0 -6
  208. package/dist/ai-service/evals/helpers/non-critical-scorers.d.ts.map +0 -1
  209. package/dist/ai-service/evals/helpers/non-critical-scorers.js +0 -197
  210. package/dist/ai-service/evals/helpers/non-critical-scorers.js.map +0 -1
  211. package/dist/ai-service/evals/helpers/scorer-types.d.ts +0 -39
  212. package/dist/ai-service/evals/helpers/scorer-types.d.ts.map +0 -1
  213. package/dist/ai-service/evals/helpers/scorer-types.js +0 -19
  214. package/dist/ai-service/evals/helpers/scorer-types.js.map +0 -1
  215. package/dist/ai-service/evals/llm-provider.d.ts +0 -3
  216. package/dist/ai-service/evals/llm-provider.d.ts.map +0 -1
  217. package/dist/ai-service/evals/llm-provider.js +0 -14
  218. package/dist/ai-service/evals/llm-provider.js.map +0 -1
  219. package/dist/ai-service/evals/load-env-vars.d.ts +0 -2
  220. package/dist/ai-service/evals/load-env-vars.d.ts.map +0 -1
  221. package/dist/ai-service/evals/load-env-vars.js +0 -11
  222. package/dist/ai-service/evals/load-env-vars.js.map +0 -1
  223. package/dist/ai-service/llmobs/middleware/retry.d.ts +0 -51
  224. package/dist/ai-service/llmobs/middleware/retry.d.ts.map +0 -1
  225. package/dist/ai-service/llmobs/middleware/retry.js +0 -147
  226. package/dist/ai-service/llmobs/middleware/retry.js.map +0 -1
  227. package/dist/ai-service/prompt-builder-service/builders/code-generation.d.ts +0 -8
  228. package/dist/ai-service/prompt-builder-service/builders/code-generation.d.ts.map +0 -1
  229. package/dist/ai-service/prompt-builder-service/builders/code-generation.js +0 -145
  230. package/dist/ai-service/prompt-builder-service/builders/code-generation.js.map +0 -1
  231. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.d.ts +0 -13
  232. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.d.ts.map +0 -1
  233. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.js +0 -71
  234. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.js.map +0 -1
  235. package/dist/ai-service/prompt-builder-service/builders/specific-edits.d.ts +0 -13
  236. package/dist/ai-service/prompt-builder-service/builders/specific-edits.d.ts.map +0 -1
  237. package/dist/ai-service/prompt-builder-service/builders/specific-edits.js +0 -71
  238. package/dist/ai-service/prompt-builder-service/builders/specific-edits.js.map +0 -1
  239. package/dist/ai-service/prompt-builder-service/constants/index.d.ts +0 -4
  240. package/dist/ai-service/prompt-builder-service/constants/index.d.ts.map +0 -1
  241. package/dist/ai-service/prompt-builder-service/constants/index.js +0 -54
  242. package/dist/ai-service/prompt-builder-service/constants/index.js.map +0 -1
  243. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.d.ts +0 -4
  244. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.d.ts.map +0 -1
  245. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.js +0 -66
  246. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.js.map +0 -1
  247. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.d.ts +0 -5
  248. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.d.ts.map +0 -1
  249. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.js +0 -50
  250. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.js.map +0 -1
  251. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts +0 -8
  252. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts.map +0 -1
  253. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js +0 -54
  254. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js.map +0 -1
  255. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts +0 -4
  256. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts.map +0 -1
  257. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js +0 -17
  258. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js.map +0 -1
  259. package/dist/ai-service/prompt-builder-service/fragment-generators/integration-fragments.d.ts +0 -4
  260. package/dist/ai-service/prompt-builder-service/fragment-generators/integration-fragments.d.ts.map +0 -1
  261. package/dist/ai-service/prompt-builder-service/fragment-generators/integration-fragments.js +0 -20
  262. package/dist/ai-service/prompt-builder-service/fragment-generators/integration-fragments.js.map +0 -1
  263. package/dist/ai-service/prompt-builder-service/static-fragments/index.d.ts +0 -4
  264. package/dist/ai-service/prompt-builder-service/static-fragments/index.d.ts.map +0 -1
  265. package/dist/ai-service/prompt-builder-service/static-fragments/index.js +0 -6
  266. package/dist/ai-service/prompt-builder-service/static-fragments/index.js.map +0 -1
  267. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.d.ts +0 -2
  268. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.d.ts.map +0 -1
  269. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +0 -6
  270. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js.map +0 -1
  271. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.d.ts +0 -2
  272. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.d.ts.map +0 -1
  273. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +0 -6
  274. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js.map +0 -1
  275. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.d.ts +0 -2
  276. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.d.ts.map +0 -1
  277. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +0 -6
  278. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js.map +0 -1
  279. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.d.ts +0 -2
  280. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.d.ts.map +0 -1
  281. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +0 -6
  282. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js.map +0 -1
  283. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.d.ts +0 -2
  284. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.d.ts.map +0 -1
  285. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +0 -6
  286. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js.map +0 -1
  287. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.d.ts +0 -2
  288. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.d.ts.map +0 -1
  289. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +0 -6
  290. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js.map +0 -1
  291. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.d.ts +0 -2
  292. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.d.ts.map +0 -1
  293. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +0 -6
  294. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js.map +0 -1
  295. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.d.ts +0 -2
  296. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.d.ts.map +0 -1
  297. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +0 -6
  298. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js.map +0 -1
  299. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.d.ts +0 -2
  300. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.d.ts.map +0 -1
  301. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +0 -6
  302. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js.map +0 -1
  303. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.d.ts +0 -2
  304. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.d.ts.map +0 -1
  305. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +0 -6
  306. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js.map +0 -1
  307. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.d.ts +0 -2
  308. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.d.ts.map +0 -1
  309. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +0 -6
  310. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js.map +0 -1
  311. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.d.ts +0 -2
  312. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.d.ts.map +0 -1
  313. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +0 -6
  314. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js.map +0 -1
  315. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.d.ts +0 -2
  316. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.d.ts.map +0 -1
  317. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +0 -6
  318. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js.map +0 -1
  319. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.d.ts +0 -2
  320. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.d.ts.map +0 -1
  321. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +0 -6
  322. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js.map +0 -1
  323. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.d.ts +0 -2
  324. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.d.ts.map +0 -1
  325. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +0 -6
  326. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js.map +0 -1
  327. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.d.ts +0 -2
  328. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.d.ts.map +0 -1
  329. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +0 -6
  330. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js.map +0 -1
  331. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/index.d.ts +0 -17
  332. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/index.d.ts.map +0 -1
  333. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/index.js +0 -19
  334. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/index.js.map +0 -1
  335. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.d.ts +0 -2
  336. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.d.ts.map +0 -1
  337. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +0 -6
  338. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js.map +0 -1
  339. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.d.ts +0 -2
  340. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.d.ts.map +0 -1
  341. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +0 -6
  342. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js.map +0 -1
  343. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.d.ts +0 -2
  344. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.d.ts.map +0 -1
  345. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +0 -6
  346. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js.map +0 -1
  347. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/index.d.ts +0 -4
  348. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/index.d.ts.map +0 -1
  349. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/index.js +0 -6
  350. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/index.js.map +0 -1
  351. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.d.ts +0 -2
  352. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.d.ts.map +0 -1
  353. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +0 -6
  354. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js.map +0 -1
  355. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.d.ts +0 -17
  356. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.d.ts.map +0 -1
  357. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.js +0 -19
  358. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.js.map +0 -1
  359. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts +0 -2
  360. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts.map +0 -1
  361. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +0 -6
  362. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js.map +0 -1
  363. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.d.ts +0 -2
  364. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.d.ts.map +0 -1
  365. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +0 -6
  366. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js.map +0 -1
  367. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.d.ts +0 -2
  368. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.d.ts.map +0 -1
  369. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +0 -6
  370. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js.map +0 -1
  371. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.d.ts +0 -2
  372. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.d.ts.map +0 -1
  373. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +0 -6
  374. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js.map +0 -1
  375. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.d.ts +0 -2
  376. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.d.ts.map +0 -1
  377. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +0 -6
  378. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js.map +0 -1
  379. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.d.ts +0 -2
  380. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.d.ts.map +0 -1
  381. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +0 -6
  382. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js.map +0 -1
  383. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.d.ts +0 -2
  384. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.d.ts.map +0 -1
  385. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +0 -6
  386. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js.map +0 -1
  387. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.d.ts +0 -2
  388. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.d.ts.map +0 -1
  389. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +0 -6
  390. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js.map +0 -1
  391. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.d.ts +0 -2
  392. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.d.ts.map +0 -1
  393. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +0 -6
  394. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js.map +0 -1
  395. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.d.ts +0 -2
  396. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.d.ts.map +0 -1
  397. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +0 -6
  398. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js.map +0 -1
  399. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.d.ts +0 -2
  400. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.d.ts.map +0 -1
  401. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +0 -6
  402. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js.map +0 -1
  403. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.d.ts +0 -2
  404. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.d.ts.map +0 -1
  405. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js +0 -6
  406. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js.map +0 -1
  407. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.d.ts +0 -2
  408. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.d.ts.map +0 -1
  409. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +0 -6
  410. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js.map +0 -1
  411. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts +0 -2
  412. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts.map +0 -1
  413. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +0 -6
  414. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js.map +0 -1
  415. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.d.ts +0 -2
  416. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.d.ts.map +0 -1
  417. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +0 -6
  418. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js.map +0 -1
  419. package/dist/ai-service/prompt-builder-service/utils/chakra/extract-chakra-tokens.d.ts +0 -18
  420. package/dist/ai-service/prompt-builder-service/utils/chakra/extract-chakra-tokens.d.ts.map +0 -1
  421. package/dist/ai-service/prompt-builder-service/utils/chakra/extract-chakra-tokens.js +0 -340
  422. package/dist/ai-service/prompt-builder-service/utils/chakra/extract-chakra-tokens.js.map +0 -1
  423. package/dist/ai-service/prompt-builder-service/utils/formatting.d.ts +0 -3
  424. package/dist/ai-service/prompt-builder-service/utils/formatting.d.ts.map +0 -1
  425. package/dist/ai-service/prompt-builder-service/utils/formatting.js +0 -13
  426. package/dist/ai-service/prompt-builder-service/utils/formatting.js.map +0 -1
  427. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts +0 -5
  428. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts.map +0 -1
  429. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js +0 -40
  430. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js.map +0 -1
  431. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts +0 -12
  432. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts.map +0 -1
  433. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js +0 -83
  434. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js.map +0 -1
  435. package/dist/ai-service/util/retry-on-timeout.d.ts +0 -93
  436. package/dist/ai-service/util/retry-on-timeout.d.ts.map +0 -1
  437. package/dist/ai-service/util/retry-on-timeout.js +0 -153
  438. package/dist/ai-service/util/retry-on-timeout.js.map +0 -1
@@ -0,0 +1,148 @@
1
+ import { APICallError } from "ai";
2
+ import { safeJsonStringify } from "../util/safe-stringify.js";
3
+ const ERROR_MAPPINGS = {
4
+ // Anthropic errors
5
+ rate_limit_error: "rate_limit",
6
+ request_too_large: "request_too_large",
7
+ authentication_error: "authentication",
8
+ permission_error: "permission",
9
+ not_found_error: "not_found",
10
+ api_error: "server_error",
11
+ invalid_request_error: "validation",
12
+ overloaded_error: "overloaded",
13
+ // Bedrock errors
14
+ ThrottlingException: "rate_limit",
15
+ AccessDeniedException: "permission",
16
+ NotAuthorized: "permission",
17
+ InvalidClientTokenId: "authentication",
18
+ UnrecognizedClientException: "authentication",
19
+ ResourceNotFound: "not_found",
20
+ InternalFailure: "server_error",
21
+ ValidationError: "validation",
22
+ InvalidAction: "validation",
23
+ IncompleteSignature: "validation",
24
+ RequestExpired: "request_expired",
25
+ ServiceUnavailable: "overloaded",
26
+ // Clark errors
27
+ server_error: "server_error",
28
+ };
29
+ const name = "SB_LLMProviderError";
30
+ const marker = `superblocks.ai.error.${name}`;
31
+ const symbol = Symbol.for(marker);
32
+ export class LLMProviderError {
33
+ [symbol] = true; // used in isInstance
34
+ messages = ["Failed to get response from LLM provider"];
35
+ name = "LLMProviderError";
36
+ provider;
37
+ type = "unknown";
38
+ url;
39
+ statusCode;
40
+ isRetryable = true;
41
+ data;
42
+ cause;
43
+ constructor({ provider, message, aborted, cause, }) {
44
+ this.provider = provider;
45
+ if (message) {
46
+ this.messages[0] = message;
47
+ }
48
+ if (aborted) {
49
+ this.isRetryable = false;
50
+ this.type = "aborted";
51
+ return;
52
+ }
53
+ if (!cause) {
54
+ return;
55
+ }
56
+ this.cause = cause;
57
+ if (APICallError.isInstance(cause)) {
58
+ this.messages.push(cause.message);
59
+ this.statusCode = cause.statusCode;
60
+ this.url = cause.url;
61
+ this.isRetryable = cause.isRetryable;
62
+ if (cause.data) {
63
+ this.data = normalizeProviderErrorData(cause.data);
64
+ this.messages.push(this.data.message);
65
+ if (this.data.type) {
66
+ this.type =
67
+ ERROR_MAPPINGS[this.data.type] ||
68
+ "server_error";
69
+ }
70
+ }
71
+ }
72
+ else if (cause instanceof Error) {
73
+ this.messages.push(cause.message);
74
+ this.type = "server_error";
75
+ }
76
+ }
77
+ set message(message) {
78
+ this.messages[0] = message;
79
+ }
80
+ get message() {
81
+ return this.messages.join(": ");
82
+ }
83
+ toJSON() {
84
+ return {
85
+ name: this.name,
86
+ type: this.type,
87
+ message: this.message,
88
+ url: this.url,
89
+ statusCode: this.statusCode,
90
+ isRetryable: this.isRetryable,
91
+ data: this.data,
92
+ cause: this.cause,
93
+ };
94
+ }
95
+ static hasMarker(error, marker) {
96
+ const markerSymbol = Symbol.for(marker);
97
+ return (error != null &&
98
+ typeof error === "object" &&
99
+ markerSymbol in error &&
100
+ typeof error[markerSymbol] === "boolean" &&
101
+ error[markerSymbol] === true);
102
+ }
103
+ static isInstance(error) {
104
+ return LLMProviderError.hasMarker(error, marker);
105
+ }
106
+ }
107
+ function normalizeProviderErrorData(data) {
108
+ // Use type guards to narrow parsed.data type
109
+ if (isAnthropicErrorData(data)) {
110
+ // Anthropic/Vertex: { data: { error: { message, type } } }
111
+ return { type: data.error.type, message: data.error.message };
112
+ }
113
+ else if (isBedrockErrorData(data)) {
114
+ // Bedrock: { data: { message, type } }
115
+ return { type: data.type || undefined, message: data.message };
116
+ }
117
+ else if (isClarkErrorData(data)) {
118
+ // Clark: { data: { responseMetadata: { message, ... } } }
119
+ return { type: "server_error", message: data.responseMetadata.message };
120
+ }
121
+ return { message: `Unknown error format: ${safeJsonStringify(data)}` };
122
+ }
123
+ // Type guard for Anthropic/Vertex error format
124
+ function isAnthropicErrorData(data) {
125
+ return (typeof data === "object" &&
126
+ data !== null &&
127
+ "error" in data &&
128
+ typeof data.error === "object" &&
129
+ data.error !== null &&
130
+ "message" in data.error &&
131
+ "type" in data.error);
132
+ }
133
+ // Type guard for Bedrock error format
134
+ function isBedrockErrorData(data) {
135
+ return (typeof data === "object" &&
136
+ data !== null &&
137
+ "message" in data &&
138
+ typeof data.message === "string");
139
+ }
140
+ // Type guard for Clark error format
141
+ function isClarkErrorData(data) {
142
+ return (typeof data === "object" &&
143
+ data !== null &&
144
+ "responseMetadata" in data &&
145
+ typeof data.responseMetadata === "object" &&
146
+ data.responseMetadata !== null);
147
+ }
148
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/ai-service/llm/error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Retry middleware for AI SDK language models.
3
+ *
4
+ * Provides automatic retry functionality for streaming operations that fail
5
+ * due to transient network errors (e.g., timeouts). This middleware operates
6
+ * at the LanguageModelV2 level, retrying doStream() calls with exponential
7
+ * backoff.
8
+ *
9
+ * **Two-phase retry architecture:**
10
+ * 1. **Initial call retry**: Retries HTTP-level errors when calling doStream() to get metadata
11
+ * 2. **Stream consumption retry**: Retries mid-stream errors during stream consumption
12
+ *
13
+ * **Separate retry budgets:**
14
+ * Each phase has its own independent retry budget. For example, with maxRetries: 3:
15
+ * - Phase 1 can retry up to 3 times (4 total attempts to get initial metadata)
16
+ * - Phase 2 can retry up to 3 times (4 total attempts to consume stream)
17
+ * - Maximum total attempts: 4 (phase 1) + 4 (phase 2) = 8
18
+ *
19
+ * This design ensures that failures in one phase don't prevent retries in the other phase.
20
+ *
21
+ * Handles two error types:
22
+ * 1. HTTP-level errors: doStream() throws an exception (retried in phase 1)
23
+ * 2. Stream-level errors: error chunks in the stream or connection drops (retried in phase 2)
24
+ *
25
+ * **Default retry strategy: Permissive**
26
+ * - Retries all errors except known permanent failures (auth, permission, invalid request)
27
+ * - Handles rate limits, server overload, timeouts, network issues
28
+ * - Future-proof: retries unknown error types
29
+ *
30
+ * By default, retries are unlimited but can be constrained by maxRetries and/or
31
+ * maxTotalRetryTimeMs options.
32
+ */
33
+ import { type Logger } from "../../../util/logger.js";
34
+ import { type BackoffStrategy } from "../../util/backoff-strategy.js";
35
+ import type { LanguageModelV2Middleware } from "@ai-sdk/provider";
36
+ import type { LLMProviderConfig } from "@superblocksteam/library-shared/types";
37
+ export interface RetryOptions {
38
+ /**
39
+ * Maximum number of retry attempts (not including the initial attempt).
40
+ * Default: unlimited
41
+ */
42
+ maxRetries?: number;
43
+ /**
44
+ * Custom backoff strategy for calculating retry delays.
45
+ * If not provided, uses ExponentialBackoff with initialDelayMs, maxDelayMs, and backoffMultiplier.
46
+ */
47
+ backoffStrategy?: BackoffStrategy;
48
+ /**
49
+ * Initial delay in milliseconds before the first retry.
50
+ * Subsequent retries use exponential backoff.
51
+ * Only used if backoffStrategy is not provided.
52
+ * Default: 500 (0.5 seconds)
53
+ */
54
+ initialDelayMs?: number;
55
+ /**
56
+ * Maximum delay in milliseconds for exponential backoff.
57
+ * Only used if backoffStrategy is not provided.
58
+ * Default: 5000 (5 seconds)
59
+ */
60
+ maxDelayMs?: number;
61
+ /**
62
+ * Backoff multiplier for exponential backoff.
63
+ * Only used if backoffStrategy is not provided.
64
+ * Default: 2
65
+ */
66
+ backoffMultiplier?: number;
67
+ /**
68
+ * Maximum total time in milliseconds for all retry attempts.
69
+ * If retries exceed this total time, no more retries will be attempted.
70
+ * Default: undefined (no time limit)
71
+ */
72
+ maxTotalRetryTimeMs?: number;
73
+ /**
74
+ * Function to determine if an error is retryable.
75
+ * Default: checks for timeout and connection errors
76
+ */
77
+ isRetryable?: (error: unknown) => boolean;
78
+ /**
79
+ * Callback invoked before each retry attempt.
80
+ */
81
+ onRetry?: (error: unknown, attempt: number, delayMs: number, totalRetryTimeMs: number) => void | Promise<void>;
82
+ /**
83
+ * Optional abort signal to cancel retry attempts.
84
+ * When the signal is aborted, no further retries will be attempted.
85
+ */
86
+ abortSignal?: AbortSignal;
87
+ }
88
+ /**
89
+ * Creates retry middleware for LanguageModelV2.
90
+ *
91
+ * This middleware wraps the doStream function and automatically retries
92
+ * both HTTP-level errors (thrown exceptions) and stream-level errors
93
+ * (error chunks in the stream). Retries use exponential backoff and
94
+ * respect configured limits.
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * // Unlimited retries with 2-minute time limit
99
+ * const middleware = retryMiddleware("bedrock", { maxTotalRetryTimeMs: 120000 });
100
+ *
101
+ * // Limit to 3 retries
102
+ * const middleware = retryMiddleware("bedrock", { maxRetries: 3 });
103
+ *
104
+ * // Apply to model
105
+ * const model = wrapLanguageModel({
106
+ * model: baseModel,
107
+ * middleware: [middleware]
108
+ * });
109
+ * ```
110
+ */
111
+ export declare function retryMiddleware(provider: LLMProviderConfig["provider"], options?: RetryOptions, logger?: Logger): LanguageModelV2Middleware;
112
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/middleware/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,KAAK,MAAM,EAA2B,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAE1C;;OAEG;IACH,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,KACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,OAAO,GAAE,YAAiB,EAC1B,MAAM,GAAE,MAAoB,GAC3B,yBAAyB,CAsJ3B"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * Retry middleware for AI SDK language models.
3
+ *
4
+ * Provides automatic retry functionality for streaming operations that fail
5
+ * due to transient network errors (e.g., timeouts). This middleware operates
6
+ * at the LanguageModelV2 level, retrying doStream() calls with exponential
7
+ * backoff.
8
+ *
9
+ * **Two-phase retry architecture:**
10
+ * 1. **Initial call retry**: Retries HTTP-level errors when calling doStream() to get metadata
11
+ * 2. **Stream consumption retry**: Retries mid-stream errors during stream consumption
12
+ *
13
+ * **Separate retry budgets:**
14
+ * Each phase has its own independent retry budget. For example, with maxRetries: 3:
15
+ * - Phase 1 can retry up to 3 times (4 total attempts to get initial metadata)
16
+ * - Phase 2 can retry up to 3 times (4 total attempts to consume stream)
17
+ * - Maximum total attempts: 4 (phase 1) + 4 (phase 2) = 8
18
+ *
19
+ * This design ensures that failures in one phase don't prevent retries in the other phase.
20
+ *
21
+ * Handles two error types:
22
+ * 1. HTTP-level errors: doStream() throws an exception (retried in phase 1)
23
+ * 2. Stream-level errors: error chunks in the stream or connection drops (retried in phase 2)
24
+ *
25
+ * **Default retry strategy: Permissive**
26
+ * - Retries all errors except known permanent failures (auth, permission, invalid request)
27
+ * - Handles rate limits, server overload, timeouts, network issues
28
+ * - Future-proof: retries unknown error types
29
+ *
30
+ * By default, retries are unlimited but can be constrained by maxRetries and/or
31
+ * maxTotalRetryTimeMs options.
32
+ */
33
+ import { getErrorMeta, getLogger } from "../../../util/logger.js";
34
+ import { ExponentialBackoff, } from "../../util/backoff-strategy.js";
35
+ import { LLMProviderError } from "../error.js";
36
+ import { isProviderErrorRetryable } from "../util/provider-errors.js";
37
+ /**
38
+ * Creates retry middleware for LanguageModelV2.
39
+ *
40
+ * This middleware wraps the doStream function and automatically retries
41
+ * both HTTP-level errors (thrown exceptions) and stream-level errors
42
+ * (error chunks in the stream). Retries use exponential backoff and
43
+ * respect configured limits.
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * // Unlimited retries with 2-minute time limit
48
+ * const middleware = retryMiddleware("bedrock", { maxTotalRetryTimeMs: 120000 });
49
+ *
50
+ * // Limit to 3 retries
51
+ * const middleware = retryMiddleware("bedrock", { maxRetries: 3 });
52
+ *
53
+ * // Apply to model
54
+ * const model = wrapLanguageModel({
55
+ * model: baseModel,
56
+ * middleware: [middleware]
57
+ * });
58
+ * ```
59
+ */
60
+ export function retryMiddleware(provider, options = {}, logger = getLogger()) {
61
+ const maxRetries = options.maxRetries ?? Infinity;
62
+ const isRetryable = options.isRetryable ?? isProviderErrorRetryable;
63
+ const maxTotalRetryTimeMs = options.maxTotalRetryTimeMs;
64
+ const onRetry = options.onRetry;
65
+ const backoffStrategy = options.backoffStrategy ??
66
+ new ExponentialBackoff({
67
+ initialDelayMs: options.initialDelayMs ?? 500,
68
+ maxDelayMs: options.maxDelayMs ?? 5000,
69
+ backoffMultiplier: options.backoffMultiplier ?? 2,
70
+ });
71
+ // Format maxRetries for display
72
+ const maxRetriesDisplay = maxRetries === Infinity ? "unlimited" : String(maxRetries);
73
+ const retryConfig = {
74
+ provider,
75
+ maxRetries,
76
+ maxRetriesDisplay,
77
+ maxTotalRetryTimeMs,
78
+ backoffStrategy,
79
+ isRetryable,
80
+ onRetry,
81
+ abortSignal: options.abortSignal,
82
+ logger,
83
+ };
84
+ return {
85
+ wrapStream: async ({ doStream }) => {
86
+ // First retry loop: Get initial result with metadata
87
+ // This retries HTTP-level errors from doStream() call
88
+ let attempt = 0;
89
+ let totalRetryTime = 0;
90
+ let initialResult;
91
+ while (true) {
92
+ try {
93
+ initialResult = await doStream();
94
+ break; // Success!
95
+ }
96
+ catch (err) {
97
+ attempt++;
98
+ const delay = await handleRetryAttempt(err, attempt, totalRetryTime, {
99
+ ...retryConfig,
100
+ errorContext: "HTTP error",
101
+ });
102
+ totalRetryTime += delay;
103
+ }
104
+ }
105
+ // Second retry loop: Handle stream consumption errors
106
+ // This retries mid-stream errors (connection drops, timeouts)
107
+ const retryingStream = new ReadableStream({
108
+ async start(controller) {
109
+ let consumptionAttempt = 0;
110
+ let consumptionRetryTime = 0;
111
+ let isFirstAttempt = true;
112
+ while (true) {
113
+ let reader = null;
114
+ let error;
115
+ try {
116
+ // First attempt: reuse initial stream
117
+ // Subsequent attempts: call doStream() fresh
118
+ const streamResult = isFirstAttempt
119
+ ? initialResult
120
+ : await doStream();
121
+ isFirstAttempt = false;
122
+ reader = streamResult.stream.getReader();
123
+ // Read and forward chunks
124
+ while (true) {
125
+ const { value: chunk, done } = await reader.read();
126
+ if (done) {
127
+ controller.close();
128
+ return; // Success!
129
+ }
130
+ // Check for error chunks
131
+ if (chunk.type === "error") {
132
+ throw new LLMProviderError({
133
+ provider,
134
+ cause: chunk.error,
135
+ });
136
+ }
137
+ // Normal chunk - forward it
138
+ controller.enqueue(chunk);
139
+ // Reset consumption attempt on successful chunk
140
+ consumptionAttempt = 0;
141
+ consumptionRetryTime = 0;
142
+ }
143
+ }
144
+ catch (err) {
145
+ // Release reader before retry
146
+ if (reader) {
147
+ try {
148
+ reader.releaseLock();
149
+ }
150
+ catch {
151
+ // Ignore errors during release
152
+ }
153
+ }
154
+ error =
155
+ err instanceof LLMProviderError
156
+ ? err
157
+ : new LLMProviderError({ provider, cause: err });
158
+ }
159
+ // Handle error - check if we should retry
160
+ consumptionAttempt++;
161
+ try {
162
+ const delay = await handleRetryAttempt(error, consumptionAttempt, consumptionRetryTime, {
163
+ ...retryConfig,
164
+ errorContext: "Stream error",
165
+ });
166
+ consumptionRetryTime += delay;
167
+ }
168
+ catch (finalError) {
169
+ // Exhausted or non-retryable - pass error through and close
170
+ controller.enqueue({
171
+ type: "error",
172
+ error: finalError,
173
+ });
174
+ controller.close();
175
+ return;
176
+ }
177
+ // Loop continues - will call doStream() again
178
+ }
179
+ },
180
+ });
181
+ // Return metadata from initial result with retrying stream
182
+ return {
183
+ ...initialResult,
184
+ stream: retryingStream,
185
+ };
186
+ },
187
+ };
188
+ }
189
+ /**
190
+ * Checks if an error can be retried and returns appropriate error handling info.
191
+ */
192
+ function checkRetryability(error, attempt, maxRetries, maxRetriesDisplay, totalRetryTime, maxTotalRetryTimeMs, isRetryable, logger) {
193
+ const withinMaxRetries = attempt <= maxRetries;
194
+ const withinTimeLimit = !maxTotalRetryTimeMs || totalRetryTime < maxTotalRetryTimeMs;
195
+ const canRetry = isRetryable(error) && withinMaxRetries && withinTimeLimit;
196
+ if (!canRetry) {
197
+ const reason = !isRetryable(error)
198
+ ? `not retryable (type: ${error.type})`
199
+ : !withinMaxRetries
200
+ ? `after ${maxRetriesDisplay} retries`
201
+ : `total retry time exceeded ${maxTotalRetryTimeMs}ms`;
202
+ const message = `Stream error ${reason}`;
203
+ error.message = message;
204
+ logger.error(message, getErrorMeta(error.cause));
205
+ return { canRetry: false, errorToThrow: error };
206
+ }
207
+ return { canRetry: true };
208
+ }
209
+ /**
210
+ * Executes retry logic for a single attempt including error wrapping, backoff, logging, and callbacks.
211
+ * Returns the delay in milliseconds if a retry should be attempted, or throws if no retry is possible.
212
+ */
213
+ async function handleRetryAttempt(err, attempt, totalRetryTime, config) {
214
+ const error = err instanceof LLMProviderError
215
+ ? err
216
+ : new LLMProviderError({ provider: config.provider, cause: err });
217
+ const retryCheck = checkRetryability(error, attempt, config.maxRetries, config.maxRetriesDisplay, totalRetryTime, config.maxTotalRetryTimeMs, config.isRetryable, config.logger);
218
+ if (!retryCheck.canRetry) {
219
+ throw retryCheck.errorToThrow;
220
+ }
221
+ // Check if abort signal was triggered
222
+ if (config.abortSignal?.aborted) {
223
+ const abortError = new LLMProviderError({
224
+ message: "Request aborted",
225
+ provider: config.provider,
226
+ aborted: true,
227
+ });
228
+ config.logger.info("Request aborted, stopping retry attempts");
229
+ throw abortError;
230
+ }
231
+ const delay = config.backoffStrategy.getNextDelay(attempt);
232
+ config.logger.warn(`${config.errorContext} (type: ${error.type}). Attempt ${attempt}/${config.maxRetriesDisplay}. Retrying in ${delay}ms...`);
233
+ if (config.onRetry) {
234
+ await config.onRetry(error, attempt, delay, totalRetryTime);
235
+ }
236
+ await new Promise((resolve) => setTimeout(resolve, delay));
237
+ return delay;
238
+ }
239
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/middleware/retry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
+ import { type RetryOptions } from "./middleware/retry.js";
1
2
  import type { LLMProvider, LLMProviderSettings } from "./types.js";
2
3
  import type { LLMProviderConfig } from "@superblocksteam/library-shared/types";
3
- export declare const createLLMProvider: (settings: LLMProviderSettings, getJwt?: () => string | undefined, llmConfig?: LLMProviderConfig) => LLMProvider;
4
+ export declare const createLLMProvider: (settings: LLMProviderSettings, getJwt?: () => string | undefined, llmConfig?: LLMProviderConfig, retryOptions?: RetryOptions) => LLMProvider;
4
5
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,eAAO,MAAM,iBAAiB,GAC5B,UAAU,mBAAmB,EAC7B,SAAS,MAAM,MAAM,GAAG,SAAS,EACjC,YAAY,iBAAiB,KAC5B,WAiDF,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,eAAO,MAAM,iBAAiB,GAC5B,UAAU,mBAAmB,EAC7B,SAAS,MAAM,MAAM,GAAG,SAAS,EACjC,YAAY,iBAAiB,EAC7B,eAAe,YAAY,KAC1B,WA4DF,CAAC"}
@@ -2,13 +2,20 @@ import { customProvider, wrapLanguageModel } from "ai";
2
2
  import { getLogger } from "../../util/logger.js";
3
3
  import { anthropicImpl } from "./impl/anthropic.js";
4
4
  import { clarkImpl } from "./impl/clark.js";
5
+ import { retryMiddleware } from "./middleware/retry.js";
5
6
  import { jwtMiddleware, modelFromClassification } from "./utils.js";
6
- export const createLLMProvider = (settings, getJwt, llmConfig) => {
7
+ export const createLLMProvider = (settings, getJwt, llmConfig, retryOptions) => {
8
+ const providerType = llmConfig?.provider || "bedrock";
7
9
  const wrapDefaults = (model) => wrapLanguageModel({
8
10
  model,
9
- middleware: [jwtMiddleware(getJwt)],
11
+ middleware: [
12
+ jwtMiddleware(getJwt),
13
+ retryMiddleware(providerType, {
14
+ maxTotalRetryTimeMs: 2 * 60 * 1000, // 2 minutes
15
+ ...retryOptions,
16
+ }, getLogger()),
17
+ ],
10
18
  });
11
- const providerType = llmConfig?.provider || "bedrock";
12
19
  getLogger().info(`Creating LLM provider: type=${providerType}, config=${JSON.stringify(llmConfig || {})}`);
13
20
  let implFunc;
14
21
  switch (providerType) {
@@ -39,6 +46,7 @@ export const createLLMProvider = (settings, getJwt, llmConfig) => {
39
46
  return sdkProvider.languageModel(modelId);
40
47
  };
41
48
  return {
49
+ name: providerType,
42
50
  modelForTask,
43
51
  modelForClassification: (classification) => modelFromClassification(modelForTask, classification),
44
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAUpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAA6B,EAC7B,MAAiC,EACjC,SAA6B,EAChB,EAAE;IACf,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAE,EAAE,CAC9C,iBAAiB,CAAC;QAChB,KAAK;QACL,UAAU,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KACpC,CAAC,CAAC;IAEL,MAAM,YAAY,GAAG,SAAS,EAAE,QAAQ,IAAI,SAAS,CAAC;IACtD,SAAS,EAAE,CAAC,IAAI,CACd,+BAA+B,YAAY,YAAY,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CACzF,CAAC;IACF,IAAI,QAAQ,CAAC;IACb,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACR,KAAK,WAAW,CAAC;QACjB;YACE,QAAQ,GAAG,aAAa,CAAC;YACzB,MAAM;IACV,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhC,MAAM,cAAc,GAAkB;QACpC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;QACjD,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/C,oBAAoB,EAAE,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC7D,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACvD,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACzD,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;KACxD,CAAC;IAEF,MAAM,WAAW,GAAG,cAAc,CAAC;QACjC,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE;QACxC,OAAO,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,sBAAsB,EAAE,CAAC,cAAc,EAAE,EAAE,CACzC,uBAAuB,CAAC,YAAY,EAAE,cAAc,CAAC;KACxD,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAqB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAUpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAA6B,EAC7B,MAAiC,EACjC,SAA6B,EAC7B,YAA2B,EACd,EAAE;IACf,MAAM,YAAY,GAAG,SAAS,EAAE,QAAQ,IAAI,SAAS,CAAC;IAEtD,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAE,EAAE,CAC9C,iBAAiB,CAAC;QAChB,KAAK;QACL,UAAU,EAAE;YACV,aAAa,CAAC,MAAM,CAAC;YACrB,eAAe,CACb,YAAY,EACZ;gBACE,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;gBAChD,GAAG,YAAY;aAChB,EACD,SAAS,EAAE,CACZ;SACF;KACF,CAAC,CAAC;IACL,SAAS,EAAE,CAAC,IAAI,CACd,+BAA+B,YAAY,YAAY,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CACzF,CAAC;IACF,IAAI,QAAQ,CAAC;IACb,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACR,KAAK,WAAW,CAAC;QACjB;YACE,QAAQ,GAAG,aAAa,CAAC;YACzB,MAAM;IACV,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhC,MAAM,cAAc,GAAkB;QACpC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;QACjD,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/C,oBAAoB,EAAE,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC7D,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACvD,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACzD,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;KACxD,CAAC;IAEF,MAAM,WAAW,GAAG,cAAc,CAAC;QACjC,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE;QACxC,OAAO,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,YAAY;QACZ,sBAAsB,EAAE,CAAC,cAAc,EAAE,EAAE,CACzC,uBAAuB,CAAC,YAAY,EAAE,cAAc,CAAC;KACxD,CAAC;AACJ,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { ClarkProviderSettings } from "../clark-provider/clark-provider.js";
2
2
  import type { AnthropicProviderSettings } from "@ai-sdk/anthropic";
3
3
  import type { LanguageModelV2 } from "@ai-sdk/provider";
4
- import type { PromptClassification } from "@superblocksteam/library-shared/types";
4
+ import type { LLMProviderConfig, PromptClassification } from "@superblocksteam/library-shared/types";
5
5
  export type LLMProviderSettings = {
6
6
  anthropic: AnthropicProviderSettings;
7
7
  clark: ClarkProviderSettings;
@@ -11,6 +11,7 @@ export type LLMTaskModels = {
11
11
  [K in LLMTask]: LanguageModelV2;
12
12
  };
13
13
  export type LLMProvider = {
14
+ name: LLMProviderConfig["provider"];
14
15
  modelForTask: (modelId: LLMTask) => LanguageModelV2;
15
16
  modelForClassification: (classification: PromptClassification) => LanguageModelV2;
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,yBAAyB,CAAC;IACrC,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,GACf,sBAAsB,GACtB,mBAAmB,GACnB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,OAAO,GAAG,eAAe;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,CAAC;IACpD,sBAAsB,EAAE,CACtB,cAAc,EAAE,oBAAoB,KACjC,eAAe,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,yBAAyB,CAAC;IACrC,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,GACf,sBAAsB,GACtB,mBAAmB,GACnB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,OAAO,GAAG,eAAe;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,CAAC;IACpD,sBAAsB,EAAE,CACtB,cAAc,EAAE,oBAAoB,KACjC,eAAe,CAAC;CACtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Clark } from "../../state-machine/clark-fsm.js";
2
+ export declare function isProviderErrorRetryable(error: unknown): boolean;
3
+ export declare function onRetryFactory(clark: Clark, sendMessageAfterMs?: number): (_error: unknown, attempt: number, _delayMs: number, totalRetryTimeMs: number) => void;
4
+ //# sourceMappingURL=provider-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-errors.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/util/provider-errors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQhE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,SAAO,IAGlE,QAAQ,OAAO,EACf,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,kBAAkB,MAAM,UA2B3B"}
@@ -0,0 +1,35 @@
1
+ import { getLogger } from "../../../util/logger.js";
2
+ import { LLMProviderError } from "../error.js";
3
+ export function isProviderErrorRetryable(error) {
4
+ if (LLMProviderError.isInstance(error)) {
5
+ return error.isRetryable;
6
+ }
7
+ // For thrown errors or unstructured errors, be permissive and retry
8
+ // These might be network issues, timeouts, or other transient problems
9
+ return true;
10
+ }
11
+ export function onRetryFactory(clark, sendMessageAfterMs = 5000) {
12
+ let sentMessage = false;
13
+ return (_error, attempt, _delayMs, totalRetryTimeMs) => {
14
+ if (attempt === 1) {
15
+ sentMessage = false;
16
+ }
17
+ if (sentMessage || totalRetryTimeMs < sendMessageAfterMs) {
18
+ return;
19
+ }
20
+ const editorClient = clark.context.peer;
21
+ if (!editorClient) {
22
+ getLogger().warn("Editor client not found in Clark context, cannot send retry message");
23
+ return;
24
+ }
25
+ void editorClient.call
26
+ .aiPushMessage({
27
+ type: "text",
28
+ text: "Hmmm, I'm having trouble connecting to the model provider. Let me try again...",
29
+ })
30
+ .then(() => {
31
+ sentMessage = true;
32
+ });
33
+ };
34
+ }
35
+ //# sourceMappingURL=provider-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-errors.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/util/provider-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;IAED,oEAAoE;IACpE,uEAAuE;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY,EAAE,kBAAkB,GAAG,IAAI;IACpE,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,OAAO,CACL,MAAe,EACf,OAAe,EACf,QAAgB,EAChB,gBAAwB,EACxB,EAAE;QACF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,WAAW,IAAI,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS,EAAE,CAAC,IAAI,CACd,qEAAqE,CACtE,CAAC;YACF,OAAO;QACT,CAAC;QAED,KAAK,YAAY,CAAC,IAAI;aACnB,aAAa,CAAC;YACb,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,gFAAgF;SACvF,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACJ,CAAC"}