@scenemesh/entity-engine-aimodule 1.0.0 → 1.0.1

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 (311) hide show
  1. package/dist/components/ChatDialog/ChatDialog.d.ts +17 -0
  2. package/dist/components/ChatDialog/ChatDialog.d.ts.map +1 -0
  3. package/dist/components/ChatDialog/ChatDialog.js +346 -0
  4. package/dist/components/ChatDialog/ChatDialog.js.map +1 -0
  5. package/dist/components/DynamicUI/DynamicToolRenderer.d.ts +9 -0
  6. package/dist/components/DynamicUI/DynamicToolRenderer.d.ts.map +1 -0
  7. package/dist/components/DynamicUI/DynamicToolRenderer.js +114 -0
  8. package/dist/components/DynamicUI/DynamicToolRenderer.js.map +1 -0
  9. package/dist/components/DynamicUI/EntityEngineDynamicComponents.d.ts +75 -0
  10. package/dist/components/DynamicUI/EntityEngineDynamicComponents.d.ts.map +1 -0
  11. package/dist/components/DynamicUI/EntityEngineDynamicComponents.js +123 -0
  12. package/dist/components/DynamicUI/EntityEngineDynamicComponents.js.map +1 -0
  13. package/dist/components/DynamicUI/index.d.ts +12 -0
  14. package/dist/components/DynamicUI/index.d.ts.map +1 -0
  15. package/dist/components/DynamicUI/index.js +13 -0
  16. package/dist/components/DynamicUI/index.js.map +1 -0
  17. package/dist/components/FileViewer/FileViewer.d.ts +16 -0
  18. package/dist/components/FileViewer/FileViewer.d.ts.map +1 -0
  19. package/dist/components/FileViewer/FileViewer.js +158 -0
  20. package/dist/components/FileViewer/FileViewer.js.map +1 -0
  21. package/dist/components/GenerativeUI/PrebuiltComponents.d.ts +44 -0
  22. package/dist/components/GenerativeUI/PrebuiltComponents.d.ts.map +1 -0
  23. package/dist/components/GenerativeUI/PrebuiltComponents.js +77 -0
  24. package/dist/components/GenerativeUI/PrebuiltComponents.js.map +1 -0
  25. package/dist/components/MessageBubble/MessageBubble.d.ts +29 -0
  26. package/dist/components/MessageBubble/MessageBubble.d.ts.map +1 -0
  27. package/dist/components/MessageBubble/MessageBubble.js +222 -0
  28. package/dist/components/MessageBubble/MessageBubble.js.map +1 -0
  29. package/dist/components/ReasoningComponents/ReasoningDisplay.d.ts +26 -0
  30. package/dist/components/ReasoningComponents/ReasoningDisplay.d.ts.map +1 -0
  31. package/dist/components/ReasoningComponents/ReasoningDisplay.js +44 -0
  32. package/dist/components/ReasoningComponents/ReasoningDisplay.js.map +1 -0
  33. package/dist/components/index.d.ts +10 -0
  34. package/dist/components/index.d.ts.map +1 -0
  35. package/dist/components/index.js +10 -0
  36. package/dist/components/index.js.map +1 -0
  37. package/dist/core/ai-core-manager.d.ts +221 -0
  38. package/dist/core/ai-core-manager.d.ts.map +1 -0
  39. package/dist/core/ai-core-manager.js +536 -0
  40. package/dist/core/ai-core-manager.js.map +1 -0
  41. package/dist/core/ai-core.d.ts +380 -0
  42. package/dist/core/ai-core.d.ts.map +1 -0
  43. package/dist/core/ai-core.js +297 -0
  44. package/dist/core/ai-core.js.map +1 -0
  45. package/dist/core/ai-embeddings.d.ts +204 -0
  46. package/dist/core/ai-embeddings.d.ts.map +1 -0
  47. package/dist/core/ai-embeddings.js +380 -0
  48. package/dist/core/ai-embeddings.js.map +1 -0
  49. package/dist/core/ai-provider.d.ts +265 -0
  50. package/dist/core/ai-provider.d.ts.map +1 -0
  51. package/dist/core/ai-provider.js +707 -0
  52. package/dist/core/ai-provider.js.map +1 -0
  53. package/dist/core/ai-settings.d.ts +289 -0
  54. package/dist/core/ai-settings.d.ts.map +1 -0
  55. package/dist/core/ai-settings.js +585 -0
  56. package/dist/core/ai-settings.js.map +1 -0
  57. package/dist/core/ai-structured.d.ts +198 -0
  58. package/dist/core/ai-structured.d.ts.map +1 -0
  59. package/dist/core/ai-structured.js +460 -0
  60. package/dist/core/ai-structured.js.map +1 -0
  61. package/dist/core/ai-tools.d.ts +378 -0
  62. package/dist/core/ai-tools.d.ts.map +1 -0
  63. package/dist/core/ai-tools.js +637 -0
  64. package/dist/core/ai-tools.js.map +1 -0
  65. package/dist/core/index.d.ts +47 -0
  66. package/dist/core/index.d.ts.map +1 -0
  67. package/dist/core/index.js +75 -0
  68. package/dist/core/index.js.map +1 -0
  69. package/dist/core/system-prompt.d.ts +6 -0
  70. package/dist/core/system-prompt.d.ts.map +1 -0
  71. package/dist/core/system-prompt.js +305 -0
  72. package/dist/core/system-prompt.js.map +1 -0
  73. package/dist/core-index.d.ts +29 -1648
  74. package/dist/core-index.d.ts.map +1 -0
  75. package/dist/core-index.js +63 -99
  76. package/dist/core-index.js.map +1 -1
  77. package/dist/entity-module/ai.module.d.ts +48 -0
  78. package/dist/entity-module/ai.module.d.ts.map +1 -0
  79. package/dist/entity-module/ai.module.js +126 -0
  80. package/dist/entity-module/ai.module.js.map +1 -0
  81. package/dist/entity-module/index.d.ts +9 -0
  82. package/dist/entity-module/index.d.ts.map +1 -0
  83. package/dist/entity-module/index.js +9 -0
  84. package/dist/entity-module/index.js.map +1 -0
  85. package/dist/entity-module/models/ai-model.d.ts +3 -0
  86. package/dist/entity-module/models/ai-model.d.ts.map +1 -0
  87. package/dist/entity-module/models/ai-model.js +44 -0
  88. package/dist/entity-module/models/ai-model.js.map +1 -0
  89. package/dist/entity-module/models/index.d.ts +3 -0
  90. package/dist/entity-module/models/index.d.ts.map +1 -0
  91. package/dist/entity-module/models/index.js +6 -0
  92. package/dist/entity-module/models/index.js.map +1 -0
  93. package/dist/entity-module/module.json +8 -0
  94. package/dist/entity-module/renderers/ai-form-renderer.d.ts +3 -0
  95. package/dist/entity-module/renderers/ai-form-renderer.d.ts.map +1 -0
  96. package/dist/entity-module/renderers/ai-form-renderer.js +201 -0
  97. package/dist/entity-module/renderers/ai-form-renderer.js.map +1 -0
  98. package/dist/entity-module/renderers/ai-renderer.d.ts +3 -0
  99. package/dist/entity-module/renderers/ai-renderer.d.ts.map +1 -0
  100. package/dist/entity-module/renderers/ai-renderer.js +99 -0
  101. package/dist/entity-module/renderers/ai-renderer.js.map +1 -0
  102. package/dist/entity-module/renderers/index.d.ts +3 -0
  103. package/dist/entity-module/renderers/index.d.ts.map +1 -0
  104. package/dist/entity-module/renderers/index.js +3 -0
  105. package/dist/entity-module/renderers/index.js.map +1 -0
  106. package/dist/entity-module/servlets/ai-servlet.d.ts +15 -0
  107. package/dist/entity-module/servlets/ai-servlet.d.ts.map +1 -0
  108. package/dist/entity-module/servlets/ai-servlet.js +377 -0
  109. package/dist/entity-module/servlets/ai-servlet.js.map +1 -0
  110. package/dist/entity-module/servlets/index.d.ts +3 -0
  111. package/dist/entity-module/servlets/index.d.ts.map +1 -0
  112. package/dist/entity-module/servlets/index.js +6 -0
  113. package/dist/entity-module/servlets/index.js.map +1 -0
  114. package/dist/entity-module/views/ai-view.d.ts +3 -0
  115. package/dist/entity-module/views/ai-view.d.ts.map +1 -0
  116. package/dist/entity-module/views/ai-view.js +33 -0
  117. package/dist/entity-module/views/ai-view.js.map +1 -0
  118. package/dist/entity-module/views/index.d.ts +3 -0
  119. package/dist/entity-module/views/index.d.ts.map +1 -0
  120. package/dist/entity-module/views/index.js +6 -0
  121. package/dist/entity-module/views/index.js.map +1 -0
  122. package/dist/hooks/index.d.ts +11 -0
  123. package/dist/hooks/index.d.ts.map +1 -0
  124. package/dist/hooks/index.js +10 -0
  125. package/dist/hooks/index.js.map +1 -0
  126. package/dist/hooks/useChat.d.ts +13 -0
  127. package/dist/hooks/useChat.d.ts.map +1 -0
  128. package/dist/hooks/useChat.js +13 -0
  129. package/dist/hooks/useChat.js.map +1 -0
  130. package/dist/hooks/useCompletion.d.ts +17 -0
  131. package/dist/hooks/useCompletion.d.ts.map +1 -0
  132. package/dist/hooks/useCompletion.js +17 -0
  133. package/dist/hooks/useCompletion.js.map +1 -0
  134. package/dist/hooks/useObject.d.ts +16 -0
  135. package/dist/hooks/useObject.d.ts.map +1 -0
  136. package/dist/hooks/useObject.js +17 -0
  137. package/dist/hooks/useObject.js.map +1 -0
  138. package/dist/index.d.ts +42 -2876
  139. package/dist/index.d.ts.map +1 -0
  140. package/dist/index.js +85 -1168
  141. package/dist/index.js.map +1 -1
  142. package/dist/tools/dynamic-tools/entity-query-tool.d.ts +15 -0
  143. package/dist/tools/dynamic-tools/entity-query-tool.d.ts.map +1 -0
  144. package/dist/tools/dynamic-tools/entity-query-tool.js +178 -0
  145. package/dist/tools/dynamic-tools/entity-query-tool.js.map +1 -0
  146. package/dist/tools/dynamic-tools/index.d.ts +8 -0
  147. package/dist/tools/dynamic-tools/index.d.ts.map +1 -0
  148. package/dist/tools/dynamic-tools/index.js +8 -0
  149. package/dist/tools/dynamic-tools/index.js.map +1 -0
  150. package/dist/tools/frontend-tools/index.d.ts +7 -0
  151. package/dist/tools/frontend-tools/index.d.ts.map +1 -0
  152. package/dist/tools/frontend-tools/index.js +7 -0
  153. package/dist/tools/frontend-tools/index.js.map +1 -0
  154. package/dist/tools/frontend-tools/record-tools.d.ts +48 -0
  155. package/dist/tools/frontend-tools/record-tools.d.ts.map +1 -0
  156. package/dist/tools/frontend-tools/record-tools.js +97 -0
  157. package/dist/tools/frontend-tools/record-tools.js.map +1 -0
  158. package/dist/tools/index.d.ts +217 -0
  159. package/dist/tools/index.d.ts.map +1 -0
  160. package/dist/tools/index.js +52 -0
  161. package/dist/tools/index.js.map +1 -0
  162. package/dist/tools/static-tools/index.d.ts +9 -0
  163. package/dist/tools/static-tools/index.d.ts.map +1 -0
  164. package/dist/tools/static-tools/index.js +9 -0
  165. package/dist/tools/static-tools/index.js.map +1 -0
  166. package/dist/tools/static-tools/location-tool.d.ts +38 -0
  167. package/dist/tools/static-tools/location-tool.d.ts.map +1 -0
  168. package/dist/tools/static-tools/location-tool.js +97 -0
  169. package/dist/tools/static-tools/location-tool.js.map +1 -0
  170. package/dist/tools/static-tools/weather-tool.d.ts +19 -0
  171. package/dist/tools/static-tools/weather-tool.d.ts.map +1 -0
  172. package/dist/tools/static-tools/weather-tool.js +27 -0
  173. package/dist/tools/static-tools/weather-tool.js.map +1 -0
  174. package/dist/types/core-types.d.ts +183 -0
  175. package/dist/types/core-types.d.ts.map +1 -0
  176. package/dist/types/core-types.js +7 -0
  177. package/dist/types/core-types.js.map +1 -0
  178. package/dist/types/index.d.ts +50 -0
  179. package/dist/types/index.d.ts.map +1 -0
  180. package/dist/types/index.js +31 -0
  181. package/dist/types/index.js.map +1 -0
  182. package/dist/types/ui-types.d.ts +434 -0
  183. package/dist/types/ui-types.d.ts.map +1 -0
  184. package/dist/types/ui-types.js +8 -0
  185. package/dist/types/ui-types.js.map +1 -0
  186. package/dist/ui/index.d.ts +30 -0
  187. package/dist/ui/index.d.ts.map +1 -0
  188. package/dist/ui/index.js +67 -0
  189. package/dist/ui/index.js.map +1 -0
  190. package/dist/ui-index.d.ts +12 -607
  191. package/dist/ui-index.d.ts.map +1 -0
  192. package/dist/ui-index.js +106 -2350
  193. package/dist/ui-index.js.map +1 -1
  194. package/dist/utils/index.d.ts +122 -0
  195. package/dist/utils/index.d.ts.map +1 -0
  196. package/dist/utils/index.js +336 -0
  197. package/dist/utils/index.js.map +1 -0
  198. package/dist/utils/persistence.d.ts +99 -0
  199. package/dist/utils/persistence.d.ts.map +1 -0
  200. package/dist/utils/persistence.js +286 -0
  201. package/dist/utils/persistence.js.map +1 -0
  202. package/dist/utils/streaming.d.ts +144 -0
  203. package/dist/utils/streaming.d.ts.map +1 -0
  204. package/dist/utils/streaming.js +359 -0
  205. package/dist/utils/streaming.js.map +1 -0
  206. package/dist/utils/theme.d.ts +162 -0
  207. package/dist/utils/theme.d.ts.map +1 -0
  208. package/dist/utils/theme.js +211 -0
  209. package/dist/utils/theme.js.map +1 -0
  210. package/dist/utils/warnings.d.ts +77 -0
  211. package/dist/utils/warnings.d.ts.map +1 -0
  212. package/dist/utils/warnings.js +228 -0
  213. package/dist/utils/warnings.js.map +1 -0
  214. package/package.json +3 -2
  215. package/dist/ai-core-LBGYFGOK.mjs +0 -17
  216. package/dist/ai-core-LBGYFGOK.mjs.map +0 -1
  217. package/dist/ai-core-UGJWSCQN.js +0 -17
  218. package/dist/ai-core-UGJWSCQN.js.map +0 -1
  219. package/dist/ai-core-manager-B3Z34RHA.mjs +0 -9
  220. package/dist/ai-core-manager-B3Z34RHA.mjs.map +0 -1
  221. package/dist/ai-core-manager-W7SSDCG5.js +0 -9
  222. package/dist/ai-core-manager-W7SSDCG5.js.map +0 -1
  223. package/dist/ai-embeddings-5ED5LDXX.mjs +0 -17
  224. package/dist/ai-embeddings-5ED5LDXX.mjs.map +0 -1
  225. package/dist/ai-embeddings-WCXZMMTZ.js +0 -17
  226. package/dist/ai-embeddings-WCXZMMTZ.js.map +0 -1
  227. package/dist/ai-form-renderer-24IWNMX5.js +0 -233
  228. package/dist/ai-form-renderer-24IWNMX5.js.map +0 -1
  229. package/dist/ai-form-renderer-BORQABF2.mjs +0 -233
  230. package/dist/ai-form-renderer-BORQABF2.mjs.map +0 -1
  231. package/dist/ai-provider-3PSCVEEN.mjs +0 -17
  232. package/dist/ai-provider-3PSCVEEN.mjs.map +0 -1
  233. package/dist/ai-provider-WMPMVZFL.js +0 -17
  234. package/dist/ai-provider-WMPMVZFL.js.map +0 -1
  235. package/dist/ai-renderer-7WGGWH5D.mjs +0 -134
  236. package/dist/ai-renderer-7WGGWH5D.mjs.map +0 -1
  237. package/dist/ai-renderer-OILYWAJV.js +0 -134
  238. package/dist/ai-renderer-OILYWAJV.js.map +0 -1
  239. package/dist/ai-settings-DGCFPK3U.js +0 -15
  240. package/dist/ai-settings-DGCFPK3U.js.map +0 -1
  241. package/dist/ai-settings-DTXEAB64.mjs +0 -15
  242. package/dist/ai-settings-DTXEAB64.mjs.map +0 -1
  243. package/dist/ai-structured-EGZ26ZS4.mjs +0 -13
  244. package/dist/ai-structured-EGZ26ZS4.mjs.map +0 -1
  245. package/dist/ai-structured-N2FZLO4A.js +0 -13
  246. package/dist/ai-structured-N2FZLO4A.js.map +0 -1
  247. package/dist/ai-tools-B3R77HZ3.js +0 -19
  248. package/dist/ai-tools-B3R77HZ3.js.map +0 -1
  249. package/dist/ai-tools-JAPVYQGE.mjs +0 -19
  250. package/dist/ai-tools-JAPVYQGE.mjs.map +0 -1
  251. package/dist/ai.module-GAHVCBTP.js +0 -7
  252. package/dist/ai.module-GAHVCBTP.js.map +0 -1
  253. package/dist/ai.module-TTPMTPB3.mjs +0 -7
  254. package/dist/ai.module-TTPMTPB3.mjs.map +0 -1
  255. package/dist/chunk-25C2NRSD.mjs +0 -611
  256. package/dist/chunk-25C2NRSD.mjs.map +0 -1
  257. package/dist/chunk-4JQ7UOXH.js +0 -427
  258. package/dist/chunk-4JQ7UOXH.js.map +0 -1
  259. package/dist/chunk-6IUKES2L.js +0 -290
  260. package/dist/chunk-6IUKES2L.js.map +0 -1
  261. package/dist/chunk-COWPK7XN.mjs +0 -834
  262. package/dist/chunk-COWPK7XN.mjs.map +0 -1
  263. package/dist/chunk-CTEXPMVZ.js +0 -512
  264. package/dist/chunk-CTEXPMVZ.js.map +0 -1
  265. package/dist/chunk-DXQTHA75.js +0 -573
  266. package/dist/chunk-DXQTHA75.js.map +0 -1
  267. package/dist/chunk-DZFQ6I23.js +0 -72
  268. package/dist/chunk-DZFQ6I23.js.map +0 -1
  269. package/dist/chunk-J323UTPE.mjs +0 -650
  270. package/dist/chunk-J323UTPE.mjs.map +0 -1
  271. package/dist/chunk-LHNNALVF.js +0 -834
  272. package/dist/chunk-LHNNALVF.js.map +0 -1
  273. package/dist/chunk-O7SZSMXV.js +0 -1621
  274. package/dist/chunk-O7SZSMXV.js.map +0 -1
  275. package/dist/chunk-OTNOFOVW.js +0 -650
  276. package/dist/chunk-OTNOFOVW.js.map +0 -1
  277. package/dist/chunk-PRIGZEI4.mjs +0 -72
  278. package/dist/chunk-PRIGZEI4.mjs.map +0 -1
  279. package/dist/chunk-SBSZ3IPB.mjs +0 -573
  280. package/dist/chunk-SBSZ3IPB.mjs.map +0 -1
  281. package/dist/chunk-SXPA6SSD.mjs +0 -1621
  282. package/dist/chunk-SXPA6SSD.mjs.map +0 -1
  283. package/dist/chunk-T5A4KAVS.mjs +0 -512
  284. package/dist/chunk-T5A4KAVS.mjs.map +0 -1
  285. package/dist/chunk-TDRKKUNT.mjs +0 -357
  286. package/dist/chunk-TDRKKUNT.mjs.map +0 -1
  287. package/dist/chunk-TJFNODPE.js +0 -357
  288. package/dist/chunk-TJFNODPE.js.map +0 -1
  289. package/dist/chunk-V2SSI3SL.mjs +0 -427
  290. package/dist/chunk-V2SSI3SL.mjs.map +0 -1
  291. package/dist/chunk-X42L6MTY.mjs +0 -290
  292. package/dist/chunk-X42L6MTY.mjs.map +0 -1
  293. package/dist/chunk-YSVMY77H.js +0 -611
  294. package/dist/chunk-YSVMY77H.js.map +0 -1
  295. package/dist/core-ANYRS6EF.mjs +0 -73
  296. package/dist/core-ANYRS6EF.mjs.map +0 -1
  297. package/dist/core-K5K34DCS.js +0 -73
  298. package/dist/core-K5K34DCS.js.map +0 -1
  299. package/dist/core-index.d.mts +0 -1668
  300. package/dist/core-index.mjs +0 -101
  301. package/dist/core-index.mjs.map +0 -1
  302. package/dist/index.d.mts +0 -2911
  303. package/dist/index.mjs +0 -1177
  304. package/dist/index.mjs.map +0 -1
  305. package/dist/tools-352X7A6X.mjs +0 -366
  306. package/dist/tools-352X7A6X.mjs.map +0 -1
  307. package/dist/tools-YLEX6GNO.js +0 -366
  308. package/dist/tools-YLEX6GNO.js.map +0 -1
  309. package/dist/ui-index.d.mts +0 -627
  310. package/dist/ui-index.mjs +0 -2353
  311. package/dist/ui-index.mjs.map +0 -1
@@ -1,427 +0,0 @@
1
- // src/core/ai-structured.ts
2
- import { EventEmitter } from "events";
3
- import {
4
- streamObject,
5
- generateObject
6
- } from "ai";
7
- var AIStructuredDataIntegration = class extends EventEmitter {
8
- constructor() {
9
- super();
10
- this.initialized = false;
11
- this.requestCounter = 0;
12
- }
13
- /**
14
- * 初始化
15
- */
16
- async initialize() {
17
- if (this.initialized) {
18
- return;
19
- }
20
- try {
21
- this.emit("ai_structured:initializing");
22
- this.initialized = true;
23
- this.emit("ai_structured:initialized");
24
- } catch (error) {
25
- this.emit("ai_structured:initialization_failed", { error });
26
- throw error;
27
- }
28
- }
29
- /**
30
- * 生成请求ID
31
- */
32
- generateRequestId() {
33
- return `ai-structured-${Date.now()}-${++this.requestCounter}`;
34
- }
35
- // ================================
36
- // generateObject methods
37
- /**
38
- * Generate structured object - supports all output strategies
39
- */
40
- async generateObject(options) {
41
- if (!this.initialized) {
42
- throw new Error("AIStructuredDataIntegration not initialized. Call initialize() first.");
43
- }
44
- const requestId = this.generateRequestId();
45
- const startTime = Date.now();
46
- try {
47
- this.emit("ai_structured:generate_object_started", {
48
- requestId,
49
- model: typeof options.model === "string" ? options.model : "unknown",
50
- output: options.output || "object",
51
- hasSchema: !!options.schema,
52
- hasEnum: !!options.enum,
53
- mode: options.mode || "auto"
54
- });
55
- const generateOptions = {
56
- model: options.model,
57
- system: options.system,
58
- prompt: options.prompt,
59
- messages: options.messages,
60
- maxOutputTokens: options.maxOutputTokens,
61
- temperature: options.temperature,
62
- topP: options.topP,
63
- topK: options.topK,
64
- presencePenalty: options.presencePenalty,
65
- frequencyPenalty: options.frequencyPenalty,
66
- seed: options.seed,
67
- maxRetries: options.maxRetries,
68
- abortSignal: options.abortSignal,
69
- headers: options.headers,
70
- experimental_repairText: options.experimental_repairText,
71
- experimental_download: options.experimental_download,
72
- experimental_telemetry: options.experimental_telemetry,
73
- providerOptions: options.providerOptions
74
- };
75
- if (options.output) {
76
- generateOptions.output = options.output;
77
- }
78
- if (options.mode) {
79
- generateOptions.mode = options.mode;
80
- }
81
- if (options.schema) {
82
- generateOptions.schema = options.schema;
83
- }
84
- if (options.schemaName) {
85
- generateOptions.schemaName = options.schemaName;
86
- }
87
- if (options.schemaDescription) {
88
- generateOptions.schemaDescription = options.schemaDescription;
89
- }
90
- if (options.output === "enum" && options.enum) {
91
- generateOptions.enum = options.enum;
92
- }
93
- const result = await generateObject(generateOptions);
94
- this.emit("ai_structured:generate_object_completed", {
95
- requestId,
96
- latency: Date.now() - startTime,
97
- finishReason: result.finishReason,
98
- usage: result.usage,
99
- output: options.output || "object",
100
- hasObject: !!result.object,
101
- hasReasoning: !!result.reasoning,
102
- warnings: result.warnings?.length || 0
103
- });
104
- const enhancedResult = {
105
- ...result,
106
- // 确保 toJsonResponse 方法存在
107
- toJsonResponse: (init) => result.toJsonResponse?.(init) || new Response(JSON.stringify(result.object), {
108
- status: 200,
109
- headers: { "Content-Type": "application/json; charset=utf-8" },
110
- ...init
111
- })
112
- };
113
- return enhancedResult;
114
- } catch (error) {
115
- this.emit("ai_structured:generate_object_failed", {
116
- requestId,
117
- error: error.message,
118
- latency: Date.now() - startTime,
119
- errorType: error.constructor.name,
120
- output: options.output || "object"
121
- });
122
- throw error;
123
- }
124
- }
125
- // ================================
126
- // streamObject methods
127
- /**
128
- * Stream structured object generation - supports all output strategies and stream modes
129
- */
130
- streamObject(options) {
131
- if (!this.initialized) {
132
- throw new Error("AIStructuredDataIntegration not initialized. Call initialize() first.");
133
- }
134
- const requestId = this.generateRequestId();
135
- const startTime = Date.now();
136
- this.emit("ai_structured:stream_object_started", {
137
- requestId,
138
- model: typeof options.model === "string" ? options.model : "unknown",
139
- output: options.output || "object",
140
- hasSchema: !!options.schema,
141
- hasEnum: !!options.enum,
142
- mode: options.mode || "auto"
143
- });
144
- const wrappedOptions = {
145
- ...options,
146
- onError: (event) => {
147
- this.emit("ai_structured:stream_object_error", {
148
- requestId,
149
- error: event.error,
150
- latency: Date.now() - startTime
151
- });
152
- if (options.onError) {
153
- options.onError(event);
154
- }
155
- },
156
- onFinish: (result) => {
157
- this.emit("ai_structured:stream_object_finished", {
158
- requestId,
159
- latency: Date.now() - startTime,
160
- usage: result.usage,
161
- hasObject: !!result.object,
162
- hasError: !!result.error,
163
- warnings: result.warnings?.length || 0,
164
- output: options.output || "object"
165
- });
166
- if (options.onFinish) {
167
- options.onFinish(result);
168
- }
169
- }
170
- };
171
- const streamOptions = {
172
- model: options.model,
173
- system: options.system,
174
- prompt: options.prompt,
175
- messages: options.messages,
176
- maxOutputTokens: options.maxOutputTokens,
177
- temperature: options.temperature,
178
- topP: options.topP,
179
- topK: options.topK,
180
- presencePenalty: options.presencePenalty,
181
- frequencyPenalty: options.frequencyPenalty,
182
- seed: options.seed,
183
- maxRetries: options.maxRetries,
184
- abortSignal: options.abortSignal,
185
- headers: options.headers,
186
- experimental_repairText: options.experimental_repairText,
187
- experimental_download: options.experimental_download,
188
- experimental_telemetry: options.experimental_telemetry,
189
- providerOptions: options.providerOptions,
190
- onError: wrappedOptions.onError,
191
- onFinish: wrappedOptions.onFinish
192
- };
193
- if (options.output) {
194
- streamOptions.output = options.output;
195
- }
196
- if (options.mode) {
197
- streamOptions.mode = options.mode;
198
- }
199
- if (options.schema) {
200
- streamOptions.schema = options.schema;
201
- }
202
- if (options.schemaName) {
203
- streamOptions.schemaName = options.schemaName;
204
- }
205
- if (options.schemaDescription) {
206
- streamOptions.schemaDescription = options.schemaDescription;
207
- }
208
- if (options.output === "enum" && options.enum) {
209
- streamOptions.enum = options.enum;
210
- }
211
- const streamResult = streamObject(streamOptions);
212
- return {
213
- // Promise 属性
214
- usage: streamResult.usage,
215
- providerMetadata: streamResult.providerMetadata,
216
- object: streamResult.object,
217
- // 流属性
218
- partialObjectStream: streamResult.partialObjectStream,
219
- elementStream: streamResult.elementStream || streamResult.partialObjectStream,
220
- // array 模式下可用
221
- textStream: streamResult.textStream,
222
- fullStream: streamResult.fullStream,
223
- // 元数据
224
- request: streamResult.request,
225
- response: streamResult.response,
226
- warnings: streamResult.warnings,
227
- // 响应转换方法
228
- pipeTextStreamToResponse: (response, init) => {
229
- if (streamResult.pipeTextStreamToResponse) {
230
- streamResult.pipeTextStreamToResponse(response, init);
231
- } else {
232
- this.pipeStreamToResponse(streamResult.textStream, response, init);
233
- }
234
- },
235
- toTextStreamResponse: (init) => streamResult.toTextStreamResponse?.(init) || new Response(streamResult.textStream, {
236
- headers: { "Content-Type": "text/plain; charset=utf-8" },
237
- ...init
238
- }),
239
- // 补充遗漏的方法
240
- pipeObjectStreamToResponse: (response, init) => {
241
- if (streamResult.pipeObjectStreamToResponse) {
242
- streamResult.pipeObjectStreamToResponse(response, init);
243
- } else {
244
- this.pipeStreamToResponse(streamResult.fullStream, response, init);
245
- }
246
- },
247
- toObjectStreamResponse: (init) => streamResult.toObjectStreamResponse?.(init) || new Response(streamResult.fullStream, {
248
- headers: { "Content-Type": "application/json; charset=utf-8" },
249
- ...init
250
- })
251
- };
252
- }
253
- /**
254
- * 辅助方法:将流导入响应 - 标准实现
255
- */
256
- pipeStreamToResponse(stream, response, options) {
257
- if (!stream || !response) return;
258
- if (typeof response.write === "function") {
259
- if (stream.pipeTo) {
260
- stream.pipeTo(response).catch((error) => {
261
- this.emit("ai_structured:stream_pipe_error", { error });
262
- });
263
- } else if (stream[Symbol.asyncIterator]) {
264
- this.consumeAsyncIterator(stream, response);
265
- }
266
- } else if (response instanceof Response) {
267
- const writer = new WritableStream({
268
- write(chunk) {
269
- }
270
- });
271
- stream.pipeTo?.(writer);
272
- }
273
- }
274
- /**
275
- * 消费异步迭代器并写入响应
276
- */
277
- async consumeAsyncIterator(stream, response) {
278
- try {
279
- for await (const chunk of stream) {
280
- if (response.write) {
281
- response.write(typeof chunk === "string" ? chunk : JSON.stringify(chunk));
282
- }
283
- }
284
- if (response.end) {
285
- response.end();
286
- }
287
- } catch (error) {
288
- this.emit("ai_structured:async_iterator_error", { error });
289
- }
290
- }
291
- // Convenience methods
292
- /**
293
- * Generate object - default object output strategy
294
- */
295
- async generateObjectData(model, schema, prompt, options) {
296
- return this.generateObject({
297
- model,
298
- schema,
299
- prompt,
300
- output: "object",
301
- ...options
302
- });
303
- }
304
- /**
305
- * 生成数组 - array 输出策略
306
- */
307
- async generateArray(model, elementSchema, prompt, options) {
308
- return this.generateObject({
309
- model,
310
- schema: elementSchema,
311
- prompt,
312
- output: "array",
313
- ...options
314
- });
315
- }
316
- /**
317
- * 生成枚举值 - enum 输出策略
318
- */
319
- async generateEnum(model, enumValues, prompt, options) {
320
- return this.generateObject({
321
- model,
322
- prompt,
323
- output: "enum",
324
- enum: enumValues,
325
- ...options
326
- });
327
- }
328
- /**
329
- * 生成无模式JSON - no-schema 输出策略
330
- */
331
- async generateFreeformJSON(model, prompt, options) {
332
- return this.generateObject({
333
- model,
334
- prompt,
335
- output: "no-schema",
336
- mode: "json",
337
- ...options
338
- });
339
- }
340
- /**
341
- * 流式生成对象 - 默认 object 输出策略
342
- */
343
- streamObjectData(model, schema, prompt, options) {
344
- return this.streamObject({
345
- model,
346
- schema,
347
- prompt,
348
- output: "object",
349
- ...options
350
- });
351
- }
352
- /**
353
- * 流式生成数组 - array 输出策略
354
- */
355
- streamArray(model, elementSchema, prompt, options) {
356
- return this.streamObject({
357
- model,
358
- schema: elementSchema,
359
- prompt,
360
- output: "array",
361
- ...options
362
- });
363
- }
364
- /**
365
- * 流式生成枚举值 - enum 输出策略
366
- */
367
- streamEnum(model, enumValues, prompt, options) {
368
- return this.streamObject({
369
- model,
370
- prompt,
371
- output: "enum",
372
- enum: enumValues,
373
- ...options
374
- });
375
- }
376
- /**
377
- * 流式生成无模式JSON - no-schema 输出策略
378
- */
379
- streamFreeformJSON(model, prompt, options) {
380
- return this.streamObject({
381
- model,
382
- prompt,
383
- output: "no-schema",
384
- mode: "json",
385
- ...options
386
- });
387
- }
388
- // Utility methods
389
- /**
390
- * Check initialization status
391
- */
392
- isInitialized() {
393
- return this.initialized;
394
- }
395
- /**
396
- * Get statistics
397
- */
398
- getStats() {
399
- return {
400
- requestCount: this.requestCounter,
401
- isInitialized: this.initialized
402
- };
403
- }
404
- /**
405
- * 重置统计信息
406
- */
407
- resetStats() {
408
- this.requestCounter = 0;
409
- }
410
- /**
411
- * 销毁实例
412
- */
413
- destroy() {
414
- this.removeAllListeners();
415
- this.initialized = false;
416
- this.requestCounter = 0;
417
- }
418
- };
419
- var ai_structured_default = AIStructuredDataIntegration;
420
-
421
- export {
422
- streamObject,
423
- generateObject,
424
- AIStructuredDataIntegration,
425
- ai_structured_default
426
- };
427
- //# sourceMappingURL=chunk-V2SSI3SL.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/ai-structured.ts"],"sourcesContent":["/**\n * AI Structured Data Complete Integration\n * \n * Core structured data functionality:\n * - generateObject: Structured object generation\n * - streamObject: Streaming structured object generation\n * \n * Supports all output strategies: object, array, enum, no-schema\n */\n\nimport type { z } from 'zod';\n\nimport { EventEmitter } from 'events';\nimport {\n streamObject,\n generateObject,\n type CoreMessage,\n type FinishReason,\n type LanguageModel,\n type StreamObjectResult,\n type LanguageModelUsage,\n type GenerateObjectResult,\n type LanguageModelRequestMetadata,\n type LanguageModelResponseMetadata\n} from 'ai';\n\n// Type Definitions\n\n/**\n * Complete generateObject options interface\n */\nexport interface GenerateObjectOptions<T = any> {\n // Core parameters\n model: LanguageModel;\n \n // Output strategy - supports all official strategies\n output?: 'object' | 'array' | 'enum' | 'no-schema';\n \n // Generation mode\n mode?: 'auto' | 'json' | 'tool';\n \n // Schema related - supports Zod Schema or JSON Schema\n schema?: z.ZodSchema<T> | any; // JSON Schema\n schemaName?: string;\n schemaDescription?: string;\n \n // Enum output specific\n enum?: string[];\n \n // Messages and prompts\n system?: string;\n prompt?: string | Array<any>; // SystemModelMessage | UserModelMessage | AssistantModelMessage | ToolModelMessage\n messages?: CoreMessage[];\n \n // Generation control parameters\n maxOutputTokens?: number;\n temperature?: number;\n topP?: number;\n topK?: number;\n presencePenalty?: number;\n frequencyPenalty?: number;\n seed?: number;\n \n // Retry and control\n maxRetries?: number;\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n \n // Experimental features\n experimental_repairText?: (options: {\n text: string;\n error: any; // JSONParseError | TypeValidationError\n }) => Promise<string>;\n experimental_download?: (requestedDownloads: Array<{ url: URL; isUrlSupportedByModel: boolean }>) => Promise<Array<null | { data: Uint8Array; mediaType?: string }>>;\n experimental_telemetry?: {\n isEnabled?: boolean;\n recordInputs?: boolean;\n recordOutputs?: boolean;\n functionId?: string;\n metadata?: Record<string, string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>>;\n };\n \n // 提供商选项\n providerOptions?: Record<string, Record<string, any>>;\n}\n\n/**\n * streamObject 完整参数接口 - 基于 streamObject.md 规范\n */\nexport interface StreamObjectOptions<T = any> extends GenerateObjectOptions<T> {\n // 错误处理回调\n onError?: (event: { error: unknown }) => Promise<void> | void;\n \n // 完成回调\n onFinish?: (result: {\n usage: LanguageModelUsage;\n providerMetadata?: Record<string, Record<string, any>>;\n object?: T;\n error?: unknown;\n warnings?: Array<any>;\n response?: {\n id: string;\n model: string;\n timestamp: Date;\n headers?: Record<string, string>;\n };\n }) => void;\n}\n\n/**\n * generateObject 返回结果类型 - 基于 generateObject().md 规范\n */\nexport type GenerateObjectResultType<T> = {\n object: T;\n finishReason: 'stop' | 'length' | 'content-filter' | 'tool-calls' | 'error' | 'other' | 'unknown';\n usage: LanguageModelUsage;\n request?: LanguageModelRequestMetadata;\n response?: LanguageModelResponseMetadata & {\n body?: unknown;\n };\n reasoning?: string; // 官方文档明确定义的返回字段\n warnings?: Array<any>;\n providerMetadata?: any;\n toJsonResponse: (init?: any) => Response; // 官方文档要求的标准方法\n};\n\n/**\n * streamObject 返回结果类型 - 基于 streamObject.md 规范\n */\nexport type StreamObjectResultType<T> = {\n // Promise 属性 - 完整列表\n usage: Promise<LanguageModelUsage>;\n providerMetadata: Promise<Record<string, Record<string, any>> | undefined>;\n object: Promise<T>;\n \n // 流属性 - 完整列表\n partialObjectStream: AsyncIterable<any> & ReadableStream<any>; // DeepPartial<T>\n elementStream: AsyncIterable<T> & ReadableStream<T>; // 仅在 array 模式下可用\n textStream: AsyncIterable<string> & ReadableStream<string>;\n fullStream: AsyncIterable<any> & ReadableStream<any>; // ObjectStreamPart<T>\n \n // 元数据 - 完整列表\n request: Promise<LanguageModelRequestMetadata>;\n response: Promise<LanguageModelResponseMetadata>;\n warnings?: Array<any>;\n \n // 响应转换方法 - 完整列表\n pipeTextStreamToResponse: (response: any, init?: any) => void;\n toTextStreamResponse: (init?: any) => Response;\n \n // 遗漏的方法 - 补充\n pipeObjectStreamToResponse?: (response: any, init?: any) => void;\n toObjectStreamResponse?: (init?: any) => Response;\n};\n\n// Core Integration Class\n\n/**\n * Complete structured data integration class\n */\nexport class AIStructuredDataIntegration extends EventEmitter {\n private initialized: boolean = false;\n private requestCounter: number = 0;\n\n constructor() {\n super();\n }\n\n /**\n * 初始化\n */\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n\n try {\n this.emit('ai_structured:initializing');\n this.initialized = true;\n this.emit('ai_structured:initialized');\n } catch (error) {\n this.emit('ai_structured:initialization_failed', { error });\n throw error;\n }\n }\n\n /**\n * 生成请求ID\n */\n private generateRequestId(): string {\n return `ai-structured-${Date.now()}-${++this.requestCounter}`;\n }\n\n // ================================\n // generateObject methods\n\n /**\n * Generate structured object - supports all output strategies\n */\n async generateObject<T = any>(\n options: GenerateObjectOptions<T>\n ): Promise<GenerateObjectResultType<T>> {\n if (!this.initialized) {\n throw new Error('AIStructuredDataIntegration not initialized. Call initialize() first.');\n }\n\n const requestId = this.generateRequestId();\n const startTime = Date.now();\n\n try {\n this.emit('ai_structured:generate_object_started', {\n requestId,\n model: typeof options.model === 'string' ? options.model : 'unknown',\n output: options.output || 'object',\n hasSchema: !!options.schema,\n hasEnum: !!options.enum,\n mode: options.mode || 'auto'\n });\n\n // 根据输出策略构建参数\n const generateOptions: any = {\n model: options.model,\n system: options.system,\n prompt: options.prompt,\n messages: options.messages,\n maxOutputTokens: options.maxOutputTokens,\n temperature: options.temperature,\n topP: options.topP,\n topK: options.topK,\n presencePenalty: options.presencePenalty,\n frequencyPenalty: options.frequencyPenalty,\n seed: options.seed,\n maxRetries: options.maxRetries,\n abortSignal: options.abortSignal,\n headers: options.headers,\n experimental_repairText: options.experimental_repairText,\n experimental_download: options.experimental_download,\n experimental_telemetry: options.experimental_telemetry,\n providerOptions: options.providerOptions\n };\n\n // 处理不同的输出策略\n if (options.output) {\n generateOptions.output = options.output;\n }\n \n if (options.mode) {\n generateOptions.mode = options.mode;\n }\n\n // Schema 相关参数\n if (options.schema) {\n generateOptions.schema = options.schema;\n }\n \n if (options.schemaName) {\n generateOptions.schemaName = options.schemaName;\n }\n \n if (options.schemaDescription) {\n generateOptions.schemaDescription = options.schemaDescription;\n }\n\n // Enum 模式专用参数\n if (options.output === 'enum' && options.enum) {\n generateOptions.enum = options.enum;\n }\n\n const result = await generateObject(generateOptions);\n\n this.emit('ai_structured:generate_object_completed', {\n requestId,\n latency: Date.now() - startTime,\n finishReason: result.finishReason,\n usage: result.usage,\n output: options.output || 'object',\n hasObject: !!result.object,\n hasReasoning: !!result.reasoning,\n warnings: result.warnings?.length || 0\n });\n\n // 增强返回结果,确保包含所有官方规范的方法\n const enhancedResult = {\n ...result,\n // 确保 toJsonResponse 方法存在\n toJsonResponse: (init?: any) => (result as any).toJsonResponse?.(init) || \n new Response(JSON.stringify(result.object), {\n status: 200,\n headers: { 'Content-Type': 'application/json; charset=utf-8' },\n ...init\n })\n };\n\n return enhancedResult as GenerateObjectResultType<T>;\n\n } catch (error: any) {\n this.emit('ai_structured:generate_object_failed', {\n requestId,\n error: error.message,\n latency: Date.now() - startTime,\n errorType: error.constructor.name,\n output: options.output || 'object'\n });\n\n throw error;\n }\n }\n\n // ================================\n // streamObject methods\n\n /**\n * Stream structured object generation - supports all output strategies and stream modes\n */\n streamObject<T = any>(\n options: StreamObjectOptions<T>\n ): StreamObjectResultType<T> {\n if (!this.initialized) {\n throw new Error('AIStructuredDataIntegration not initialized. Call initialize() first.');\n }\n\n const requestId = this.generateRequestId();\n const startTime = Date.now();\n\n this.emit('ai_structured:stream_object_started', {\n requestId,\n model: typeof options.model === 'string' ? options.model : 'unknown',\n output: options.output || 'object',\n hasSchema: !!options.schema,\n hasEnum: !!options.enum,\n mode: options.mode || 'auto'\n });\n\n // 包装回调以添加事件发射\n const wrappedOptions = {\n ...options,\n onError: (event: any) => {\n this.emit('ai_structured:stream_object_error', {\n requestId,\n error: event.error,\n latency: Date.now() - startTime\n });\n if (options.onError) {\n options.onError(event);\n }\n },\n onFinish: (result: any) => {\n this.emit('ai_structured:stream_object_finished', {\n requestId,\n latency: Date.now() - startTime,\n usage: result.usage,\n hasObject: !!result.object,\n hasError: !!result.error,\n warnings: result.warnings?.length || 0,\n output: options.output || 'object'\n });\n\n if (options.onFinish) {\n options.onFinish(result);\n }\n }\n };\n\n // 根据输出策略构建参数\n const streamOptions: any = {\n model: options.model,\n system: options.system,\n prompt: options.prompt,\n messages: options.messages,\n maxOutputTokens: options.maxOutputTokens,\n temperature: options.temperature,\n topP: options.topP,\n topK: options.topK,\n presencePenalty: options.presencePenalty,\n frequencyPenalty: options.frequencyPenalty,\n seed: options.seed,\n maxRetries: options.maxRetries,\n abortSignal: options.abortSignal,\n headers: options.headers,\n experimental_repairText: options.experimental_repairText,\n experimental_download: options.experimental_download,\n experimental_telemetry: options.experimental_telemetry,\n providerOptions: options.providerOptions,\n onError: wrappedOptions.onError,\n onFinish: wrappedOptions.onFinish\n };\n\n // 处理不同的输出策略\n if (options.output) {\n streamOptions.output = options.output;\n }\n \n if (options.mode) {\n streamOptions.mode = options.mode;\n }\n\n // Schema 相关参数\n if (options.schema) {\n streamOptions.schema = options.schema;\n }\n \n if (options.schemaName) {\n streamOptions.schemaName = options.schemaName;\n }\n \n if (options.schemaDescription) {\n streamOptions.schemaDescription = options.schemaDescription;\n }\n\n // Enum 模式专用参数\n if (options.output === 'enum' && options.enum) {\n streamOptions.enum = options.enum;\n }\n\n const streamResult = streamObject(streamOptions);\n\n // 增强 StreamResult,确保符合官方规范\n return {\n // Promise 属性\n usage: streamResult.usage,\n providerMetadata: streamResult.providerMetadata,\n object: streamResult.object as Promise<T>,\n\n // 流属性\n partialObjectStream: streamResult.partialObjectStream,\n elementStream: streamResult.elementStream || streamResult.partialObjectStream, // array 模式下可用\n textStream: streamResult.textStream,\n fullStream: streamResult.fullStream,\n\n // 元数据\n request: streamResult.request,\n response: streamResult.response,\n warnings: streamResult.warnings,\n\n // 响应转换方法\n pipeTextStreamToResponse: (response: any, init?: any) => {\n if ((streamResult as any).pipeTextStreamToResponse) {\n (streamResult as any).pipeTextStreamToResponse(response, init);\n } else {\n this.pipeStreamToResponse(streamResult.textStream, response, init);\n }\n },\n\n toTextStreamResponse: (init?: any) => (streamResult as any).toTextStreamResponse?.(init) || \n new Response(streamResult.textStream as any, {\n headers: { 'Content-Type': 'text/plain; charset=utf-8' },\n ...init\n }),\n \n // 补充遗漏的方法\n pipeObjectStreamToResponse: (response: any, init?: any) => {\n if ((streamResult as any).pipeObjectStreamToResponse) {\n (streamResult as any).pipeObjectStreamToResponse(response, init);\n } else {\n this.pipeStreamToResponse(streamResult.fullStream, response, init);\n }\n },\n \n toObjectStreamResponse: (init?: any) => (streamResult as any).toObjectStreamResponse?.(init) || \n new Response(streamResult.fullStream as any, {\n headers: { 'Content-Type': 'application/json; charset=utf-8' },\n ...init\n })\n } as unknown as StreamObjectResultType<T>;\n }\n\n /**\n * 辅助方法:将流导入响应 - 标准实现\n */\n private pipeStreamToResponse(stream: any, response: any, options?: any): void {\n if (!stream || !response) return;\n \n // 标准流处理实现\n if (typeof response.write === 'function') {\n // Node.js Response 对象\n if (stream.pipeTo) {\n stream.pipeTo(response).catch((error: any) => {\n this.emit('ai_structured:stream_pipe_error', { error });\n });\n } else if (stream[Symbol.asyncIterator]) {\n // 异步迭代器处理\n this.consumeAsyncIterator(stream, response);\n }\n } else if (response instanceof Response) {\n // Web API Response 对象 - 创建新的可写流\n const writer = new WritableStream({\n write(chunk) {\n // 处理流式数据写入\n }\n });\n stream.pipeTo?.(writer);\n }\n }\n\n /**\n * 消费异步迭代器并写入响应\n */\n private async consumeAsyncIterator(stream: any, response: any): Promise<void> {\n try {\n for await (const chunk of stream) {\n if (response.write) {\n response.write(typeof chunk === 'string' ? chunk : JSON.stringify(chunk));\n }\n }\n if (response.end) {\n response.end();\n }\n } catch (error) {\n this.emit('ai_structured:async_iterator_error', { error });\n }\n }\n\n // Convenience methods\n\n /**\n * Generate object - default object output strategy\n */\n async generateObjectData<T>(\n model: LanguageModel,\n schema: z.ZodSchema<T>,\n prompt: string,\n options?: Partial<GenerateObjectOptions<T>>\n ): Promise<GenerateObjectResultType<T>> {\n return this.generateObject({\n model,\n schema,\n prompt,\n output: 'object',\n ...options\n });\n }\n\n /**\n * 生成数组 - array 输出策略\n */\n async generateArray<T>(\n model: LanguageModel,\n elementSchema: z.ZodSchema<T>,\n prompt: string,\n options?: Partial<GenerateObjectOptions<T>>\n ): Promise<GenerateObjectResultType<T[]>> {\n return this.generateObject({\n model,\n schema: elementSchema,\n prompt,\n output: 'array',\n ...options\n });\n }\n\n /**\n * 生成枚举值 - enum 输出策略\n */\n async generateEnum(\n model: LanguageModel,\n enumValues: string[],\n prompt: string,\n options?: Partial<GenerateObjectOptions<string>>\n ): Promise<GenerateObjectResultType<string>> {\n return this.generateObject({\n model,\n prompt,\n output: 'enum',\n enum: enumValues,\n ...options\n });\n }\n\n /**\n * 生成无模式JSON - no-schema 输出策略\n */\n async generateFreeformJSON(\n model: LanguageModel,\n prompt: string,\n options?: Partial<GenerateObjectOptions<any>>\n ): Promise<GenerateObjectResultType<any>> {\n return this.generateObject({\n model,\n prompt,\n output: 'no-schema',\n mode: 'json',\n ...options\n });\n }\n\n /**\n * 流式生成对象 - 默认 object 输出策略\n */\n streamObjectData<T>(\n model: LanguageModel,\n schema: z.ZodSchema<T>,\n prompt: string,\n options?: Partial<StreamObjectOptions<T>>\n ): StreamObjectResultType<T> {\n return this.streamObject({\n model,\n schema,\n prompt,\n output: 'object',\n ...options\n });\n }\n\n /**\n * 流式生成数组 - array 输出策略\n */\n streamArray<T>(\n model: LanguageModel,\n elementSchema: z.ZodSchema<T>,\n prompt: string,\n options?: Partial<StreamObjectOptions<T>>\n ): StreamObjectResultType<T[]> {\n return this.streamObject<T[]>({\n model,\n schema: elementSchema,\n prompt,\n output: 'array',\n ...options\n } as StreamObjectOptions<T[]>);\n }\n\n /**\n * 流式生成枚举值 - enum 输出策略\n */\n streamEnum(\n model: LanguageModel,\n enumValues: string[],\n prompt: string,\n options?: Partial<StreamObjectOptions<string>>\n ): StreamObjectResultType<string> {\n return this.streamObject({\n model,\n prompt,\n output: 'enum',\n enum: enumValues,\n ...options\n });\n }\n\n /**\n * 流式生成无模式JSON - no-schema 输出策略\n */\n streamFreeformJSON(\n model: LanguageModel,\n prompt: string,\n options?: Partial<StreamObjectOptions<any>>\n ): StreamObjectResultType<any> {\n return this.streamObject({\n model,\n prompt,\n output: 'no-schema',\n mode: 'json',\n ...options\n });\n }\n\n // Utility methods\n\n /**\n * Check initialization status\n */\n isInitialized(): boolean {\n return this.initialized;\n }\n\n /**\n * Get statistics\n */\n getStats(): {\n requestCount: number;\n isInitialized: boolean;\n } {\n return {\n requestCount: this.requestCounter,\n isInitialized: this.initialized\n };\n }\n\n /**\n * 重置统计信息\n */\n resetStats(): void {\n this.requestCounter = 0;\n }\n\n /**\n * 销毁实例\n */\n destroy(): void {\n this.removeAllListeners();\n this.initialized = false;\n this.requestCounter = 0;\n }\n}\n\n// Exports\n\nexport {\n streamObject,\n // Core functions\n generateObject,\n type CoreMessage,\n type FinishReason,\n type LanguageModel,\n type StreamObjectResult,\n \n type LanguageModelUsage,\n // Core types\n type GenerateObjectResult\n};\n\n// Default export\nexport default AIStructuredDataIntegration;"],"mappings":"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","names":[]}