@jupyterlite/ai 0.8.1 → 0.9.0-a0

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 (162) hide show
  1. package/lib/agent.d.ts +233 -0
  2. package/lib/agent.js +604 -0
  3. package/lib/chat-model.d.ts +195 -0
  4. package/lib/chat-model.js +590 -0
  5. package/lib/completion/completion-provider.d.ts +83 -0
  6. package/lib/completion/completion-provider.js +209 -0
  7. package/lib/completion/index.d.ts +1 -0
  8. package/lib/completion/index.js +1 -0
  9. package/lib/components/clear-button.d.ts +18 -0
  10. package/lib/components/clear-button.js +31 -0
  11. package/lib/components/index.d.ts +3 -0
  12. package/lib/components/index.js +3 -0
  13. package/lib/components/model-select.d.ts +19 -0
  14. package/lib/components/model-select.js +154 -0
  15. package/lib/components/stop-button.d.ts +3 -3
  16. package/lib/components/stop-button.js +8 -9
  17. package/lib/components/token-usage-display.d.ts +45 -0
  18. package/lib/components/token-usage-display.js +74 -0
  19. package/lib/components/tool-select.d.ts +27 -0
  20. package/lib/components/tool-select.js +130 -0
  21. package/lib/icons.d.ts +3 -1
  22. package/lib/icons.js +10 -13
  23. package/lib/index.d.ts +4 -5
  24. package/lib/index.js +322 -167
  25. package/lib/mcp/browser.d.ts +68 -0
  26. package/lib/mcp/browser.js +132 -0
  27. package/lib/models/settings-model.d.ts +69 -0
  28. package/lib/models/settings-model.js +295 -0
  29. package/lib/providers/built-in-providers.d.ts +9 -0
  30. package/lib/providers/built-in-providers.js +192 -0
  31. package/lib/providers/models.d.ts +37 -0
  32. package/lib/providers/models.js +28 -0
  33. package/lib/providers/provider-registry.d.ts +94 -0
  34. package/lib/providers/provider-registry.js +155 -0
  35. package/lib/tokens.d.ts +157 -86
  36. package/lib/tokens.js +16 -12
  37. package/lib/tools/commands.d.ts +11 -0
  38. package/lib/tools/commands.js +126 -0
  39. package/lib/tools/file.d.ts +27 -0
  40. package/lib/tools/file.js +262 -0
  41. package/lib/tools/notebook.d.ts +40 -0
  42. package/lib/tools/notebook.js +762 -0
  43. package/lib/tools/tool-registry.d.ts +35 -0
  44. package/lib/tools/tool-registry.js +55 -0
  45. package/lib/widgets/ai-settings.d.ts +39 -0
  46. package/lib/widgets/ai-settings.js +506 -0
  47. package/lib/widgets/chat-wrapper.d.ts +144 -0
  48. package/lib/widgets/chat-wrapper.js +390 -0
  49. package/lib/widgets/provider-config-dialog.d.ts +13 -0
  50. package/lib/widgets/provider-config-dialog.js +104 -0
  51. package/package.json +150 -41
  52. package/schema/settings-model.json +153 -0
  53. package/src/agent.ts +800 -0
  54. package/src/chat-model.ts +770 -0
  55. package/src/completion/completion-provider.ts +308 -0
  56. package/src/completion/index.ts +1 -0
  57. package/src/components/clear-button.tsx +56 -0
  58. package/src/components/index.ts +3 -0
  59. package/src/components/model-select.tsx +245 -0
  60. package/src/components/stop-button.tsx +11 -11
  61. package/src/components/token-usage-display.tsx +130 -0
  62. package/src/components/tool-select.tsx +218 -0
  63. package/src/icons.ts +12 -14
  64. package/src/index.ts +468 -238
  65. package/src/mcp/browser.ts +213 -0
  66. package/src/models/settings-model.ts +409 -0
  67. package/src/providers/built-in-providers.ts +216 -0
  68. package/src/providers/models.ts +79 -0
  69. package/src/providers/provider-registry.ts +189 -0
  70. package/src/tokens.ts +203 -90
  71. package/src/tools/commands.ts +151 -0
  72. package/src/tools/file.ts +307 -0
  73. package/src/tools/notebook.ts +964 -0
  74. package/src/tools/tool-registry.ts +63 -0
  75. package/src/types.d.ts +4 -0
  76. package/src/widgets/ai-settings.tsx +1100 -0
  77. package/src/widgets/chat-wrapper.tsx +543 -0
  78. package/src/widgets/provider-config-dialog.tsx +256 -0
  79. package/style/base.css +335 -14
  80. package/style/icons/jupyternaut-lite.svg +1 -1
  81. package/lib/base-completer.d.ts +0 -49
  82. package/lib/base-completer.js +0 -14
  83. package/lib/chat-handler.d.ts +0 -56
  84. package/lib/chat-handler.js +0 -201
  85. package/lib/completion-provider.d.ts +0 -34
  86. package/lib/completion-provider.js +0 -32
  87. package/lib/default-prompts.d.ts +0 -2
  88. package/lib/default-prompts.js +0 -31
  89. package/lib/default-providers/Anthropic/completer.d.ts +0 -12
  90. package/lib/default-providers/Anthropic/completer.js +0 -46
  91. package/lib/default-providers/Anthropic/settings-schema.json +0 -70
  92. package/lib/default-providers/ChromeAI/completer.d.ts +0 -12
  93. package/lib/default-providers/ChromeAI/completer.js +0 -56
  94. package/lib/default-providers/ChromeAI/instructions.d.ts +0 -6
  95. package/lib/default-providers/ChromeAI/instructions.js +0 -42
  96. package/lib/default-providers/ChromeAI/settings-schema.json +0 -18
  97. package/lib/default-providers/Gemini/completer.d.ts +0 -12
  98. package/lib/default-providers/Gemini/completer.js +0 -48
  99. package/lib/default-providers/Gemini/instructions.d.ts +0 -2
  100. package/lib/default-providers/Gemini/instructions.js +0 -9
  101. package/lib/default-providers/Gemini/settings-schema.json +0 -64
  102. package/lib/default-providers/MistralAI/completer.d.ts +0 -13
  103. package/lib/default-providers/MistralAI/completer.js +0 -52
  104. package/lib/default-providers/MistralAI/instructions.d.ts +0 -2
  105. package/lib/default-providers/MistralAI/instructions.js +0 -18
  106. package/lib/default-providers/MistralAI/settings-schema.json +0 -75
  107. package/lib/default-providers/Ollama/completer.d.ts +0 -12
  108. package/lib/default-providers/Ollama/completer.js +0 -43
  109. package/lib/default-providers/Ollama/instructions.d.ts +0 -2
  110. package/lib/default-providers/Ollama/instructions.js +0 -70
  111. package/lib/default-providers/Ollama/settings-schema.json +0 -143
  112. package/lib/default-providers/OpenAI/completer.d.ts +0 -12
  113. package/lib/default-providers/OpenAI/completer.js +0 -43
  114. package/lib/default-providers/OpenAI/settings-schema.json +0 -628
  115. package/lib/default-providers/WebLLM/completer.d.ts +0 -21
  116. package/lib/default-providers/WebLLM/completer.js +0 -127
  117. package/lib/default-providers/WebLLM/instructions.d.ts +0 -6
  118. package/lib/default-providers/WebLLM/instructions.js +0 -32
  119. package/lib/default-providers/WebLLM/settings-schema.json +0 -19
  120. package/lib/default-providers/index.d.ts +0 -2
  121. package/lib/default-providers/index.js +0 -179
  122. package/lib/provider.d.ts +0 -144
  123. package/lib/provider.js +0 -412
  124. package/lib/settings/base.json +0 -7
  125. package/lib/settings/index.d.ts +0 -3
  126. package/lib/settings/index.js +0 -3
  127. package/lib/settings/panel.d.ts +0 -226
  128. package/lib/settings/panel.js +0 -510
  129. package/lib/settings/textarea.d.ts +0 -2
  130. package/lib/settings/textarea.js +0 -18
  131. package/lib/settings/utils.d.ts +0 -2
  132. package/lib/settings/utils.js +0 -4
  133. package/lib/types/ai-model.d.ts +0 -24
  134. package/lib/types/ai-model.js +0 -5
  135. package/schema/chat.json +0 -28
  136. package/schema/provider-registry.json +0 -29
  137. package/schema/system-prompts.json +0 -22
  138. package/src/base-completer.ts +0 -75
  139. package/src/chat-handler.ts +0 -262
  140. package/src/completion-provider.ts +0 -64
  141. package/src/default-prompts.ts +0 -33
  142. package/src/default-providers/Anthropic/completer.ts +0 -59
  143. package/src/default-providers/ChromeAI/completer.ts +0 -73
  144. package/src/default-providers/ChromeAI/instructions.ts +0 -45
  145. package/src/default-providers/Gemini/completer.ts +0 -61
  146. package/src/default-providers/Gemini/instructions.ts +0 -9
  147. package/src/default-providers/MistralAI/completer.ts +0 -69
  148. package/src/default-providers/MistralAI/instructions.ts +0 -18
  149. package/src/default-providers/Ollama/completer.ts +0 -54
  150. package/src/default-providers/Ollama/instructions.ts +0 -70
  151. package/src/default-providers/OpenAI/completer.ts +0 -54
  152. package/src/default-providers/WebLLM/completer.ts +0 -151
  153. package/src/default-providers/WebLLM/instructions.ts +0 -33
  154. package/src/default-providers/index.ts +0 -211
  155. package/src/global.d.ts +0 -9
  156. package/src/provider.ts +0 -514
  157. package/src/settings/index.ts +0 -3
  158. package/src/settings/panel.tsx +0 -773
  159. package/src/settings/textarea.tsx +0 -33
  160. package/src/settings/utils.ts +0 -5
  161. package/src/types/ai-model.ts +0 -37
  162. package/src/types/service-worker.d.ts +0 -6
@@ -0,0 +1,195 @@
1
+ import { AbstractChatModel, IActiveCellManager, IChatContext, INewMessage, IUser } from '@jupyter/chat';
2
+ import { IDocumentManager } from '@jupyterlab/docmanager';
3
+ import { AgentManager } from './agent';
4
+ import { AISettingsModel } from './models/settings-model';
5
+ /**
6
+ * AI Chat Model implementation that provides chat functionality with OpenAI agents,
7
+ * tool integration, and MCP server support.
8
+ * Extends the base AbstractChatModel to provide AI-powered conversations.
9
+ */
10
+ export declare class AIChatModel extends AbstractChatModel {
11
+ /**
12
+ * Constructs a new AIChatModel instance.
13
+ * @param options Configuration options for the chat model
14
+ */
15
+ constructor(options: AIChatModel.IOptions);
16
+ /**
17
+ * Gets the current user information.
18
+ */
19
+ get user(): IUser;
20
+ get tokenUsageChanged(): import("@lumino/signaling").ISignal<AgentManager, import("./tokens").ITokenUsage>;
21
+ /**
22
+ * Creates a chat context for the current conversation.
23
+ */
24
+ createChatContext(): AIChatModel.IAIChatContext;
25
+ /**
26
+ * Stops the current streaming response by aborting the request.
27
+ */
28
+ stopStreaming: () => void;
29
+ /**
30
+ * Clears all messages from the chat and resets conversation state.
31
+ */
32
+ clearMessages: () => void;
33
+ /**
34
+ * Sends a message to the AI and generates a response.
35
+ * @param message The user message to send
36
+ */
37
+ sendMessage(message: INewMessage): Promise<void>;
38
+ /**
39
+ * Approves a tool call and updates the UI accordingly.
40
+ * @param interruptionId The interruption ID to approve
41
+ * @param messageId Optional message ID for UI updates
42
+ */
43
+ approveToolCall(interruptionId: string, messageId?: string): Promise<void>;
44
+ /**
45
+ * Rejects a tool call and updates the UI accordingly.
46
+ * @param interruptionId The interruption ID to reject
47
+ * @param messageId Optional message ID for UI updates
48
+ */
49
+ rejectToolCall(interruptionId: string, messageId?: string): Promise<void>;
50
+ /**
51
+ * Approves all tools in a group.
52
+ * @param groupId The group ID containing the tool calls
53
+ * @param interruptionIds Array of interruption IDs to approve
54
+ * @param messageId Optional message ID for UI updates
55
+ */
56
+ approveGroupedToolCalls(groupId: string, interruptionIds: string[], messageId?: string): Promise<void>;
57
+ /**
58
+ * Rejects all tools in a group.
59
+ * @param groupId The group ID containing the tool calls
60
+ * @param interruptionIds Array of interruption IDs to reject
61
+ * @param messageId Optional message ID for UI updates
62
+ */
63
+ rejectGroupedToolCalls(groupId: string, interruptionIds: string[], messageId?: string): Promise<void>;
64
+ /**
65
+ * Gets the AI user information for system messages.
66
+ */
67
+ private _getAIUser;
68
+ /**
69
+ * Handles settings changes and updates chat configuration accordingly.
70
+ */
71
+ private _onSettingsChanged;
72
+ /**
73
+ * Handles events emitted by the agent manager.
74
+ * @param event The event data containing type and payload
75
+ */
76
+ private _onAgentEvent;
77
+ /**
78
+ * Handles the start of a new message from the AI agent.
79
+ * @param event Event containing the message start data
80
+ */
81
+ private _handleMessageStart;
82
+ /**
83
+ * Handles streaming message chunks from the AI agent.
84
+ * @param event Event containing the message chunk data
85
+ */
86
+ private _handleMessageChunk;
87
+ /**
88
+ * Handles the completion of a message from the AI agent.
89
+ * @param event Event containing the message completion data
90
+ */
91
+ private _handleMessageComplete;
92
+ /**
93
+ * Handles the start of a tool call execution.
94
+ * @param event Event containing the tool call start data
95
+ */
96
+ private _handleToolCallStartEvent;
97
+ /**
98
+ * Handles the completion of a tool call execution.
99
+ * @param event Event containing the tool call completion data
100
+ */
101
+ private _handleToolCallCompleteEvent;
102
+ /**
103
+ * Handles tool approval requests from the AI agent.
104
+ * @param event Event containing the tool approval request data
105
+ */
106
+ private _handleToolApprovalRequired;
107
+ /**
108
+ * Handles grouped tool approval requests from the AI agent.
109
+ * @param event Event containing the grouped tool approval request data
110
+ */
111
+ private _handleGroupedApprovalRequired;
112
+ /**
113
+ * Handles error events from the AI agent.
114
+ * @param event Event containing the error information
115
+ */
116
+ private _handleErrorEvent;
117
+ /**
118
+ * Processes file attachments and returns their content as formatted strings.
119
+ * @param attachments Array of file attachments to process
120
+ * @returns Array of formatted attachment contents
121
+ */
122
+ private _processAttachments;
123
+ /**
124
+ * Reads the content of a file attachment.
125
+ * @param attachment The file attachment to read
126
+ * @returns File content as string or null if unable to read
127
+ */
128
+ private _readFileAttachment;
129
+ /**
130
+ * Updates the status display of a grouped approval message.
131
+ * @param messageId The message ID to update
132
+ * @param status The status text to display
133
+ * @param isSuccess Whether the action was successful
134
+ */
135
+ private _updateGroupedApprovalStatus;
136
+ /**
137
+ * Updates the status display of a tool call box.
138
+ * @param messageId The message ID to update
139
+ * @param status The status text to display
140
+ * @param isSuccess Whether the action was successful
141
+ */
142
+ private _updateToolCallBoxStatus;
143
+ private _settingsModel;
144
+ private _user;
145
+ private _pendingToolCalls;
146
+ private _agentManager;
147
+ private _currentStreamingMessage;
148
+ }
149
+ /**
150
+ * Namespace containing types and interfaces for AIChatModel.
151
+ */
152
+ export declare namespace AIChatModel {
153
+ /**
154
+ * Configuration options for constructing an AIChatModel instance.
155
+ */
156
+ interface IOptions {
157
+ /**
158
+ * The user information for the chat
159
+ */
160
+ user: IUser;
161
+ /**
162
+ * Settings model for AI configuration
163
+ */
164
+ settingsModel: AISettingsModel;
165
+ /**
166
+ * Optional agent manager for handling AI agent lifecycle
167
+ */
168
+ agentManager: AgentManager;
169
+ /**
170
+ * Optional active cell manager for Jupyter integration
171
+ */
172
+ activeCellManager?: IActiveCellManager;
173
+ /**
174
+ * Optional document manager for file operations
175
+ */
176
+ documentManager?: IDocumentManager;
177
+ }
178
+ /**
179
+ * The chat context for toolbar buttons.
180
+ */
181
+ interface IAIChatContext extends IChatContext {
182
+ /**
183
+ * The stop streaming callback.
184
+ */
185
+ stopStreaming: () => void;
186
+ /**
187
+ * The clear messages callback.
188
+ */
189
+ clearMessages: () => void;
190
+ /**
191
+ * The agent manager of the chat.
192
+ */
193
+ agentManager: AgentManager;
194
+ }
195
+ }