@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.
- package/lib/agent.d.ts +233 -0
- package/lib/agent.js +604 -0
- package/lib/chat-model.d.ts +195 -0
- package/lib/chat-model.js +590 -0
- package/lib/completion/completion-provider.d.ts +83 -0
- package/lib/completion/completion-provider.js +209 -0
- package/lib/completion/index.d.ts +1 -0
- package/lib/completion/index.js +1 -0
- package/lib/components/clear-button.d.ts +18 -0
- package/lib/components/clear-button.js +31 -0
- package/lib/components/index.d.ts +3 -0
- package/lib/components/index.js +3 -0
- package/lib/components/model-select.d.ts +19 -0
- package/lib/components/model-select.js +154 -0
- package/lib/components/stop-button.d.ts +3 -3
- package/lib/components/stop-button.js +8 -9
- package/lib/components/token-usage-display.d.ts +45 -0
- package/lib/components/token-usage-display.js +74 -0
- package/lib/components/tool-select.d.ts +27 -0
- package/lib/components/tool-select.js +130 -0
- package/lib/icons.d.ts +3 -1
- package/lib/icons.js +10 -13
- package/lib/index.d.ts +4 -5
- package/lib/index.js +322 -167
- package/lib/mcp/browser.d.ts +68 -0
- package/lib/mcp/browser.js +132 -0
- package/lib/models/settings-model.d.ts +69 -0
- package/lib/models/settings-model.js +295 -0
- package/lib/providers/built-in-providers.d.ts +9 -0
- package/lib/providers/built-in-providers.js +192 -0
- package/lib/providers/models.d.ts +37 -0
- package/lib/providers/models.js +28 -0
- package/lib/providers/provider-registry.d.ts +94 -0
- package/lib/providers/provider-registry.js +155 -0
- package/lib/tokens.d.ts +157 -86
- package/lib/tokens.js +16 -12
- package/lib/tools/commands.d.ts +11 -0
- package/lib/tools/commands.js +126 -0
- package/lib/tools/file.d.ts +27 -0
- package/lib/tools/file.js +262 -0
- package/lib/tools/notebook.d.ts +40 -0
- package/lib/tools/notebook.js +762 -0
- package/lib/tools/tool-registry.d.ts +35 -0
- package/lib/tools/tool-registry.js +55 -0
- package/lib/widgets/ai-settings.d.ts +39 -0
- package/lib/widgets/ai-settings.js +506 -0
- package/lib/widgets/chat-wrapper.d.ts +144 -0
- package/lib/widgets/chat-wrapper.js +390 -0
- package/lib/widgets/provider-config-dialog.d.ts +13 -0
- package/lib/widgets/provider-config-dialog.js +104 -0
- package/package.json +150 -41
- package/schema/settings-model.json +153 -0
- package/src/agent.ts +800 -0
- package/src/chat-model.ts +770 -0
- package/src/completion/completion-provider.ts +308 -0
- package/src/completion/index.ts +1 -0
- package/src/components/clear-button.tsx +56 -0
- package/src/components/index.ts +3 -0
- package/src/components/model-select.tsx +245 -0
- package/src/components/stop-button.tsx +11 -11
- package/src/components/token-usage-display.tsx +130 -0
- package/src/components/tool-select.tsx +218 -0
- package/src/icons.ts +12 -14
- package/src/index.ts +468 -238
- package/src/mcp/browser.ts +213 -0
- package/src/models/settings-model.ts +409 -0
- package/src/providers/built-in-providers.ts +216 -0
- package/src/providers/models.ts +79 -0
- package/src/providers/provider-registry.ts +189 -0
- package/src/tokens.ts +203 -90
- package/src/tools/commands.ts +151 -0
- package/src/tools/file.ts +307 -0
- package/src/tools/notebook.ts +964 -0
- package/src/tools/tool-registry.ts +63 -0
- package/src/types.d.ts +4 -0
- package/src/widgets/ai-settings.tsx +1100 -0
- package/src/widgets/chat-wrapper.tsx +543 -0
- package/src/widgets/provider-config-dialog.tsx +256 -0
- package/style/base.css +335 -14
- package/style/icons/jupyternaut-lite.svg +1 -1
- package/lib/base-completer.d.ts +0 -49
- package/lib/base-completer.js +0 -14
- package/lib/chat-handler.d.ts +0 -56
- package/lib/chat-handler.js +0 -201
- package/lib/completion-provider.d.ts +0 -34
- package/lib/completion-provider.js +0 -32
- package/lib/default-prompts.d.ts +0 -2
- package/lib/default-prompts.js +0 -31
- package/lib/default-providers/Anthropic/completer.d.ts +0 -12
- package/lib/default-providers/Anthropic/completer.js +0 -46
- package/lib/default-providers/Anthropic/settings-schema.json +0 -70
- package/lib/default-providers/ChromeAI/completer.d.ts +0 -12
- package/lib/default-providers/ChromeAI/completer.js +0 -56
- package/lib/default-providers/ChromeAI/instructions.d.ts +0 -6
- package/lib/default-providers/ChromeAI/instructions.js +0 -42
- package/lib/default-providers/ChromeAI/settings-schema.json +0 -18
- package/lib/default-providers/Gemini/completer.d.ts +0 -12
- package/lib/default-providers/Gemini/completer.js +0 -48
- package/lib/default-providers/Gemini/instructions.d.ts +0 -2
- package/lib/default-providers/Gemini/instructions.js +0 -9
- package/lib/default-providers/Gemini/settings-schema.json +0 -64
- package/lib/default-providers/MistralAI/completer.d.ts +0 -13
- package/lib/default-providers/MistralAI/completer.js +0 -52
- package/lib/default-providers/MistralAI/instructions.d.ts +0 -2
- package/lib/default-providers/MistralAI/instructions.js +0 -18
- package/lib/default-providers/MistralAI/settings-schema.json +0 -75
- package/lib/default-providers/Ollama/completer.d.ts +0 -12
- package/lib/default-providers/Ollama/completer.js +0 -43
- package/lib/default-providers/Ollama/instructions.d.ts +0 -2
- package/lib/default-providers/Ollama/instructions.js +0 -70
- package/lib/default-providers/Ollama/settings-schema.json +0 -143
- package/lib/default-providers/OpenAI/completer.d.ts +0 -12
- package/lib/default-providers/OpenAI/completer.js +0 -43
- package/lib/default-providers/OpenAI/settings-schema.json +0 -628
- package/lib/default-providers/WebLLM/completer.d.ts +0 -21
- package/lib/default-providers/WebLLM/completer.js +0 -127
- package/lib/default-providers/WebLLM/instructions.d.ts +0 -6
- package/lib/default-providers/WebLLM/instructions.js +0 -32
- package/lib/default-providers/WebLLM/settings-schema.json +0 -19
- package/lib/default-providers/index.d.ts +0 -2
- package/lib/default-providers/index.js +0 -179
- package/lib/provider.d.ts +0 -144
- package/lib/provider.js +0 -412
- package/lib/settings/base.json +0 -7
- package/lib/settings/index.d.ts +0 -3
- package/lib/settings/index.js +0 -3
- package/lib/settings/panel.d.ts +0 -226
- package/lib/settings/panel.js +0 -510
- package/lib/settings/textarea.d.ts +0 -2
- package/lib/settings/textarea.js +0 -18
- package/lib/settings/utils.d.ts +0 -2
- package/lib/settings/utils.js +0 -4
- package/lib/types/ai-model.d.ts +0 -24
- package/lib/types/ai-model.js +0 -5
- package/schema/chat.json +0 -28
- package/schema/provider-registry.json +0 -29
- package/schema/system-prompts.json +0 -22
- package/src/base-completer.ts +0 -75
- package/src/chat-handler.ts +0 -262
- package/src/completion-provider.ts +0 -64
- package/src/default-prompts.ts +0 -33
- package/src/default-providers/Anthropic/completer.ts +0 -59
- package/src/default-providers/ChromeAI/completer.ts +0 -73
- package/src/default-providers/ChromeAI/instructions.ts +0 -45
- package/src/default-providers/Gemini/completer.ts +0 -61
- package/src/default-providers/Gemini/instructions.ts +0 -9
- package/src/default-providers/MistralAI/completer.ts +0 -69
- package/src/default-providers/MistralAI/instructions.ts +0 -18
- package/src/default-providers/Ollama/completer.ts +0 -54
- package/src/default-providers/Ollama/instructions.ts +0 -70
- package/src/default-providers/OpenAI/completer.ts +0 -54
- package/src/default-providers/WebLLM/completer.ts +0 -151
- package/src/default-providers/WebLLM/instructions.ts +0 -33
- package/src/default-providers/index.ts +0 -211
- package/src/global.d.ts +0 -9
- package/src/provider.ts +0 -514
- package/src/settings/index.ts +0 -3
- package/src/settings/panel.tsx +0 -773
- package/src/settings/textarea.tsx +0 -33
- package/src/settings/utils.ts +0 -5
- package/src/types/ai-model.ts +0 -37
- 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
|
+
}
|