@theia/ai-chat 1.58.2 → 1.59.0-next.62

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 (103) hide show
  1. package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -1
  2. package/lib/browser/ai-chat-frontend-module.js +10 -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 +24 -6
  9. package/lib/browser/change-set-file-element.d.ts.map +1 -1
  10. package/lib/browser/change-set-file-element.js +105 -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/context-file-variable-label-provider.d.ts +14 -0
  21. package/lib/browser/context-file-variable-label-provider.d.ts.map +1 -0
  22. package/lib/browser/context-file-variable-label-provider.js +63 -0
  23. package/lib/browser/context-file-variable-label-provider.js.map +1 -0
  24. package/lib/browser/context-variable-label-provider.d.ts +9 -0
  25. package/lib/browser/context-variable-label-provider.d.ts.map +1 -0
  26. package/lib/browser/context-variable-label-provider.js +55 -0
  27. package/lib/browser/context-variable-label-provider.js.map +1 -0
  28. package/lib/browser/file-chat-variable-contribution.d.ts +18 -0
  29. package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -0
  30. package/lib/browser/file-chat-variable-contribution.js +135 -0
  31. package/lib/browser/file-chat-variable-contribution.js.map +1 -0
  32. package/lib/browser/frontend-chat-service.d.ts +10 -3
  33. package/lib/browser/frontend-chat-service.d.ts.map +1 -1
  34. package/lib/browser/frontend-chat-service.js +39 -19
  35. package/lib/browser/frontend-chat-service.js.map +1 -1
  36. package/lib/common/chat-agents.d.ts +47 -24
  37. package/lib/common/chat-agents.d.ts.map +1 -1
  38. package/lib/common/chat-agents.js +50 -19
  39. package/lib/common/chat-agents.js.map +1 -1
  40. package/lib/common/chat-history-entry.js +1 -1
  41. package/lib/common/chat-history-entry.js.map +1 -1
  42. package/lib/common/chat-model.d.ts +58 -35
  43. package/lib/common/chat-model.d.ts.map +1 -1
  44. package/lib/common/chat-model.js +96 -53
  45. package/lib/common/chat-model.js.map +1 -1
  46. package/lib/common/chat-service.d.ts +32 -12
  47. package/lib/common/chat-service.d.ts.map +1 -1
  48. package/lib/common/chat-service.js +77 -19
  49. package/lib/common/chat-service.js.map +1 -1
  50. package/lib/common/chat-tool-request-service.d.ts +5 -5
  51. package/lib/common/chat-tool-request-service.d.ts.map +1 -1
  52. package/lib/common/chat-tool-request-service.js.map +1 -1
  53. package/lib/common/custom-chat-agent.d.ts +7 -10
  54. package/lib/common/custom-chat-agent.d.ts.map +1 -1
  55. package/lib/common/custom-chat-agent.js +7 -11
  56. package/lib/common/custom-chat-agent.js.map +1 -1
  57. package/lib/common/index.d.ts +0 -3
  58. package/lib/common/index.d.ts.map +1 -1
  59. package/lib/common/index.js +0 -3
  60. package/lib/common/index.js.map +1 -1
  61. package/lib/common/parse-contents.d.ts +2 -2
  62. package/lib/common/parse-contents.d.ts.map +1 -1
  63. package/lib/common/parse-contents.js.map +1 -1
  64. package/lib/common/parse-contents.spec.d.ts.map +1 -1
  65. package/lib/common/parse-contents.spec.js.map +1 -1
  66. package/lib/common/response-content-matcher.d.ts +3 -3
  67. package/lib/common/response-content-matcher.d.ts.map +1 -1
  68. package/lib/common/response-content-matcher.js.map +1 -1
  69. package/package.json +12 -10
  70. package/src/browser/ai-chat-frontend-module.ts +14 -18
  71. package/src/browser/ai-chat-preferences.ts +13 -2
  72. package/src/browser/change-set-file-element.ts +99 -20
  73. package/src/browser/change-set-file-resource.ts +125 -39
  74. package/src/browser/change-set-file-service.ts +38 -16
  75. package/src/browser/context-file-variable-label-provider.ts +62 -0
  76. package/src/browser/context-variable-label-provider.ts +56 -0
  77. package/src/browser/file-chat-variable-contribution.ts +143 -0
  78. package/src/browser/frontend-chat-service.ts +40 -26
  79. package/src/common/chat-agents.ts +72 -27
  80. package/src/common/chat-history-entry.ts +1 -1
  81. package/src/common/chat-model.ts +138 -74
  82. package/src/common/chat-service.ts +96 -23
  83. package/src/common/chat-tool-request-service.ts +5 -5
  84. package/src/common/custom-chat-agent.ts +8 -20
  85. package/src/common/index.ts +0 -3
  86. package/src/common/parse-contents.spec.ts +2 -2
  87. package/src/common/parse-contents.ts +2 -2
  88. package/src/common/response-content-matcher.ts +3 -3
  89. package/lib/common/command-chat-agents.d.ts +0 -33
  90. package/lib/common/command-chat-agents.d.ts.map +0 -1
  91. package/lib/common/command-chat-agents.js +0 -329
  92. package/lib/common/command-chat-agents.js.map +0 -1
  93. package/lib/common/orchestrator-chat-agent.d.ts +0 -22
  94. package/lib/common/orchestrator-chat-agent.d.ts.map +0 -1
  95. package/lib/common/orchestrator-chat-agent.js +0 -167
  96. package/lib/common/orchestrator-chat-agent.js.map +0 -1
  97. package/lib/common/universal-chat-agent.d.ts +0 -16
  98. package/lib/common/universal-chat-agent.d.ts.map +0 -1
  99. package/lib/common/universal-chat-agent.js +0 -109
  100. package/lib/common/universal-chat-agent.js.map +0 -1
  101. package/src/common/command-chat-agents.ts +0 -354
  102. package/src/common/orchestrator-chat-agent.ts +0 -179
  103. 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;;AA0B/D,wBA2DG"}
@@ -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,16 @@ 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
37
  exports.default = new inversify_1.ContainerModule(bind => {
38
38
  (0, core_1.bindContributionProvider)(bind, common_1.Agent);
39
39
  (0, core_1.bindContributionProvider)(bind, common_2.ChatAgent);
40
40
  bind(chat_tool_request_service_1.ChatToolRequestService).toSelf().inSingletonScope();
41
41
  bind(common_2.ChatAgentServiceImpl).toSelf().inSingletonScope();
42
42
  bind(common_2.ChatAgentService).toService(common_2.ChatAgentServiceImpl);
43
- bind(common_2.DefaultChatAgentId).toConstantValue({ id: orchestrator_chat_agent_1.OrchestratorChatAgentId });
43
+ bind(common_2.PinChatAgent).toConstantValue(true);
44
44
  (0, core_1.bindContributionProvider)(bind, response_content_matcher_1.ResponseContentMatcherProvider);
45
45
  bind(response_content_matcher_1.DefaultResponseContentMatcherProvider).toSelf().inSingletonScope();
46
46
  bind(response_content_matcher_1.ResponseContentMatcherProvider).toService(response_content_matcher_1.DefaultResponseContentMatcherProvider);
@@ -50,15 +50,6 @@ exports.default = new inversify_1.ContainerModule(bind => {
50
50
  bind(common_2.ChatRequestParser).toService(common_2.ChatRequestParserImpl);
51
51
  bind(frontend_chat_service_1.FrontendChatServiceImpl).toSelf().inSingletonScope();
52
52
  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
53
  bind(browser_1.PreferenceContribution).toConstantValue({ schema: ai_chat_preferences_1.aiChatPreferences });
63
54
  bind(custom_chat_agent_1.CustomChatAgent).toSelf();
64
55
  bind(custom_agent_factory_1.CustomAgentFactory).toFactory(ctx => (id, name, description, prompt, defaultLLM) => {
@@ -76,6 +67,10 @@ exports.default = new inversify_1.ContainerModule(bind => {
76
67
  return agent;
77
68
  });
78
69
  bind(browser_1.FrontendApplicationContribution).to(custom_agent_frontend_application_contribution_1.AICustomAgentsFrontendApplicationContribution).inSingletonScope();
70
+ bind(context_variable_label_provider_1.ContextVariableLabelProvider).toSelf().inSingletonScope();
71
+ bind(browser_1.LabelProviderContribution).toService(context_variable_label_provider_1.ContextVariableLabelProvider);
72
+ bind(context_file_variable_label_provider_1.ContextFileVariableLabelProvider).toSelf().inSingletonScope();
73
+ bind(browser_1.LabelProviderContribution).toService(context_file_variable_label_provider_1.ContextFileVariableLabelProvider);
79
74
  bind(change_set_file_service_1.ChangeSetFileService).toSelf().inSingletonScope();
80
75
  bind(change_set_file_element_1.ChangeSetFileElementFactory).toFactory(ctx => (args) => {
81
76
  const container = ctx.container.createChild();
@@ -85,5 +80,7 @@ exports.default = new inversify_1.ContainerModule(bind => {
85
80
  });
86
81
  bind(change_set_file_resource_1.ChangeSetFileResourceResolver).toSelf().inSingletonScope();
87
82
  bind(core_1.ResourceResolver).toService(change_set_file_resource_1.ChangeSetFileResourceResolver);
83
+ bind(common_2.ToolCallChatResponseContentFactory).toSelf().inSingletonScope();
84
+ bind(common_1.AIVariableContribution).to(file_chat_variable_contribution_1.FileChatVariableContribution).inSingletonScope();
88
85
  });
89
86
  //# 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,11 @@
1
- import { URI } from '@theia/core';
1
+ import { DisposableCollection, Emitter, URI } from '@theia/core';
2
2
  import { ChangeSetElement, ChangeSetImpl } from '../common';
3
+ import { ChangeSetFileResourceResolver, UpdatableReferenceResource } from './change-set-file-resource';
3
4
  import { ChangeSetFileService } from './change-set-file-service';
5
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
4
6
  export declare const ChangeSetFileElementFactory: unique symbol;
5
7
  export type ChangeSetFileElementFactory = (elementProps: ChangeSetElementArgs) => ChangeSetFileElement;
8
+ type ChangeSetElementState = ChangeSetElement['state'];
6
9
  export declare const ChangeSetElementArgs: unique symbol;
7
10
  export interface ChangeSetElementArgs extends Partial<ChangeSetElement> {
8
11
  /** The URI of the element, expected to be unique within the same change set. */
@@ -18,19 +21,30 @@ export interface ChangeSetElementArgs extends Partial<ChangeSetElement> {
18
21
  targetState?: string;
19
22
  }
20
23
  export declare class ChangeSetFileElement implements ChangeSetElement {
24
+ static toReadOnlyUri(baseUri: URI, sessionId: string): URI;
21
25
  protected readonly elementProps: ChangeSetElementArgs;
22
26
  protected readonly changeSetFileService: ChangeSetFileService;
23
- protected _state: 'pending' | 'applied' | 'discarded' | undefined;
27
+ protected readonly fileService: FileService;
28
+ protected readonly resourceResolver: ChangeSetFileResourceResolver;
29
+ protected readonly toDispose: DisposableCollection;
30
+ protected _state: ChangeSetElementState;
24
31
  protected originalContent: string | undefined;
32
+ protected readonly onDidChangeEmitter: Emitter<void>;
33
+ readonly onDidChange: import("@theia/core").Event<void>;
34
+ protected readOnlyResource: UpdatableReferenceResource;
35
+ protected changeResource: UpdatableReferenceResource;
25
36
  init(): void;
26
37
  protected obtainOriginalContent(): Promise<void>;
38
+ protected getResources(): void;
39
+ protected listenForOriginalFileChanges(): void;
27
40
  get uri(): URI;
41
+ get readOnlyUri(): URI;
28
42
  get changedUri(): URI;
29
43
  get name(): string;
30
44
  get icon(): string | undefined;
31
45
  get additionalInfo(): string | undefined;
32
- get state(): 'pending' | 'applied' | 'discarded' | undefined;
33
- protected set state(value: 'pending' | 'applied' | 'discarded' | undefined);
46
+ get state(): ChangeSetElementState;
47
+ protected set state(value: ChangeSetElementState);
34
48
  get type(): 'add' | 'modify' | 'delete' | undefined;
35
49
  get data(): {
36
50
  [key: string]: unknown;
@@ -38,7 +52,11 @@ export declare class ChangeSetFileElement implements ChangeSetElement {
38
52
  get targetState(): string;
39
53
  open(): Promise<void>;
40
54
  openChange(): Promise<void>;
41
- accept(contents?: string): Promise<void>;
42
- discard(): Promise<void>;
55
+ apply(contents?: string): Promise<void>;
56
+ writeChanges(contents?: string): Promise<void>;
57
+ revert(): Promise<void>;
58
+ confirm(verb: string): Promise<boolean>;
59
+ dispose(): void;
43
60
  }
61
+ export {};
44
62
  //# 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":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAA0B,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC/H,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAGzE,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AACjF,MAAM,MAAM,2BAA2B,GAAG,CAAC,YAAY,EAAE,oBAAoB,KAAK,oBAAoB,CAAC;AACvG,KAAK,qBAAqB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEvD,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;IAEzD,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG;IAK1D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAG9D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IAEnE,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAC1D,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAExC,SAAS,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,oCAAiC;IACrD,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;IACvD,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC;IAGrD,IAAI,IAAI,IAAI;cAOI,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtD,SAAS,CAAC,YAAY,IAAI,IAAI;IAY9B,SAAS,CAAC,4BAA4B,IAAI,IAAI;IAgB9C,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,WAAW,IAAI,GAAG,CAErB;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,qBAAqB,CAEjC;IAED,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,qBAAqB,EAK/C;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,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAavC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU7C,OAAO,IAAI,IAAI;CAGlB"}
@@ -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,10 @@ 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
+ }
57
113
  }
58
114
  get type() {
59
115
  return this.elementProps.type;
@@ -70,27 +126,53 @@ let ChangeSetFileElement = class ChangeSetFileElement {
70
126
  this.changeSetFileService.open(this);
71
127
  }
72
128
  async openChange() {
73
- this.changeSetFileService.openDiff(this.uri, this.changedUri);
129
+ this.changeSetFileService.openDiff(this.readOnlyUri, this.changedUri);
74
130
  }
75
- async accept(contents) {
76
- this.state = 'applied';
77
- if (this.type === 'delete') {
78
- await this.changeSetFileService.delete(this.uri);
79
- this.state = 'applied';
131
+ async apply(contents) {
132
+ if (!await this.confirm('Apply')) {
80
133
  return;
81
134
  }
82
- await this.changeSetFileService.write(this.uri, contents !== undefined ? contents : this.targetState);
135
+ if (!(await this.changeSetFileService.trySave(this.changedUri))) {
136
+ if (this.type === 'delete') {
137
+ await this.changeSetFileService.delete(this.uri);
138
+ this.state = 'applied';
139
+ }
140
+ else {
141
+ await this.writeChanges(contents);
142
+ }
143
+ }
144
+ this.changeSetFileService.closeDiff(this.readOnlyUri);
145
+ }
146
+ async writeChanges(contents) {
147
+ await this.changeSetFileService.writeFrom(this.changedUri, this.uri, contents !== null && contents !== void 0 ? contents : this.targetState);
148
+ this.state = 'applied';
83
149
  }
84
- async discard() {
85
- this.state = 'discarded';
150
+ async revert() {
151
+ if (!await this.confirm('Revert')) {
152
+ return;
153
+ }
154
+ this.state = 'pending';
86
155
  if (this.type === 'add') {
87
156
  await this.changeSetFileService.delete(this.uri);
88
- return;
89
157
  }
90
- if (this.originalContent) {
158
+ else if (this.originalContent) {
91
159
  await this.changeSetFileService.write(this.uri, this.originalContent);
92
160
  }
93
161
  }
162
+ async confirm(verb) {
163
+ if (this._state !== 'stale') {
164
+ return true;
165
+ }
166
+ await this.openChange();
167
+ const thing = await new browser_1.ConfirmDialog({
168
+ title: `${verb} suggestion.`,
169
+ msg: `The file ${this.uri.path.toString()} has changed since this suggestion was created. Are you certain you wish to ${verb.toLowerCase()} the change?`
170
+ }).open(true);
171
+ return !!thing;
172
+ }
173
+ dispose() {
174
+ this.toDispose.dispose();
175
+ }
94
176
  };
95
177
  exports.ChangeSetFileElement = ChangeSetFileElement;
96
178
  tslib_1.__decorate([
@@ -101,13 +183,21 @@ tslib_1.__decorate([
101
183
  (0, inversify_1.inject)(change_set_file_service_1.ChangeSetFileService),
102
184
  tslib_1.__metadata("design:type", change_set_file_service_1.ChangeSetFileService)
103
185
  ], ChangeSetFileElement.prototype, "changeSetFileService", void 0);
186
+ tslib_1.__decorate([
187
+ (0, inversify_1.inject)(file_service_1.FileService),
188
+ tslib_1.__metadata("design:type", file_service_1.FileService)
189
+ ], ChangeSetFileElement.prototype, "fileService", void 0);
190
+ tslib_1.__decorate([
191
+ (0, inversify_1.inject)(change_set_file_resource_1.ChangeSetFileResourceResolver),
192
+ tslib_1.__metadata("design:type", change_set_file_resource_1.ChangeSetFileResourceResolver)
193
+ ], ChangeSetFileElement.prototype, "resourceResolver", void 0);
104
194
  tslib_1.__decorate([
105
195
  (0, inversify_1.postConstruct)(),
106
196
  tslib_1.__metadata("design:type", Function),
107
197
  tslib_1.__metadata("design:paramtypes", []),
108
198
  tslib_1.__metadata("design:returntype", void 0)
109
199
  ], ChangeSetFileElement.prototype, "init", null);
110
- exports.ChangeSetFileElement = ChangeSetFileElement = tslib_1.__decorate([
200
+ exports.ChangeSetFileElement = ChangeSetFileElement = ChangeSetFileElement_1 = tslib_1.__decorate([
111
201
  (0, inversify_1.injectable)()
112
202
  ], ChangeSetFileElement);
113
203
  //# 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"}