156
157
private createReferencedObject(key: string, props?: IStartSessionProps, debugOwner?: string): ChatModel {
159
>
const existingModel = this._models.get(key);
160
>
if (existingModel) {
161
return existingModel;
162
}
164
>
if (!props) {
165
throw new Error(`No start session props provided for chat session ${key}`);
166
}
168
>
this.logService.trace(`Creating chat session ${key}`);
169
>
const model = this.delegate.createModel(props);
170
>
this._modelCreateOwners.set(key, debugOwner ?? 'unspecified');
171
>
if (model.sessionResource.toString() !== key) {
172
throw new Error(`Chat session key mismatch for ${key}`);
173
}
175
>
this._onDidCreateModel.fire(model);
176
>
return model;
177
>
}
178
179
private destroyReferencedObject(key: string, object: ChatModel): void {