@ahggg/dsh-side-chat 0.1.0-alpha.1

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 (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +114 -0
  3. package/README.zh-CN.md +114 -0
  4. package/cordis.patch.yml +3 -0
  5. package/lib/client/apply.d.ts +5 -0
  6. package/lib/client/apply.d.ts.map +1 -0
  7. package/lib/client/apply.js +35 -0
  8. package/lib/client/apply.js.map +1 -0
  9. package/lib/client/contracts.d.ts +76 -0
  10. package/lib/client/contracts.d.ts.map +1 -0
  11. package/lib/client/contracts.js +2 -0
  12. package/lib/client/contracts.js.map +1 -0
  13. package/lib/client/index.d.ts +11 -0
  14. package/lib/client/index.d.ts.map +1 -0
  15. package/lib/client/index.js +9 -0
  16. package/lib/client/index.js.map +1 -0
  17. package/lib/client/panel/SelectionQuote.d.ts +10 -0
  18. package/lib/client/panel/SelectionQuote.d.ts.map +1 -0
  19. package/lib/client/panel/SelectionQuote.js +8 -0
  20. package/lib/client/panel/SelectionQuote.js.map +1 -0
  21. package/lib/client/panel/SendIcon.d.ts +3 -0
  22. package/lib/client/panel/SendIcon.d.ts.map +1 -0
  23. package/lib/client/panel/SendIcon.js +6 -0
  24. package/lib/client/panel/SendIcon.js.map +1 -0
  25. package/lib/client/panel/SideChatBody.d.ts +6 -0
  26. package/lib/client/panel/SideChatBody.d.ts.map +1 -0
  27. package/lib/client/panel/SideChatBody.js +6 -0
  28. package/lib/client/panel/SideChatBody.js.map +1 -0
  29. package/lib/client/panel/SideChatErrorState.d.ts +9 -0
  30. package/lib/client/panel/SideChatErrorState.d.ts.map +1 -0
  31. package/lib/client/panel/SideChatErrorState.js +6 -0
  32. package/lib/client/panel/SideChatErrorState.js.map +1 -0
  33. package/lib/client/panel/SideChatHeader.d.ts +9 -0
  34. package/lib/client/panel/SideChatHeader.d.ts.map +1 -0
  35. package/lib/client/panel/SideChatHeader.js +5 -0
  36. package/lib/client/panel/SideChatHeader.js.map +1 -0
  37. package/lib/client/panel/SideChatPanel.d.ts +17 -0
  38. package/lib/client/panel/SideChatPanel.d.ts.map +1 -0
  39. package/lib/client/panel/SideChatPanel.js +35 -0
  40. package/lib/client/panel/SideChatPanel.js.map +1 -0
  41. package/lib/client/panel/messages.d.ts +22 -0
  42. package/lib/client/panel/messages.d.ts.map +1 -0
  43. package/lib/client/panel/messages.js +43 -0
  44. package/lib/client/panel/messages.js.map +1 -0
  45. package/lib/client/panel/use-auto-growing-textarea.d.ts +3 -0
  46. package/lib/client/panel/use-auto-growing-textarea.d.ts.map +1 -0
  47. package/lib/client/panel/use-auto-growing-textarea.js +21 -0
  48. package/lib/client/panel/use-auto-growing-textarea.js.map +1 -0
  49. package/lib/client/parent-composer/add-to-conversation.d.ts +4 -0
  50. package/lib/client/parent-composer/add-to-conversation.d.ts.map +1 -0
  51. package/lib/client/parent-composer/add-to-conversation.js +25 -0
  52. package/lib/client/parent-composer/add-to-conversation.js.map +1 -0
  53. package/lib/client/rc6/ArchivedConversation.d.ts +13 -0
  54. package/lib/client/rc6/ArchivedConversation.d.ts.map +1 -0
  55. package/lib/client/rc6/ArchivedConversation.js +170 -0
  56. package/lib/client/rc6/ArchivedConversation.js.map +1 -0
  57. package/lib/client/rc6/Rc6SideChatOverlay.d.ts +8 -0
  58. package/lib/client/rc6/Rc6SideChatOverlay.d.ts.map +1 -0
  59. package/lib/client/rc6/Rc6SideChatOverlay.js +136 -0
  60. package/lib/client/rc6/Rc6SideChatOverlay.js.map +1 -0
  61. package/lib/client/rc6/context.d.ts +10 -0
  62. package/lib/client/rc6/context.d.ts.map +1 -0
  63. package/lib/client/rc6/context.js +2 -0
  64. package/lib/client/rc6/context.js.map +1 -0
  65. package/lib/client/rc6/remote-adapter.d.ts +7 -0
  66. package/lib/client/rc6/remote-adapter.d.ts.map +1 -0
  67. package/lib/client/rc6/remote-adapter.js +29 -0
  68. package/lib/client/rc6/remote-adapter.js.map +1 -0
  69. package/lib/client/rc6/sessions-adapter.d.ts +34 -0
  70. package/lib/client/rc6/sessions-adapter.d.ts.map +1 -0
  71. package/lib/client/rc6/sessions-adapter.js +252 -0
  72. package/lib/client/rc6/sessions-adapter.js.map +1 -0
  73. package/lib/client/selection/SelectionActions.d.ts +9 -0
  74. package/lib/client/selection/SelectionActions.d.ts.map +1 -0
  75. package/lib/client/selection/SelectionActions.js +20 -0
  76. package/lib/client/selection/SelectionActions.js.map +1 -0
  77. package/lib/client/selection/selection-controller.d.ts +26 -0
  78. package/lib/client/selection/selection-controller.d.ts.map +1 -0
  79. package/lib/client/selection/selection-controller.js +111 -0
  80. package/lib/client/selection/selection-controller.js.map +1 -0
  81. package/lib/client/selection/selection-limits.d.ts +7 -0
  82. package/lib/client/selection/selection-limits.d.ts.map +1 -0
  83. package/lib/client/selection/selection-limits.js +19 -0
  84. package/lib/client/selection/selection-limits.js.map +1 -0
  85. package/lib/client/selection/selection-normalizer.d.ts +16 -0
  86. package/lib/client/selection/selection-normalizer.d.ts.map +1 -0
  87. package/lib/client/selection/selection-normalizer.js +48 -0
  88. package/lib/client/selection/selection-normalizer.js.map +1 -0
  89. package/lib/client/side-chat-controller.d.ts +55 -0
  90. package/lib/client/side-chat-controller.d.ts.map +1 -0
  91. package/lib/client/side-chat-controller.js +379 -0
  92. package/lib/client/side-chat-controller.js.map +1 -0
  93. package/lib/client.js +5988 -0
  94. package/lib/client.js.map +1 -0
  95. package/lib/host/archived-fork-service.d.ts +27 -0
  96. package/lib/host/archived-fork-service.d.ts.map +1 -0
  97. package/lib/host/archived-fork-service.js +186 -0
  98. package/lib/host/archived-fork-service.js.map +1 -0
  99. package/lib/host/index.d.ts +2 -0
  100. package/lib/host/index.d.ts.map +1 -0
  101. package/lib/host/index.js +2 -0
  102. package/lib/host/index.js.map +1 -0
  103. package/lib/index.d.ts +23 -0
  104. package/lib/index.d.ts.map +1 -0
  105. package/lib/index.js +24 -0
  106. package/lib/index.js.map +1 -0
  107. package/lib/remote.d.ts +22 -0
  108. package/lib/remote.d.ts.map +1 -0
  109. package/lib/remote.js +8 -0
  110. package/lib/remote.js.map +1 -0
  111. package/lib/shared/archived-wire.d.ts +100 -0
  112. package/lib/shared/archived-wire.d.ts.map +1 -0
  113. package/lib/shared/archived-wire.js +31 -0
  114. package/lib/shared/archived-wire.js.map +1 -0
  115. package/lib/shared/constants.d.ts +16 -0
  116. package/lib/shared/constants.d.ts.map +1 -0
  117. package/lib/shared/constants.js +16 -0
  118. package/lib/shared/constants.js.map +1 -0
  119. package/lib/shared/contracts.d.ts +92 -0
  120. package/lib/shared/contracts.d.ts.map +1 -0
  121. package/lib/shared/contracts.js +4 -0
  122. package/lib/shared/contracts.js.map +1 -0
  123. package/lib/shared/error-codes.d.ts +4 -0
  124. package/lib/shared/error-codes.d.ts.map +1 -0
  125. package/lib/shared/error-codes.js +25 -0
  126. package/lib/shared/error-codes.js.map +1 -0
  127. package/lib/shared/observable.d.ts +22 -0
  128. package/lib/shared/observable.d.ts.map +1 -0
  129. package/lib/shared/observable.js +40 -0
  130. package/lib/shared/observable.js.map +1 -0
  131. package/lib/typert.d.ts +80 -0
  132. package/lib/typert.d.ts.map +1 -0
  133. package/lib/typert.js +40 -0
  134. package/lib/typert.js.map +1 -0
  135. package/package.json +126 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SideChatPanel.js","sourceRoot":"","sources":["../../../src/client/panel/SideChatPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface SideChatMessages {
2
+ readonly title: string;
3
+ readonly close: string;
4
+ readonly placeholder: string;
5
+ readonly send: string;
6
+ readonly selectedPassage: string;
7
+ readonly selectionAttachment: string;
8
+ readonly selectionPreviewLabel: string;
9
+ readonly removeSelection: string;
10
+ readonly expand: string;
11
+ readonly collapse: string;
12
+ readonly copy: string;
13
+ readonly temporary: string;
14
+ readonly referenceOnly: string;
15
+ readonly cannotReopen: string;
16
+ readonly sharedWorkspace: string;
17
+ readonly retry: string;
18
+ readonly genericError: string;
19
+ readonly closeError: string;
20
+ }
21
+ export declare const SIDE_CHAT_MESSAGES: Readonly<Record<'en' | 'zh-CN', SideChatMessages>>;
22
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/client/panel/messages.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,EAAE,gBAAgB,CAAC,CAyChF,CAAA"}
@@ -0,0 +1,43 @@
1
+ export const SIDE_CHAT_MESSAGES = Object.freeze({
2
+ en: Object.freeze({
3
+ title: 'Side Chat',
4
+ close: 'Close Side Chat',
5
+ placeholder: 'Ask about this in a Side Chat',
6
+ send: 'Send',
7
+ selectedPassage: 'Selected passage',
8
+ selectionAttachment: '1 annotation',
9
+ selectionPreviewLabel: 'Selected text',
10
+ removeSelection: 'Remove annotation',
11
+ expand: 'Expand',
12
+ collapse: 'Collapse',
13
+ copy: 'Copy',
14
+ temporary: 'Archived when closed; history remains on disk',
15
+ referenceOnly: 'Inherits the complete parent conversation prefix',
16
+ cannotReopen: 'No reopen action',
17
+ sharedWorkspace: 'Shares the parent workspace',
18
+ retry: 'Retry',
19
+ genericError: 'Side Chat error',
20
+ closeError: 'Could not close the Side Chat',
21
+ }),
22
+ 'zh-CN': Object.freeze({
23
+ title: '侧边对话',
24
+ close: '关闭侧边对话',
25
+ placeholder: '在侧边对话中询问这段内容',
26
+ send: '发送',
27
+ selectedPassage: '所选段落',
28
+ selectionAttachment: '1 条引用',
29
+ selectionPreviewLabel: '所选文本',
30
+ removeSelection: '移除引用',
31
+ expand: '展开',
32
+ collapse: '收起',
33
+ copy: '复制',
34
+ temporary: '关闭时归档;历史仍保存在磁盘上',
35
+ referenceOnly: '完整继承父会话对话前缀',
36
+ cannotReopen: '不提供重新打开操作',
37
+ sharedWorkspace: '与父会话共享工作区',
38
+ retry: '重试',
39
+ genericError: '侧边对话错误',
40
+ closeError: '无法关闭侧边对话',
41
+ }),
42
+ });
43
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/client/panel/messages.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,kBAAkB,GAAuD,MAAM,CAAC,MAAM,CAAC;IAClG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;QAChB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,kBAAkB;QACnC,mBAAmB,EAAE,cAAc;QACnC,qBAAqB,EAAE,eAAe;QACtC,eAAe,EAAE,mBAAmB;QACpC,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,+CAA+C;QAC1D,aAAa,EAAE,kDAAkD;QACjE,YAAY,EAAE,kBAAkB;QAChC,eAAe,EAAE,6BAA6B;QAC9C,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,iBAAiB;QAC/B,UAAU,EAAE,+BAA+B;KAC5C,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,IAAI;QACV,eAAe,EAAE,MAAM;QACvB,mBAAmB,EAAE,OAAO;QAC5B,qBAAqB,EAAE,MAAM;QAC7B,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,iBAAiB;QAC5B,aAAa,EAAE,aAAa;QAC5B,YAAY,EAAE,WAAW;QACzB,eAAe,EAAE,WAAW;QAC5B,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,UAAU;KACvB,CAAC;CACH,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** Keep a textarea one line tall until its content reaches the CSS max-height. */
2
+ export declare function useAutoGrowingTextarea(value: string): import("react").RefObject<HTMLTextAreaElement>;
3
+ //# sourceMappingURL=use-auto-growing-textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-auto-growing-textarea.d.ts","sourceRoot":"","sources":["../../../src/client/panel/use-auto-growing-textarea.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,kDAkBnD"}
@@ -0,0 +1,21 @@
1
+ import { useLayoutEffect, useRef } from 'react';
2
+ /** Keep a textarea one line tall until its content reaches the CSS max-height. */
3
+ export function useAutoGrowingTextarea(value) {
4
+ const ref = useRef(null);
5
+ useLayoutEffect(() => {
6
+ const textarea = ref.current;
7
+ if (textarea === null)
8
+ return;
9
+ textarea.style.height = 'auto';
10
+ const maxHeight = Number.parseFloat(getComputedStyle(textarea).maxHeight);
11
+ const height = Number.isFinite(maxHeight)
12
+ ? Math.min(textarea.scrollHeight, maxHeight)
13
+ : textarea.scrollHeight;
14
+ textarea.style.height = `${String(height)}px`;
15
+ textarea.style.overflowY = Number.isFinite(maxHeight) && textarea.scrollHeight > maxHeight
16
+ ? 'auto'
17
+ : 'hidden';
18
+ }, [value]);
19
+ return ref;
20
+ }
21
+ //# sourceMappingURL=use-auto-growing-textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-auto-growing-textarea.js","sourceRoot":"","sources":["../../../src/client/panel/use-auto-growing-textarea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAE/C,kFAAkF;AAClF,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,GAAG,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAA;IAE7C,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAA;QAC5B,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAM;QAC7B,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;YAC5C,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAA;QACzB,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAA;QAC7C,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,YAAY,GAAG,SAAS;YACxF,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,QAAQ,CAAA;IACd,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ConversationSelection, SideChatPromptPart } from '../../shared/contracts.js';
2
+ /** Add the selected quote to the first child prompt. */
3
+ export declare function buildSideChatPrompt(selection: ConversationSelection | undefined, question: string): readonly SideChatPromptPart[];
4
+ //# sourceMappingURL=add-to-conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-to-conversation.d.ts","sourceRoot":"","sources":["../../../src/client/parent-composer/add-to-conversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAS1F,wDAAwD;AACxD,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,qBAAqB,GAAG,SAAS,EAC5C,QAAQ,EAAE,MAAM,GACf,SAAS,kBAAkB,EAAE,CAe/B"}
@@ -0,0 +1,25 @@
1
+ function escapeXmlText(value) {
2
+ return value
3
+ .replaceAll('&', '&amp;')
4
+ .replaceAll('<', '&lt;')
5
+ .replaceAll('>', '&gt;');
6
+ }
7
+ /** Add the selected quote to the first child prompt. */
8
+ export function buildSideChatPrompt(selection, question) {
9
+ const trimmed = question.trim();
10
+ if (selection === undefined)
11
+ return [{ type: 'text', text: trimmed }];
12
+ return [{
13
+ type: 'text',
14
+ text: [
15
+ `<selected_context source="current-conversation" event-seq="${selection.atSeq}">`,
16
+ escapeXmlText(selection.text),
17
+ '</selected_context>',
18
+ '',
19
+ '<user_question>',
20
+ escapeXmlText(trimmed),
21
+ '</user_question>',
22
+ ].join('\n'),
23
+ }];
24
+ }
25
+ //# sourceMappingURL=add-to-conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-to-conversation.js","sourceRoot":"","sources":["../../../src/client/parent-composer/add-to-conversation.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AAC5B,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB,CACjC,SAA4C,EAC5C,QAAgB;IAEhB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC/B,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IACrE,OAAO,CAAC;YACN,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACJ,8DAA8D,SAAS,CAAC,KAAK,IAAI;gBACjF,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC7B,qBAAqB;gBACrB,EAAE;gBACF,iBAAiB;gBACjB,aAAa,CAAC,OAAO,CAAC;gBACtB,kBAAkB;aACnB,CAAC,IAAI,CAAC,IAAI,CAAC;SACb,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { SessionFace } from '@deepseek-ai/dsh-client-runtime/client';
2
+ import type { ConversationSelection } from '../../shared/contracts.js';
3
+ import type { SideChatController } from '../side-chat-controller.js';
4
+ /** Functional rc.6 conversation surface bound to a non-current child Session. */
5
+ export declare function ArchivedConversation({ face, inheritedThroughSeq, controller, selection, locale, onCopySelection, }: {
6
+ readonly face: SessionFace;
7
+ readonly inheritedThroughSeq: number;
8
+ readonly controller: SideChatController;
9
+ readonly selection?: ConversationSelection;
10
+ readonly locale?: 'en' | 'zh-CN';
11
+ readonly onCopySelection?: (text: string) => void;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=ArchivedConversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchivedConversation.d.ts","sourceRoot":"","sources":["../../../src/client/rc6/ArchivedConversation.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAKV,WAAW,EACZ,MAAM,wCAAwC,CAAA;AAE/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAuOpE,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,MAAa,EACb,eAAe,GAChB,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,CAAA;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAClD,2CAmGA"}
@@ -0,0 +1,170 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useRef, useState, useSyncExternalStore, } from 'react';
3
+ import { SIDE_CHAT_MESSAGES } from '../panel/messages.js';
4
+ import { SelectionQuote } from '../panel/SelectionQuote.js';
5
+ import { SendIcon } from '../panel/SendIcon.js';
6
+ import { useAutoGrowingTextarea } from '../panel/use-auto-growing-textarea.js';
7
+ function stringify(value) {
8
+ if (typeof value === 'string')
9
+ return value;
10
+ try {
11
+ return JSON.stringify(value, null, 2);
12
+ }
13
+ catch {
14
+ return String(value);
15
+ }
16
+ }
17
+ function contentText(content) {
18
+ return content.map((block) => {
19
+ if (block.type === 'text' || block.type === 'reasoning')
20
+ return block.text;
21
+ if (block.type === 'image')
22
+ return '[Image]';
23
+ if (block.type === 'tool-call')
24
+ return `${block.name}(${block.arguments})`;
25
+ if (block.type === 'tool-result')
26
+ return contentText(block.content);
27
+ return stringify(block);
28
+ }).filter(Boolean).join('\n');
29
+ }
30
+ function firstSideChatQuestion(text) {
31
+ const match = /<user_question>([\s\S]*?)<\/user_question>/u.exec(text);
32
+ return match?.[1]?.trim() ?? text;
33
+ }
34
+ function AssistantBlocks({ blocks }) {
35
+ return _jsx(_Fragment, { children: blocks.map((block, index) => {
36
+ const key = `${block.kind}-${String(index)}`;
37
+ if (block.kind === 'text')
38
+ return _jsx("div", { className: "dsh-side-chat-message-text", children: block.text }, key);
39
+ if (block.kind === 'reasoning') {
40
+ return _jsxs("details", { className: "dsh-side-chat-reasoning", children: [_jsx("summary", { children: "Reasoning" }), _jsx("pre", { children: block.text })] }, key);
41
+ }
42
+ if (block.kind === 'image')
43
+ return _jsx("div", { children: "[Image attachment]" }, key);
44
+ if (block.kind === 'tool-call') {
45
+ return _jsxs("details", { className: "dsh-side-chat-tool", children: [_jsxs("summary", { children: ["Tool \u00B7 ", block.name] }), _jsx("pre", { children: block.argsRaw })] }, key);
46
+ }
47
+ return _jsx("pre", { children: stringify(block.block) }, key);
48
+ }) });
49
+ }
50
+ function MessageRow({ node }) {
51
+ if (node.kind === 'user' || node.kind === 'steering') {
52
+ return (_jsxs("article", { className: "dsh-side-chat-message", "data-role": "user", children: [_jsx("span", { className: "dsh-side-chat-message-role", children: "You" }), _jsx("div", { className: "dsh-side-chat-message-text", children: firstSideChatQuestion(contentText(node.content)) })] }));
53
+ }
54
+ if (node.kind === 'assistant') {
55
+ return (_jsxs("article", { className: "dsh-side-chat-message", "data-role": "assistant", children: [_jsx("span", { className: "dsh-side-chat-message-role", children: "Assistant" }), _jsx(AssistantBlocks, { blocks: node.blocks }), node.interrupted === true && _jsx("span", { className: "dsh-side-chat-message-note", children: "Stopped" })] }));
56
+ }
57
+ if (node.kind === 'context') {
58
+ return (_jsxs("details", { className: "dsh-side-chat-message dsh-side-chat-context-message", children: [_jsxs("summary", { children: ["Context \u00B7 ", node.provenance.label ?? node.provenance.role] }), _jsx("pre", { children: contentText(node.content) })] }));
59
+ }
60
+ if (node.kind === 'tool-result') {
61
+ return (_jsxs("details", { className: "dsh-side-chat-message dsh-side-chat-tool", open: node.isError || undefined, children: [_jsxs("summary", { children: [node.isError ? 'Tool failed' : 'Tool result', " \u00B7 ", node.call?.name ?? node.callId] }), _jsx("pre", { children: contentText(node.content) })] }));
62
+ }
63
+ if (node.kind === 'turn-error') {
64
+ return _jsx("div", { className: "dsh-side-chat-turn-notice", role: "alert", children: node.message });
65
+ }
66
+ if (node.kind === 'turn-max-tokens') {
67
+ return _jsx("div", { className: "dsh-side-chat-turn-notice", children: "The response reached its output-token limit." });
68
+ }
69
+ if (node.kind === 'model-retry') {
70
+ return _jsxs("div", { className: "dsh-side-chat-turn-notice", children: ["Model retry: ", node.retryState] });
71
+ }
72
+ if (node.kind === 'command') {
73
+ return _jsxs("div", { className: "dsh-side-chat-turn-notice", children: ["/", node.name ?? 'command', " ", node.outcome?.text ?? ''] });
74
+ }
75
+ if (node.kind === 'compaction') {
76
+ return _jsxs("details", { className: "dsh-side-chat-turn-notice", children: [_jsx("summary", { children: "Context compacted" }), _jsx("pre", { children: node.summary })] });
77
+ }
78
+ return _jsxs("details", { className: "dsh-side-chat-turn-notice", children: [_jsx("summary", { children: node.type }), _jsx("pre", { children: stringify(node.data) })] });
79
+ }
80
+ function ApprovalCard({ wait, onRespond, }) {
81
+ return (_jsxs("section", { className: "dsh-side-chat-interaction", "aria-label": "Tool approval required", children: [_jsxs("strong", { children: ["Allow tool: ", wait.payload.toolName, "?"] }), wait.payload.reason !== undefined && _jsx("p", { children: wait.payload.reason }), _jsxs("div", { className: "dsh-side-chat-interaction-actions", children: [_jsx("button", { type: "button", onClick: () => { onRespond('decline'); }, children: "Decline" }), _jsx("button", { type: "button", onClick: () => { onRespond('approve'); }, children: "Allow once" })] })] }));
82
+ }
83
+ function QuestionCard({ wait, onRespond, }) {
84
+ const questions = wait.payload.questions;
85
+ const [answers, setAnswers] = useState(() => Object.fromEntries(questions.map(question => [question.id, { selected: [], custom: '' }])));
86
+ const update = (id, answer) => {
87
+ setAnswers(current => ({ ...current, [id]: answer }));
88
+ };
89
+ const submit = () => {
90
+ onRespond({
91
+ answers: questions.map((question) => {
92
+ const answer = answers[question.id] ?? { selected: [], custom: '' };
93
+ const custom = answer.custom.trim();
94
+ return {
95
+ id: question.id,
96
+ selected: [...answer.selected],
97
+ ...(custom.length === 0 ? {} : { custom }),
98
+ };
99
+ }),
100
+ });
101
+ };
102
+ return (_jsxs("section", { className: "dsh-side-chat-interaction", "aria-label": "Assistant question", children: [questions.map((question) => {
103
+ const answer = answers[question.id] ?? { selected: [], custom: '' };
104
+ return (_jsxs("fieldset", { children: [_jsx("legend", { children: question.header === undefined ? question.question : `${question.header} · ${question.question}` }), question.detail !== undefined && _jsx("p", { children: question.detail }), question.options?.map(option => (_jsxs("label", { className: "dsh-side-chat-question-option", children: [_jsx("input", { type: question.multiSelect === true ? 'checkbox' : 'radio', name: `${wait.key}-${question.id}`, checked: answer.selected.includes(option.label), onChange: (event) => {
105
+ const selected = question.multiSelect === true
106
+ ? event.target.checked
107
+ ? [...answer.selected, option.label]
108
+ : answer.selected.filter(value => value !== option.label)
109
+ : [option.label];
110
+ update(question.id, { ...answer, selected });
111
+ } }), _jsxs("span", { children: [_jsx("strong", { children: option.label }), option.description === undefined ? '' : ` — ${option.description}`] })] }, option.label))), _jsx("textarea", { rows: 2, value: answer.custom, placeholder: question.options === undefined ? 'Your answer' : 'Other (optional)', onChange: (event) => { update(question.id, { ...answer, custom: event.target.value }); } })] }, question.id));
112
+ }), _jsxs("div", { className: "dsh-side-chat-interaction-actions", children: [_jsx("button", { type: "button", onClick: () => { onRespond(null); }, children: "Cancel" }), _jsx("button", { type: "button", onClick: submit, children: "Submit" })] })] }));
113
+ }
114
+ function PendingCards({ pending, controller, }) {
115
+ return _jsx(_Fragment, { children: pending.map((wait) => wait.kind === 'approval'
116
+ ? (_jsx(ApprovalCard, { wait: wait, onRespond: (decision) => { void controller.respondApproval(wait.key, decision); } }, wait.key))
117
+ : (_jsx(QuestionCard, { wait: wait, onRespond: (answer) => { void controller.respondQuestion(wait.key, answer); } }, wait.key))) });
118
+ }
119
+ function QueueRows({ queue, controller }) {
120
+ if (queue.length === 0)
121
+ return null;
122
+ return (_jsxs("section", { className: "dsh-side-chat-queue", "aria-label": "Queued Side Chat messages", children: [_jsx("strong", { children: "Queued" }), queue.filter(item => item.placement === 'queued').map(item => (_jsxs("div", { children: [_jsx("span", { children: item.preview }), _jsx("button", { type: "button", onClick: () => { void controller.updateQueue(item.id, { kind: 'remove' }); }, children: "Remove" })] }, item.id)))] }));
123
+ }
124
+ /** Functional rc.6 conversation surface bound to a non-current child Session. */
125
+ export function ArchivedConversation({ face, inheritedThroughSeq, controller, selection, locale = 'en', onCopySelection, }) {
126
+ const snapshot = useSyncExternalStore(listener => face.subscribe(listener), () => face.getSnapshot(), () => face.getSnapshot());
127
+ const [draft, setDraft] = useState('');
128
+ const [sending, setSending] = useState(false);
129
+ const draftRef = useAutoGrowingTextarea(draft);
130
+ const scrollRef = useRef(null);
131
+ const nodes = useMemo(() => snapshot.nodes.filter(node => node.seq > inheritedThroughSeq), [snapshot.nodes, inheritedThroughSeq]);
132
+ const annotatedUserNode = selection === undefined
133
+ ? undefined
134
+ : nodes.find(node => node.kind === 'user' || node.kind === 'steering');
135
+ useEffect(() => {
136
+ const element = scrollRef.current;
137
+ if (element !== null)
138
+ element.scrollTop = element.scrollHeight;
139
+ }, [nodes.length, snapshot.partial, snapshot.pending.length, snapshot.queue.length]);
140
+ const submit = async (event) => {
141
+ event.preventDefault();
142
+ const text = draft.trim();
143
+ if (text.length === 0 || sending)
144
+ return;
145
+ setSending(true);
146
+ try {
147
+ const result = await controller.send(text, snapshot.running ? 'steer' : 'queue');
148
+ if (result.ok)
149
+ setDraft('');
150
+ }
151
+ finally {
152
+ setSending(false);
153
+ }
154
+ };
155
+ if (snapshot.openState === 'cold' || snapshot.openState === 'loading') {
156
+ return _jsx("div", { className: "dsh-side-chat-loading", children: "Loading Side Chat\u2026" });
157
+ }
158
+ if (snapshot.openState === 'error') {
159
+ return _jsx("div", { className: "dsh-side-chat-loading", role: "alert", children: "Could not load Side Chat history." });
160
+ }
161
+ return (_jsxs("div", { className: "dsh-side-chat-conversation", children: [_jsxs("div", { ref: scrollRef, className: "dsh-side-chat-transcript", "aria-live": "polite", children: [nodes.map(node => selection !== undefined && node === annotatedUserNode
162
+ ? (_jsxs("div", { className: "dsh-side-chat-annotated-user-message", children: [_jsx(SelectionQuote, { selection: selection, messages: SIDE_CHAT_MESSAGES[locale], ...onCopySelection === undefined ? {} : { onCopy: onCopySelection } }), _jsx(MessageRow, { node: node })] }, `${node.kind}-${String(node.seq)}`))
163
+ : _jsx(MessageRow, { node: node }, `${node.kind}-${String(node.seq)}`)), snapshot.partial !== null && (_jsxs("article", { className: "dsh-side-chat-message", "data-role": "assistant", children: [_jsx("span", { className: "dsh-side-chat-message-role", children: "Assistant" }), _jsx(AssistantBlocks, { blocks: snapshot.partial.blocks })] })), snapshot.runningCalls.map(call => (_jsxs("details", { className: "dsh-side-chat-message dsh-side-chat-tool", children: [_jsxs("summary", { children: ["Running tool \u00B7 ", call.name] }), _jsx("pre", { children: call.argsRaw })] }, call.callId))), _jsx(PendingCards, { pending: snapshot.pending, controller: controller }), _jsx(QueueRows, { queue: snapshot.queue, controller: controller }), snapshot.promptError !== null && _jsx("div", { className: "dsh-side-chat-turn-notice", role: "alert", children: snapshot.promptError.error.message })] }), _jsxs("form", { className: "dsh-side-chat-composer", onSubmit: (event) => { void submit(event); }, children: [_jsx("textarea", { ref: draftRef, rows: 1, value: draft, placeholder: snapshot.running ? 'Steer the current response' : 'Reply in Side Chat', onChange: (event) => { setDraft(event.target.value); }, onKeyDown: (event) => {
164
+ if (event.key === 'Enter' && !event.shiftKey) {
165
+ event.preventDefault();
166
+ event.currentTarget.form?.requestSubmit();
167
+ }
168
+ } }), _jsxs("div", { children: [snapshot.running && _jsx("button", { type: "button", onClick: () => { void controller.cancel(); }, children: "Stop" }), _jsx("button", { type: "submit", className: "dsh-side-chat-send-button", "aria-label": snapshot.running ? 'Steer' : 'Send', disabled: sending || draft.trim().length === 0, children: _jsx(SendIcon, {}) })] })] })] }));
169
+ }
170
+ //# sourceMappingURL=ArchivedConversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchivedConversation.js","sourceRoot":"","sources":["../../../src/client/rc6/ArchivedConversation.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { SideChatController } from '../side-chat-controller.js';
2
+ import { Rc6SideChatSessions } from './sessions-adapter.js';
3
+ /** rc.6 compatibility surface: selection toolbar plus a non-current child conversation panel. */
4
+ export declare function Rc6SideChatOverlay({ controller, sessions, }: {
5
+ readonly controller: SideChatController;
6
+ readonly sessions: Rc6SideChatSessions;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=Rc6SideChatOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rc6SideChatOverlay.d.ts","sourceRoot":"","sources":["../../../src/client/rc6/Rc6SideChatOverlay.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAKpE,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAA;AAShF,iGAAiG;AACjG,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;CACvC,2CAwJA"}
@@ -0,0 +1,136 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState, useSyncExternalStore, } from 'react';
3
+ import { SideChatPanel } from '../panel/SideChatPanel.js';
4
+ import { captureDomConversationSelection } from '../selection/selection-controller.js';
5
+ import { SelectionActions } from '../selection/SelectionActions.js';
6
+ import { ArchivedConversation } from './ArchivedConversation.js';
7
+ import { Rc6SideChatSessions, selectionDescriptor } from './sessions-adapter.js';
8
+ function captureEvent(event) {
9
+ if (event instanceof KeyboardEvent && event.key === 'Escape')
10
+ return false;
11
+ const target = event.target;
12
+ return !(target instanceof Element
13
+ && target.closest('[data-side-chat-panel], .dsh-side-chat-selection-actions') !== null);
14
+ }
15
+ /** rc.6 compatibility surface: selection toolbar plus a non-current child conversation panel. */
16
+ export function Rc6SideChatOverlay({ controller, sessions, }) {
17
+ const state = useSyncExternalStore(controller.subscribe, controller.getSnapshot, controller.getSnapshot);
18
+ const currentSessionId = useSyncExternalStore(sessions.subscribeList, () => sessions.currentSessionId(), () => sessions.currentSessionId());
19
+ const [selection, setSelection] = useState(null);
20
+ const captureGeneration = useRef(0);
21
+ const mouseDownPoint = useRef(null);
22
+ const capture = useCallback(async () => {
23
+ const generation = ++captureGeneration.current;
24
+ const parentSessionId = sessions.currentSessionId();
25
+ const face = parentSessionId === undefined ? undefined : sessions.face(parentSessionId);
26
+ const conversationRoot = document.querySelector('[data-chat-flow]');
27
+ const browserSelection = window.getSelection();
28
+ if (parentSessionId === undefined
29
+ || face === undefined
30
+ || conversationRoot === null
31
+ || browserSelection === null
32
+ || browserSelection.isCollapsed) {
33
+ if (generation === captureGeneration.current)
34
+ setSelection(null);
35
+ return;
36
+ }
37
+ const snapshot = face.getSnapshot();
38
+ try {
39
+ const captured = await captureDomConversationSelection({
40
+ selection: browserSelection,
41
+ conversationRoot,
42
+ parentSessionId,
43
+ resolver: {
44
+ resolve(anchor) {
45
+ const key = anchor.dataset['chatAnchorKey'];
46
+ return key === undefined ? undefined : selectionDescriptor(snapshot, key);
47
+ },
48
+ },
49
+ });
50
+ if (generation === captureGeneration.current)
51
+ setSelection(captured);
52
+ }
53
+ catch {
54
+ if (generation === captureGeneration.current)
55
+ setSelection(null);
56
+ }
57
+ }, [sessions]);
58
+ useEffect(() => {
59
+ const onMouseDown = (event) => {
60
+ if (!captureEvent(event)) {
61
+ mouseDownPoint.current = null;
62
+ return;
63
+ }
64
+ mouseDownPoint.current = { x: event.clientX, y: event.clientY };
65
+ ++captureGeneration.current;
66
+ setSelection(null);
67
+ };
68
+ const onMouseUp = (event) => {
69
+ const start = mouseDownPoint.current;
70
+ mouseDownPoint.current = null;
71
+ if (!captureEvent(event))
72
+ return;
73
+ const moved = start === null
74
+ || Math.abs(event.clientX - start.x) > 2
75
+ || Math.abs(event.clientY - start.y) > 2;
76
+ if (moved || event.detail > 1 || event.shiftKey)
77
+ void capture();
78
+ };
79
+ const onSelectionChange = () => {
80
+ const browserSelection = window.getSelection();
81
+ if (browserSelection !== null && !browserSelection.isCollapsed)
82
+ return;
83
+ ++captureGeneration.current;
84
+ setSelection(null);
85
+ };
86
+ const onKeyUp = (event) => {
87
+ if (event.key === 'Escape') {
88
+ ++captureGeneration.current;
89
+ setSelection(null);
90
+ void controller.close();
91
+ return;
92
+ }
93
+ if (captureEvent(event))
94
+ void capture();
95
+ };
96
+ document.addEventListener('mousedown', onMouseDown);
97
+ document.addEventListener('mouseup', onMouseUp);
98
+ document.addEventListener('selectionchange', onSelectionChange);
99
+ document.addEventListener('keyup', onKeyUp);
100
+ return () => {
101
+ document.removeEventListener('mousedown', onMouseDown);
102
+ document.removeEventListener('mouseup', onMouseUp);
103
+ document.removeEventListener('selectionchange', onSelectionChange);
104
+ document.removeEventListener('keyup', onKeyUp);
105
+ };
106
+ }, [capture, controller]);
107
+ useEffect(() => {
108
+ ++captureGeneration.current;
109
+ setSelection(null);
110
+ }, [currentSessionId]);
111
+ const askDisabledReason = state.phase === 'closed'
112
+ ? undefined
113
+ : 'Close the current Side Chat before starting another one.';
114
+ const childFace = state.childSessionId === undefined ? undefined : sessions.face(state.childSessionId);
115
+ const inheritedThroughSeq = state.inheritedThroughSeq;
116
+ const locale = navigator.language.toLowerCase().startsWith('zh') ? 'zh-CN' : 'en';
117
+ const copySelection = (text) => {
118
+ void navigator.clipboard.writeText(text).catch(() => {
119
+ sessions.notify({ kind: 'warning', text: 'Could not copy the selected text.' });
120
+ });
121
+ };
122
+ return (_jsxs("div", { className: "dsh-side-chat-overlay", children: [selection !== null && (_jsx(SelectionActions, { selection: selection, ...askDisabledReason === undefined ? {} : { askDisabledReason }, onAskInSideChat: (captured) => {
123
+ const opened = controller.openDraft({ selection: captured });
124
+ if (!opened.ok)
125
+ sessions.notify({ kind: 'warning', text: opened.error.message });
126
+ setSelection(null);
127
+ }, onDismiss: () => { setSelection(null); } })), state.phase !== 'closed' && (_jsx(SideChatPanel, { state: state, locale: locale, ...childFace === undefined || inheritedThroughSeq === undefined
128
+ ? {}
129
+ : {
130
+ embeddedConversation: (_jsx(ArchivedConversation, { face: childFace, inheritedThroughSeq: inheritedThroughSeq, controller: controller, ...state.selection === undefined ? {} : { selection: state.selection }, locale: locale, onCopySelection: copySelection })),
131
+ }, onDraftChange: (draft) => { controller.setDraft(draft); }, onFirstSend: (question) => controller.sendFirst(question), onClose: () => controller.close(), onRetry: () => controller.retry(), onFocusParent: () => {
132
+ if (state.parentSessionId !== undefined)
133
+ void sessions.openSession(state.parentSessionId);
134
+ }, onCopySelection: copySelection, onRemoveSelection: () => { controller.clearSelection(); } }))] }));
135
+ }
136
+ //# sourceMappingURL=Rc6SideChatOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rc6SideChatOverlay.js","sourceRoot":"","sources":["../../../src/client/rc6/Rc6SideChatOverlay.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import type { ClientRemote } from '@deepseek-ai/dsh-api-remotes/client';
3
+ import type { ISessions, SlotRegistry } from '@deepseek-ai/dsh-client-runtime/client';
4
+ /** Browser-only Cordis view for a package that also compiles the Host half. */
5
+ export type Rc6ClientContext = Omit<Context, 'remote' | 'sessions' | 'slots'> & {
6
+ readonly remote: ClientRemote;
7
+ readonly sessions: ISessions;
8
+ readonly slots: SlotRegistry;
9
+ };
10
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/client/rc6/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAErF,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG;IAC9E,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAC7B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/client/rc6/context.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { SideChatRemote } from '../../shared/contracts.js';
2
+ import type { Rc6ClientContext } from './context.js';
3
+ export declare function mountArchivedRemote(ctx: Rc6ClientContext): Promise<{
4
+ readonly remote: SideChatRemote;
5
+ readonly dispose: () => Promise<void>;
6
+ }>;
7
+ //# sourceMappingURL=remote-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-adapter.d.ts","sourceRoot":"","sources":["../../../src/client/rc6/remote-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAUpD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC,CAAC,CAmBD"}
@@ -0,0 +1,29 @@
1
+ import TYPERT_REMOTE from '../../remote.js';
2
+ function remoteFailure(error) {
3
+ return {
4
+ code: error.code === 'bad-request' ? 'invalid_request' : 'transport_error',
5
+ message: error.message || 'The Side Chat RPC failed.',
6
+ recoverable: error.code !== 'bad-request',
7
+ };
8
+ }
9
+ export async function mountArchivedRemote(ctx) {
10
+ const dispose = await ctx.remote.$mount(TYPERT_REMOTE);
11
+ const archived = ctx.get('remote.sideChatArchived');
12
+ return {
13
+ remote: {
14
+ create: async (request) => {
15
+ const result = await archived.create({
16
+ ...request,
17
+ atSeq: Math.floor(request.atSeq),
18
+ });
19
+ return result.ok ? result.value : { ok: false, error: remoteFailure(result.error) };
20
+ },
21
+ close: async (request) => {
22
+ const result = await archived.close(request);
23
+ return result.ok ? result.value : { ok: false, error: remoteFailure(result.error) };
24
+ },
25
+ },
26
+ dispose,
27
+ };
28
+ }
29
+ //# sourceMappingURL=remote-adapter.js.map