@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.
Files changed (65) hide show
  1. package/README.md +1 -1
  2. package/lib/base-completer.d.ts +0 -5
  3. package/lib/chat-handler.d.ts +19 -5
  4. package/lib/chat-handler.js +47 -26
  5. package/lib/completion-provider.d.ts +2 -2
  6. package/lib/completion-provider.js +4 -3
  7. package/lib/components/stop-button.d.ts +0 -1
  8. package/lib/default-providers/Anthropic/completer.d.ts +0 -2
  9. package/lib/default-providers/Anthropic/completer.js +2 -4
  10. package/lib/default-providers/ChromeAI/completer.d.ts +0 -2
  11. package/lib/default-providers/ChromeAI/completer.js +2 -4
  12. package/lib/default-providers/ChromeAI/instructions.d.ts +4 -0
  13. package/lib/default-providers/ChromeAI/instructions.js +18 -0
  14. package/lib/default-providers/MistralAI/completer.d.ts +0 -2
  15. package/lib/default-providers/MistralAI/completer.js +3 -4
  16. package/lib/default-providers/Ollama/completer.d.ts +17 -0
  17. package/lib/default-providers/Ollama/completer.js +49 -0
  18. package/lib/default-providers/Ollama/instructions.d.ts +2 -0
  19. package/lib/default-providers/Ollama/instructions.js +70 -0
  20. package/lib/default-providers/Ollama/settings-schema.json +146 -0
  21. package/lib/default-providers/OpenAI/completer.d.ts +0 -2
  22. package/lib/default-providers/OpenAI/completer.js +2 -4
  23. package/lib/default-providers/WebLLM/completer.d.ts +27 -0
  24. package/lib/default-providers/WebLLM/completer.js +136 -0
  25. package/lib/default-providers/WebLLM/instructions.d.ts +6 -0
  26. package/lib/default-providers/WebLLM/instructions.js +32 -0
  27. package/lib/default-providers/WebLLM/settings-schema.json +21 -0
  28. package/lib/default-providers/index.js +119 -4
  29. package/lib/index.d.ts +2 -2
  30. package/lib/index.js +16 -26
  31. package/lib/provider.d.ts +11 -13
  32. package/lib/provider.js +120 -52
  33. package/lib/settings/index.d.ts +0 -1
  34. package/lib/settings/index.js +0 -1
  35. package/lib/settings/panel.d.ts +37 -8
  36. package/lib/settings/panel.js +225 -131
  37. package/lib/tokens.d.ts +21 -2
  38. package/lib/types/ai-model.d.ts +24 -0
  39. package/lib/types/ai-model.js +5 -0
  40. package/package.json +14 -11
  41. package/schema/provider-registry.json +0 -6
  42. package/src/base-completer.ts +0 -6
  43. package/src/chat-handler.ts +40 -7
  44. package/src/completion-provider.ts +2 -2
  45. package/src/default-providers/Anthropic/completer.ts +0 -5
  46. package/src/default-providers/ChromeAI/completer.ts +0 -5
  47. package/src/default-providers/ChromeAI/instructions.ts +21 -0
  48. package/src/default-providers/MistralAI/completer.ts +0 -5
  49. package/src/default-providers/Ollama/completer.ts +62 -0
  50. package/src/default-providers/Ollama/instructions.ts +70 -0
  51. package/src/default-providers/OpenAI/completer.ts +0 -5
  52. package/src/default-providers/WebLLM/completer.ts +162 -0
  53. package/src/default-providers/WebLLM/instructions.ts +33 -0
  54. package/src/default-providers/index.ts +151 -14
  55. package/src/index.ts +17 -29
  56. package/src/provider.ts +132 -45
  57. package/src/settings/index.ts +0 -1
  58. package/src/settings/panel.tsx +207 -73
  59. package/src/tokens.ts +23 -2
  60. package/src/types/ai-model.ts +37 -0
  61. package/src/types/service-worker.d.ts +6 -0
  62. package/style/base.css +5 -0
  63. package/lib/settings/settings-connector.d.ts +0 -31
  64. package/lib/settings/settings-connector.js +0 -61
  65. 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
- }