@ahggg/dsh-side-chat 0.7.0 → 0.7.2

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 (36) hide show
  1. package/README.md +0 -2
  2. package/README.zh-CN.md +0 -2
  3. package/lib/client/parent-composer/add-to-conversation.d.ts +14 -50
  4. package/lib/client/parent-composer/add-to-conversation.d.ts.map +1 -1
  5. package/lib/client/parent-composer/add-to-conversation.js +217 -22
  6. package/lib/client/parent-composer/add-to-conversation.js.map +1 -1
  7. package/lib/client/parent-composer/annotation-persistence.d.ts +1 -1
  8. package/lib/client/parent-composer/annotation-persistence.d.ts.map +1 -1
  9. package/lib/client/parent-composer/annotation-persistence.js +50 -12
  10. package/lib/client/parent-composer/annotation-persistence.js.map +1 -1
  11. package/lib/client/parent-composer/composer-reference.d.ts +72 -0
  12. package/lib/client/parent-composer/composer-reference.d.ts.map +1 -0
  13. package/lib/client/parent-composer/composer-reference.js +57 -0
  14. package/lib/client/parent-composer/composer-reference.js.map +1 -0
  15. package/lib/client/parent-composer/referenced-conversation.d.ts +1 -1
  16. package/lib/client/parent-composer/referenced-conversation.d.ts.map +1 -1
  17. package/lib/client/parent-composer/referenced-conversation.js +11 -18
  18. package/lib/client/parent-composer/referenced-conversation.js.map +1 -1
  19. package/lib/client/rc6/Rc6SideChatOverlay.d.ts.map +1 -1
  20. package/lib/client/rc6/Rc6SideChatOverlay.js +12 -1
  21. package/lib/client/rc6/Rc6SideChatOverlay.js.map +1 -1
  22. package/lib/client/rc6/sessions-adapter.d.ts +2 -0
  23. package/lib/client/rc6/sessions-adapter.d.ts.map +1 -1
  24. package/lib/client/rc6/sessions-adapter.js +12 -1
  25. package/lib/client/rc6/sessions-adapter.js.map +1 -1
  26. package/lib/client/selection/SelectionActions.d.ts +5 -1
  27. package/lib/client/selection/SelectionActions.d.ts.map +1 -1
  28. package/lib/client/selection/SelectionActions.js +66 -49
  29. package/lib/client/selection/SelectionActions.js.map +1 -1
  30. package/lib/client.js +334 -91
  31. package/lib/client.js.map +1 -1
  32. package/lib/shared/constants.d.ts +1 -1
  33. package/lib/shared/constants.d.ts.map +1 -1
  34. package/lib/shared/constants.js +1 -1
  35. package/lib/shared/constants.js.map +1 -1
  36. package/package.json +36 -29
package/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  Ask a focused follow-up about selected text without leaving your current DeepSeek Harness conversation.
4
4
 
5
- > Compatibility: this release targets `@deepseek-ai/dsh@0.1.0-rc.7` exactly.
6
-
7
5
  [简体中文](README.zh-CN.md)
8
6
 
9
7
  ![Ask about selected text in Side Chat, then add the Side Chat conversation to the main chat](https://raw.githubusercontent.com/AHGGG/dsh-side-chat/master/docs/assets/side-chat-demo.gif)
package/README.zh-CN.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  在不离开当前 DeepSeek Harness 主会话的情况下,针对选中的文本发起一个独立的侧边对话。
4
4
 
5
- > 兼容性:当前版本仅适配 `@deepseek-ai/dsh@0.1.0-rc.7`。
6
-
7
5
  [English](README.md)
8
6
 
9
7
  ![先在 Side Chat 中询问选中文本,再将 Side Chat 对话添加到主会话](https://raw.githubusercontent.com/AHGGG/dsh-side-chat/master/docs/assets/side-chat-demo.gif)
@@ -1,5 +1,6 @@
1
- import type { Context } from '@deepseek-ai/cordis';
2
1
  import type { ConversationSelection, SideChatPromptPart } from '../../shared/contracts.js';
2
+ import type { ParentComposerInput, ParentComposerInputSnapshot, SelectionReferenceSource } from './composer-reference.js';
3
+ export type { ParentComposerInput, ParentComposerInputSnapshot, ParentComposerOccurrence, ParentConversationService, SelectionReferenceSource, } from './composer-reference.js';
3
4
  export declare const SELECTION_REFERENCE_LABEL = "__dsh_side_chat_annotations__";
4
5
  export interface ConversationAnnotation {
5
6
  readonly text: string;
@@ -10,53 +11,6 @@ export interface ConversationSelectionAnnotation extends ConversationAnnotation
10
11
  readonly annotationIndex: number;
11
12
  readonly selection: ConversationSelection;
12
13
  }
13
- export interface ParentComposerOccurrence {
14
- readonly occurrenceId: number;
15
- readonly source: string;
16
- readonly ref: string;
17
- readonly offset: number;
18
- /** Present in newer DSH input snapshots; older rc.6 fixtures omit it. */
19
- readonly length?: number;
20
- }
21
- export interface ParentComposerInputSnapshot {
22
- readonly draft: string;
23
- readonly draftRev: number;
24
- readonly occurrences: readonly ParentComposerOccurrence[];
25
- }
26
- export interface ParentComposerInput {
27
- readonly state: {
28
- getSnapshot(): ParentComposerInputSnapshot;
29
- subscribe?(listener: () => void): () => void;
30
- };
31
- setDraft(text: string): void;
32
- insertReference(reference: {
33
- readonly source: string;
34
- readonly ref: string;
35
- readonly label: string;
36
- readonly appearance?: 'session' | 'file' | 'folder';
37
- readonly clipboardText: string;
38
- }, span: {
39
- readonly start: number;
40
- readonly end: number;
41
- readonly draftRev: number;
42
- }): boolean;
43
- }
44
- export interface ParentConversationService {
45
- readonly input: {
46
- for(scope: Context): ParentComposerInput;
47
- };
48
- }
49
- export interface SelectionReferenceSource {
50
- readonly trigger: '@';
51
- readonly name: string;
52
- readonly order: number;
53
- candidates(): Promise<readonly never[]>;
54
- onPick(): undefined;
55
- readonly codec: {
56
- clipboardText(ref: string): string;
57
- serialize(ref: string, signal: AbortSignal): Promise<string>;
58
- };
59
- }
60
14
  export declare function decodeSelectionReference(ref: string): readonly ConversationAnnotation[];
61
15
  /** Read all plugin annotations represented by the current DSH input occurrence. */
62
16
  export declare function conversationAnnotations(snapshot: ParentComposerInputSnapshot): readonly ConversationAnnotation[];
@@ -68,14 +22,24 @@ export declare function removeConversationAnnotations(input: ParentComposerInput
68
22
  export declare const selectionReferenceSource: SelectionReferenceSource;
69
23
  /** Add one passage to the parent composer's aggregated annotation occurrence. */
70
24
  export declare function addSelectionToConversation(input: ParentComposerInput, selection: ConversationSelection, comment?: string): boolean;
25
+ /** Remove one unsent selected-passage annotation, retaining the aggregate when needed. */
26
+ export declare function removeConversationAnnotation(input: ParentComposerInput, annotationIndex: number): boolean;
71
27
  /** Replace the optional comment on one unsent selected-passage annotation. */
72
28
  export declare function updateConversationAnnotation(input: ParentComposerInput, annotationIndex: number, comment?: string): boolean;
29
+ export interface ConversationAnnotationRecoveryRecord {
30
+ readonly ref: string;
31
+ readonly displayDraft: string;
32
+ readonly mirrorDraft: string;
33
+ readonly baseDraft: string;
34
+ }
35
+ /** Describe both the display draft and DSH's persisted clipboard projection. */
36
+ export declare function conversationAnnotationRecoveryRecord(snapshot: ParentComposerInputSnapshot): ConversationAnnotationRecoveryRecord | undefined;
73
37
  /** Return the valid aggregated reference currently occupying the leading draft slot. */
74
38
  export declare function conversationAnnotationReference(snapshot: ParentComposerInputSnapshot): string | undefined;
75
39
  /** Remove the plugin-owned prefix when rc.6 restored its draft without occurrences. */
76
40
  export declare function removeOrphanedConversationAnnotationPlaceholder(input: ParentComposerInput): boolean;
77
- /** Rehydrate a lost rc.6 occurrence only over the exact plugin-owned orphan prefix. */
78
- export declare function restoreConversationAnnotationReference(input: ParentComposerInput, ref: string): boolean;
41
+ /** Rehydrate a lost occurrence over either its display draft or exact mirror projection. */
42
+ export declare function restoreConversationAnnotationReference(input: ParentComposerInput, ref: string, expectedMirrorDraft?: string, expectedBaseDraft?: string): boolean;
79
43
  export interface AnnotatedConversationPrompt {
80
44
  readonly annotations: readonly ConversationAnnotation[];
81
45
  readonly message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"add-to-conversation.d.ts","sourceRoot":"","sources":["../../../src/client/parent-composer/add-to-conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-to-conversation.d.ts","sourceRoot":"","sources":["../../../src/client/parent-composer/add-to-conversation.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ import { draftWithoutOccurrence, LEGACY_REFERENCE_PLACEHOLDER, newlyInsertedOccurrence, occurrenceMatchesDraft, occurrenceRange, referenceDisplayText, } from './composer-reference.js';
1
2
  const SELECTION_REFERENCE_SOURCE = 'dsh-side-chat-selection';
2
- const OBJECT_REPLACEMENT_CHARACTER = '\uFFFC';
3
3
  export const SELECTION_REFERENCE_LABEL = '__dsh_side_chat_annotations__';
4
4
  function escapeXmlText(value) {
5
5
  return value
@@ -143,15 +143,19 @@ export function conversationSelectionAnnotations(snapshot) {
143
143
  }
144
144
  function draftWithoutSelectionOccurrences(snapshot) {
145
145
  const occurrences = [...selectionOccurrences(snapshot)].sort((a, b) => b.offset - a.offset);
146
- let draft = snapshot.draft;
146
+ let current = snapshot;
147
147
  for (const occurrence of occurrences) {
148
- draft = draft.slice(0, occurrence.offset) + draft.slice(occurrence.offset + 1);
148
+ const draft = draftWithoutOccurrence(current, occurrence, SELECTION_REFERENCE_LABEL);
149
+ if (draft === undefined)
150
+ continue;
151
+ current = { ...current, draft };
149
152
  }
150
- // Add to chat owns the blank lines immediately after its leading occurrence.
153
+ let draft = current.draft;
154
+ // Add to chat owns the separator immediately after its leading occurrence.
151
155
  if (occurrences.some(occurrence => occurrence.offset === 0)) {
152
156
  if (draft.startsWith('\n\n'))
153
157
  draft = draft.slice(2);
154
- else if (draft.startsWith('\n'))
158
+ else if (draft.startsWith('\n') || draft.startsWith(' '))
155
159
  draft = draft.slice(1);
156
160
  }
157
161
  return draft;
@@ -182,12 +186,13 @@ export const selectionReferenceSource = {
182
186
  };
183
187
  function writeConversationAnnotations(input, before, annotations) {
184
188
  const draft = draftWithoutSelectionOccurrences(before);
185
- if (selectionOccurrences(before).length > 0)
186
- input.setDraft(draft);
187
189
  const insertionState = input.state.getSnapshot();
190
+ if (insertionState.draftRev !== before.draftRev || insertionState.draft !== before.draft)
191
+ return false;
192
+ const ref = encodeSelectionReference(annotations);
188
193
  const inserted = input.insertReference({
189
194
  source: SELECTION_REFERENCE_SOURCE,
190
- ref: encodeSelectionReference(annotations),
195
+ ref,
191
196
  label: SELECTION_REFERENCE_LABEL,
192
197
  clipboardText: annotations.map(annotation => annotation.text).join('\n\n'),
193
198
  }, {
@@ -195,12 +200,74 @@ function writeConversationAnnotations(input, before, annotations) {
195
200
  end: 0,
196
201
  draftRev: insertionState.draftRev,
197
202
  });
203
+ // Existing annotations are intentionally still live here. If DSH rejects the
204
+ // insertion, the operation is a no-op instead of deleting the previous chip.
198
205
  if (!inserted)
199
206
  return false;
200
- // DSH keeps the occurrence and owns its model serialization. The two blank
201
- // lines reserve the first visual row for the plugin's interactive capsule.
202
- input.setDraft(`${OBJECT_REPLACEMENT_CHARACTER}\n\n${draft}`);
203
- return true;
207
+ const afterInsert = input.state.getSnapshot();
208
+ const occurrence = newlyInsertedOccurrence(insertionState, afterInsert, SELECTION_REFERENCE_SOURCE, ref);
209
+ const rollbackInsertion = () => {
210
+ const current = input.state.getSnapshot();
211
+ const insertedOccurrence = occurrence === undefined
212
+ ? undefined
213
+ : current.occurrences.find(candidate => candidate.occurrenceId === occurrence.occurrenceId);
214
+ if (insertedOccurrence === undefined || insertedOccurrence.offset !== 0)
215
+ return;
216
+ const insertedRange = occurrenceRange(current, insertedOccurrence, SELECTION_REFERENCE_LABEL);
217
+ if (insertedRange === undefined || insertedRange.start !== 0)
218
+ return;
219
+ let tail = current.draft.slice(insertedRange.end);
220
+ if (tail.startsWith(' ') && tail.slice(1) === before.draft)
221
+ tail = before.draft;
222
+ else if (tail !== before.draft)
223
+ return;
224
+ input.setDraft(tail);
225
+ };
226
+ if (occurrence === undefined || occurrence.offset !== 0) {
227
+ rollbackInsertion();
228
+ return false;
229
+ }
230
+ const range = occurrenceRange(afterInsert, occurrence, SELECTION_REFERENCE_LABEL);
231
+ if (range === undefined || range.start !== 0) {
232
+ rollbackInsertion();
233
+ return false;
234
+ }
235
+ // Current DSH inserts the complete `@label` display text followed by an
236
+ // optional ASCII separating gap. Older releases insert a one-unit U+FFFC
237
+ // placeholder. At this point the old occurrence is still in the tail; one
238
+ // tail replacement preserves the new occurrence and removes the old one.
239
+ let rest = afterInsert.draft.slice(range.end);
240
+ if (rest.startsWith(' ') && rest.slice(1) === before.draft)
241
+ rest = before.draft;
242
+ else if (rest !== before.draft) {
243
+ rollbackInsertion();
244
+ return false;
245
+ }
246
+ const display = afterInsert.draft.slice(range.start, range.end);
247
+ const normalizedDraft = `${display}\n\n${draft}`;
248
+ // insertReference and setDraft are separate public transactions. Re-read the
249
+ // exact occurrence before the second write so a synchronous subscriber cannot
250
+ // make us normalize a stale insertion.
251
+ const current = input.state.getSnapshot();
252
+ const currentOccurrence = current.occurrences.find(candidate => candidate.occurrenceId === occurrence.occurrenceId);
253
+ if (current.draftRev !== afterInsert.draftRev
254
+ || current.draft !== afterInsert.draft
255
+ || currentOccurrence === undefined
256
+ || currentOccurrence.source !== SELECTION_REFERENCE_SOURCE
257
+ || currentOccurrence.ref !== ref
258
+ || !occurrenceMatchesDraft(current, currentOccurrence, SELECTION_REFERENCE_LABEL)) {
259
+ rollbackInsertion();
260
+ return false;
261
+ }
262
+ input.setDraft(normalizedDraft);
263
+ const normalized = input.state.getSnapshot();
264
+ const retained = normalized.occurrences.find(candidate => candidate.occurrenceId === occurrence.occurrenceId);
265
+ return normalized.draft === normalizedDraft
266
+ && retained !== undefined
267
+ && retained.source === SELECTION_REFERENCE_SOURCE
268
+ && retained.ref === ref
269
+ && retained.offset === 0
270
+ && occurrenceMatchesDraft(normalized, retained, SELECTION_REFERENCE_LABEL);
204
271
  }
205
272
  /** Add one passage to the parent composer's aggregated annotation occurrence. */
206
273
  export function addSelectionToConversation(input, selection, comment) {
@@ -208,6 +275,19 @@ export function addSelectionToConversation(input, selection, comment) {
208
275
  const annotations = [...storedConversationAnnotations(before), annotationFromSelection(selection, comment)];
209
276
  return writeConversationAnnotations(input, before, annotations);
210
277
  }
278
+ /** Remove one unsent selected-passage annotation, retaining the aggregate when needed. */
279
+ export function removeConversationAnnotation(input, annotationIndex) {
280
+ const before = input.state.getSnapshot();
281
+ const annotations = [...storedConversationAnnotations(before)];
282
+ if (!Number.isSafeInteger(annotationIndex) || annotations[annotationIndex] === undefined)
283
+ return false;
284
+ annotations.splice(annotationIndex, 1);
285
+ if (annotations.length === 0) {
286
+ input.setDraft(draftWithoutSelectionOccurrences(before));
287
+ return selectionOccurrences(input.state.getSnapshot()).length === 0;
288
+ }
289
+ return writeConversationAnnotations(input, before, annotations);
290
+ }
211
291
  /** Replace the optional comment on one unsent selected-passage annotation. */
212
292
  export function updateConversationAnnotation(input, annotationIndex, comment) {
213
293
  const before = input.state.getSnapshot();
@@ -225,10 +305,90 @@ export function updateConversationAnnotation(input, annotationIndex, comment) {
225
305
  };
226
306
  return writeConversationAnnotations(input, before, annotations);
227
307
  }
308
+ function exactClipboardProjection(snapshot, annotationOccurrence, annotationClipboardText) {
309
+ let projected = '';
310
+ let cursor = 0;
311
+ const occurrences = [...snapshot.occurrences].sort((left, right) => left.offset - right.offset);
312
+ for (const occurrence of occurrences) {
313
+ const expectedLabel = occurrence.occurrenceId === annotationOccurrence.occurrenceId
314
+ ? SELECTION_REFERENCE_LABEL
315
+ : occurrence.label;
316
+ if (occurrence.length === undefined
317
+ && !snapshot.draft.startsWith(LEGACY_REFERENCE_PLACEHOLDER, occurrence.offset)
318
+ && expectedLabel === undefined)
319
+ return;
320
+ const range = occurrenceRange(snapshot, occurrence, expectedLabel ?? '');
321
+ if (range === undefined || range.start < cursor)
322
+ return;
323
+ const clipboardText = occurrence.occurrenceId === annotationOccurrence.occurrenceId
324
+ ? annotationClipboardText
325
+ : occurrence.clipboardText;
326
+ if (clipboardText === undefined)
327
+ return;
328
+ projected += snapshot.draft.slice(cursor, range.start) + clipboardText;
329
+ cursor = range.end;
330
+ }
331
+ return projected + snapshot.draft.slice(cursor);
332
+ }
333
+ function annotationSeparator(draftTail) {
334
+ if (draftTail.startsWith('\n\n'))
335
+ return '\n\n';
336
+ if (draftTail.startsWith('\n'))
337
+ return '\n';
338
+ if (draftTail.startsWith(' '))
339
+ return ' ';
340
+ return '';
341
+ }
342
+ function baseDraftFromMirror(mirrorDraft, clipboardText, expectedBaseDraft) {
343
+ const separators = ['\n\n', '\n', ' ', ''];
344
+ if (expectedBaseDraft !== undefined) {
345
+ return separators.some(separator => mirrorDraft === clipboardText + separator + expectedBaseDraft)
346
+ ? expectedBaseDraft
347
+ : undefined;
348
+ }
349
+ for (const separator of separators.slice(0, -1)) {
350
+ const prefix = clipboardText + separator;
351
+ if (mirrorDraft.startsWith(prefix))
352
+ return mirrorDraft.slice(prefix.length);
353
+ }
354
+ return mirrorDraft === clipboardText ? '' : undefined;
355
+ }
356
+ /** Describe both the display draft and DSH's persisted clipboard projection. */
357
+ export function conversationAnnotationRecoveryRecord(snapshot) {
358
+ const occurrence = selectionOccurrences(snapshot).find(candidate => candidate.offset === 0);
359
+ const ref = conversationAnnotationReference(snapshot);
360
+ if (occurrence === undefined || ref === undefined)
361
+ return;
362
+ const range = occurrenceRange(snapshot, occurrence, SELECTION_REFERENCE_LABEL);
363
+ if (range === undefined || range.start !== 0)
364
+ return;
365
+ let annotations;
366
+ try {
367
+ annotations = decodeStoredSelectionReference(ref);
368
+ }
369
+ catch {
370
+ return;
371
+ }
372
+ const clipboardText = annotations.map(annotation => annotation.text).join('\n\n');
373
+ const mirrorDraft = exactClipboardProjection(snapshot, occurrence, clipboardText);
374
+ if (mirrorDraft === undefined)
375
+ return;
376
+ const separator = annotationSeparator(snapshot.draft.slice(range.end));
377
+ const mirrorPrefix = clipboardText + separator;
378
+ if (!mirrorDraft.startsWith(mirrorPrefix))
379
+ return;
380
+ return {
381
+ ref,
382
+ displayDraft: snapshot.draft,
383
+ mirrorDraft,
384
+ baseDraft: mirrorDraft.slice(mirrorPrefix.length),
385
+ };
386
+ }
228
387
  /** Return the valid aggregated reference currently occupying the leading draft slot. */
229
388
  export function conversationAnnotationReference(snapshot) {
230
389
  const occurrence = selectionOccurrences(snapshot).find(candidate => candidate.offset === 0);
231
- if (occurrence === undefined || !snapshot.draft.startsWith(OBJECT_REPLACEMENT_CHARACTER))
390
+ if (occurrence === undefined
391
+ || !occurrenceMatchesDraft(snapshot, occurrence, SELECTION_REFERENCE_LABEL))
232
392
  return;
233
393
  try {
234
394
  decodeStoredSelectionReference(occurrence.ref);
@@ -239,11 +399,22 @@ export function conversationAnnotationReference(snapshot) {
239
399
  }
240
400
  }
241
401
  function draftWithoutOrphanedAnnotationPrefix(snapshot) {
242
- const prefix = `${OBJECT_REPLACEMENT_CHARACTER}\n\n`;
243
- if (!snapshot.draft.startsWith(prefix)
244
- || snapshot.occurrences.some(occurrence => occurrence.offset === 0))
402
+ if (snapshot.occurrences.some(occurrence => occurrence.offset === 0))
403
+ return;
404
+ const legacyPrefix = `${LEGACY_REFERENCE_PLACEHOLDER}\n\n`;
405
+ if (snapshot.draft.startsWith(legacyPrefix))
406
+ return snapshot.draft.slice(legacyPrefix.length);
407
+ const display = referenceDisplayText(SELECTION_REFERENCE_LABEL);
408
+ if (!snapshot.draft.startsWith(display))
409
+ return;
410
+ let rest = snapshot.draft.slice(display.length);
411
+ if (rest.startsWith('\n\n'))
412
+ rest = rest.slice(2);
413
+ else if (rest.startsWith(' '))
414
+ rest = rest.slice(1);
415
+ else
245
416
  return;
246
- return snapshot.draft.slice(prefix.length);
417
+ return rest;
247
418
  }
248
419
  /** Remove the plugin-owned prefix when rc.6 restored its draft without occurrences. */
249
420
  export function removeOrphanedConversationAnnotationPlaceholder(input) {
@@ -253,8 +424,8 @@ export function removeOrphanedConversationAnnotationPlaceholder(input) {
253
424
  input.setDraft(draft);
254
425
  return true;
255
426
  }
256
- /** Rehydrate a lost rc.6 occurrence only over the exact plugin-owned orphan prefix. */
257
- export function restoreConversationAnnotationReference(input, ref) {
427
+ /** Rehydrate a lost occurrence over either its display draft or exact mirror projection. */
428
+ export function restoreConversationAnnotationReference(input, ref, expectedMirrorDraft, expectedBaseDraft) {
258
429
  let annotations;
259
430
  try {
260
431
  annotations = decodeStoredSelectionReference(ref);
@@ -262,11 +433,35 @@ export function restoreConversationAnnotationReference(input, ref) {
262
433
  catch {
263
434
  return false;
264
435
  }
265
- const draft = draftWithoutOrphanedAnnotationPrefix(input.state.getSnapshot());
436
+ const snapshot = input.state.getSnapshot();
437
+ const orphanDraft = draftWithoutOrphanedAnnotationPrefix(snapshot);
438
+ const clipboardText = annotations.map(annotation => annotation.text).join('\n\n');
439
+ const mirrorBaseDraft = expectedMirrorDraft === undefined
440
+ ? undefined
441
+ : baseDraftFromMirror(expectedMirrorDraft, clipboardText, expectedBaseDraft);
442
+ const draft = orphanDraft
443
+ ?? (expectedMirrorDraft !== undefined
444
+ && snapshot.occurrences.length === 0
445
+ && snapshot.draft === expectedMirrorDraft
446
+ && mirrorBaseDraft !== undefined
447
+ ? mirrorBaseDraft
448
+ : undefined);
266
449
  if (draft === undefined)
267
450
  return false;
268
- input.setDraft(draft);
269
- return writeConversationAnnotations(input, input.state.getSnapshot(), annotations);
451
+ if (draft !== snapshot.draft)
452
+ input.setDraft(draft);
453
+ const beforeWrite = input.state.getSnapshot();
454
+ if (beforeWrite.draft !== draft || beforeWrite.occurrences.length !== 0)
455
+ return false;
456
+ if (writeConversationAnnotations(input, beforeWrite, annotations))
457
+ return true;
458
+ // Recovery must be content preserving. If DSH rejects insertion, put the
459
+ // exact mirror projection back rather than leaving a partially stripped draft.
460
+ const afterFailure = input.state.getSnapshot();
461
+ if (afterFailure.occurrences.length === 0 && expectedMirrorDraft !== undefined) {
462
+ input.setDraft(expectedMirrorDraft);
463
+ }
464
+ return false;
270
465
  }
271
466
  function unescapeXmlText(value) {
272
467
  return value
@@ -1 +1 @@
1
- {"version":3,"file":"add-to-conversation.js","sourceRoot":"","sources":["../../../src/client/parent-composer/add-to-conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-to-conversation.js","sourceRoot":"","sources":["../../../src/client/parent-composer/add-to-conversation.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ interface AnnotationStorage {
5
5
  setItem(key: string, value: string): void;
6
6
  removeItem(key: string): void;
7
7
  }
8
- /** Tab-scoped recovery for rc.6 drafts that persist U+FFFC without occurrences. */
8
+ /** Tab-scoped recovery for drafts persisted as a reference clipboard projection. */
9
9
  export declare class ConversationAnnotationPersistence {
10
10
  private readonly storage;
11
11
  private readonly observedSessions;
@@ -1 +1 @@
1
- {"version":3,"file":"annotation-persistence.d.ts","sourceRoot":"","sources":["../../../src/client/parent-composer/annotation-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAM1D,OAAO,KAAK,EAAE,mBAAmB,EAA+B,MAAM,0BAA0B,CAAA;AAIhG,UAAU,iBAAiB;IACzB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AA0BD,mFAAmF;AACnF,qBAAa,iCAAiC;IAGhC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;gBAExB,OAAO,GAAE,iBAAiB,GAAG,SAAmC;IAE7F,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAkCjE,OAAO,CAAC,IAAI;IAcZ,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,MAAM;CAQf"}
1
+ {"version":3,"file":"annotation-persistence.d.ts","sourceRoot":"","sources":["../../../src/client/parent-composer/annotation-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAM1D,OAAO,KAAK,EAAE,mBAAmB,EAA+B,MAAM,0BAA0B,CAAA;AAIhG,UAAU,iBAAiB;IACzB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AA6CD,oFAAoF;AACpF,qBAAa,iCAAiC;IAGhC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;gBAExB,OAAO,GAAE,iBAAiB,GAAG,SAAmC;IAE7F,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAiDjE,OAAO,CAAC,IAAI;IA2CZ,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,MAAM;CAQf"}
@@ -1,4 +1,4 @@
1
- import { conversationAnnotationReference, removeOrphanedConversationAnnotationPlaceholder, restoreConversationAnnotationReference, } from './add-to-conversation.js';
1
+ import { conversationAnnotationRecoveryRecord, removeOrphanedConversationAnnotationPlaceholder, restoreConversationAnnotationReference, } from './add-to-conversation.js';
2
2
  const STORAGE_PREFIX = 'dsh-side-chat:composer-annotations:';
3
3
  function browserSessionStorage() {
4
4
  if (typeof window === 'undefined')
@@ -14,10 +14,16 @@ function storageKey(sessionId) {
14
14
  return `${STORAGE_PREFIX}${encodeURIComponent(sessionId)}`;
15
15
  }
16
16
  function recordOf(snapshot) {
17
- const ref = conversationAnnotationReference(snapshot);
18
- return ref === undefined ? undefined : { version: 1, draft: snapshot.draft, ref };
17
+ const record = conversationAnnotationRecoveryRecord(snapshot);
18
+ return record === undefined ? undefined : { version: 2, ...record };
19
19
  }
20
- /** Tab-scoped recovery for rc.6 drafts that persist U+FFFC without occurrences. */
20
+ function displayDraft(record) {
21
+ return record.version === 1 ? record.draft : record.displayDraft;
22
+ }
23
+ function mirrorDraft(record) {
24
+ return record.version === 1 ? record.projection : record.mirrorDraft;
25
+ }
26
+ /** Tab-scoped recovery for drafts persisted as a reference clipboard projection. */
21
27
  export class ConversationAnnotationPersistence {
22
28
  storage;
23
29
  observedSessions = new Set();
@@ -34,13 +40,24 @@ export class ConversationAnnotationPersistence {
34
40
  return;
35
41
  }
36
42
  const stored = this.read(key);
37
- if (stored !== undefined && snapshot.draft === stored.draft) {
38
- this.observedSessions.add(key);
39
- if (restoreConversationAnnotationReference(input, stored.ref))
43
+ if (stored !== undefined) {
44
+ const exactDisplayDraft = snapshot.draft === displayDraft(stored);
45
+ const storedMirrorDraft = mirrorDraft(stored);
46
+ const exactMirrorDraft = storedMirrorDraft !== undefined && snapshot.draft === storedMirrorDraft;
47
+ if (exactDisplayDraft || exactMirrorDraft) {
48
+ this.observedSessions.add(key);
49
+ const restored = restoreConversationAnnotationReference(input, stored.ref, storedMirrorDraft, stored.version === 2 ? stored.baseDraft : undefined);
50
+ if (restored)
51
+ return;
52
+ // A refused insertion may move an exact display record to its exact
53
+ // mirror. Keep either v1 or v2 storage retryable from that safe state.
54
+ if (storedMirrorDraft !== undefined
55
+ && input.state.getSnapshot().draft === storedMirrorDraft)
56
+ return;
57
+ this.remove(key);
58
+ removeOrphanedConversationAnnotationPlaceholder(input);
40
59
  return;
41
- this.remove(key);
42
- removeOrphanedConversationAnnotationPlaceholder(input);
43
- return;
60
+ }
44
61
  }
45
62
  // A live occurrence disappeared in this plugin lifetime: removal or send
46
63
  // is authoritative, including the transition to an empty draft.
@@ -65,8 +82,29 @@ export class ConversationAnnotationPersistence {
65
82
  if (raw === null)
66
83
  return;
67
84
  const value = JSON.parse(raw);
68
- return value.version === 1 && typeof value.draft === 'string' && typeof value.ref === 'string'
69
- ? { version: 1, draft: value.draft, ref: value.ref }
85
+ if (value.version === 1
86
+ && typeof value.draft === 'string'
87
+ && typeof value.ref === 'string'
88
+ && (value.projection === undefined || typeof value.projection === 'string')) {
89
+ return {
90
+ version: 1,
91
+ draft: value.draft,
92
+ ...(value.projection === undefined ? {} : { projection: value.projection }),
93
+ ref: value.ref,
94
+ };
95
+ }
96
+ return value.version === 2
97
+ && typeof value.displayDraft === 'string'
98
+ && typeof value.mirrorDraft === 'string'
99
+ && typeof value.baseDraft === 'string'
100
+ && typeof value.ref === 'string'
101
+ ? {
102
+ version: 2,
103
+ displayDraft: value.displayDraft,
104
+ mirrorDraft: value.mirrorDraft,
105
+ baseDraft: value.baseDraft,
106
+ ref: value.ref,
107
+ }
70
108
  : undefined;
71
109
  }
72
110
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"annotation-persistence.js","sourceRoot":"","sources":["../../../src/client/parent-composer/annotation-persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"annotation-persistence.js","sourceRoot":"","sources":["../../../src/client/parent-composer/annotation-persistence.ts"],"names":[],"mappings":"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"}