@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
@@ -0,0 +1,327 @@
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 const openaiHtmlGenerationSchema = {
9
+ name: 'html_generation',
10
+ strict: true,
11
+ schema: {
12
+ type: 'object',
13
+ additionalProperties: false,
14
+ properties: {
15
+ html: {
16
+ type: 'string',
17
+ description: 'The generated HTML content.',
18
+ },
19
+ },
20
+ required: ['html'],
21
+ },
22
+ };
23
+ export const openaiGenerationSchema = {
24
+ name: 'lexical_doc_blocks_v1',
25
+ strict: true,
26
+ schema: {
27
+ type: 'object',
28
+ additionalProperties: false,
29
+ properties: {
30
+ title: { anyOf: [{ type: 'string' }, { type: 'null' }] },
31
+ blocks: {
32
+ type: 'array',
33
+ items: {
34
+ anyOf: [
35
+ {
36
+ // Heading
37
+ type: 'object',
38
+ additionalProperties: false,
39
+ properties: {
40
+ kind: { type: 'string', enum: ['heading'] },
41
+ level: { type: 'number', enum: [1, 2, 3] },
42
+ inlines: {
43
+ type: 'array',
44
+ items: {
45
+ anyOf: [
46
+ {
47
+ type: 'object',
48
+ additionalProperties: false,
49
+ properties: {
50
+ kind: { type: 'string', enum: ['text'] },
51
+ text: { type: 'string' },
52
+ marks: {
53
+ type: 'object',
54
+ additionalProperties: false,
55
+ properties: {
56
+ bold: { type: 'boolean' },
57
+ italic: { type: 'boolean' },
58
+ underline: { type: 'boolean' },
59
+ code: { type: 'boolean' },
60
+ },
61
+ required: ['bold', 'italic', 'underline', 'code'],
62
+ },
63
+ },
64
+ required: ['kind', 'text', 'marks'],
65
+ },
66
+ {
67
+ type: 'object',
68
+ additionalProperties: false,
69
+ properties: {
70
+ kind: { type: 'string', enum: ['link'] },
71
+ url: { type: 'string' },
72
+ text: { type: 'string' },
73
+ marks: {
74
+ type: 'object',
75
+ additionalProperties: false,
76
+ properties: {
77
+ bold: { type: 'boolean' },
78
+ italic: { type: 'boolean' },
79
+ underline: { type: 'boolean' },
80
+ code: { type: 'boolean' },
81
+ },
82
+ required: ['bold', 'italic', 'underline', 'code'],
83
+ },
84
+ },
85
+ required: ['kind', 'url', 'text', 'marks'],
86
+ },
87
+ {
88
+ type: 'object',
89
+ additionalProperties: false,
90
+ properties: { kind: { type: 'string', enum: ['br'] } },
91
+ required: ['kind'],
92
+ },
93
+ ],
94
+ },
95
+ },
96
+ },
97
+ required: ['kind', 'level', 'inlines'],
98
+ },
99
+ {
100
+ // Paragraph
101
+ type: 'object',
102
+ additionalProperties: false,
103
+ properties: {
104
+ kind: { type: 'string', enum: ['paragraph'] },
105
+ align: { type: 'string', enum: ['start', 'center', 'right'] },
106
+ inlines: {
107
+ type: 'array',
108
+ items: {
109
+ anyOf: [
110
+ {
111
+ type: 'object',
112
+ additionalProperties: false,
113
+ properties: {
114
+ kind: { type: 'string', enum: ['text'] },
115
+ text: { type: 'string' },
116
+ marks: {
117
+ type: 'object',
118
+ additionalProperties: false,
119
+ properties: {
120
+ bold: { type: 'boolean' },
121
+ italic: { type: 'boolean' },
122
+ underline: { type: 'boolean' },
123
+ code: { type: 'boolean' },
124
+ },
125
+ required: ['bold', 'italic', 'underline', 'code'],
126
+ },
127
+ },
128
+ required: ['kind', 'text', 'marks'],
129
+ },
130
+ {
131
+ type: 'object',
132
+ additionalProperties: false,
133
+ properties: {
134
+ kind: { type: 'string', enum: ['link'] },
135
+ url: { type: 'string' },
136
+ text: { type: 'string' },
137
+ marks: {
138
+ type: 'object',
139
+ additionalProperties: false,
140
+ properties: {
141
+ bold: { type: 'boolean' },
142
+ italic: { type: 'boolean' },
143
+ underline: { type: 'boolean' },
144
+ code: { type: 'boolean' },
145
+ },
146
+ required: ['bold', 'italic', 'underline', 'code'],
147
+ },
148
+ },
149
+ required: ['kind', 'url', 'text', 'marks'],
150
+ },
151
+ {
152
+ type: 'object',
153
+ additionalProperties: false,
154
+ properties: { kind: { type: 'string', enum: ['br'] } },
155
+ required: ['kind'],
156
+ },
157
+ ],
158
+ },
159
+ },
160
+ },
161
+ required: ['kind', 'align', 'inlines'],
162
+ },
163
+ {
164
+ // List
165
+ type: 'object',
166
+ additionalProperties: false,
167
+ properties: {
168
+ kind: { type: 'string', enum: ['list'] },
169
+ listType: { type: 'string', enum: ['bullet', 'number'] },
170
+ items: {
171
+ type: 'array',
172
+ items: {
173
+ type: 'object',
174
+ additionalProperties: false,
175
+ properties: {
176
+ indent: { type: 'number', enum: [0, 1] },
177
+ blocks: {
178
+ type: 'array',
179
+ items: {
180
+ anyOf: [
181
+ {
182
+ // paragraph inside list item (reuse shape inline)
183
+ type: 'object',
184
+ additionalProperties: false,
185
+ properties: {
186
+ kind: { type: 'string', enum: ['paragraph'] },
187
+ align: { type: 'string', enum: ['start', 'center', 'right'] },
188
+ inlines: {
189
+ type: 'array',
190
+ items: {
191
+ anyOf: [
192
+ {
193
+ type: 'object',
194
+ additionalProperties: false,
195
+ properties: {
196
+ kind: { type: 'string', enum: ['text'] },
197
+ text: { type: 'string' },
198
+ marks: {
199
+ type: 'object',
200
+ additionalProperties: false,
201
+ properties: {
202
+ bold: { type: 'boolean' },
203
+ italic: { type: 'boolean' },
204
+ underline: { type: 'boolean' },
205
+ code: { type: 'boolean' },
206
+ },
207
+ required: ['bold', 'italic', 'underline', 'code'],
208
+ },
209
+ },
210
+ required: ['kind', 'text', 'marks'],
211
+ },
212
+ {
213
+ type: 'object',
214
+ additionalProperties: false,
215
+ properties: {
216
+ kind: { type: 'string', enum: ['link'] },
217
+ url: { type: 'string' },
218
+ text: { type: 'string' },
219
+ marks: {
220
+ type: 'object',
221
+ additionalProperties: false,
222
+ properties: {
223
+ bold: { type: 'boolean' },
224
+ italic: { type: 'boolean' },
225
+ underline: { type: 'boolean' },
226
+ code: { type: 'boolean' },
227
+ },
228
+ required: ['bold', 'italic', 'underline', 'code'],
229
+ },
230
+ },
231
+ required: ['kind', 'url', 'text', 'marks'],
232
+ },
233
+ {
234
+ type: 'object',
235
+ additionalProperties: false,
236
+ properties: { kind: { type: 'string', enum: ['br'] } },
237
+ required: ['kind'],
238
+ },
239
+ ],
240
+ },
241
+ },
242
+ },
243
+ required: ['kind', 'align', 'inlines'],
244
+ },
245
+ ],
246
+ },
247
+ },
248
+ },
249
+ required: ['indent', 'blocks'],
250
+ },
251
+ },
252
+ },
253
+ required: ['kind', 'listType', 'items'],
254
+ },
255
+ {
256
+ // Quote
257
+ type: 'object',
258
+ additionalProperties: false,
259
+ properties: {
260
+ kind: { type: 'string', enum: ['quote'] },
261
+ blocks: {
262
+ type: 'array',
263
+ items: {
264
+ anyOf: [
265
+ {
266
+ type: 'object',
267
+ additionalProperties: false,
268
+ properties: {
269
+ kind: { type: 'string', enum: ['paragraph'] },
270
+ align: { type: 'string', enum: ['start', 'center', 'right'] },
271
+ inlines: {
272
+ type: 'array',
273
+ items: {
274
+ anyOf: [
275
+ {
276
+ type: 'object',
277
+ additionalProperties: false,
278
+ properties: {
279
+ kind: { type: 'string', enum: ['text'] },
280
+ text: { type: 'string' },
281
+ marks: {
282
+ type: 'object',
283
+ additionalProperties: false,
284
+ properties: {
285
+ bold: { type: 'boolean' },
286
+ italic: { type: 'boolean' },
287
+ underline: { type: 'boolean' },
288
+ code: { type: 'boolean' },
289
+ },
290
+ required: ['bold', 'italic', 'underline', 'code'],
291
+ },
292
+ },
293
+ required: ['kind', 'text', 'marks'],
294
+ },
295
+ {
296
+ type: 'object',
297
+ additionalProperties: false,
298
+ properties: { kind: { type: 'string', enum: ['br'] } },
299
+ required: ['kind'],
300
+ },
301
+ ],
302
+ },
303
+ },
304
+ },
305
+ required: ['kind', 'align', 'inlines'],
306
+ },
307
+ ],
308
+ },
309
+ },
310
+ },
311
+ required: ['kind', 'blocks'],
312
+ },
313
+ {
314
+ // Horizontal rule
315
+ type: 'object',
316
+ additionalProperties: false,
317
+ properties: { kind: { type: 'string', enum: ['hr'] } },
318
+ required: ['kind'],
319
+ },
320
+ ],
321
+ },
322
+ },
323
+ },
324
+ required: ['title', 'blocks'],
325
+ },
326
+ };
327
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/models/openai/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
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 { Provider, Sdk } from './@types';
9
+ export interface PatchOptions {
10
+ provider: Provider;
11
+ apiKey: string;
12
+ modelName: string;
13
+ prompt: string;
14
+ sdk: Sdk;
15
+ editorState: any;
16
+ signal?: AbortSignal;
17
+ }
18
+ export interface PatchResult {
19
+ success: true;
20
+ editor: any;
21
+ message: string;
22
+ }
23
+ export interface PatchError {
24
+ success: false;
25
+ message: string;
26
+ errors: Record<string, string[]>;
27
+ }
28
+ export type PatchStreamingResult = {
29
+ text: AsyncIterable<string>;
30
+ final: Promise<PatchResult | PatchError>;
31
+ };
32
+ /**
33
+ * Patches an existing Lexical document by extracting text nodes,
34
+ * sending them to an AI model for editing, and applying the edits
35
+ * back to the original document structure.
36
+ *
37
+ * This preserves all formatting (headings, lists, bold, italic, etc.)
38
+ * while only modifying the text content.
39
+ */
40
+ export declare function patch(options: PatchOptions): Promise<PatchResult | PatchError>;
41
+ /**
42
+ * Streams a Lexical document patch. Only OpenAI supports streaming for now.
43
+ */
44
+ export declare function patchStreaming(options: PatchOptions): PatchStreamingResult;
45
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE7C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,EAAE,GAAG,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,IAAI,CAAA;IACb,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CACjC;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,CAAA;CACzC,CAAA;AAmDD;;;;;;;GAOG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,CAuCpF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,oBAAoB,CAiD1E"}
package/dist/patch.js ADDED
@@ -0,0 +1,138 @@
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 { extractTextNodesFromLexicalState, setAtPath } from './lexical-text-edits';
9
+ import { getPatchDoc as getPatchAnthropicDoc, getPatchDocStreaming as getPatchAnthropicDocStreaming, } from './models/anthropic/patch';
10
+ import { getPatchDoc as getPatchGeminiDoc, getPatchDocStreaming as getPatchGeminiDocStreaming, } from './models/google/patch';
11
+ import { getPatchDoc as getPatchOpenAIDoc, getPatchDocStreaming as getPatchOpenAIDocStreaming, } from './models/openai/patch';
12
+ const createEmptyTextStream = () => (async function* () {
13
+ // intentionally empty
14
+ })();
15
+ async function processPatchResult(result, extracted, editorState) {
16
+ const edits = result.edits;
17
+ if (edits.length !== extracted.length) {
18
+ return {
19
+ success: false,
20
+ message: 'AI returned an unexpected number of edits.',
21
+ errors: {},
22
+ };
23
+ }
24
+ const expectedIds = new Set(extracted.map((n) => n.id));
25
+ for (const edit of edits) {
26
+ if (!expectedIds.has(edit.id)) {
27
+ return {
28
+ success: false,
29
+ message: 'AI returned edits with unexpected ids.',
30
+ errors: {},
31
+ };
32
+ }
33
+ }
34
+ // Apply edits to the editor state (mutates editorState)
35
+ for (const edit of edits) {
36
+ const node = extracted[edit.id];
37
+ if (!node)
38
+ continue;
39
+ try {
40
+ setAtPath(editorState, node.path, edit.text);
41
+ }
42
+ catch {
43
+ // Ignore invalid paths; schema validation can be added later.
44
+ }
45
+ }
46
+ return {
47
+ success: true,
48
+ editor: editorState,
49
+ message: 'Task completed successfully via AI instruction (patch mode).',
50
+ };
51
+ }
52
+ /**
53
+ * Patches an existing Lexical document by extracting text nodes,
54
+ * sending them to an AI model for editing, and applying the edits
55
+ * back to the original document structure.
56
+ *
57
+ * This preserves all formatting (headings, lists, bold, italic, etc.)
58
+ * while only modifying the text content.
59
+ */
60
+ export async function patch(options) {
61
+ const { provider, apiKey, modelName, prompt, sdk, editorState, signal } = options;
62
+ const extracted = extractTextNodesFromLexicalState(editorState);
63
+ const inputTextNodes = extracted.map(({ id, text }) => ({ id, text }));
64
+ if (inputTextNodes.length === 0) {
65
+ return {
66
+ success: false,
67
+ message: 'No text nodes found to edit.',
68
+ errors: { editor: ['No text nodes found to edit.'] },
69
+ };
70
+ }
71
+ // Simple guardrail for prototype: avoid accidental huge prompts.
72
+ if (inputTextNodes.length > 400) {
73
+ return {
74
+ success: false,
75
+ message: 'Document too large for the current prototype (too many text nodes).',
76
+ errors: { editor: ['Document too large for the current prototype.'] },
77
+ };
78
+ }
79
+ const patch = provider === 'openai'
80
+ ? getPatchOpenAIDoc(sdk)
81
+ : provider === 'google'
82
+ ? getPatchGeminiDoc(sdk)
83
+ : getPatchAnthropicDoc(sdk);
84
+ const result = await patch({
85
+ apiKey,
86
+ model: modelName,
87
+ prompt,
88
+ textNodes: inputTextNodes,
89
+ signal,
90
+ });
91
+ return processPatchResult(result, extracted, editorState);
92
+ }
93
+ /**
94
+ * Streams a Lexical document patch. Only OpenAI supports streaming for now.
95
+ */
96
+ export function patchStreaming(options) {
97
+ const { provider, apiKey, modelName, prompt, sdk, editorState, signal } = options;
98
+ const extracted = extractTextNodesFromLexicalState(editorState);
99
+ const inputTextNodes = extracted.map(({ id, text }) => ({ id, text }));
100
+ if (inputTextNodes.length === 0) {
101
+ return {
102
+ text: createEmptyTextStream(),
103
+ final: Promise.resolve({
104
+ success: false,
105
+ message: 'No text nodes found to edit.',
106
+ errors: { editor: ['No text nodes found to edit.'] },
107
+ }),
108
+ };
109
+ }
110
+ if (inputTextNodes.length > 400) {
111
+ return {
112
+ text: createEmptyTextStream(),
113
+ final: Promise.resolve({
114
+ success: false,
115
+ message: 'Document too large for the current prototype (too many text nodes).',
116
+ errors: { editor: ['Document too large for the current prototype.'] },
117
+ }),
118
+ };
119
+ }
120
+ const patchStreaming = provider === 'openai'
121
+ ? getPatchOpenAIDocStreaming(sdk)
122
+ : provider === 'google'
123
+ ? getPatchGeminiDocStreaming(sdk)
124
+ : getPatchAnthropicDocStreaming(sdk);
125
+ const streamResult = patchStreaming({
126
+ apiKey,
127
+ model: modelName,
128
+ prompt,
129
+ textNodes: inputTextNodes,
130
+ signal,
131
+ });
132
+ const final = (async () => {
133
+ const result = await streamResult.final;
134
+ return processPatchResult(result, extracted, editorState);
135
+ })();
136
+ return { text: streamResult.text, final };
137
+ }
138
+ //# sourceMappingURL=patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
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 * as React from 'react';
9
+ import type { InstructionState, Provider, Sdk } from '@byline/ai';
10
+ import './ai-plugin.css';
11
+ export type AiPluginSubmitContext = {
12
+ prompt: string;
13
+ mode: 'new' | 'new_with_context' | 'patch';
14
+ provider: Provider;
15
+ model: string;
16
+ sdk: Sdk;
17
+ isPending: boolean;
18
+ setIsPending: React.Dispatch<React.SetStateAction<boolean>>;
19
+ instructionState: InstructionState;
20
+ setInstructionState: React.Dispatch<React.SetStateAction<InstructionState>>;
21
+ abortControllerRef: React.RefObject<AbortController | null>;
22
+ appendStreamPreview: (chunk: string) => void;
23
+ resetStreamPreview: () => void;
24
+ useStreaming: boolean;
25
+ setUseStreaming: React.Dispatch<React.SetStateAction<boolean>>;
26
+ };
27
+ export type AiPluginBaseProps = {
28
+ onSubmit: (context: AiPluginSubmitContext) => Promise<void> | void;
29
+ onSubmitStreaming?: (context: AiPluginSubmitContext) => Promise<void> | void;
30
+ onCancel?: () => void;
31
+ onClear?: () => void;
32
+ onDebug?: () => void;
33
+ open?: boolean;
34
+ defaultOpen?: boolean;
35
+ onOpenChange?: (open: boolean) => void;
36
+ helpTitle?: React.ReactNode;
37
+ helpContent?: React.ReactNode;
38
+ };
39
+ export declare const AiPluginBase: React.MemoExoticComponent<(props: AiPluginBaseProps) => React.JSX.Element | undefined>;
40
+ //# sourceMappingURL=ai-plugin-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-plugin-base.d.ts","sourceRoot":"","sources":["../../src/plugins/ai-plugin-base.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAuBjE,OAAO,iBAAiB,CAAA;AASxB,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,KAAK,GAAG,kBAAkB,GAAG,OAAO,CAAA;IAC1C,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3D,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC3E,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAC3D,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,kBAAkB,EAAE,MAAM,IAAI,CAAA;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;CAC/D,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAClE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5E,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC9B,CAAA;AA6BD,eAAO,MAAM,YAAY,oCAChB,iBAAiB,KACvB,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CA2X9B,CAAA"}