@jupyterlite/ai 0.8.1 → 0.9.0-a1
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 +243 -0
- package/lib/agent.js +627 -0
- package/lib/chat-model.d.ts +195 -0
- package/lib/chat-model.js +591 -0
- package/lib/completion/completion-provider.d.ts +93 -0
- package/lib/completion/completion-provider.js +235 -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 +5 -5
- package/lib/index.js +341 -169
- package/lib/mcp/browser.d.ts +68 -0
- package/lib/mcp/browser.js +132 -0
- package/lib/models/settings-model.d.ts +70 -0
- package/lib/models/settings-model.js +296 -0
- package/lib/providers/built-in-providers.d.ts +9 -0
- package/lib/providers/built-in-providers.js +266 -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 +167 -86
- package/lib/tokens.js +25 -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 +41 -0
- package/lib/tools/notebook.js +779 -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 +49 -0
- package/lib/widgets/ai-settings.js +580 -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 +14 -0
- package/lib/widgets/provider-config-dialog.js +112 -0
- package/package.json +151 -40
- package/schema/settings-model.json +159 -0
- package/src/agent.ts +836 -0
- package/src/chat-model.ts +771 -0
- package/src/completion/completion-provider.ts +346 -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 +485 -232
- package/src/mcp/browser.ts +213 -0
- package/src/models/settings-model.ts +413 -0
- package/src/providers/built-in-providers.ts +294 -0
- package/src/providers/models.ts +79 -0
- package/src/providers/provider-registry.ts +189 -0
- package/src/tokens.ts +217 -90
- package/src/tools/commands.ts +151 -0
- package/src/tools/file.ts +307 -0
- package/src/tools/notebook.ts +987 -0
- package/src/tools/tool-registry.ts +63 -0
- package/src/types.d.ts +4 -0
- package/src/widgets/ai-settings.tsx +1233 -0
- package/src/widgets/chat-wrapper.tsx +543 -0
- package/src/widgets/provider-config-dialog.tsx +272 -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
package/lib/agent.d.ts
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { ISignal } from '@lumino/signaling';
|
|
2
|
+
import { ISecretsManager } from 'jupyter-secrets-manager';
|
|
3
|
+
import { AISettingsModel } from './models/settings-model';
|
|
4
|
+
import type { IChatProviderRegistry } from './tokens';
|
|
5
|
+
import { ITool, IToolRegistry, ITokenUsage } from './tokens';
|
|
6
|
+
/**
|
|
7
|
+
* Event type mapping for type safety with inlined interface definitions
|
|
8
|
+
*/
|
|
9
|
+
export interface IAgentEventTypeMap {
|
|
10
|
+
message_start: {
|
|
11
|
+
messageId: string;
|
|
12
|
+
};
|
|
13
|
+
message_chunk: {
|
|
14
|
+
messageId: string;
|
|
15
|
+
chunk: string;
|
|
16
|
+
fullContent: string;
|
|
17
|
+
};
|
|
18
|
+
message_complete: {
|
|
19
|
+
messageId: string;
|
|
20
|
+
content: string;
|
|
21
|
+
};
|
|
22
|
+
tool_call_start: {
|
|
23
|
+
callId: string;
|
|
24
|
+
toolName: string;
|
|
25
|
+
input: any;
|
|
26
|
+
};
|
|
27
|
+
tool_call_complete: {
|
|
28
|
+
callId: string;
|
|
29
|
+
toolName: string;
|
|
30
|
+
output: any;
|
|
31
|
+
isError: boolean;
|
|
32
|
+
};
|
|
33
|
+
tool_approval_required: {
|
|
34
|
+
interruptionId: string;
|
|
35
|
+
toolName: string;
|
|
36
|
+
toolInput: any;
|
|
37
|
+
callId?: string;
|
|
38
|
+
};
|
|
39
|
+
grouped_approval_required: {
|
|
40
|
+
groupId: string;
|
|
41
|
+
approvals: Array<{
|
|
42
|
+
interruptionId: string;
|
|
43
|
+
toolName: string;
|
|
44
|
+
toolInput: any;
|
|
45
|
+
}>;
|
|
46
|
+
};
|
|
47
|
+
error: {
|
|
48
|
+
error: Error;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Events emitted by the AgentManager
|
|
53
|
+
*/
|
|
54
|
+
export type IAgentEvent<T extends keyof IAgentEventTypeMap = keyof IAgentEventTypeMap> = T extends keyof IAgentEventTypeMap ? {
|
|
55
|
+
type: T;
|
|
56
|
+
data: IAgentEventTypeMap[T];
|
|
57
|
+
} : never;
|
|
58
|
+
/**
|
|
59
|
+
* Configuration options for the AgentManager
|
|
60
|
+
*/
|
|
61
|
+
export interface IAgentManagerOptions {
|
|
62
|
+
/**
|
|
63
|
+
* AI settings model for configuration
|
|
64
|
+
*/
|
|
65
|
+
settingsModel: AISettingsModel;
|
|
66
|
+
/**
|
|
67
|
+
* Optional tool registry for managing available tools
|
|
68
|
+
*/
|
|
69
|
+
toolRegistry?: IToolRegistry;
|
|
70
|
+
/**
|
|
71
|
+
* Optional chat provider registry for model creation
|
|
72
|
+
*/
|
|
73
|
+
chatProviderRegistry?: IChatProviderRegistry;
|
|
74
|
+
/**
|
|
75
|
+
* The secrets manager.
|
|
76
|
+
*/
|
|
77
|
+
secretsManager?: ISecretsManager;
|
|
78
|
+
/**
|
|
79
|
+
* The token used to request the secrets manager.
|
|
80
|
+
*/
|
|
81
|
+
token: symbol;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Manages the AI agent lifecycle and execution loop.
|
|
85
|
+
* Provides agent initialization, tool management, MCP server integration,
|
|
86
|
+
* and handles the complete agent execution cycle including tool approvals.
|
|
87
|
+
* Emits events for UI updates instead of directly manipulating the chat interface.
|
|
88
|
+
*/
|
|
89
|
+
export declare class AgentManager {
|
|
90
|
+
/**
|
|
91
|
+
* Creates a new AgentManager instance.
|
|
92
|
+
* @param options Configuration options for the agent manager
|
|
93
|
+
*/
|
|
94
|
+
constructor(options: IAgentManagerOptions);
|
|
95
|
+
/**
|
|
96
|
+
* Signal emitted when agent events occur
|
|
97
|
+
*/
|
|
98
|
+
get agentEvent(): ISignal<this, IAgentEvent>;
|
|
99
|
+
/**
|
|
100
|
+
* Signal emitted when MCP connection status changes
|
|
101
|
+
*/
|
|
102
|
+
get mcpConnectionChanged(): ISignal<this, boolean>;
|
|
103
|
+
/**
|
|
104
|
+
* Gets the current token usage statistics.
|
|
105
|
+
*/
|
|
106
|
+
get tokenUsage(): ITokenUsage;
|
|
107
|
+
/**
|
|
108
|
+
* Signal emitted when token usage statistics change.
|
|
109
|
+
*/
|
|
110
|
+
get tokenUsageChanged(): ISignal<this, ITokenUsage>;
|
|
111
|
+
/**
|
|
112
|
+
* Sets the selected tools by name and reinitializes the agent.
|
|
113
|
+
* @param toolNames Array of tool names to select
|
|
114
|
+
*/
|
|
115
|
+
setSelectedTools(toolNames: string[]): void;
|
|
116
|
+
/**
|
|
117
|
+
* Gets the currently selected tools as OpenAI agents tools.
|
|
118
|
+
* @returns Array of selected tools formatted for OpenAI agents
|
|
119
|
+
*/
|
|
120
|
+
get selectedAgentTools(): ITool[];
|
|
121
|
+
/**
|
|
122
|
+
* Checks if a specific MCP server is connected by server name.
|
|
123
|
+
* @param serverName The name of the MCP server to check
|
|
124
|
+
* @returns True if the server is connected, false otherwise
|
|
125
|
+
*/
|
|
126
|
+
isMCPServerConnected(serverName: string): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Checks if the current configuration is valid for agent operations.
|
|
129
|
+
* Uses the provider registry to determine if an API key is required.
|
|
130
|
+
* @returns True if the configuration is valid, false otherwise
|
|
131
|
+
*/
|
|
132
|
+
hasValidConfig(): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Clears conversation history and resets agent state.
|
|
135
|
+
* Removes all conversation history, pending approvals, and interrupted state.
|
|
136
|
+
*/
|
|
137
|
+
clearHistory(): void;
|
|
138
|
+
/**
|
|
139
|
+
* Stops the current streaming response by aborting the request.
|
|
140
|
+
*/
|
|
141
|
+
stopStreaming(): void;
|
|
142
|
+
/**
|
|
143
|
+
* Generates AI response to user message using the agent.
|
|
144
|
+
* Handles the complete execution cycle including tool calls and approvals.
|
|
145
|
+
* @param message The user message to respond to (may include processed attachment content)
|
|
146
|
+
*/
|
|
147
|
+
generateResponse(message: string): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Approves a tool call by interruption ID.
|
|
150
|
+
* @param interruptionId The interruption ID to approve
|
|
151
|
+
*/
|
|
152
|
+
approveToolCall(interruptionId: string): Promise<void>;
|
|
153
|
+
/**
|
|
154
|
+
* Rejects a tool call by interruption ID.
|
|
155
|
+
* @param interruptionId The interruption ID to reject
|
|
156
|
+
*/
|
|
157
|
+
rejectToolCall(interruptionId: string): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* Approves all tools in a group by group ID.
|
|
160
|
+
* @param groupId The group ID containing the tool calls
|
|
161
|
+
* @param interruptionIds Array of interruption IDs to approve
|
|
162
|
+
*/
|
|
163
|
+
approveGroupedToolCalls(groupId: string, interruptionIds: string[]): Promise<void>;
|
|
164
|
+
/**
|
|
165
|
+
* Rejects all tools in a group by group ID.
|
|
166
|
+
* @param groupId The group ID containing the tool calls
|
|
167
|
+
* @param interruptionIds Array of interruption IDs to reject
|
|
168
|
+
*/
|
|
169
|
+
rejectGroupedToolCalls(groupId: string, interruptionIds: string[]): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Handles settings changes and reinitializes the agent.
|
|
172
|
+
*/
|
|
173
|
+
private _onSettingsChanged;
|
|
174
|
+
/**
|
|
175
|
+
* Initializes the AI agent with current settings and tools.
|
|
176
|
+
* Sets up the agent with model configuration, tools, and MCP servers.
|
|
177
|
+
*/
|
|
178
|
+
private _initializeAgent;
|
|
179
|
+
/**
|
|
180
|
+
* Initializes MCP (Model Context Protocol) servers based on current settings.
|
|
181
|
+
* Closes existing servers and connects to enabled servers from configuration.
|
|
182
|
+
*/
|
|
183
|
+
private _initializeMCPServers;
|
|
184
|
+
/**
|
|
185
|
+
* Processes the result stream from agent execution.
|
|
186
|
+
* Handles message streaming, tool calls, and emits appropriate events.
|
|
187
|
+
* @param result The async iterable result from agent execution
|
|
188
|
+
*/
|
|
189
|
+
private _processRunResult;
|
|
190
|
+
/**
|
|
191
|
+
* Handles the start of a tool call from the model event.
|
|
192
|
+
* @param modelEvent The model event containing tool call information
|
|
193
|
+
*/
|
|
194
|
+
private _handleToolCallStart;
|
|
195
|
+
/**
|
|
196
|
+
* Handles tool execution output and completion.
|
|
197
|
+
* @param event The tool output event containing result information
|
|
198
|
+
*/
|
|
199
|
+
private _handleToolOutput;
|
|
200
|
+
/**
|
|
201
|
+
* Handles approval request for a single tool call.
|
|
202
|
+
* @param interruption The tool approval interruption item
|
|
203
|
+
*/
|
|
204
|
+
private _handleSingleToolApproval;
|
|
205
|
+
/**
|
|
206
|
+
* Handles approval requests for multiple grouped tool calls.
|
|
207
|
+
* @param interruptions Array of tool approval interruption items
|
|
208
|
+
*/
|
|
209
|
+
private _handleGroupedToolApprovals;
|
|
210
|
+
/**
|
|
211
|
+
* Checks if the current provider supports tool calling.
|
|
212
|
+
* @returns True if the provider supports tool calling, false otherwise
|
|
213
|
+
*/
|
|
214
|
+
private _supportsToolCalling;
|
|
215
|
+
/**
|
|
216
|
+
* Creates a model instance based on current settings.
|
|
217
|
+
* @returns The configured model instance for the agent
|
|
218
|
+
*/
|
|
219
|
+
private _createModel;
|
|
220
|
+
/**
|
|
221
|
+
* Enhances the base system prompt with tool usage guidelines.
|
|
222
|
+
* @param baseSystemPrompt The base system prompt from settings
|
|
223
|
+
* @returns The enhanced system prompt with tool usage instructions
|
|
224
|
+
*/
|
|
225
|
+
private _getEnhancedSystemPrompt;
|
|
226
|
+
private _settingsModel;
|
|
227
|
+
private _toolRegistry?;
|
|
228
|
+
private _chatProviderRegistry?;
|
|
229
|
+
private _secretsManager?;
|
|
230
|
+
private _selectedToolNames;
|
|
231
|
+
private _agent;
|
|
232
|
+
private _runner;
|
|
233
|
+
private _history;
|
|
234
|
+
private _mcpServers;
|
|
235
|
+
private _isInitializing;
|
|
236
|
+
private _controller;
|
|
237
|
+
private _pendingApprovals;
|
|
238
|
+
private _interruptedState;
|
|
239
|
+
private _agentEvent;
|
|
240
|
+
private _mcpConnectionChanged;
|
|
241
|
+
private _tokenUsage;
|
|
242
|
+
private _tokenUsageChanged;
|
|
243
|
+
}
|