@theia/ai-chat 1.66.0-next.44 → 1.66.0-next.73

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 (137) hide show
  1. package/lib/browser/agent-delegation-tool.d.ts.map +1 -1
  2. package/lib/browser/agent-delegation-tool.js +4 -2
  3. package/lib/browser/agent-delegation-tool.js.map +1 -1
  4. package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -1
  5. package/lib/browser/ai-chat-frontend-module.js +15 -0
  6. package/lib/browser/ai-chat-frontend-module.js.map +1 -1
  7. package/lib/browser/change-set-file-element-deserializer.d.ts +7 -0
  8. package/lib/browser/change-set-file-element-deserializer.d.ts.map +1 -0
  9. package/lib/browser/change-set-file-element-deserializer.js +61 -0
  10. package/lib/browser/change-set-file-element-deserializer.js.map +1 -0
  11. package/lib/browser/change-set-file-element.d.ts +3 -1
  12. package/lib/browser/change-set-file-element.d.ts.map +1 -1
  13. package/lib/browser/change-set-file-element.js +23 -2
  14. package/lib/browser/change-set-file-element.js.map +1 -1
  15. package/lib/browser/change-set-file-service.d.ts.map +1 -1
  16. package/lib/browser/change-set-file-service.js +2 -2
  17. package/lib/browser/change-set-file-service.js.map +1 -1
  18. package/lib/browser/chat-session-store-impl.d.ts +36 -0
  19. package/lib/browser/chat-session-store-impl.d.ts.map +1 -0
  20. package/lib/browser/chat-session-store-impl.js +287 -0
  21. package/lib/browser/chat-session-store-impl.js.map +1 -0
  22. package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -1
  23. package/lib/browser/file-chat-variable-contribution.js +1 -1
  24. package/lib/browser/file-chat-variable-contribution.js.map +1 -1
  25. package/lib/browser/image-context-variable-contribution.js +1 -1
  26. package/lib/browser/image-context-variable-contribution.js.map +1 -1
  27. package/lib/browser/task-context-service.d.ts.map +1 -1
  28. package/lib/browser/task-context-service.js +8 -2
  29. package/lib/browser/task-context-service.js.map +1 -1
  30. package/lib/browser/task-context-variable.d.ts.map +1 -1
  31. package/lib/browser/task-context-variable.js +7 -3
  32. package/lib/browser/task-context-variable.js.map +1 -1
  33. package/lib/common/change-set-element-deserializer.d.ts +30 -0
  34. package/lib/common/change-set-element-deserializer.d.ts.map +1 -0
  35. package/lib/common/change-set-element-deserializer.js +81 -0
  36. package/lib/common/change-set-element-deserializer.js.map +1 -0
  37. package/lib/common/change-set.d.ts +7 -0
  38. package/lib/common/change-set.d.ts.map +1 -1
  39. package/lib/common/change-set.js +1 -1
  40. package/lib/common/change-set.js.map +1 -1
  41. package/lib/common/chat-agents-variable-contribution.d.ts.map +1 -1
  42. package/lib/common/chat-agents-variable-contribution.js +17 -1
  43. package/lib/common/chat-agents-variable-contribution.js.map +1 -1
  44. package/lib/common/chat-agents.d.ts.map +1 -1
  45. package/lib/common/chat-agents.js +3 -3
  46. package/lib/common/chat-agents.js.map +1 -1
  47. package/lib/common/chat-auto-save.spec.d.ts +2 -0
  48. package/lib/common/chat-auto-save.spec.d.ts.map +1 -0
  49. package/lib/common/chat-auto-save.spec.js +304 -0
  50. package/lib/common/chat-auto-save.spec.js.map +1 -0
  51. package/lib/common/chat-content-deserializer.d.ts +161 -0
  52. package/lib/common/chat-content-deserializer.d.ts.map +1 -0
  53. package/lib/common/chat-content-deserializer.js +166 -0
  54. package/lib/common/chat-content-deserializer.js.map +1 -0
  55. package/lib/common/chat-content-deserializer.spec.d.ts +2 -0
  56. package/lib/common/chat-content-deserializer.spec.d.ts.map +1 -0
  57. package/lib/common/chat-content-deserializer.spec.js +307 -0
  58. package/lib/common/chat-content-deserializer.spec.js.map +1 -0
  59. package/lib/common/chat-model-serialization.d.ts +110 -0
  60. package/lib/common/chat-model-serialization.d.ts.map +1 -0
  61. package/lib/common/chat-model-serialization.js +20 -0
  62. package/lib/common/chat-model-serialization.js.map +1 -0
  63. package/lib/common/chat-model-serialization.spec.d.ts +2 -0
  64. package/lib/common/chat-model-serialization.spec.d.ts.map +1 -0
  65. package/lib/common/chat-model-serialization.spec.js +278 -0
  66. package/lib/common/chat-model-serialization.spec.js.map +1 -0
  67. package/lib/common/chat-model.d.ts +163 -14
  68. package/lib/common/chat-model.d.ts.map +1 -1
  69. package/lib/common/chat-model.js +444 -36
  70. package/lib/common/chat-model.js.map +1 -1
  71. package/lib/common/chat-request-parser.d.ts +8 -1
  72. package/lib/common/chat-request-parser.d.ts.map +1 -1
  73. package/lib/common/chat-request-parser.js +29 -1
  74. package/lib/common/chat-request-parser.js.map +1 -1
  75. package/lib/common/chat-request-parser.spec.js +51 -0
  76. package/lib/common/chat-request-parser.spec.js.map +1 -1
  77. package/lib/common/chat-service-deletion.spec.d.ts +2 -0
  78. package/lib/common/chat-service-deletion.spec.d.ts.map +1 -0
  79. package/lib/common/chat-service-deletion.spec.js +221 -0
  80. package/lib/common/chat-service-deletion.spec.js.map +1 -0
  81. package/lib/common/chat-service.d.ts +30 -2
  82. package/lib/common/chat-service.d.ts.map +1 -1
  83. package/lib/common/chat-service.js +182 -10
  84. package/lib/common/chat-service.js.map +1 -1
  85. package/lib/common/chat-session-naming-service.d.ts.map +1 -1
  86. package/lib/common/chat-session-naming-service.js +11 -3
  87. package/lib/common/chat-session-naming-service.js.map +1 -1
  88. package/lib/common/chat-session-store.d.ts +43 -0
  89. package/lib/common/chat-session-store.d.ts.map +1 -0
  90. package/lib/common/chat-session-store.js +20 -0
  91. package/lib/common/chat-session-store.js.map +1 -0
  92. package/lib/common/chat-session-summary-agent-prompt.js +1 -1
  93. package/lib/common/chat-session-summary-agent-prompt.js.map +1 -1
  94. package/lib/common/chat-session-summary-agent.d.ts.map +1 -1
  95. package/lib/common/chat-session-summary-agent.js +2 -1
  96. package/lib/common/chat-session-summary-agent.js.map +1 -1
  97. package/lib/common/chat-tool-preferences.js +1 -1
  98. package/lib/common/chat-tool-preferences.js.map +1 -1
  99. package/lib/common/image-context-variable.d.ts.map +1 -1
  100. package/lib/common/image-context-variable.js +21 -6
  101. package/lib/common/image-context-variable.js.map +1 -1
  102. package/lib/common/index.d.ts +3 -0
  103. package/lib/common/index.d.ts.map +1 -1
  104. package/lib/common/index.js +3 -0
  105. package/lib/common/index.js.map +1 -1
  106. package/package.json +9 -9
  107. package/src/browser/agent-delegation-tool.ts +4 -2
  108. package/src/browser/ai-chat-frontend-module.ts +27 -0
  109. package/src/browser/change-set-file-element-deserializer.ts +62 -0
  110. package/src/browser/change-set-file-element.ts +29 -4
  111. package/src/browser/change-set-file-service.ts +3 -3
  112. package/src/browser/chat-session-store-impl.ts +326 -0
  113. package/src/browser/file-chat-variable-contribution.ts +2 -2
  114. package/src/browser/image-context-variable-contribution.ts +1 -1
  115. package/src/browser/task-context-service.ts +9 -3
  116. package/src/browser/task-context-variable.ts +8 -3
  117. package/src/common/change-set-element-deserializer.ts +90 -0
  118. package/src/common/change-set.ts +10 -2
  119. package/src/common/chat-agents-variable-contribution.ts +2 -2
  120. package/src/common/chat-agents.ts +4 -4
  121. package/src/common/chat-auto-save.spec.ts +372 -0
  122. package/src/common/chat-content-deserializer.spec.ts +375 -0
  123. package/src/common/chat-content-deserializer.ts +327 -0
  124. package/src/common/chat-model-serialization.spec.ts +343 -0
  125. package/src/common/chat-model-serialization.ts +133 -0
  126. package/src/common/chat-model.ts +644 -41
  127. package/src/common/chat-request-parser.spec.ts +61 -0
  128. package/src/common/chat-request-parser.ts +40 -1
  129. package/src/common/chat-service-deletion.spec.ts +269 -0
  130. package/src/common/chat-service.ts +227 -10
  131. package/src/common/chat-session-naming-service.ts +12 -4
  132. package/src/common/chat-session-store.ts +63 -0
  133. package/src/common/chat-session-summary-agent-prompt.ts +1 -1
  134. package/src/common/chat-session-summary-agent.ts +2 -1
  135. package/src/common/chat-tool-preferences.ts +1 -2
  136. package/src/common/image-context-variable.ts +21 -6
  137. package/src/common/index.ts +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-auto-save.spec.js","sourceRoot":"","sources":["../../src/common/chat-auto-save.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { ChatResponseContent } from './chat-model';
2
+ import { SerializableChatResponseContentData } from './chat-model-serialization';
3
+ import { ContributionProvider, ILogger, MaybePromise } from '@theia/core';
4
+ export declare const ChatContentDeserializer: unique symbol;
5
+ /**
6
+ * A deserializer for a specific kind of chat response content.
7
+ *
8
+ * Deserializers are responsible for reconstructing `ChatResponseContent` instances
9
+ * from their serialized data representations. Each deserializer handles a single
10
+ * content type identified by its `kind` property.
11
+ *
12
+ * @template T The type of the data object that this deserializer can process.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const textDeserializer: ChatContentDeserializer<TextContentData> = {
17
+ * kind: 'text',
18
+ * deserialize: (data) => new TextChatResponseContentImpl(data.content)
19
+ * };
20
+ * ```
21
+ */
22
+ export interface ChatContentDeserializer<T = unknown> {
23
+ /**
24
+ * The unique identifier for the content type this deserializer handles.
25
+ * This must match the `kind` property of the serialized content data.
26
+ */
27
+ readonly kind: string;
28
+ /**
29
+ * Deserializes the given data into a `ChatResponseContent` instance.
30
+ *
31
+ * @param data The serialized data to deserialize. The structure depends on the content kind.
32
+ * @returns The deserialized content, or a Promise that resolves to the deserialized content.
33
+ */
34
+ deserialize(data: T): MaybePromise<ChatResponseContent>;
35
+ }
36
+ /**
37
+ * Contribution point for registering chat content deserializers.
38
+ *
39
+ * Implement this interface to contribute custom deserializers for application-specific
40
+ * or extension-specific chat response content types. Multiple contributions can be
41
+ * registered, and all will be collected via the contribution provider pattern.
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * @injectable()
46
+ * export class MyDeserializerContribution implements ChatContentDeserializerContribution {
47
+ * registerDeserializers(registry: ChatContentDeserializerRegistry): void {
48
+ * registry.register({
49
+ * kind: 'customContent',
50
+ * deserialize: (data: CustomContentData) =>
51
+ * new CustomContentImpl(data.title, data.items)
52
+ * });
53
+ * }
54
+ * }
55
+ *
56
+ * // In your module:
57
+ * bind(ChatContentDeserializerContribution).to(MyDeserializerContribution).inSingletonScope();
58
+ * ```
59
+ *
60
+ * @see {@link ChatContentDeserializerRegistry} for the registry that collects deserializers
61
+ * @see {@link DefaultChatContentDeserializerContribution} for built-in content type deserializers
62
+ */
63
+ export interface ChatContentDeserializerContribution {
64
+ /**
65
+ * Registers one or more deserializers with the provided registry.
66
+ *
67
+ * This method is called during the registry's initialization phase (at `@postConstruct()` time).
68
+ *
69
+ * @param registry The registry to register deserializers with
70
+ */
71
+ registerDeserializers(registry: ChatContentDeserializerRegistry): void;
72
+ }
73
+ export declare const ChatContentDeserializerContribution: unique symbol;
74
+ /**
75
+ * Registry for chat content deserializers.
76
+ *
77
+ * This registry maintains a collection of deserializers for different content types
78
+ * and provides methods to register new deserializers and deserialize content data.
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * // Usage in a service:
83
+ * @inject(ChatContentDeserializerRegistry)
84
+ * protected deserializerRegistry: ChatContentDeserializerRegistry;
85
+ *
86
+ * async restoreContent(): Promise<void> {
87
+ * const restoredContent = this.deserializerRegistry.deserialize(serializedData);
88
+ * }
89
+ * ```
90
+ *
91
+ * @see {@link ChatContentDeserializerContribution} for how to contribute deserializers
92
+ * @see {@link ChatContentDeserializerRegistryImpl} for the default implementation
93
+ */
94
+ export interface ChatContentDeserializerRegistry {
95
+ /**
96
+ * Registers a deserializer for a specific content kind.
97
+ *
98
+ * If a deserializer for the same kind is already registered, it will be replaced.
99
+ *
100
+ * @param deserializer The deserializer to register
101
+ */
102
+ register(deserializer: ChatContentDeserializer<unknown>): void;
103
+ /**
104
+ * Deserializes the given serialized content data into a `ChatResponseContent` instance.
105
+ *
106
+ * The registry looks up the appropriate deserializer based on the `kind` property
107
+ * of the serialized data and delegates to that deserializer's `deserialize` method.
108
+ *
109
+ * If no deserializer is found for the content kind, an `UnknownChatResponseContentImpl`
110
+ * instance is returned with the original data and fallback message preserved.
111
+ * A warning is also logged with the missing kind and available kinds.
112
+ *
113
+ * @param serialized The serialized content data to deserialize
114
+ * @returns The deserialized content, or a Promise that resolves to the deserialized content
115
+ */
116
+ deserialize(serialized: SerializableChatResponseContentData): MaybePromise<ChatResponseContent>;
117
+ }
118
+ export declare const ChatContentDeserializerRegistry: unique symbol;
119
+ /**
120
+ * Default implementation of the chat content deserializer registry.
121
+ *
122
+ * This registry collects deserializers from all bound `ChatContentDeserializerContribution`
123
+ * instances during its post-construction initialization phase. Deserializers are stored
124
+ * in a map keyed by their content kind.
125
+ *
126
+ * The registry handles unknown content types gracefully by returning an
127
+ * `UnknownChatResponseContentImpl` instance when no deserializer is found,
128
+ * ensuring that chat sessions can still be loaded even if some content types
129
+ * are no longer supported or available.
130
+ *
131
+ * @see {@link ChatContentDeserializerRegistry} for the interface definition
132
+ */
133
+ export declare class ChatContentDeserializerRegistryImpl implements ChatContentDeserializerRegistry {
134
+ /**
135
+ * Map of registered deserializers, keyed by content kind.
136
+ */
137
+ protected deserializers: Map<string, ChatContentDeserializer<unknown>>;
138
+ protected readonly deserializerContributions: ContributionProvider<ChatContentDeserializerContribution>;
139
+ protected readonly logger: ILogger;
140
+ /**
141
+ * Initializes the registry by collecting deserializers from all contributions.
142
+ * This method is automatically called after construction due to the `@postConstruct` decorator.
143
+ */
144
+ protected initDeserializers(): void;
145
+ register(deserializer: ChatContentDeserializer): void;
146
+ deserialize(serialized: SerializableChatResponseContentData): MaybePromise<ChatResponseContent>;
147
+ }
148
+ /**
149
+ * Default implementation of the chat content deserializer contribution.
150
+ *
151
+ * This contribution registers deserializers for all built-in content types supported
152
+ * by Theia AI.
153
+ *
154
+ * Note that some content types have limitations when deserialized from persistence.
155
+ *
156
+ * @see {@link ChatContentDeserializerContribution} for the contribution interface
157
+ */
158
+ export declare class DefaultChatContentDeserializerContribution implements ChatContentDeserializerContribution {
159
+ registerDeserializers(registry: ChatContentDeserializerRegistry): void;
160
+ }
161
+ //# sourceMappingURL=chat-content-deserializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-content-deserializer.d.ts","sourceRoot":"","sources":["../../src/common/chat-content-deserializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EACH,mBAAmB,EAwBtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1E,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AAEzE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,OAAO;IAChD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,mCAAmC;IAChD;;;;;;OAMG;IACH,qBAAqB,CAAC,QAAQ,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAC1E;AACD,eAAO,MAAM,mCAAmC,eAAgD,CAAC;AAEjG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,+BAA+B;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,UAAU,EAAE,mCAAmC,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;CACnG;AACD,eAAO,MAAM,+BAA+B,eAA4C,CAAC;AAEzF;;;;;;;;;;;;;GAaG;AACH,qBACa,mCAAoC,YAAW,+BAA+B;IACvF;;OAEG;IACH,SAAS,CAAC,aAAa,gDAA8C;IAGrE,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,mCAAmC,CAAC,CAAC;IAGxG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC;;;OAGG;IAEH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAMnC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAIrD,WAAW,CAAC,UAAU,EAAE,mCAAmC,GAAG,YAAY,CAAC,mBAAmB,CAAC;CAYlG;AAED;;;;;;;;;GASG;AACH,qBACa,0CAA2C,YAAW,mCAAmC;IAClG,qBAAqB,CAAC,QAAQ,EAAE,+BAA+B,GAAG,IAAI;CA2FzE"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DefaultChatContentDeserializerContribution = exports.ChatContentDeserializerRegistryImpl = exports.ChatContentDeserializerRegistry = exports.ChatContentDeserializerContribution = exports.ChatContentDeserializer = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const chat_model_1 = require("./chat-model");
22
+ const core_1 = require("@theia/core");
23
+ exports.ChatContentDeserializer = Symbol('ChatContentDeserializer');
24
+ exports.ChatContentDeserializerContribution = Symbol('ChatContentDeserializerContribution');
25
+ exports.ChatContentDeserializerRegistry = Symbol('ChatContentDeserializerRegistry');
26
+ /**
27
+ * Default implementation of the chat content deserializer registry.
28
+ *
29
+ * This registry collects deserializers from all bound `ChatContentDeserializerContribution`
30
+ * instances during its post-construction initialization phase. Deserializers are stored
31
+ * in a map keyed by their content kind.
32
+ *
33
+ * The registry handles unknown content types gracefully by returning an
34
+ * `UnknownChatResponseContentImpl` instance when no deserializer is found,
35
+ * ensuring that chat sessions can still be loaded even if some content types
36
+ * are no longer supported or available.
37
+ *
38
+ * @see {@link ChatContentDeserializerRegistry} for the interface definition
39
+ */
40
+ let ChatContentDeserializerRegistryImpl = class ChatContentDeserializerRegistryImpl {
41
+ constructor() {
42
+ /**
43
+ * Map of registered deserializers, keyed by content kind.
44
+ */
45
+ this.deserializers = new Map();
46
+ }
47
+ /**
48
+ * Initializes the registry by collecting deserializers from all contributions.
49
+ * This method is automatically called after construction due to the `@postConstruct` decorator.
50
+ */
51
+ initDeserializers() {
52
+ for (const contribution of this.deserializerContributions.getContributions()) {
53
+ contribution.registerDeserializers(this);
54
+ }
55
+ }
56
+ register(deserializer) {
57
+ this.deserializers.set(deserializer.kind, deserializer);
58
+ }
59
+ deserialize(serialized) {
60
+ const deserializer = this.deserializers.get(serialized.kind);
61
+ if (!deserializer) {
62
+ this.logger.warn('No deserializer found for kind:', serialized.kind, 'Available kinds:', Array.from(this.deserializers.keys()));
63
+ return new chat_model_1.UnknownChatResponseContentImpl(serialized.kind, serialized.fallbackMessage, serialized.data);
64
+ }
65
+ return deserializer.deserialize(serialized.data);
66
+ }
67
+ };
68
+ exports.ChatContentDeserializerRegistryImpl = ChatContentDeserializerRegistryImpl;
69
+ tslib_1.__decorate([
70
+ (0, inversify_1.inject)(core_1.ContributionProvider),
71
+ (0, inversify_1.named)(exports.ChatContentDeserializerContribution),
72
+ tslib_1.__metadata("design:type", Object)
73
+ ], ChatContentDeserializerRegistryImpl.prototype, "deserializerContributions", void 0);
74
+ tslib_1.__decorate([
75
+ (0, inversify_1.inject)(core_1.ILogger),
76
+ (0, inversify_1.named)('ChatContentDeserializerRegistry'),
77
+ tslib_1.__metadata("design:type", Object)
78
+ ], ChatContentDeserializerRegistryImpl.prototype, "logger", void 0);
79
+ tslib_1.__decorate([
80
+ (0, inversify_1.postConstruct)(),
81
+ tslib_1.__metadata("design:type", Function),
82
+ tslib_1.__metadata("design:paramtypes", []),
83
+ tslib_1.__metadata("design:returntype", void 0)
84
+ ], ChatContentDeserializerRegistryImpl.prototype, "initDeserializers", null);
85
+ exports.ChatContentDeserializerRegistryImpl = ChatContentDeserializerRegistryImpl = tslib_1.__decorate([
86
+ (0, inversify_1.injectable)()
87
+ ], ChatContentDeserializerRegistryImpl);
88
+ /**
89
+ * Default implementation of the chat content deserializer contribution.
90
+ *
91
+ * This contribution registers deserializers for all built-in content types supported
92
+ * by Theia AI.
93
+ *
94
+ * Note that some content types have limitations when deserialized from persistence.
95
+ *
96
+ * @see {@link ChatContentDeserializerContribution} for the contribution interface
97
+ */
98
+ let DefaultChatContentDeserializerContribution = class DefaultChatContentDeserializerContribution {
99
+ registerDeserializers(registry) {
100
+ registry.register({
101
+ kind: 'text',
102
+ deserialize: (data) => new chat_model_1.TextChatResponseContentImpl(data.content)
103
+ });
104
+ registry.register({
105
+ kind: 'thinking',
106
+ deserialize: (data) => new chat_model_1.ThinkingChatResponseContentImpl(data.content, data.signature)
107
+ });
108
+ registry.register({
109
+ kind: 'markdownContent',
110
+ deserialize: (data) => new chat_model_1.MarkdownChatResponseContentImpl(data.content)
111
+ });
112
+ registry.register({
113
+ kind: 'informational',
114
+ deserialize: (data) => new chat_model_1.InformationalChatResponseContentImpl(data.content)
115
+ });
116
+ registry.register({
117
+ kind: 'code',
118
+ deserialize: (data) => new chat_model_1.CodeChatResponseContentImpl(data.code, data.language, data.location)
119
+ });
120
+ registry.register({
121
+ kind: 'toolCall',
122
+ deserialize: (data) => new chat_model_1.ToolCallChatResponseContentImpl(data.id, data.name, data.arguments, data.finished, data.result)
123
+ });
124
+ registry.register({
125
+ kind: 'command',
126
+ deserialize: (data) => {
127
+ const command = data.commandId ? { id: data.commandId } : undefined;
128
+ // Cannot restore customCallback since it contains a function
129
+ return new chat_model_1.CommandChatResponseContentImpl(command, undefined, data.arguments);
130
+ }
131
+ });
132
+ registry.register({
133
+ kind: 'horizontal',
134
+ deserialize: async (data) => {
135
+ const childContentPromises = data.content.map(child => registry.deserialize(child));
136
+ const childContent = Promise.all(childContentPromises);
137
+ return new chat_model_1.HorizontalLayoutChatResponseContentImpl(await childContent);
138
+ }
139
+ });
140
+ registry.register({
141
+ kind: 'progress',
142
+ deserialize: (data) => new chat_model_1.ProgressChatResponseContentImpl(data.message)
143
+ });
144
+ registry.register({
145
+ kind: 'error',
146
+ deserialize: (data) => {
147
+ const error = new Error(data.message);
148
+ if (data.stack) {
149
+ error.stack = data.stack;
150
+ }
151
+ return new chat_model_1.ErrorChatResponseContentImpl(error);
152
+ }
153
+ });
154
+ registry.register({
155
+ kind: 'question',
156
+ deserialize: (data) =>
157
+ // Restore in read-only mode (no handler/request)
158
+ new chat_model_1.QuestionResponseContentImpl(data.question, data.options, undefined, undefined, data.selectedOption)
159
+ });
160
+ }
161
+ };
162
+ exports.DefaultChatContentDeserializerContribution = DefaultChatContentDeserializerContribution;
163
+ exports.DefaultChatContentDeserializerContribution = DefaultChatContentDeserializerContribution = tslib_1.__decorate([
164
+ (0, inversify_1.injectable)()
165
+ ], DefaultChatContentDeserializerContribution);
166
+ //# sourceMappingURL=chat-content-deserializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-content-deserializer.js","sourceRoot":"","sources":["../../src/common/chat-content-deserializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chat-content-deserializer.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-content-deserializer.spec.d.ts","sourceRoot":"","sources":["../../src/common/chat-content-deserializer.spec.ts"],"names":[],"mappings":""}