@byline/ai 1.9.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 (248) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -0
  3. package/dist/@types.d.ts +103 -0
  4. package/dist/@types.d.ts.map +1 -0
  5. package/dist/@types.js +68 -0
  6. package/dist/@types.js.map +1 -0
  7. package/dist/config/ai-config.d.ts +76 -0
  8. package/dist/config/ai-config.d.ts.map +1 -0
  9. package/dist/config/ai-config.js +108 -0
  10. package/dist/config/ai-config.js.map +1 -0
  11. package/dist/config/ai-config.test.node.d.ts +9 -0
  12. package/dist/config/ai-config.test.node.d.ts.map +1 -0
  13. package/dist/config/ai-config.test.node.js +31 -0
  14. package/dist/config/ai-config.test.node.js.map +1 -0
  15. package/dist/config/ai-provider.d.ts +17 -0
  16. package/dist/config/ai-provider.d.ts.map +1 -0
  17. package/dist/config/ai-provider.js +32 -0
  18. package/dist/config/ai-provider.js.map +1 -0
  19. package/dist/execute.d.ts +15 -0
  20. package/dist/execute.d.ts.map +1 -0
  21. package/dist/execute.js +473 -0
  22. package/dist/execute.js.map +1 -0
  23. package/dist/generate.d.ts +64 -0
  24. package/dist/generate.d.ts.map +1 -0
  25. package/dist/generate.js +235 -0
  26. package/dist/generate.js.map +1 -0
  27. package/dist/index.d.ts +28 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +43 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/lexical-text-edits.d.ts +23 -0
  32. package/dist/lexical-text-edits.d.ts.map +1 -0
  33. package/dist/lexical-text-edits.js +62 -0
  34. package/dist/lexical-text-edits.js.map +1 -0
  35. package/dist/lib/logger.d.ts +10 -0
  36. package/dist/lib/logger.d.ts.map +1 -0
  37. package/dist/lib/logger.js +16 -0
  38. package/dist/lib/logger.js.map +1 -0
  39. package/dist/models/anthropic/anthropic-models.d.ts +14 -0
  40. package/dist/models/anthropic/anthropic-models.d.ts.map +1 -0
  41. package/dist/models/anthropic/anthropic-models.js +41 -0
  42. package/dist/models/anthropic/anthropic-models.js.map +1 -0
  43. package/dist/models/anthropic/anthropic.d.ts +9 -0
  44. package/dist/models/anthropic/anthropic.d.ts.map +1 -0
  45. package/dist/models/anthropic/anthropic.js +20 -0
  46. package/dist/models/anthropic/anthropic.js.map +1 -0
  47. package/dist/models/anthropic/generate-native.d.ts +59 -0
  48. package/dist/models/anthropic/generate-native.d.ts.map +1 -0
  49. package/dist/models/anthropic/generate-native.js +271 -0
  50. package/dist/models/anthropic/generate-native.js.map +1 -0
  51. package/dist/models/anthropic/generate-vercel.d.ts +59 -0
  52. package/dist/models/anthropic/generate-vercel.d.ts.map +1 -0
  53. package/dist/models/anthropic/generate-vercel.js +126 -0
  54. package/dist/models/anthropic/generate-vercel.js.map +1 -0
  55. package/dist/models/anthropic/generate.d.ts +16 -0
  56. package/dist/models/anthropic/generate.d.ts.map +1 -0
  57. package/dist/models/anthropic/generate.js +28 -0
  58. package/dist/models/anthropic/generate.js.map +1 -0
  59. package/dist/models/anthropic/generate.test.node.d.ts +9 -0
  60. package/dist/models/anthropic/generate.test.node.d.ts.map +1 -0
  61. package/dist/models/anthropic/generate.test.node.js +106 -0
  62. package/dist/models/anthropic/generate.test.node.js.map +1 -0
  63. package/dist/models/anthropic/patch-native.d.ts +33 -0
  64. package/dist/models/anthropic/patch-native.d.ts.map +1 -0
  65. package/dist/models/anthropic/patch-native.js +152 -0
  66. package/dist/models/anthropic/patch-native.js.map +1 -0
  67. package/dist/models/anthropic/patch-vercel.d.ts +33 -0
  68. package/dist/models/anthropic/patch-vercel.d.ts.map +1 -0
  69. package/dist/models/anthropic/patch-vercel.js +47 -0
  70. package/dist/models/anthropic/patch-vercel.js.map +1 -0
  71. package/dist/models/anthropic/patch.d.ts +12 -0
  72. package/dist/models/anthropic/patch.d.ts.map +1 -0
  73. package/dist/models/anthropic/patch.js +16 -0
  74. package/dist/models/anthropic/patch.js.map +1 -0
  75. package/dist/models/anthropic/patch.test.node.d.ts +9 -0
  76. package/dist/models/anthropic/patch.test.node.d.ts.map +1 -0
  77. package/dist/models/anthropic/patch.test.node.js +110 -0
  78. package/dist/models/anthropic/patch.test.node.js.map +1 -0
  79. package/dist/models/anthropic/schema.d.ts +212 -0
  80. package/dist/models/anthropic/schema.d.ts.map +1 -0
  81. package/dist/models/anthropic/schema.js +131 -0
  82. package/dist/models/anthropic/schema.js.map +1 -0
  83. package/dist/models/google/generate-native.d.ts +59 -0
  84. package/dist/models/google/generate-native.d.ts.map +1 -0
  85. package/dist/models/google/generate-native.js +244 -0
  86. package/dist/models/google/generate-native.js.map +1 -0
  87. package/dist/models/google/generate-vercel.d.ts +59 -0
  88. package/dist/models/google/generate-vercel.d.ts.map +1 -0
  89. package/dist/models/google/generate-vercel.js +133 -0
  90. package/dist/models/google/generate-vercel.js.map +1 -0
  91. package/dist/models/google/generate.d.ts +16 -0
  92. package/dist/models/google/generate.d.ts.map +1 -0
  93. package/dist/models/google/generate.js +28 -0
  94. package/dist/models/google/generate.js.map +1 -0
  95. package/dist/models/google/generate.test.node.d.ts +9 -0
  96. package/dist/models/google/generate.test.node.d.ts.map +1 -0
  97. package/dist/models/google/generate.test.node.js +106 -0
  98. package/dist/models/google/generate.test.node.js.map +1 -0
  99. package/dist/models/google/google-models.d.ts +14 -0
  100. package/dist/models/google/google-models.d.ts.map +1 -0
  101. package/dist/models/google/google-models.js +25 -0
  102. package/dist/models/google/google-models.js.map +1 -0
  103. package/dist/models/google/normalize-generated-doc.d.ts +10 -0
  104. package/dist/models/google/normalize-generated-doc.d.ts.map +1 -0
  105. package/dist/models/google/normalize-generated-doc.js +48 -0
  106. package/dist/models/google/normalize-generated-doc.js.map +1 -0
  107. package/dist/models/google/patch-native.d.ts +33 -0
  108. package/dist/models/google/patch-native.d.ts.map +1 -0
  109. package/dist/models/google/patch-native.js +164 -0
  110. package/dist/models/google/patch-native.js.map +1 -0
  111. package/dist/models/google/patch-vercel.d.ts +33 -0
  112. package/dist/models/google/patch-vercel.d.ts.map +1 -0
  113. package/dist/models/google/patch-vercel.js +49 -0
  114. package/dist/models/google/patch-vercel.js.map +1 -0
  115. package/dist/models/google/patch.d.ts +12 -0
  116. package/dist/models/google/patch.d.ts.map +1 -0
  117. package/dist/models/google/patch.js +16 -0
  118. package/dist/models/google/patch.js.map +1 -0
  119. package/dist/models/google/patch.test.node.d.ts +9 -0
  120. package/dist/models/google/patch.test.node.d.ts.map +1 -0
  121. package/dist/models/google/patch.test.node.js +110 -0
  122. package/dist/models/google/patch.test.node.js.map +1 -0
  123. package/dist/models/google/schema.d.ts +416 -0
  124. package/dist/models/google/schema.d.ts.map +1 -0
  125. package/dist/models/google/schema.js +254 -0
  126. package/dist/models/google/schema.js.map +1 -0
  127. package/dist/models/openai/generate-native.d.ts +65 -0
  128. package/dist/models/openai/generate-native.d.ts.map +1 -0
  129. package/dist/models/openai/generate-native.js +276 -0
  130. package/dist/models/openai/generate-native.js.map +1 -0
  131. package/dist/models/openai/generate-vercel.d.ts +59 -0
  132. package/dist/models/openai/generate-vercel.d.ts.map +1 -0
  133. package/dist/models/openai/generate-vercel.js +132 -0
  134. package/dist/models/openai/generate-vercel.js.map +1 -0
  135. package/dist/models/openai/generate.d.ts +16 -0
  136. package/dist/models/openai/generate.d.ts.map +1 -0
  137. package/dist/models/openai/generate.js +28 -0
  138. package/dist/models/openai/generate.js.map +1 -0
  139. package/dist/models/openai/generate.test.node.d.ts +9 -0
  140. package/dist/models/openai/generate.test.node.d.ts.map +1 -0
  141. package/dist/models/openai/generate.test.node.js +106 -0
  142. package/dist/models/openai/generate.test.node.js.map +1 -0
  143. package/dist/models/openai/openai-models.d.ts +14 -0
  144. package/dist/models/openai/openai-models.d.ts.map +1 -0
  145. package/dist/models/openai/openai-models.js +23 -0
  146. package/dist/models/openai/openai-models.js.map +1 -0
  147. package/dist/models/openai/patch-native.d.ts +33 -0
  148. package/dist/models/openai/patch-native.d.ts.map +1 -0
  149. package/dist/models/openai/patch-native.js +151 -0
  150. package/dist/models/openai/patch-native.js.map +1 -0
  151. package/dist/models/openai/patch-vercel.d.ts +33 -0
  152. package/dist/models/openai/patch-vercel.d.ts.map +1 -0
  153. package/dist/models/openai/patch-vercel.js +49 -0
  154. package/dist/models/openai/patch-vercel.js.map +1 -0
  155. package/dist/models/openai/patch.d.ts +12 -0
  156. package/dist/models/openai/patch.d.ts.map +1 -0
  157. package/dist/models/openai/patch.js +16 -0
  158. package/dist/models/openai/patch.js.map +1 -0
  159. package/dist/models/openai/patch.test.node.d.ts +9 -0
  160. package/dist/models/openai/patch.test.node.d.ts.map +1 -0
  161. package/dist/models/openai/patch.test.node.js +110 -0
  162. package/dist/models/openai/patch.test.node.js.map +1 -0
  163. package/dist/models/openai/schema.d.ts +460 -0
  164. package/dist/models/openai/schema.d.ts.map +1 -0
  165. package/dist/models/openai/schema.js +327 -0
  166. package/dist/models/openai/schema.js.map +1 -0
  167. package/dist/patch.d.ts +45 -0
  168. package/dist/patch.d.ts.map +1 -0
  169. package/dist/patch.js +138 -0
  170. package/dist/patch.js.map +1 -0
  171. package/dist/plugins/ai-plugin-base.d.ts +40 -0
  172. package/dist/plugins/ai-plugin-base.d.ts.map +1 -0
  173. package/dist/plugins/ai-plugin-base.js +218 -0
  174. package/dist/plugins/ai-plugin-base.js.map +1 -0
  175. package/dist/plugins/ai-plugin.css +181 -0
  176. package/dist/plugins/lexical/create-empty-editor-state.d.ts +32 -0
  177. package/dist/plugins/lexical/create-empty-editor-state.d.ts.map +1 -0
  178. package/dist/plugins/lexical/create-empty-editor-state.js +51 -0
  179. package/dist/plugins/lexical/create-empty-editor-state.js.map +1 -0
  180. package/dist/plugins/lexical/import-html.d.ts +10 -0
  181. package/dist/plugins/lexical/import-html.d.ts.map +1 -0
  182. package/dist/plugins/lexical/import-html.js +31 -0
  183. package/dist/plugins/lexical/import-html.js.map +1 -0
  184. package/dist/plugins/lexical/index.d.ts +9 -0
  185. package/dist/plugins/lexical/index.d.ts.map +1 -0
  186. package/dist/plugins/lexical/index.js +9 -0
  187. package/dist/plugins/lexical/index.js.map +1 -0
  188. package/dist/plugins/lexical/plugin.d.ts +11 -0
  189. package/dist/plugins/lexical/plugin.d.ts.map +1 -0
  190. package/dist/plugins/lexical/plugin.js +305 -0
  191. package/dist/plugins/lexical/plugin.js.map +1 -0
  192. package/dist/plugins/storage.d.ts +18 -0
  193. package/dist/plugins/storage.d.ts.map +1 -0
  194. package/dist/plugins/storage.js +57 -0
  195. package/dist/plugins/storage.js.map +1 -0
  196. package/dist/plugins/streaming-preview.d.ts +12 -0
  197. package/dist/plugins/streaming-preview.d.ts.map +1 -0
  198. package/dist/plugins/streaming-preview.js +24 -0
  199. package/dist/plugins/streaming-preview.js.map +1 -0
  200. package/dist/plugins/text/index.d.ts +9 -0
  201. package/dist/plugins/text/index.d.ts.map +1 -0
  202. package/dist/plugins/text/index.js +9 -0
  203. package/dist/plugins/text/index.js.map +1 -0
  204. package/dist/plugins/text/plugin.d.ts +18 -0
  205. package/dist/plugins/text/plugin.d.ts.map +1 -0
  206. package/dist/plugins/text/plugin.js +261 -0
  207. package/dist/plugins/text/plugin.js.map +1 -0
  208. package/dist/prompts.d.ts +30 -0
  209. package/dist/prompts.d.ts.map +1 -0
  210. package/dist/prompts.js +83 -0
  211. package/dist/prompts.js.map +1 -0
  212. package/dist/schemas/lexical-json-schema.d.ts +68 -0
  213. package/dist/schemas/lexical-json-schema.d.ts.map +1 -0
  214. package/dist/schemas/lexical-json-schema.js +434 -0
  215. package/dist/schemas/lexical-json-schema.js.map +1 -0
  216. package/dist/scripts/list-models.d.ts +9 -0
  217. package/dist/scripts/list-models.d.ts.map +1 -0
  218. package/dist/scripts/list-models.js +55 -0
  219. package/dist/scripts/list-models.js.map +1 -0
  220. package/dist/server.d.ts +25 -0
  221. package/dist/server.d.ts.map +1 -0
  222. package/dist/server.js +22 -0
  223. package/dist/server.js.map +1 -0
  224. package/dist/utils/convert-to-lexical.d.ts +62 -0
  225. package/dist/utils/convert-to-lexical.d.ts.map +1 -0
  226. package/dist/utils/convert-to-lexical.js +210 -0
  227. package/dist/utils/convert-to-lexical.js.map +1 -0
  228. package/dist/utils/create-empty-editor-state.d.ts +32 -0
  229. package/dist/utils/create-empty-editor-state.d.ts.map +1 -0
  230. package/dist/utils/create-empty-editor-state.js +51 -0
  231. package/dist/utils/create-empty-editor-state.js.map +1 -0
  232. package/dist/utils/has-text.d.ts +10 -0
  233. package/dist/utils/has-text.d.ts.map +1 -0
  234. package/dist/utils/has-text.js +35 -0
  235. package/dist/utils/has-text.js.map +1 -0
  236. package/dist/utils/has-text.test.d.ts +9 -0
  237. package/dist/utils/has-text.test.d.ts.map +1 -0
  238. package/dist/utils/has-text.test.js +69 -0
  239. package/dist/utils/has-text.test.js.map +1 -0
  240. package/dist/utils/is-object-schema.d.ts +17 -0
  241. package/dist/utils/is-object-schema.d.ts.map +1 -0
  242. package/dist/utils/is-object-schema.js +19 -0
  243. package/dist/utils/is-object-schema.js.map +1 -0
  244. package/dist/utils/lexical-text-edits.d.ts +23 -0
  245. package/dist/utils/lexical-text-edits.d.ts.map +1 -0
  246. package/dist/utils/lexical-text-edits.js +62 -0
  247. package/dist/utils/lexical-text-edits.js.map +1 -0
  248. package/package.json +111 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Infonomic Company Limited.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,4 @@
1
+ # Infonomic AI
2
+
3
+ Library components for AI
4
+
@@ -0,0 +1,103 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import { z } from 'zod';
9
+ export declare const PROVIDERS: readonly ["openai", "google", "anthropic"];
10
+ export declare const INSTRUCTION_MODES: readonly ["new", "new_with_context", "patch"];
11
+ export type InstructionMode = (typeof INSTRUCTION_MODES)[number];
12
+ export type OutputPreference = {
13
+ type: 'structured';
14
+ } | {
15
+ type: 'html';
16
+ } | {
17
+ type: 'text';
18
+ length: 'short' | 'long';
19
+ maxLength?: number;
20
+ };
21
+ export type ExecuteInstructionInput = {
22
+ type: 'structured';
23
+ editorJson: string;
24
+ } | {
25
+ type: 'text';
26
+ text: string;
27
+ };
28
+ export type ExecuteInstructionParams = {
29
+ prompt: string;
30
+ mode: InstructionMode;
31
+ input: ExecuteInstructionInput;
32
+ sdk: InstructionSdk;
33
+ provider: Provider;
34
+ model: string;
35
+ output?: OutputPreference;
36
+ };
37
+ export type ExecuteInstructionOptions = {
38
+ streaming?: boolean;
39
+ signal?: AbortSignal;
40
+ timeoutMs?: number;
41
+ telemetryContext?: Record<string, unknown>;
42
+ };
43
+ export type ExecuteInstruction = {
44
+ params: ExecuteInstructionParams;
45
+ options?: ExecuteInstructionOptions;
46
+ };
47
+ export declare const SDKS: readonly ["native", "vercel"];
48
+ export type Sdk = (typeof SDKS)[number];
49
+ export declare const normalizeSdk: (value: unknown) => Sdk;
50
+ export interface InstructionState {
51
+ errors: {
52
+ prompt?: string[] | undefined;
53
+ editor?: string[] | undefined;
54
+ };
55
+ message?: string;
56
+ editor?: any;
57
+ html?: string;
58
+ text?: string;
59
+ format?: 'lexical' | 'html' | 'text';
60
+ prompt?: string;
61
+ lastRun?: number | null;
62
+ status: 'success' | 'failed' | 'idle';
63
+ }
64
+ export declare const instructionSchema: z.ZodObject<{
65
+ prompt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
66
+ mode: z.ZodEnum<{
67
+ new: "new";
68
+ new_with_context: "new_with_context";
69
+ patch: "patch";
70
+ }>;
71
+ input: z.ZodDiscriminatedUnion<[z.ZodObject<{
72
+ type: z.ZodLiteral<"structured">;
73
+ editorJson: z.ZodString;
74
+ }, z.core.$strip>, z.ZodObject<{
75
+ type: z.ZodLiteral<"text">;
76
+ text: z.ZodString;
77
+ }, z.core.$strip>], "type">;
78
+ provider: z.ZodEnum<{
79
+ openai: "openai";
80
+ google: "google";
81
+ anthropic: "anthropic";
82
+ }>;
83
+ model: z.ZodString;
84
+ sdk: z.ZodEnum<{
85
+ native: "native";
86
+ vercel: "vercel";
87
+ }>;
88
+ output: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
89
+ type: z.ZodLiteral<"structured">;
90
+ }, z.core.$strip>, z.ZodObject<{
91
+ type: z.ZodLiteral<"html">;
92
+ }, z.core.$strip>, z.ZodObject<{
93
+ type: z.ZodLiteral<"text">;
94
+ length: z.ZodEnum<{
95
+ short: "short";
96
+ long: "long";
97
+ }>;
98
+ maxLength: z.ZodOptional<z.ZodNumber>;
99
+ }, z.core.$strip>], "type">>;
100
+ }, z.core.$strip>;
101
+ export type Provider = z.infer<typeof instructionSchema>['provider'];
102
+ export type InstructionSdk = z.infer<typeof instructionSchema>['sdk'];
103
+ //# sourceMappingURL=@types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@types.d.ts","sourceRoot":"","sources":["../src/@types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,SAAS,4CAA6C,CAAA;AAEnE,eAAO,MAAM,iBAAiB,+CAAgD,CAAA;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhE,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAElE,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAElC,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,uBAAuB,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,wBAAwB,CAAA;IAChC,OAAO,CAAC,EAAE,yBAAyB,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,IAAI,+BAAgC,CAAA;AACjD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvC,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,GAI7C,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;QAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;KAC9B,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;CACtC;AA+BD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0B5B,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAA;AACpE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAA"}
package/dist/@types.js ADDED
@@ -0,0 +1,68 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import { z } from 'zod';
9
+ export const PROVIDERS = ['openai', 'google', 'anthropic'];
10
+ export const INSTRUCTION_MODES = ['new', 'new_with_context', 'patch'];
11
+ export const SDKS = ['native', 'vercel'];
12
+ export const normalizeSdk = (value) => {
13
+ if (typeof value !== 'string')
14
+ return 'native';
15
+ const normalized = value.trim().toLowerCase();
16
+ return normalized === 'vercel' ? 'vercel' : 'native';
17
+ };
18
+ const outputPreferenceSchema = z
19
+ .discriminatedUnion('type', [
20
+ z.object({ type: z.literal('structured') }),
21
+ z.object({ type: z.literal('html') }),
22
+ z.object({
23
+ type: z.literal('text'),
24
+ length: z.enum(['short', 'long']),
25
+ maxLength: z.number().optional(),
26
+ }),
27
+ ])
28
+ .optional();
29
+ const inputSchema = z.discriminatedUnion('type', [
30
+ z.object({
31
+ type: z.literal('structured'),
32
+ editorJson: z.string({
33
+ error: (issue) => issue.input === undefined ? 'Editor state is required.' : 'Editor state must be a string.',
34
+ }),
35
+ }),
36
+ z.object({
37
+ type: z.literal('text'),
38
+ text: z.string({
39
+ error: (issue) => issue.input === undefined ? 'Input text is required.' : 'Input text must be a string.',
40
+ }),
41
+ }),
42
+ ]);
43
+ export const instructionSchema = z.object({
44
+ prompt: z
45
+ .string({
46
+ error: (issue) => issue.input === undefined ? 'Prompt input is required.' : 'Prompt input must be a string.',
47
+ })
48
+ .min(3, {
49
+ error: 'Prompt input must be 3 or more characters long.',
50
+ })
51
+ .transform((s) => s.trim())
52
+ .refine((s) => s.length > 0, 'Prompt input cannot be empty.'),
53
+ mode: z.enum(INSTRUCTION_MODES, {
54
+ error: 'Mode must be one of new, new_with_context, or patch.',
55
+ }),
56
+ input: inputSchema,
57
+ provider: z.enum(PROVIDERS, {
58
+ error: 'Provider must be one of openai, google, or anthropic.',
59
+ }),
60
+ model: z.string({
61
+ error: (issue) => issue.input === undefined ? 'Model is required.' : 'Model must be a string.',
62
+ }),
63
+ sdk: z.enum(SDKS, {
64
+ error: 'SDK must be one of native or vercel.',
65
+ }),
66
+ output: outputPreferenceSchema,
67
+ });
68
+ //# sourceMappingURL=@types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@types.js","sourceRoot":"","sources":["../src/@types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import { z } from 'zod';
9
+ import type { Provider } from '../@types';
10
+ /**
11
+ * Curated model configuration per application version.
12
+ * These are the models suited to text generation for our
13
+ * text and lexical editors. Update this list when adding
14
+ * or retiring models between releases. Use `pnpm list:models`
15
+ * to discover available models from each provider.
16
+ */
17
+ export declare const PROVIDER_MODELS: Record<Provider, string[]>;
18
+ export declare const DEFAULT_MODELS: Record<Provider, string>;
19
+ /**
20
+ * Server configuration schema and functions. Note that these
21
+ * values are ONLY available on the server and NOT available
22
+ * at build time and therefore not available to the browser.
23
+ * Values here are populated via the projects's .env file
24
+ * which is NOT committed to the project's Git repo and
25
+ * CAN include secrets.
26
+ */
27
+ declare const aiServerSchema: z.ZodObject<{
28
+ ai: z.ZodObject<{
29
+ defaultProvider: z.ZodEnum<{
30
+ openai: "openai";
31
+ google: "google";
32
+ anthropic: "anthropic";
33
+ }>;
34
+ openai: z.ZodObject<{
35
+ apiKey: z.ZodString;
36
+ baseUrl: z.ZodOptional<z.ZodString>;
37
+ }, z.core.$strip>;
38
+ google: z.ZodObject<{
39
+ apiKey: z.ZodString;
40
+ baseUrl: z.ZodOptional<z.ZodString>;
41
+ }, z.core.$strip>;
42
+ anthropic: z.ZodObject<{
43
+ apiKey: z.ZodString;
44
+ baseUrl: z.ZodOptional<z.ZodString>;
45
+ }, z.core.$strip>;
46
+ }, z.core.$strip>;
47
+ }, z.core.$strip>;
48
+ type AiServerConfig = z.infer<typeof aiServerSchema>;
49
+ export declare const getAiServerConfig: () => AiServerConfig;
50
+ /**
51
+ * Default path for the AI execute endpoint. Host adapters mount the
52
+ * actual handler at this path (or override via AiPublicConfigProvider).
53
+ */
54
+ export declare const DEFAULT_AI_ENDPOINT = "/api/admin/ai";
55
+ /**
56
+ * Public configuration. These values are passed to the browser via
57
+ * <AiPublicConfigProvider> and read by the AI plugins. Must NOT contain
58
+ * secrets — only transport configuration.
59
+ *
60
+ * - `endpoint`: URL the plugins POST `ExecuteInstruction` to
61
+ * - `enabled`: when explicitly `false`, wrappers may hide AI affordances
62
+ * - `fetch`: optional fetch override (auth interceptors, tests, etc.)
63
+ * - `headers`: optional headers merged into every request
64
+ */
65
+ declare const aiPublicSchema: z.ZodObject<{
66
+ endpoint: z.ZodDefault<z.ZodString>;
67
+ enabled: z.ZodOptional<z.ZodBoolean>;
68
+ }, z.core.$strip>;
69
+ type AiPublicEnvConfig = z.infer<typeof aiPublicSchema>;
70
+ export type AiPublicConfig = AiPublicEnvConfig & {
71
+ fetch?: typeof fetch;
72
+ headers?: HeadersInit;
73
+ };
74
+ export declare const getAiPublicConfig: () => AiPublicEnvConfig;
75
+ export {};
76
+ //# sourceMappingURL=ai-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../src/config/ai-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAItD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAInD,CAAA;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;iBAgBlB,CAAA;AAEF,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AA2BpD,eAAO,MAAM,iBAAiB,QAAO,cAKpC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAElD;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc;;;iBAGlB,CAAA;AAEF,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAEvD,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB,CAAA;AASD,eAAO,MAAM,iBAAiB,QAAO,iBAKpC,CAAA"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import { z } from 'zod';
9
+ /**
10
+ * Curated model configuration per application version.
11
+ * These are the models suited to text generation for our
12
+ * text and lexical editors. Update this list when adding
13
+ * or retiring models between releases. Use `pnpm list:models`
14
+ * to discover available models from each provider.
15
+ */
16
+ export const PROVIDER_MODELS = {
17
+ openai: ['gpt-5.4', 'gpt-5.4-pro', 'gpt-5.4-mini', 'gpt-5.4-nano'],
18
+ google: ['gemini-2.5-pro', 'gemini-2.5-flash'],
19
+ anthropic: ['claude-opus-4-6', 'claude-sonnet-4-6', 'claude-haiku-4-5-20251001'],
20
+ };
21
+ export const DEFAULT_MODELS = {
22
+ openai: 'gpt-5.4',
23
+ google: 'gemini-2.5-flash',
24
+ anthropic: 'claude-haiku-4-5-20251001',
25
+ };
26
+ /**
27
+ * Server configuration schema and functions. Note that these
28
+ * values are ONLY available on the server and NOT available
29
+ * at build time and therefore not available to the browser.
30
+ * Values here are populated via the projects's .env file
31
+ * which is NOT committed to the project's Git repo and
32
+ * CAN include secrets.
33
+ */
34
+ const aiServerSchema = z.object({
35
+ ai: z.object({
36
+ defaultProvider: z.enum(['openai', 'google', 'anthropic']),
37
+ openai: z.object({
38
+ apiKey: z.string(),
39
+ baseUrl: z.string().optional(),
40
+ }),
41
+ google: z.object({
42
+ apiKey: z.string(),
43
+ baseUrl: z.string().optional(),
44
+ }),
45
+ anthropic: z.object({
46
+ apiKey: z.string(),
47
+ baseUrl: z.string().optional(),
48
+ }),
49
+ }),
50
+ });
51
+ const initServerConfig = () => aiServerSchema.parse({
52
+ ai: {
53
+ defaultProvider: process.env.AI_DEFAULT_PROVIDER || 'openai',
54
+ openai: {
55
+ apiKey: process.env.OPENAI_API_KEY || '',
56
+ baseUrl: process.env.OPENAI_BASE_URL || undefined,
57
+ },
58
+ google: {
59
+ apiKey: process.env.GOOGLE_API_KEY || '',
60
+ baseUrl: process.env.GOOGLE_BASE_URL || undefined,
61
+ },
62
+ anthropic: {
63
+ apiKey: process.env.ANTHROPIC_API_KEY || '',
64
+ baseUrl: process.env.ANTHROPIC_BASE_URL || undefined,
65
+ },
66
+ },
67
+ log: {
68
+ level: process.env.LOG_LEVEL ?? 'info',
69
+ pretty: process.env.LOG_PRETTY,
70
+ },
71
+ });
72
+ let cachedAiServerConfig;
73
+ export const getAiServerConfig = () => {
74
+ if (cachedAiServerConfig == null) {
75
+ cachedAiServerConfig = initServerConfig();
76
+ }
77
+ return cachedAiServerConfig;
78
+ };
79
+ /**
80
+ * Default path for the AI execute endpoint. Host adapters mount the
81
+ * actual handler at this path (or override via AiPublicConfigProvider).
82
+ */
83
+ export const DEFAULT_AI_ENDPOINT = '/api/admin/ai';
84
+ /**
85
+ * Public configuration. These values are passed to the browser via
86
+ * <AiPublicConfigProvider> and read by the AI plugins. Must NOT contain
87
+ * secrets — only transport configuration.
88
+ *
89
+ * - `endpoint`: URL the plugins POST `ExecuteInstruction` to
90
+ * - `enabled`: when explicitly `false`, wrappers may hide AI affordances
91
+ * - `fetch`: optional fetch override (auth interceptors, tests, etc.)
92
+ * - `headers`: optional headers merged into every request
93
+ */
94
+ const aiPublicSchema = z.object({
95
+ endpoint: z.string().default(DEFAULT_AI_ENDPOINT),
96
+ enabled: z.boolean().optional(),
97
+ });
98
+ const initAiPublicConfig = () => aiPublicSchema.parse({
99
+ endpoint: process.env.BYLINE_AI_ENDPOINT ?? DEFAULT_AI_ENDPOINT,
100
+ });
101
+ let cachedAiPublicConfig;
102
+ export const getAiPublicConfig = () => {
103
+ if (cachedAiPublicConfig == null) {
104
+ cachedAiPublicConfig = initAiPublicConfig();
105
+ }
106
+ return cachedAiPublicConfig;
107
+ };
108
+ //# sourceMappingURL=ai-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../src/config/ai-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=ai-config.test.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-config.test.node.d.ts","sourceRoot":"","sources":["../../src/config/ai-config.test.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import { describe, test } from 'vitest';
9
+ import { getAiServerConfig } from './ai-config';
10
+ describe('Config tests', () => {
11
+ // NOTE: Disable caching in getAiServerConfig for 'real'
12
+ // benchmarks
13
+ test.skip('should get config quickly', () => {
14
+ // Record the start time
15
+ const startTime = performance.now();
16
+ const iterations = 10000;
17
+ let _config;
18
+ for (let i = 0; i < iterations; i++) {
19
+ // const start = performance.now();
20
+ _config = getAiServerConfig();
21
+ // totalTime += performance.now() - start;
22
+ }
23
+ // Record the end time
24
+ const endTime = performance.now();
25
+ // Calculate the time taken
26
+ const timeTaken = endTime - startTime;
27
+ console.log(`Execution time: ${timeTaken}ms`);
28
+ // console.log(config)
29
+ });
30
+ });
31
+ //# sourceMappingURL=ai-config.test.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-config.test.node.js","sourceRoot":"","sources":["../../src/config/ai-config.test.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,wDAAwD;IACxD,aAAa;IACb,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAC1C,wBAAwB;QACxB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACnC,MAAM,UAAU,GAAG,KAAK,CAAA;QACxB,IAAI,OAAY,CAAA;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,mCAAmC;YACnC,OAAO,GAAG,iBAAiB,EAAE,CAAA;YAC7B,0CAA0C;QAC5C,CAAC;QAED,sBAAsB;QACtB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAEjC,2BAA2B;QAC3B,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;QACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,IAAI,CAAC,CAAA;QAC7C,sBAAsB;IACxB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import { type ReactNode } from 'react';
9
+ import { type AiPublicConfig } from './ai-config';
10
+ export declare const AiPublicConfigContext: import("react").Context<AiPublicConfig | undefined>;
11
+ export declare const AiPublicConfigProvider: ({ config, children, }: {
12
+ config?: Partial<AiPublicConfig>;
13
+ children: ReactNode;
14
+ }) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const useAiPublicConfig: () => AiPublicConfig;
16
+ export declare const useOptionalAiPublicConfig: () => AiPublicConfig | undefined;
17
+ //# sourceMappingURL=ai-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-provider.d.ts","sourceRoot":"","sources":["../../src/config/ai-provider.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAE1E,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,aAAa,CAAA;AAEtE,eAAO,MAAM,qBAAqB,qDAAuD,CAAA;AAEzF,eAAO,MAAM,sBAAsB,GAAI,uBAGpC;IACD,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAChC,QAAQ,EAAE,SAAS,CAAA;CACpB,4CAaA,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAO,cAMpC,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,cAAc,GAAG,SAE7D,CAAA"}
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ /**
4
+ * This Source Code is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
+ *
8
+ * Copyright (c) Infonomic Company Limited
9
+ */
10
+ import { createContext, useContext, useMemo } from 'react';
11
+ import { DEFAULT_AI_ENDPOINT } from './ai-config';
12
+ export const AiPublicConfigContext = createContext(undefined);
13
+ export const AiPublicConfigProvider = ({ config, children, }) => {
14
+ const resolved = useMemo(() => ({
15
+ endpoint: config?.endpoint ?? DEFAULT_AI_ENDPOINT,
16
+ enabled: config?.enabled,
17
+ fetch: config?.fetch,
18
+ headers: config?.headers,
19
+ }), [config?.endpoint, config?.enabled, config?.fetch, config?.headers]);
20
+ return (_jsx(AiPublicConfigContext.Provider, { value: resolved, children: children }));
21
+ };
22
+ export const useAiPublicConfig = () => {
23
+ const context = useContext(AiPublicConfigContext);
24
+ if (context != null) {
25
+ return context;
26
+ }
27
+ throw new Error('useAiPublicConfig must be used within an AiPublicConfigProvider');
28
+ };
29
+ export const useOptionalAiPublicConfig = () => {
30
+ return useContext(AiPublicConfigContext);
31
+ };
32
+ //# sourceMappingURL=ai-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-provider.js","sourceRoot":"","sources":["../../src/config/ai-provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE1E,OAAO,EAAuB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAA6B,SAAS,CAAC,CAAA;AAEzF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,MAAM,EACN,QAAQ,GAIT,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,mBAAmB;QACjD,OAAO,EAAE,MAAM,EAAE,OAAO;QACxB,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,OAAO,EAAE,MAAM,EAAE,OAAO;KACzB,CAAC,EACF,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CACpE,CAAA;IACD,OAAO,CACL,KAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YAAG,QAAQ,GAAkC,CAC7F,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAmB,EAAE;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAA;IACjD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAA+B,EAAE;IACxE,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAA;AAC1C,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+ import type { ExecuteInstructionOptions, ExecuteInstructionParams, InstructionState } from './@types';
9
+ export declare function executeInstruction(params: ExecuteInstructionParams, options?: ExecuteInstructionOptions): Promise<InstructionState>;
10
+ export type ExecuteInstructionStreamingResult = {
11
+ text: AsyncIterable<string>;
12
+ final: Promise<InstructionState>;
13
+ };
14
+ export declare function executeInstructionStreaming(params: ExecuteInstructionParams, options?: ExecuteInstructionOptions): ExecuteInstructionStreamingResult;
15
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EAGxB,gBAAgB,EAGjB,MAAM,UAAU,CAAA;AAsIjB,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,gBAAgB,CAAC,CA8L3B;AAED,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACjC,CAAA;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,iCAAiC,CAsMnC"}