@posthog/agent 1.12.0 → 1.14.0

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 (224) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +6 -0
  2. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/dist/_virtual/index.js +4 -0
  4. package/dist/_virtual/index.js.map +1 -0
  5. package/dist/node_modules/@ai-sdk/anthropic/dist/index.js +1154 -0
  6. package/dist/node_modules/@ai-sdk/anthropic/dist/index.js.map +1 -0
  7. package/dist/node_modules/@ai-sdk/provider/dist/index.js +296 -0
  8. package/dist/node_modules/@ai-sdk/provider/dist/index.js.map +1 -0
  9. package/dist/node_modules/@ai-sdk/provider-utils/dist/index.js +576 -0
  10. package/dist/node_modules/@ai-sdk/provider-utils/dist/index.js.map +1 -0
  11. package/dist/node_modules/@ai-sdk/ui-utils/dist/index.js +741 -0
  12. package/dist/node_modules/@ai-sdk/ui-utils/dist/index.js.map +1 -0
  13. package/dist/node_modules/@opentelemetry/api/build/esm/api/context.js +112 -0
  14. package/dist/node_modules/@opentelemetry/api/build/esm/api/context.js.map +1 -0
  15. package/dist/node_modules/@opentelemetry/api/build/esm/api/diag.js +123 -0
  16. package/dist/node_modules/@opentelemetry/api/build/esm/api/diag.js.map +1 -0
  17. package/dist/node_modules/@opentelemetry/api/build/esm/api/metrics.js +62 -0
  18. package/dist/node_modules/@opentelemetry/api/build/esm/api/metrics.js.map +1 -0
  19. package/dist/node_modules/@opentelemetry/api/build/esm/api/propagation.js +91 -0
  20. package/dist/node_modules/@opentelemetry/api/build/esm/api/propagation.js.map +1 -0
  21. package/dist/node_modules/@opentelemetry/api/build/esm/api/trace.js +79 -0
  22. package/dist/node_modules/@opentelemetry/api/build/esm/api/trace.js.map +1 -0
  23. package/dist/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js +59 -0
  24. package/dist/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js.map +1 -0
  25. package/dist/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js +99 -0
  26. package/dist/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js.map +1 -0
  27. package/dist/node_modules/@opentelemetry/api/build/esm/baggage/utils.js +31 -0
  28. package/dist/node_modules/@opentelemetry/api/build/esm/baggage/utils.js.map +1 -0
  29. package/dist/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js +69 -0
  30. package/dist/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js.map +1 -0
  31. package/dist/node_modules/@opentelemetry/api/build/esm/context/context.js +54 -0
  32. package/dist/node_modules/@opentelemetry/api/build/esm/context/context.js.map +1 -0
  33. package/dist/node_modules/@opentelemetry/api/build/esm/context-api.js +22 -0
  34. package/dist/node_modules/@opentelemetry/api/build/esm/context-api.js.map +1 -0
  35. package/dist/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js +104 -0
  36. package/dist/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js.map +1 -0
  37. package/dist/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js +44 -0
  38. package/dist/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js.map +1 -0
  39. package/dist/node_modules/@opentelemetry/api/build/esm/diag/types.js +43 -0
  40. package/dist/node_modules/@opentelemetry/api/build/esm/diag/types.js.map +1 -0
  41. package/dist/node_modules/@opentelemetry/api/build/esm/diag-api.js +27 -0
  42. package/dist/node_modules/@opentelemetry/api/build/esm/diag-api.js.map +1 -0
  43. package/dist/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js +62 -0
  44. package/dist/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js.map +1 -0
  45. package/dist/node_modules/@opentelemetry/api/build/esm/internal/semver.js +121 -0
  46. package/dist/node_modules/@opentelemetry/api/build/esm/internal/semver.js.map +1 -0
  47. package/dist/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js +167 -0
  48. package/dist/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js.map +1 -0
  49. package/dist/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js +33 -0
  50. package/dist/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js.map +1 -0
  51. package/dist/node_modules/@opentelemetry/api/build/esm/metrics-api.js +22 -0
  52. package/dist/node_modules/@opentelemetry/api/build/esm/metrics-api.js.map +1 -0
  53. package/dist/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js +21 -0
  54. package/dist/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js.map +1 -0
  55. package/dist/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js +35 -0
  56. package/dist/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js.map +1 -0
  57. package/dist/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js +40 -0
  58. package/dist/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js.map +1 -0
  59. package/dist/node_modules/@opentelemetry/api/build/esm/propagation-api.js +22 -0
  60. package/dist/node_modules/@opentelemetry/api/build/esm/propagation-api.js.map +1 -0
  61. package/dist/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js +70 -0
  62. package/dist/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js.map +1 -0
  63. package/dist/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js +78 -0
  64. package/dist/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js.map +1 -0
  65. package/dist/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js +34 -0
  66. package/dist/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js.map +1 -0
  67. package/dist/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js +55 -0
  68. package/dist/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js.map +1 -0
  69. package/dist/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js +56 -0
  70. package/dist/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js.map +1 -0
  71. package/dist/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js +76 -0
  72. package/dist/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js.map +1 -0
  73. package/dist/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js +27 -0
  74. package/dist/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js.map +1 -0
  75. package/dist/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js +45 -0
  76. package/dist/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js.map +1 -0
  77. package/dist/node_modules/@opentelemetry/api/build/esm/trace/status.js +22 -0
  78. package/dist/node_modules/@opentelemetry/api/build/esm/trace/status.js.map +1 -0
  79. package/dist/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js +25 -0
  80. package/dist/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js.map +1 -0
  81. package/dist/node_modules/@opentelemetry/api/build/esm/trace-api.js +24 -0
  82. package/dist/node_modules/@opentelemetry/api/build/esm/trace-api.js.map +1 -0
  83. package/dist/node_modules/@opentelemetry/api/build/esm/version.js +20 -0
  84. package/dist/node_modules/@opentelemetry/api/build/esm/version.js.map +1 -0
  85. package/dist/node_modules/ai/dist/index.js +2870 -0
  86. package/dist/node_modules/ai/dist/index.js.map +1 -0
  87. package/dist/node_modules/nanoid/non-secure/index.js +13 -0
  88. package/dist/node_modules/nanoid/non-secure/index.js.map +1 -0
  89. package/dist/node_modules/secure-json-parse/index.js +133 -0
  90. package/dist/node_modules/secure-json-parse/index.js.map +1 -0
  91. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js +37 -0
  92. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -0
  93. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js +26 -0
  94. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -0
  95. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +17 -0
  96. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -0
  97. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +11 -0
  98. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -0
  99. package/dist/node_modules/zod-to-json-schema/dist/esm/index.js +8 -0
  100. package/dist/node_modules/zod-to-json-schema/dist/esm/index.js.map +1 -0
  101. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js +66 -0
  102. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -0
  103. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +21 -0
  104. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -0
  105. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +30 -0
  106. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -0
  107. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +53 -0
  108. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -0
  109. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +8 -0
  110. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -0
  111. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +8 -0
  112. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -0
  113. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +8 -0
  114. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -0
  115. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +50 -0
  116. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -0
  117. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +11 -0
  118. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -0
  119. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +11 -0
  120. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -0
  121. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +9 -0
  122. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -0
  123. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +56 -0
  124. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -0
  125. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +24 -0
  126. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -0
  127. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +30 -0
  128. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -0
  129. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +19 -0
  130. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -0
  131. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +15 -0
  132. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -0
  133. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +13 -0
  134. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -0
  135. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +37 -0
  136. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -0
  137. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +56 -0
  138. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -0
  139. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +76 -0
  140. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -0
  141. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +25 -0
  142. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -0
  143. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +24 -0
  144. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -0
  145. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +8 -0
  146. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -0
  147. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +8 -0
  148. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -0
  149. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +65 -0
  150. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -0
  151. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +24 -0
  152. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -0
  153. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +350 -0
  154. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  155. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +36 -0
  156. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -0
  157. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +10 -0
  158. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -0
  159. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +84 -0
  160. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -0
  161. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +8 -0
  162. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -0
  163. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js +110 -0
  164. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -0
  165. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +90 -0
  166. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -0
  167. package/dist/src/agent.d.ts +3 -0
  168. package/dist/src/agent.d.ts.map +1 -1
  169. package/dist/src/agent.js +93 -291
  170. package/dist/src/agent.js.map +1 -1
  171. package/dist/src/agents/execution.d.ts +1 -1
  172. package/dist/src/agents/execution.d.ts.map +1 -1
  173. package/dist/src/agents/execution.js +28 -43
  174. package/dist/src/agents/execution.js.map +1 -1
  175. package/dist/src/agents/planning.d.ts +1 -1
  176. package/dist/src/agents/planning.d.ts.map +1 -1
  177. package/dist/src/agents/planning.js +60 -67
  178. package/dist/src/agents/planning.js.map +1 -1
  179. package/dist/src/agents/research.d.ts +1 -1
  180. package/dist/src/agents/research.d.ts.map +1 -1
  181. package/dist/src/agents/research.js +68 -91
  182. package/dist/src/agents/research.js.map +1 -1
  183. package/dist/src/prompt-builder.d.ts.map +1 -1
  184. package/dist/src/prompt-builder.js +68 -36
  185. package/dist/src/prompt-builder.js.map +1 -1
  186. package/dist/src/structured-extraction.d.ts +2 -2
  187. package/dist/src/structured-extraction.d.ts.map +1 -1
  188. package/dist/src/structured-extraction.js +51 -110
  189. package/dist/src/structured-extraction.js.map +1 -1
  190. package/dist/src/workflow/config.d.ts +3 -0
  191. package/dist/src/workflow/config.d.ts.map +1 -0
  192. package/dist/src/workflow/config.js +43 -0
  193. package/dist/src/workflow/config.js.map +1 -0
  194. package/dist/src/workflow/steps/build.d.ts +3 -0
  195. package/dist/src/workflow/steps/build.d.ts.map +1 -0
  196. package/dist/src/workflow/steps/build.js +64 -0
  197. package/dist/src/workflow/steps/build.js.map +1 -0
  198. package/dist/src/workflow/steps/plan.d.ts +3 -0
  199. package/dist/src/workflow/steps/plan.d.ts.map +1 -0
  200. package/dist/src/workflow/steps/plan.js +86 -0
  201. package/dist/src/workflow/steps/plan.js.map +1 -0
  202. package/dist/src/workflow/steps/research.d.ts +3 -0
  203. package/dist/src/workflow/steps/research.d.ts.map +1 -0
  204. package/dist/src/workflow/steps/research.js +124 -0
  205. package/dist/src/workflow/steps/research.js.map +1 -0
  206. package/dist/src/workflow/types.d.ts +48 -0
  207. package/dist/src/workflow/types.d.ts.map +1 -0
  208. package/dist/src/workflow/utils.d.ts +12 -0
  209. package/dist/src/workflow/utils.d.ts.map +1 -0
  210. package/dist/src/workflow/utils.js +38 -0
  211. package/dist/src/workflow/utils.js.map +1 -0
  212. package/package.json +5 -2
  213. package/src/agent.ts +112 -321
  214. package/src/agents/execution.ts +28 -43
  215. package/src/agents/planning.ts +60 -67
  216. package/src/agents/research.ts +68 -91
  217. package/src/prompt-builder.ts +71 -37
  218. package/src/structured-extraction.ts +58 -115
  219. package/src/workflow/config.ts +42 -0
  220. package/src/workflow/steps/build.ts +87 -0
  221. package/src/workflow/steps/plan.ts +112 -0
  222. package/src/workflow/steps/research.ts +156 -0
  223. package/src/workflow/types.ts +53 -0
  224. package/src/workflow/utils.ts +50 -0
@@ -0,0 +1,741 @@
1
+ import { validatorSymbol, safeParseJSON } from '../../provider-utils/dist/index.js';
2
+ import 'zod';
3
+ import '../../../zod-to-json-schema/dist/esm/parsers/string.js';
4
+ import { zodToJsonSchema } from '../../../zod-to-json-schema/dist/esm/zodToJsonSchema.js';
5
+
6
+ // src/index.ts
7
+
8
+ // src/assistant-stream-parts.ts
9
+ var textStreamPart = {
10
+ code: "0",
11
+ name: "text",
12
+ parse: (value) => {
13
+ if (typeof value !== "string") {
14
+ throw new Error('"text" parts expect a string value.');
15
+ }
16
+ return { type: "text", value };
17
+ }
18
+ };
19
+ var errorStreamPart = {
20
+ code: "3",
21
+ name: "error",
22
+ parse: (value) => {
23
+ if (typeof value !== "string") {
24
+ throw new Error('"error" parts expect a string value.');
25
+ }
26
+ return { type: "error", value };
27
+ }
28
+ };
29
+ var assistantMessageStreamPart = {
30
+ code: "4",
31
+ name: "assistant_message",
32
+ parse: (value) => {
33
+ if (value == null || typeof value !== "object" || !("id" in value) || !("role" in value) || !("content" in value) || typeof value.id !== "string" || typeof value.role !== "string" || value.role !== "assistant" || !Array.isArray(value.content) || !value.content.every(
34
+ (item) => item != null && typeof item === "object" && "type" in item && item.type === "text" && "text" in item && item.text != null && typeof item.text === "object" && "value" in item.text && typeof item.text.value === "string"
35
+ )) {
36
+ throw new Error(
37
+ '"assistant_message" parts expect an object with an "id", "role", and "content" property.'
38
+ );
39
+ }
40
+ return {
41
+ type: "assistant_message",
42
+ value
43
+ };
44
+ }
45
+ };
46
+ var assistantControlDataStreamPart = {
47
+ code: "5",
48
+ name: "assistant_control_data",
49
+ parse: (value) => {
50
+ if (value == null || typeof value !== "object" || !("threadId" in value) || !("messageId" in value) || typeof value.threadId !== "string" || typeof value.messageId !== "string") {
51
+ throw new Error(
52
+ '"assistant_control_data" parts expect an object with a "threadId" and "messageId" property.'
53
+ );
54
+ }
55
+ return {
56
+ type: "assistant_control_data",
57
+ value: {
58
+ threadId: value.threadId,
59
+ messageId: value.messageId
60
+ }
61
+ };
62
+ }
63
+ };
64
+ var dataMessageStreamPart = {
65
+ code: "6",
66
+ name: "data_message",
67
+ parse: (value) => {
68
+ if (value == null || typeof value !== "object" || !("role" in value) || !("data" in value) || typeof value.role !== "string" || value.role !== "data") {
69
+ throw new Error(
70
+ '"data_message" parts expect an object with a "role" and "data" property.'
71
+ );
72
+ }
73
+ return {
74
+ type: "data_message",
75
+ value
76
+ };
77
+ }
78
+ };
79
+ var assistantStreamParts = [
80
+ textStreamPart,
81
+ errorStreamPart,
82
+ assistantMessageStreamPart,
83
+ assistantControlDataStreamPart,
84
+ dataMessageStreamPart
85
+ ];
86
+ ({
87
+ [textStreamPart.code]: textStreamPart,
88
+ [errorStreamPart.code]: errorStreamPart,
89
+ [assistantMessageStreamPart.code]: assistantMessageStreamPart,
90
+ [assistantControlDataStreamPart.code]: assistantControlDataStreamPart,
91
+ [dataMessageStreamPart.code]: dataMessageStreamPart
92
+ });
93
+ ({
94
+ [textStreamPart.name]: textStreamPart.code,
95
+ [errorStreamPart.name]: errorStreamPart.code,
96
+ [assistantMessageStreamPart.name]: assistantMessageStreamPart.code,
97
+ [assistantControlDataStreamPart.name]: assistantControlDataStreamPart.code,
98
+ [dataMessageStreamPart.name]: dataMessageStreamPart.code
99
+ });
100
+ assistantStreamParts.map((part) => part.code);
101
+
102
+ // src/fix-json.ts
103
+ function fixJson(input) {
104
+ const stack = ["ROOT"];
105
+ let lastValidIndex = -1;
106
+ let literalStart = null;
107
+ function processValueStart(char, i, swapState) {
108
+ {
109
+ switch (char) {
110
+ case '"': {
111
+ lastValidIndex = i;
112
+ stack.pop();
113
+ stack.push(swapState);
114
+ stack.push("INSIDE_STRING");
115
+ break;
116
+ }
117
+ case "f":
118
+ case "t":
119
+ case "n": {
120
+ lastValidIndex = i;
121
+ literalStart = i;
122
+ stack.pop();
123
+ stack.push(swapState);
124
+ stack.push("INSIDE_LITERAL");
125
+ break;
126
+ }
127
+ case "-": {
128
+ stack.pop();
129
+ stack.push(swapState);
130
+ stack.push("INSIDE_NUMBER");
131
+ break;
132
+ }
133
+ case "0":
134
+ case "1":
135
+ case "2":
136
+ case "3":
137
+ case "4":
138
+ case "5":
139
+ case "6":
140
+ case "7":
141
+ case "8":
142
+ case "9": {
143
+ lastValidIndex = i;
144
+ stack.pop();
145
+ stack.push(swapState);
146
+ stack.push("INSIDE_NUMBER");
147
+ break;
148
+ }
149
+ case "{": {
150
+ lastValidIndex = i;
151
+ stack.pop();
152
+ stack.push(swapState);
153
+ stack.push("INSIDE_OBJECT_START");
154
+ break;
155
+ }
156
+ case "[": {
157
+ lastValidIndex = i;
158
+ stack.pop();
159
+ stack.push(swapState);
160
+ stack.push("INSIDE_ARRAY_START");
161
+ break;
162
+ }
163
+ }
164
+ }
165
+ }
166
+ function processAfterObjectValue(char, i) {
167
+ switch (char) {
168
+ case ",": {
169
+ stack.pop();
170
+ stack.push("INSIDE_OBJECT_AFTER_COMMA");
171
+ break;
172
+ }
173
+ case "}": {
174
+ lastValidIndex = i;
175
+ stack.pop();
176
+ break;
177
+ }
178
+ }
179
+ }
180
+ function processAfterArrayValue(char, i) {
181
+ switch (char) {
182
+ case ",": {
183
+ stack.pop();
184
+ stack.push("INSIDE_ARRAY_AFTER_COMMA");
185
+ break;
186
+ }
187
+ case "]": {
188
+ lastValidIndex = i;
189
+ stack.pop();
190
+ break;
191
+ }
192
+ }
193
+ }
194
+ for (let i = 0; i < input.length; i++) {
195
+ const char = input[i];
196
+ const currentState = stack[stack.length - 1];
197
+ switch (currentState) {
198
+ case "ROOT":
199
+ processValueStart(char, i, "FINISH");
200
+ break;
201
+ case "INSIDE_OBJECT_START": {
202
+ switch (char) {
203
+ case '"': {
204
+ stack.pop();
205
+ stack.push("INSIDE_OBJECT_KEY");
206
+ break;
207
+ }
208
+ case "}": {
209
+ lastValidIndex = i;
210
+ stack.pop();
211
+ break;
212
+ }
213
+ }
214
+ break;
215
+ }
216
+ case "INSIDE_OBJECT_AFTER_COMMA": {
217
+ switch (char) {
218
+ case '"': {
219
+ stack.pop();
220
+ stack.push("INSIDE_OBJECT_KEY");
221
+ break;
222
+ }
223
+ }
224
+ break;
225
+ }
226
+ case "INSIDE_OBJECT_KEY": {
227
+ switch (char) {
228
+ case '"': {
229
+ stack.pop();
230
+ stack.push("INSIDE_OBJECT_AFTER_KEY");
231
+ break;
232
+ }
233
+ }
234
+ break;
235
+ }
236
+ case "INSIDE_OBJECT_AFTER_KEY": {
237
+ switch (char) {
238
+ case ":": {
239
+ stack.pop();
240
+ stack.push("INSIDE_OBJECT_BEFORE_VALUE");
241
+ break;
242
+ }
243
+ }
244
+ break;
245
+ }
246
+ case "INSIDE_OBJECT_BEFORE_VALUE": {
247
+ processValueStart(char, i, "INSIDE_OBJECT_AFTER_VALUE");
248
+ break;
249
+ }
250
+ case "INSIDE_OBJECT_AFTER_VALUE": {
251
+ processAfterObjectValue(char, i);
252
+ break;
253
+ }
254
+ case "INSIDE_STRING": {
255
+ switch (char) {
256
+ case '"': {
257
+ stack.pop();
258
+ lastValidIndex = i;
259
+ break;
260
+ }
261
+ case "\\": {
262
+ stack.push("INSIDE_STRING_ESCAPE");
263
+ break;
264
+ }
265
+ default: {
266
+ lastValidIndex = i;
267
+ }
268
+ }
269
+ break;
270
+ }
271
+ case "INSIDE_ARRAY_START": {
272
+ switch (char) {
273
+ case "]": {
274
+ lastValidIndex = i;
275
+ stack.pop();
276
+ break;
277
+ }
278
+ default: {
279
+ lastValidIndex = i;
280
+ processValueStart(char, i, "INSIDE_ARRAY_AFTER_VALUE");
281
+ break;
282
+ }
283
+ }
284
+ break;
285
+ }
286
+ case "INSIDE_ARRAY_AFTER_VALUE": {
287
+ switch (char) {
288
+ case ",": {
289
+ stack.pop();
290
+ stack.push("INSIDE_ARRAY_AFTER_COMMA");
291
+ break;
292
+ }
293
+ case "]": {
294
+ lastValidIndex = i;
295
+ stack.pop();
296
+ break;
297
+ }
298
+ default: {
299
+ lastValidIndex = i;
300
+ break;
301
+ }
302
+ }
303
+ break;
304
+ }
305
+ case "INSIDE_ARRAY_AFTER_COMMA": {
306
+ processValueStart(char, i, "INSIDE_ARRAY_AFTER_VALUE");
307
+ break;
308
+ }
309
+ case "INSIDE_STRING_ESCAPE": {
310
+ stack.pop();
311
+ lastValidIndex = i;
312
+ break;
313
+ }
314
+ case "INSIDE_NUMBER": {
315
+ switch (char) {
316
+ case "0":
317
+ case "1":
318
+ case "2":
319
+ case "3":
320
+ case "4":
321
+ case "5":
322
+ case "6":
323
+ case "7":
324
+ case "8":
325
+ case "9": {
326
+ lastValidIndex = i;
327
+ break;
328
+ }
329
+ case "e":
330
+ case "E":
331
+ case "-":
332
+ case ".": {
333
+ break;
334
+ }
335
+ case ",": {
336
+ stack.pop();
337
+ if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") {
338
+ processAfterArrayValue(char, i);
339
+ }
340
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") {
341
+ processAfterObjectValue(char, i);
342
+ }
343
+ break;
344
+ }
345
+ case "}": {
346
+ stack.pop();
347
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") {
348
+ processAfterObjectValue(char, i);
349
+ }
350
+ break;
351
+ }
352
+ case "]": {
353
+ stack.pop();
354
+ if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") {
355
+ processAfterArrayValue(char, i);
356
+ }
357
+ break;
358
+ }
359
+ default: {
360
+ stack.pop();
361
+ break;
362
+ }
363
+ }
364
+ break;
365
+ }
366
+ case "INSIDE_LITERAL": {
367
+ const partialLiteral = input.substring(literalStart, i + 1);
368
+ if (!"false".startsWith(partialLiteral) && !"true".startsWith(partialLiteral) && !"null".startsWith(partialLiteral)) {
369
+ stack.pop();
370
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") {
371
+ processAfterObjectValue(char, i);
372
+ } else if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") {
373
+ processAfterArrayValue(char, i);
374
+ }
375
+ } else {
376
+ lastValidIndex = i;
377
+ }
378
+ break;
379
+ }
380
+ }
381
+ }
382
+ let result = input.slice(0, lastValidIndex + 1);
383
+ for (let i = stack.length - 1; i >= 0; i--) {
384
+ const state = stack[i];
385
+ switch (state) {
386
+ case "INSIDE_STRING": {
387
+ result += '"';
388
+ break;
389
+ }
390
+ case "INSIDE_OBJECT_KEY":
391
+ case "INSIDE_OBJECT_AFTER_KEY":
392
+ case "INSIDE_OBJECT_AFTER_COMMA":
393
+ case "INSIDE_OBJECT_START":
394
+ case "INSIDE_OBJECT_BEFORE_VALUE":
395
+ case "INSIDE_OBJECT_AFTER_VALUE": {
396
+ result += "}";
397
+ break;
398
+ }
399
+ case "INSIDE_ARRAY_START":
400
+ case "INSIDE_ARRAY_AFTER_COMMA":
401
+ case "INSIDE_ARRAY_AFTER_VALUE": {
402
+ result += "]";
403
+ break;
404
+ }
405
+ case "INSIDE_LITERAL": {
406
+ const partialLiteral = input.substring(literalStart, input.length);
407
+ if ("true".startsWith(partialLiteral)) {
408
+ result += "true".slice(partialLiteral.length);
409
+ } else if ("false".startsWith(partialLiteral)) {
410
+ result += "false".slice(partialLiteral.length);
411
+ } else if ("null".startsWith(partialLiteral)) {
412
+ result += "null".slice(partialLiteral.length);
413
+ }
414
+ }
415
+ }
416
+ }
417
+ return result;
418
+ }
419
+
420
+ // src/parse-partial-json.ts
421
+ function parsePartialJson(jsonText) {
422
+ if (jsonText === void 0) {
423
+ return { value: void 0, state: "undefined-input" };
424
+ }
425
+ let result = safeParseJSON({ text: jsonText });
426
+ if (result.success) {
427
+ return { value: result.value, state: "successful-parse" };
428
+ }
429
+ result = safeParseJSON({ text: fixJson(jsonText) });
430
+ if (result.success) {
431
+ return { value: result.value, state: "repaired-parse" };
432
+ }
433
+ return { value: void 0, state: "failed-parse" };
434
+ }
435
+
436
+ // src/data-stream-parts.ts
437
+ var textStreamPart2 = {
438
+ code: "0",
439
+ name: "text",
440
+ parse: (value) => {
441
+ if (typeof value !== "string") {
442
+ throw new Error('"text" parts expect a string value.');
443
+ }
444
+ return { type: "text", value };
445
+ }
446
+ };
447
+ var dataStreamPart = {
448
+ code: "2",
449
+ name: "data",
450
+ parse: (value) => {
451
+ if (!Array.isArray(value)) {
452
+ throw new Error('"data" parts expect an array value.');
453
+ }
454
+ return { type: "data", value };
455
+ }
456
+ };
457
+ var errorStreamPart2 = {
458
+ code: "3",
459
+ name: "error",
460
+ parse: (value) => {
461
+ if (typeof value !== "string") {
462
+ throw new Error('"error" parts expect a string value.');
463
+ }
464
+ return { type: "error", value };
465
+ }
466
+ };
467
+ var messageAnnotationsStreamPart = {
468
+ code: "8",
469
+ name: "message_annotations",
470
+ parse: (value) => {
471
+ if (!Array.isArray(value)) {
472
+ throw new Error('"message_annotations" parts expect an array value.');
473
+ }
474
+ return { type: "message_annotations", value };
475
+ }
476
+ };
477
+ var toolCallStreamPart = {
478
+ code: "9",
479
+ name: "tool_call",
480
+ parse: (value) => {
481
+ if (value == null || typeof value !== "object" || !("toolCallId" in value) || typeof value.toolCallId !== "string" || !("toolName" in value) || typeof value.toolName !== "string" || !("args" in value) || typeof value.args !== "object") {
482
+ throw new Error(
483
+ '"tool_call" parts expect an object with a "toolCallId", "toolName", and "args" property.'
484
+ );
485
+ }
486
+ return {
487
+ type: "tool_call",
488
+ value
489
+ };
490
+ }
491
+ };
492
+ var toolResultStreamPart = {
493
+ code: "a",
494
+ name: "tool_result",
495
+ parse: (value) => {
496
+ if (value == null || typeof value !== "object" || !("toolCallId" in value) || typeof value.toolCallId !== "string" || !("result" in value)) {
497
+ throw new Error(
498
+ '"tool_result" parts expect an object with a "toolCallId" and a "result" property.'
499
+ );
500
+ }
501
+ return {
502
+ type: "tool_result",
503
+ value
504
+ };
505
+ }
506
+ };
507
+ var toolCallStreamingStartStreamPart = {
508
+ code: "b",
509
+ name: "tool_call_streaming_start",
510
+ parse: (value) => {
511
+ if (value == null || typeof value !== "object" || !("toolCallId" in value) || typeof value.toolCallId !== "string" || !("toolName" in value) || typeof value.toolName !== "string") {
512
+ throw new Error(
513
+ '"tool_call_streaming_start" parts expect an object with a "toolCallId" and "toolName" property.'
514
+ );
515
+ }
516
+ return {
517
+ type: "tool_call_streaming_start",
518
+ value
519
+ };
520
+ }
521
+ };
522
+ var toolCallDeltaStreamPart = {
523
+ code: "c",
524
+ name: "tool_call_delta",
525
+ parse: (value) => {
526
+ if (value == null || typeof value !== "object" || !("toolCallId" in value) || typeof value.toolCallId !== "string" || !("argsTextDelta" in value) || typeof value.argsTextDelta !== "string") {
527
+ throw new Error(
528
+ '"tool_call_delta" parts expect an object with a "toolCallId" and "argsTextDelta" property.'
529
+ );
530
+ }
531
+ return {
532
+ type: "tool_call_delta",
533
+ value
534
+ };
535
+ }
536
+ };
537
+ var finishMessageStreamPart = {
538
+ code: "d",
539
+ name: "finish_message",
540
+ parse: (value) => {
541
+ if (value == null || typeof value !== "object" || !("finishReason" in value) || typeof value.finishReason !== "string") {
542
+ throw new Error(
543
+ '"finish_message" parts expect an object with a "finishReason" property.'
544
+ );
545
+ }
546
+ const result = {
547
+ finishReason: value.finishReason
548
+ };
549
+ if ("usage" in value && value.usage != null && typeof value.usage === "object" && "promptTokens" in value.usage && "completionTokens" in value.usage) {
550
+ result.usage = {
551
+ promptTokens: typeof value.usage.promptTokens === "number" ? value.usage.promptTokens : Number.NaN,
552
+ completionTokens: typeof value.usage.completionTokens === "number" ? value.usage.completionTokens : Number.NaN
553
+ };
554
+ }
555
+ return {
556
+ type: "finish_message",
557
+ value: result
558
+ };
559
+ }
560
+ };
561
+ var finishStepStreamPart = {
562
+ code: "e",
563
+ name: "finish_step",
564
+ parse: (value) => {
565
+ if (value == null || typeof value !== "object" || !("finishReason" in value) || typeof value.finishReason !== "string") {
566
+ throw new Error(
567
+ '"finish_step" parts expect an object with a "finishReason" property.'
568
+ );
569
+ }
570
+ const result = {
571
+ finishReason: value.finishReason,
572
+ isContinued: false
573
+ };
574
+ if ("usage" in value && value.usage != null && typeof value.usage === "object" && "promptTokens" in value.usage && "completionTokens" in value.usage) {
575
+ result.usage = {
576
+ promptTokens: typeof value.usage.promptTokens === "number" ? value.usage.promptTokens : Number.NaN,
577
+ completionTokens: typeof value.usage.completionTokens === "number" ? value.usage.completionTokens : Number.NaN
578
+ };
579
+ }
580
+ if ("isContinued" in value && typeof value.isContinued === "boolean") {
581
+ result.isContinued = value.isContinued;
582
+ }
583
+ return {
584
+ type: "finish_step",
585
+ value: result
586
+ };
587
+ }
588
+ };
589
+ var startStepStreamPart = {
590
+ code: "f",
591
+ name: "start_step",
592
+ parse: (value) => {
593
+ if (value == null || typeof value !== "object" || !("messageId" in value) || typeof value.messageId !== "string") {
594
+ throw new Error(
595
+ '"start_step" parts expect an object with an "id" property.'
596
+ );
597
+ }
598
+ return {
599
+ type: "start_step",
600
+ value: {
601
+ messageId: value.messageId
602
+ }
603
+ };
604
+ }
605
+ };
606
+ var reasoningStreamPart = {
607
+ code: "g",
608
+ name: "reasoning",
609
+ parse: (value) => {
610
+ if (typeof value !== "string") {
611
+ throw new Error('"reasoning" parts expect a string value.');
612
+ }
613
+ return { type: "reasoning", value };
614
+ }
615
+ };
616
+ var sourcePart = {
617
+ code: "h",
618
+ name: "source",
619
+ parse: (value) => {
620
+ if (value == null || typeof value !== "object") {
621
+ throw new Error('"source" parts expect a Source object.');
622
+ }
623
+ return {
624
+ type: "source",
625
+ value
626
+ };
627
+ }
628
+ };
629
+ var redactedReasoningStreamPart = {
630
+ code: "i",
631
+ name: "redacted_reasoning",
632
+ parse: (value) => {
633
+ if (value == null || typeof value !== "object" || !("data" in value) || typeof value.data !== "string") {
634
+ throw new Error(
635
+ '"redacted_reasoning" parts expect an object with a "data" property.'
636
+ );
637
+ }
638
+ return { type: "redacted_reasoning", value: { data: value.data } };
639
+ }
640
+ };
641
+ var reasoningSignatureStreamPart = {
642
+ code: "j",
643
+ name: "reasoning_signature",
644
+ parse: (value) => {
645
+ if (value == null || typeof value !== "object" || !("signature" in value) || typeof value.signature !== "string") {
646
+ throw new Error(
647
+ '"reasoning_signature" parts expect an object with a "signature" property.'
648
+ );
649
+ }
650
+ return {
651
+ type: "reasoning_signature",
652
+ value: { signature: value.signature }
653
+ };
654
+ }
655
+ };
656
+ var fileStreamPart = {
657
+ code: "k",
658
+ name: "file",
659
+ parse: (value) => {
660
+ if (value == null || typeof value !== "object" || !("data" in value) || typeof value.data !== "string" || !("mimeType" in value) || typeof value.mimeType !== "string") {
661
+ throw new Error(
662
+ '"file" parts expect an object with a "data" and "mimeType" property.'
663
+ );
664
+ }
665
+ return { type: "file", value };
666
+ }
667
+ };
668
+ var dataStreamParts = [
669
+ textStreamPart2,
670
+ dataStreamPart,
671
+ errorStreamPart2,
672
+ messageAnnotationsStreamPart,
673
+ toolCallStreamPart,
674
+ toolResultStreamPart,
675
+ toolCallStreamingStartStreamPart,
676
+ toolCallDeltaStreamPart,
677
+ finishMessageStreamPart,
678
+ finishStepStreamPart,
679
+ startStepStreamPart,
680
+ reasoningStreamPart,
681
+ sourcePart,
682
+ redactedReasoningStreamPart,
683
+ reasoningSignatureStreamPart,
684
+ fileStreamPart
685
+ ];
686
+ Object.fromEntries(
687
+ dataStreamParts.map((part) => [part.code, part])
688
+ );
689
+ Object.fromEntries(
690
+ dataStreamParts.map((part) => [part.name, part.code])
691
+ );
692
+ dataStreamParts.map((part) => part.code);
693
+ function formatDataStreamPart(type, value) {
694
+ const streamPart = dataStreamParts.find((part) => part.name === type);
695
+ if (!streamPart) {
696
+ throw new Error(`Invalid stream part type: ${type}`);
697
+ }
698
+ return `${streamPart.code}:${JSON.stringify(value)}
699
+ `;
700
+ }
701
+ function zodSchema(zodSchema2, options) {
702
+ var _a;
703
+ const useReferences = (_a = void 0 ) != null ? _a : false;
704
+ return jsonSchema(
705
+ zodToJsonSchema(zodSchema2, {
706
+ $refStrategy: useReferences ? "root" : "none",
707
+ target: "jsonSchema7"
708
+ // note: openai mode breaks various gemini conversions
709
+ }),
710
+ {
711
+ validate: (value) => {
712
+ const result = zodSchema2.safeParse(value);
713
+ return result.success ? { success: true, value: result.data } : { success: false, error: result.error };
714
+ }
715
+ }
716
+ );
717
+ }
718
+
719
+ // src/schema.ts
720
+ var schemaSymbol = Symbol.for("vercel.ai.schema");
721
+ function jsonSchema(jsonSchema2, {
722
+ validate
723
+ } = {}) {
724
+ return {
725
+ [schemaSymbol]: true,
726
+ _type: void 0,
727
+ // should never be used directly
728
+ [validatorSymbol]: true,
729
+ jsonSchema: jsonSchema2,
730
+ validate
731
+ };
732
+ }
733
+ function isSchema(value) {
734
+ return typeof value === "object" && value !== null && schemaSymbol in value && value[schemaSymbol] === true && "jsonSchema" in value && "validate" in value;
735
+ }
736
+ function asSchema(schema) {
737
+ return isSchema(schema) ? schema : zodSchema(schema);
738
+ }
739
+
740
+ export { asSchema, formatDataStreamPart, jsonSchema, parsePartialJson, zodSchema };
741
+ //# sourceMappingURL=index.js.map