fullstacked 0.12.1-1330 → 0.12.1-1355

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 (277) hide show
  1. package/fullstacked_modules/{ai/index.js → @fullstacked/ai-agent/ai-agent.js} +4868 -8601
  2. package/fullstacked_modules/@fullstacked/ai-agent/index.ts +5 -3
  3. package/fullstacked_modules/@fullstacked/ai-agent/package.json +26 -23
  4. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/anthropic.ts +11 -7
  5. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/deepseek.ts +11 -7
  6. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/google.ts +11 -7
  7. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/index.ts +10 -12
  8. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/interface.ts +10 -6
  9. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/mistral.ts +11 -7
  10. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/ollama.ts +19 -14
  11. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/openai.ts +11 -7
  12. package/fullstacked_modules/@fullstacked/ai-agent/src/providers/xai.ts +11 -7
  13. package/fullstacked_modules/@fullstacked/ui/index.js +664 -0
  14. package/fullstacked_modules/auto_update/index.ts +66 -0
  15. package/fullstacked_modules/bridge/index.ts +2 -57
  16. package/fullstacked_modules/{esbuild/esbuild.ts → build/build.ts} +31 -28
  17. package/fullstacked_modules/build/index.ts +3 -0
  18. package/fullstacked_modules/build/sass.ts +55 -0
  19. package/fullstacked_modules/components/snackbar.css +54 -1
  20. package/fullstacked_modules/components/snackbar.scss +52 -0
  21. package/fullstacked_modules/sass/index.js +6445 -6464
  22. package/fullstacked_modules/zod/index.cjs +33 -0
  23. package/fullstacked_modules/zod/index.js +4 -0
  24. package/fullstacked_modules/zod/v3/ZodError.cjs +138 -0
  25. package/fullstacked_modules/zod/v3/ZodError.js +133 -0
  26. package/fullstacked_modules/zod/v3/errors.cjs +17 -0
  27. package/fullstacked_modules/zod/v3/errors.js +9 -0
  28. package/fullstacked_modules/zod/v3/external.cjs +22 -0
  29. package/fullstacked_modules/zod/v3/external.js +6 -0
  30. package/fullstacked_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  31. package/fullstacked_modules/zod/v3/helpers/enumUtil.js +1 -0
  32. package/fullstacked_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  33. package/fullstacked_modules/zod/v3/helpers/errorUtil.js +6 -0
  34. package/fullstacked_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  35. package/fullstacked_modules/zod/v3/helpers/parseUtil.js +109 -0
  36. package/fullstacked_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  37. package/fullstacked_modules/zod/v3/helpers/partialUtil.js +1 -0
  38. package/fullstacked_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  39. package/fullstacked_modules/zod/v3/helpers/typeAliases.js +1 -0
  40. package/fullstacked_modules/zod/v3/helpers/util.cjs +137 -0
  41. package/fullstacked_modules/zod/v3/helpers/util.js +133 -0
  42. package/fullstacked_modules/zod/v3/index.cjs +33 -0
  43. package/fullstacked_modules/zod/v3/index.js +4 -0
  44. package/fullstacked_modules/zod/v3/locales/en.cjs +111 -0
  45. package/fullstacked_modules/zod/v3/locales/en.js +109 -0
  46. package/fullstacked_modules/zod/v3/standard-schema.cjs +2 -0
  47. package/fullstacked_modules/zod/v3/standard-schema.js +1 -0
  48. package/fullstacked_modules/zod/v3/types.cjs +3775 -0
  49. package/fullstacked_modules/zod/v3/types.js +3693 -0
  50. package/fullstacked_modules/zod/v4/classic/checks.cjs +32 -0
  51. package/fullstacked_modules/zod/v4/classic/checks.js +1 -0
  52. package/fullstacked_modules/zod/v4/classic/coerce.cjs +47 -0
  53. package/fullstacked_modules/zod/v4/classic/coerce.js +17 -0
  54. package/fullstacked_modules/zod/v4/classic/compat.cjs +57 -0
  55. package/fullstacked_modules/zod/v4/classic/compat.js +27 -0
  56. package/fullstacked_modules/zod/v4/classic/errors.cjs +67 -0
  57. package/fullstacked_modules/zod/v4/classic/errors.js +41 -0
  58. package/fullstacked_modules/zod/v4/classic/external.cjs +70 -0
  59. package/fullstacked_modules/zod/v4/classic/external.js +18 -0
  60. package/fullstacked_modules/zod/v4/classic/index.cjs +33 -0
  61. package/fullstacked_modules/zod/v4/classic/index.js +4 -0
  62. package/fullstacked_modules/zod/v4/classic/iso.cjs +60 -0
  63. package/fullstacked_modules/zod/v4/classic/iso.js +30 -0
  64. package/fullstacked_modules/zod/v4/classic/parse.cjs +32 -0
  65. package/fullstacked_modules/zod/v4/classic/parse.js +6 -0
  66. package/fullstacked_modules/zod/v4/classic/schemas.cjs +1109 -0
  67. package/fullstacked_modules/zod/v4/classic/schemas.js +1006 -0
  68. package/fullstacked_modules/zod/v4/core/api.cjs +1039 -0
  69. package/fullstacked_modules/zod/v4/core/api.js +906 -0
  70. package/fullstacked_modules/zod/v4/core/checks.cjs +591 -0
  71. package/fullstacked_modules/zod/v4/core/checks.js +565 -0
  72. package/fullstacked_modules/zod/v4/core/core.cjs +67 -0
  73. package/fullstacked_modules/zod/v4/core/core.js +61 -0
  74. package/fullstacked_modules/zod/v4/core/doc.cjs +39 -0
  75. package/fullstacked_modules/zod/v4/core/doc.js +35 -0
  76. package/fullstacked_modules/zod/v4/core/errors.cjs +226 -0
  77. package/fullstacked_modules/zod/v4/core/errors.js +195 -0
  78. package/fullstacked_modules/zod/v4/core/function.cjs +102 -0
  79. package/fullstacked_modules/zod/v4/core/function.js +75 -0
  80. package/fullstacked_modules/zod/v4/core/index.cjs +44 -0
  81. package/fullstacked_modules/zod/v4/core/index.js +15 -0
  82. package/fullstacked_modules/zod/v4/core/json-schema.cjs +2 -0
  83. package/fullstacked_modules/zod/v4/core/json-schema.js +1 -0
  84. package/fullstacked_modules/zod/v4/core/parse.cjs +87 -0
  85. package/fullstacked_modules/zod/v4/core/parse.js +57 -0
  86. package/fullstacked_modules/zod/v4/core/regexes.cjs +103 -0
  87. package/fullstacked_modules/zod/v4/core/regexes.js +95 -0
  88. package/fullstacked_modules/zod/v4/core/registries.cjs +56 -0
  89. package/fullstacked_modules/zod/v4/core/registries.js +51 -0
  90. package/fullstacked_modules/zod/v4/core/schemas.cjs +1748 -0
  91. package/fullstacked_modules/zod/v4/core/schemas.js +1717 -0
  92. package/fullstacked_modules/zod/v4/core/standard-schema.cjs +2 -0
  93. package/fullstacked_modules/zod/v4/core/standard-schema.js +1 -0
  94. package/fullstacked_modules/zod/v4/core/to-json-schema.cjs +854 -0
  95. package/fullstacked_modules/zod/v4/core/to-json-schema.js +849 -0
  96. package/fullstacked_modules/zod/v4/core/util.cjs +539 -0
  97. package/fullstacked_modules/zod/v4/core/util.js +493 -0
  98. package/fullstacked_modules/zod/v4/core/versions.cjs +8 -0
  99. package/fullstacked_modules/zod/v4/core/versions.js +5 -0
  100. package/fullstacked_modules/zod/v4/index.cjs +22 -0
  101. package/fullstacked_modules/zod/v4/index.js +3 -0
  102. package/fullstacked_modules/zod/v4/locales/ar.cjs +142 -0
  103. package/fullstacked_modules/zod/v4/locales/ar.js +116 -0
  104. package/fullstacked_modules/zod/v4/locales/az.cjs +141 -0
  105. package/fullstacked_modules/zod/v4/locales/az.js +115 -0
  106. package/fullstacked_modules/zod/v4/locales/be.cjs +190 -0
  107. package/fullstacked_modules/zod/v4/locales/be.js +164 -0
  108. package/fullstacked_modules/zod/v4/locales/ca.cjs +144 -0
  109. package/fullstacked_modules/zod/v4/locales/ca.js +118 -0
  110. package/fullstacked_modules/zod/v4/locales/cs.cjs +161 -0
  111. package/fullstacked_modules/zod/v4/locales/cs.js +135 -0
  112. package/fullstacked_modules/zod/v4/locales/de.cjs +142 -0
  113. package/fullstacked_modules/zod/v4/locales/de.js +116 -0
  114. package/fullstacked_modules/zod/v4/locales/en.cjs +145 -0
  115. package/fullstacked_modules/zod/v4/locales/en.js +117 -0
  116. package/fullstacked_modules/zod/v4/locales/eo.cjs +144 -0
  117. package/fullstacked_modules/zod/v4/locales/eo.js +116 -0
  118. package/fullstacked_modules/zod/v4/locales/es.cjs +143 -0
  119. package/fullstacked_modules/zod/v4/locales/es.js +117 -0
  120. package/fullstacked_modules/zod/v4/locales/fa.cjs +148 -0
  121. package/fullstacked_modules/zod/v4/locales/fa.js +122 -0
  122. package/fullstacked_modules/zod/v4/locales/fi.cjs +148 -0
  123. package/fullstacked_modules/zod/v4/locales/fi.js +122 -0
  124. package/fullstacked_modules/zod/v4/locales/fr-CA.cjs +143 -0
  125. package/fullstacked_modules/zod/v4/locales/fr-CA.js +117 -0
  126. package/fullstacked_modules/zod/v4/locales/fr.cjs +142 -0
  127. package/fullstacked_modules/zod/v4/locales/fr.js +116 -0
  128. package/fullstacked_modules/zod/v4/locales/he.cjs +143 -0
  129. package/fullstacked_modules/zod/v4/locales/he.js +117 -0
  130. package/fullstacked_modules/zod/v4/locales/hu.cjs +143 -0
  131. package/fullstacked_modules/zod/v4/locales/hu.js +117 -0
  132. package/fullstacked_modules/zod/v4/locales/id.cjs +142 -0
  133. package/fullstacked_modules/zod/v4/locales/id.js +116 -0
  134. package/fullstacked_modules/zod/v4/locales/index.cjs +84 -0
  135. package/fullstacked_modules/zod/v4/locales/index.js +39 -0
  136. package/fullstacked_modules/zod/v4/locales/it.cjs +143 -0
  137. package/fullstacked_modules/zod/v4/locales/it.js +117 -0
  138. package/fullstacked_modules/zod/v4/locales/ja.cjs +141 -0
  139. package/fullstacked_modules/zod/v4/locales/ja.js +115 -0
  140. package/fullstacked_modules/zod/v4/locales/kh.cjs +143 -0
  141. package/fullstacked_modules/zod/v4/locales/kh.js +117 -0
  142. package/fullstacked_modules/zod/v4/locales/ko.cjs +147 -0
  143. package/fullstacked_modules/zod/v4/locales/ko.js +121 -0
  144. package/fullstacked_modules/zod/v4/locales/mk.cjs +144 -0
  145. package/fullstacked_modules/zod/v4/locales/mk.js +118 -0
  146. package/fullstacked_modules/zod/v4/locales/ms.cjs +142 -0
  147. package/fullstacked_modules/zod/v4/locales/ms.js +116 -0
  148. package/fullstacked_modules/zod/v4/locales/nl.cjs +143 -0
  149. package/fullstacked_modules/zod/v4/locales/nl.js +117 -0
  150. package/fullstacked_modules/zod/v4/locales/no.cjs +142 -0
  151. package/fullstacked_modules/zod/v4/locales/no.js +116 -0
  152. package/fullstacked_modules/zod/v4/locales/ota.cjs +143 -0
  153. package/fullstacked_modules/zod/v4/locales/ota.js +117 -0
  154. package/fullstacked_modules/zod/v4/locales/pl.cjs +143 -0
  155. package/fullstacked_modules/zod/v4/locales/pl.js +117 -0
  156. package/fullstacked_modules/zod/v4/locales/ps.cjs +148 -0
  157. package/fullstacked_modules/zod/v4/locales/ps.js +122 -0
  158. package/fullstacked_modules/zod/v4/locales/pt.cjs +142 -0
  159. package/fullstacked_modules/zod/v4/locales/pt.js +116 -0
  160. package/fullstacked_modules/zod/v4/locales/ru.cjs +190 -0
  161. package/fullstacked_modules/zod/v4/locales/ru.js +164 -0
  162. package/fullstacked_modules/zod/v4/locales/sl.cjs +143 -0
  163. package/fullstacked_modules/zod/v4/locales/sl.js +117 -0
  164. package/fullstacked_modules/zod/v4/locales/sv.cjs +144 -0
  165. package/fullstacked_modules/zod/v4/locales/sv.js +118 -0
  166. package/fullstacked_modules/zod/v4/locales/ta.cjs +143 -0
  167. package/fullstacked_modules/zod/v4/locales/ta.js +117 -0
  168. package/fullstacked_modules/zod/v4/locales/th.cjs +143 -0
  169. package/fullstacked_modules/zod/v4/locales/th.js +117 -0
  170. package/fullstacked_modules/zod/v4/locales/tr.cjs +143 -0
  171. package/fullstacked_modules/zod/v4/locales/tr.js +115 -0
  172. package/fullstacked_modules/zod/v4/locales/ua.cjs +143 -0
  173. package/fullstacked_modules/zod/v4/locales/ua.js +117 -0
  174. package/fullstacked_modules/zod/v4/locales/ur.cjs +143 -0
  175. package/fullstacked_modules/zod/v4/locales/ur.js +117 -0
  176. package/fullstacked_modules/zod/v4/locales/vi.cjs +142 -0
  177. package/fullstacked_modules/zod/v4/locales/vi.js +116 -0
  178. package/fullstacked_modules/zod/v4/locales/zh-CN.cjs +142 -0
  179. package/fullstacked_modules/zod/v4/locales/zh-CN.js +116 -0
  180. package/fullstacked_modules/zod/v4/locales/zh-TW.cjs +143 -0
  181. package/fullstacked_modules/zod/v4/locales/zh-TW.js +117 -0
  182. package/fullstacked_modules/zod/v4/mini/checks.cjs +34 -0
  183. package/fullstacked_modules/zod/v4/mini/checks.js +1 -0
  184. package/fullstacked_modules/zod/v4/mini/coerce.cjs +47 -0
  185. package/fullstacked_modules/zod/v4/mini/coerce.js +17 -0
  186. package/fullstacked_modules/zod/v4/mini/external.cjs +62 -0
  187. package/fullstacked_modules/zod/v4/mini/external.js +13 -0
  188. package/fullstacked_modules/zod/v4/mini/index.cjs +32 -0
  189. package/fullstacked_modules/zod/v4/mini/index.js +3 -0
  190. package/fullstacked_modules/zod/v4/mini/iso.cjs +60 -0
  191. package/fullstacked_modules/zod/v4/mini/iso.js +30 -0
  192. package/fullstacked_modules/zod/v4/mini/parse.cjs +8 -0
  193. package/fullstacked_modules/zod/v4/mini/parse.js +1 -0
  194. package/fullstacked_modules/zod/v4/mini/schemas.cjs +839 -0
  195. package/fullstacked_modules/zod/v4/mini/schemas.js +732 -0
  196. package/fullstacked_modules/zod/v4-mini/index.cjs +17 -0
  197. package/fullstacked_modules/zod/v4-mini/index.js +1 -0
  198. package/index.js +121 -186
  199. package/package.json +4 -4
  200. package/fullstacked_modules/@fullstacked/ui/README.md +0 -3
  201. package/fullstacked_modules/@fullstacked/ui/components/button-group/button-group.scss +0 -28
  202. package/fullstacked_modules/@fullstacked/ui/components/button-group/index.ts +0 -8
  203. package/fullstacked_modules/@fullstacked/ui/components/dialog/dialog.scss +0 -39
  204. package/fullstacked_modules/@fullstacked/ui/components/dialog/index.ts +0 -17
  205. package/fullstacked_modules/@fullstacked/ui/components/list-item/index.ts +0 -37
  206. package/fullstacked_modules/@fullstacked/ui/components/list-item/list-item.scss +0 -19
  207. package/fullstacked_modules/@fullstacked/ui/components/loader/index.ts +0 -14
  208. package/fullstacked_modules/@fullstacked/ui/components/loader/loader.scss +0 -25
  209. package/fullstacked_modules/@fullstacked/ui/components/message/index.ts +0 -26
  210. package/fullstacked_modules/@fullstacked/ui/components/message/message.scss +0 -20
  211. package/fullstacked_modules/@fullstacked/ui/components/popover/index.ts +0 -114
  212. package/fullstacked_modules/@fullstacked/ui/components/popover/popover.scss +0 -44
  213. package/fullstacked_modules/@fullstacked/ui/globals.scss +0 -66
  214. package/fullstacked_modules/@fullstacked/ui/icons/Archive.svg +0 -3
  215. package/fullstacked_modules/@fullstacked/ui/icons/Arrow 2.svg +0 -3
  216. package/fullstacked_modules/@fullstacked/ui/icons/Arrow Corner.svg +0 -3
  217. package/fullstacked_modules/@fullstacked/ui/icons/Arrow.svg +0 -3
  218. package/fullstacked_modules/@fullstacked/ui/icons/Caret.svg +0 -3
  219. package/fullstacked_modules/@fullstacked/ui/icons/Check.svg +0 -3
  220. package/fullstacked_modules/@fullstacked/ui/icons/Clipboard.svg +0 -12
  221. package/fullstacked_modules/@fullstacked/ui/icons/Clock.svg +0 -12
  222. package/fullstacked_modules/@fullstacked/ui/icons/Close.svg +0 -10
  223. package/fullstacked_modules/@fullstacked/ui/icons/Copy.svg +0 -3
  224. package/fullstacked_modules/@fullstacked/ui/icons/Directory Add.svg +0 -3
  225. package/fullstacked_modules/@fullstacked/ui/icons/Edit.svg +0 -3
  226. package/fullstacked_modules/@fullstacked/ui/icons/Export.svg +0 -3
  227. package/fullstacked_modules/@fullstacked/ui/icons/External Link.svg +0 -3
  228. package/fullstacked_modules/@fullstacked/ui/icons/File Add.svg +0 -3
  229. package/fullstacked_modules/@fullstacked/ui/icons/File.svg +0 -3
  230. package/fullstacked_modules/@fullstacked/ui/icons/Git Branch.svg +0 -3
  231. package/fullstacked_modules/@fullstacked/ui/icons/Git.svg +0 -3
  232. package/fullstacked_modules/@fullstacked/ui/icons/Glitter.svg +0 -3
  233. package/fullstacked_modules/@fullstacked/ui/icons/Info.svg +0 -3
  234. package/fullstacked_modules/@fullstacked/ui/icons/Link.svg +0 -10
  235. package/fullstacked_modules/@fullstacked/ui/icons/Loader.svg +0 -4
  236. package/fullstacked_modules/@fullstacked/ui/icons/Lock.svg +0 -3
  237. package/fullstacked_modules/@fullstacked/ui/icons/Options.svg +0 -3
  238. package/fullstacked_modules/@fullstacked/ui/icons/Package.svg +0 -3
  239. package/fullstacked_modules/@fullstacked/ui/icons/Peers.svg +0 -3
  240. package/fullstacked_modules/@fullstacked/ui/icons/Play.svg +0 -3
  241. package/fullstacked_modules/@fullstacked/ui/icons/Plus.svg +0 -3
  242. package/fullstacked_modules/@fullstacked/ui/icons/Revert.svg +0 -3
  243. package/fullstacked_modules/@fullstacked/ui/icons/Settings.svg +0 -3
  244. package/fullstacked_modules/@fullstacked/ui/icons/Side Panel.svg +0 -3
  245. package/fullstacked_modules/@fullstacked/ui/icons/Terminal.svg +0 -3
  246. package/fullstacked_modules/@fullstacked/ui/icons/Trash.svg +0 -3
  247. package/fullstacked_modules/@fullstacked/ui/icons/TypeScript.svg +0 -3
  248. package/fullstacked_modules/@fullstacked/ui/icons/Upload.svg +0 -3
  249. package/fullstacked_modules/@fullstacked/ui/icons/User.svg +0 -3
  250. package/fullstacked_modules/@fullstacked/ui/icons/Warning.svg +0 -3
  251. package/fullstacked_modules/@fullstacked/ui/inputs/checkbox/index.ts +0 -28
  252. package/fullstacked_modules/@fullstacked/ui/inputs/file/index.ts +0 -48
  253. package/fullstacked_modules/@fullstacked/ui/inputs/inputs.scss +0 -224
  254. package/fullstacked_modules/@fullstacked/ui/inputs/observer.ts +0 -36
  255. package/fullstacked_modules/@fullstacked/ui/inputs/predictive/index.ts +0 -195
  256. package/fullstacked_modules/@fullstacked/ui/inputs/radio/index.ts +0 -28
  257. package/fullstacked_modules/@fullstacked/ui/inputs/select/index.ts +0 -125
  258. package/fullstacked_modules/@fullstacked/ui/inputs/switch/index.ts +0 -37
  259. package/fullstacked_modules/@fullstacked/ui/inputs/text/index.ts +0 -53
  260. package/fullstacked_modules/@fullstacked/ui/package.json +0 -8
  261. package/fullstacked_modules/@fullstacked/ui/primitives/badge/badge.scss +0 -35
  262. package/fullstacked_modules/@fullstacked/ui/primitives/badge/index.ts +0 -23
  263. package/fullstacked_modules/@fullstacked/ui/primitives/button/button.scss +0 -97
  264. package/fullstacked_modules/@fullstacked/ui/primitives/button/index.ts +0 -41
  265. package/fullstacked_modules/@fullstacked/ui/primitives/icon/icon.scss +0 -13
  266. package/fullstacked_modules/@fullstacked/ui/primitives/icon/index.ts +0 -30
  267. package/fullstacked_modules/@fullstacked/ui/ui.scss +0 -15
  268. package/fullstacked_modules/@fullstacked/ui/ui.ts +0 -18
  269. package/fullstacked_modules/@fullstacked/ui/values/breakpoints.scss +0 -7
  270. package/fullstacked_modules/@fullstacked/ui/values/colors.scss +0 -26
  271. package/fullstacked_modules/@fullstacked/ui/values/spacing.scss +0 -10
  272. package/fullstacked_modules/@fullstacked/ui/values/typography.scss +0 -23
  273. package/fullstacked_modules/esbuild/index.d.ts +0 -0
  274. package/fullstacked_modules/esbuild/index.ts +0 -3
  275. package/fullstacked_modules/esbuild/sass.ts +0 -100
  276. package/fullstacked_modules/sass/index.d.ts +0 -0
  277. /package/fullstacked_modules/{@fullstacked → build}/index.d.ts +0 -0
@@ -3,7 +3,7 @@ import { z } from "zod";
3
3
  import fs from "fs";
4
4
  import { createOllama } from "./src/providers/ollama";
5
5
  import { StoredMessage } from "@langchain/core/messages";
6
- import { getProvider, providers } from "./src";
6
+ import { getProvider, providersInfo } from "./src";
7
7
  import { oneDark } from "@codemirror/theme-one-dark";
8
8
  import {} from "./src/providers/google";
9
9
 
@@ -11,7 +11,7 @@ document.title = "FullStacked AI Agent";
11
11
 
12
12
  const controls = document.createElement("div");
13
13
 
14
- const provider = getProvider(providers().at(0));
14
+ const provider = getProvider(providersInfo.ollama);
15
15
  const models = await provider.models();
16
16
 
17
17
  const select = document.createElement("select");
@@ -103,7 +103,9 @@ async function createChat() {
103
103
  };
104
104
 
105
105
  button4.onclick = () => {
106
- conversation.generateConversationTitle().then(t => title.innerText = t);
106
+ conversation
107
+ .generateConversationTitle()
108
+ .then((t) => (title.innerText = t));
107
109
  };
108
110
  }
109
111
 
@@ -1,25 +1,28 @@
1
1
  {
2
- "dependencies": {
3
- "@anthropic-ai/sdk": "^0.64.0",
4
- "@fullstacked/codemirror-view": "git+https://github.com:fullstackedorg/codemirror-view",
5
- "@google/genai": "^1.21.0",
6
- "@langchain/anthropic": "^0.3.28",
7
- "@langchain/core": "^0.3.66",
8
- "@langchain/deepseek": "^0.1.0",
9
- "@langchain/google-genai": "^0.2.18",
10
- "@langchain/mistralai": "^0.2.1",
11
- "@langchain/ollama": "^0.2.3",
12
- "@langchain/openai": "^0.6.3",
13
- "@langchain/xai": "^0.1.0",
14
- "ollama": "^0.5.16",
15
- "openai": "^5.10.2",
16
- "streaming-markdown": "^0.2.15",
17
- "zod": "^3.25.76"
18
- },
19
- "devDependencies": {
20
- "@codemirror/theme-one-dark": "^6.1.3"
21
- },
22
- "main": "./src/index.ts",
23
- "name": "@fullstacked/ai-agent",
24
- "version": "0.0.0"
2
+ "dependencies": {
3
+ "@anthropic-ai/sdk": "^0.64.0",
4
+ "@fullstacked/codemirror-view": "git+https://github.com:fullstackedorg/codemirror-view",
5
+ "@google/genai": "^1.21.0",
6
+ "@langchain/anthropic": "^0.3.28",
7
+ "@langchain/core": "^0.3.66",
8
+ "@langchain/deepseek": "^0.1.0",
9
+ "@langchain/google-genai": "^0.2.18",
10
+ "@langchain/mistralai": "^0.2.1",
11
+ "@langchain/ollama": "^0.2.3",
12
+ "@langchain/openai": "^0.6.3",
13
+ "@langchain/xai": "^0.1.0",
14
+ "ollama": "^0.5.16",
15
+ "openai": "^5.10.2",
16
+ "streaming-markdown": "^0.2.15",
17
+ "zod": "^3.25.76"
18
+ },
19
+ "devDependencies": {
20
+ "@codemirror/theme-one-dark": "^6.1.3"
21
+ },
22
+ "main": "./src/index.ts",
23
+ "name": "@fullstacked/ai-agent",
24
+ "version": "0.0.0",
25
+ "exports": {
26
+ ".": "./ai-agent.js"
27
+ }
25
28
  }
@@ -4,17 +4,22 @@ import { ProviderInfo } from "./interface";
4
4
  import { core_fetch2 } from "fetch";
5
5
  import { Provider } from "@fullstacked/ai-agent/src/providers/interface";
6
6
 
7
- export const AnthropicInfo: ProviderInfo = {
7
+ export const AnthropicInfo: ProviderInfo<{
8
+ apiKey: {
9
+ title: "API Key";
10
+ type: "string";
11
+ value: string;
12
+ };
13
+ }> = {
8
14
  id: "anthropic",
9
15
  title: "Anthropic",
10
- configs: [
11
- {
12
- id: "apiKey",
16
+ configs: {
17
+ apiKey: {
13
18
  title: "API Key",
14
19
  type: "string",
15
20
  value: "",
16
21
  },
17
- ],
22
+ },
18
23
  };
19
24
 
20
25
  async function models(apiKey: string) {
@@ -29,8 +34,7 @@ async function models(apiKey: string) {
29
34
  }
30
35
 
31
36
  export function createClaude(opts?: typeof AnthropicInfo.configs): Provider {
32
- const apiKey =
33
- (opts?.find(({ id }) => id === "apiKey")?.value as string) || "";
37
+ const apiKey = opts?.apiKey?.value || "";
34
38
 
35
39
  return {
36
40
  models: () => models(apiKey),
@@ -3,17 +3,22 @@ import { Provider, ProviderInfo } from "./interface";
3
3
  import openai from "openai";
4
4
  import { ChatDeepSeek } from "@langchain/deepseek";
5
5
 
6
- export const DeepSeekInfo: ProviderInfo = {
6
+ export const DeepSeekInfo: ProviderInfo<{
7
+ apiKey: {
8
+ title: "API Key";
9
+ type: "string";
10
+ value: string;
11
+ };
12
+ }> = {
7
13
  id: "deepseek",
8
14
  title: "DeepSeek",
9
- configs: [
10
- {
11
- id: "apiKey",
15
+ configs: {
16
+ apiKey: {
12
17
  title: "API Key",
13
18
  type: "string",
14
19
  value: "",
15
20
  },
16
- ],
21
+ },
17
22
  };
18
23
 
19
24
  async function models(apiKey: string) {
@@ -29,8 +34,7 @@ async function models(apiKey: string) {
29
34
  }
30
35
 
31
36
  export function createDeepSeek(opts?: typeof DeepSeekInfo.configs): Provider {
32
- const apiKey =
33
- (opts?.find(({ id }) => id === "apiKey")?.value as string) || "";
37
+ const apiKey = opts?.apiKey?.value || "";
34
38
 
35
39
  return {
36
40
  models: () => models(apiKey),
@@ -3,17 +3,22 @@ import { GoogleGenAI } from "@google/genai";
3
3
  import { Provider } from "@fullstacked/ai-agent/src/providers/interface";
4
4
  import { ProviderInfo } from "./interface";
5
5
 
6
- export const GoogleInfo: ProviderInfo = {
6
+ export const GoogleInfo: ProviderInfo<{
7
+ apiKey: {
8
+ title: "API Key";
9
+ type: "string";
10
+ value: string;
11
+ };
12
+ }> = {
7
13
  id: "google",
8
14
  title: "Google",
9
- configs: [
10
- {
11
- id: "apiKey",
15
+ configs: {
16
+ apiKey: {
12
17
  title: "API Key",
13
18
  type: "string",
14
19
  value: "",
15
20
  },
16
- ],
21
+ },
17
22
  };
18
23
 
19
24
  async function models(apiKey: string) {
@@ -26,8 +31,7 @@ async function models(apiKey: string) {
26
31
  }
27
32
 
28
33
  export function createGemini(opts?: typeof GoogleInfo.configs): Provider {
29
- const apiKey =
30
- (opts?.find(({ id }) => id === "apiKey")?.value as string) || "";
34
+ const apiKey = opts?.apiKey?.value || "";
31
35
 
32
36
  return {
33
37
  models: () => models(apiKey),
@@ -8,19 +8,17 @@ import { createGrok, xAIInfo } from "./xai";
8
8
  import { DeepSeekInfo, createDeepSeek } from "./deepseek";
9
9
  import { MistralInfo, createMistral } from "./mistral";
10
10
 
11
- export function providers(): ProviderInfo[] {
12
- return [
13
- OllamaInfo,
14
- OpenAIInfo,
15
- AnthropicInfo,
16
- GoogleInfo,
17
- xAIInfo,
18
- DeepSeekInfo,
19
- MistralInfo,
20
- ];
21
- }
11
+ export const providersInfo = {
12
+ ollama: OllamaInfo,
13
+ openai: OpenAIInfo,
14
+ antropic: AnthropicInfo,
15
+ google: GoogleInfo,
16
+ xai: xAIInfo,
17
+ deepseek: DeepSeekInfo,
18
+ mistral: MistralInfo,
19
+ } as const;
22
20
 
23
- export function getProvider(providerInfo: ProviderInfo) {
21
+ export function getProvider(providerInfo: ProviderInfo<any>) {
24
22
  switch (providerInfo.id) {
25
23
  case "ollama":
26
24
  return createOllama(providerInfo.configs);
@@ -10,13 +10,17 @@ type ConfigType =
10
10
  value: [string, string][];
11
11
  };
12
12
 
13
- export type ProviderInfo = {
13
+ export type ProviderInfo<
14
+ C extends Record<
15
+ string,
16
+ ConfigType & {
17
+ title: string;
18
+ }
19
+ >,
20
+ > = {
14
21
  id: string;
15
- title: string;
16
- configs: (ConfigType & {
17
- id: string;
18
- title: string;
19
- })[];
22
+ title?: string;
23
+ configs: C;
20
24
  };
21
25
 
22
26
  export interface Provider {
@@ -4,17 +4,22 @@ import { ChatMistralAI } from "@langchain/mistralai";
4
4
  import { HTTPClient } from "@mistralai/mistralai/lib/http";
5
5
  import { Mistral } from "@mistralai/mistralai";
6
6
 
7
- export const MistralInfo: ProviderInfo = {
7
+ export const MistralInfo: ProviderInfo<{
8
+ apiKey: {
9
+ title: "API Key";
10
+ type: "string";
11
+ value: string;
12
+ };
13
+ }> = {
8
14
  id: "mistral",
9
15
  title: "Mistral AI",
10
- configs: [
11
- {
12
- id: "apiKey",
16
+ configs: {
17
+ apiKey: {
13
18
  title: "API Key",
14
19
  type: "string",
15
20
  value: "",
16
21
  },
17
- ],
22
+ },
18
23
  };
19
24
 
20
25
  async function models(apiKey: string) {
@@ -30,8 +35,7 @@ async function models(apiKey: string) {
30
35
  }
31
36
 
32
37
  export function createMistral(opts?: typeof MistralInfo.configs): Provider {
33
- const apiKey =
34
- (opts?.find(({ id }) => id === "apiKey")?.value as string) || "";
38
+ const apiKey = opts?.apiKey?.value || "";
35
39
 
36
40
  return {
37
41
  models: () => models(apiKey),
@@ -5,23 +5,32 @@ import { Provider, ProviderInfo } from "./interface";
5
5
  import { core_fetch2 } from "fetch";
6
6
  import { ChatOllama } from "@langchain/ollama";
7
7
 
8
- export const OllamaInfo: ProviderInfo = {
8
+ export const OllamaInfo: ProviderInfo<{
9
+ host: {
10
+ title: "Host";
11
+ type: "string";
12
+ value: string;
13
+ };
14
+ headers: {
15
+ title: "Custom Headers";
16
+ type: "key-value";
17
+ value: [string, string][];
18
+ };
19
+ }> = {
9
20
  id: "ollama",
10
21
  title: "Ollama",
11
- configs: [
12
- {
13
- id: "host",
22
+ configs: {
23
+ host: {
14
24
  title: "Host",
15
25
  type: "string",
16
- value: "http://localhost:11434",
26
+ value: "",
17
27
  },
18
- {
19
- id: "headers",
28
+ headers: {
20
29
  title: "Custom Headers",
21
30
  type: "key-value",
22
31
  value: [],
23
32
  },
24
- ],
33
+ },
25
34
  };
26
35
 
27
36
  async function models(opts: ollama.Config) {
@@ -42,12 +51,8 @@ function keyValueArrToObject(arr: [string, string][]) {
42
51
  }
43
52
 
44
53
  export function createOllama(opts?: typeof OllamaInfo.configs): Provider {
45
- const baseUrl =
46
- (opts?.find(({ id }) => id === "host")?.value as string) ||
47
- "http://localhost:11434";
48
- const headers = keyValueArrToObject(
49
- (opts?.find(({ id }) => id === "headers")?.value as []) || [],
50
- );
54
+ const baseUrl = opts?.host?.value || "http://localhost:11434";
55
+ const headers = keyValueArrToObject(opts?.headers?.value || []);
51
56
  return {
52
57
  models: () =>
53
58
  models({
@@ -3,17 +3,22 @@ import { Provider, ProviderInfo } from "./interface";
3
3
  import openai from "openai";
4
4
  import { ChatOpenAI } from "@langchain/openai";
5
5
 
6
- export const OpenAIInfo: ProviderInfo = {
6
+ export const OpenAIInfo: ProviderInfo<{
7
+ apiKey: {
8
+ title: "API Key";
9
+ type: "string";
10
+ value: string;
11
+ };
12
+ }> = {
7
13
  id: "openai",
8
14
  title: "OpenAI",
9
- configs: [
10
- {
11
- id: "apiKey",
15
+ configs: {
16
+ apiKey: {
12
17
  title: "API Key",
13
18
  type: "string",
14
19
  value: "",
15
20
  },
16
- ],
21
+ },
17
22
  };
18
23
 
19
24
  async function models(apiKey: string) {
@@ -28,8 +33,7 @@ async function models(apiKey: string) {
28
33
  }
29
34
 
30
35
  export function createOpenAI(opts?: typeof OpenAIInfo.configs): Provider {
31
- const apiKey =
32
- (opts?.find(({ id }) => id === "apiKey")?.value as string) || "";
36
+ const apiKey = opts?.apiKey?.value || "";
33
37
 
34
38
  return {
35
39
  models: () => models(apiKey),
@@ -3,17 +3,22 @@ import { Provider, ProviderInfo } from "./interface";
3
3
  import openai from "openai";
4
4
  import { ChatXAI } from "@langchain/xai";
5
5
 
6
- export const xAIInfo: ProviderInfo = {
6
+ export const xAIInfo: ProviderInfo<{
7
+ apiKey: {
8
+ title: "API Key";
9
+ type: "string";
10
+ value: string;
11
+ };
12
+ }> = {
7
13
  id: "xai",
8
14
  title: "xAI",
9
- configs: [
10
- {
11
- id: "apiKey",
15
+ configs: {
16
+ apiKey: {
12
17
  title: "API Key",
13
18
  type: "string",
14
19
  value: "",
15
20
  },
16
- ],
21
+ },
17
22
  };
18
23
 
19
24
  async function models(apiKey: string) {
@@ -29,8 +34,7 @@ async function models(apiKey: string) {
29
34
  }
30
35
 
31
36
  export function createGrok(opts?: typeof xAIInfo.configs): Provider {
32
- const apiKey =
33
- (opts?.find(({ id }) => id === "apiKey")?.value as string) || "";
37
+ const apiKey = opts?.apiKey?.value || "";
34
38
 
35
39
  return {
36
40
  models: () => models(apiKey),