termcast 1.3.10 → 1.3.18

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 (500) hide show
  1. package/dist/apis/toast.d.ts +1 -5
  2. package/dist/apis/toast.d.ts.map +1 -1
  3. package/dist/apis/toast.js +23 -17
  4. package/dist/apis/toast.js.map +1 -1
  5. package/dist/build.d.ts +2 -0
  6. package/dist/build.d.ts.map +1 -1
  7. package/dist/build.js +4 -3
  8. package/dist/build.js.map +1 -1
  9. package/dist/cli.js +42 -0
  10. package/dist/cli.js.map +1 -1
  11. package/dist/colors.d.ts +8 -1
  12. package/dist/colors.d.ts.map +1 -1
  13. package/dist/colors.js +12 -0
  14. package/dist/colors.js.map +1 -1
  15. package/dist/compile.d.ts +30 -0
  16. package/dist/compile.d.ts.map +1 -0
  17. package/dist/compile.js +156 -0
  18. package/dist/compile.js.map +1 -0
  19. package/dist/components/actions.d.ts +1 -0
  20. package/dist/components/actions.d.ts.map +1 -1
  21. package/dist/components/actions.js +5 -2
  22. package/dist/components/actions.js.map +1 -1
  23. package/dist/components/command-arguments.d.ts +9 -0
  24. package/dist/components/command-arguments.d.ts.map +1 -0
  25. package/dist/components/command-arguments.js +21 -0
  26. package/dist/components/command-arguments.js.map +1 -0
  27. package/dist/components/detail.d.ts +1 -1
  28. package/dist/components/detail.d.ts.map +1 -1
  29. package/dist/components/detail.js +17 -39
  30. package/dist/components/detail.js.map +1 -1
  31. package/dist/components/dropdown.d.ts +1 -0
  32. package/dist/components/dropdown.d.ts.map +1 -1
  33. package/dist/components/dropdown.js +77 -21
  34. package/dist/components/dropdown.js.map +1 -1
  35. package/dist/components/extension-preferences.d.ts.map +1 -1
  36. package/dist/components/extension-preferences.js +19 -29
  37. package/dist/components/extension-preferences.js.map +1 -1
  38. package/dist/components/form/checkbox.d.ts.map +1 -1
  39. package/dist/components/form/checkbox.js +9 -2
  40. package/dist/components/form/checkbox.js.map +1 -1
  41. package/dist/components/form/date-picker.d.ts.map +1 -1
  42. package/dist/components/form/date-picker.js +15 -28
  43. package/dist/components/form/date-picker.js.map +1 -1
  44. package/dist/components/form/description.d.ts +2 -0
  45. package/dist/components/form/description.d.ts.map +1 -1
  46. package/dist/components/form/description.js +20 -2
  47. package/dist/components/form/description.js.map +1 -1
  48. package/dist/components/form/dropdown.d.ts.map +1 -1
  49. package/dist/components/form/dropdown.js +13 -28
  50. package/dist/components/form/dropdown.js.map +1 -1
  51. package/dist/components/form/file-autocomplete.d.ts +7 -4
  52. package/dist/components/form/file-autocomplete.d.ts.map +1 -1
  53. package/dist/components/form/file-autocomplete.js +54 -46
  54. package/dist/components/form/file-autocomplete.js.map +1 -1
  55. package/dist/components/form/file-picker.d.ts +5 -0
  56. package/dist/components/form/file-picker.d.ts.map +1 -1
  57. package/dist/components/form/file-picker.js +46 -49
  58. package/dist/components/form/file-picker.js.map +1 -1
  59. package/dist/components/form/form-ref.d.ts +43 -0
  60. package/dist/components/form/form-ref.d.ts.map +1 -0
  61. package/dist/components/form/form-ref.js +53 -0
  62. package/dist/components/form/form-ref.js.map +1 -0
  63. package/dist/components/form/index.d.ts +16 -0
  64. package/dist/components/form/index.d.ts.map +1 -1
  65. package/dist/components/form/index.js +86 -23
  66. package/dist/components/form/index.js.map +1 -1
  67. package/dist/components/form/password-field.d.ts.map +1 -1
  68. package/dist/components/form/password-field.js +32 -16
  69. package/dist/components/form/password-field.js.map +1 -1
  70. package/dist/components/form/text-area.d.ts.map +1 -1
  71. package/dist/components/form/text-area.js +32 -15
  72. package/dist/components/form/text-area.js.map +1 -1
  73. package/dist/components/form/text-field.d.ts.map +1 -1
  74. package/dist/components/form/text-field.js +37 -17
  75. package/dist/components/form/text-field.js.map +1 -1
  76. package/dist/components/form/use-form-navigation.d.ts +4 -0
  77. package/dist/components/form/use-form-navigation.d.ts.map +1 -1
  78. package/dist/components/form/use-form-navigation.js +35 -18
  79. package/dist/components/form/use-form-navigation.js.map +1 -1
  80. package/dist/components/form/with-left-border.d.ts.map +1 -1
  81. package/dist/components/form/with-left-border.js +2 -2
  82. package/dist/components/form/with-left-border.js.map +1 -1
  83. package/dist/components/icon.d.ts +3 -1
  84. package/dist/components/icon.d.ts.map +1 -1
  85. package/dist/components/icon.js +494 -469
  86. package/dist/components/icon.js.map +1 -1
  87. package/dist/components/list.d.ts +11 -7
  88. package/dist/components/list.d.ts.map +1 -1
  89. package/dist/components/list.js +170 -38
  90. package/dist/components/list.js.map +1 -1
  91. package/dist/components/loading-bar.js +1 -1
  92. package/dist/components/loading-bar.js.map +1 -1
  93. package/dist/descendants.d.ts.map +1 -1
  94. package/dist/descendants.js +8 -5
  95. package/dist/descendants.js.map +1 -1
  96. package/dist/examples/action-show-in-finder.js +1 -1
  97. package/dist/examples/action-show-in-finder.js.map +1 -1
  98. package/dist/examples/environment-test.js +1 -1
  99. package/dist/examples/environment-test.js.map +1 -1
  100. package/dist/examples/error-boundary.js +1 -1
  101. package/dist/examples/error-boundary.js.map +1 -1
  102. package/dist/examples/form-basic.d.ts.map +1 -1
  103. package/dist/examples/form-basic.js +2 -2
  104. package/dist/examples/form-basic.js.map +1 -1
  105. package/dist/examples/form-dropdown.js +1 -1
  106. package/dist/examples/form-dropdown.js.map +1 -1
  107. package/dist/examples/form-scroll.d.ts +2 -0
  108. package/dist/examples/form-scroll.d.ts.map +1 -0
  109. package/dist/examples/form-scroll.js +8 -0
  110. package/dist/examples/form-scroll.js.map +1 -0
  111. package/dist/examples/form-tagpicker.js +1 -1
  112. package/dist/examples/form-tagpicker.js.map +1 -1
  113. package/dist/examples/internal/descendants-filtering.js +8 -3
  114. package/dist/examples/internal/descendants-filtering.js.map +1 -1
  115. package/dist/examples/internal/descendants.js +10 -3
  116. package/dist/examples/internal/descendants.js.map +1 -1
  117. package/dist/examples/internal/rhf-custom-ref.d.ts +2 -0
  118. package/dist/examples/internal/rhf-custom-ref.d.ts.map +1 -0
  119. package/dist/examples/internal/rhf-custom-ref.js +67 -0
  120. package/dist/examples/internal/rhf-custom-ref.js.map +1 -0
  121. package/dist/examples/internal/scrollbox-demo.js +3 -7
  122. package/dist/examples/internal/scrollbox-demo.js.map +1 -1
  123. package/dist/examples/internal/scrollbox-with-descendants.d.ts +2 -0
  124. package/dist/examples/internal/scrollbox-with-descendants.d.ts.map +1 -0
  125. package/dist/examples/internal/scrollbox-with-descendants.js +63 -0
  126. package/dist/examples/internal/scrollbox-with-descendants.js.map +1 -0
  127. package/dist/examples/internal/simple-dialog.js +1 -1
  128. package/dist/examples/internal/simple-dialog.js.map +1 -1
  129. package/dist/examples/internal/simple-scrollbox.js +2 -3
  130. package/dist/examples/internal/simple-scrollbox.js.map +1 -1
  131. package/dist/examples/internal/text-stacking.js +4 -2
  132. package/dist/examples/internal/text-stacking.js.map +1 -1
  133. package/dist/examples/list-dropdown-default.js +1 -1
  134. package/dist/examples/list-dropdown-default.js.map +1 -1
  135. package/dist/examples/list-fetch-data.js +1 -1
  136. package/dist/examples/list-fetch-data.js.map +1 -1
  137. package/dist/examples/list-scrollbox.d.ts +2 -0
  138. package/dist/examples/list-scrollbox.d.ts.map +1 -0
  139. package/dist/examples/list-scrollbox.js +29 -0
  140. package/dist/examples/list-scrollbox.js.map +1 -0
  141. package/dist/examples/list-with-detail.js +1 -1
  142. package/dist/examples/list-with-detail.js.map +1 -1
  143. package/dist/examples/list-with-dropdown.js +1 -1
  144. package/dist/examples/list-with-dropdown.js.map +1 -1
  145. package/dist/examples/list-with-sections.js +3 -3
  146. package/dist/examples/list-with-sections.js.map +1 -1
  147. package/dist/examples/miscellaneous.js +1 -1
  148. package/dist/examples/miscellaneous.js.map +1 -1
  149. package/dist/examples/nested-navigation.js +4 -2
  150. package/dist/examples/nested-navigation.js.map +1 -1
  151. package/dist/examples/preferences-test.js +1 -1
  152. package/dist/examples/preferences-test.js.map +1 -1
  153. package/dist/examples/simple-dropdown.js +1 -1
  154. package/dist/examples/simple-dropdown.js.map +1 -1
  155. package/dist/examples/simple-file-picker.js +1 -1
  156. package/dist/examples/simple-file-picker.js.map +1 -1
  157. package/dist/examples/simple-grid.js +1 -1
  158. package/dist/examples/simple-grid.js.map +1 -1
  159. package/dist/examples/simple-hud.js +1 -1
  160. package/dist/examples/simple-hud.js.map +1 -1
  161. package/dist/examples/simple-list-search.js +1 -1
  162. package/dist/examples/simple-list-search.js.map +1 -1
  163. package/dist/examples/simple-list.js +1 -1
  164. package/dist/examples/simple-list.js.map +1 -1
  165. package/dist/examples/simple-navigation.js +4 -2
  166. package/dist/examples/simple-navigation.js.map +1 -1
  167. package/dist/examples/store.js +1 -1
  168. package/dist/examples/store.js.map +1 -1
  169. package/dist/examples/submodule-diff.d.ts +2 -0
  170. package/dist/examples/submodule-diff.d.ts.map +1 -0
  171. package/dist/examples/submodule-diff.js +99 -0
  172. package/dist/examples/submodule-diff.js.map +1 -0
  173. package/dist/examples/tanstack-demo.js +1 -1
  174. package/dist/examples/tanstack-demo.js.map +1 -1
  175. package/dist/examples/use-promise-demo.js +1 -1
  176. package/dist/examples/use-promise-demo.js.map +1 -1
  177. package/dist/extensions/dev.d.ts +8 -0
  178. package/dist/extensions/dev.d.ts.map +1 -1
  179. package/dist/extensions/dev.js +53 -28
  180. package/dist/extensions/dev.js.map +1 -1
  181. package/dist/extensions/home.d.ts.map +1 -1
  182. package/dist/extensions/home.js +16 -91
  183. package/dist/extensions/home.js.map +1 -1
  184. package/dist/globals.js +1 -1
  185. package/dist/globals.js.map +1 -1
  186. package/dist/index.d.ts +3 -1
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +5 -1
  189. package/dist/index.js.map +1 -1
  190. package/dist/internal/date-picker-widget.d.ts.map +1 -1
  191. package/dist/internal/date-picker-widget.js +56 -48
  192. package/dist/internal/date-picker-widget.js.map +1 -1
  193. package/dist/internal/dialog.d.ts.map +1 -1
  194. package/dist/internal/dialog.js +7 -7
  195. package/dist/internal/dialog.js.map +1 -1
  196. package/dist/internal/scrollbox.d.ts +2 -1
  197. package/dist/internal/scrollbox.d.ts.map +1 -1
  198. package/dist/internal/scrollbox.js +13 -7
  199. package/dist/internal/scrollbox.js.map +1 -1
  200. package/dist/release.d.ts +11 -0
  201. package/dist/release.d.ts.map +1 -0
  202. package/dist/release.js +113 -0
  203. package/dist/release.js.map +1 -0
  204. package/dist/state.d.ts +1 -0
  205. package/dist/state.d.ts.map +1 -1
  206. package/dist/state.js +1 -0
  207. package/dist/state.js.map +1 -1
  208. package/dist/theme.d.ts +11 -8
  209. package/dist/theme.d.ts.map +1 -1
  210. package/dist/theme.js +31 -8
  211. package/dist/theme.js.map +1 -1
  212. package/dist/utils/run-command.d.ts +22 -0
  213. package/dist/utils/run-command.d.ts.map +1 -0
  214. package/dist/utils/run-command.js +127 -0
  215. package/dist/utils/run-command.js.map +1 -0
  216. package/dist/utils.d.ts +1 -1
  217. package/dist/utils.d.ts.map +1 -1
  218. package/dist/utils.js +5 -3
  219. package/dist/utils.js.map +1 -1
  220. package/package.json +10 -7
  221. package/src/apis/toast.tsx +38 -17
  222. package/src/build.tsx +5 -3
  223. package/src/cli.tsx +46 -0
  224. package/src/colors.tsx +22 -1
  225. package/src/compile.tsx +219 -0
  226. package/src/components/actions.tsx +7 -1
  227. package/src/components/command-arguments.tsx +81 -0
  228. package/src/components/detail.tsx +26 -58
  229. package/src/components/dropdown.tsx +108 -23
  230. package/src/components/extension-preferences.tsx +55 -35
  231. package/src/components/form/checkbox.tsx +13 -5
  232. package/src/components/form/date-picker.tsx +24 -29
  233. package/src/components/form/description.tsx +35 -7
  234. package/src/components/form/dropdown.tsx +16 -30
  235. package/src/components/form/file-autocomplete.tsx +87 -77
  236. package/src/components/form/file-picker.tsx +69 -57
  237. package/src/components/form/form-ref.tsx +68 -0
  238. package/src/components/form/index.tsx +152 -41
  239. package/src/components/form/password-field.tsx +35 -22
  240. package/src/components/form/text-area.tsx +78 -58
  241. package/src/components/form/text-field.tsx +82 -61
  242. package/src/components/form/use-form-navigation.tsx +43 -23
  243. package/src/components/form/with-left-border.tsx +2 -1
  244. package/src/components/icon.tsx +497 -469
  245. package/src/components/list.tsx +279 -112
  246. package/src/components/loading-bar.tsx +1 -1
  247. package/src/descendants.tsx +15 -5
  248. package/src/examples/action-show-in-finder.tsx +1 -1
  249. package/src/examples/environment-test.tsx +1 -1
  250. package/src/examples/error-boundary.tsx +1 -1
  251. package/src/examples/file-autocomplete.vitest.tsx +245 -0
  252. package/src/examples/form-basic.tsx +12 -12
  253. package/src/examples/form-basic.vitest.tsx +297 -671
  254. package/src/examples/form-dropdown.tsx +1 -1
  255. package/src/examples/form-dropdown.vitest.tsx +353 -221
  256. package/src/examples/form-scroll.tsx +56 -0
  257. package/src/examples/form-scroll.vitest.tsx +228 -0
  258. package/src/examples/form-tagpicker.tsx +1 -1
  259. package/src/examples/form-tagpicker.vitest.tsx +438 -193
  260. package/src/examples/internal/descendants-filtering.tsx +13 -5
  261. package/src/examples/internal/descendants.tsx +17 -5
  262. package/src/examples/internal/rhf-custom-ref.tsx +152 -0
  263. package/src/examples/internal/scrollbox-demo.tsx +15 -7
  264. package/src/examples/internal/scrollbox-with-descendants.tsx +94 -0
  265. package/src/examples/internal/simple-dialog.tsx +1 -1
  266. package/src/examples/internal/simple-scrollbox.tsx +8 -5
  267. package/src/examples/internal/simple-scrollbox.vitest.tsx +47 -37
  268. package/src/examples/internal/text-stacking.tsx +4 -2
  269. package/src/examples/list-dropdown-default.tsx +1 -1
  270. package/src/examples/list-dropdown-default.vitest.tsx +136 -71
  271. package/src/examples/list-fetch-data.tsx +1 -1
  272. package/src/examples/list-fetch-data.vitest.tsx +42 -33
  273. package/src/examples/list-scrollbox.tsx +46 -0
  274. package/src/examples/list-scrollbox.vitest.tsx +103 -0
  275. package/src/examples/list-with-detail.tsx +1 -1
  276. package/src/examples/list-with-detail.vitest.tsx +290 -294
  277. package/src/examples/list-with-dropdown.tsx +1 -1
  278. package/src/examples/list-with-dropdown.vitest.tsx +190 -150
  279. package/src/examples/list-with-sections.tsx +12 -1
  280. package/src/examples/list-with-sections.vitest.tsx +390 -218
  281. package/src/examples/miscellaneous.tsx +1 -1
  282. package/src/examples/nested-navigation.tsx +4 -2
  283. package/src/examples/preferences-test.tsx +1 -1
  284. package/src/examples/simple-dropdown.tsx +1 -1
  285. package/src/examples/simple-file-picker.tsx +1 -1
  286. package/src/examples/simple-file-picker.vitest.tsx +538 -132
  287. package/src/examples/simple-grid.tsx +1 -1
  288. package/src/examples/simple-grid.vitest.tsx +258 -234
  289. package/src/examples/simple-hud.tsx +1 -1
  290. package/src/examples/simple-list-search.tsx +1 -1
  291. package/src/examples/simple-list.tsx +1 -1
  292. package/src/examples/simple-navigation.tsx +4 -2
  293. package/src/examples/simple-navigation.vitest.tsx +434 -238
  294. package/src/examples/store.tsx +1 -1
  295. package/src/examples/store.vitest.tsx +31 -10
  296. package/src/examples/submodule-diff.tsx +153 -0
  297. package/src/examples/tanstack-demo.tsx +1 -1
  298. package/src/examples/use-promise-demo.tsx +1 -1
  299. package/src/extensions/dev.tsx +74 -36
  300. package/src/extensions/dev.vitest.tsx +220 -0
  301. package/src/extensions/home.tsx +17 -118
  302. package/src/globals.ts +1 -1
  303. package/src/index.tsx +7 -1
  304. package/src/internal/date-picker-widget.tsx +56 -46
  305. package/src/internal/dialog.tsx +6 -6
  306. package/src/internal/scrollbox.tsx +15 -5
  307. package/src/release.tsx +159 -0
  308. package/src/state.tsx +2 -0
  309. package/src/store-api/search.test.tsx +4 -13
  310. package/src/theme.tsx +33 -8
  311. package/src/utils/run-command.tsx +204 -0
  312. package/src/utils.tsx +5 -3
  313. package/dist/ai.d.ts +0 -104
  314. package/dist/ai.d.ts.map +0 -1
  315. package/dist/ai.js +0 -135
  316. package/dist/ai.js.map +0 -1
  317. package/dist/apis/cache.test.d.ts +0 -2
  318. package/dist/apis/cache.test.d.ts.map +0 -1
  319. package/dist/apis/cache.test.js +0 -246
  320. package/dist/apis/cache.test.js.map +0 -1
  321. package/dist/apis/localstorage.test.d.ts +0 -2
  322. package/dist/apis/localstorage.test.d.ts.map +0 -1
  323. package/dist/apis/localstorage.test.js +0 -131
  324. package/dist/apis/localstorage.test.js.map +0 -1
  325. package/dist/apis/toast.test.d.ts +0 -2
  326. package/dist/apis/toast.test.d.ts.map +0 -1
  327. package/dist/apis/toast.test.js +0 -67
  328. package/dist/apis/toast.test.js.map +0 -1
  329. package/dist/build.test.d.ts +0 -2
  330. package/dist/build.test.d.ts.map +0 -1
  331. package/dist/build.test.js +0 -73
  332. package/dist/build.test.js.map +0 -1
  333. package/dist/cache.d.ts +0 -32
  334. package/dist/cache.d.ts.map +0 -1
  335. package/dist/cache.js +0 -205
  336. package/dist/cache.js.map +0 -1
  337. package/dist/cache.test.d.ts +0 -2
  338. package/dist/cache.test.d.ts.map +0 -1
  339. package/dist/cache.test.js +0 -246
  340. package/dist/cache.test.js.map +0 -1
  341. package/dist/clipboard.d.ts +0 -36
  342. package/dist/clipboard.d.ts.map +0 -1
  343. package/dist/clipboard.js +0 -154
  344. package/dist/clipboard.js.map +0 -1
  345. package/dist/components/form/form-type-only.d.ts +0 -174
  346. package/dist/components/form/form-type-only.d.ts.map +0 -1
  347. package/dist/components/form/form-type-only.js +0 -2
  348. package/dist/components/form/form-type-only.js.map +0 -1
  349. package/dist/components/form/use-form-handling.d.ts +0 -4
  350. package/dist/components/form/use-form-handling.d.ts.map +0 -1
  351. package/dist/components/form/use-form-handling.js +0 -37
  352. package/dist/components/form/use-form-handling.js.map +0 -1
  353. package/dist/dev-ui.d.ts +0 -7
  354. package/dist/dev-ui.d.ts.map +0 -1
  355. package/dist/dev-ui.js +0 -118
  356. package/dist/dev-ui.js.map +0 -1
  357. package/dist/environment.d.ts +0 -63
  358. package/dist/environment.d.ts.map +0 -1
  359. package/dist/environment.js +0 -189
  360. package/dist/environment.js.map +0 -1
  361. package/dist/examples/datepicker.d.ts +0 -2
  362. package/dist/examples/datepicker.d.ts.map +0 -1
  363. package/dist/examples/datepicker.js +0 -344
  364. package/dist/examples/datepicker.js.map +0 -1
  365. package/dist/examples/form-basic-arrow-keys.vitest.d.ts +0 -2
  366. package/dist/examples/form-basic-arrow-keys.vitest.d.ts.map +0 -1
  367. package/dist/examples/form-basic-arrow-keys.vitest.js +0 -46
  368. package/dist/examples/form-basic-arrow-keys.vitest.js.map +0 -1
  369. package/dist/examples/form-basic.vitest.d.ts +0 -2
  370. package/dist/examples/form-basic.vitest.d.ts.map +0 -1
  371. package/dist/examples/form-basic.vitest.js +0 -995
  372. package/dist/examples/form-basic.vitest.js.map +0 -1
  373. package/dist/examples/form-dropdown-with-sections.d.ts +0 -2
  374. package/dist/examples/form-dropdown-with-sections.d.ts.map +0 -1
  375. package/dist/examples/form-dropdown-with-sections.js +0 -13
  376. package/dist/examples/form-dropdown-with-sections.js.map +0 -1
  377. package/dist/examples/form-dropdown-with-sections.vitest.d.ts +0 -2
  378. package/dist/examples/form-dropdown-with-sections.vitest.d.ts.map +0 -1
  379. package/dist/examples/form-dropdown-with-sections.vitest.js +0 -75
  380. package/dist/examples/form-dropdown-with-sections.vitest.js.map +0 -1
  381. package/dist/examples/form-dropdown.vitest.d.ts +0 -2
  382. package/dist/examples/form-dropdown.vitest.d.ts.map +0 -1
  383. package/dist/examples/form-dropdown.vitest.js +0 -722
  384. package/dist/examples/form-dropdown.vitest.js.map +0 -1
  385. package/dist/examples/form-multiselect-dropdown.d.ts +0 -2
  386. package/dist/examples/form-multiselect-dropdown.d.ts.map +0 -1
  387. package/dist/examples/form-multiselect-dropdown.js +0 -13
  388. package/dist/examples/form-multiselect-dropdown.js.map +0 -1
  389. package/dist/examples/form-tagpicker.vitest.d.ts +0 -2
  390. package/dist/examples/form-tagpicker.vitest.d.ts.map +0 -1
  391. package/dist/examples/form-tagpicker.vitest.js +0 -491
  392. package/dist/examples/form-tagpicker.vitest.js.map +0 -1
  393. package/dist/examples/internal/nested-boxes.d.ts +0 -2
  394. package/dist/examples/internal/nested-boxes.d.ts.map +0 -1
  395. package/dist/examples/internal/nested-boxes.js +0 -7
  396. package/dist/examples/internal/nested-boxes.js.map +0 -1
  397. package/dist/examples/internal/simple-scrollbox.vitest.d.ts +0 -2
  398. package/dist/examples/internal/simple-scrollbox.vitest.d.ts.map +0 -1
  399. package/dist/examples/internal/simple-scrollbox.vitest.js +0 -88
  400. package/dist/examples/internal/simple-scrollbox.vitest.js.map +0 -1
  401. package/dist/examples/internal/unicode-square-repro.d.ts +0 -2
  402. package/dist/examples/internal/unicode-square-repro.d.ts.map +0 -1
  403. package/dist/examples/internal/unicode-square-repro.js +0 -7
  404. package/dist/examples/internal/unicode-square-repro.js.map +0 -1
  405. package/dist/examples/list-dropdown-default.vitest.d.ts +0 -2
  406. package/dist/examples/list-dropdown-default.vitest.d.ts.map +0 -1
  407. package/dist/examples/list-dropdown-default.vitest.js +0 -164
  408. package/dist/examples/list-dropdown-default.vitest.js.map +0 -1
  409. package/dist/examples/list-fetch-data.vitest.d.ts +0 -2
  410. package/dist/examples/list-fetch-data.vitest.d.ts.map +0 -1
  411. package/dist/examples/list-fetch-data.vitest.js +0 -103
  412. package/dist/examples/list-fetch-data.vitest.js.map +0 -1
  413. package/dist/examples/list-filter-navigation.d.ts +0 -2
  414. package/dist/examples/list-filter-navigation.d.ts.map +0 -1
  415. package/dist/examples/list-filter-navigation.js +0 -8
  416. package/dist/examples/list-filter-navigation.js.map +0 -1
  417. package/dist/examples/list-with-detail.vitest.d.ts +0 -2
  418. package/dist/examples/list-with-detail.vitest.d.ts.map +0 -1
  419. package/dist/examples/list-with-detail.vitest.js +0 -438
  420. package/dist/examples/list-with-detail.vitest.js.map +0 -1
  421. package/dist/examples/list-with-dropdown.vitest.d.ts +0 -2
  422. package/dist/examples/list-with-dropdown.vitest.d.ts.map +0 -1
  423. package/dist/examples/list-with-dropdown.vitest.js +0 -297
  424. package/dist/examples/list-with-dropdown.vitest.js.map +0 -1
  425. package/dist/examples/list-with-sections.vitest.d.ts +0 -2
  426. package/dist/examples/list-with-sections.vitest.d.ts.map +0 -1
  427. package/dist/examples/list-with-sections.vitest.js +0 -441
  428. package/dist/examples/list-with-sections.vitest.js.map +0 -1
  429. package/dist/examples/simple-file-picker.vitest.d.ts +0 -2
  430. package/dist/examples/simple-file-picker.vitest.d.ts.map +0 -1
  431. package/dist/examples/simple-file-picker.vitest.js +0 -277
  432. package/dist/examples/simple-file-picker.vitest.js.map +0 -1
  433. package/dist/examples/simple-grid.vitest.d.ts +0 -2
  434. package/dist/examples/simple-grid.vitest.d.ts.map +0 -1
  435. package/dist/examples/simple-grid.vitest.js +0 -498
  436. package/dist/examples/simple-grid.vitest.js.map +0 -1
  437. package/dist/examples/simple-navigation.vitest.d.ts +0 -2
  438. package/dist/examples/simple-navigation.vitest.d.ts.map +0 -1
  439. package/dist/examples/simple-navigation.vitest.js +0 -522
  440. package/dist/examples/simple-navigation.vitest.js.map +0 -1
  441. package/dist/examples/store.vitest.d.ts +0 -2
  442. package/dist/examples/store.vitest.d.ts.map +0 -1
  443. package/dist/examples/store.vitest.js +0 -48
  444. package/dist/examples/store.vitest.js.map +0 -1
  445. package/dist/home-command.d.ts +0 -8
  446. package/dist/home-command.d.ts.map +0 -1
  447. package/dist/home-command.js +0 -181
  448. package/dist/home-command.js.map +0 -1
  449. package/dist/hooks/hooks.test.d.ts +0 -2
  450. package/dist/hooks/hooks.test.d.ts.map +0 -1
  451. package/dist/hooks/hooks.test.js +0 -37
  452. package/dist/hooks/hooks.test.js.map +0 -1
  453. package/dist/hover-repro.d.ts +0 -2
  454. package/dist/hover-repro.d.ts.map +0 -1
  455. package/dist/hover-repro.js +0 -20
  456. package/dist/hover-repro.js.map +0 -1
  457. package/dist/localstorage.d.ts +0 -13
  458. package/dist/localstorage.d.ts.map +0 -1
  459. package/dist/localstorage.js +0 -190
  460. package/dist/localstorage.js.map +0 -1
  461. package/dist/localstorage.test.d.ts +0 -2
  462. package/dist/localstorage.test.d.ts.map +0 -1
  463. package/dist/localstorage.test.js +0 -131
  464. package/dist/localstorage.test.js.map +0 -1
  465. package/dist/oauth.d.ts +0 -142
  466. package/dist/oauth.d.ts.map +0 -1
  467. package/dist/oauth.js +0 -551
  468. package/dist/oauth.js.map +0 -1
  469. package/dist/preferences.d.ts +0 -23
  470. package/dist/preferences.d.ts.map +0 -1
  471. package/dist/preferences.js +0 -105
  472. package/dist/preferences.js.map +0 -1
  473. package/dist/store-api/download.test.d.ts +0 -2
  474. package/dist/store-api/download.test.d.ts.map +0 -1
  475. package/dist/store-api/download.test.js +0 -36
  476. package/dist/store-api/download.test.js.map +0 -1
  477. package/dist/store-api/extension.test.d.ts +0 -2
  478. package/dist/store-api/extension.test.d.ts.map +0 -1
  479. package/dist/store-api/extension.test.js +0 -22
  480. package/dist/store-api/extension.test.js.map +0 -1
  481. package/dist/store-api/search.test.d.ts +0 -2
  482. package/dist/store-api/search.test.d.ts.map +0 -1
  483. package/dist/store-api/search.test.js +0 -45
  484. package/dist/store-api/search.test.js.map +0 -1
  485. package/dist/store.d.ts +0 -21
  486. package/dist/store.d.ts.map +0 -1
  487. package/dist/store.js +0 -84
  488. package/dist/store.js.map +0 -1
  489. package/dist/toast.d.ts +0 -44
  490. package/dist/toast.d.ts.map +0 -1
  491. package/dist/toast.js +0 -221
  492. package/dist/toast.js.map +0 -1
  493. package/dist/utils.test.d.ts +0 -2
  494. package/dist/utils.test.d.ts.map +0 -1
  495. package/dist/utils.test.js +0 -152
  496. package/dist/utils.test.js.map +0 -1
  497. package/dist/window.d.ts +0 -12
  498. package/dist/window.d.ts.map +0 -1
  499. package/dist/window.js +0 -48
  500. package/dist/window.js.map +0 -1
package/src/theme.tsx CHANGED
@@ -1,3 +1,5 @@
1
+ import { SyntaxStyle, RGBA } from '@opentui/core'
2
+
1
3
  export const Theme = {
2
4
  // Text colors
3
5
  text: '#FFFFFF',
@@ -8,24 +10,47 @@ export const Theme = {
8
10
  backgroundPanel: '#1E1E1E', // Dark gray panel background
9
11
 
10
12
  // Primary/accent colors
11
- primary: '#0080FF', // Blue
12
- accent: '#00FF80', // Light green (was using this for dates)
13
+ primary: '#FFC000', // Bright golden orange
14
+ accent: '#FFC000', // Bright golden orange
13
15
 
14
16
  // Accessory colors (from List component)
15
- info: '#0080FF', // Blue for text accessories
16
- success: '#00FF80', // Green for date accessories
17
- warning: '#FF8000', // Orange for tag accessories
17
+ info: '#FFC000', // Orange for text accessories
18
+ success: '#FFC000', // Orange for date accessories
19
+ warning: '#FFC000', // Orange for tag accessories
18
20
  error: '#FF0000', // Red for errors
19
21
 
20
22
  // Additional UI colors
21
23
  border: '#333333',
22
- highlight: '#0080FF',
23
- selected: '#0080FF',
24
+ selectedMuted: '#AA8000', // Dimmer orange for selected values when not focused
25
+ highlight: '#FFC000',
26
+ selected: '#FFC000',
24
27
  yellow: '#FFFF00', // Yellow for icons
25
- link: '#0080FF', // Blue for links
28
+ link: '#FFC000', // Orange for links
26
29
 
27
30
  // Transparent
28
31
  transparent: undefined, // Use undefined for no background color
29
32
  } as const
30
33
 
34
+ export const markdownSyntaxStyle = SyntaxStyle.fromStyles({
35
+ default: { fg: RGBA.fromHex(Theme.text) },
36
+ 'markup.heading.1': { fg: RGBA.fromHex(Theme.primary), bold: true },
37
+ 'markup.heading.2': { fg: RGBA.fromHex(Theme.primary), bold: true },
38
+ 'markup.heading.3': { fg: RGBA.fromHex(Theme.primary), bold: true },
39
+ 'markup.heading.4': { fg: RGBA.fromHex(Theme.primary), bold: true },
40
+ 'markup.heading.5': { fg: RGBA.fromHex(Theme.primary), bold: true },
41
+ 'markup.heading.6': { fg: RGBA.fromHex(Theme.primary), bold: true },
42
+ 'markup.heading': { fg: RGBA.fromHex(Theme.primary), bold: true },
43
+ 'markup.raw.block': { fg: RGBA.fromHex(Theme.accent) },
44
+ 'markup.link.url': { fg: RGBA.fromHex(Theme.link) },
45
+ 'markup.link.label': { fg: RGBA.fromHex(Theme.link) },
46
+ 'markup.list': { fg: RGBA.fromHex(Theme.warning) },
47
+ 'markup.list.checked': { fg: RGBA.fromHex(Theme.success) },
48
+ 'markup.list.unchecked': { fg: RGBA.fromHex(Theme.textMuted) },
49
+ 'markup.quote': { fg: RGBA.fromHex(Theme.textMuted), italic: true },
50
+ 'punctuation.special': { fg: RGBA.fromHex(Theme.textMuted) },
51
+ 'punctuation.delimiter': { fg: RGBA.fromHex(Theme.textMuted) },
52
+ 'string.escape': { fg: RGBA.fromHex(Theme.warning) },
53
+ label: { fg: RGBA.fromHex(Theme.accent) },
54
+ })
55
+
31
56
  export default Theme
@@ -0,0 +1,204 @@
1
+ import React from 'react'
2
+ import { useStore } from 'termcast/src/state'
3
+ import { showToast, Toast } from 'termcast/src/apis/toast'
4
+ import { LocalStorage } from 'termcast/src/apis/localstorage'
5
+ import { CommandArguments } from 'termcast/src/components/command-arguments'
6
+ import { ExtensionPreferences } from 'termcast/src/components/extension-preferences'
7
+ import type { RaycastArgument, RaycastPackageJson } from 'termcast/src/package-json'
8
+ import type { LaunchProps } from 'termcast/src/apis/environment'
9
+
10
+ export interface RunnableCommand {
11
+ name: string
12
+ title: string
13
+ mode: 'view' | 'no-view' | 'menu-bar'
14
+ arguments?: RaycastArgument[]
15
+ preferences?: any[]
16
+ }
17
+
18
+ export interface RunCommandOptions {
19
+ command: RunnableCommand
20
+ extensionName: string
21
+ packageJson?: RaycastPackageJson
22
+ bundledPath?: string
23
+ Component?: (props: LaunchProps) => any
24
+ push: (element: React.ReactNode) => void
25
+ // For dev mode, adds cache busting query param
26
+ cacheBustParam?: string
27
+ }
28
+
29
+ export async function runCommand(options: RunCommandOptions): Promise<void> {
30
+ const {
31
+ command,
32
+ extensionName,
33
+ packageJson,
34
+ bundledPath,
35
+ Component: BuiltInComponent,
36
+ push,
37
+ cacheBustParam,
38
+ } = options
39
+
40
+ // Check if command has required preferences that are missing
41
+ const prefsCheck = await checkRequiredPreferences({
42
+ command,
43
+ extensionName,
44
+ packageJson,
45
+ hasBuiltInComponent: !!BuiltInComponent,
46
+ })
47
+
48
+ if (!prefsCheck.hasRequiredPreferences) {
49
+ // TODO: Use replace instead of push to avoid stacking navigation
50
+ // Redirect to preferences with onSubmit to run command after
51
+ push(
52
+ <ExtensionPreferences
53
+ extensionName={extensionName}
54
+ commandName={
55
+ prefsCheck.requiredPreferences === 'command'
56
+ ? command.name
57
+ : undefined
58
+ }
59
+ onSubmit={() => {
60
+ runCommand(options)
61
+ }}
62
+ />,
63
+ )
64
+ return
65
+ }
66
+
67
+ // Check if command has arguments that need to be collected
68
+ const commandArgs = command.arguments || []
69
+ const currentArgs = useStore.getState().currentCommandArguments
70
+ const needsArguments = commandArgs.length > 0 && !currentArgs
71
+
72
+ if (needsArguments) {
73
+ push(
74
+ <CommandArguments
75
+ arguments={commandArgs}
76
+ commandTitle={command.title}
77
+ onSubmit={(args) => {
78
+ useStore.setState({ currentCommandArguments: args })
79
+ runCommand(options)
80
+ }}
81
+ />,
82
+ )
83
+ return
84
+ }
85
+
86
+ // Set the current command in state
87
+ useStore.setState({ currentCommandName: command.name })
88
+
89
+ // Get the component/function to run
90
+ let CommandComponent: ((props: LaunchProps) => any) | undefined
91
+
92
+ if (BuiltInComponent) {
93
+ CommandComponent = BuiltInComponent
94
+ } else if (bundledPath) {
95
+ const importPath = cacheBustParam
96
+ ? `${bundledPath}?rebuild=${cacheBustParam}`
97
+ : bundledPath
98
+ const module = await import(importPath)
99
+ CommandComponent = module.default
100
+
101
+ if (!CommandComponent) {
102
+ await showToast({
103
+ style: Toast.Style.Failure,
104
+ title: 'No default export',
105
+ message: `Command file ${command.name} has no default export`,
106
+ })
107
+ return
108
+ }
109
+ } else {
110
+ await showToast({
111
+ style: Toast.Style.Failure,
112
+ title: 'Command not available',
113
+ message: `Command ${command.name} has no implementation`,
114
+ })
115
+ return
116
+ }
117
+
118
+ // Build LaunchProps
119
+ const launchProps: LaunchProps = {
120
+ arguments: useStore.getState().currentCommandArguments || {},
121
+ fallbackText: undefined,
122
+ launchContext: undefined,
123
+ }
124
+
125
+ // Handle no-view commands (they export an async function, not a component)
126
+ if (command.mode === 'no-view') {
127
+ if (typeof CommandComponent === 'function') {
128
+ await CommandComponent(launchProps)
129
+ }
130
+ return
131
+ }
132
+
133
+ // For view commands, push the component
134
+ push(<CommandComponent {...launchProps} />)
135
+ }
136
+
137
+ async function checkRequiredPreferences({
138
+ command,
139
+ extensionName,
140
+ packageJson,
141
+ hasBuiltInComponent,
142
+ }: {
143
+ command: RunnableCommand
144
+ extensionName: string
145
+ packageJson?: RaycastPackageJson
146
+ hasBuiltInComponent: boolean
147
+ }): Promise<{
148
+ hasRequiredPreferences: boolean
149
+ requiredPreferences?: 'command' | 'extension'
150
+ }> {
151
+ // Built-in commands or commands without packageJson don't have preferences
152
+ if (hasBuiltInComponent || !packageJson) {
153
+ return { hasRequiredPreferences: true }
154
+ }
155
+
156
+ // Check command-specific preferences
157
+ const commandDef = packageJson.commands?.find(
158
+ (cmd) => cmd.name === command.name,
159
+ )
160
+ const commandPrefs = commandDef?.preferences || []
161
+
162
+ // Check extension-wide preferences
163
+ const extensionPrefs = packageJson.preferences || []
164
+
165
+ // Get saved preferences
166
+ const commandPrefsKey = `preferences.${extensionName}.${command.name}`
167
+ const extensionPrefsKey = `preferences.${extensionName}`
168
+
169
+ const savedCommandPrefs = await LocalStorage.getItem(commandPrefsKey)
170
+ const savedExtensionPrefs = await LocalStorage.getItem(extensionPrefsKey)
171
+
172
+ const parsedCommandPrefs = savedCommandPrefs
173
+ ? JSON.parse(savedCommandPrefs as string)
174
+ : {}
175
+ const parsedExtensionPrefs = savedExtensionPrefs
176
+ ? JSON.parse(savedExtensionPrefs as string)
177
+ : {}
178
+
179
+ // Check if all required command preferences are set
180
+ for (const pref of commandPrefs) {
181
+ if (pref.required && parsedCommandPrefs[pref.name] == null) {
182
+ return {
183
+ hasRequiredPreferences: false,
184
+ requiredPreferences: 'command',
185
+ }
186
+ }
187
+ }
188
+
189
+ // Check if all required extension preferences are set
190
+ for (const pref of extensionPrefs) {
191
+ if (pref.required && parsedExtensionPrefs[pref.name] == null) {
192
+ return {
193
+ hasRequiredPreferences: false,
194
+ requiredPreferences: 'extension',
195
+ }
196
+ }
197
+ }
198
+
199
+ return { hasRequiredPreferences: true }
200
+ }
201
+
202
+ export function clearCommandArguments(): void {
203
+ useStore.setState({ currentCommandArguments: null })
204
+ }
package/src/utils.tsx CHANGED
@@ -1,5 +1,6 @@
1
1
  import React, { type ReactNode } from 'react'
2
- import { render } from '@opentui/react'
2
+ import { createRoot } from '@opentui/react'
3
+ import { createCliRenderer } from '@opentui/core'
3
4
  import { TermcastProvider } from 'termcast/src/internal/providers'
4
5
  import path from 'node:path'
5
6
  import fs from 'node:fs'
@@ -12,8 +13,9 @@ import {
12
13
  } from './package-json'
13
14
  import { logger } from './logger'
14
15
 
15
- export function renderWithProviders(element: ReactNode): void {
16
- render(<TermcastProvider>{element}</TermcastProvider>)
16
+ export async function renderWithProviders(element: ReactNode): Promise<void> {
17
+ const renderer = await createCliRenderer()
18
+ createRoot(renderer).render(<TermcastProvider>{element}</TermcastProvider>)
17
19
  }
18
20
 
19
21
  export type CommonProps = {
package/dist/ai.d.ts DELETED
@@ -1,104 +0,0 @@
1
- /**
2
- * AI API - Interface for AI model interactions
3
- *
4
- * Raycast Docs: https://developers.raycast.com/api-reference/ai
5
- *
6
- * The AI namespace provides methods to interact with various AI models for
7
- * generating text completions. It supports streaming responses and multiple
8
- * model providers including OpenAI, Anthropic, Google, and others.
9
- *
10
- * Key features:
11
- * - Stream text completions with AI.ask()
12
- * - Support for multiple AI models via Model enum
13
- * - Configurable creativity levels
14
- * - Abort signal support for cancellation
15
- * - Event-based streaming with "data" events
16
- *
17
- * Usage:
18
- * const stream = AI.ask("Explain quantum computing")
19
- * stream.on("data", (chunk) => console.log(chunk))
20
- * const result = await stream
21
- *
22
- * Models include GPT-4, Claude, Gemini, Llama, Mistral, and many others.
23
- * Creativity can be set from "none" to "maximum" or as a number 0-2.
24
- */
25
- export declare namespace AI {
26
- export type Creativity = 'none' | 'low' | 'medium' | 'high' | 'maximum' | number;
27
- export enum Model {
28
- OpenAI_GPT4 = "openai-gpt-4",
29
- 'OpenAI_GPT4-turbo' = "openai-gpt-4-turbo",
30
- 'OpenAI_GPT4.1' = "openai-gpt-4.1",
31
- 'OpenAI_GPT4.1-nano' = "openai-gpt-4.1-nano",
32
- 'OpenAI_GPT4.1-mini' = "openai-gpt-4.1-mini",
33
- OpenAI_GPT4o = "openai-gpt-4o",
34
- 'OpenAI_GPT4o-mini' = "openai-gpt-4o-mini",
35
- 'OpenAI_o3-mini' = "openai_o1-o3-mini",
36
- 'OpenAI_o4-mini' = "openai_o1-o4-mini",
37
- OpenAI_o1 = "openai_o1-o1",
38
- OpenAI_o3 = "openai_o1-o3",
39
- Anthropic_Claude_Haiku = "anthropic-claude-haiku",
40
- Anthropic_Claude_Opus = "anthropic-claude-opus",
41
- Anthropic_Claude_Sonnet = "anthropic-claude-sonnet",
42
- 'Anthropic_Claude_Sonnet_3.7' = "anthropic-claude-3-7-sonnet-latest",
43
- Anthropic_Claude_4_Sonnet = "anthropic-claude-sonnet-4",
44
- Anthropic_Claude_4_Opus = "anthropic-claude-opus-4",
45
- Mistral_Nemo = "mistral-nemo",
46
- Mistral_Large = "mistral-large",
47
- Mistral_Medium = "mistral-mistral-medium-latest",
48
- Mistral_Small = "mistral-small",
49
- Mistral_Codestral = "mistral-codestral",
50
- 'Llama3.3_70B' = "groq-llama-3.3-70b-versatile",
51
- 'Llama3.1_8B' = "llama3.1-8b",
52
- 'Llama3.1_405B' = "llama3.1-405b",
53
- 'Llama4_Scout' = "groq-meta-llama/llama-4-scout-17b-16e-instruct",
54
- Perplexity_Sonar = "perplexity-sonar",
55
- Perplexity_Sonar_Pro = "perplexity-sonar-pro",
56
- Perplexity_Sonar_Reasoning = "perplexity-sonar-reasoning",
57
- Perplexity_Sonar_Reasoning_Pro = "perplexity-sonar-reasoning-pro",
58
- DeepSeek_R1 = "together-deepseek-ai/DeepSeek-R1",
59
- DeepSeek_V3 = "together-deepseek-ai/DeepSeek-V3",
60
- 'DeepSeek_R1_Distill_Llama_3.3_70B' = "groq-deepseek-r1-distill-llama-70b",
61
- 'Google_Gemini_2.0_Flash' = "google-gemini-2.0-flash",
62
- 'Google_Gemini_2.0_Flash_Thinking' = "google-gemini-2.0-flash-thinking",
63
- 'Google_Gemini_2.5_Flash' = "google-gemini-2.5-flash",
64
- 'Google_Gemini_2.5_Pro' = "google-gemini-2.5-pro",
65
- xAI_Grok_2 = "xai-grok-2-latest",
66
- xAI_Grok_3 = "xai-grok-3",
67
- xAI_Grok_3_Mini = "xai-grok-3-mini",
68
- 'OpenAI_GPT3.5-turbo-instruct' = "openai-gpt-4o-mini",
69
- Llama2_70B = "llama2-70b",
70
- Perplexity_Sonar_Medium_Online = "perplexity-sonar",
71
- Perplexity_Sonar_Small_Online = "perplexity-sonar",
72
- Codellama_70B_instruct = "codellama-70b-instruct",
73
- Perplexity_Llama3_Sonar_Large = "perplexity-sonar",
74
- Perplexity_Llama3_Sonar_Small = "perplexity-sonar",
75
- 'OpenAI_GPT3.5-turbo' = "openai-gpt-4o-mini",
76
- 'Llama3.1_70B' = "groq-llama-3.3-70b-versatile",
77
- 'Perplexity_Llama3.1_Sonar_Huge' = "perplexity-sonar-pro",
78
- 'Perplexity_Llama3.1_Sonar_Large' = "perplexity-sonar",
79
- 'Perplexity_Llama3.1_Sonar_Small' = "perplexity-sonar",
80
- 'Mistral_Large2' = "mistral-large",
81
- 'Groq_DeepSeek_R1_Distill_Llama_3.3_70B' = "groq-deepseek-r1-distill-llama-70b",
82
- 'Together_DeepSeek_R1' = "together-deepseek-ai/DeepSeek-R1",
83
- 'MixtraL_8x7B' = "mistral-nemo",
84
- 'Google_Gemini_1.5_Flash' = "google-gemini-1.5-flash",
85
- 'Google_Gemini_1.5_Pro' = "google-gemini-2.0-flash",
86
- Mixtral_8x7B = "mistral-nemo",
87
- 'Qwen_2.5_32B' = "openai-gpt-4o-mini",
88
- 'OpenAI_o1-preview' = "openai_o1-o1",
89
- 'OpenAI_o1-mini' = "openai_o1-o1-mini",
90
- Llama3_70B = "llama3-70b"
91
- }
92
- export type __DeprecatedModelUnion = 'openai-gpt-3.5-turbo-instruct' | 'openai-gpt-3.5-turbo' | 'openai-gpt-4' | 'openai-gpt-4-turbo' | 'anthropic-claude-haiku' | 'anthropic-claude-opus' | 'anthropic-claude-sonnet' | 'perplexity-sonar-medium-online' | 'perplexity-sonar-small-online' | 'llama2-70b' | 'mixtral-8x7b' | 'codellama-70b-instruct' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-instruct' | 'gpt-4' | 'text-davinci-003';
93
- export type AskOptions = {
94
- creativity?: Creativity;
95
- model?: Model | __DeprecatedModelUnion;
96
- signal?: AbortSignal;
97
- };
98
- interface AskStream extends Promise<string> {
99
- on(event: 'data', listener: (chunk: string) => void): void;
100
- }
101
- export function ask(prompt: string, options?: AskOptions): AskStream;
102
- export {};
103
- }
104
- //# sourceMappingURL=ai.d.ts.map
package/dist/ai.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,yBAAiB,EAAE,CAAC;IAClB,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,SAAS,GACT,MAAM,CAAA;IAEV,MAAM,MAAM,KAAK;QACf,WAAW,iBAAiB;QAC5B,mBAAmB,uBAAuB;QAC1C,eAAe,mBAAmB;QAClC,oBAAoB,wBAAwB;QAC5C,oBAAoB,wBAAwB;QAC5C,YAAY,kBAAkB;QAC9B,mBAAmB,uBAAuB;QAC1C,gBAAgB,sBAAsB;QACtC,gBAAgB,sBAAsB;QACtC,SAAS,iBAAiB;QAC1B,SAAS,iBAAiB;QAC1B,sBAAsB,2BAA2B;QACjD,qBAAqB,0BAA0B;QAC/C,uBAAuB,4BAA4B;QACnD,6BAA6B,uCAAuC;QACpE,yBAAyB,8BAA8B;QACvD,uBAAuB,4BAA4B;QACnD,YAAY,iBAAiB;QAC7B,aAAa,kBAAkB;QAC/B,cAAc,kCAAkC;QAChD,aAAa,kBAAkB;QAC/B,iBAAiB,sBAAsB;QACvC,cAAc,iCAAiC;QAC/C,aAAa,gBAAgB;QAC7B,eAAe,kBAAkB;QACjC,cAAc,mDAAmD;QACjE,gBAAgB,qBAAqB;QACrC,oBAAoB,yBAAyB;QAC7C,0BAA0B,+BAA+B;QACzD,8BAA8B,mCAAmC;QACjE,WAAW,qCAAqC;QAChD,WAAW,qCAAqC;QAChD,mCAAmC,uCAAuC;QAC1E,yBAAyB,4BAA4B;QACrD,kCAAkC,qCAAqC;QACvE,yBAAyB,4BAA4B;QACrD,uBAAuB,0BAA0B;QACjD,UAAU,sBAAsB;QAChC,UAAU,eAAe;QACzB,eAAe,oBAAoB;QAEnC,8BAA8B,uBAAuB;QACrD,UAAU,eAAe;QACzB,8BAA8B,qBAAqB;QACnD,6BAA6B,qBAAqB;QAClD,sBAAsB,2BAA2B;QACjD,6BAA6B,qBAAqB;QAClD,6BAA6B,qBAAqB;QAClD,qBAAqB,uBAAuB;QAC5C,cAAc,iCAAiC;QAC/C,gCAAgC,yBAAyB;QACzD,iCAAiC,qBAAqB;QACtD,iCAAiC,qBAAqB;QACtD,gBAAgB,kBAAkB;QAClC,wCAAwC,uCAAuC;QAC/E,sBAAsB,qCAAqC;QAC3D,cAAc,iBAAiB;QAC/B,yBAAyB,4BAA4B;QACrD,uBAAuB,4BAA4B;QACnD,YAAY,iBAAiB;QAC7B,cAAc,uBAAuB;QACrC,mBAAmB,iBAAiB;QACpC,gBAAgB,sBAAsB;QACtC,UAAU,eAAe;KAC1B;IAED,MAAM,MAAM,sBAAsB,GAC9B,+BAA+B,GAC/B,sBAAsB,GACtB,cAAc,GACd,oBAAoB,GACpB,wBAAwB,GACxB,uBAAuB,GACvB,yBAAyB,GACzB,gCAAgC,GAChC,+BAA+B,GAC/B,YAAY,GACZ,cAAc,GACd,wBAAwB,GACxB,eAAe,GACf,wBAAwB,GACxB,OAAO,GACP,kBAAkB,CAAA;IAEtB,MAAM,MAAM,UAAU,GAAG;QACvB,UAAU,CAAC,EAAE,UAAU,CAAA;QACvB,KAAK,CAAC,EAAE,KAAK,GAAG,sBAAsB,CAAA;QACtC,MAAM,CAAC,EAAE,WAAW,CAAA;KACrB,CAAA;IAED,UAAU,SAAU,SAAQ,OAAO,CAAC,MAAM,CAAC;QACzC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAA;KAC3D;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CA2CnE;;CACF"}
package/dist/ai.js DELETED
@@ -1,135 +0,0 @@
1
- /**
2
- * AI API - Interface for AI model interactions
3
- *
4
- * Raycast Docs: https://developers.raycast.com/api-reference/ai
5
- *
6
- * The AI namespace provides methods to interact with various AI models for
7
- * generating text completions. It supports streaming responses and multiple
8
- * model providers including OpenAI, Anthropic, Google, and others.
9
- *
10
- * Key features:
11
- * - Stream text completions with AI.ask()
12
- * - Support for multiple AI models via Model enum
13
- * - Configurable creativity levels
14
- * - Abort signal support for cancellation
15
- * - Event-based streaming with "data" events
16
- *
17
- * Usage:
18
- * const stream = AI.ask("Explain quantum computing")
19
- * stream.on("data", (chunk) => console.log(chunk))
20
- * const result = await stream
21
- *
22
- * Models include GPT-4, Claude, Gemini, Llama, Mistral, and many others.
23
- * Creativity can be set from "none" to "maximum" or as a number 0-2.
24
- */
25
- import { EventEmitter } from 'node:events';
26
- import { logger } from '@termcast/cli/src/logger';
27
- export var AI;
28
- (function (AI) {
29
- let Model;
30
- (function (Model) {
31
- Model["OpenAI_GPT4"] = "openai-gpt-4";
32
- Model["OpenAI_GPT4-turbo"] = "openai-gpt-4-turbo";
33
- Model["OpenAI_GPT4.1"] = "openai-gpt-4.1";
34
- Model["OpenAI_GPT4.1-nano"] = "openai-gpt-4.1-nano";
35
- Model["OpenAI_GPT4.1-mini"] = "openai-gpt-4.1-mini";
36
- Model["OpenAI_GPT4o"] = "openai-gpt-4o";
37
- Model["OpenAI_GPT4o-mini"] = "openai-gpt-4o-mini";
38
- Model["OpenAI_o3-mini"] = "openai_o1-o3-mini";
39
- Model["OpenAI_o4-mini"] = "openai_o1-o4-mini";
40
- Model["OpenAI_o1"] = "openai_o1-o1";
41
- Model["OpenAI_o3"] = "openai_o1-o3";
42
- Model["Anthropic_Claude_Haiku"] = "anthropic-claude-haiku";
43
- Model["Anthropic_Claude_Opus"] = "anthropic-claude-opus";
44
- Model["Anthropic_Claude_Sonnet"] = "anthropic-claude-sonnet";
45
- Model["Anthropic_Claude_Sonnet_3.7"] = "anthropic-claude-3-7-sonnet-latest";
46
- Model["Anthropic_Claude_4_Sonnet"] = "anthropic-claude-sonnet-4";
47
- Model["Anthropic_Claude_4_Opus"] = "anthropic-claude-opus-4";
48
- Model["Mistral_Nemo"] = "mistral-nemo";
49
- Model["Mistral_Large"] = "mistral-large";
50
- Model["Mistral_Medium"] = "mistral-mistral-medium-latest";
51
- Model["Mistral_Small"] = "mistral-small";
52
- Model["Mistral_Codestral"] = "mistral-codestral";
53
- Model["Llama3.3_70B"] = "groq-llama-3.3-70b-versatile";
54
- Model["Llama3.1_8B"] = "llama3.1-8b";
55
- Model["Llama3.1_405B"] = "llama3.1-405b";
56
- Model["Llama4_Scout"] = "groq-meta-llama/llama-4-scout-17b-16e-instruct";
57
- Model["Perplexity_Sonar"] = "perplexity-sonar";
58
- Model["Perplexity_Sonar_Pro"] = "perplexity-sonar-pro";
59
- Model["Perplexity_Sonar_Reasoning"] = "perplexity-sonar-reasoning";
60
- Model["Perplexity_Sonar_Reasoning_Pro"] = "perplexity-sonar-reasoning-pro";
61
- Model["DeepSeek_R1"] = "together-deepseek-ai/DeepSeek-R1";
62
- Model["DeepSeek_V3"] = "together-deepseek-ai/DeepSeek-V3";
63
- Model["DeepSeek_R1_Distill_Llama_3.3_70B"] = "groq-deepseek-r1-distill-llama-70b";
64
- Model["Google_Gemini_2.0_Flash"] = "google-gemini-2.0-flash";
65
- Model["Google_Gemini_2.0_Flash_Thinking"] = "google-gemini-2.0-flash-thinking";
66
- Model["Google_Gemini_2.5_Flash"] = "google-gemini-2.5-flash";
67
- Model["Google_Gemini_2.5_Pro"] = "google-gemini-2.5-pro";
68
- Model["xAI_Grok_2"] = "xai-grok-2-latest";
69
- Model["xAI_Grok_3"] = "xai-grok-3";
70
- Model["xAI_Grok_3_Mini"] = "xai-grok-3-mini";
71
- // Deprecated models
72
- Model["OpenAI_GPT3.5-turbo-instruct"] = "openai-gpt-4o-mini";
73
- Model["Llama2_70B"] = "llama2-70b";
74
- Model["Perplexity_Sonar_Medium_Online"] = "perplexity-sonar";
75
- Model["Perplexity_Sonar_Small_Online"] = "perplexity-sonar";
76
- Model["Codellama_70B_instruct"] = "codellama-70b-instruct";
77
- Model["Perplexity_Llama3_Sonar_Large"] = "perplexity-sonar";
78
- Model["Perplexity_Llama3_Sonar_Small"] = "perplexity-sonar";
79
- Model["OpenAI_GPT3.5-turbo"] = "openai-gpt-4o-mini";
80
- Model["Llama3.1_70B"] = "groq-llama-3.3-70b-versatile";
81
- Model["Perplexity_Llama3.1_Sonar_Huge"] = "perplexity-sonar-pro";
82
- Model["Perplexity_Llama3.1_Sonar_Large"] = "perplexity-sonar";
83
- Model["Perplexity_Llama3.1_Sonar_Small"] = "perplexity-sonar";
84
- Model["Mistral_Large2"] = "mistral-large";
85
- Model["Groq_DeepSeek_R1_Distill_Llama_3.3_70B"] = "groq-deepseek-r1-distill-llama-70b";
86
- Model["Together_DeepSeek_R1"] = "together-deepseek-ai/DeepSeek-R1";
87
- Model["MixtraL_8x7B"] = "mistral-nemo";
88
- Model["Google_Gemini_1.5_Flash"] = "google-gemini-1.5-flash";
89
- Model["Google_Gemini_1.5_Pro"] = "google-gemini-2.0-flash";
90
- Model["Mixtral_8x7B"] = "mistral-nemo";
91
- Model["Qwen_2.5_32B"] = "openai-gpt-4o-mini";
92
- Model["OpenAI_o1-preview"] = "openai_o1-o1";
93
- Model["OpenAI_o1-mini"] = "openai_o1-o1-mini";
94
- Model["Llama3_70B"] = "llama3-70b";
95
- })(Model = AI.Model || (AI.Model = {}));
96
- function ask(prompt, options) {
97
- logger.log('AI.ask called', { prompt, options });
98
- const emitter = new EventEmitter();
99
- let result = '';
100
- // TODO: Implement real AI integration
101
- // This is a simulated response - in production, this should:
102
- // 1. Connect to actual AI providers (OpenAI, Anthropic, etc.)
103
- // 2. Use the specified model from options.model
104
- // 3. Apply creativity/temperature settings from options.creativity
105
- // 4. Handle proper streaming from the AI service
106
- const simulateResponse = async () => {
107
- const response = `I understand you're asking: "${prompt}". As a simulated AI in termcast, I cannot provide real AI responses. To use AI functionality, you would need to integrate with an actual AI service provider.`;
108
- // TODO: Replace with real streaming from AI provider
109
- // Emit response in chunks to simulate streaming
110
- const words = response.split(' ');
111
- for (const word of words) {
112
- if (options?.signal?.aborted) {
113
- break;
114
- }
115
- const chunk = word + ' ';
116
- result += chunk;
117
- emitter.emit('data', chunk);
118
- await new Promise((resolve) => setTimeout(resolve, 50));
119
- }
120
- return result.trim();
121
- };
122
- const promise = simulateResponse();
123
- // Create an object that is both a Promise and has an `on` method
124
- const stream = Object.assign(promise, {
125
- on: (event, listener) => {
126
- if (event === 'data') {
127
- emitter.on('data', listener);
128
- }
129
- },
130
- });
131
- return stream;
132
- }
133
- AI.ask = ask;
134
- })(AI || (AI = {}));
135
- //# sourceMappingURL=ai.js.map
package/dist/ai.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cache.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.test.d.ts","sourceRoot":"","sources":["../../src/apis/cache.test.ts"],"names":[],"mappings":""}