@theia/ai-ide 1.65.0-next.16 → 1.65.0-next.28

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 (75) hide show
  1. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +4 -2
  2. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +1 -1
  3. package/lib/browser/ai-configuration/tools-configuration-widget.js +6 -4
  4. package/lib/browser/ai-configuration/tools-configuration-widget.js.map +1 -1
  5. package/lib/browser/ai-ide-activation-service.d.ts +2 -2
  6. package/lib/browser/ai-ide-activation-service.d.ts.map +1 -1
  7. package/lib/browser/ai-ide-activation-service.js +2 -3
  8. package/lib/browser/ai-ide-activation-service.js.map +1 -1
  9. package/lib/browser/app-tester-chat-agent.d.ts +1 -1
  10. package/lib/browser/app-tester-chat-agent.d.ts.map +1 -1
  11. package/lib/browser/app-tester-chat-agent.js +4 -4
  12. package/lib/browser/app-tester-chat-agent.js.map +1 -1
  13. package/lib/browser/app-tester-prompt-template.d.ts.map +1 -1
  14. package/lib/browser/app-tester-prompt-template.js +5 -1
  15. package/lib/browser/app-tester-prompt-template.js.map +1 -1
  16. package/lib/browser/frontend-module.d.ts.map +1 -1
  17. package/lib/browser/frontend-module.js +6 -6
  18. package/lib/browser/frontend-module.js.map +1 -1
  19. package/lib/browser/task-context-file-storage-service.d.ts +3 -3
  20. package/lib/browser/task-context-file-storage-service.d.ts.map +1 -1
  21. package/lib/browser/task-context-file-storage-service.js +5 -5
  22. package/lib/browser/task-context-file-storage-service.js.map +1 -1
  23. package/lib/browser/template-preference-contribution.d.ts +2 -1
  24. package/lib/browser/template-preference-contribution.d.ts.map +1 -1
  25. package/lib/browser/template-preference-contribution.js +5 -6
  26. package/lib/browser/template-preference-contribution.js.map +1 -1
  27. package/lib/browser/workspace-functions.d.ts +2 -2
  28. package/lib/browser/workspace-functions.d.ts.map +1 -1
  29. package/lib/browser/workspace-functions.js +3 -2
  30. package/lib/browser/workspace-functions.js.map +1 -1
  31. package/lib/browser/workspace-functions.spec.js +1 -1
  32. package/lib/browser/workspace-functions.spec.js.map +1 -1
  33. package/lib/browser/workspace-search-provider.d.ts +1 -1
  34. package/lib/browser/workspace-search-provider.d.ts.map +1 -1
  35. package/lib/browser/workspace-search-provider.js +2 -2
  36. package/lib/browser/workspace-search-provider.js.map +1 -1
  37. package/lib/browser/workspace-search-provider.spec.js +1 -2
  38. package/lib/browser/workspace-search-provider.spec.js.map +1 -1
  39. package/lib/{browser/ai-configuration → common}/ai-configuration-preferences.d.ts +1 -1
  40. package/lib/common/ai-configuration-preferences.d.ts.map +1 -0
  41. package/lib/{browser/ai-configuration → common}/ai-configuration-preferences.js +0 -1
  42. package/lib/common/ai-configuration-preferences.js.map +1 -0
  43. package/lib/{browser → common}/ai-ide-preferences.d.ts +1 -1
  44. package/lib/common/ai-ide-preferences.d.ts.map +1 -0
  45. package/lib/{browser → common}/ai-ide-preferences.js +3 -4
  46. package/lib/common/ai-ide-preferences.js.map +1 -0
  47. package/lib/{browser → common}/workspace-preferences.d.ts +1 -1
  48. package/lib/common/workspace-preferences.d.ts.map +1 -0
  49. package/lib/{browser → common}/workspace-preferences.js +0 -1
  50. package/lib/common/workspace-preferences.js.map +1 -0
  51. package/lib/node/backend-module.d.ts.map +1 -1
  52. package/lib/node/backend-module.js +6 -0
  53. package/lib/node/backend-module.js.map +1 -1
  54. package/package.json +18 -18
  55. package/src/browser/ai-configuration/tools-configuration-widget.tsx +4 -2
  56. package/src/browser/ai-ide-activation-service.ts +4 -4
  57. package/src/browser/app-tester-chat-agent.ts +2 -2
  58. package/src/browser/app-tester-prompt-template.ts +5 -1
  59. package/src/browser/frontend-module.ts +4 -5
  60. package/src/browser/task-context-file-storage-service.ts +6 -6
  61. package/src/browser/template-preference-contribution.ts +3 -3
  62. package/src/browser/workspace-functions.spec.ts +2 -2
  63. package/src/browser/workspace-functions.ts +3 -3
  64. package/src/browser/workspace-search-provider.spec.ts +1 -2
  65. package/src/browser/workspace-search-provider.ts +2 -2
  66. package/src/{browser/ai-configuration → common}/ai-configuration-preferences.ts +1 -2
  67. package/src/{browser → common}/ai-ide-preferences.ts +3 -5
  68. package/src/{browser → common}/workspace-preferences.ts +1 -3
  69. package/src/node/backend-module.ts +8 -1
  70. package/lib/browser/ai-configuration/ai-configuration-preferences.d.ts.map +0 -1
  71. package/lib/browser/ai-configuration/ai-configuration-preferences.js.map +0 -1
  72. package/lib/browser/ai-ide-preferences.d.ts.map +0 -1
  73. package/lib/browser/ai-ide-preferences.js.map +0 -1
  74. package/lib/browser/workspace-preferences.d.ts.map +0 -1
  75. package/lib/browser/workspace-preferences.js.map +0 -1
@@ -14,7 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
  import { ToolProvider, ToolRequest } from '@theia/ai-core';
17
- import { CancellationToken, Disposable, URI } from '@theia/core';
17
+ import { CancellationToken, Disposable, PreferenceService, URI } from '@theia/core';
18
18
  import { inject, injectable } from '@theia/core/shared/inversify';
19
19
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
20
20
  import { FileStat } from '@theia/filesystem/lib/common/files';
@@ -26,8 +26,8 @@ import {
26
26
  } from '../common/workspace-functions';
27
27
  import ignore from 'ignore';
28
28
  import { Minimatch } from 'minimatch';
29
- import { PreferenceService, OpenerService, open } from '@theia/core/lib/browser';
30
- import { CONSIDER_GITIGNORE_PREF, USER_EXCLUDE_PATTERN_PREF } from './workspace-preferences';
29
+ import { OpenerService, open } from '@theia/core/lib/browser';
30
+ import { CONSIDER_GITIGNORE_PREF, USER_EXCLUDE_PATTERN_PREF } from '../common/workspace-preferences';
31
31
  import { MonacoWorkspace } from '@theia/monaco/lib/browser/monaco-workspace';
32
32
  import { MonacoTextModelService } from '@theia/monaco/lib/browser/monaco-text-model-service';
33
33
  import { ProblemManager } from '@theia/markers/lib/browser';
@@ -15,13 +15,12 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { expect } from 'chai';
18
- import { CancellationTokenSource } from '@theia/core';
18
+ import { CancellationTokenSource, PreferenceService } from '@theia/core';
19
19
  import { WorkspaceSearchProvider } from './workspace-search-provider';
20
20
  import { MutableChatRequestModel, MutableChatResponseModel } from '@theia/ai-chat';
21
21
  import { Container } from '@theia/core/shared/inversify';
22
22
  import { SearchInWorkspaceService, SearchInWorkspaceCallbacks } from '@theia/search-in-workspace/lib/browser/search-in-workspace-service';
23
23
  import { WorkspaceFunctionScope } from './workspace-functions';
24
- import { PreferenceService } from '@theia/core/lib/browser';
25
24
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
26
25
  import { URI } from '@theia/core/lib/common/uri';
27
26
  import { SearchInWorkspaceOptions } from '@theia/search-in-workspace/lib/common/search-in-workspace-interface';
@@ -17,14 +17,14 @@
17
17
  import { MutableChatRequestModel } from '@theia/ai-chat';
18
18
  import { ToolProvider, ToolRequest } from '@theia/ai-core';
19
19
  import { CancellationToken } from '@theia/core';
20
- import { PreferenceService } from '@theia/core/lib/browser/preferences/preference-service';
20
+ import { PreferenceService } from '@theia/core/lib/common/preferences/preference-service';
21
21
  import { inject, injectable } from '@theia/core/shared/inversify';
22
22
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
23
23
  import { SearchInWorkspaceService, SearchInWorkspaceCallbacks } from '@theia/search-in-workspace/lib/browser/search-in-workspace-service';
24
24
  import { SearchInWorkspaceResult, SearchInWorkspaceOptions } from '@theia/search-in-workspace/lib/common/search-in-workspace-interface';
25
25
  import { SEARCH_IN_WORKSPACE_FUNCTION_ID } from '../common/workspace-functions';
26
26
  import { WorkspaceFunctionScope } from './workspace-functions';
27
- import { SEARCH_IN_WORKSPACE_MAX_RESULTS_PREF } from './workspace-preferences';
27
+ import { SEARCH_IN_WORKSPACE_MAX_RESULTS_PREF } from '../common/workspace-preferences';
28
28
  import { optimizeSearchResults } from '../common/workspace-search-provider-util';
29
29
 
30
30
  @injectable()
@@ -15,7 +15,7 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { nls } from '@theia/core';
18
- import { PreferenceSchema } from '@theia/core/lib/browser/preferences/preference-contribution';
18
+ import { PreferenceSchema } from '@theia/core/lib/common';
19
19
 
20
20
  /**
21
21
  * These preferences are not intended to reflect real settings.
@@ -23,7 +23,6 @@ import { PreferenceSchema } from '@theia/core/lib/browser/preferences/preference
23
23
  * in case the user looks in the preferences editor UI to find the configuration.
24
24
  */
25
25
  export const AiConfigurationPreferences: PreferenceSchema = {
26
- type: 'object',
27
26
  properties: {
28
27
  'ai-features.agentSettings.details': {
29
28
  type: 'null',
@@ -14,15 +14,13 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { AI_CORE_PREFERENCES_TITLE, ENABLE_AI_CONTEXT_KEY } from '@theia/ai-core/lib/browser';
18
- import { nls } from '@theia/core';
19
- import { PreferenceSchema } from '@theia/core/lib/browser';
17
+ import { AI_CORE_PREFERENCES_TITLE } from '@theia/ai-core/lib/common';
18
+ import { nls, PreferenceSchema } from '@theia/core';
20
19
 
21
20
  // We reuse the context key for the preference name
22
- export const PREFERENCE_NAME_ENABLE_AI = ENABLE_AI_CONTEXT_KEY;
21
+ export const PREFERENCE_NAME_ENABLE_AI = 'ai-features.AiEnable.enableAI';
23
22
 
24
23
  export const aiIdePreferenceSchema: PreferenceSchema = {
25
- type: 'object',
26
24
  properties: {
27
25
  [PREFERENCE_NAME_ENABLE_AI]: {
28
26
  title: AI_CORE_PREFERENCES_TITLE,
@@ -14,8 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { nls } from '@theia/core';
18
- import { PreferenceSchema } from '@theia/core/lib/browser/preferences/preference-contribution';
17
+ import { nls, PreferenceSchema } from '@theia/core';
19
18
 
20
19
  export const CONSIDER_GITIGNORE_PREF = 'ai-features.workspaceFunctions.considerGitIgnore';
21
20
  export const USER_EXCLUDE_PATTERN_PREF = 'ai-features.workspaceFunctions.userExcludes';
@@ -29,7 +28,6 @@ const CONFLICT_RESOLUTION_DESCRIPTION = 'When templates with the same ID (filena
29
28
  (highest) > workspace directories > global directories (lowest).';
30
29
 
31
30
  export const WorkspacePreferencesSchema: PreferenceSchema = {
32
- type: 'object',
33
31
  properties: {
34
32
  [CONSIDER_GITIGNORE_PREF]: {
35
33
  type: 'boolean',
@@ -14,11 +14,14 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { ConnectionHandler, RpcConnectionHandler } from '@theia/core';
17
+ import { ConnectionHandler, PreferenceContribution, RpcConnectionHandler } from '@theia/core';
18
18
  import { ContainerModule } from '@theia/core/shared/inversify';
19
19
  import { BrowserAutomation, browserAutomationPath, type BrowserAutomationClient } from '../common/browser-automation-protocol';
20
20
  import { BrowserAutomationImpl } from './app-tester-agent/browser-automation-impl';
21
21
  import { ConnectionContainerModule } from '@theia/core/lib/node/messaging/connection-container-module';
22
+ import { WorkspacePreferencesSchema } from '../common/workspace-preferences';
23
+ import { AiConfigurationPreferences } from '../common/ai-configuration-preferences';
24
+ import { aiIdePreferenceSchema } from '../common/ai-ide-preferences';
22
25
 
23
26
  const browserAutomationModule = ConnectionContainerModule.create(({ bind, bindBackendService, bindFrontendService }) => {
24
27
  bind(BrowserAutomation).to(BrowserAutomationImpl).inSingletonScope();
@@ -33,6 +36,10 @@ const browserAutomationModule = ConnectionContainerModule.create(({ bind, bindBa
33
36
  });
34
37
 
35
38
  export default new ContainerModule(bind => {
39
+ bind(PreferenceContribution).toConstantValue({ schema: aiIdePreferenceSchema });
40
+ bind(PreferenceContribution).toConstantValue({ schema: WorkspacePreferencesSchema });
41
+ bind(PreferenceContribution).toConstantValue({ schema: AiConfigurationPreferences });
42
+
36
43
  bind(ConnectionContainerModule).toConstantValue(browserAutomationModule);
37
44
 
38
45
  });
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-configuration-preferences.d.ts","sourceRoot":"","sources":["../../../src/browser/ai-configuration/ai-configuration-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAE/F;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAyBxC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-configuration-preferences.js","sourceRoot":"","sources":["../../../src/browser/ai-configuration/ai-configuration-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,sCAAkC;AAGlC;;;;GAIG;AACU,QAAA,0BAA0B,GAAqB;IACxD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,mCAAmC,EAAE;YACjC,IAAI,EAAE,MAAM;YACZ,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,gCAAgC,EAC9D,gKAAgK,EAChK,8BAA8B,CACjC;SACJ;QACD,qCAAqC,EAAE;YACnC,IAAI,EAAE,MAAM;YACZ,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,0CAA0C,EACxE,0GAA0G,EAC1G,8BAA8B,CACjC;SACJ;QACD,oCAAoC,EAAE;YAClC,IAAI,EAAE,MAAM;YACZ,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,0CAA0C,EACxE,0GAA0G,EAC1G,8BAA8B,CACjC;SACJ;KACJ;CACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-ide-preferences.d.ts","sourceRoot":"","sources":["../../src/browser/ai-ide-preferences.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,eAAO,MAAM,yBAAyB,kCAAwB,CAAC;AAE/D,eAAO,MAAM,qBAAqB,EAAE,gBAoBnC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-ide-preferences.js","sourceRoot":"","sources":["../../src/browser/ai-ide-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,wDAA8F;AAC9F,sCAAkC;AAGlC,mDAAmD;AACtC,QAAA,yBAAyB,GAAG,+BAAqB,CAAC;AAElD,QAAA,qBAAqB,GAAqB;IACnD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,CAAC,iCAAyB,CAAC,EAAE;YACzB,KAAK,EAAE,mCAAyB;YAChC,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,qCAAqC,EACnE;;;;;;;;;qGASqF,CAAC;YAC1F,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACjB;KACJ;CACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-preferences.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAE/F,eAAO,MAAM,uBAAuB,qDAAqD,CAAC;AAC1F,eAAO,MAAM,yBAAyB,gDAAgD,CAAC;AACvF,eAAO,MAAM,oCAAoC,oDAAoD,CAAC;AACtG,eAAO,MAAM,0CAA0C,6DAA6D,CAAC;AACrH,eAAO,MAAM,0CAA0C,mDAAmD,CAAC;AAC3G,eAAO,MAAM,oCAAoC,uDAAuD,CAAC;AACzG,eAAO,MAAM,mCAAmC,4DAA4D,CAAC;AAK7G,eAAO,MAAM,0BAA0B,EAAE,gBAmExC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-preferences.js","sourceRoot":"","sources":["../../src/browser/workspace-preferences.ts"],"names":[],"mappings":"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"}