@jupyterlite/ai 0.14.0 → 0.16.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 (64) hide show
  1. package/lib/agent.d.ts +33 -115
  2. package/lib/agent.js +192 -106
  3. package/lib/chat-model-handler.d.ts +9 -11
  4. package/lib/chat-model-handler.js +9 -4
  5. package/lib/chat-model.d.ts +84 -13
  6. package/lib/chat-model.js +214 -136
  7. package/lib/completion/completion-provider.d.ts +2 -3
  8. package/lib/components/completion-status.d.ts +2 -2
  9. package/lib/components/index.d.ts +1 -1
  10. package/lib/components/index.js +1 -1
  11. package/lib/components/model-select.d.ts +3 -3
  12. package/lib/components/save-button.d.ts +31 -0
  13. package/lib/components/save-button.js +41 -0
  14. package/lib/components/tool-select.d.ts +3 -4
  15. package/lib/components/{token-usage-display.d.ts → usage-display.d.ts} +13 -14
  16. package/lib/components/usage-display.js +109 -0
  17. package/lib/diff-manager.d.ts +2 -3
  18. package/lib/index.d.ts +2 -4
  19. package/lib/index.js +186 -28
  20. package/lib/models/settings-model.d.ts +11 -53
  21. package/lib/models/settings-model.js +38 -22
  22. package/lib/providers/built-in-providers.js +22 -36
  23. package/lib/providers/generated-context-windows.d.ts +8 -0
  24. package/lib/providers/generated-context-windows.js +96 -0
  25. package/lib/providers/model-info.d.ts +3 -0
  26. package/lib/providers/model-info.js +58 -0
  27. package/lib/tokens.d.ts +361 -36
  28. package/lib/tokens.js +18 -13
  29. package/lib/tools/commands.d.ts +2 -3
  30. package/lib/widgets/ai-settings.d.ts +3 -5
  31. package/lib/widgets/ai-settings.js +12 -0
  32. package/lib/widgets/main-area-chat.d.ts +2 -3
  33. package/lib/widgets/main-area-chat.js +12 -12
  34. package/lib/widgets/provider-config-dialog.d.ts +1 -2
  35. package/lib/widgets/provider-config-dialog.js +34 -34
  36. package/package.json +17 -10
  37. package/schema/settings-model.json +18 -1
  38. package/src/agent.ts +275 -248
  39. package/src/chat-model-handler.ts +25 -21
  40. package/src/chat-model.ts +307 -196
  41. package/src/completion/completion-provider.ts +7 -4
  42. package/src/components/completion-status.tsx +3 -3
  43. package/src/components/index.ts +1 -1
  44. package/src/components/model-select.tsx +4 -3
  45. package/src/components/save-button.tsx +84 -0
  46. package/src/components/tool-select.tsx +10 -4
  47. package/src/components/usage-display.tsx +208 -0
  48. package/src/diff-manager.ts +4 -4
  49. package/src/index.ts +250 -58
  50. package/src/models/settings-model.ts +46 -88
  51. package/src/providers/built-in-providers.ts +22 -36
  52. package/src/providers/generated-context-windows.ts +102 -0
  53. package/src/providers/model-info.ts +88 -0
  54. package/src/tokens.ts +438 -58
  55. package/src/tools/commands.ts +2 -3
  56. package/src/widgets/ai-settings.tsx +69 -15
  57. package/src/widgets/main-area-chat.ts +18 -15
  58. package/src/widgets/provider-config-dialog.tsx +96 -61
  59. package/style/base.css +17 -195
  60. package/lib/approval-buttons.d.ts +0 -49
  61. package/lib/approval-buttons.js +0 -79
  62. package/lib/components/token-usage-display.js +0 -72
  63. package/src/approval-buttons.ts +0 -115
  64. package/src/components/token-usage-display.tsx +0 -138
@@ -1,16 +1,17 @@
1
1
  import { ActiveCellManager } from '@jupyter/chat';
2
- import { TranslationBundle } from '@jupyterlab/translation';
3
- import { AgentManagerFactory } from './agent';
2
+ import { IDocumentManager } from '@jupyterlab/docmanager';
3
+ import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
4
+ import { Contents } from '@jupyterlab/services';
5
+
4
6
  import { AIChatModel } from './chat-model';
5
- import { AISettingsModel } from './models/settings-model';
6
- import {
7
+ import type {
8
+ IAgentManagerFactory,
9
+ IAISettingsModel,
7
10
  IChatModelHandler,
11
+ ICreateChatOptions,
8
12
  IProviderRegistry,
9
- ITokenUsage,
10
13
  IToolRegistry
11
14
  } from './tokens';
12
- import { IDocumentManager } from '@jupyterlab/docmanager';
13
- import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
14
15
 
15
16
  /**
16
17
  * The chat model handler.
@@ -24,14 +25,12 @@ export class ChatModelHandler implements IChatModelHandler {
24
25
  this._providerRegistry = options.providerRegistry;
25
26
  this._rmRegistry = options.rmRegistry;
26
27
  this._activeCellManager = options.activeCellManager;
27
- this._trans = options.trans;
28
+ this._contentsManager = options.contentsManager;
28
29
  }
29
30
 
30
- createModel(
31
- name: string,
32
- activeProvider: string,
33
- tokenUsage?: ITokenUsage
34
- ): AIChatModel {
31
+ createModel(options: ICreateChatOptions): AIChatModel {
32
+ const { name, activeProvider, tokenUsage, messages, autosave } = options;
33
+
35
34
  // Create Agent Manager first so it can be shared
36
35
  const agentManager = this._agentManagerFactory.createAgent({
37
36
  settingsModel: this._settingsModel,
@@ -49,8 +48,13 @@ export class ChatModelHandler implements IChatModelHandler {
49
48
  agentManager,
50
49
  activeCellManager: this._activeCellManager,
51
50
  documentManager: this._docManager,
52
- trans: this._trans
51
+ contentsManager: this._contentsManager
52
+ });
53
+
54
+ messages?.forEach(message => {
55
+ model.messageAdded({ ...message.content });
53
56
  });
57
+ model.autosave = autosave ?? false;
54
58
 
55
59
  model.name = name;
56
60
 
@@ -68,13 +72,13 @@ export class ChatModelHandler implements IChatModelHandler {
68
72
  }
69
73
 
70
74
  private _docManager: IDocumentManager;
71
- private _agentManagerFactory: AgentManagerFactory;
72
- private _settingsModel: AISettingsModel;
75
+ private _agentManagerFactory: IAgentManagerFactory;
76
+ private _settingsModel: IAISettingsModel;
73
77
  private _toolRegistry?: IToolRegistry;
74
78
  private _providerRegistry?: IProviderRegistry;
75
79
  private _rmRegistry: IRenderMimeRegistry;
76
80
  private _activeCellManager?: ActiveCellManager;
77
- private _trans: TranslationBundle;
81
+ private _contentsManager?: Contents.IManager;
78
82
  }
79
83
 
80
84
  export namespace ChatModelHandler {
@@ -86,11 +90,11 @@ export namespace ChatModelHandler {
86
90
  /**
87
91
  * The agent manager factory.
88
92
  */
89
- agentManagerFactory: AgentManagerFactory;
93
+ agentManagerFactory: IAgentManagerFactory;
90
94
  /**
91
95
  * AI settings model for configuration
92
96
  */
93
- settingsModel: AISettingsModel;
97
+ settingsModel: IAISettingsModel;
94
98
  /**
95
99
  * Optional tool registry for managing available tools
96
100
  */
@@ -108,8 +112,8 @@ export namespace ChatModelHandler {
108
112
  */
109
113
  activeCellManager?: ActiveCellManager | undefined;
110
114
  /**
111
- * The application language translation bundle.
115
+ * The contents manager.
112
116
  */
113
- trans: TranslationBundle;
117
+ contentsManager?: Contents.IManager;
114
118
  }
115
119
  }