@genesislcap/foundation-ai 14.407.0-workspaces.4 → 14.408.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 (128) hide show
  1. package/dist/dts/ai-provider.d.ts +18 -2
  2. package/dist/dts/ai-provider.d.ts.map +1 -1
  3. package/dist/dts/index.d.ts +5 -1
  4. package/dist/dts/index.d.ts.map +1 -1
  5. package/dist/dts/interactions/criteria-interpretation.d.ts +11 -0
  6. package/dist/dts/interactions/criteria-interpretation.d.ts.map +1 -1
  7. package/dist/dts/providers/gemini-provider.d.ts +25 -0
  8. package/dist/dts/providers/gemini-provider.d.ts.map +1 -0
  9. package/dist/dts/transports/gemini-transport.d.ts +66 -0
  10. package/dist/dts/transports/gemini-transport.d.ts.map +1 -0
  11. package/dist/dts/types/chat-transport.types.d.ts +16 -0
  12. package/dist/dts/types/chat-transport.types.d.ts.map +1 -0
  13. package/dist/dts/types/chat.types.d.ts +157 -0
  14. package/dist/dts/types/chat.types.d.ts.map +1 -0
  15. package/dist/dts/types/config.types.d.ts +16 -2
  16. package/dist/dts/types/config.types.d.ts.map +1 -1
  17. package/dist/dts/types/criteria-types.d.ts +10 -0
  18. package/dist/dts/types/criteria-types.d.ts.map +1 -1
  19. package/dist/dts/types/index.d.ts +2 -0
  20. package/dist/dts/types/index.d.ts.map +1 -1
  21. package/dist/dts/utils/speech-to-text.d.ts +11 -0
  22. package/dist/dts/utils/speech-to-text.d.ts.map +1 -1
  23. package/dist/esm/ai-provider.js +18 -0
  24. package/dist/esm/index.js +2 -0
  25. package/dist/esm/providers/gemini-provider.js +59 -0
  26. package/dist/esm/transports/gemini-transport.js +249 -0
  27. package/dist/esm/types/chat-transport.types.js +1 -0
  28. package/dist/esm/types/chat.types.js +1 -0
  29. package/dist/esm/types/index.js +2 -0
  30. package/dist/esm/utils/speech-to-text.js +11 -0
  31. package/dist/foundation-ai.api.json +2937 -240
  32. package/dist/foundation-ai.d.ts +357 -4
  33. package/docs/api/foundation-ai.aiconfig.md +2 -2
  34. package/docs/api/foundation-ai.aiprovider.chat.md +85 -0
  35. package/docs/api/foundation-ai.aiprovider.md +22 -0
  36. package/docs/api/foundation-ai.aiprovider.streamchat.md +85 -0
  37. package/docs/api/foundation-ai.aiprovidertype.md +1 -1
  38. package/docs/api/foundation-ai.chatanimationsconfig.enabled.md +16 -0
  39. package/docs/api/foundation-ai.chatanimationsconfig.md +80 -0
  40. package/docs/api/foundation-ai.chatanimationsconfig.userconfigurable.md +16 -0
  41. package/docs/api/foundation-ai.chatattachment.content.md +14 -0
  42. package/docs/api/foundation-ai.chatattachment.md +99 -0
  43. package/docs/api/foundation-ai.chatattachment.mimetype.md +14 -0
  44. package/docs/api/foundation-ai.chatattachment.name.md +14 -0
  45. package/docs/api/foundation-ai.chatconfig.acceptedfiles.md +16 -0
  46. package/docs/api/foundation-ai.chatconfig.allowdebugdownload.md +16 -0
  47. package/docs/api/foundation-ai.chatconfig.animations.md +16 -0
  48. package/docs/api/foundation-ai.chatconfig.loadingdelay.md +16 -0
  49. package/docs/api/foundation-ai.chatconfig.maxtooliterations.md +16 -0
  50. package/docs/api/foundation-ai.chatconfig.md +177 -0
  51. package/docs/api/foundation-ai.chatconfig.showthinkingsteps.md +16 -0
  52. package/docs/api/foundation-ai.chatconfig.showtoolcalls.md +16 -0
  53. package/docs/api/foundation-ai.chatinteraction.componentname.md +14 -0
  54. package/docs/api/foundation-ai.chatinteraction.data.md +14 -0
  55. package/docs/api/foundation-ai.chatinteraction.interactionid.md +14 -0
  56. package/docs/api/foundation-ai.chatinteraction.md +118 -0
  57. package/docs/api/foundation-ai.chatinteraction.resolved.md +16 -0
  58. package/docs/api/foundation-ai.chatmessage.attachments.md +14 -0
  59. package/docs/api/foundation-ai.chatmessage.content.md +14 -0
  60. package/docs/api/foundation-ai.chatmessage.interaction.md +14 -0
  61. package/docs/api/foundation-ai.chatmessage.md +175 -0
  62. package/docs/api/foundation-ai.chatmessage.role.md +14 -0
  63. package/docs/api/foundation-ai.chatmessage.thinking.md +14 -0
  64. package/docs/api/foundation-ai.chatmessage.toolcalls.md +14 -0
  65. package/docs/api/foundation-ai.chatmessage.toolresult.md +14 -0
  66. package/docs/api/foundation-ai.chatrequestoptions.attachments.md +14 -0
  67. package/docs/api/foundation-ai.chatrequestoptions.md +118 -0
  68. package/docs/api/foundation-ai.chatrequestoptions.signal.md +14 -0
  69. package/docs/api/foundation-ai.chatrequestoptions.systemprompt.md +14 -0
  70. package/docs/api/foundation-ai.chatrequestoptions.tools.md +14 -0
  71. package/docs/api/foundation-ai.chatrole.md +16 -0
  72. package/docs/api/foundation-ai.chatstreamchunk.delta.md +14 -0
  73. package/docs/api/foundation-ai.chatstreamchunk.done.md +14 -0
  74. package/docs/api/foundation-ai.chatstreamchunk.md +99 -0
  75. package/docs/api/foundation-ai.chatstreamchunk.toolcalls.md +14 -0
  76. package/docs/api/foundation-ai.chattoolcall.args.md +14 -0
  77. package/docs/api/foundation-ai.chattoolcall.id.md +14 -0
  78. package/docs/api/foundation-ai.chattoolcall.md +99 -0
  79. package/docs/api/foundation-ai.chattoolcall.name.md +14 -0
  80. package/docs/api/foundation-ai.chattooldefinition.description.md +14 -0
  81. package/docs/api/foundation-ai.chattooldefinition.md +99 -0
  82. package/docs/api/foundation-ai.chattooldefinition.name.md +14 -0
  83. package/docs/api/foundation-ai.chattooldefinition.parameters.md +14 -0
  84. package/docs/api/foundation-ai.chattoolhandlers.md +18 -0
  85. package/docs/api/foundation-ai.chattoolresult.content.md +14 -0
  86. package/docs/api/foundation-ai.chattoolresult.md +80 -0
  87. package/docs/api/foundation-ai.chattoolresult.toolcallid.md +14 -0
  88. package/docs/api/foundation-ai.chattransport.md +58 -0
  89. package/docs/api/foundation-ai.chattransport.sendchatmessage.md +83 -0
  90. package/docs/api/foundation-ai.chattransport.streamchatmessage.md +83 -0
  91. package/docs/api/foundation-ai.criteriagroupresult.clauses.md +3 -0
  92. package/docs/api/foundation-ai.criteriagroupresult.logic.md +3 -0
  93. package/docs/api/foundation-ai.criteriagroupresult.md +10 -1
  94. package/docs/api/foundation-ai.criteriagroupresult.negated.md +3 -0
  95. package/docs/api/foundation-ai.criteriainterpretationresult.groups.md +3 -0
  96. package/docs/api/foundation-ai.criteriainterpretationresult.md +7 -0
  97. package/docs/api/foundation-ai.criteriainterpretcontext.fields.md +3 -0
  98. package/docs/api/foundation-ai.criteriainterpretcontext.md +6 -1
  99. package/docs/api/foundation-ai.fieldlike.md +5 -0
  100. package/docs/api/foundation-ai.geminiaiconfig.apikey.md +14 -0
  101. package/docs/api/foundation-ai.geminiaiconfig.md +123 -0
  102. package/docs/api/foundation-ai.geminiaiconfig.model.md +14 -0
  103. package/docs/api/foundation-ai.geminiaiconfig.providertype.md +14 -0
  104. package/docs/api/foundation-ai.geminiaiconfig.serverendpoint.md +14 -0
  105. package/docs/api/foundation-ai.geminiprovider._constructor_.md +65 -0
  106. package/docs/api/foundation-ai.geminiprovider.chat.md +83 -0
  107. package/docs/api/foundation-ai.geminiprovider.getstatus.md +18 -0
  108. package/docs/api/foundation-ai.geminiprovider.interpretcriteria.md +67 -0
  109. package/docs/api/foundation-ai.geminiprovider.md +128 -0
  110. package/docs/api/foundation-ai.geminiprovider.streamchat.md +83 -0
  111. package/docs/api/foundation-ai.geminitransport._constructor_.md +53 -0
  112. package/docs/api/foundation-ai.geminitransport.getconfig.md +21 -0
  113. package/docs/api/foundation-ai.geminitransport.md +116 -0
  114. package/docs/api/foundation-ai.geminitransport.sendchatmessage.md +83 -0
  115. package/docs/api/foundation-ai.geminitransport.sendstructuredprompt.md +53 -0
  116. package/docs/api/foundation-ai.interactionresult.md +20 -0
  117. package/docs/api/foundation-ai.isspeechrecognitionavailable.md +1 -1
  118. package/docs/api/foundation-ai.malformedfunctioncallerror._constructor_.md +53 -0
  119. package/docs/api/foundation-ai.malformedfunctioncallerror.finishmessage.md +14 -0
  120. package/docs/api/foundation-ai.malformedfunctioncallerror.md +98 -0
  121. package/docs/api/foundation-ai.md +230 -1
  122. package/docs/api/foundation-ai.resolveaiconfigoptions.md +9 -4
  123. package/docs/api/foundation-ai.resolveaiconfigoptions.model.md +3 -0
  124. package/docs/api/foundation-ai.resolveaiconfigoptions.preferchrome.md +3 -0
  125. package/docs/api/foundation-ai.resolveaiconfigoptions.provider.md +5 -2
  126. package/docs/api/foundation-ai.startspeechrecognition.md +5 -0
  127. package/docs/api-report.md.api.md +192 -11
  128. package/package.json +11 -11
@@ -10,15 +10,17 @@ import { InterfaceSymbol } from '@microsoft/fast-foundation';
10
10
  export const AI_FEATURE_FLAG = "ai";
11
11
 
12
12
  // @beta
13
- export type AIConfig = ServerAIConfig | ChromeAIConfig;
13
+ export type AIConfig = ServerAIConfig | ChromeAIConfig | GeminiAIConfig;
14
14
 
15
15
  // Warning: (ae-internal-mixed-release-tag) Mixed release tags are not allowed for "AIProvider" because one of its declarations is marked as @internal
16
16
  //
17
17
  // @beta
18
18
  export interface AIProvider {
19
+ chat?(history: ChatMessage[], userMessage: string, options?: ChatRequestOptions): Promise<ChatMessage>;
19
20
  getStatus?(): Promise<AIStatus | null>;
20
21
  // (undocumented)
21
22
  interpretCriteria?(input: string, context: CriteriaInterpretContext): Promise<CriteriaInterpretationResult | null>;
23
+ streamChat?(history: ChatMessage[], userMessage: string, options?: ChatRequestOptions): AsyncIterable<ChatStreamChunk>;
22
24
  triggerDownload?(): Promise<void>;
23
25
  }
24
26
 
@@ -26,7 +28,7 @@ export interface AIProvider {
26
28
  export const AIProvider: InterfaceSymbol<AIProvider>;
27
29
 
28
30
  // @beta
29
- export type AIProviderType = 'openai' | 'chrome' | 'none';
31
+ export type AIProviderType = 'openai' | 'chrome' | 'gemini' | 'none';
30
32
 
31
33
  // @beta
32
34
  export interface AIStatus {
@@ -38,6 +40,128 @@ export interface AIStatus {
38
40
  provider: AIProviderType;
39
41
  }
40
42
 
43
+ // @beta
44
+ export interface ChatAnimationsConfig {
45
+ enabled?: string[];
46
+ userConfigurable: boolean;
47
+ }
48
+
49
+ // @beta
50
+ export interface ChatAttachment {
51
+ // (undocumented)
52
+ content: string;
53
+ // (undocumented)
54
+ mimeType: string;
55
+ // (undocumented)
56
+ name: string;
57
+ }
58
+
59
+ // @beta
60
+ export interface ChatConfig {
61
+ acceptedFiles?: string;
62
+ allowDebugDownload?: boolean;
63
+ animations?: ChatAnimationsConfig;
64
+ loadingDelay?: number;
65
+ maxToolIterations?: number;
66
+ showThinkingSteps?: boolean | null;
67
+ showToolCalls?: boolean | null;
68
+ }
69
+
70
+ // @beta
71
+ export interface ChatInteraction {
72
+ // (undocumented)
73
+ componentName: string;
74
+ // (undocumented)
75
+ data: any;
76
+ // (undocumented)
77
+ interactionId: string;
78
+ resolved?: boolean;
79
+ }
80
+
81
+ // @beta
82
+ export interface ChatMessage {
83
+ // (undocumented)
84
+ attachments?: ChatAttachment[];
85
+ // (undocumented)
86
+ content: string;
87
+ // (undocumented)
88
+ interaction?: ChatInteraction;
89
+ // (undocumented)
90
+ role: ChatRole;
91
+ // (undocumented)
92
+ thinking?: boolean;
93
+ // (undocumented)
94
+ toolCalls?: ChatToolCall[];
95
+ // (undocumented)
96
+ toolResult?: ChatToolResult;
97
+ }
98
+
99
+ // @beta
100
+ export interface ChatRequestOptions {
101
+ // (undocumented)
102
+ attachments?: ChatAttachment[];
103
+ // (undocumented)
104
+ signal?: AbortSignal;
105
+ // (undocumented)
106
+ systemPrompt?: string;
107
+ // (undocumented)
108
+ tools?: ChatToolDefinition[];
109
+ }
110
+
111
+ // @beta
112
+ export type ChatRole = 'user' | 'assistant' | 'system' | 'tool';
113
+
114
+ // @beta
115
+ export interface ChatStreamChunk {
116
+ // (undocumented)
117
+ delta: string;
118
+ // (undocumented)
119
+ done: boolean;
120
+ // (undocumented)
121
+ toolCalls?: ChatToolCall[];
122
+ }
123
+
124
+ // @beta
125
+ export interface ChatToolCall {
126
+ // (undocumented)
127
+ args: Record<string, unknown>;
128
+ // (undocumented)
129
+ id: string;
130
+ // (undocumented)
131
+ name: string;
132
+ }
133
+
134
+ // @beta
135
+ export interface ChatToolDefinition {
136
+ // (undocumented)
137
+ description: string;
138
+ // (undocumented)
139
+ name: string;
140
+ // (undocumented)
141
+ parameters: Record<string, unknown>;
142
+ }
143
+
144
+ // @beta
145
+ export type ChatToolHandlers = Record<string, (args: Record<string, unknown>, context: {
146
+ requestInteraction: <T = unknown>(componentName: string, data: any) => Promise<T>;
147
+ }) => Promise<unknown>>;
148
+
149
+ // @beta
150
+ export interface ChatToolResult {
151
+ // (undocumented)
152
+ content: string;
153
+ // (undocumented)
154
+ toolCallId: string;
155
+ }
156
+
157
+ // @beta
158
+ export interface ChatTransport {
159
+ // (undocumented)
160
+ sendChatMessage(history: ChatMessage[], userMessage: string, options?: ChatRequestOptions): Promise<ChatMessage>;
161
+ // (undocumented)
162
+ streamChatMessage?(history: ChatMessage[], userMessage: string, options?: ChatRequestOptions): AsyncIterable<ChatStreamChunk>;
163
+ }
164
+
41
165
  // Warning: (ae-forgotten-export) The symbol "AIProviderConfig" needs to be exported by the entry point index.d.ts
42
166
  //
43
167
  // @beta
@@ -66,10 +190,8 @@ export interface CriteriaClauseResult {
66
190
  value: string | number | boolean | null;
67
191
  }
68
192
 
69
- // @public (undocumented)
193
+ // @beta
70
194
  export interface CriteriaGroupResult {
71
- // Warning: (ae-incompatible-release-tags) The symbol "clauses" is marked as @public, but its signature references "CriteriaClauseResult" which is marked as @beta
72
- //
73
195
  // (undocumented)
74
196
  clauses: CriteriaClauseResult[];
75
197
  // (undocumented)
@@ -78,19 +200,19 @@ export interface CriteriaGroupResult {
78
200
  negated?: boolean;
79
201
  }
80
202
 
81
- // @public (undocumented)
203
+ // @beta
82
204
  export interface CriteriaInterpretationResult {
83
205
  // (undocumented)
84
206
  groups: CriteriaGroupResult[];
85
207
  }
86
208
 
87
- // @public (undocumented)
209
+ // @beta
88
210
  export interface CriteriaInterpretContext {
89
211
  // (undocumented)
90
212
  fields?: FieldLike[];
91
213
  }
92
214
 
93
- // @public (undocumented)
215
+ // @beta
94
216
  export type FieldLike = string | {
95
217
  name?: string;
96
218
  field?: string;
@@ -98,23 +220,82 @@ export type FieldLike = string | {
98
220
  NAME?: string;
99
221
  };
100
222
 
223
+ // @beta
224
+ export interface GeminiAIConfig extends AIProviderConfig {
225
+ // (undocumented)
226
+ apiKey?: string;
227
+ // (undocumented)
228
+ model?: string;
229
+ // (undocumented)
230
+ providerType: 'gemini';
231
+ // (undocumented)
232
+ serverEndpoint?: string;
233
+ }
234
+
235
+ // @beta
236
+ export class GeminiProvider implements AIProvider {
237
+ // Warning: (ae-forgotten-export) The symbol "GeminiProviderConfig" needs to be exported by the entry point index.d.ts
238
+ constructor(config: GeminiProviderConfig, transport: GeminiTransport);
239
+ // (undocumented)
240
+ chat(history: ChatMessage[], userMessage: string, options?: ChatRequestOptions): Promise<ChatMessage>;
241
+ // (undocumented)
242
+ getStatus(): Promise<AIStatus>;
243
+ // (undocumented)
244
+ interpretCriteria(input: string, context: CriteriaInterpretContext): Promise<CriteriaInterpretationResult | null>;
245
+ // (undocumented)
246
+ streamChat(history: ChatMessage[], userMessage: string, options?: ChatRequestOptions): AsyncIterable<ChatStreamChunk>;
247
+ }
248
+
249
+ // Warning: (ae-forgotten-export) The symbol "AITransport" needs to be exported by the entry point index.d.ts
250
+ //
251
+ // @beta
252
+ export class GeminiTransport implements AITransport, ChatTransport {
253
+ // Warning: (ae-forgotten-export) The symbol "GeminiTransportConfig" needs to be exported by the entry point index.d.ts
254
+ constructor(config?: GeminiTransportConfig);
255
+ // (undocumented)
256
+ getConfig(): {
257
+ provider: 'gemini';
258
+ model: string;
259
+ };
260
+ // (undocumented)
261
+ sendChatMessage(history: ChatMessage[], userMessage: string, options?: ChatRequestOptions): Promise<ChatMessage>;
262
+ // Warning: (ae-forgotten-export) The symbol "StructuredPromptOptions" needs to be exported by the entry point index.d.ts
263
+ //
264
+ // (undocumented)
265
+ sendStructuredPrompt(options: StructuredPromptOptions): Promise<string>;
266
+ }
267
+
101
268
  // @beta
102
269
  export function getAIProvider(): AIProvider;
103
270
 
271
+ // @beta
272
+ export type InteractionResult<T = unknown> = {
273
+ status: 'approved' | 'rejected';
274
+ payload?: T;
275
+ message?: string;
276
+ };
277
+
104
278
  // @public
105
279
  export const isAIFeatureEnabled: () => boolean;
106
280
 
107
281
  // @beta
108
282
  export function isSpeechRecognitionAvailable(): boolean;
109
283
 
284
+ // @beta
285
+ export class MalformedFunctionCallError extends Error {
286
+ constructor(finishMessage?: string);
287
+ // (undocumented)
288
+ readonly finishMessage?: string;
289
+ }
290
+
110
291
  // @beta
111
292
  export function resolveAIConfig(options?: ResolveAIConfigOptions): Promise<AIConfig | null>;
112
293
 
113
- // @public (undocumented)
294
+ // @beta
114
295
  export interface ResolveAIConfigOptions {
115
296
  model?: string;
116
297
  preferChrome?: boolean;
117
- provider?: 'openai';
298
+ provider?: 'openai' | 'gemini';
118
299
  }
119
300
 
120
301
  // @beta
@@ -128,7 +309,7 @@ export interface ServerAIConfig extends AIProviderConfig {
128
309
  // Warning: (ae-forgotten-export) The symbol "SpeechRecognitionResultHandler" needs to be exported by the entry point index.d.ts
129
310
  // Warning: (ae-forgotten-export) The symbol "SpeechRecognitionErrorHandler" needs to be exported by the entry point index.d.ts
130
311
  //
131
- // @public (undocumented)
312
+ // @beta
132
313
  export function startSpeechRecognition(onResult: SpeechRecognitionResultHandler, onError?: SpeechRecognitionErrorHandler): (() => void) | null;
133
314
 
134
315
  // (No @packageDocumentation comment for this package)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-ai",
3
3
  "description": "Genesis Foundation AI - Provider-agnostic AI configuration and shared utilities",
4
- "version": "14.407.0-workspaces.4",
4
+ "version": "14.408.0",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -51,17 +51,17 @@
51
51
  }
52
52
  },
53
53
  "devDependencies": {
54
- "@genesislcap/foundation-testing": "14.407.0-workspaces.4",
55
- "@genesislcap/genx": "14.407.0-workspaces.4",
56
- "@genesislcap/rollup-builder": "14.407.0-workspaces.4",
57
- "@genesislcap/ts-builder": "14.407.0-workspaces.4",
58
- "@genesislcap/uvu-playwright-builder": "14.407.0-workspaces.4",
59
- "@genesislcap/vite-builder": "14.407.0-workspaces.4",
60
- "@genesislcap/webpack-builder": "14.407.0-workspaces.4"
54
+ "@genesislcap/foundation-testing": "14.408.0",
55
+ "@genesislcap/genx": "14.408.0",
56
+ "@genesislcap/rollup-builder": "14.408.0",
57
+ "@genesislcap/ts-builder": "14.408.0",
58
+ "@genesislcap/uvu-playwright-builder": "14.408.0",
59
+ "@genesislcap/vite-builder": "14.408.0",
60
+ "@genesislcap/webpack-builder": "14.408.0"
61
61
  },
62
62
  "dependencies": {
63
- "@genesislcap/foundation-logger": "14.407.0-workspaces.4",
64
- "@genesislcap/foundation-utils": "14.407.0-workspaces.4",
63
+ "@genesislcap/foundation-logger": "14.408.0",
64
+ "@genesislcap/foundation-utils": "14.408.0",
65
65
  "@microsoft/fast-foundation": "2.50.0"
66
66
  },
67
67
  "repository": {
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "923fa7c52904cc262f94b21f8c0b025986bfdf41"
75
+ "gitHead": "26b08831fd001b4ee95c8a0d3364a18c0ec4005b"
76
76
  }