@jupyterlite/ai 0.6.2 → 0.7.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.
- package/README.md +1 -1
- package/lib/base-completer.d.ts +0 -5
- package/lib/chat-handler.d.ts +19 -5
- package/lib/chat-handler.js +47 -26
- package/lib/completion-provider.d.ts +2 -2
- package/lib/completion-provider.js +4 -3
- package/lib/components/stop-button.d.ts +0 -1
- package/lib/default-providers/Anthropic/completer.d.ts +0 -2
- package/lib/default-providers/Anthropic/completer.js +2 -4
- package/lib/default-providers/ChromeAI/completer.d.ts +0 -2
- package/lib/default-providers/ChromeAI/completer.js +2 -4
- package/lib/default-providers/ChromeAI/instructions.d.ts +4 -0
- package/lib/default-providers/ChromeAI/instructions.js +18 -0
- package/lib/default-providers/MistralAI/completer.d.ts +0 -2
- package/lib/default-providers/MistralAI/completer.js +3 -4
- package/lib/default-providers/Ollama/completer.d.ts +17 -0
- package/lib/default-providers/Ollama/completer.js +49 -0
- package/lib/default-providers/Ollama/instructions.d.ts +2 -0
- package/lib/default-providers/Ollama/instructions.js +70 -0
- package/lib/default-providers/Ollama/settings-schema.json +146 -0
- package/lib/default-providers/OpenAI/completer.d.ts +0 -2
- package/lib/default-providers/OpenAI/completer.js +2 -4
- package/lib/default-providers/WebLLM/completer.d.ts +27 -0
- package/lib/default-providers/WebLLM/completer.js +136 -0
- package/lib/default-providers/WebLLM/instructions.d.ts +6 -0
- package/lib/default-providers/WebLLM/instructions.js +32 -0
- package/lib/default-providers/WebLLM/settings-schema.json +21 -0
- package/lib/default-providers/index.js +119 -4
- package/lib/index.d.ts +2 -2
- package/lib/index.js +16 -26
- package/lib/provider.d.ts +11 -13
- package/lib/provider.js +120 -52
- package/lib/settings/index.d.ts +0 -1
- package/lib/settings/index.js +0 -1
- package/lib/settings/panel.d.ts +37 -8
- package/lib/settings/panel.js +225 -131
- package/lib/tokens.d.ts +21 -2
- package/lib/types/ai-model.d.ts +24 -0
- package/lib/types/ai-model.js +5 -0
- package/package.json +14 -11
- package/schema/provider-registry.json +0 -6
- package/src/base-completer.ts +0 -6
- package/src/chat-handler.ts +40 -7
- package/src/completion-provider.ts +2 -2
- package/src/default-providers/Anthropic/completer.ts +0 -5
- package/src/default-providers/ChromeAI/completer.ts +0 -5
- package/src/default-providers/ChromeAI/instructions.ts +21 -0
- package/src/default-providers/MistralAI/completer.ts +0 -5
- package/src/default-providers/Ollama/completer.ts +62 -0
- package/src/default-providers/Ollama/instructions.ts +70 -0
- package/src/default-providers/OpenAI/completer.ts +0 -5
- package/src/default-providers/WebLLM/completer.ts +162 -0
- package/src/default-providers/WebLLM/instructions.ts +33 -0
- package/src/default-providers/index.ts +151 -14
- package/src/index.ts +17 -29
- package/src/provider.ts +132 -45
- package/src/settings/index.ts +0 -1
- package/src/settings/panel.tsx +207 -73
- package/src/tokens.ts +23 -2
- package/src/types/ai-model.ts +37 -0
- package/src/types/service-worker.d.ts +6 -0
- package/style/base.css +5 -0
- package/lib/settings/settings-connector.d.ts +0 -31
- package/lib/settings/settings-connector.js +0 -61
- package/src/settings/settings-connector.ts +0 -88
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { PageConfig } from '@jupyterlab/coreutils';
|
|
2
|
-
import {
|
|
3
|
-
ISettingConnector,
|
|
4
|
-
ISettingRegistry
|
|
5
|
-
} from '@jupyterlab/settingregistry';
|
|
6
|
-
import { DataConnector, IDataConnector } from '@jupyterlab/statedb';
|
|
7
|
-
import { Throttler } from '@lumino/polling';
|
|
8
|
-
import * as json5 from 'json5';
|
|
9
|
-
|
|
10
|
-
import { SECRETS_REPLACEMENT } from '.';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* A data connector for fetching settings.
|
|
14
|
-
*
|
|
15
|
-
* #### Notes
|
|
16
|
-
* This connector adds a query parameter to the base services setting manager.
|
|
17
|
-
*/
|
|
18
|
-
export class SettingConnector
|
|
19
|
-
extends DataConnector<ISettingRegistry.IPlugin, string>
|
|
20
|
-
implements ISettingConnector
|
|
21
|
-
{
|
|
22
|
-
constructor(connector: IDataConnector<ISettingRegistry.IPlugin, string>) {
|
|
23
|
-
super();
|
|
24
|
-
this._connector = connector;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
set doNotSave(fields: string[]) {
|
|
28
|
-
this._doNotSave = [...fields];
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Fetch settings for a plugin.
|
|
33
|
-
* @param id - The plugin ID
|
|
34
|
-
*
|
|
35
|
-
* #### Notes
|
|
36
|
-
* The REST API requests are throttled at one request per plugin per 100ms.
|
|
37
|
-
*/
|
|
38
|
-
fetch(id: string): Promise<ISettingRegistry.IPlugin | undefined> {
|
|
39
|
-
const throttlers = this._throttlers;
|
|
40
|
-
if (!(id in throttlers)) {
|
|
41
|
-
throttlers[id] = new Throttler(() => this._connector.fetch(id), 100);
|
|
42
|
-
}
|
|
43
|
-
return throttlers[id].invoke();
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
async list(query: 'ids'): Promise<{ ids: string[] }>;
|
|
47
|
-
async list(
|
|
48
|
-
query: 'active' | 'all'
|
|
49
|
-
): Promise<{ ids: string[]; values: ISettingRegistry.IPlugin[] }>;
|
|
50
|
-
async list(
|
|
51
|
-
query: 'active' | 'all' | 'ids' = 'all'
|
|
52
|
-
): Promise<{ ids: string[]; values?: ISettingRegistry.IPlugin[] }> {
|
|
53
|
-
const { isDisabled } = PageConfig.Extension;
|
|
54
|
-
const { ids, values } = await this._connector.list(
|
|
55
|
-
query === 'ids' ? 'ids' : undefined
|
|
56
|
-
);
|
|
57
|
-
|
|
58
|
-
if (query === 'all') {
|
|
59
|
-
return { ids, values };
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (query === 'ids') {
|
|
63
|
-
return { ids };
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return {
|
|
67
|
-
ids: ids.filter(id => !isDisabled(id)),
|
|
68
|
-
values: values.filter(({ id }) => !isDisabled(id))
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
async save(id: string, raw: string): Promise<void> {
|
|
73
|
-
const settings = json5.parse(raw);
|
|
74
|
-
|
|
75
|
-
// Replace secrets fields with the replacement string.
|
|
76
|
-
// Create the field if it does not exist in settings.
|
|
77
|
-
this._doNotSave.forEach(field => {
|
|
78
|
-
if (settings['AIprovider'] !== undefined) {
|
|
79
|
-
settings['AIprovider'][field] = SECRETS_REPLACEMENT;
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
await this._connector.save(id, json5.stringify(settings, null, 2));
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
private _connector: IDataConnector<ISettingRegistry.IPlugin, string>;
|
|
86
|
-
private _doNotSave: string[] = [];
|
|
87
|
-
private _throttlers: { [key: string]: Throttler } = Object.create(null);
|
|
88
|
-
}
|