@tanstack/ai-gemini 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +131 -0
  3. package/dist/esm/gemini-adapter.d.ts +71 -0
  4. package/dist/esm/gemini-adapter.js +375 -0
  5. package/dist/esm/gemini-adapter.js.map +1 -0
  6. package/dist/esm/index.d.ts +6 -0
  7. package/dist/esm/index.js +7 -0
  8. package/dist/esm/index.js.map +1 -0
  9. package/dist/esm/message-types.d.ts +84 -0
  10. package/dist/esm/model-meta.d.ts +189 -0
  11. package/dist/esm/model-meta.js +43 -0
  12. package/dist/esm/model-meta.js.map +1 -0
  13. package/dist/esm/text/text-provider-options.d.ts +184 -0
  14. package/dist/esm/tools/code-execution-tool.d.ts +7 -0
  15. package/dist/esm/tools/code-execution-tool.js +9 -0
  16. package/dist/esm/tools/code-execution-tool.js.map +1 -0
  17. package/dist/esm/tools/computer-use-tool.d.ts +10 -0
  18. package/dist/esm/tools/computer-use-tool.js +13 -0
  19. package/dist/esm/tools/computer-use-tool.js.map +1 -0
  20. package/dist/esm/tools/file-search-tool.d.ts +7 -0
  21. package/dist/esm/tools/file-search-tool.js +10 -0
  22. package/dist/esm/tools/file-search-tool.js.map +1 -0
  23. package/dist/esm/tools/function-declaration-tool.d.ts +5 -0
  24. package/dist/esm/tools/google-maps-tool.d.ts +7 -0
  25. package/dist/esm/tools/google-maps-tool.js +10 -0
  26. package/dist/esm/tools/google-maps-tool.js.map +1 -0
  27. package/dist/esm/tools/google-search-retriveal-tool.d.ts +7 -0
  28. package/dist/esm/tools/google-search-retriveal-tool.js +10 -0
  29. package/dist/esm/tools/google-search-retriveal-tool.js.map +1 -0
  30. package/dist/esm/tools/google-search-tool.d.ts +7 -0
  31. package/dist/esm/tools/google-search-tool.js +10 -0
  32. package/dist/esm/tools/google-search-tool.js.map +1 -0
  33. package/dist/esm/tools/index.d.ts +9 -0
  34. package/dist/esm/tools/tool-converter.d.ts +22 -0
  35. package/dist/esm/tools/tool-converter.js +64 -0
  36. package/dist/esm/tools/tool-converter.js.map +1 -0
  37. package/dist/esm/tools/url-context-tool.d.ts +7 -0
  38. package/dist/esm/tools/url-context-tool.js +9 -0
  39. package/dist/esm/tools/url-context-tool.js.map +1 -0
  40. package/package.json +53 -0
  41. package/src/gemini-adapter.ts +577 -0
  42. package/src/index.ts +22 -0
  43. package/src/message-types.ts +125 -0
  44. package/src/model-meta.ts +887 -0
  45. package/src/text/text-provider-options.ts +246 -0
  46. package/src/tools/code-execution-tool.ts +17 -0
  47. package/src/tools/computer-use-tool.ts +25 -0
  48. package/src/tools/file-search-tool.ts +19 -0
  49. package/src/tools/function-declaration-tool.ts +34 -0
  50. package/src/tools/google-maps-tool.ts +19 -0
  51. package/src/tools/google-search-retriveal-tool.ts +21 -0
  52. package/src/tools/google-search-tool.ts +19 -0
  53. package/src/tools/index.ts +18 -0
  54. package/src/tools/tool-converter.ts +99 -0
  55. package/src/tools/url-context-tool.ts +17 -0
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Gemini-specific metadata types for multimodal content parts.
3
+ * These types extend the base ContentPart metadata with Gemini-specific options.
4
+ *
5
+ * Gemini uses a unified approach where all media types share similar metadata structure.
6
+ *
7
+ * @see https://ai.google.dev/gemini-api/docs/vision
8
+ * @see https://ai.google.dev/gemini-api/docs/audio
9
+ * @see https://ai.google.dev/gemini-api/docs/document-processing
10
+ */
11
+
12
+ /**
13
+ * Supported image MIME types for Gemini.
14
+ */
15
+ export type GeminiImageMimeType =
16
+ | 'image/png'
17
+ | 'image/jpeg'
18
+ | 'image/webp'
19
+ | 'image/heic'
20
+ | 'image/heif'
21
+
22
+ /**
23
+ * Supported audio MIME types for Gemini.
24
+ */
25
+ export type GeminiAudioMimeType =
26
+ | 'audio/wav'
27
+ | 'audio/mp3'
28
+ | 'audio/aiff'
29
+ | 'audio/aac'
30
+ | 'audio/ogg'
31
+ | 'audio/flac'
32
+
33
+ /**
34
+ * Supported video MIME types for Gemini.
35
+ */
36
+ export type GeminiVideoMimeType =
37
+ | 'video/mp4'
38
+ | 'video/mpeg'
39
+ | 'video/mov'
40
+ | 'video/avi'
41
+ | 'video/x-flv'
42
+ | 'video/mpg'
43
+ | 'video/webm'
44
+ | 'video/wmv'
45
+ | 'video/3gpp'
46
+
47
+ /**
48
+ * Supported document MIME types for Gemini.
49
+ */
50
+ export type GeminiDocumentMimeType =
51
+ | 'application/pdf'
52
+ | 'text/plain'
53
+ | 'text/html'
54
+ | 'text/css'
55
+ | 'text/javascript'
56
+ | 'application/x-javascript'
57
+ | 'text/x-typescript'
58
+ | 'application/x-typescript'
59
+ | 'text/csv'
60
+ | 'text/markdown'
61
+ | 'application/json'
62
+ | 'application/xml'
63
+
64
+ /**
65
+ * Metadata for Gemini image content parts.
66
+ */
67
+ export interface GeminiImageMetadata {
68
+ /**
69
+ * The MIME type of the image.
70
+ * Required for proper content processing.
71
+ *
72
+ * @see https://ai.google.dev/gemini-api/docs/vision#supported-formats
73
+ */
74
+ mimeType?: GeminiImageMimeType
75
+ }
76
+
77
+ /**
78
+ * Metadata for Gemini audio content parts.
79
+ */
80
+ export interface GeminiAudioMetadata {
81
+ /**
82
+ * The MIME type of the audio.
83
+ * Required for proper content processing.
84
+ *
85
+ * @see https://ai.google.dev/gemini-api/docs/audio#supported-formats
86
+ */
87
+ mimeType?: GeminiAudioMimeType
88
+ }
89
+
90
+ /**
91
+ * Metadata for Gemini video content parts.
92
+ */
93
+ export interface GeminiVideoMetadata {
94
+ /**
95
+ * The MIME type of the video.
96
+ * Required for proper content processing.
97
+ *
98
+ * @see https://ai.google.dev/gemini-api/docs/vision#video-requirements
99
+ */
100
+ mimeType?: GeminiVideoMimeType
101
+ }
102
+
103
+ /**
104
+ * Metadata for Gemini document content parts.
105
+ */
106
+ export interface GeminiDocumentMetadata {
107
+ /**
108
+ * The MIME type of the document.
109
+ * Required for proper content processing.
110
+ *
111
+ * @see https://ai.google.dev/gemini-api/docs/document-processing
112
+ */
113
+ mimeType?: GeminiDocumentMimeType
114
+ }
115
+
116
+ /**
117
+ * Map of modality types to their Gemini-specific metadata types.
118
+ * Used for type inference when constructing multimodal messages.
119
+ */
120
+ export interface GeminiMessageMetadataByModality {
121
+ image: GeminiImageMetadata
122
+ audio: GeminiAudioMetadata
123
+ video: GeminiVideoMetadata
124
+ document: GeminiDocumentMetadata
125
+ }