fullstacked 0.12.1-1330 → 0.12.1-1354

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 (267) hide show
  1. package/fullstacked_modules/{ai/index.js → @fullstacked/ai-agent/ai-agent.js} +4818 -8539
  2. package/fullstacked_modules/@fullstacked/ai-agent/package.json +26 -23
  3. package/fullstacked_modules/@fullstacked/ui/index.js +664 -0
  4. package/fullstacked_modules/auto_update/index.ts +66 -0
  5. package/fullstacked_modules/bridge/index.ts +2 -57
  6. package/fullstacked_modules/{esbuild/esbuild.ts → build/build.ts} +31 -28
  7. package/fullstacked_modules/build/index.ts +3 -0
  8. package/fullstacked_modules/build/sass.ts +55 -0
  9. package/fullstacked_modules/components/snackbar.css +54 -1
  10. package/fullstacked_modules/components/snackbar.scss +52 -0
  11. package/fullstacked_modules/sass/index.js +6445 -6464
  12. package/fullstacked_modules/zod/index.cjs +33 -0
  13. package/fullstacked_modules/zod/index.js +4 -0
  14. package/fullstacked_modules/zod/v3/ZodError.cjs +138 -0
  15. package/fullstacked_modules/zod/v3/ZodError.js +133 -0
  16. package/fullstacked_modules/zod/v3/errors.cjs +17 -0
  17. package/fullstacked_modules/zod/v3/errors.js +9 -0
  18. package/fullstacked_modules/zod/v3/external.cjs +22 -0
  19. package/fullstacked_modules/zod/v3/external.js +6 -0
  20. package/fullstacked_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  21. package/fullstacked_modules/zod/v3/helpers/enumUtil.js +1 -0
  22. package/fullstacked_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  23. package/fullstacked_modules/zod/v3/helpers/errorUtil.js +6 -0
  24. package/fullstacked_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  25. package/fullstacked_modules/zod/v3/helpers/parseUtil.js +109 -0
  26. package/fullstacked_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  27. package/fullstacked_modules/zod/v3/helpers/partialUtil.js +1 -0
  28. package/fullstacked_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  29. package/fullstacked_modules/zod/v3/helpers/typeAliases.js +1 -0
  30. package/fullstacked_modules/zod/v3/helpers/util.cjs +137 -0
  31. package/fullstacked_modules/zod/v3/helpers/util.js +133 -0
  32. package/fullstacked_modules/zod/v3/index.cjs +33 -0
  33. package/fullstacked_modules/zod/v3/index.js +4 -0
  34. package/fullstacked_modules/zod/v3/locales/en.cjs +111 -0
  35. package/fullstacked_modules/zod/v3/locales/en.js +109 -0
  36. package/fullstacked_modules/zod/v3/standard-schema.cjs +2 -0
  37. package/fullstacked_modules/zod/v3/standard-schema.js +1 -0
  38. package/fullstacked_modules/zod/v3/types.cjs +3775 -0
  39. package/fullstacked_modules/zod/v3/types.js +3693 -0
  40. package/fullstacked_modules/zod/v4/classic/checks.cjs +32 -0
  41. package/fullstacked_modules/zod/v4/classic/checks.js +1 -0
  42. package/fullstacked_modules/zod/v4/classic/coerce.cjs +47 -0
  43. package/fullstacked_modules/zod/v4/classic/coerce.js +17 -0
  44. package/fullstacked_modules/zod/v4/classic/compat.cjs +57 -0
  45. package/fullstacked_modules/zod/v4/classic/compat.js +27 -0
  46. package/fullstacked_modules/zod/v4/classic/errors.cjs +67 -0
  47. package/fullstacked_modules/zod/v4/classic/errors.js +41 -0
  48. package/fullstacked_modules/zod/v4/classic/external.cjs +70 -0
  49. package/fullstacked_modules/zod/v4/classic/external.js +18 -0
  50. package/fullstacked_modules/zod/v4/classic/index.cjs +33 -0
  51. package/fullstacked_modules/zod/v4/classic/index.js +4 -0
  52. package/fullstacked_modules/zod/v4/classic/iso.cjs +60 -0
  53. package/fullstacked_modules/zod/v4/classic/iso.js +30 -0
  54. package/fullstacked_modules/zod/v4/classic/parse.cjs +32 -0
  55. package/fullstacked_modules/zod/v4/classic/parse.js +6 -0
  56. package/fullstacked_modules/zod/v4/classic/schemas.cjs +1109 -0
  57. package/fullstacked_modules/zod/v4/classic/schemas.js +1006 -0
  58. package/fullstacked_modules/zod/v4/core/api.cjs +1039 -0
  59. package/fullstacked_modules/zod/v4/core/api.js +906 -0
  60. package/fullstacked_modules/zod/v4/core/checks.cjs +591 -0
  61. package/fullstacked_modules/zod/v4/core/checks.js +565 -0
  62. package/fullstacked_modules/zod/v4/core/core.cjs +67 -0
  63. package/fullstacked_modules/zod/v4/core/core.js +61 -0
  64. package/fullstacked_modules/zod/v4/core/doc.cjs +39 -0
  65. package/fullstacked_modules/zod/v4/core/doc.js +35 -0
  66. package/fullstacked_modules/zod/v4/core/errors.cjs +226 -0
  67. package/fullstacked_modules/zod/v4/core/errors.js +195 -0
  68. package/fullstacked_modules/zod/v4/core/function.cjs +102 -0
  69. package/fullstacked_modules/zod/v4/core/function.js +75 -0
  70. package/fullstacked_modules/zod/v4/core/index.cjs +44 -0
  71. package/fullstacked_modules/zod/v4/core/index.js +15 -0
  72. package/fullstacked_modules/zod/v4/core/json-schema.cjs +2 -0
  73. package/fullstacked_modules/zod/v4/core/json-schema.js +1 -0
  74. package/fullstacked_modules/zod/v4/core/parse.cjs +87 -0
  75. package/fullstacked_modules/zod/v4/core/parse.js +57 -0
  76. package/fullstacked_modules/zod/v4/core/regexes.cjs +103 -0
  77. package/fullstacked_modules/zod/v4/core/regexes.js +95 -0
  78. package/fullstacked_modules/zod/v4/core/registries.cjs +56 -0
  79. package/fullstacked_modules/zod/v4/core/registries.js +51 -0
  80. package/fullstacked_modules/zod/v4/core/schemas.cjs +1748 -0
  81. package/fullstacked_modules/zod/v4/core/schemas.js +1717 -0
  82. package/fullstacked_modules/zod/v4/core/standard-schema.cjs +2 -0
  83. package/fullstacked_modules/zod/v4/core/standard-schema.js +1 -0
  84. package/fullstacked_modules/zod/v4/core/to-json-schema.cjs +854 -0
  85. package/fullstacked_modules/zod/v4/core/to-json-schema.js +849 -0
  86. package/fullstacked_modules/zod/v4/core/util.cjs +539 -0
  87. package/fullstacked_modules/zod/v4/core/util.js +493 -0
  88. package/fullstacked_modules/zod/v4/core/versions.cjs +8 -0
  89. package/fullstacked_modules/zod/v4/core/versions.js +5 -0
  90. package/fullstacked_modules/zod/v4/index.cjs +22 -0
  91. package/fullstacked_modules/zod/v4/index.js +3 -0
  92. package/fullstacked_modules/zod/v4/locales/ar.cjs +142 -0
  93. package/fullstacked_modules/zod/v4/locales/ar.js +116 -0
  94. package/fullstacked_modules/zod/v4/locales/az.cjs +141 -0
  95. package/fullstacked_modules/zod/v4/locales/az.js +115 -0
  96. package/fullstacked_modules/zod/v4/locales/be.cjs +190 -0
  97. package/fullstacked_modules/zod/v4/locales/be.js +164 -0
  98. package/fullstacked_modules/zod/v4/locales/ca.cjs +144 -0
  99. package/fullstacked_modules/zod/v4/locales/ca.js +118 -0
  100. package/fullstacked_modules/zod/v4/locales/cs.cjs +161 -0
  101. package/fullstacked_modules/zod/v4/locales/cs.js +135 -0
  102. package/fullstacked_modules/zod/v4/locales/de.cjs +142 -0
  103. package/fullstacked_modules/zod/v4/locales/de.js +116 -0
  104. package/fullstacked_modules/zod/v4/locales/en.cjs +145 -0
  105. package/fullstacked_modules/zod/v4/locales/en.js +117 -0
  106. package/fullstacked_modules/zod/v4/locales/eo.cjs +144 -0
  107. package/fullstacked_modules/zod/v4/locales/eo.js +116 -0
  108. package/fullstacked_modules/zod/v4/locales/es.cjs +143 -0
  109. package/fullstacked_modules/zod/v4/locales/es.js +117 -0
  110. package/fullstacked_modules/zod/v4/locales/fa.cjs +148 -0
  111. package/fullstacked_modules/zod/v4/locales/fa.js +122 -0
  112. package/fullstacked_modules/zod/v4/locales/fi.cjs +148 -0
  113. package/fullstacked_modules/zod/v4/locales/fi.js +122 -0
  114. package/fullstacked_modules/zod/v4/locales/fr-CA.cjs +143 -0
  115. package/fullstacked_modules/zod/v4/locales/fr-CA.js +117 -0
  116. package/fullstacked_modules/zod/v4/locales/fr.cjs +142 -0
  117. package/fullstacked_modules/zod/v4/locales/fr.js +116 -0
  118. package/fullstacked_modules/zod/v4/locales/he.cjs +143 -0
  119. package/fullstacked_modules/zod/v4/locales/he.js +117 -0
  120. package/fullstacked_modules/zod/v4/locales/hu.cjs +143 -0
  121. package/fullstacked_modules/zod/v4/locales/hu.js +117 -0
  122. package/fullstacked_modules/zod/v4/locales/id.cjs +142 -0
  123. package/fullstacked_modules/zod/v4/locales/id.js +116 -0
  124. package/fullstacked_modules/zod/v4/locales/index.cjs +84 -0
  125. package/fullstacked_modules/zod/v4/locales/index.js +39 -0
  126. package/fullstacked_modules/zod/v4/locales/it.cjs +143 -0
  127. package/fullstacked_modules/zod/v4/locales/it.js +117 -0
  128. package/fullstacked_modules/zod/v4/locales/ja.cjs +141 -0
  129. package/fullstacked_modules/zod/v4/locales/ja.js +115 -0
  130. package/fullstacked_modules/zod/v4/locales/kh.cjs +143 -0
  131. package/fullstacked_modules/zod/v4/locales/kh.js +117 -0
  132. package/fullstacked_modules/zod/v4/locales/ko.cjs +147 -0
  133. package/fullstacked_modules/zod/v4/locales/ko.js +121 -0
  134. package/fullstacked_modules/zod/v4/locales/mk.cjs +144 -0
  135. package/fullstacked_modules/zod/v4/locales/mk.js +118 -0
  136. package/fullstacked_modules/zod/v4/locales/ms.cjs +142 -0
  137. package/fullstacked_modules/zod/v4/locales/ms.js +116 -0
  138. package/fullstacked_modules/zod/v4/locales/nl.cjs +143 -0
  139. package/fullstacked_modules/zod/v4/locales/nl.js +117 -0
  140. package/fullstacked_modules/zod/v4/locales/no.cjs +142 -0
  141. package/fullstacked_modules/zod/v4/locales/no.js +116 -0
  142. package/fullstacked_modules/zod/v4/locales/ota.cjs +143 -0
  143. package/fullstacked_modules/zod/v4/locales/ota.js +117 -0
  144. package/fullstacked_modules/zod/v4/locales/pl.cjs +143 -0
  145. package/fullstacked_modules/zod/v4/locales/pl.js +117 -0
  146. package/fullstacked_modules/zod/v4/locales/ps.cjs +148 -0
  147. package/fullstacked_modules/zod/v4/locales/ps.js +122 -0
  148. package/fullstacked_modules/zod/v4/locales/pt.cjs +142 -0
  149. package/fullstacked_modules/zod/v4/locales/pt.js +116 -0
  150. package/fullstacked_modules/zod/v4/locales/ru.cjs +190 -0
  151. package/fullstacked_modules/zod/v4/locales/ru.js +164 -0
  152. package/fullstacked_modules/zod/v4/locales/sl.cjs +143 -0
  153. package/fullstacked_modules/zod/v4/locales/sl.js +117 -0
  154. package/fullstacked_modules/zod/v4/locales/sv.cjs +144 -0
  155. package/fullstacked_modules/zod/v4/locales/sv.js +118 -0
  156. package/fullstacked_modules/zod/v4/locales/ta.cjs +143 -0
  157. package/fullstacked_modules/zod/v4/locales/ta.js +117 -0
  158. package/fullstacked_modules/zod/v4/locales/th.cjs +143 -0
  159. package/fullstacked_modules/zod/v4/locales/th.js +117 -0
  160. package/fullstacked_modules/zod/v4/locales/tr.cjs +143 -0
  161. package/fullstacked_modules/zod/v4/locales/tr.js +115 -0
  162. package/fullstacked_modules/zod/v4/locales/ua.cjs +143 -0
  163. package/fullstacked_modules/zod/v4/locales/ua.js +117 -0
  164. package/fullstacked_modules/zod/v4/locales/ur.cjs +143 -0
  165. package/fullstacked_modules/zod/v4/locales/ur.js +117 -0
  166. package/fullstacked_modules/zod/v4/locales/vi.cjs +142 -0
  167. package/fullstacked_modules/zod/v4/locales/vi.js +116 -0
  168. package/fullstacked_modules/zod/v4/locales/zh-CN.cjs +142 -0
  169. package/fullstacked_modules/zod/v4/locales/zh-CN.js +116 -0
  170. package/fullstacked_modules/zod/v4/locales/zh-TW.cjs +143 -0
  171. package/fullstacked_modules/zod/v4/locales/zh-TW.js +117 -0
  172. package/fullstacked_modules/zod/v4/mini/checks.cjs +34 -0
  173. package/fullstacked_modules/zod/v4/mini/checks.js +1 -0
  174. package/fullstacked_modules/zod/v4/mini/coerce.cjs +47 -0
  175. package/fullstacked_modules/zod/v4/mini/coerce.js +17 -0
  176. package/fullstacked_modules/zod/v4/mini/external.cjs +62 -0
  177. package/fullstacked_modules/zod/v4/mini/external.js +13 -0
  178. package/fullstacked_modules/zod/v4/mini/index.cjs +32 -0
  179. package/fullstacked_modules/zod/v4/mini/index.js +3 -0
  180. package/fullstacked_modules/zod/v4/mini/iso.cjs +60 -0
  181. package/fullstacked_modules/zod/v4/mini/iso.js +30 -0
  182. package/fullstacked_modules/zod/v4/mini/parse.cjs +8 -0
  183. package/fullstacked_modules/zod/v4/mini/parse.js +1 -0
  184. package/fullstacked_modules/zod/v4/mini/schemas.cjs +839 -0
  185. package/fullstacked_modules/zod/v4/mini/schemas.js +732 -0
  186. package/fullstacked_modules/zod/v4-mini/index.cjs +17 -0
  187. package/fullstacked_modules/zod/v4-mini/index.js +1 -0
  188. package/index.js +121 -186
  189. package/package.json +4 -4
  190. package/fullstacked_modules/@fullstacked/ui/README.md +0 -3
  191. package/fullstacked_modules/@fullstacked/ui/components/button-group/button-group.scss +0 -28
  192. package/fullstacked_modules/@fullstacked/ui/components/button-group/index.ts +0 -8
  193. package/fullstacked_modules/@fullstacked/ui/components/dialog/dialog.scss +0 -39
  194. package/fullstacked_modules/@fullstacked/ui/components/dialog/index.ts +0 -17
  195. package/fullstacked_modules/@fullstacked/ui/components/list-item/index.ts +0 -37
  196. package/fullstacked_modules/@fullstacked/ui/components/list-item/list-item.scss +0 -19
  197. package/fullstacked_modules/@fullstacked/ui/components/loader/index.ts +0 -14
  198. package/fullstacked_modules/@fullstacked/ui/components/loader/loader.scss +0 -25
  199. package/fullstacked_modules/@fullstacked/ui/components/message/index.ts +0 -26
  200. package/fullstacked_modules/@fullstacked/ui/components/message/message.scss +0 -20
  201. package/fullstacked_modules/@fullstacked/ui/components/popover/index.ts +0 -114
  202. package/fullstacked_modules/@fullstacked/ui/components/popover/popover.scss +0 -44
  203. package/fullstacked_modules/@fullstacked/ui/globals.scss +0 -66
  204. package/fullstacked_modules/@fullstacked/ui/icons/Archive.svg +0 -3
  205. package/fullstacked_modules/@fullstacked/ui/icons/Arrow 2.svg +0 -3
  206. package/fullstacked_modules/@fullstacked/ui/icons/Arrow Corner.svg +0 -3
  207. package/fullstacked_modules/@fullstacked/ui/icons/Arrow.svg +0 -3
  208. package/fullstacked_modules/@fullstacked/ui/icons/Caret.svg +0 -3
  209. package/fullstacked_modules/@fullstacked/ui/icons/Check.svg +0 -3
  210. package/fullstacked_modules/@fullstacked/ui/icons/Clipboard.svg +0 -12
  211. package/fullstacked_modules/@fullstacked/ui/icons/Clock.svg +0 -12
  212. package/fullstacked_modules/@fullstacked/ui/icons/Close.svg +0 -10
  213. package/fullstacked_modules/@fullstacked/ui/icons/Copy.svg +0 -3
  214. package/fullstacked_modules/@fullstacked/ui/icons/Directory Add.svg +0 -3
  215. package/fullstacked_modules/@fullstacked/ui/icons/Edit.svg +0 -3
  216. package/fullstacked_modules/@fullstacked/ui/icons/Export.svg +0 -3
  217. package/fullstacked_modules/@fullstacked/ui/icons/External Link.svg +0 -3
  218. package/fullstacked_modules/@fullstacked/ui/icons/File Add.svg +0 -3
  219. package/fullstacked_modules/@fullstacked/ui/icons/File.svg +0 -3
  220. package/fullstacked_modules/@fullstacked/ui/icons/Git Branch.svg +0 -3
  221. package/fullstacked_modules/@fullstacked/ui/icons/Git.svg +0 -3
  222. package/fullstacked_modules/@fullstacked/ui/icons/Glitter.svg +0 -3
  223. package/fullstacked_modules/@fullstacked/ui/icons/Info.svg +0 -3
  224. package/fullstacked_modules/@fullstacked/ui/icons/Link.svg +0 -10
  225. package/fullstacked_modules/@fullstacked/ui/icons/Loader.svg +0 -4
  226. package/fullstacked_modules/@fullstacked/ui/icons/Lock.svg +0 -3
  227. package/fullstacked_modules/@fullstacked/ui/icons/Options.svg +0 -3
  228. package/fullstacked_modules/@fullstacked/ui/icons/Package.svg +0 -3
  229. package/fullstacked_modules/@fullstacked/ui/icons/Peers.svg +0 -3
  230. package/fullstacked_modules/@fullstacked/ui/icons/Play.svg +0 -3
  231. package/fullstacked_modules/@fullstacked/ui/icons/Plus.svg +0 -3
  232. package/fullstacked_modules/@fullstacked/ui/icons/Revert.svg +0 -3
  233. package/fullstacked_modules/@fullstacked/ui/icons/Settings.svg +0 -3
  234. package/fullstacked_modules/@fullstacked/ui/icons/Side Panel.svg +0 -3
  235. package/fullstacked_modules/@fullstacked/ui/icons/Terminal.svg +0 -3
  236. package/fullstacked_modules/@fullstacked/ui/icons/Trash.svg +0 -3
  237. package/fullstacked_modules/@fullstacked/ui/icons/TypeScript.svg +0 -3
  238. package/fullstacked_modules/@fullstacked/ui/icons/Upload.svg +0 -3
  239. package/fullstacked_modules/@fullstacked/ui/icons/User.svg +0 -3
  240. package/fullstacked_modules/@fullstacked/ui/icons/Warning.svg +0 -3
  241. package/fullstacked_modules/@fullstacked/ui/inputs/checkbox/index.ts +0 -28
  242. package/fullstacked_modules/@fullstacked/ui/inputs/file/index.ts +0 -48
  243. package/fullstacked_modules/@fullstacked/ui/inputs/inputs.scss +0 -224
  244. package/fullstacked_modules/@fullstacked/ui/inputs/observer.ts +0 -36
  245. package/fullstacked_modules/@fullstacked/ui/inputs/predictive/index.ts +0 -195
  246. package/fullstacked_modules/@fullstacked/ui/inputs/radio/index.ts +0 -28
  247. package/fullstacked_modules/@fullstacked/ui/inputs/select/index.ts +0 -125
  248. package/fullstacked_modules/@fullstacked/ui/inputs/switch/index.ts +0 -37
  249. package/fullstacked_modules/@fullstacked/ui/inputs/text/index.ts +0 -53
  250. package/fullstacked_modules/@fullstacked/ui/package.json +0 -8
  251. package/fullstacked_modules/@fullstacked/ui/primitives/badge/badge.scss +0 -35
  252. package/fullstacked_modules/@fullstacked/ui/primitives/badge/index.ts +0 -23
  253. package/fullstacked_modules/@fullstacked/ui/primitives/button/button.scss +0 -97
  254. package/fullstacked_modules/@fullstacked/ui/primitives/button/index.ts +0 -41
  255. package/fullstacked_modules/@fullstacked/ui/primitives/icon/icon.scss +0 -13
  256. package/fullstacked_modules/@fullstacked/ui/primitives/icon/index.ts +0 -30
  257. package/fullstacked_modules/@fullstacked/ui/ui.scss +0 -15
  258. package/fullstacked_modules/@fullstacked/ui/ui.ts +0 -18
  259. package/fullstacked_modules/@fullstacked/ui/values/breakpoints.scss +0 -7
  260. package/fullstacked_modules/@fullstacked/ui/values/colors.scss +0 -26
  261. package/fullstacked_modules/@fullstacked/ui/values/spacing.scss +0 -10
  262. package/fullstacked_modules/@fullstacked/ui/values/typography.scss +0 -23
  263. package/fullstacked_modules/esbuild/index.d.ts +0 -0
  264. package/fullstacked_modules/esbuild/index.ts +0 -3
  265. package/fullstacked_modules/esbuild/sass.ts +0 -100
  266. package/fullstacked_modules/sass/index.d.ts +0 -0
  267. /package/fullstacked_modules/{@fullstacked → build}/index.d.ts +0 -0
@@ -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
  }
@@ -0,0 +1,664 @@
1
+ // node_modules/@fullstacked/ui/primitives/icon/index.ts
2
+ var iconsDirectory = "/node_modules/@fullstacked/ui/icons";
3
+ function setIconsDirectory(directory) {
4
+ iconsDirectory = directory;
5
+ }
6
+ function Icon(name) {
7
+ const container = document.createElement("div");
8
+ container.classList.add("icon");
9
+ loadIcon(name).then((svgData) => container.innerHTML = svgData);
10
+ return container;
11
+ }
12
+ var iconCache = /* @__PURE__ */ new Map();
13
+ function loadIcon(name) {
14
+ let icon = iconCache.get(name);
15
+ if (!icon) {
16
+ icon = fetchIcon(name);
17
+ iconCache.set(name, icon);
18
+ }
19
+ return icon;
20
+ }
21
+ async function fetchIcon(name) {
22
+ const response = await fetch(`${iconsDirectory}/${name}.svg`);
23
+ return response.text();
24
+ }
25
+
26
+ // node_modules/@fullstacked/ui/primitives/button/index.ts
27
+ function Button(opts) {
28
+ const button = document.createElement("button");
29
+ if (!opts?.style?.startsWith("icon")) {
30
+ button.innerText = opts?.text || "";
31
+ }
32
+ if (opts?.style && opts?.style !== "default") {
33
+ button.classList.add(opts.style);
34
+ }
35
+ if (opts?.color) {
36
+ button.classList.add(opts.color);
37
+ }
38
+ if (opts?.iconLeft) {
39
+ button.prepend(Icon(opts.iconLeft));
40
+ }
41
+ if (opts?.iconRight) {
42
+ button.append(Icon(opts.iconRight));
43
+ }
44
+ return button;
45
+ }
46
+
47
+ // node_modules/@fullstacked/ui/primitives/badge/index.ts
48
+ function Badge(opts) {
49
+ const container = document.createElement("label");
50
+ container.classList.add("badge");
51
+ if (opts?.type) {
52
+ container.classList.add(opts.type);
53
+ }
54
+ container.innerText = opts?.text || "";
55
+ return container;
56
+ }
57
+
58
+ // node_modules/@fullstacked/ui/inputs/text/index.ts
59
+ function InputText(opts) {
60
+ const container = document.createElement("div");
61
+ container.classList.add("input-text");
62
+ if (opts?.label) {
63
+ container.innerHTML = `<label>${opts.label}</label>`;
64
+ }
65
+ const inputContainer = document.createElement("div");
66
+ inputContainer.classList.add("input-container");
67
+ const input = document.createElement("input");
68
+ input.autocapitalize = "off";
69
+ inputContainer.append(input);
70
+ if (opts?.clear) {
71
+ const buttonContainer = document.createElement("div");
72
+ buttonContainer.classList.add("button-container");
73
+ const clearButton = Button({
74
+ style: "icon-small",
75
+ iconRight: "Close"
76
+ });
77
+ clearButton.type = "button";
78
+ clearButton.onclick = (e) => {
79
+ input.value = "";
80
+ buttonContainer.classList.remove("show");
81
+ input.dispatchEvent(new KeyboardEvent("keyup"));
82
+ };
83
+ buttonContainer.append(clearButton);
84
+ inputContainer.append(buttonContainer);
85
+ input.addEventListener("keyup", () => {
86
+ if (input.value) {
87
+ buttonContainer.classList.add("show");
88
+ } else {
89
+ buttonContainer.classList.remove("show");
90
+ }
91
+ });
92
+ }
93
+ container.append(inputContainer);
94
+ return {
95
+ container,
96
+ input
97
+ };
98
+ }
99
+
100
+ // node_modules/@fullstacked/ui/inputs/observer.ts
101
+ var updateOverriddenInputs = () => {
102
+ const inputsChecked = document.querySelectorAll(
103
+ "input[type=checkbox], input[type=radio]"
104
+ );
105
+ inputsChecked.forEach((input) => {
106
+ const parent = input.parentElement;
107
+ if (input.checked) parent.classList.add("checked");
108
+ else parent.classList.remove("checked");
109
+ });
110
+ const inputsFile = document.querySelectorAll("input[type=file]");
111
+ inputsFile.forEach((inputFile) => {
112
+ const file = inputFile.files[0];
113
+ const fileName = inputFile.nextElementSibling?.children?.[0];
114
+ if (!fileName) return;
115
+ fileName.innerText = file?.name || "No file chosen";
116
+ });
117
+ const inputsSelect = document.querySelectorAll("select");
118
+ inputsSelect.forEach((inputSelect) => {
119
+ if (inputSelect.selectedIndex) {
120
+ inputSelect.classList.remove("invalid");
121
+ } else {
122
+ inputSelect.classList.add("invalid");
123
+ }
124
+ });
125
+ };
126
+ var interval = null;
127
+ function startObserverInterval() {
128
+ if (interval) return;
129
+ interval = setInterval(updateOverriddenInputs, 100);
130
+ }
131
+
132
+ // node_modules/@fullstacked/ui/inputs/file/index.ts
133
+ function InputFile(opts) {
134
+ startObserverInterval();
135
+ const container = document.createElement("div");
136
+ container.classList.add("input-file");
137
+ if (opts?.label) {
138
+ container.innerHTML = `<label>${opts.label}</label>`;
139
+ }
140
+ const input = document.createElement("input");
141
+ input.type = "file";
142
+ container.append(input);
143
+ const overrideUI = document.createElement("div");
144
+ const fileName = document.createElement("span");
145
+ fileName.innerText = "No file chosen";
146
+ input.addEventListener("change", () => {
147
+ const file = input.files[0];
148
+ fileName.innerText = file?.name || "No file chosen";
149
+ });
150
+ const button = Button({
151
+ iconRight: "File",
152
+ text: "Select"
153
+ });
154
+ button.onclick = (e) => {
155
+ e.preventDefault();
156
+ input.click();
157
+ };
158
+ overrideUI.append(fileName, button);
159
+ container.append(overrideUI);
160
+ return {
161
+ container,
162
+ input
163
+ };
164
+ }
165
+
166
+ // node_modules/@fullstacked/ui/inputs/switch/index.ts
167
+ function InputSwitch(opts) {
168
+ startObserverInterval();
169
+ const container = document.createElement("div");
170
+ container.classList.add("input-switch");
171
+ if (opts?.label) {
172
+ container.innerHTML = `<label>${opts.label}</label>`;
173
+ }
174
+ const input = document.createElement("input");
175
+ input.type = "checkbox";
176
+ input.addEventListener("change", () => {
177
+ if (input.checked) container.classList.add("checked");
178
+ else container.classList.remove("checked");
179
+ });
180
+ container.append(input);
181
+ const overrideUI = document.createElement("div");
182
+ const switchEl = document.createElement("div");
183
+ switchEl.onclick = () => input.click();
184
+ switchEl.innerHTML = `<div></div>`;
185
+ overrideUI.append(switchEl);
186
+ container.append(overrideUI);
187
+ return {
188
+ input,
189
+ container
190
+ };
191
+ }
192
+
193
+ // node_modules/@fullstacked/ui/inputs/checkbox/index.ts
194
+ function InputCheckbox() {
195
+ startObserverInterval();
196
+ const container = document.createElement("div");
197
+ container.classList.add("input-checkbox");
198
+ const input = document.createElement("input");
199
+ input.type = "checkbox";
200
+ input.addEventListener("change", () => {
201
+ if (input.checked) container.classList.add("checked");
202
+ else container.classList.remove("checked");
203
+ });
204
+ const overrideUI = document.createElement("div");
205
+ overrideUI.onclick = () => input.click();
206
+ overrideUI.innerHTML = "<div></div>";
207
+ container.append(input, overrideUI);
208
+ return {
209
+ container,
210
+ input
211
+ };
212
+ }
213
+
214
+ // node_modules/@fullstacked/ui/inputs/radio/index.ts
215
+ function InputRadio() {
216
+ startObserverInterval();
217
+ const container = document.createElement("div");
218
+ container.classList.add("input-radio");
219
+ const input = document.createElement("input");
220
+ input.type = "radio";
221
+ input.addEventListener("change", () => {
222
+ if (input.checked) container.classList.add("checked");
223
+ else container.classList.remove("checked");
224
+ });
225
+ const overrideUI = document.createElement("div");
226
+ overrideUI.onclick = () => input.click();
227
+ overrideUI.innerHTML = "<div></div>";
228
+ container.append(input, overrideUI);
229
+ return {
230
+ container,
231
+ input
232
+ };
233
+ }
234
+
235
+ // node_modules/@fullstacked/ui/inputs/predictive/index.ts
236
+ var SPACE = String.fromCharCode(160);
237
+ function InputPredictive(opts) {
238
+ const container = document.createElement("div");
239
+ container.classList.add("input-predictive");
240
+ if (opts?.label) {
241
+ container.innerHTML = `<label>${opts.label}</label>`;
242
+ }
243
+ const input = document.createElement("div");
244
+ input.contentEditable = "true";
245
+ input.autocapitalize = "off";
246
+ input.setAttribute("autocomplete", "off");
247
+ input.setAttribute("autocorrect", "off");
248
+ let prediction = document.createElement("span");
249
+ prediction.contentEditable = "false";
250
+ input.append(prediction);
251
+ const spaceRegex = new RegExp(SPACE, "g");
252
+ let predictions = [];
253
+ let predictionIndex = 0;
254
+ const prevPrediction = () => {
255
+ if (predictionIndex === 0) {
256
+ return;
257
+ }
258
+ predictionIndex -= 1;
259
+ prediction.innerText = predictions.at(predictionIndex);
260
+ };
261
+ const nextPrediction = () => {
262
+ if (predictionIndex === predictions.length - 1) {
263
+ return;
264
+ }
265
+ predictionIndex += 1;
266
+ prediction.innerText = predictions.at(predictionIndex);
267
+ };
268
+ const predict = async () => {
269
+ Array.from(input.children).forEach((child) => {
270
+ if (child.innerHTML === "" || child instanceof HTMLBRElement) {
271
+ child.remove();
272
+ }
273
+ });
274
+ if (prediction.getBoundingClientRect().height == 0) {
275
+ input.append(prediction);
276
+ }
277
+ let value = input.innerText.replace(spaceRegex, " ");
278
+ const prevP = prediction.innerText;
279
+ if (prevP) {
280
+ value = value.slice(0, 0 - prevP.length);
281
+ }
282
+ const onChangeResult = opts?.onChange?.(value);
283
+ if (onChangeResult instanceof Promise) {
284
+ predictions = await onChangeResult;
285
+ } else {
286
+ predictions = onChangeResult;
287
+ }
288
+ predictions = predictions.map((p) => p.replace(/ /g, SPACE));
289
+ if (predictions.length) {
290
+ predictionIndex = 0;
291
+ prediction.innerText = predictions.at(predictionIndex);
292
+ } else {
293
+ prediction.innerText = "";
294
+ }
295
+ };
296
+ const replaceCursor = () => {
297
+ const range = document.createRange();
298
+ const sel = window.getSelection();
299
+ if (input.childNodes?.[0]) {
300
+ range.setStart(input.childNodes[0], getValue().length);
301
+ } else {
302
+ range.setStart(input, 0);
303
+ }
304
+ range.collapse(true);
305
+ sel.removeAllRanges();
306
+ sel.addRange(range);
307
+ };
308
+ const getCursorPos = () => {
309
+ const sel = window.getSelection();
310
+ return sel.anchorOffset;
311
+ };
312
+ const applyPrediction = () => {
313
+ const p = prediction?.innerText || "";
314
+ if (p) {
315
+ prediction.innerText = "";
316
+ input.innerText += p;
317
+ replaceCursor();
318
+ }
319
+ };
320
+ prediction.onclick = () => {
321
+ applyPrediction();
322
+ };
323
+ input.onpaste = () => {
324
+ prediction.innerText = "";
325
+ setTimeout(() => {
326
+ input.innerText = input.innerText;
327
+ predict();
328
+ });
329
+ };
330
+ input.onblur = () => {
331
+ prediction.remove();
332
+ };
333
+ input.onfocus = () => {
334
+ predict();
335
+ let value = input.innerText;
336
+ const prevP = prediction.innerText;
337
+ if (prevP) {
338
+ value = value.slice(0, 0 - prevP.length);
339
+ }
340
+ if (value) {
341
+ setTimeout(replaceCursor);
342
+ }
343
+ };
344
+ input.onkeyup = (e) => {
345
+ const { key } = e;
346
+ if (key === "ArrowUp" || key === "ArrowDown") {
347
+ return;
348
+ }
349
+ predict();
350
+ };
351
+ input.onkeydown = (e) => {
352
+ const { key } = e;
353
+ if (key === "ArrowUp" || key === "ArrowDown") {
354
+ e.preventDefault();
355
+ return key === "ArrowUp" ? prevPrediction() : nextPrediction();
356
+ }
357
+ const prevP = prediction.innerText;
358
+ if (e.key === "Tab") {
359
+ e.preventDefault();
360
+ if (prediction.innerText != "") {
361
+ applyPrediction();
362
+ } else if (input.innerText && input.innerText.at(-1) !== SPACE) {
363
+ input.innerText += SPACE;
364
+ replaceCursor();
365
+ }
366
+ } else if (e.key === "ArrowRight" && prediction.innerText && getCursorPos() === getValue().length) {
367
+ e.preventDefault();
368
+ applyPrediction();
369
+ } else if (prevP && key == prevP.at(0)) {
370
+ prediction.innerText = prediction.innerText.slice(1);
371
+ } else {
372
+ prediction.innerText = "";
373
+ }
374
+ };
375
+ const getValue = () => {
376
+ const clone = input.cloneNode(true);
377
+ clone.querySelector("span")?.remove();
378
+ return clone.innerText.replace(spaceRegex, " ");
379
+ };
380
+ container.append(input);
381
+ return {
382
+ container,
383
+ input,
384
+ getValue,
385
+ clear: () => {
386
+ input.innerText = "";
387
+ replaceCursor();
388
+ }
389
+ };
390
+ }
391
+
392
+ // node_modules/@fullstacked/ui/inputs/select/index.ts
393
+ function InputSelect(opts) {
394
+ startObserverInterval();
395
+ const container = document.createElement("div");
396
+ container.classList.add("input-select");
397
+ if (opts.label) {
398
+ container.innerHTML = `<label>${opts.label}</label>`;
399
+ }
400
+ const selectAndIconContainer = document.createElement("div");
401
+ selectAndIconContainer.classList.add("select-container");
402
+ const select = document.createElement("select");
403
+ const icon = document.createElement("div");
404
+ icon.append(Icon("Arrow"));
405
+ selectAndIconContainer.append(select, icon);
406
+ container.append(selectAndIconContainer);
407
+ const placeholderOption = document.createElement("option");
408
+ placeholderOption.selected = true;
409
+ placeholderOption.innerText = opts.placeholder || "Choose an option";
410
+ select.append(placeholderOption);
411
+ select.classList.add("invalid");
412
+ const selectOptions = [];
413
+ const addOptions = (option) => {
414
+ selectOptions.push(option);
415
+ const el = document.createElement("option");
416
+ el.innerText = option.name;
417
+ el.disabled = option.disabled;
418
+ if (!el.disabled) {
419
+ el.value = selectOptions.length.toString();
420
+ }
421
+ el.selected = option.selected;
422
+ select.append(el);
423
+ };
424
+ const disablePlaceholder = () => {
425
+ placeholderOption.disabled = true;
426
+ };
427
+ select.onfocus = disablePlaceholder;
428
+ select.ontouchstart = disablePlaceholder;
429
+ select.onclick = disablePlaceholder;
430
+ select.onblur = () => {
431
+ placeholderOption.disabled = false;
432
+ };
433
+ const indexOfIdOrName = (idOrName) => {
434
+ return selectOptions.findIndex((item) => {
435
+ if (item.id) {
436
+ return item.id === idOrName;
437
+ }
438
+ return item.name === idOrName;
439
+ });
440
+ };
441
+ let selectAPI = {
442
+ get value() {
443
+ const index = select.selectedIndex - 1;
444
+ if (index === -1) {
445
+ return void 0;
446
+ }
447
+ const item = selectOptions.at(index);
448
+ return item.id || item.name;
449
+ },
450
+ set value(v) {
451
+ const indexOf = indexOfIdOrName(v);
452
+ if (indexOf === -1) return;
453
+ select.selectedIndex = indexOf + 1;
454
+ },
455
+ onchange: (item, index) => {
456
+ return { item, index };
457
+ }
458
+ };
459
+ select.onchange = () => {
460
+ const index = select.selectedIndex - 1;
461
+ const item = selectOptions.at(index);
462
+ const value = item.id || item.name;
463
+ selectAPI.value = value;
464
+ selectAPI.onchange(value, index);
465
+ };
466
+ return {
467
+ container,
468
+ select: selectAPI,
469
+ options: {
470
+ get() {
471
+ return selectOptions;
472
+ },
473
+ add(...options) {
474
+ options.forEach(addOptions);
475
+ },
476
+ remove(nameOrId) {
477
+ const indexOf = indexOfIdOrName(nameOrId);
478
+ if (indexOf === -1) return;
479
+ const selectedIndex = select.selectedIndex - 1;
480
+ if (indexOf === selectedIndex) {
481
+ select.selectedIndex = 0;
482
+ }
483
+ selectOptions.splice(indexOf, 1);
484
+ }
485
+ }
486
+ };
487
+ }
488
+
489
+ // node_modules/@fullstacked/ui/components/button-group/index.ts
490
+ function ButtonGroup(buttons) {
491
+ const container = document.createElement("div");
492
+ container.classList.add("button-group");
493
+ container.append(...buttons);
494
+ return container;
495
+ }
496
+
497
+ // node_modules/@fullstacked/ui/components/dialog/index.ts
498
+ function Dialog(content) {
499
+ const container = document.createElement("div");
500
+ container.classList.add("dialog");
501
+ const overlay = document.createElement("div");
502
+ overlay.classList.add("dialog-overlay");
503
+ container.append(content);
504
+ overlay.append(container);
505
+ document.body.append(overlay);
506
+ return {
507
+ remove: () => overlay.remove()
508
+ };
509
+ }
510
+
511
+ // node_modules/@fullstacked/ui/components/loader/index.ts
512
+ function Loader() {
513
+ const container = document.createElement("div");
514
+ container.classList.add("loader");
515
+ const dummy = document.createElement("div");
516
+ container.append(dummy);
517
+ const icon = Icon("Loader");
518
+ container.append(icon);
519
+ return container;
520
+ }
521
+
522
+ // node_modules/@fullstacked/ui/components/message/index.ts
523
+ function Message(opts) {
524
+ const container = document.createElement("div");
525
+ container.classList.add("message");
526
+ if (opts.style) {
527
+ container.classList.add(opts.style);
528
+ }
529
+ const iconName = opts.style === "warning" ? "Warning" : "Info";
530
+ const icon = Icon(iconName);
531
+ const text = document.createElement("b");
532
+ text.innerText = opts.text;
533
+ container.append(icon, text);
534
+ return container;
535
+ }
536
+
537
+ // node_modules/@fullstacked/ui/components/popover/index.ts
538
+ function Popover(opts) {
539
+ const anchorBB = opts.anchor.getBoundingClientRect();
540
+ const container = document.createElement("div");
541
+ container.classList.add("popover");
542
+ let x = anchorBB.x + document.body.scrollLeft;
543
+ let y = anchorBB.y + document.body.scrollTop;
544
+ switch (opts.align.x) {
545
+ case "center":
546
+ container.classList.add("center-x");
547
+ x += anchorBB.width / 2;
548
+ break;
549
+ case "right":
550
+ container.classList.add("right");
551
+ x += anchorBB.width;
552
+ break;
553
+ }
554
+ switch (opts.align.y) {
555
+ case "center":
556
+ container.classList.add("center-y");
557
+ y += anchorBB.height / 2;
558
+ break;
559
+ case "bottom":
560
+ container.classList.add("bottom");
561
+ y += anchorBB.height;
562
+ break;
563
+ }
564
+ container.style.left = x + "px";
565
+ container.style.top = y + "px";
566
+ const overlay = document.createElement("div");
567
+ overlay.classList.add("popover-overlay");
568
+ container.append(opts.content);
569
+ const remove = () => {
570
+ overlay.remove();
571
+ container.remove();
572
+ window.removeEventListener("resize", remove);
573
+ unlockScroll(lockedElements);
574
+ };
575
+ container.addEventListener("click", (e) => {
576
+ e.stopPropagation();
577
+ remove();
578
+ });
579
+ container.addEventListener("scroll", (e) => {
580
+ e.stopPropagation();
581
+ remove();
582
+ });
583
+ overlay.onclick = (e) => {
584
+ e.stopPropagation();
585
+ remove();
586
+ };
587
+ window.addEventListener("resize", remove);
588
+ let lockedElements = lockScroll(opts.anchor);
589
+ document.body.append(overlay, container);
590
+ return {
591
+ remove
592
+ };
593
+ }
594
+ var lockedScroll = (e) => {
595
+ e.preventDefault();
596
+ e.stopPropagation();
597
+ return false;
598
+ };
599
+ var keys = ["ArrowDown", "ArrowUp", "PageUp", "PageDown"];
600
+ var lockedKeys = (e) => {
601
+ if (keys.includes(e.key)) {
602
+ return lockedScroll(e);
603
+ }
604
+ };
605
+ function lockScroll(el, lockedElements = []) {
606
+ lockedElements.push(el);
607
+ el.addEventListener("scroll", lockedScroll);
608
+ el.addEventListener("wheel", lockedScroll);
609
+ el.addEventListener("touchmove", lockedScroll);
610
+ el.addEventListener("keydown", lockedKeys);
611
+ if (el.parentElement) {
612
+ lockScroll(el.parentElement, lockedElements);
613
+ }
614
+ return lockedElements;
615
+ }
616
+ function unlockScroll(els) {
617
+ els.forEach((el) => {
618
+ el.removeEventListener("scroll", lockedScroll);
619
+ el.removeEventListener("wheel", lockedScroll);
620
+ el.removeEventListener("touchmove", lockedScroll);
621
+ el.removeEventListener("keydown", lockedKeys);
622
+ });
623
+ }
624
+
625
+ // node_modules/@fullstacked/ui/components/list-item/index.ts
626
+ function ListItem(opts) {
627
+ const container = document.createElement("div");
628
+ container.classList.add("list-item");
629
+ const inner = document.createElement("div");
630
+ inner.classList.add("inner");
631
+ container.append(inner);
632
+ if (opts?.content) {
633
+ inner.append(opts.content);
634
+ }
635
+ if (opts?.withProgress) {
636
+ const progressBar = document.createElement("div");
637
+ progressBar.classList.add("progress");
638
+ container.append(progressBar);
639
+ const setProgress = (p) => {
640
+ progressBar.style.width = p * 100 + "%";
641
+ };
642
+ return { container, setProgress };
643
+ }
644
+ return container;
645
+ }
646
+ export {
647
+ Badge,
648
+ Button,
649
+ ButtonGroup,
650
+ Dialog,
651
+ Icon,
652
+ InputCheckbox,
653
+ InputFile,
654
+ InputPredictive,
655
+ InputRadio,
656
+ InputSelect,
657
+ InputSwitch,
658
+ InputText,
659
+ ListItem,
660
+ Loader,
661
+ Message,
662
+ Popover,
663
+ setIconsDirectory
664
+ };