@juspay/neurolink 9.1.1 → 9.2.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 (237) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +54 -7
  3. package/dist/agent/directTools.d.ts +3 -3
  4. package/dist/cli/commands/config.d.ts +6 -6
  5. package/dist/image-gen/ImageGenService.d.ts +143 -0
  6. package/dist/image-gen/ImageGenService.js +345 -0
  7. package/dist/image-gen/imageGenTools.d.ts +126 -0
  8. package/dist/image-gen/imageGenTools.js +304 -0
  9. package/dist/image-gen/index.d.ts +46 -0
  10. package/dist/image-gen/index.js +48 -0
  11. package/dist/image-gen/types.d.ts +237 -0
  12. package/dist/image-gen/types.js +24 -0
  13. package/dist/lib/agent/directTools.d.ts +3 -3
  14. package/dist/lib/image-gen/ImageGenService.d.ts +143 -0
  15. package/dist/lib/image-gen/ImageGenService.js +346 -0
  16. package/dist/lib/image-gen/imageGenTools.d.ts +126 -0
  17. package/dist/lib/image-gen/imageGenTools.js +305 -0
  18. package/dist/lib/image-gen/index.d.ts +46 -0
  19. package/dist/lib/image-gen/index.js +49 -0
  20. package/dist/lib/image-gen/types.d.ts +237 -0
  21. package/dist/lib/image-gen/types.js +25 -0
  22. package/dist/lib/processors/base/BaseFileProcessor.d.ts +273 -0
  23. package/dist/lib/processors/base/BaseFileProcessor.js +614 -0
  24. package/dist/lib/processors/base/index.d.ts +14 -0
  25. package/dist/lib/processors/base/index.js +20 -0
  26. package/dist/lib/processors/base/types.d.ts +593 -0
  27. package/dist/lib/processors/base/types.js +77 -0
  28. package/dist/lib/processors/cli/fileProcessorCli.d.ts +163 -0
  29. package/dist/lib/processors/cli/fileProcessorCli.js +389 -0
  30. package/dist/lib/processors/cli/index.d.ts +37 -0
  31. package/dist/lib/processors/cli/index.js +50 -0
  32. package/dist/lib/processors/code/ConfigProcessor.d.ts +171 -0
  33. package/dist/lib/processors/code/ConfigProcessor.js +401 -0
  34. package/dist/lib/processors/code/SourceCodeProcessor.d.ts +174 -0
  35. package/dist/lib/processors/code/SourceCodeProcessor.js +305 -0
  36. package/dist/lib/processors/code/index.d.ts +44 -0
  37. package/dist/lib/processors/code/index.js +61 -0
  38. package/dist/lib/processors/config/fileTypes.d.ts +283 -0
  39. package/dist/lib/processors/config/fileTypes.js +521 -0
  40. package/dist/lib/processors/config/index.d.ts +32 -0
  41. package/dist/lib/processors/config/index.js +93 -0
  42. package/dist/lib/processors/config/languageMap.d.ts +66 -0
  43. package/dist/lib/processors/config/languageMap.js +411 -0
  44. package/dist/lib/processors/config/mimeTypes.d.ts +376 -0
  45. package/dist/lib/processors/config/mimeTypes.js +339 -0
  46. package/dist/lib/processors/config/sizeLimits.d.ts +194 -0
  47. package/dist/lib/processors/config/sizeLimits.js +247 -0
  48. package/dist/lib/processors/data/JsonProcessor.d.ts +122 -0
  49. package/dist/lib/processors/data/JsonProcessor.js +204 -0
  50. package/dist/lib/processors/data/XmlProcessor.d.ts +160 -0
  51. package/dist/lib/processors/data/XmlProcessor.js +284 -0
  52. package/dist/lib/processors/data/YamlProcessor.d.ts +163 -0
  53. package/dist/lib/processors/data/YamlProcessor.js +295 -0
  54. package/dist/lib/processors/data/index.d.ts +49 -0
  55. package/dist/lib/processors/data/index.js +77 -0
  56. package/dist/lib/processors/document/ExcelProcessor.d.ts +238 -0
  57. package/dist/lib/processors/document/ExcelProcessor.js +520 -0
  58. package/dist/lib/processors/document/OpenDocumentProcessor.d.ts +69 -0
  59. package/dist/lib/processors/document/OpenDocumentProcessor.js +211 -0
  60. package/dist/lib/processors/document/RtfProcessor.d.ts +152 -0
  61. package/dist/lib/processors/document/RtfProcessor.js +362 -0
  62. package/dist/lib/processors/document/WordProcessor.d.ts +168 -0
  63. package/dist/lib/processors/document/WordProcessor.js +354 -0
  64. package/dist/lib/processors/document/index.d.ts +54 -0
  65. package/dist/lib/processors/document/index.js +91 -0
  66. package/dist/lib/processors/errors/FileErrorCode.d.ts +98 -0
  67. package/dist/lib/processors/errors/FileErrorCode.js +256 -0
  68. package/dist/lib/processors/errors/errorHelpers.d.ts +151 -0
  69. package/dist/lib/processors/errors/errorHelpers.js +379 -0
  70. package/dist/lib/processors/errors/errorSerializer.d.ts +139 -0
  71. package/dist/lib/processors/errors/errorSerializer.js +508 -0
  72. package/dist/lib/processors/errors/index.d.ts +46 -0
  73. package/dist/lib/processors/errors/index.js +50 -0
  74. package/dist/lib/processors/index.d.ts +76 -0
  75. package/dist/lib/processors/index.js +113 -0
  76. package/dist/lib/processors/integration/FileProcessorIntegration.d.ts +244 -0
  77. package/dist/lib/processors/integration/FileProcessorIntegration.js +273 -0
  78. package/dist/lib/processors/integration/index.d.ts +42 -0
  79. package/dist/lib/processors/integration/index.js +45 -0
  80. package/dist/lib/processors/markup/HtmlProcessor.d.ts +169 -0
  81. package/dist/lib/processors/markup/HtmlProcessor.js +250 -0
  82. package/dist/lib/processors/markup/MarkdownProcessor.d.ts +165 -0
  83. package/dist/lib/processors/markup/MarkdownProcessor.js +245 -0
  84. package/dist/lib/processors/markup/SvgProcessor.d.ts +156 -0
  85. package/dist/lib/processors/markup/SvgProcessor.js +241 -0
  86. package/dist/lib/processors/markup/TextProcessor.d.ts +135 -0
  87. package/dist/lib/processors/markup/TextProcessor.js +189 -0
  88. package/dist/lib/processors/markup/index.d.ts +66 -0
  89. package/dist/lib/processors/markup/index.js +103 -0
  90. package/dist/lib/processors/registry/ProcessorRegistry.d.ts +334 -0
  91. package/dist/lib/processors/registry/ProcessorRegistry.js +609 -0
  92. package/dist/lib/processors/registry/index.d.ts +12 -0
  93. package/dist/lib/processors/registry/index.js +17 -0
  94. package/dist/lib/processors/registry/types.d.ts +53 -0
  95. package/dist/lib/processors/registry/types.js +11 -0
  96. package/dist/lib/providers/sagemaker/language-model.d.ts +2 -2
  97. package/dist/lib/server/utils/validation.d.ts +6 -6
  98. package/dist/lib/types/fileTypes.d.ts +1 -1
  99. package/dist/lib/types/index.d.ts +25 -24
  100. package/dist/lib/types/index.js +21 -20
  101. package/dist/lib/types/modelTypes.d.ts +18 -18
  102. package/dist/lib/types/pptTypes.d.ts +14 -2
  103. package/dist/lib/types/pptTypes.js +16 -0
  104. package/dist/lib/utils/async/delay.d.ts +40 -0
  105. package/dist/lib/utils/async/delay.js +43 -0
  106. package/dist/lib/utils/async/index.d.ts +23 -0
  107. package/dist/lib/utils/async/index.js +24 -0
  108. package/dist/lib/utils/async/retry.d.ts +141 -0
  109. package/dist/lib/utils/async/retry.js +172 -0
  110. package/dist/lib/utils/async/withTimeout.d.ts +73 -0
  111. package/dist/lib/utils/async/withTimeout.js +97 -0
  112. package/dist/lib/utils/fileDetector.d.ts +7 -1
  113. package/dist/lib/utils/fileDetector.js +91 -18
  114. package/dist/lib/utils/json/extract.d.ts +103 -0
  115. package/dist/lib/utils/json/extract.js +249 -0
  116. package/dist/lib/utils/json/index.d.ts +36 -0
  117. package/dist/lib/utils/json/index.js +37 -0
  118. package/dist/lib/utils/json/safeParse.d.ts +137 -0
  119. package/dist/lib/utils/json/safeParse.js +191 -0
  120. package/dist/lib/utils/messageBuilder.d.ts +2 -2
  121. package/dist/lib/utils/messageBuilder.js +15 -7
  122. package/dist/lib/utils/sanitizers/filename.d.ts +137 -0
  123. package/dist/lib/utils/sanitizers/filename.js +366 -0
  124. package/dist/lib/utils/sanitizers/html.d.ts +170 -0
  125. package/dist/lib/utils/sanitizers/html.js +326 -0
  126. package/dist/lib/utils/sanitizers/index.d.ts +26 -0
  127. package/dist/lib/utils/sanitizers/index.js +30 -0
  128. package/dist/lib/utils/sanitizers/svg.d.ts +81 -0
  129. package/dist/lib/utils/sanitizers/svg.js +483 -0
  130. package/dist/processors/base/BaseFileProcessor.d.ts +273 -0
  131. package/dist/processors/base/BaseFileProcessor.js +613 -0
  132. package/dist/processors/base/index.d.ts +14 -0
  133. package/dist/processors/base/index.js +19 -0
  134. package/dist/processors/base/types.d.ts +593 -0
  135. package/dist/processors/base/types.js +76 -0
  136. package/dist/processors/cli/fileProcessorCli.d.ts +163 -0
  137. package/dist/processors/cli/fileProcessorCli.js +388 -0
  138. package/dist/processors/cli/index.d.ts +37 -0
  139. package/dist/processors/cli/index.js +49 -0
  140. package/dist/processors/code/ConfigProcessor.d.ts +171 -0
  141. package/dist/processors/code/ConfigProcessor.js +400 -0
  142. package/dist/processors/code/SourceCodeProcessor.d.ts +174 -0
  143. package/dist/processors/code/SourceCodeProcessor.js +304 -0
  144. package/dist/processors/code/index.d.ts +44 -0
  145. package/dist/processors/code/index.js +60 -0
  146. package/dist/processors/config/fileTypes.d.ts +283 -0
  147. package/dist/processors/config/fileTypes.js +520 -0
  148. package/dist/processors/config/index.d.ts +32 -0
  149. package/dist/processors/config/index.js +92 -0
  150. package/dist/processors/config/languageMap.d.ts +66 -0
  151. package/dist/processors/config/languageMap.js +410 -0
  152. package/dist/processors/config/mimeTypes.d.ts +376 -0
  153. package/dist/processors/config/mimeTypes.js +338 -0
  154. package/dist/processors/config/sizeLimits.d.ts +194 -0
  155. package/dist/processors/config/sizeLimits.js +246 -0
  156. package/dist/processors/data/JsonProcessor.d.ts +122 -0
  157. package/dist/processors/data/JsonProcessor.js +203 -0
  158. package/dist/processors/data/XmlProcessor.d.ts +160 -0
  159. package/dist/processors/data/XmlProcessor.js +283 -0
  160. package/dist/processors/data/YamlProcessor.d.ts +163 -0
  161. package/dist/processors/data/YamlProcessor.js +294 -0
  162. package/dist/processors/data/index.d.ts +49 -0
  163. package/dist/processors/data/index.js +76 -0
  164. package/dist/processors/document/ExcelProcessor.d.ts +238 -0
  165. package/dist/processors/document/ExcelProcessor.js +519 -0
  166. package/dist/processors/document/OpenDocumentProcessor.d.ts +69 -0
  167. package/dist/processors/document/OpenDocumentProcessor.js +210 -0
  168. package/dist/processors/document/RtfProcessor.d.ts +152 -0
  169. package/dist/processors/document/RtfProcessor.js +361 -0
  170. package/dist/processors/document/WordProcessor.d.ts +168 -0
  171. package/dist/processors/document/WordProcessor.js +353 -0
  172. package/dist/processors/document/index.d.ts +54 -0
  173. package/dist/processors/document/index.js +90 -0
  174. package/dist/processors/errors/FileErrorCode.d.ts +98 -0
  175. package/dist/processors/errors/FileErrorCode.js +255 -0
  176. package/dist/processors/errors/errorHelpers.d.ts +151 -0
  177. package/dist/processors/errors/errorHelpers.js +378 -0
  178. package/dist/processors/errors/errorSerializer.d.ts +139 -0
  179. package/dist/processors/errors/errorSerializer.js +507 -0
  180. package/dist/processors/errors/index.d.ts +46 -0
  181. package/dist/processors/errors/index.js +49 -0
  182. package/dist/processors/index.d.ts +76 -0
  183. package/dist/processors/index.js +112 -0
  184. package/dist/processors/integration/FileProcessorIntegration.d.ts +244 -0
  185. package/dist/processors/integration/FileProcessorIntegration.js +272 -0
  186. package/dist/processors/integration/index.d.ts +42 -0
  187. package/dist/processors/integration/index.js +44 -0
  188. package/dist/processors/markup/HtmlProcessor.d.ts +169 -0
  189. package/dist/processors/markup/HtmlProcessor.js +249 -0
  190. package/dist/processors/markup/MarkdownProcessor.d.ts +165 -0
  191. package/dist/processors/markup/MarkdownProcessor.js +244 -0
  192. package/dist/processors/markup/SvgProcessor.d.ts +156 -0
  193. package/dist/processors/markup/SvgProcessor.js +240 -0
  194. package/dist/processors/markup/TextProcessor.d.ts +135 -0
  195. package/dist/processors/markup/TextProcessor.js +188 -0
  196. package/dist/processors/markup/index.d.ts +66 -0
  197. package/dist/processors/markup/index.js +102 -0
  198. package/dist/processors/registry/ProcessorRegistry.d.ts +334 -0
  199. package/dist/processors/registry/ProcessorRegistry.js +608 -0
  200. package/dist/processors/registry/index.d.ts +12 -0
  201. package/dist/processors/registry/index.js +16 -0
  202. package/dist/processors/registry/types.d.ts +53 -0
  203. package/dist/processors/registry/types.js +10 -0
  204. package/dist/server/utils/validation.d.ts +6 -6
  205. package/dist/types/fileTypes.d.ts +1 -1
  206. package/dist/types/index.d.ts +25 -24
  207. package/dist/types/index.js +21 -20
  208. package/dist/types/modelTypes.d.ts +10 -10
  209. package/dist/types/pptTypes.d.ts +14 -2
  210. package/dist/types/pptTypes.js +16 -0
  211. package/dist/utils/async/delay.d.ts +40 -0
  212. package/dist/utils/async/delay.js +42 -0
  213. package/dist/utils/async/index.d.ts +23 -0
  214. package/dist/utils/async/index.js +23 -0
  215. package/dist/utils/async/retry.d.ts +141 -0
  216. package/dist/utils/async/retry.js +171 -0
  217. package/dist/utils/async/withTimeout.d.ts +73 -0
  218. package/dist/utils/async/withTimeout.js +96 -0
  219. package/dist/utils/fileDetector.d.ts +7 -1
  220. package/dist/utils/fileDetector.js +91 -18
  221. package/dist/utils/json/extract.d.ts +103 -0
  222. package/dist/utils/json/extract.js +248 -0
  223. package/dist/utils/json/index.d.ts +36 -0
  224. package/dist/utils/json/index.js +36 -0
  225. package/dist/utils/json/safeParse.d.ts +137 -0
  226. package/dist/utils/json/safeParse.js +190 -0
  227. package/dist/utils/messageBuilder.d.ts +2 -2
  228. package/dist/utils/messageBuilder.js +15 -7
  229. package/dist/utils/sanitizers/filename.d.ts +137 -0
  230. package/dist/utils/sanitizers/filename.js +365 -0
  231. package/dist/utils/sanitizers/html.d.ts +170 -0
  232. package/dist/utils/sanitizers/html.js +325 -0
  233. package/dist/utils/sanitizers/index.d.ts +26 -0
  234. package/dist/utils/sanitizers/index.js +29 -0
  235. package/dist/utils/sanitizers/svg.d.ts +81 -0
  236. package/dist/utils/sanitizers/svg.js +482 -0
  237. package/package.json +2 -2
@@ -0,0 +1,305 @@
1
+ /**
2
+ * Image Generation Tools
3
+ *
4
+ * Tool definitions for AI model use - enables AI models to generate
5
+ * images as part of their response workflow.
6
+ *
7
+ * @packageDocumentation
8
+ * @module @juspay/neurolink/image-gen
9
+ * @category ImageGeneration
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { getImageGenTools } from '@juspay/neurolink';
14
+ *
15
+ * // Get tools for AI model registration
16
+ * const tools = getImageGenTools();
17
+ *
18
+ * // Use with NeuroLink
19
+ * const neurolink = new NeuroLink();
20
+ * neurolink.registerCustomTools(tools);
21
+ * ```
22
+ */
23
+ import { ImageGenService } from "./ImageGenService.js";
24
+ /**
25
+ * Create an image generation tool for use with AI models
26
+ *
27
+ * This tool allows AI models to generate images based on text prompts.
28
+ * It integrates with the ImageGenService for actual generation.
29
+ *
30
+ * @param service - ImageGenService instance to use
31
+ * @returns Tool definition compatible with MCP/AI SDK
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const service = new ImageGenService();
36
+ * const tool = createImageGenTool(service);
37
+ *
38
+ * // Tool can now be registered with NeuroLink
39
+ * neurolink.registerTool(tool.name, {
40
+ * description: tool.description,
41
+ * parameters: tool.inputSchema,
42
+ * execute: tool.execute
43
+ * });
44
+ * ```
45
+ */
46
+ export function createImageGenTool(service) {
47
+ return {
48
+ name: "generate_image",
49
+ description: `Generate an image from a text prompt using AI. Use this tool to create images, illustrations, diagrams, or visual content based on detailed descriptions.
50
+
51
+ Tips for better prompts:
52
+ - Be specific and detailed about what you want
53
+ - Include style preferences (photorealistic, cartoon, watercolor, etc.)
54
+ - Mention colors, lighting, and composition if important
55
+ - Describe the mood or atmosphere desired
56
+
57
+ The tool returns the generated image as a data URI that can be displayed or saved.`,
58
+ inputSchema: {
59
+ type: "object",
60
+ properties: {
61
+ prompt: {
62
+ type: "string",
63
+ description: "Detailed description of the image to generate. Be specific about content, style, colors, and composition for best results.",
64
+ },
65
+ negativePrompt: {
66
+ type: "string",
67
+ description: "What to avoid in the generated image (optional). E.g., 'blurry, low quality, text, watermarks'",
68
+ },
69
+ aspectRatio: {
70
+ type: "string",
71
+ description: "Aspect ratio for the image (optional). Common values: '1:1' (square), '16:9' (widescreen), '9:16' (portrait), '4:3', '3:2'",
72
+ enum: ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"],
73
+ },
74
+ style: {
75
+ type: "string",
76
+ description: "Style preset for the image (optional). E.g., 'realistic', 'photorealistic', 'artistic', 'cartoon', 'anime', 'watercolor', 'oil-painting', 'sketch', 'digital-art', '3d-render'",
77
+ enum: [
78
+ "realistic",
79
+ "photorealistic",
80
+ "artistic",
81
+ "cartoon",
82
+ "anime",
83
+ "watercolor",
84
+ "oil-painting",
85
+ "sketch",
86
+ "digital-art",
87
+ "3d-render",
88
+ ],
89
+ },
90
+ },
91
+ required: ["prompt"],
92
+ },
93
+ execute: async (params, context) => {
94
+ // Check if service is enabled
95
+ if (!service.isEnabled()) {
96
+ return {
97
+ success: false,
98
+ message: "Image generation is disabled on this server",
99
+ error: "IMAGE_GEN_DISABLED",
100
+ };
101
+ }
102
+ try {
103
+ // Build generation options
104
+ const result = await service.generate({
105
+ prompt: params.prompt,
106
+ negativePrompt: params.negativePrompt,
107
+ aspectRatio: params.aspectRatio,
108
+ style: params.style,
109
+ images: context?.referenceImages,
110
+ pdfFiles: context?.referencePdfs,
111
+ });
112
+ if (result.success && result.base64) {
113
+ const mimeType = result.mimeType ?? "image/png";
114
+ return {
115
+ success: true,
116
+ image: `data:${mimeType};base64,${result.base64}`,
117
+ message: `Image generated successfully using ${result.model ?? "default model"}`,
118
+ };
119
+ }
120
+ return {
121
+ success: false,
122
+ message: result.error ?? "Failed to generate image",
123
+ error: result.error ?? "GENERATION_FAILED",
124
+ };
125
+ }
126
+ catch (error) {
127
+ const errorMessage = error instanceof Error ? error.message : String(error);
128
+ return {
129
+ success: false,
130
+ message: `Image generation failed: ${errorMessage}`,
131
+ error: errorMessage,
132
+ };
133
+ }
134
+ },
135
+ };
136
+ }
137
+ /**
138
+ * Create an image editing/variation tool for use with AI models
139
+ *
140
+ * This tool allows AI models to create variations of existing images
141
+ * or edit images based on reference images and prompts.
142
+ *
143
+ * @param service - ImageGenService instance to use
144
+ * @returns Tool definition compatible with MCP/AI SDK
145
+ */
146
+ export function createImageVariationTool(service) {
147
+ return {
148
+ name: "create_image_variation",
149
+ description: `Create a variation or modification of an existing image. Use this when you need to:
150
+ - Create variations of a reference image
151
+ - Modify an existing image based on a description
152
+ - Generate images in a similar style to a reference
153
+
154
+ Note: Requires reference images to be provided in the context.`,
155
+ inputSchema: {
156
+ type: "object",
157
+ properties: {
158
+ prompt: {
159
+ type: "string",
160
+ description: "Description of the desired variation or modification. Describe what changes you want from the reference.",
161
+ },
162
+ style: {
163
+ type: "string",
164
+ description: "Style to apply to the variation (optional)",
165
+ enum: [
166
+ "realistic",
167
+ "photorealistic",
168
+ "artistic",
169
+ "cartoon",
170
+ "anime",
171
+ "watercolor",
172
+ "oil-painting",
173
+ "sketch",
174
+ "digital-art",
175
+ "3d-render",
176
+ ],
177
+ },
178
+ aspectRatio: {
179
+ type: "string",
180
+ description: "Aspect ratio for the output (optional)",
181
+ enum: ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"],
182
+ },
183
+ },
184
+ required: ["prompt"],
185
+ },
186
+ execute: async (params, context) => {
187
+ // Check if service is enabled
188
+ if (!service.isEnabled()) {
189
+ return {
190
+ success: false,
191
+ message: "Image generation is disabled on this server",
192
+ error: "IMAGE_GEN_DISABLED",
193
+ };
194
+ }
195
+ // Require reference images for variations
196
+ if (!context?.referenceImages?.length) {
197
+ return {
198
+ success: false,
199
+ message: "No reference images provided. This tool requires reference images to create variations.",
200
+ error: "NO_REFERENCE_IMAGES",
201
+ };
202
+ }
203
+ try {
204
+ const result = await service.generate({
205
+ prompt: `Create a variation based on the reference image(s): ${params.prompt}`,
206
+ style: params.style,
207
+ aspectRatio: params.aspectRatio,
208
+ images: context.referenceImages,
209
+ pdfFiles: context.referencePdfs,
210
+ });
211
+ if (result.success && result.base64) {
212
+ const mimeType = result.mimeType ?? "image/png";
213
+ return {
214
+ success: true,
215
+ image: `data:${mimeType};base64,${result.base64}`,
216
+ message: "Image variation created successfully",
217
+ };
218
+ }
219
+ return {
220
+ success: false,
221
+ message: result.error ?? "Failed to create image variation",
222
+ error: result.error ?? "VARIATION_FAILED",
223
+ };
224
+ }
225
+ catch (error) {
226
+ const errorMessage = error instanceof Error ? error.message : String(error);
227
+ return {
228
+ success: false,
229
+ message: `Image variation failed: ${errorMessage}`,
230
+ error: errorMessage,
231
+ };
232
+ }
233
+ },
234
+ };
235
+ }
236
+ /**
237
+ * Get all image generation tools as an array
238
+ *
239
+ * Creates a shared ImageGenService instance and returns all
240
+ * image generation tools configured to use it.
241
+ *
242
+ * @param config - Optional configuration for the ImageGenService
243
+ * @returns Array of tool definitions
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * import { getImageGenTools, NeuroLink } from '@juspay/neurolink';
248
+ *
249
+ * const tools = getImageGenTools({
250
+ * defaultProvider: 'openai',
251
+ * defaultModel: 'dall-e-3'
252
+ * });
253
+ *
254
+ * const neurolink = new NeuroLink();
255
+ * for (const tool of tools) {
256
+ * neurolink.registerTool(tool.name, {
257
+ * description: tool.description,
258
+ * parameters: tool.inputSchema,
259
+ * execute: tool.execute
260
+ * });
261
+ * }
262
+ * ```
263
+ */
264
+ export function getImageGenTools(configOrService) {
265
+ const service = configOrService instanceof ImageGenService
266
+ ? configOrService
267
+ : new ImageGenService(configOrService);
268
+ return [createImageGenTool(service), createImageVariationTool(service)];
269
+ }
270
+ /**
271
+ * Get only the basic image generation tool
272
+ *
273
+ * @param config - Optional configuration for the ImageGenService
274
+ * @returns Single tool definition for basic image generation
275
+ */
276
+ export function getBasicImageGenTool(configOrService) {
277
+ const service = configOrService instanceof ImageGenService
278
+ ? configOrService
279
+ : new ImageGenService(configOrService);
280
+ return createImageGenTool(service);
281
+ }
282
+ /**
283
+ * Create a custom image generation tool with specific service configuration
284
+ *
285
+ * @param serviceConfig - Configuration for the ImageGenService
286
+ * @param toolConfig - Optional customizations for the tool definition
287
+ * @returns Customized tool definition
288
+ *
289
+ * @example
290
+ * ```typescript
291
+ * const customTool = createCustomImageGenTool(
292
+ * { defaultProvider: 'vertex', defaultModel: 'imagen-3.0-generate-001' },
293
+ * { name: 'vertex_generate_image', description: 'Generate images using Vertex AI Imagen' }
294
+ * );
295
+ * ```
296
+ */
297
+ export function createCustomImageGenTool(serviceConfig, toolConfig) {
298
+ const service = new ImageGenService(serviceConfig);
299
+ const baseTool = createImageGenTool(service);
300
+ return {
301
+ ...baseTool,
302
+ ...toolConfig,
303
+ };
304
+ }
305
+ //# sourceMappingURL=imageGenTools.js.map
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Image Generation Module
3
+ *
4
+ * AI-powered image generation with support for multiple providers,
5
+ * reference images, and configurable styles.
6
+ *
7
+ * @packageDocumentation
8
+ * @module @juspay/neurolink/image-gen
9
+ * @category ImageGeneration
10
+ *
11
+ * @example Basic usage
12
+ * ```typescript
13
+ * import { ImageGenService } from '@juspay/neurolink';
14
+ *
15
+ * const service = new ImageGenService();
16
+ * const result = await service.generate({
17
+ * prompt: 'A beautiful sunset over mountains',
18
+ * style: 'photorealistic'
19
+ * });
20
+ *
21
+ * if (result.success) {
22
+ * console.log('Generated image:', result.base64?.substring(0, 50) + '...');
23
+ * }
24
+ * ```
25
+ *
26
+ * @example With AI tools
27
+ * ```typescript
28
+ * import { getImageGenTools, NeuroLink } from '@juspay/neurolink';
29
+ *
30
+ * const tools = getImageGenTools();
31
+ * const neurolink = new NeuroLink();
32
+ *
33
+ * // Register tools for AI model use
34
+ * for (const tool of tools) {
35
+ * neurolink.registerTool(tool.name, {
36
+ * description: tool.description,
37
+ * parameters: tool.inputSchema,
38
+ * execute: tool.execute
39
+ * });
40
+ * }
41
+ * ```
42
+ */
43
+ export { ImageGenService } from "./ImageGenService.js";
44
+ export type { ImageGenToolDefinition } from "./imageGenTools.js";
45
+ export { createCustomImageGenTool, createImageGenTool, createImageVariationTool, getBasicImageGenTool, getImageGenTools, } from "./imageGenTools.js";
46
+ export * from "./types.js";
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Image Generation Module
3
+ *
4
+ * AI-powered image generation with support for multiple providers,
5
+ * reference images, and configurable styles.
6
+ *
7
+ * @packageDocumentation
8
+ * @module @juspay/neurolink/image-gen
9
+ * @category ImageGeneration
10
+ *
11
+ * @example Basic usage
12
+ * ```typescript
13
+ * import { ImageGenService } from '@juspay/neurolink';
14
+ *
15
+ * const service = new ImageGenService();
16
+ * const result = await service.generate({
17
+ * prompt: 'A beautiful sunset over mountains',
18
+ * style: 'photorealistic'
19
+ * });
20
+ *
21
+ * if (result.success) {
22
+ * console.log('Generated image:', result.base64?.substring(0, 50) + '...');
23
+ * }
24
+ * ```
25
+ *
26
+ * @example With AI tools
27
+ * ```typescript
28
+ * import { getImageGenTools, NeuroLink } from '@juspay/neurolink';
29
+ *
30
+ * const tools = getImageGenTools();
31
+ * const neurolink = new NeuroLink();
32
+ *
33
+ * // Register tools for AI model use
34
+ * for (const tool of tools) {
35
+ * neurolink.registerTool(tool.name, {
36
+ * description: tool.description,
37
+ * parameters: tool.inputSchema,
38
+ * execute: tool.execute
39
+ * });
40
+ * }
41
+ * ```
42
+ */
43
+ // Export service
44
+ export { ImageGenService } from "./ImageGenService.js";
45
+ // Export tools
46
+ export { createCustomImageGenTool, createImageGenTool, createImageVariationTool, getBasicImageGenTool, getImageGenTools, } from "./imageGenTools.js";
47
+ // Export types
48
+ export * from "./types.js";
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Image Generation Service Types
3
+ *
4
+ * Type definitions for AI-powered image generation with support for
5
+ * reference images, PDFs, and configurable providers/models.
6
+ *
7
+ * @packageDocumentation
8
+ * @module @juspay/neurolink/image-gen
9
+ * @category ImageGeneration
10
+ */
11
+ /**
12
+ * Supported image generation providers
13
+ */
14
+ export type ImageGenProvider = "vertex" | "openai" | "anthropic" | "bedrock";
15
+ /**
16
+ * Supported aspect ratios
17
+ */
18
+ export type AspectRatio = "1:1" | "16:9" | "9:16" | "4:3" | "3:4" | "3:2" | "2:3";
19
+ /**
20
+ * Supported style presets
21
+ */
22
+ export type StylePreset = "realistic" | "photorealistic" | "artistic" | "cartoon" | "anime" | "watercolor" | "oil-painting" | "sketch" | "digital-art" | "3d-render";
23
+ /**
24
+ * Options for image generation requests
25
+ */
26
+ export interface ImageGenOptions {
27
+ /**
28
+ * Text prompt describing the image to generate
29
+ * Should be detailed and specific for best results
30
+ */
31
+ prompt: string;
32
+ /**
33
+ * Reference images for style/content guidance (optional)
34
+ * Can be Buffer (raw data) or string (base64 encoded)
35
+ * Max 5 images recommended
36
+ */
37
+ images?: (Buffer | string)[];
38
+ /**
39
+ * Reference PDF files for context (optional)
40
+ * Used for generating images based on document content
41
+ * Max 1 PDF recommended
42
+ */
43
+ pdfFiles?: Buffer[];
44
+ /**
45
+ * Override default model
46
+ * e.g., "imagen-3.0-generate-001", "dall-e-3"
47
+ */
48
+ model?: string;
49
+ /**
50
+ * Override default provider
51
+ * e.g., "vertex", "openai"
52
+ */
53
+ provider?: ImageGenProvider | string;
54
+ /**
55
+ * Region for provider (e.g., for Vertex AI)
56
+ */
57
+ region?: string;
58
+ /**
59
+ * What to avoid in the generated image (optional)
60
+ * e.g., "blurry, low quality, text overlays"
61
+ */
62
+ negativePrompt?: string;
63
+ /**
64
+ * Aspect ratio for the generated image
65
+ * e.g., "16:9", "1:1", "4:3", "9:16"
66
+ */
67
+ aspectRatio?: AspectRatio | string;
68
+ /**
69
+ * Style preset for the image
70
+ * e.g., "realistic", "artistic", "cartoon", "watercolor", "photorealistic"
71
+ */
72
+ style?: StylePreset | string;
73
+ /**
74
+ * Number of images to generate (default: 1)
75
+ */
76
+ numberOfImages?: number;
77
+ /**
78
+ * Sampling temperature for generation (0-1)
79
+ * Higher values = more creative/random
80
+ */
81
+ temperature?: number;
82
+ }
83
+ /**
84
+ * Result of an image generation request
85
+ */
86
+ export interface ImageGenResult {
87
+ /**
88
+ * Whether generation was successful
89
+ */
90
+ success: boolean;
91
+ /**
92
+ * Generated image as Buffer (if successful)
93
+ */
94
+ imageBuffer?: Buffer;
95
+ /**
96
+ * Generated image as base64 string (if successful)
97
+ */
98
+ base64?: string;
99
+ /**
100
+ * MIME type of the generated image
101
+ * e.g., "image/png", "image/jpeg"
102
+ */
103
+ mimeType?: string;
104
+ /**
105
+ * Model used for generation
106
+ */
107
+ model?: string;
108
+ /**
109
+ * Provider used for generation
110
+ */
111
+ provider?: string;
112
+ /**
113
+ * Error message if generation failed
114
+ */
115
+ error?: string;
116
+ /**
117
+ * Time taken for generation in milliseconds
118
+ */
119
+ generationTimeMs?: number;
120
+ /**
121
+ * Additional metadata from the provider
122
+ */
123
+ metadata?: Record<string, unknown>;
124
+ }
125
+ /**
126
+ * Configuration for the ImageGenService
127
+ */
128
+ export interface ImageGenConfig {
129
+ /**
130
+ * Whether image generation is enabled
131
+ */
132
+ enabled: boolean;
133
+ /**
134
+ * Default model to use for generation
135
+ */
136
+ defaultModel: string;
137
+ /**
138
+ * Default provider for image generation
139
+ */
140
+ defaultProvider: ImageGenProvider | string;
141
+ /**
142
+ * Default region for the provider (if applicable)
143
+ */
144
+ defaultRegion?: string;
145
+ /**
146
+ * Timeout for generation requests in milliseconds
147
+ */
148
+ timeout: number;
149
+ /**
150
+ * Default temperature for generation
151
+ */
152
+ defaultTemperature?: number;
153
+ /**
154
+ * Maximum number of images per request
155
+ */
156
+ maxImages?: number;
157
+ /**
158
+ * Maximum number of reference images allowed
159
+ */
160
+ maxReferenceImages?: number;
161
+ /**
162
+ * Maximum number of reference PDFs allowed
163
+ */
164
+ maxReferencePdfs?: number;
165
+ }
166
+ /**
167
+ * Default configuration for image generation
168
+ */
169
+ export declare const DEFAULT_IMAGE_GEN_CONFIG: ImageGenConfig;
170
+ /**
171
+ * Tool parameters for AI model use
172
+ */
173
+ export interface ImageGenToolParams {
174
+ /**
175
+ * Detailed description of the image to generate
176
+ */
177
+ prompt: string;
178
+ /**
179
+ * What to avoid in the generated image (optional)
180
+ */
181
+ negativePrompt?: string;
182
+ /**
183
+ * Aspect ratio like "16:9", "1:1", "4:3" (optional)
184
+ */
185
+ aspectRatio?: AspectRatio | string;
186
+ /**
187
+ * Style like "realistic", "artistic", "cartoon" (optional)
188
+ */
189
+ style?: StylePreset | string;
190
+ }
191
+ /**
192
+ * Response from the image generation tool
193
+ */
194
+ export interface ImageGenToolResponse {
195
+ /**
196
+ * Whether the tool execution was successful
197
+ */
198
+ success: boolean;
199
+ /**
200
+ * Data URI of the generated image (if successful)
201
+ * Format: data:image/png;base64,...
202
+ */
203
+ image?: string;
204
+ /**
205
+ * Human-readable message about the result
206
+ */
207
+ message?: string;
208
+ /**
209
+ * Error message if execution failed
210
+ */
211
+ error?: string;
212
+ }
213
+ /**
214
+ * Context for tool execution (optional)
215
+ */
216
+ export interface ImageGenToolContext {
217
+ /**
218
+ * Reference images to use for generation
219
+ */
220
+ referenceImages?: (Buffer | string)[];
221
+ /**
222
+ * Reference PDFs to use for generation
223
+ */
224
+ referencePdfs?: Buffer[];
225
+ /**
226
+ * User ID for tracking/logging
227
+ */
228
+ userId?: string;
229
+ /**
230
+ * Session ID for tracking/logging
231
+ */
232
+ sessionId?: string;
233
+ /**
234
+ * Additional metadata
235
+ */
236
+ metadata?: Record<string, unknown>;
237
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Image Generation Service Types
3
+ *
4
+ * Type definitions for AI-powered image generation with support for
5
+ * reference images, PDFs, and configurable providers/models.
6
+ *
7
+ * @packageDocumentation
8
+ * @module @juspay/neurolink/image-gen
9
+ * @category ImageGeneration
10
+ */
11
+ /**
12
+ * Default configuration for image generation
13
+ */
14
+ export const DEFAULT_IMAGE_GEN_CONFIG = {
15
+ enabled: true,
16
+ defaultModel: "imagen-3.0-generate-001",
17
+ defaultProvider: "vertex",
18
+ defaultRegion: "global",
19
+ timeout: 120000,
20
+ defaultTemperature: 0.75,
21
+ maxImages: 4,
22
+ maxReferenceImages: 5,
23
+ maxReferencePdfs: 1,
24
+ };
25
+ //# sourceMappingURL=types.js.map