sa2kit 1.6.59 → 1.6.62

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 (335) hide show
  1. package/dist/UniversalFileService-C3WQAFOV.js +15 -0
  2. package/dist/{UniversalFileService-J6ET6KZK.js.map → UniversalFileService-C3WQAFOV.js.map} +1 -1
  3. package/dist/UniversalFileService-O3IEROBN.mjs +6 -0
  4. package/dist/{UniversalFileService-336GFY6N.mjs.map → UniversalFileService-O3IEROBN.mjs.map} +1 -1
  5. package/dist/ai/llm/index.d.mts +70 -0
  6. package/dist/ai/llm/index.d.ts +70 -0
  7. package/dist/ai/llm/index.js +54 -0
  8. package/dist/ai/llm/index.js.map +1 -0
  9. package/dist/ai/llm/index.mjs +5 -0
  10. package/dist/ai/llm/index.mjs.map +1 -0
  11. package/dist/ai/llm/ui/electron/index.d.mts +5 -0
  12. package/dist/ai/llm/ui/electron/index.d.ts +5 -0
  13. package/dist/ai/llm/ui/electron/index.js +21 -0
  14. package/dist/ai/llm/ui/electron/index.js.map +1 -0
  15. package/dist/ai/llm/ui/electron/index.mjs +8 -0
  16. package/dist/ai/llm/ui/electron/index.mjs.map +1 -0
  17. package/dist/ai/llm/ui/miniapp/index.d.mts +9 -0
  18. package/dist/ai/llm/ui/miniapp/index.d.ts +9 -0
  19. package/dist/ai/llm/ui/miniapp/index.js +107 -0
  20. package/dist/ai/llm/ui/miniapp/index.js.map +1 -0
  21. package/dist/ai/llm/ui/miniapp/index.mjs +101 -0
  22. package/dist/ai/llm/ui/miniapp/index.mjs.map +1 -0
  23. package/dist/ai/llm/ui/rn/index.d.mts +9 -0
  24. package/dist/ai/llm/ui/rn/index.d.ts +9 -0
  25. package/dist/ai/llm/ui/rn/index.js +249 -0
  26. package/dist/ai/llm/ui/rn/index.js.map +1 -0
  27. package/dist/ai/llm/ui/rn/index.mjs +243 -0
  28. package/dist/ai/llm/ui/rn/index.mjs.map +1 -0
  29. package/dist/ai/llm/ui/web/index.d.mts +15 -0
  30. package/dist/ai/llm/ui/web/index.d.ts +15 -0
  31. package/dist/ai/llm/ui/web/index.js +21 -0
  32. package/dist/ai/llm/ui/web/index.js.map +1 -0
  33. package/dist/ai/llm/ui/web/index.mjs +8 -0
  34. package/dist/ai/llm/ui/web/index.mjs.map +1 -0
  35. package/dist/ar/index.d.mts +7 -0
  36. package/dist/ar/index.d.ts +7 -0
  37. package/dist/ar/index.js +17 -0
  38. package/dist/ar/index.js.map +1 -0
  39. package/dist/ar/index.mjs +4 -0
  40. package/dist/ar/index.mjs.map +1 -0
  41. package/dist/auth/index.js +22 -22
  42. package/dist/auth/index.mjs +2 -2
  43. package/dist/auth/legacy/db/index.d.mts +5 -0
  44. package/dist/auth/legacy/db/index.d.ts +5 -0
  45. package/dist/auth/legacy/db/index.js +34 -0
  46. package/dist/auth/legacy/db/index.js.map +1 -0
  47. package/dist/auth/legacy/db/index.mjs +5 -0
  48. package/dist/auth/legacy/db/index.mjs.map +1 -0
  49. package/dist/auth/legacy/index.d.mts +51 -0
  50. package/dist/auth/legacy/index.d.ts +51 -0
  51. package/dist/auth/legacy/index.js +146 -0
  52. package/dist/auth/legacy/index.js.map +1 -0
  53. package/dist/auth/legacy/index.mjs +13 -0
  54. package/dist/auth/legacy/index.mjs.map +1 -0
  55. package/dist/auth/legacy/logic/index.d.mts +9 -0
  56. package/dist/auth/legacy/logic/index.d.ts +9 -0
  57. package/dist/auth/legacy/logic/index.js +18 -0
  58. package/dist/auth/legacy/logic/index.js.map +1 -0
  59. package/dist/auth/legacy/logic/index.mjs +5 -0
  60. package/dist/auth/legacy/logic/index.mjs.map +1 -0
  61. package/dist/auth/legacy/routes/index.d.mts +50 -0
  62. package/dist/auth/legacy/routes/index.d.ts +50 -0
  63. package/dist/auth/legacy/routes/index.js +34 -0
  64. package/dist/auth/legacy/routes/index.js.map +1 -0
  65. package/dist/auth/legacy/routes/index.mjs +5 -0
  66. package/dist/auth/legacy/routes/index.mjs.map +1 -0
  67. package/dist/auth/legacy/schema/index.d.mts +401 -0
  68. package/dist/auth/legacy/schema/index.d.ts +401 -0
  69. package/dist/auth/legacy/schema/index.js +29 -0
  70. package/dist/auth/legacy/schema/index.js.map +1 -0
  71. package/dist/auth/legacy/schema/index.mjs +4 -0
  72. package/dist/auth/legacy/schema/index.mjs.map +1 -0
  73. package/dist/auth/legacy/server/index.d.mts +15 -0
  74. package/dist/auth/legacy/server/index.d.ts +15 -0
  75. package/dist/auth/legacy/server/index.js +65 -0
  76. package/dist/auth/legacy/server/index.js.map +1 -0
  77. package/dist/auth/legacy/server/index.mjs +8 -0
  78. package/dist/auth/legacy/server/index.mjs.map +1 -0
  79. package/dist/auth/legacy/services/index.d.mts +40 -0
  80. package/dist/auth/legacy/services/index.d.ts +40 -0
  81. package/dist/auth/legacy/services/index.js +14 -0
  82. package/dist/auth/legacy/services/index.js.map +1 -0
  83. package/dist/auth/legacy/services/index.mjs +5 -0
  84. package/dist/auth/legacy/services/index.mjs.map +1 -0
  85. package/dist/auth/legacy/ui/miniapp/index.d.mts +10 -0
  86. package/dist/auth/legacy/ui/miniapp/index.d.ts +10 -0
  87. package/dist/auth/legacy/ui/miniapp/index.js +23 -0
  88. package/dist/auth/legacy/ui/miniapp/index.js.map +1 -0
  89. package/dist/auth/legacy/ui/miniapp/index.mjs +6 -0
  90. package/dist/auth/legacy/ui/miniapp/index.mjs.map +1 -0
  91. package/dist/auth/legacy/ui/web/index.d.mts +22 -0
  92. package/dist/auth/legacy/ui/web/index.d.ts +22 -0
  93. package/dist/auth/legacy/ui/web/index.js +31 -0
  94. package/dist/auth/legacy/ui/web/index.js.map +1 -0
  95. package/dist/auth/legacy/ui/web/index.mjs +6 -0
  96. package/dist/auth/legacy/ui/web/index.mjs.map +1 -0
  97. package/dist/booking-B0BM8grt.d.mts +141 -0
  98. package/dist/booking-CUy8u7Za.d.ts +141 -0
  99. package/dist/{bookingAdminService-Dmg7dC6V.d.mts → bookingAdminService-BNEDyw7U.d.mts} +1 -1
  100. package/dist/{bookingAdminService-B2QDjSHJ.d.ts → bookingAdminService-BtOtG96L.d.ts} +1 -1
  101. package/dist/calendar/index.d.mts +390 -237
  102. package/dist/calendar/index.d.ts +390 -237
  103. package/dist/calendar/index.js +3825 -3785
  104. package/dist/calendar/index.js.map +1 -1
  105. package/dist/calendar/index.mjs +3730 -3696
  106. package/dist/calendar/index.mjs.map +1 -1
  107. package/dist/calendar/routes/index.js +30 -327
  108. package/dist/calendar/routes/index.js.map +1 -1
  109. package/dist/calendar/routes/index.mjs +1 -323
  110. package/dist/calendar/routes/index.mjs.map +1 -1
  111. package/dist/calendar/server.d.mts +6 -0
  112. package/dist/calendar/server.d.ts +6 -0
  113. package/dist/calendar/server.js +41 -13
  114. package/dist/calendar/server.js.map +1 -1
  115. package/dist/calendar/server.mjs +2 -2
  116. package/dist/calendar/server.mjs.map +1 -1
  117. package/dist/{cart-D3o67Q3H.d.ts → cart-Cw3i0Dy6.d.ts} +1 -1
  118. package/dist/{cart-CcZ7rQyG.d.mts → cart-DLSbsihH.d.mts} +1 -1
  119. package/dist/chunk-24F7KUED.js +263 -0
  120. package/dist/chunk-24F7KUED.js.map +1 -0
  121. package/dist/{chunk-YMS6BPXS.js → chunk-27IUMDDK.js} +3 -3
  122. package/dist/{chunk-YMS6BPXS.js.map → chunk-27IUMDDK.js.map} +1 -1
  123. package/dist/chunk-37M6NZIF.js +279 -0
  124. package/dist/chunk-37M6NZIF.js.map +1 -0
  125. package/dist/chunk-3JMUNOUT.js +144 -0
  126. package/dist/chunk-3JMUNOUT.js.map +1 -0
  127. package/dist/chunk-3PFCOTJP.mjs +256 -0
  128. package/dist/chunk-3PFCOTJP.mjs.map +1 -0
  129. package/dist/{chunk-SKCMZYSQ.js → chunk-3YSRTVIY.js} +31 -15
  130. package/dist/chunk-3YSRTVIY.js.map +1 -0
  131. package/dist/{chunk-NZZZUMMX.mjs → chunk-57MVE5LL.mjs} +3 -3
  132. package/dist/{chunk-NZZZUMMX.mjs.map → chunk-57MVE5LL.mjs.map} +1 -1
  133. package/dist/{chunk-622Y6LTH.mjs → chunk-5BLZEVWK.mjs} +196 -468
  134. package/dist/chunk-5BLZEVWK.mjs.map +1 -0
  135. package/dist/{chunk-UVHPCLP6.js → chunk-5LCGOCKG.js} +5 -5
  136. package/dist/{chunk-UVHPCLP6.js.map → chunk-5LCGOCKG.js.map} +1 -1
  137. package/dist/chunk-6XUQ2B4K.js +219 -0
  138. package/dist/chunk-6XUQ2B4K.js.map +1 -0
  139. package/dist/{chunk-NCOXT7SK.js → chunk-77UEPWVQ.js} +4 -4
  140. package/dist/{chunk-NCOXT7SK.js.map → chunk-77UEPWVQ.js.map} +1 -1
  141. package/dist/chunk-C76U5FF4.mjs +10 -0
  142. package/dist/chunk-C76U5FF4.mjs.map +1 -0
  143. package/dist/chunk-CFM56MGO.mjs +35 -0
  144. package/dist/chunk-CFM56MGO.mjs.map +1 -0
  145. package/dist/{chunk-LJGJPAQ4.js → chunk-COOI6MT3.js} +2 -11
  146. package/dist/chunk-COOI6MT3.js.map +1 -0
  147. package/dist/chunk-CPSFYP34.mjs +140 -0
  148. package/dist/chunk-CPSFYP34.mjs.map +1 -0
  149. package/dist/chunk-D22QBOCM.mjs +336 -0
  150. package/dist/chunk-D22QBOCM.mjs.map +1 -0
  151. package/dist/chunk-DA4QV64P.mjs +35 -0
  152. package/dist/chunk-DA4QV64P.mjs.map +1 -0
  153. package/dist/{chunk-FVDPGX6A.mjs → chunk-DWJLOHAE.mjs} +2 -11
  154. package/dist/chunk-DWJLOHAE.mjs.map +1 -0
  155. package/dist/chunk-EKDLZND6.js +275 -0
  156. package/dist/chunk-EKDLZND6.js.map +1 -0
  157. package/dist/chunk-EKQPFZXQ.js +12 -0
  158. package/dist/chunk-EKQPFZXQ.js.map +1 -0
  159. package/dist/chunk-ERAAB5VG.js +324 -0
  160. package/dist/chunk-ERAAB5VG.js.map +1 -0
  161. package/dist/chunk-ESLY72VI.mjs +175 -0
  162. package/dist/chunk-ESLY72VI.mjs.map +1 -0
  163. package/dist/chunk-FGQGWW73.js +38 -0
  164. package/dist/chunk-FGQGWW73.js.map +1 -0
  165. package/dist/chunk-FXQOXLDE.js +120 -0
  166. package/dist/chunk-FXQOXLDE.js.map +1 -0
  167. package/dist/chunk-FZELCJR7.mjs +19 -0
  168. package/dist/chunk-FZELCJR7.mjs.map +1 -0
  169. package/dist/{chunk-HHVDOIPV.js → chunk-H3P2PGZL.js} +3 -3
  170. package/dist/{chunk-HHVDOIPV.js.map → chunk-H3P2PGZL.js.map} +1 -1
  171. package/dist/chunk-HBQMN5QM.mjs +10 -0
  172. package/dist/chunk-HBQMN5QM.mjs.map +1 -0
  173. package/dist/chunk-ITRIXMXF.mjs +862 -0
  174. package/dist/chunk-ITRIXMXF.mjs.map +1 -0
  175. package/dist/chunk-IUWSCUDC.js +4 -0
  176. package/dist/chunk-IUWSCUDC.js.map +1 -0
  177. package/dist/chunk-JCKCKRC2.js +50 -0
  178. package/dist/chunk-JCKCKRC2.js.map +1 -0
  179. package/dist/chunk-L7GQNY54.mjs +286 -0
  180. package/dist/chunk-L7GQNY54.mjs.map +1 -0
  181. package/dist/{chunk-ZRWED7Q6.js → chunk-LDVJ7URJ.js} +235 -520
  182. package/dist/chunk-LDVJ7URJ.js.map +1 -0
  183. package/dist/{chunk-WK3HTUID.js → chunk-MLP74E3O.js} +609 -1643
  184. package/dist/chunk-MLP74E3O.js.map +1 -0
  185. package/dist/chunk-NAX4TUT7.js +182 -0
  186. package/dist/chunk-NAX4TUT7.js.map +1 -0
  187. package/dist/chunk-NW4EN4YI.mjs +213 -0
  188. package/dist/chunk-NW4EN4YI.mjs.map +1 -0
  189. package/dist/{chunk-7CMGQX3S.mjs → chunk-OX6VMQDU.mjs} +14 -13
  190. package/dist/chunk-OX6VMQDU.mjs.map +1 -0
  191. package/dist/chunk-P3QMT3AY.mjs +44 -0
  192. package/dist/chunk-P3QMT3AY.mjs.map +1 -0
  193. package/dist/chunk-PJ4KYAQZ.mjs +631 -0
  194. package/dist/chunk-PJ4KYAQZ.mjs.map +1 -0
  195. package/dist/chunk-PLSEAREM.js +345 -0
  196. package/dist/chunk-PLSEAREM.js.map +1 -0
  197. package/dist/{chunk-EGJPS7OL.mjs → chunk-QZU4UJZG.mjs} +3 -3
  198. package/dist/{chunk-EGJPS7OL.mjs.map → chunk-QZU4UJZG.mjs.map} +1 -1
  199. package/dist/chunk-RJVR33ME.mjs +3 -0
  200. package/dist/chunk-RJVR33ME.mjs.map +1 -0
  201. package/dist/chunk-SYBHDB2D.js +650 -0
  202. package/dist/chunk-SYBHDB2D.js.map +1 -0
  203. package/dist/chunk-TVKVM7JT.js +21 -0
  204. package/dist/chunk-TVKVM7JT.js.map +1 -0
  205. package/dist/{chunk-UZB4IO3T.mjs → chunk-UTB72ZJ7.mjs} +415 -1449
  206. package/dist/chunk-UTB72ZJ7.mjs.map +1 -0
  207. package/dist/chunk-V5HE6IYN.js +12 -0
  208. package/dist/chunk-V5HE6IYN.js.map +1 -0
  209. package/dist/chunk-V7EVKD5G.mjs +116 -0
  210. package/dist/chunk-V7EVKD5G.mjs.map +1 -0
  211. package/dist/chunk-VGPR3KLR.js +872 -0
  212. package/dist/chunk-VGPR3KLR.js.map +1 -0
  213. package/dist/chunk-VS7WATQD.js +255 -0
  214. package/dist/chunk-VS7WATQD.js.map +1 -0
  215. package/dist/chunk-VSP7XJT5.mjs +272 -0
  216. package/dist/chunk-VSP7XJT5.mjs.map +1 -0
  217. package/dist/{chunk-SNBILYSH.mjs → chunk-VTKAIOP5.mjs} +5 -5
  218. package/dist/{chunk-SNBILYSH.mjs.map → chunk-VTKAIOP5.mjs.map} +1 -1
  219. package/dist/chunk-VULJUXTF.mjs +267 -0
  220. package/dist/chunk-VULJUXTF.mjs.map +1 -0
  221. package/dist/chunk-XAHM6B3V.js +44 -0
  222. package/dist/chunk-XAHM6B3V.js.map +1 -0
  223. package/dist/chunk-YSF5YISM.mjs +248 -0
  224. package/dist/chunk-YSF5YISM.mjs.map +1 -0
  225. package/dist/{chunk-OFYBMMWT.mjs → chunk-YYJEVAJI.mjs} +3 -3
  226. package/dist/{chunk-OFYBMMWT.mjs.map → chunk-YYJEVAJI.mjs.map} +1 -1
  227. package/dist/components/index.d.mts +1 -0
  228. package/dist/components/index.d.ts +1 -0
  229. package/dist/components/index.js +182 -181
  230. package/dist/components/index.mjs +4 -3
  231. package/dist/{booking-BXtkG2ns.d.mts → index-Bi666jIm.d.mts} +1 -139
  232. package/dist/{booking-BXtkG2ns.d.ts → index-Bi666jIm.d.ts} +1 -139
  233. package/dist/index-DNKZ7-R_.d.mts +184 -0
  234. package/dist/index-DNKZ7-R_.d.ts +184 -0
  235. package/dist/index.d.mts +4 -1
  236. package/dist/index.d.ts +4 -1
  237. package/dist/index.js +285 -229
  238. package/dist/index.js.map +1 -1
  239. package/dist/index.mjs +15 -10
  240. package/dist/index.mjs.map +1 -1
  241. package/dist/mikuFusionGame/index.js +3 -3
  242. package/dist/mikuFusionGame/index.mjs +2 -2
  243. package/dist/mmd/index.d.mts +67 -9
  244. package/dist/mmd/index.d.ts +67 -9
  245. package/dist/mmd/index.js +969 -625
  246. package/dist/mmd/index.js.map +1 -1
  247. package/dist/mmd/index.mjs +969 -628
  248. package/dist/mmd/index.mjs.map +1 -1
  249. package/dist/portfolio/index.js +10 -9
  250. package/dist/portfolio/index.mjs +5 -4
  251. package/dist/qqbot/index.d.mts +2 -0
  252. package/dist/qqbot/index.d.ts +2 -0
  253. package/dist/qqbot/index.js +21 -0
  254. package/dist/qqbot/index.js.map +1 -0
  255. package/dist/qqbot/index.mjs +4 -0
  256. package/dist/qqbot/index.mjs.map +1 -0
  257. package/dist/qqbot/server/index.d.mts +91 -0
  258. package/dist/qqbot/server/index.d.ts +91 -0
  259. package/dist/qqbot/server/index.js +21 -0
  260. package/dist/qqbot/server/index.js.map +1 -0
  261. package/dist/qqbot/server/index.mjs +4 -0
  262. package/dist/qqbot/server/index.mjs.map +1 -0
  263. package/dist/qqbot/ui/web/index.d.mts +10 -0
  264. package/dist/qqbot/ui/web/index.d.ts +10 -0
  265. package/dist/qqbot/ui/web/index.js +105 -0
  266. package/dist/qqbot/ui/web/index.js.map +1 -0
  267. package/dist/qqbot/ui/web/index.mjs +99 -0
  268. package/dist/qqbot/ui/web/index.mjs.map +1 -0
  269. package/dist/screenReceiver/index.d.mts +78 -0
  270. package/dist/screenReceiver/index.d.ts +78 -0
  271. package/dist/screenReceiver/index.js +17 -0
  272. package/dist/screenReceiver/index.js.map +1 -0
  273. package/dist/screenReceiver/index.mjs +4 -0
  274. package/dist/screenReceiver/index.mjs.map +1 -0
  275. package/dist/screenReceiver/server/index.d.mts +36 -0
  276. package/dist/screenReceiver/server/index.d.ts +36 -0
  277. package/dist/screenReceiver/server/index.js +160 -0
  278. package/dist/screenReceiver/server/index.js.map +1 -0
  279. package/dist/screenReceiver/server/index.mjs +157 -0
  280. package/dist/screenReceiver/server/index.mjs.map +1 -0
  281. package/dist/showmasterpiece/db/index.js +42 -42
  282. package/dist/showmasterpiece/db/index.mjs +1 -1
  283. package/dist/showmasterpiece/index.d.mts +8 -6
  284. package/dist/showmasterpiece/index.d.ts +8 -6
  285. package/dist/showmasterpiece/index.js +142 -130
  286. package/dist/showmasterpiece/index.js.map +1 -1
  287. package/dist/showmasterpiece/index.mjs +18 -6
  288. package/dist/showmasterpiece/index.mjs.map +1 -1
  289. package/dist/showmasterpiece/logic/index.d.mts +9 -17
  290. package/dist/showmasterpiece/logic/index.d.ts +9 -17
  291. package/dist/showmasterpiece/logic/index.js +35 -34
  292. package/dist/showmasterpiece/logic/index.mjs +3 -2
  293. package/dist/showmasterpiece/logic/miniapp/index.d.mts +15 -0
  294. package/dist/showmasterpiece/logic/miniapp/index.d.ts +15 -0
  295. package/dist/showmasterpiece/logic/miniapp/index.js +42 -0
  296. package/dist/showmasterpiece/logic/miniapp/index.js.map +1 -0
  297. package/dist/showmasterpiece/logic/miniapp/index.mjs +5 -0
  298. package/dist/showmasterpiece/logic/miniapp/index.mjs.map +1 -0
  299. package/dist/showmasterpiece/server/index.js +42 -42
  300. package/dist/showmasterpiece/server/index.mjs +1 -1
  301. package/dist/showmasterpiece/ui/miniapp/index.d.mts +5 -2
  302. package/dist/showmasterpiece/ui/miniapp/index.d.ts +5 -2
  303. package/dist/showmasterpiece/ui/miniapp/index.js +83 -55
  304. package/dist/showmasterpiece/ui/miniapp/index.js.map +1 -1
  305. package/dist/showmasterpiece/ui/miniapp/index.mjs +83 -55
  306. package/dist/showmasterpiece/ui/miniapp/index.mjs.map +1 -1
  307. package/dist/showmasterpiece/ui/web/index.d.mts +3 -2
  308. package/dist/showmasterpiece/ui/web/index.d.ts +3 -2
  309. package/dist/showmasterpiece/ui/web/index.js +44 -33
  310. package/dist/showmasterpiece/ui/web/index.mjs +16 -5
  311. package/dist/testYourself/index.js +13 -13
  312. package/dist/testYourself/index.mjs +2 -2
  313. package/dist/types-B-hOccQw.d.mts +122 -0
  314. package/dist/types-B8rGXc4e.d.mts +38 -0
  315. package/dist/types-Cg89HGz2.d.ts +38 -0
  316. package/dist/types-CvKvpyN8.d.mts +48 -0
  317. package/dist/types-CvKvpyN8.d.ts +48 -0
  318. package/dist/types-Dy6x2gJW.d.ts +122 -0
  319. package/dist/universalFile/server/index.js +11 -11
  320. package/dist/universalFile/server/index.mjs +4 -4
  321. package/package.json +106 -1
  322. package/dist/UniversalFileService-336GFY6N.mjs +0 -6
  323. package/dist/UniversalFileService-J6ET6KZK.js +0 -15
  324. package/dist/chunk-622Y6LTH.mjs.map +0 -1
  325. package/dist/chunk-7CMGQX3S.mjs.map +0 -1
  326. package/dist/chunk-FVDPGX6A.mjs.map +0 -1
  327. package/dist/chunk-GVVS4IMM.mjs +0 -302
  328. package/dist/chunk-GVVS4IMM.mjs.map +0 -1
  329. package/dist/chunk-LJGJPAQ4.js.map +0 -1
  330. package/dist/chunk-SKCMZYSQ.js.map +0 -1
  331. package/dist/chunk-UZB4IO3T.mjs.map +0 -1
  332. package/dist/chunk-WC5QFO3T.js +0 -314
  333. package/dist/chunk-WC5QFO3T.js.map +0 -1
  334. package/dist/chunk-WK3HTUID.js.map +0 -1
  335. package/dist/chunk-ZRWED7Q6.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var chunk27IUMDDK_js = require('./chunk-27IUMDDK.js');
4
+ require('./chunk-ZRAW3HXA.js');
5
+ require('./chunk-25OFOKNF.js');
6
+ require('./chunk-Z6ZWNWWR.js');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "UniversalFileService", {
11
+ enumerable: true,
12
+ get: function () { return chunk27IUMDDK_js.UniversalFileService; }
13
+ });
14
+ //# sourceMappingURL=UniversalFileService-C3WQAFOV.js.map
15
+ //# sourceMappingURL=UniversalFileService-C3WQAFOV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"UniversalFileService-J6ET6KZK.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"UniversalFileService-C3WQAFOV.js"}
@@ -0,0 +1,6 @@
1
+ export { UniversalFileService } from './chunk-57MVE5LL.mjs';
2
+ import './chunk-CIVO4R6N.mjs';
3
+ import './chunk-3DXPQ4YV.mjs';
4
+ import './chunk-WMJKH4XE.mjs';
5
+ //# sourceMappingURL=UniversalFileService-O3IEROBN.mjs.map
6
+ //# sourceMappingURL=UniversalFileService-O3IEROBN.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"UniversalFileService-336GFY6N.mjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"UniversalFileService-O3IEROBN.mjs"}
@@ -0,0 +1,70 @@
1
+ import { m as AiClientConfig, A as AiClient, o as AiChatSessionOptions, p as AiChatSession, P as PromptVariables, s as AiProvider, a as AiMessage, n as AiChatStatus, c as AiChatResponse, b as AiChatInputOptions, l as AiLogger, f as AiToolDefinition } from '../../types-B-hOccQw.mjs';
2
+ export { k as AiChatChunk, j as AiChatRequest, i as AiChatRequestOptions, d as AiRole, g as AiToolCall, e as AiToolChoice, h as AiUsage, q as PromptVariableValue, R as ResolvedAiClientConfig, r as normalizePromptVariables } from '../../types-B-hOccQw.mjs';
3
+ import '../../types-CbTsi9CZ.mjs';
4
+
5
+ declare const createAiClient: (config: AiClientConfig) => AiClient;
6
+
7
+ declare const createChatSession: (options: AiChatSessionOptions) => AiChatSession;
8
+
9
+ interface PromptTemplateOptions {
10
+ missingValue?: string;
11
+ preserveUnknown?: boolean;
12
+ }
13
+ declare const applyPromptTemplate: (template: string, variables?: PromptVariables, options?: PromptTemplateOptions) => string;
14
+
15
+ declare const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
16
+ declare const DEFAULT_OPENAI_MODEL = "gpt-3.5-turbo";
17
+ declare const createOpenAICompatibleProvider: () => AiProvider;
18
+
19
+ interface UseAiChatOptions {
20
+ client: AiClient;
21
+ systemPrompt?: string;
22
+ template?: string;
23
+ initialMessages?: AiMessage[];
24
+ }
25
+ declare const useAiChat: (options: UseAiChatOptions) => {
26
+ status: AiChatStatus;
27
+ isLoading: boolean;
28
+ error: Error | null;
29
+ messages: AiMessage[];
30
+ lastResponse: AiChatResponse | null;
31
+ sendMessage: (input: string, requestOptions?: AiChatInputOptions) => Promise<AiChatResponse>;
32
+ reset: () => void;
33
+ setSystemPrompt: (prompt?: string) => void;
34
+ };
35
+
36
+ type SkillInputSchema = Record<string, any>;
37
+ interface SkillExecutionContext {
38
+ messages?: AiMessage[];
39
+ logger?: AiLogger;
40
+ metadata?: Record<string, any>;
41
+ }
42
+ interface SkillDefinition<Input = any, Output = any> {
43
+ name: string;
44
+ description?: string;
45
+ inputSchema?: SkillInputSchema;
46
+ execute: (input: Input, context?: SkillExecutionContext) => Promise<Output> | Output;
47
+ }
48
+ interface SkillRegistry {
49
+ registerSkill(skill: SkillDefinition): void;
50
+ unregisterSkill(name: string): boolean;
51
+ getSkill(name: string): SkillDefinition | undefined;
52
+ listSkills(): SkillDefinition[];
53
+ executeSkill(name: string, input: any, context?: SkillExecutionContext): Promise<any>;
54
+ toToolDefinitions?(): AiToolDefinition[];
55
+ }
56
+
57
+ declare const skillToToolDefinition: (skill: SkillDefinition) => AiToolDefinition;
58
+ declare class InMemorySkillRegistry implements SkillRegistry {
59
+ private skills;
60
+ constructor(initialSkills?: SkillDefinition[]);
61
+ registerSkill(skill: SkillDefinition): void;
62
+ unregisterSkill(name: string): boolean;
63
+ getSkill(name: string): SkillDefinition | undefined;
64
+ listSkills(): SkillDefinition[];
65
+ executeSkill(name: string, input: any, context?: SkillExecutionContext): Promise<any>;
66
+ toToolDefinitions(): AiToolDefinition[];
67
+ }
68
+ declare const createSkillRegistry: (initialSkills?: SkillDefinition[]) => InMemorySkillRegistry;
69
+
70
+ export { AiChatInputOptions, AiChatResponse, AiChatSession, AiChatSessionOptions, AiChatStatus, AiClient, AiClientConfig, AiLogger, AiMessage, AiProvider, AiToolDefinition, DEFAULT_OPENAI_BASE_URL, DEFAULT_OPENAI_MODEL, InMemorySkillRegistry, type PromptTemplateOptions, PromptVariables, type SkillDefinition, type SkillExecutionContext, type SkillInputSchema, type SkillRegistry, type UseAiChatOptions, applyPromptTemplate, createAiClient, createChatSession, createOpenAICompatibleProvider, createSkillRegistry, skillToToolDefinition, useAiChat };
@@ -0,0 +1,70 @@
1
+ import { m as AiClientConfig, A as AiClient, o as AiChatSessionOptions, p as AiChatSession, P as PromptVariables, s as AiProvider, a as AiMessage, n as AiChatStatus, c as AiChatResponse, b as AiChatInputOptions, l as AiLogger, f as AiToolDefinition } from '../../types-Dy6x2gJW.js';
2
+ export { k as AiChatChunk, j as AiChatRequest, i as AiChatRequestOptions, d as AiRole, g as AiToolCall, e as AiToolChoice, h as AiUsage, q as PromptVariableValue, R as ResolvedAiClientConfig, r as normalizePromptVariables } from '../../types-Dy6x2gJW.js';
3
+ import '../../types-CbTsi9CZ.js';
4
+
5
+ declare const createAiClient: (config: AiClientConfig) => AiClient;
6
+
7
+ declare const createChatSession: (options: AiChatSessionOptions) => AiChatSession;
8
+
9
+ interface PromptTemplateOptions {
10
+ missingValue?: string;
11
+ preserveUnknown?: boolean;
12
+ }
13
+ declare const applyPromptTemplate: (template: string, variables?: PromptVariables, options?: PromptTemplateOptions) => string;
14
+
15
+ declare const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
16
+ declare const DEFAULT_OPENAI_MODEL = "gpt-3.5-turbo";
17
+ declare const createOpenAICompatibleProvider: () => AiProvider;
18
+
19
+ interface UseAiChatOptions {
20
+ client: AiClient;
21
+ systemPrompt?: string;
22
+ template?: string;
23
+ initialMessages?: AiMessage[];
24
+ }
25
+ declare const useAiChat: (options: UseAiChatOptions) => {
26
+ status: AiChatStatus;
27
+ isLoading: boolean;
28
+ error: Error | null;
29
+ messages: AiMessage[];
30
+ lastResponse: AiChatResponse | null;
31
+ sendMessage: (input: string, requestOptions?: AiChatInputOptions) => Promise<AiChatResponse>;
32
+ reset: () => void;
33
+ setSystemPrompt: (prompt?: string) => void;
34
+ };
35
+
36
+ type SkillInputSchema = Record<string, any>;
37
+ interface SkillExecutionContext {
38
+ messages?: AiMessage[];
39
+ logger?: AiLogger;
40
+ metadata?: Record<string, any>;
41
+ }
42
+ interface SkillDefinition<Input = any, Output = any> {
43
+ name: string;
44
+ description?: string;
45
+ inputSchema?: SkillInputSchema;
46
+ execute: (input: Input, context?: SkillExecutionContext) => Promise<Output> | Output;
47
+ }
48
+ interface SkillRegistry {
49
+ registerSkill(skill: SkillDefinition): void;
50
+ unregisterSkill(name: string): boolean;
51
+ getSkill(name: string): SkillDefinition | undefined;
52
+ listSkills(): SkillDefinition[];
53
+ executeSkill(name: string, input: any, context?: SkillExecutionContext): Promise<any>;
54
+ toToolDefinitions?(): AiToolDefinition[];
55
+ }
56
+
57
+ declare const skillToToolDefinition: (skill: SkillDefinition) => AiToolDefinition;
58
+ declare class InMemorySkillRegistry implements SkillRegistry {
59
+ private skills;
60
+ constructor(initialSkills?: SkillDefinition[]);
61
+ registerSkill(skill: SkillDefinition): void;
62
+ unregisterSkill(name: string): boolean;
63
+ getSkill(name: string): SkillDefinition | undefined;
64
+ listSkills(): SkillDefinition[];
65
+ executeSkill(name: string, input: any, context?: SkillExecutionContext): Promise<any>;
66
+ toToolDefinitions(): AiToolDefinition[];
67
+ }
68
+ declare const createSkillRegistry: (initialSkills?: SkillDefinition[]) => InMemorySkillRegistry;
69
+
70
+ export { AiChatInputOptions, AiChatResponse, AiChatSession, AiChatSessionOptions, AiChatStatus, AiClient, AiClientConfig, AiLogger, AiMessage, AiProvider, AiToolDefinition, DEFAULT_OPENAI_BASE_URL, DEFAULT_OPENAI_MODEL, InMemorySkillRegistry, type PromptTemplateOptions, PromptVariables, type SkillDefinition, type SkillExecutionContext, type SkillInputSchema, type SkillRegistry, type UseAiChatOptions, applyPromptTemplate, createAiClient, createChatSession, createOpenAICompatibleProvider, createSkillRegistry, skillToToolDefinition, useAiChat };
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ var chunkPLSEAREM_js = require('../../chunk-PLSEAREM.js');
4
+ var chunkFXQOXLDE_js = require('../../chunk-FXQOXLDE.js');
5
+ require('../../chunk-Z6ZWNWWR.js');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "DEFAULT_OPENAI_BASE_URL", {
10
+ enumerable: true,
11
+ get: function () { return chunkPLSEAREM_js.DEFAULT_OPENAI_BASE_URL; }
12
+ });
13
+ Object.defineProperty(exports, "DEFAULT_OPENAI_MODEL", {
14
+ enumerable: true,
15
+ get: function () { return chunkPLSEAREM_js.DEFAULT_OPENAI_MODEL; }
16
+ });
17
+ Object.defineProperty(exports, "InMemorySkillRegistry", {
18
+ enumerable: true,
19
+ get: function () { return chunkPLSEAREM_js.InMemorySkillRegistry; }
20
+ });
21
+ Object.defineProperty(exports, "createAiClient", {
22
+ enumerable: true,
23
+ get: function () { return chunkPLSEAREM_js.createAiClient; }
24
+ });
25
+ Object.defineProperty(exports, "createChatSession", {
26
+ enumerable: true,
27
+ get: function () { return chunkPLSEAREM_js.createChatSession; }
28
+ });
29
+ Object.defineProperty(exports, "createOpenAICompatibleProvider", {
30
+ enumerable: true,
31
+ get: function () { return chunkPLSEAREM_js.createOpenAICompatibleProvider; }
32
+ });
33
+ Object.defineProperty(exports, "createSkillRegistry", {
34
+ enumerable: true,
35
+ get: function () { return chunkPLSEAREM_js.createSkillRegistry; }
36
+ });
37
+ Object.defineProperty(exports, "skillToToolDefinition", {
38
+ enumerable: true,
39
+ get: function () { return chunkPLSEAREM_js.skillToToolDefinition; }
40
+ });
41
+ Object.defineProperty(exports, "applyPromptTemplate", {
42
+ enumerable: true,
43
+ get: function () { return chunkFXQOXLDE_js.applyPromptTemplate; }
44
+ });
45
+ Object.defineProperty(exports, "normalizePromptVariables", {
46
+ enumerable: true,
47
+ get: function () { return chunkFXQOXLDE_js.normalizePromptVariables; }
48
+ });
49
+ Object.defineProperty(exports, "useAiChat", {
50
+ enumerable: true,
51
+ get: function () { return chunkFXQOXLDE_js.useAiChat; }
52
+ });
53
+ //# sourceMappingURL=index.js.map
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,5 @@
1
+ export { DEFAULT_OPENAI_BASE_URL, DEFAULT_OPENAI_MODEL, InMemorySkillRegistry, createAiClient, createChatSession, createOpenAICompatibleProvider, createSkillRegistry, skillToToolDefinition } from '../../chunk-D22QBOCM.mjs';
2
+ export { applyPromptTemplate, normalizePromptVariables, useAiChat } from '../../chunk-V7EVKD5G.mjs';
3
+ import '../../chunk-WMJKH4XE.mjs';
4
+ //# sourceMappingURL=index.mjs.map
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,5 @@
1
+ export { AiChatDialog, AiConfigPage } from '../web/index.mjs';
2
+ export { a as AiChatDialogBaseProps, A as AiChatDialogProps, c as AiConfigPageProps, b as AiUiConfig } from '../../../../types-B8rGXc4e.mjs';
3
+ import 'react';
4
+ import '../../../../types-B-hOccQw.mjs';
5
+ import '../../../../types-CbTsi9CZ.mjs';
@@ -0,0 +1,5 @@
1
+ export { AiChatDialog, AiConfigPage } from '../web/index.js';
2
+ export { a as AiChatDialogBaseProps, A as AiChatDialogProps, c as AiConfigPageProps, b as AiUiConfig } from '../../../../types-Cg89HGz2.js';
3
+ import 'react';
4
+ import '../../../../types-Dy6x2gJW.js';
5
+ import '../../../../types-CbTsi9CZ.js';
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunk37M6NZIF_js = require('../../../../chunk-37M6NZIF.js');
4
+ require('../../../../chunk-ERAAB5VG.js');
5
+ require('../../../../chunk-FXQOXLDE.js');
6
+ require('../../../../chunk-ZWQJSZEY.js');
7
+ require('../../../../chunk-25OFOKNF.js');
8
+ require('../../../../chunk-Z6ZWNWWR.js');
9
+
10
+
11
+
12
+ Object.defineProperty(exports, "AiChatDialog", {
13
+ enumerable: true,
14
+ get: function () { return chunk37M6NZIF_js.AiChatDialog; }
15
+ });
16
+ Object.defineProperty(exports, "AiConfigPage", {
17
+ enumerable: true,
18
+ get: function () { return chunk37M6NZIF_js.AiConfigPage; }
19
+ });
20
+ //# sourceMappingURL=index.js.map
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,8 @@
1
+ export { AiChatDialog, AiConfigPage } from '../../../../chunk-VSP7XJT5.mjs';
2
+ import '../../../../chunk-L7GQNY54.mjs';
3
+ import '../../../../chunk-V7EVKD5G.mjs';
4
+ import '../../../../chunk-3NHAT7D4.mjs';
5
+ import '../../../../chunk-3DXPQ4YV.mjs';
6
+ import '../../../../chunk-WMJKH4XE.mjs';
7
+ //# sourceMappingURL=index.mjs.map
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,9 @@
1
+ import React__default from 'react';
2
+ import { A as AiChatDialogProps } from '../../../../types-B8rGXc4e.mjs';
3
+ export { a as AiChatDialogBaseProps, c as AiConfigPageProps, b as AiUiConfig } from '../../../../types-B8rGXc4e.mjs';
4
+ import '../../../../types-B-hOccQw.mjs';
5
+ import '../../../../types-CbTsi9CZ.mjs';
6
+
7
+ declare const AiChatDialog: React__default.FC<AiChatDialogProps>;
8
+
9
+ export { AiChatDialog, AiChatDialogProps };
@@ -0,0 +1,9 @@
1
+ import React__default from 'react';
2
+ import { A as AiChatDialogProps } from '../../../../types-Cg89HGz2.js';
3
+ export { a as AiChatDialogBaseProps, c as AiConfigPageProps, b as AiUiConfig } from '../../../../types-Cg89HGz2.js';
4
+ import '../../../../types-Dy6x2gJW.js';
5
+ import '../../../../types-CbTsi9CZ.js';
6
+
7
+ declare const AiChatDialog: React__default.FC<AiChatDialogProps>;
8
+
9
+ export { AiChatDialog, AiChatDialogProps };
@@ -0,0 +1,107 @@
1
+ 'use strict';
2
+
3
+ var chunkFXQOXLDE_js = require('../../../../chunk-FXQOXLDE.js');
4
+ require('../../../../chunk-Z6ZWNWWR.js');
5
+ var React = require('react');
6
+ var components = require('@tarojs/components');
7
+
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var React__default = /*#__PURE__*/_interopDefault(React);
11
+
12
+ var AiChatDialog = ({
13
+ open,
14
+ onOpenChange,
15
+ client,
16
+ title = "AI \u5BF9\u8BDD",
17
+ placeholder = "\u8F93\u5165\u4F60\u60F3\u54A8\u8BE2\u7684\u95EE\u9898...",
18
+ systemPrompt,
19
+ template,
20
+ templateVariables,
21
+ initialMessages,
22
+ requestOptions,
23
+ onResponse,
24
+ onError
25
+ }) => {
26
+ const { messages, sendMessage, isLoading, error } = chunkFXQOXLDE_js.useAiChat({
27
+ client,
28
+ systemPrompt,
29
+ template,
30
+ initialMessages
31
+ });
32
+ const [input, setInput] = React.useState("");
33
+ const helperText = React.useMemo(() => {
34
+ return template ? "\u6A21\u677F\u5DF2\u542F\u7528\uFF0C\u652F\u6301 {{input}} \u53D8\u91CF\u3002" : "\u76F4\u63A5\u8F93\u5165\u5373\u53EF\u5F00\u59CB\u5BF9\u8BDD\u3002";
35
+ }, [template]);
36
+ React.useEffect(() => {
37
+ if (!open) {
38
+ setInput("");
39
+ }
40
+ }, [open]);
41
+ const handleSend = async () => {
42
+ const content = input.trim();
43
+ if (!content || isLoading) return;
44
+ setInput("");
45
+ try {
46
+ const response = await sendMessage(content, {
47
+ ...requestOptions,
48
+ template,
49
+ variables: templateVariables
50
+ });
51
+ onResponse?.(response);
52
+ } catch (err) {
53
+ const nextError = err instanceof Error ? err : new Error(String(err));
54
+ onError?.(nextError);
55
+ }
56
+ };
57
+ if (!open) {
58
+ return null;
59
+ }
60
+ return /* @__PURE__ */ React__default.default.createElement(components.View, { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/40 px-4" }, /* @__PURE__ */ React__default.default.createElement(components.View, { className: "w-full max-w-[640px] rounded-2xl bg-white p-4 shadow-lg" }, /* @__PURE__ */ React__default.default.createElement(components.View, { className: "flex items-center justify-between" }, /* @__PURE__ */ React__default.default.createElement(components.Text, { className: "text-base font-semibold text-slate-900" }, title), /* @__PURE__ */ React__default.default.createElement(
61
+ components.Text,
62
+ {
63
+ className: "text-xs text-slate-500",
64
+ onClick: () => onOpenChange?.(false)
65
+ },
66
+ "\u5173\u95ED"
67
+ )), /* @__PURE__ */ React__default.default.createElement(
68
+ components.ScrollView,
69
+ {
70
+ scrollY: true,
71
+ className: "mt-3 max-h-[60vh] rounded-xl border border-slate-100 bg-slate-50/60 p-3"
72
+ },
73
+ messages.length === 0 && /* @__PURE__ */ React__default.default.createElement(components.View, { className: "flex flex-col items-center justify-center py-8 text-xs text-slate-400" }, /* @__PURE__ */ React__default.default.createElement(components.Text, null, "\u6682\u65E0\u5BF9\u8BDD\u5185\u5BB9"), /* @__PURE__ */ React__default.default.createElement(components.Text, null, "\u8F93\u5165\u6D88\u606F\u5F00\u59CB\u4F53\u9A8C AI \u5BF9\u8BDD\u3002")),
74
+ /* @__PURE__ */ React__default.default.createElement(components.View, { className: "flex flex-col gap-3" }, messages.map((message, index) => {
75
+ const isUser = message.role === "user";
76
+ return /* @__PURE__ */ React__default.default.createElement(
77
+ components.View,
78
+ {
79
+ key: `${message.role}-${index}`,
80
+ className: `max-w-[85%] rounded-2xl px-3 py-2 text-xs leading-relaxed ${isUser ? "ml-auto bg-slate-900 text-white" : "mr-auto border border-slate-200 bg-white text-slate-800"}`
81
+ },
82
+ /* @__PURE__ */ React__default.default.createElement(components.Text, null, message.content)
83
+ );
84
+ }), isLoading && /* @__PURE__ */ React__default.default.createElement(components.View, { className: "mr-auto max-w-[70%] rounded-2xl border border-slate-200 bg-white px-3 py-2 text-xs text-slate-500" }, /* @__PURE__ */ React__default.default.createElement(components.Text, null, "AI \u6B63\u5728\u601D\u8003...")))
85
+ ), /* @__PURE__ */ React__default.default.createElement(components.View, { className: "mt-3 rounded-xl border border-slate-100 bg-white p-3" }, /* @__PURE__ */ React__default.default.createElement(
86
+ components.Textarea,
87
+ {
88
+ value: input,
89
+ onInput: (event) => setInput(event.detail.value),
90
+ placeholder,
91
+ className: "min-h-[88px] w-full rounded-lg border border-slate-200 px-3 py-2 text-xs"
92
+ }
93
+ ), /* @__PURE__ */ React__default.default.createElement(components.View, { className: "mt-2 flex items-center justify-between" }, /* @__PURE__ */ React__default.default.createElement(components.Text, { className: "text-[10px] text-slate-400" }, helperText), /* @__PURE__ */ React__default.default.createElement(
94
+ components.Button,
95
+ {
96
+ size: "mini",
97
+ className: "bg-slate-900 text-white",
98
+ disabled: !input.trim() || isLoading,
99
+ onClick: handleSend
100
+ },
101
+ isLoading ? "\u53D1\u9001\u4E2D..." : "\u53D1\u9001"
102
+ )), error && /* @__PURE__ */ React__default.default.createElement(components.View, { className: "mt-2 rounded-md border border-rose-200 bg-rose-50 px-2 py-1 text-[10px] text-rose-600" }, /* @__PURE__ */ React__default.default.createElement(components.Text, null, error.message || "\u5BF9\u8BDD\u51FA\u9519\uFF0C\u8BF7\u91CD\u8BD5\u3002")))));
103
+ };
104
+
105
+ exports.AiChatDialog = AiChatDialog;
106
+ //# sourceMappingURL=index.js.map
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/ai/llm/ui/miniapp/components/AiChatDialog.tsx"],"names":["useAiChat","useState","useMemo","useEffect","View","React","Text","ScrollView","Textarea","Button"],"mappings":"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","file":"index.js","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { Button, ScrollView, Text, Textarea, View } from '@tarojs/components';\nimport { useAiChat } from '../../../hooks/useAiChat';\nimport type { AiChatDialogProps } from '../../types';\n\nexport const AiChatDialog: React.FC<AiChatDialogProps> = ({\n open,\n onOpenChange,\n client,\n title = 'AI 对话',\n placeholder = '输入你想咨询的问题...',\n systemPrompt,\n template,\n templateVariables,\n initialMessages,\n requestOptions,\n onResponse,\n onError,\n}) => {\n const { messages, sendMessage, isLoading, error } = useAiChat({\n client,\n systemPrompt,\n template,\n initialMessages,\n });\n const [input, setInput] = useState('');\n\n const helperText = useMemo(() => {\n return template ? '模板已启用,支持 {{input}} 变量。' : '直接输入即可开始对话。';\n }, [template]);\n\n useEffect(() => {\n if (!open) {\n setInput('');\n }\n }, [open]);\n\n const handleSend = async () => {\n const content = input.trim();\n if (!content || isLoading) return;\n setInput('');\n try {\n const response = await sendMessage(content, {\n ...requestOptions,\n template,\n variables: templateVariables,\n });\n onResponse?.(response);\n } catch (err) {\n const nextError = err instanceof Error ? err : new Error(String(err));\n onError?.(nextError);\n }\n };\n\n if (!open) {\n return null;\n }\n\n return (\n <View className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/40 px-4\">\n <View className=\"w-full max-w-[640px] rounded-2xl bg-white p-4 shadow-lg\">\n <View className=\"flex items-center justify-between\">\n <Text className=\"text-base font-semibold text-slate-900\">{title}</Text>\n <Text\n className=\"text-xs text-slate-500\"\n onClick={() => onOpenChange?.(false)}\n >\n 关闭\n </Text>\n </View>\n\n <ScrollView\n scrollY\n className=\"mt-3 max-h-[60vh] rounded-xl border border-slate-100 bg-slate-50/60 p-3\"\n >\n {messages.length === 0 && (\n <View className=\"flex flex-col items-center justify-center py-8 text-xs text-slate-400\">\n <Text>暂无对话内容</Text>\n <Text>输入消息开始体验 AI 对话。</Text>\n </View>\n )}\n <View className=\"flex flex-col gap-3\">\n {messages.map((message, index) => {\n const isUser = message.role === 'user';\n return (\n <View\n key={`${message.role}-${index}`}\n className={`max-w-[85%] rounded-2xl px-3 py-2 text-xs leading-relaxed ${\n isUser\n ? 'ml-auto bg-slate-900 text-white'\n : 'mr-auto border border-slate-200 bg-white text-slate-800'\n }`}\n >\n <Text>{message.content}</Text>\n </View>\n );\n })}\n {isLoading && (\n <View className=\"mr-auto max-w-[70%] rounded-2xl border border-slate-200 bg-white px-3 py-2 text-xs text-slate-500\">\n <Text>AI 正在思考...</Text>\n </View>\n )}\n </View>\n </ScrollView>\n\n <View className=\"mt-3 rounded-xl border border-slate-100 bg-white p-3\">\n <Textarea\n value={input}\n onInput={(event: { detail: { value: string } }) => setInput(event.detail.value)}\n placeholder={placeholder}\n className=\"min-h-[88px] w-full rounded-lg border border-slate-200 px-3 py-2 text-xs\"\n />\n <View className=\"mt-2 flex items-center justify-between\">\n <Text className=\"text-[10px] text-slate-400\">{helperText}</Text>\n <Button\n size=\"mini\"\n className=\"bg-slate-900 text-white\"\n disabled={!input.trim() || isLoading}\n onClick={handleSend}\n >\n {isLoading ? '发送中...' : '发送'}\n </Button>\n </View>\n {error && (\n <View className=\"mt-2 rounded-md border border-rose-200 bg-rose-50 px-2 py-1 text-[10px] text-rose-600\">\n <Text>{error.message || '对话出错,请重试。'}</Text>\n </View>\n )}\n </View>\n </View>\n </View>\n );\n};\n"]}
@@ -0,0 +1,101 @@
1
+ import { useAiChat } from '../../../../chunk-V7EVKD5G.mjs';
2
+ import '../../../../chunk-WMJKH4XE.mjs';
3
+ import React, { useState, useMemo, useEffect } from 'react';
4
+ import { View, Text, ScrollView, Textarea, Button } from '@tarojs/components';
5
+
6
+ var AiChatDialog = ({
7
+ open,
8
+ onOpenChange,
9
+ client,
10
+ title = "AI \u5BF9\u8BDD",
11
+ placeholder = "\u8F93\u5165\u4F60\u60F3\u54A8\u8BE2\u7684\u95EE\u9898...",
12
+ systemPrompt,
13
+ template,
14
+ templateVariables,
15
+ initialMessages,
16
+ requestOptions,
17
+ onResponse,
18
+ onError
19
+ }) => {
20
+ const { messages, sendMessage, isLoading, error } = useAiChat({
21
+ client,
22
+ systemPrompt,
23
+ template,
24
+ initialMessages
25
+ });
26
+ const [input, setInput] = useState("");
27
+ const helperText = useMemo(() => {
28
+ return template ? "\u6A21\u677F\u5DF2\u542F\u7528\uFF0C\u652F\u6301 {{input}} \u53D8\u91CF\u3002" : "\u76F4\u63A5\u8F93\u5165\u5373\u53EF\u5F00\u59CB\u5BF9\u8BDD\u3002";
29
+ }, [template]);
30
+ useEffect(() => {
31
+ if (!open) {
32
+ setInput("");
33
+ }
34
+ }, [open]);
35
+ const handleSend = async () => {
36
+ const content = input.trim();
37
+ if (!content || isLoading) return;
38
+ setInput("");
39
+ try {
40
+ const response = await sendMessage(content, {
41
+ ...requestOptions,
42
+ template,
43
+ variables: templateVariables
44
+ });
45
+ onResponse?.(response);
46
+ } catch (err) {
47
+ const nextError = err instanceof Error ? err : new Error(String(err));
48
+ onError?.(nextError);
49
+ }
50
+ };
51
+ if (!open) {
52
+ return null;
53
+ }
54
+ return /* @__PURE__ */ React.createElement(View, { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/40 px-4" }, /* @__PURE__ */ React.createElement(View, { className: "w-full max-w-[640px] rounded-2xl bg-white p-4 shadow-lg" }, /* @__PURE__ */ React.createElement(View, { className: "flex items-center justify-between" }, /* @__PURE__ */ React.createElement(Text, { className: "text-base font-semibold text-slate-900" }, title), /* @__PURE__ */ React.createElement(
55
+ Text,
56
+ {
57
+ className: "text-xs text-slate-500",
58
+ onClick: () => onOpenChange?.(false)
59
+ },
60
+ "\u5173\u95ED"
61
+ )), /* @__PURE__ */ React.createElement(
62
+ ScrollView,
63
+ {
64
+ scrollY: true,
65
+ className: "mt-3 max-h-[60vh] rounded-xl border border-slate-100 bg-slate-50/60 p-3"
66
+ },
67
+ messages.length === 0 && /* @__PURE__ */ React.createElement(View, { className: "flex flex-col items-center justify-center py-8 text-xs text-slate-400" }, /* @__PURE__ */ React.createElement(Text, null, "\u6682\u65E0\u5BF9\u8BDD\u5185\u5BB9"), /* @__PURE__ */ React.createElement(Text, null, "\u8F93\u5165\u6D88\u606F\u5F00\u59CB\u4F53\u9A8C AI \u5BF9\u8BDD\u3002")),
68
+ /* @__PURE__ */ React.createElement(View, { className: "flex flex-col gap-3" }, messages.map((message, index) => {
69
+ const isUser = message.role === "user";
70
+ return /* @__PURE__ */ React.createElement(
71
+ View,
72
+ {
73
+ key: `${message.role}-${index}`,
74
+ className: `max-w-[85%] rounded-2xl px-3 py-2 text-xs leading-relaxed ${isUser ? "ml-auto bg-slate-900 text-white" : "mr-auto border border-slate-200 bg-white text-slate-800"}`
75
+ },
76
+ /* @__PURE__ */ React.createElement(Text, null, message.content)
77
+ );
78
+ }), isLoading && /* @__PURE__ */ React.createElement(View, { className: "mr-auto max-w-[70%] rounded-2xl border border-slate-200 bg-white px-3 py-2 text-xs text-slate-500" }, /* @__PURE__ */ React.createElement(Text, null, "AI \u6B63\u5728\u601D\u8003...")))
79
+ ), /* @__PURE__ */ React.createElement(View, { className: "mt-3 rounded-xl border border-slate-100 bg-white p-3" }, /* @__PURE__ */ React.createElement(
80
+ Textarea,
81
+ {
82
+ value: input,
83
+ onInput: (event) => setInput(event.detail.value),
84
+ placeholder,
85
+ className: "min-h-[88px] w-full rounded-lg border border-slate-200 px-3 py-2 text-xs"
86
+ }
87
+ ), /* @__PURE__ */ React.createElement(View, { className: "mt-2 flex items-center justify-between" }, /* @__PURE__ */ React.createElement(Text, { className: "text-[10px] text-slate-400" }, helperText), /* @__PURE__ */ React.createElement(
88
+ Button,
89
+ {
90
+ size: "mini",
91
+ className: "bg-slate-900 text-white",
92
+ disabled: !input.trim() || isLoading,
93
+ onClick: handleSend
94
+ },
95
+ isLoading ? "\u53D1\u9001\u4E2D..." : "\u53D1\u9001"
96
+ )), error && /* @__PURE__ */ React.createElement(View, { className: "mt-2 rounded-md border border-rose-200 bg-rose-50 px-2 py-1 text-[10px] text-rose-600" }, /* @__PURE__ */ React.createElement(Text, null, error.message || "\u5BF9\u8BDD\u51FA\u9519\uFF0C\u8BF7\u91CD\u8BD5\u3002")))));
97
+ };
98
+
99
+ export { AiChatDialog };
100
+ //# sourceMappingURL=index.mjs.map
101
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/ai/llm/ui/miniapp/components/AiChatDialog.tsx"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { Button, ScrollView, Text, Textarea, View } from '@tarojs/components';\nimport { useAiChat } from '../../../hooks/useAiChat';\nimport type { AiChatDialogProps } from '../../types';\n\nexport const AiChatDialog: React.FC<AiChatDialogProps> = ({\n open,\n onOpenChange,\n client,\n title = 'AI 对话',\n placeholder = '输入你想咨询的问题...',\n systemPrompt,\n template,\n templateVariables,\n initialMessages,\n requestOptions,\n onResponse,\n onError,\n}) => {\n const { messages, sendMessage, isLoading, error } = useAiChat({\n client,\n systemPrompt,\n template,\n initialMessages,\n });\n const [input, setInput] = useState('');\n\n const helperText = useMemo(() => {\n return template ? '模板已启用,支持 {{input}} 变量。' : '直接输入即可开始对话。';\n }, [template]);\n\n useEffect(() => {\n if (!open) {\n setInput('');\n }\n }, [open]);\n\n const handleSend = async () => {\n const content = input.trim();\n if (!content || isLoading) return;\n setInput('');\n try {\n const response = await sendMessage(content, {\n ...requestOptions,\n template,\n variables: templateVariables,\n });\n onResponse?.(response);\n } catch (err) {\n const nextError = err instanceof Error ? err : new Error(String(err));\n onError?.(nextError);\n }\n };\n\n if (!open) {\n return null;\n }\n\n return (\n <View className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/40 px-4\">\n <View className=\"w-full max-w-[640px] rounded-2xl bg-white p-4 shadow-lg\">\n <View className=\"flex items-center justify-between\">\n <Text className=\"text-base font-semibold text-slate-900\">{title}</Text>\n <Text\n className=\"text-xs text-slate-500\"\n onClick={() => onOpenChange?.(false)}\n >\n 关闭\n </Text>\n </View>\n\n <ScrollView\n scrollY\n className=\"mt-3 max-h-[60vh] rounded-xl border border-slate-100 bg-slate-50/60 p-3\"\n >\n {messages.length === 0 && (\n <View className=\"flex flex-col items-center justify-center py-8 text-xs text-slate-400\">\n <Text>暂无对话内容</Text>\n <Text>输入消息开始体验 AI 对话。</Text>\n </View>\n )}\n <View className=\"flex flex-col gap-3\">\n {messages.map((message, index) => {\n const isUser = message.role === 'user';\n return (\n <View\n key={`${message.role}-${index}`}\n className={`max-w-[85%] rounded-2xl px-3 py-2 text-xs leading-relaxed ${\n isUser\n ? 'ml-auto bg-slate-900 text-white'\n : 'mr-auto border border-slate-200 bg-white text-slate-800'\n }`}\n >\n <Text>{message.content}</Text>\n </View>\n );\n })}\n {isLoading && (\n <View className=\"mr-auto max-w-[70%] rounded-2xl border border-slate-200 bg-white px-3 py-2 text-xs text-slate-500\">\n <Text>AI 正在思考...</Text>\n </View>\n )}\n </View>\n </ScrollView>\n\n <View className=\"mt-3 rounded-xl border border-slate-100 bg-white p-3\">\n <Textarea\n value={input}\n onInput={(event: { detail: { value: string } }) => setInput(event.detail.value)}\n placeholder={placeholder}\n className=\"min-h-[88px] w-full rounded-lg border border-slate-200 px-3 py-2 text-xs\"\n />\n <View className=\"mt-2 flex items-center justify-between\">\n <Text className=\"text-[10px] text-slate-400\">{helperText}</Text>\n <Button\n size=\"mini\"\n className=\"bg-slate-900 text-white\"\n disabled={!input.trim() || isLoading}\n onClick={handleSend}\n >\n {isLoading ? '发送中...' : '发送'}\n </Button>\n </View>\n {error && (\n <View className=\"mt-2 rounded-md border border-rose-200 bg-rose-50 px-2 py-1 text-[10px] text-rose-600\">\n <Text>{error.message || '对话出错,请重试。'}</Text>\n </View>\n )}\n </View>\n </View>\n </View>\n );\n};\n"]}
@@ -0,0 +1,9 @@
1
+ import React__default from 'react';
2
+ import { A as AiChatDialogProps } from '../../../../types-B8rGXc4e.mjs';
3
+ export { a as AiChatDialogBaseProps, c as AiConfigPageProps, b as AiUiConfig } from '../../../../types-B8rGXc4e.mjs';
4
+ import '../../../../types-B-hOccQw.mjs';
5
+ import '../../../../types-CbTsi9CZ.mjs';
6
+
7
+ declare const AiChatDialog: React__default.FC<AiChatDialogProps>;
8
+
9
+ export { AiChatDialog, AiChatDialogProps };
@@ -0,0 +1,9 @@
1
+ import React__default from 'react';
2
+ import { A as AiChatDialogProps } from '../../../../types-Cg89HGz2.js';
3
+ export { a as AiChatDialogBaseProps, c as AiConfigPageProps, b as AiUiConfig } from '../../../../types-Cg89HGz2.js';
4
+ import '../../../../types-Dy6x2gJW.js';
5
+ import '../../../../types-CbTsi9CZ.js';
6
+
7
+ declare const AiChatDialog: React__default.FC<AiChatDialogProps>;
8
+
9
+ export { AiChatDialog, AiChatDialogProps };