@theia/ai-chat 1.58.3 → 1.59.0-next.72

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 (128) hide show
  1. package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -1
  2. package/lib/browser/ai-chat-frontend-module.js +16 -13
  3. package/lib/browser/ai-chat-frontend-module.js.map +1 -1
  4. package/lib/browser/ai-chat-preferences.d.ts +1 -0
  5. package/lib/browser/ai-chat-preferences.d.ts.map +1 -1
  6. package/lib/browser/ai-chat-preferences.js +12 -3
  7. package/lib/browser/ai-chat-preferences.js.map +1 -1
  8. package/lib/browser/change-set-file-element.d.ts +31 -6
  9. package/lib/browser/change-set-file-element.d.ts.map +1 -1
  10. package/lib/browser/change-set-file-element.js +108 -15
  11. package/lib/browser/change-set-file-element.js.map +1 -1
  12. package/lib/browser/change-set-file-resource.d.ts +40 -8
  13. package/lib/browser/change-set-file-resource.d.ts.map +1 -1
  14. package/lib/browser/change-set-file-resource.js +123 -37
  15. package/lib/browser/change-set-file-resource.js.map +1 -1
  16. package/lib/browser/change-set-file-service.d.ts +9 -3
  17. package/lib/browser/change-set-file-service.d.ts.map +1 -1
  18. package/lib/browser/change-set-file-service.js +35 -13
  19. package/lib/browser/change-set-file-service.js.map +1 -1
  20. package/lib/browser/change-set-variable.d.ts +11 -0
  21. package/lib/browser/change-set-variable.d.ts.map +1 -0
  22. package/lib/browser/change-set-variable.js +56 -0
  23. package/lib/browser/change-set-variable.js.map +1 -0
  24. package/lib/browser/context-file-variable-label-provider.d.ts +14 -0
  25. package/lib/browser/context-file-variable-label-provider.d.ts.map +1 -0
  26. package/lib/browser/context-file-variable-label-provider.js +63 -0
  27. package/lib/browser/context-file-variable-label-provider.js.map +1 -0
  28. package/lib/browser/context-variable-label-provider.d.ts +9 -0
  29. package/lib/browser/context-variable-label-provider.d.ts.map +1 -0
  30. package/lib/browser/context-variable-label-provider.js +55 -0
  31. package/lib/browser/context-variable-label-provider.js.map +1 -0
  32. package/lib/browser/file-chat-variable-contribution.d.ts +18 -0
  33. package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -0
  34. package/lib/browser/file-chat-variable-contribution.js +135 -0
  35. package/lib/browser/file-chat-variable-contribution.js.map +1 -0
  36. package/lib/browser/frontend-chat-service.d.ts +10 -3
  37. package/lib/browser/frontend-chat-service.d.ts.map +1 -1
  38. package/lib/browser/frontend-chat-service.js +39 -19
  39. package/lib/browser/frontend-chat-service.js.map +1 -1
  40. package/lib/common/chat-agents.d.ts +54 -24
  41. package/lib/common/chat-agents.d.ts.map +1 -1
  42. package/lib/common/chat-agents.js +58 -20
  43. package/lib/common/chat-agents.js.map +1 -1
  44. package/lib/common/chat-history-entry.js +1 -1
  45. package/lib/common/chat-history-entry.js.map +1 -1
  46. package/lib/common/chat-model.d.ts +84 -36
  47. package/lib/common/chat-model.d.ts.map +1 -1
  48. package/lib/common/chat-model.js +142 -51
  49. package/lib/common/chat-model.js.map +1 -1
  50. package/lib/common/chat-service.d.ts +27 -10
  51. package/lib/common/chat-service.d.ts.map +1 -1
  52. package/lib/common/chat-service.js +80 -20
  53. package/lib/common/chat-service.js.map +1 -1
  54. package/lib/common/chat-string-utils.d.ts +3 -0
  55. package/lib/common/chat-string-utils.d.ts.map +1 -0
  56. package/lib/common/chat-string-utils.js +27 -0
  57. package/lib/common/chat-string-utils.js.map +1 -0
  58. package/lib/common/chat-tool-request-service.d.ts +5 -5
  59. package/lib/common/chat-tool-request-service.d.ts.map +1 -1
  60. package/lib/common/chat-tool-request-service.js.map +1 -1
  61. package/lib/common/context-details-variable.d.ts +9 -0
  62. package/lib/common/context-details-variable.d.ts.map +1 -0
  63. package/lib/common/context-details-variable.js +57 -0
  64. package/lib/common/context-details-variable.js.map +1 -0
  65. package/lib/common/context-summary-variable.d.ts +9 -0
  66. package/lib/common/context-summary-variable.d.ts.map +1 -0
  67. package/lib/common/context-summary-variable.js +57 -0
  68. package/lib/common/context-summary-variable.js.map +1 -0
  69. package/lib/common/context-variables.d.ts +4 -0
  70. package/lib/common/context-variables.d.ts.map +1 -0
  71. package/lib/common/context-variables.js +22 -0
  72. package/lib/common/context-variables.js.map +1 -0
  73. package/lib/common/custom-chat-agent.d.ts +6 -10
  74. package/lib/common/custom-chat-agent.d.ts.map +1 -1
  75. package/lib/common/custom-chat-agent.js +8 -11
  76. package/lib/common/custom-chat-agent.js.map +1 -1
  77. package/lib/common/index.d.ts +1 -3
  78. package/lib/common/index.d.ts.map +1 -1
  79. package/lib/common/index.js +1 -3
  80. package/lib/common/index.js.map +1 -1
  81. package/lib/common/parse-contents.d.ts +2 -2
  82. package/lib/common/parse-contents.d.ts.map +1 -1
  83. package/lib/common/parse-contents.js.map +1 -1
  84. package/lib/common/parse-contents.spec.d.ts.map +1 -1
  85. package/lib/common/parse-contents.spec.js.map +1 -1
  86. package/lib/common/response-content-matcher.d.ts +3 -3
  87. package/lib/common/response-content-matcher.d.ts.map +1 -1
  88. package/lib/common/response-content-matcher.js.map +1 -1
  89. package/package.json +12 -10
  90. package/src/browser/ai-chat-frontend-module.ts +20 -18
  91. package/src/browser/ai-chat-preferences.ts +13 -2
  92. package/src/browser/change-set-file-element.ts +109 -20
  93. package/src/browser/change-set-file-resource.ts +125 -39
  94. package/src/browser/change-set-file-service.ts +38 -16
  95. package/src/browser/change-set-variable.ts +54 -0
  96. package/src/browser/context-file-variable-label-provider.ts +62 -0
  97. package/src/browser/context-variable-label-provider.ts +56 -0
  98. package/src/browser/file-chat-variable-contribution.ts +143 -0
  99. package/src/browser/frontend-chat-service.ts +40 -26
  100. package/src/common/chat-agents.ts +87 -30
  101. package/src/common/chat-history-entry.ts +1 -1
  102. package/src/common/chat-model.ts +204 -70
  103. package/src/common/chat-service.ts +92 -24
  104. package/src/common/chat-string-utils.ts +23 -0
  105. package/src/common/chat-tool-request-service.ts +5 -5
  106. package/src/common/context-details-variable.ts +53 -0
  107. package/src/common/context-summary-variable.ts +53 -0
  108. package/src/common/context-variables.ts +19 -0
  109. package/src/common/custom-chat-agent.ts +9 -20
  110. package/src/common/index.ts +1 -3
  111. package/src/common/parse-contents.spec.ts +2 -2
  112. package/src/common/parse-contents.ts +2 -2
  113. package/src/common/response-content-matcher.ts +3 -3
  114. package/lib/common/command-chat-agents.d.ts +0 -33
  115. package/lib/common/command-chat-agents.d.ts.map +0 -1
  116. package/lib/common/command-chat-agents.js +0 -329
  117. package/lib/common/command-chat-agents.js.map +0 -1
  118. package/lib/common/orchestrator-chat-agent.d.ts +0 -22
  119. package/lib/common/orchestrator-chat-agent.d.ts.map +0 -1
  120. package/lib/common/orchestrator-chat-agent.js +0 -167
  121. package/lib/common/orchestrator-chat-agent.js.map +0 -1
  122. package/lib/common/universal-chat-agent.d.ts +0 -16
  123. package/lib/common/universal-chat-agent.d.ts.map +0 -1
  124. package/lib/common/universal-chat-agent.js +0 -109
  125. package/lib/common/universal-chat-agent.js.map +0 -1
  126. package/src/common/command-chat-agents.ts +0 -354
  127. package/src/common/orchestrator-chat-agent.ts +0 -179
  128. package/src/common/universal-chat-agent.ts +0 -117
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-frontend-module.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAyB/D,wBAgEG"}
1
+ {"version":3,"file":"ai-chat-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-frontend-module.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AA6B/D,wBA8DG"}
@@ -21,11 +21,8 @@ const browser_1 = require("@theia/core/lib/browser");
21
21
  const inversify_1 = require("@theia/core/shared/inversify");
22
22
  const common_2 = require("../common");
23
23
  const chat_agents_variable_contribution_1 = require("../common/chat-agents-variable-contribution");
24
- const command_chat_agents_1 = require("../common/command-chat-agents");
25
24
  const custom_chat_agent_1 = require("../common/custom-chat-agent");
26
- const orchestrator_chat_agent_1 = require("../common/orchestrator-chat-agent");
27
25
  const response_content_matcher_1 = require("../common/response-content-matcher");
28
- const universal_chat_agent_1 = require("../common/universal-chat-agent");
29
26
  const ai_chat_preferences_1 = require("./ai-chat-preferences");
30
27
  const change_set_file_element_1 = require("./change-set-file-element");
31
28
  const custom_agent_frontend_application_contribution_1 = require("./custom-agent-frontend-application-contribution");
@@ -34,13 +31,19 @@ const custom_agent_factory_1 = require("./custom-agent-factory");
34
31
  const chat_tool_request_service_1 = require("../common/chat-tool-request-service");
35
32
  const change_set_file_resource_1 = require("./change-set-file-resource");
36
33
  const change_set_file_service_1 = require("./change-set-file-service");
34
+ const context_variable_label_provider_1 = require("./context-variable-label-provider");
35
+ const context_file_variable_label_provider_1 = require("./context-file-variable-label-provider");
36
+ const file_chat_variable_contribution_1 = require("./file-chat-variable-contribution");
37
+ const context_summary_variable_1 = require("../common/context-summary-variable");
38
+ const context_details_variable_1 = require("../common/context-details-variable");
39
+ const change_set_variable_1 = require("./change-set-variable");
37
40
  exports.default = new inversify_1.ContainerModule(bind => {
38
41
  (0, core_1.bindContributionProvider)(bind, common_1.Agent);
39
42
  (0, core_1.bindContributionProvider)(bind, common_2.ChatAgent);
40
43
  bind(chat_tool_request_service_1.ChatToolRequestService).toSelf().inSingletonScope();
41
44
  bind(common_2.ChatAgentServiceImpl).toSelf().inSingletonScope();
42
45
  bind(common_2.ChatAgentService).toService(common_2.ChatAgentServiceImpl);
43
- bind(common_2.DefaultChatAgentId).toConstantValue({ id: orchestrator_chat_agent_1.OrchestratorChatAgentId });
46
+ bind(common_2.PinChatAgent).toConstantValue(true);
44
47
  (0, core_1.bindContributionProvider)(bind, response_content_matcher_1.ResponseContentMatcherProvider);
45
48
  bind(response_content_matcher_1.DefaultResponseContentMatcherProvider).toSelf().inSingletonScope();
46
49
  bind(response_content_matcher_1.ResponseContentMatcherProvider).toService(response_content_matcher_1.DefaultResponseContentMatcherProvider);
@@ -50,15 +53,6 @@ exports.default = new inversify_1.ContainerModule(bind => {
50
53
  bind(common_2.ChatRequestParser).toService(common_2.ChatRequestParserImpl);
51
54
  bind(frontend_chat_service_1.FrontendChatServiceImpl).toSelf().inSingletonScope();
52
55
  bind(common_2.ChatService).toService(frontend_chat_service_1.FrontendChatServiceImpl);
53
- bind(orchestrator_chat_agent_1.OrchestratorChatAgent).toSelf().inSingletonScope();
54
- bind(common_1.Agent).toService(orchestrator_chat_agent_1.OrchestratorChatAgent);
55
- bind(common_2.ChatAgent).toService(orchestrator_chat_agent_1.OrchestratorChatAgent);
56
- bind(universal_chat_agent_1.UniversalChatAgent).toSelf().inSingletonScope();
57
- bind(common_1.Agent).toService(universal_chat_agent_1.UniversalChatAgent);
58
- bind(common_2.ChatAgent).toService(universal_chat_agent_1.UniversalChatAgent);
59
- bind(command_chat_agents_1.CommandChatAgent).toSelf().inSingletonScope();
60
- bind(common_1.Agent).toService(command_chat_agents_1.CommandChatAgent);
61
- bind(common_2.ChatAgent).toService(command_chat_agents_1.CommandChatAgent);
62
56
  bind(browser_1.PreferenceContribution).toConstantValue({ schema: ai_chat_preferences_1.aiChatPreferences });
63
57
  bind(custom_chat_agent_1.CustomChatAgent).toSelf();
64
58
  bind(custom_agent_factory_1.CustomAgentFactory).toFactory(ctx => (id, name, description, prompt, defaultLLM) => {
@@ -76,6 +70,10 @@ exports.default = new inversify_1.ContainerModule(bind => {
76
70
  return agent;
77
71
  });
78
72
  bind(browser_1.FrontendApplicationContribution).to(custom_agent_frontend_application_contribution_1.AICustomAgentsFrontendApplicationContribution).inSingletonScope();
73
+ bind(context_variable_label_provider_1.ContextVariableLabelProvider).toSelf().inSingletonScope();
74
+ bind(browser_1.LabelProviderContribution).toService(context_variable_label_provider_1.ContextVariableLabelProvider);
75
+ bind(context_file_variable_label_provider_1.ContextFileVariableLabelProvider).toSelf().inSingletonScope();
76
+ bind(browser_1.LabelProviderContribution).toService(context_file_variable_label_provider_1.ContextFileVariableLabelProvider);
79
77
  bind(change_set_file_service_1.ChangeSetFileService).toSelf().inSingletonScope();
80
78
  bind(change_set_file_element_1.ChangeSetFileElementFactory).toFactory(ctx => (args) => {
81
79
  const container = ctx.container.createChild();
@@ -85,5 +83,10 @@ exports.default = new inversify_1.ContainerModule(bind => {
85
83
  });
86
84
  bind(change_set_file_resource_1.ChangeSetFileResourceResolver).toSelf().inSingletonScope();
87
85
  bind(core_1.ResourceResolver).toService(change_set_file_resource_1.ChangeSetFileResourceResolver);
86
+ bind(common_2.ToolCallChatResponseContentFactory).toSelf().inSingletonScope();
87
+ bind(common_1.AIVariableContribution).to(file_chat_variable_contribution_1.FileChatVariableContribution).inSingletonScope();
88
+ bind(common_1.AIVariableContribution).to(context_summary_variable_1.ContextSummaryVariableContribution).inSingletonScope();
89
+ bind(common_1.AIVariableContribution).to(context_details_variable_1.ContextDetailsVariableContribution).inSingletonScope();
90
+ bind(common_1.AIVariableContribution).to(change_set_variable_1.ChangeSetVariableContribution).inSingletonScope();
88
91
  });
89
92
  //# sourceMappingURL=ai-chat-frontend-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-chat-frontend-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-chat-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-chat-frontend-module.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { PreferenceSchema } from '@theia/core/lib/browser/preferences/preference-contribution';
2
2
  export declare const DEFAULT_CHAT_AGENT_PREF = "ai-features.chat.defaultChatAgent";
3
+ export declare const PIN_CHAT_AGENT_PREF = "ai-features.chat.pinChatAgent";
3
4
  export declare const aiChatPreferences: PreferenceSchema;
4
5
  //# sourceMappingURL=ai-chat-preferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-preferences.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAE/F,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAE3E,eAAO,MAAM,iBAAiB,EAAE,gBAU/B,CAAC"}
1
+ {"version":3,"file":"ai-chat-preferences.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-preferences.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAE/F,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAC3E,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAEnE,eAAO,MAAM,iBAAiB,EAAE,gBAmB/B,CAAC"}
@@ -15,16 +15,25 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.aiChatPreferences = exports.DEFAULT_CHAT_AGENT_PREF = void 0;
18
+ exports.aiChatPreferences = exports.PIN_CHAT_AGENT_PREF = exports.DEFAULT_CHAT_AGENT_PREF = void 0;
19
19
  const ai_core_preferences_1 = require("@theia/ai-core/lib/browser/ai-core-preferences");
20
+ const core_1 = require("@theia/core");
20
21
  exports.DEFAULT_CHAT_AGENT_PREF = 'ai-features.chat.defaultChatAgent';
22
+ exports.PIN_CHAT_AGENT_PREF = 'ai-features.chat.pinChatAgent';
21
23
  exports.aiChatPreferences = {
22
24
  type: 'object',
23
25
  properties: {
24
26
  [exports.DEFAULT_CHAT_AGENT_PREF]: {
25
27
  type: 'string',
26
- description: 'Optional: <agent-name> of the Chat Agent that shall be invoked, if no agent is explicitly mentioned with @<agent-name> in the user query.\
27
- If no Default Agent is configured, Theia´s defaults will be applied.',
28
+ description: core_1.nls.localize('theia/ai/chat/defaultAgent/description', 'Optional: <agent-name> of the Chat Agent that shall be invoked, if no agent is explicitly mentioned with @<agent-name> in the user query. \
29
+ If no Default Agent is configured, Theia´s defaults will be applied.'),
30
+ title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
31
+ },
32
+ [exports.PIN_CHAT_AGENT_PREF]: {
33
+ type: 'boolean',
34
+ description: core_1.nls.localize('theia/ai/chat/pinChatAgent/description', 'Enable agent pinning to automatically keep a mentioned chat agent active across prompts, reducing the need for repeated mentions.\
35
+ You can manually unpin or switch agents anytime.'),
36
+ default: true,
28
37
  title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
29
38
  }
30
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-preferences.js","sourceRoot":"","sources":["../../src/browser/ai-chat-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,wFAA2F;AAG9E,QAAA,uBAAuB,GAAG,mCAAmC,CAAC;AAE9D,QAAA,iBAAiB,GAAqB;IAC/C,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,CAAC,+BAAuB,CAAC,EAAE;YACvB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE;iFACwD;YACrE,KAAK,EAAE,+CAAyB;SACnC;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"ai-chat-preferences.js","sourceRoot":"","sources":["../../src/browser/ai-chat-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,wFAA2F;AAC3F,sCAAkC;AAGrB,QAAA,uBAAuB,GAAG,mCAAmC,CAAC;AAC9D,QAAA,mBAAmB,GAAG,+BAA+B,CAAC;AAEtD,QAAA,iBAAiB,GAAqB;IAC/C,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,CAAC,+BAAuB,CAAC,EAAE;YACvB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,wCAAwC,EAC9D;qEACqD,CAAC;YAC1D,KAAK,EAAE,+CAAyB;SACnC;QACD,CAAC,2BAAmB,CAAC,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,wCAAwC,EAC9D;iDACiC,CAAC;YACtC,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,+CAAyB;SACnC;KACJ;CACJ,CAAC"}
@@ -1,8 +1,12 @@
1
- import { URI } from '@theia/core';
1
+ import { DisposableCollection, Emitter, URI } from '@theia/core';
2
+ import { Replacement } from '@theia/core/lib/common/content-replacer';
2
3
  import { ChangeSetElement, ChangeSetImpl } from '../common';
4
+ import { ChangeSetFileResourceResolver, UpdatableReferenceResource } from './change-set-file-resource';
3
5
  import { ChangeSetFileService } from './change-set-file-service';
6
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
4
7
  export declare const ChangeSetFileElementFactory: unique symbol;
5
8
  export type ChangeSetFileElementFactory = (elementProps: ChangeSetElementArgs) => ChangeSetFileElement;
9
+ type ChangeSetElementState = ChangeSetElement['state'];
6
10
  export declare const ChangeSetElementArgs: unique symbol;
7
11
  export interface ChangeSetElementArgs extends Partial<ChangeSetElement> {
8
12
  /** The URI of the element, expected to be unique within the same change set. */
@@ -16,21 +20,38 @@ export interface ChangeSetElementArgs extends Partial<ChangeSetElement> {
16
20
  * If `undefined`, there is no change.
17
21
  */
18
22
  targetState?: string;
23
+ /**
24
+ * An array of replacements used to create the new content for the targetState.
25
+ * This is only available if the agent was able to provide replacements and we were able to apply them.
26
+ */
27
+ replacements?: Replacement[];
19
28
  }
20
29
  export declare class ChangeSetFileElement implements ChangeSetElement {
30
+ static toReadOnlyUri(baseUri: URI, sessionId: string): URI;
21
31
  protected readonly elementProps: ChangeSetElementArgs;
22
32
  protected readonly changeSetFileService: ChangeSetFileService;
23
- protected _state: 'pending' | 'applied' | 'discarded' | undefined;
33
+ protected readonly fileService: FileService;
34
+ protected readonly resourceResolver: ChangeSetFileResourceResolver;
35
+ protected readonly toDispose: DisposableCollection;
36
+ protected _state: ChangeSetElementState;
24
37
  protected originalContent: string | undefined;
38
+ protected readonly onDidChangeEmitter: Emitter<void>;
39
+ readonly onDidChange: import("@theia/core").Event<void>;
40
+ protected readOnlyResource: UpdatableReferenceResource;
41
+ protected changeResource: UpdatableReferenceResource;
25
42
  init(): void;
26
43
  protected obtainOriginalContent(): Promise<void>;
44
+ protected getResources(): void;
45
+ protected listenForOriginalFileChanges(): void;
27
46
  get uri(): URI;
47
+ get readOnlyUri(): URI;
28
48
  get changedUri(): URI;
29
49
  get name(): string;
30
50
  get icon(): string | undefined;
31
51
  get additionalInfo(): string | undefined;
32
- get state(): 'pending' | 'applied' | 'discarded' | undefined;
33
- protected set state(value: 'pending' | 'applied' | 'discarded' | undefined);
52
+ get state(): ChangeSetElementState;
53
+ protected set state(value: ChangeSetElementState);
54
+ get replacements(): Replacement[] | undefined;
34
55
  get type(): 'add' | 'modify' | 'delete' | undefined;
35
56
  get data(): {
36
57
  [key: string]: unknown;
@@ -38,7 +59,11 @@ export declare class ChangeSetFileElement implements ChangeSetElement {
38
59
  get targetState(): string;
39
60
  open(): Promise<void>;
40
61
  openChange(): Promise<void>;
41
- accept(contents?: string): Promise<void>;
42
- discard(): Promise<void>;
62
+ apply(contents?: string): Promise<void>;
63
+ writeChanges(contents?: string): Promise<void>;
64
+ revert(): Promise<void>;
65
+ confirm(verb: string): Promise<boolean>;
66
+ dispose(): void;
43
67
  }
68
+ export {};
44
69
  //# sourceMappingURL=change-set-file-element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-set-file-element.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-file-element.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AACjF,MAAM,MAAM,2BAA2B,GAAG,CAAC,YAAY,EAAE,oBAAoB,KAAK,oBAAoB,CAAC;AAEvG,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AACnE,MAAM,WAAW,oBAAqB,SAAQ,OAAO,CAAC,gBAAgB,CAAC;IACnE,gFAAgF;IAChF,GAAG,EAAE,GAAG,CAAC;IACT,8CAA8C;IAC9C,SAAS,EAAE,aAAa,CAAC;IACzB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBACa,oBAAqB,YAAW,gBAAgB;IAGzD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE9D,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAElE,SAAS,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAG9C,IAAI,IAAI,IAAI;cAII,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAItD,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED,IAAI,KAAK,IAAI,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAE3D;IAED,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,EAGzE;IAED,IAAI,IAAI,IAAI,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAElD;IAED,IAAI,IAAI,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAAE,GAAG,SAAS,CAElD;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAWjC"}
1
+ {"version":3,"file":"change-set-file-element.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-file-element.ts"],"names":[],"mappings":"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"}
@@ -14,25 +14,79 @@
14
14
  //
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
+ var ChangeSetFileElement_1;
17
18
  Object.defineProperty(exports, "__esModule", { value: true });
18
19
  exports.ChangeSetFileElement = exports.ChangeSetElementArgs = exports.ChangeSetFileElementFactory = void 0;
19
20
  const tslib_1 = require("tslib");
21
+ const core_1 = require("@theia/core");
20
22
  const inversify_1 = require("@theia/core/shared/inversify");
21
23
  const change_set_file_resource_1 = require("./change-set-file-resource");
22
24
  const change_set_file_service_1 = require("./change-set-file-service");
25
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
26
+ const browser_1 = require("@theia/core/lib/browser");
23
27
  exports.ChangeSetFileElementFactory = Symbol('ChangeSetFileElementFactory');
24
28
  exports.ChangeSetElementArgs = Symbol('ChangeSetElementArgs');
25
29
  ;
26
- let ChangeSetFileElement = class ChangeSetFileElement {
30
+ let ChangeSetFileElement = ChangeSetFileElement_1 = class ChangeSetFileElement {
31
+ constructor() {
32
+ this.toDispose = new core_1.DisposableCollection();
33
+ this.onDidChangeEmitter = new core_1.Emitter();
34
+ this.onDidChange = this.onDidChangeEmitter.event;
35
+ }
36
+ static toReadOnlyUri(baseUri, sessionId) {
37
+ return baseUri.withScheme('change-set-immutable').withAuthority(sessionId);
38
+ }
27
39
  init() {
40
+ this.getResources();
28
41
  this.obtainOriginalContent();
42
+ this.listenForOriginalFileChanges();
43
+ this.toDispose.push(this.onDidChangeEmitter);
29
44
  }
30
45
  async obtainOriginalContent() {
46
+ var _a;
31
47
  this.originalContent = await this.changeSetFileService.read(this.uri);
48
+ this.readOnlyResource.update({ contents: (_a = this.originalContent) !== null && _a !== void 0 ? _a : '' });
49
+ if (this.state === 'applied') {
50
+ }
51
+ }
52
+ getResources() {
53
+ var _a;
54
+ this.readOnlyResource = (_a = this.resourceResolver.tryGet(this.readOnlyUri)) !== null && _a !== void 0 ? _a : this.resourceResolver.add(this.readOnlyUri, { autosaveable: false, readOnly: true });
55
+ let changed = this.resourceResolver.tryGet(this.changedUri);
56
+ if (changed) {
57
+ changed.update({ contents: this.targetState, onSave: content => this.writeChanges(content) });
58
+ }
59
+ else {
60
+ changed = this.resourceResolver.add(this.changedUri, { contents: this.targetState, onSave: content => this.writeChanges(content), autosaveable: false });
61
+ }
62
+ this.changeResource = changed;
63
+ this.toDispose.pushAll([this.readOnlyResource, this.changeResource]);
64
+ }
65
+ listenForOriginalFileChanges() {
66
+ this.toDispose.push(this.fileService.onDidFilesChange(async (event) => {
67
+ if (!event.contains(this.uri)) {
68
+ return;
69
+ }
70
+ // If we are applied, the tricky thing becomes the question what to revert to; otherwise, what to apply.
71
+ const newContent = await this.changeSetFileService.read(this.uri).catch(() => '');
72
+ this.readOnlyResource.update({ contents: newContent });
73
+ if (newContent === this.originalContent) {
74
+ this.state = 'pending';
75
+ }
76
+ else if (newContent === this.targetState) {
77
+ this.state = 'applied';
78
+ }
79
+ else {
80
+ this.state = 'stale';
81
+ }
82
+ }));
32
83
  }
33
84
  get uri() {
34
85
  return this.elementProps.uri;
35
86
  }
87
+ get readOnlyUri() {
88
+ return ChangeSetFileElement_1.toReadOnlyUri(this.uri, this.elementProps.chatSessionId);
89
+ }
36
90
  get changedUri() {
37
91
  return (0, change_set_file_resource_1.createChangeSetFileUri)(this.elementProps.chatSessionId, this.uri);
38
92
  }
@@ -52,8 +106,13 @@ let ChangeSetFileElement = class ChangeSetFileElement {
52
106
  return (_a = this._state) !== null && _a !== void 0 ? _a : this.elementProps.state;
53
107
  }
54
108
  set state(value) {
55
- this._state = value;
56
- this.elementProps.changeSet.notifyChange();
109
+ if (this._state !== value) {
110
+ this._state = value;
111
+ this.onDidChangeEmitter.fire();
112
+ }
113
+ }
114
+ get replacements() {
115
+ return this.elementProps.replacements;
57
116
  }
58
117
  get type() {
59
118
  return this.elementProps.type;
@@ -70,27 +129,53 @@ let ChangeSetFileElement = class ChangeSetFileElement {
70
129
  this.changeSetFileService.open(this);
71
130
  }
72
131
  async openChange() {
73
- this.changeSetFileService.openDiff(this.uri, this.changedUri);
132
+ this.changeSetFileService.openDiff(this.readOnlyUri, this.changedUri);
74
133
  }
75
- async accept(contents) {
76
- this.state = 'applied';
77
- if (this.type === 'delete') {
78
- await this.changeSetFileService.delete(this.uri);
79
- this.state = 'applied';
134
+ async apply(contents) {
135
+ if (!await this.confirm('Apply')) {
80
136
  return;
81
137
  }
82
- await this.changeSetFileService.write(this.uri, contents !== undefined ? contents : this.targetState);
138
+ if (!(await this.changeSetFileService.trySave(this.changedUri))) {
139
+ if (this.type === 'delete') {
140
+ await this.changeSetFileService.delete(this.uri);
141
+ this.state = 'applied';
142
+ }
143
+ else {
144
+ await this.writeChanges(contents);
145
+ }
146
+ }
147
+ this.changeSetFileService.closeDiff(this.readOnlyUri);
148
+ }
149
+ async writeChanges(contents) {
150
+ await this.changeSetFileService.writeFrom(this.changedUri, this.uri, contents !== null && contents !== void 0 ? contents : this.targetState);
151
+ this.state = 'applied';
83
152
  }
84
- async discard() {
85
- this.state = 'discarded';
153
+ async revert() {
154
+ if (!await this.confirm('Revert')) {
155
+ return;
156
+ }
157
+ this.state = 'pending';
86
158
  if (this.type === 'add') {
87
159
  await this.changeSetFileService.delete(this.uri);
88
- return;
89
160
  }
90
- if (this.originalContent) {
161
+ else if (this.originalContent) {
91
162
  await this.changeSetFileService.write(this.uri, this.originalContent);
92
163
  }
93
164
  }
165
+ async confirm(verb) {
166
+ if (this._state !== 'stale') {
167
+ return true;
168
+ }
169
+ await this.openChange();
170
+ const thing = await new browser_1.ConfirmDialog({
171
+ title: `${verb} suggestion.`,
172
+ msg: `The file ${this.uri.path.toString()} has changed since this suggestion was created. Are you certain you wish to ${verb.toLowerCase()} the change?`
173
+ }).open(true);
174
+ return !!thing;
175
+ }
176
+ dispose() {
177
+ this.toDispose.dispose();
178
+ }
94
179
  };
95
180
  exports.ChangeSetFileElement = ChangeSetFileElement;
96
181
  tslib_1.__decorate([
@@ -101,13 +186,21 @@ tslib_1.__decorate([
101
186
  (0, inversify_1.inject)(change_set_file_service_1.ChangeSetFileService),
102
187
  tslib_1.__metadata("design:type", change_set_file_service_1.ChangeSetFileService)
103
188
  ], ChangeSetFileElement.prototype, "changeSetFileService", void 0);
189
+ tslib_1.__decorate([
190
+ (0, inversify_1.inject)(file_service_1.FileService),
191
+ tslib_1.__metadata("design:type", file_service_1.FileService)
192
+ ], ChangeSetFileElement.prototype, "fileService", void 0);
193
+ tslib_1.__decorate([
194
+ (0, inversify_1.inject)(change_set_file_resource_1.ChangeSetFileResourceResolver),
195
+ tslib_1.__metadata("design:type", change_set_file_resource_1.ChangeSetFileResourceResolver)
196
+ ], ChangeSetFileElement.prototype, "resourceResolver", void 0);
104
197
  tslib_1.__decorate([
105
198
  (0, inversify_1.postConstruct)(),
106
199
  tslib_1.__metadata("design:type", Function),
107
200
  tslib_1.__metadata("design:paramtypes", []),
108
201
  tslib_1.__metadata("design:returntype", void 0)
109
202
  ], ChangeSetFileElement.prototype, "init", null);
110
- exports.ChangeSetFileElement = ChangeSetFileElement = tslib_1.__decorate([
203
+ exports.ChangeSetFileElement = ChangeSetFileElement = ChangeSetFileElement_1 = tslib_1.__decorate([
111
204
  (0, inversify_1.injectable)()
112
205
  ], ChangeSetFileElement);
113
206
  //# sourceMappingURL=change-set-file-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-set-file-element.js","sourceRoot":"","sources":["../../src/browser/change-set-file-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-set-file-element.js","sourceRoot":"","sources":["../../src/browser/change-set-file-element.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,45 @@
1
- import { Resource, ResourceResolver, URI } from '@theia/core';
2
- import { ChatService } from '../common';
1
+ import { MutableResource, Reference, ReferenceMutableResource, Resource, ResourceResolver, URI } from '@theia/core';
3
2
  export declare const CHANGE_SET_FILE_RESOURCE_SCHEME = "changeset-file";
3
+ export type ResourceInitializationOptions = Pick<Resource, 'autosaveable' | 'initiallyDirty' | 'readOnly'> & {
4
+ contents?: string;
5
+ onSave?: Resource['saveContents'];
6
+ };
7
+ export type ResourceUpdateOptions = Pick<ResourceInitializationOptions, 'contents' | 'onSave'>;
4
8
  export declare function createChangeSetFileUri(chatSessionId: string, elementUri: URI): URI;
5
- /**
6
- * A file resource within a chat's change set can be resolved with the following URI:
7
- * changeset-file:/<chat-session-id>?uri=<element-uri-without-scheme>
8
- */
9
+ export declare class UpdatableReferenceResource extends ReferenceMutableResource {
10
+ protected reference: DisposableRefCounter<DisposableMutableResource>;
11
+ static acquire(resource: UpdatableReferenceResource): UpdatableReferenceResource;
12
+ constructor(reference: DisposableRefCounter<DisposableMutableResource>);
13
+ update(options: ResourceUpdateOptions): void;
14
+ get readOnly(): Resource['readOnly'];
15
+ get initiallyDirty(): boolean;
16
+ get autosaveable(): boolean;
17
+ }
18
+ export declare class DisposableMutableResource extends MutableResource {
19
+ protected readonly options?: ResourceInitializationOptions | undefined;
20
+ onSave: Resource['saveContents'] | undefined;
21
+ constructor(uri: URI, options?: ResourceInitializationOptions | undefined);
22
+ get readOnly(): Resource['readOnly'];
23
+ get autosaveable(): boolean;
24
+ get initiallyDirty(): boolean;
25
+ saveContents(contents: string): Promise<void>;
26
+ update(options: ResourceUpdateOptions): void;
27
+ dispose(): void;
28
+ }
29
+ export declare class DisposableRefCounter<V = unknown> implements Reference<V> {
30
+ protected readonly onDispose: () => void;
31
+ static acquire<V>(item: DisposableRefCounter<V>): DisposableRefCounter<V>;
32
+ static create<V>(value: V, onDispose: () => void): DisposableRefCounter<V>;
33
+ readonly object: V;
34
+ protected refs: number;
35
+ protected constructor(value: V, onDispose: () => void);
36
+ dispose(): void;
37
+ }
9
38
  export declare class ChangeSetFileResourceResolver implements ResourceResolver {
10
- protected readonly chatService: ChatService;
11
- resolve(uri: URI): Promise<Resource>;
39
+ protected readonly cache: Map<string, UpdatableReferenceResource>;
40
+ add(uri: URI, options?: ResourceInitializationOptions): UpdatableReferenceResource;
41
+ tryGet(uri: URI): UpdatableReferenceResource | undefined;
42
+ update(uri: URI, contents: string): void;
43
+ resolve(uri: URI): UpdatableReferenceResource;
12
44
  }
13
45
  //# sourceMappingURL=change-set-file-resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-set-file-resource.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-file-resource.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAuB,GAAG,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,eAAO,MAAM,+BAA+B,mBAAmB,CAAC;AAGhE,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,GAAG,CAElF;AAED;;;GAGG;AACH,qBACa,6BAA8B,YAAW,gBAAgB;IAGlE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAEtC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;CAkC7C"}
1
+ {"version":3,"file":"change-set-file-resource.d.ts","sourceRoot":"","sources":["../../src/browser/change-set-file-resource.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,wBAAwB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGpH,eAAO,MAAM,+BAA+B,mBAAmB,CAAC;AAChE,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;CAAE,CAAC;AACtK,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,6BAA6B,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;AAE/F,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,GAAG,CAElF;AAED,qBAAa,0BAA2B,SAAQ,wBAAwB;cAMrC,SAAS,EAAE,oBAAoB,CAAC,yBAAyB,CAAC;IALzF,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,0BAA0B,GAAG,0BAA0B;gBAKjD,SAAS,EAAE,oBAAoB,CAAC,yBAAyB,CAAC;IAIzF,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAI5C,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,CAEnC;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;CACJ;AAED,qBAAa,yBAA0B,SAAQ,eAAe;IAEpC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IADjD,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;gBACjC,GAAG,EAAE,GAAG,EAAqB,OAAO,CAAC,2CAA+B;IAMhF,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,CAEnC;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAEc,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5D,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAUnC,OAAO,IAAI,IAAI;CAG3B;AAED,qBAAa,oBAAoB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAUlC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI;IATxE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAIzE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAG1E,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,SAAS,CAAC,IAAI,SAAK;IACnB,SAAS,aAAa,KAAK,EAAE,CAAC,EAAqB,SAAS,EAAE,MAAM,IAAI;IAGxE,OAAO,IAAI,IAAI;CAMlB;AAED,qBACa,6BAA8B,YAAW,gBAAgB;IAClE,SAAS,CAAC,QAAQ,CAAC,KAAK,0CAAiD;IAEzE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,6BAA6B,GAAG,0BAA0B;IAelF,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,0BAA0B,GAAG,SAAS;IAQxD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IASxC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,0BAA0B;CAMhD"}